35 lines
938 B
Bash
35 lines
938 B
Bash
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
|
## Fonctions de base: gestion des valeurs numériques
|
|
##@cooked nocomments
|
|
uprovide base.num
|
|
|
|
function isnum() {
|
|
# retourner vrai si $1 est une valeur numérique entière (positive ou négative)
|
|
[ ${#1} -gt 0 ] || return 1
|
|
local v="${1#-}"
|
|
[ ${#v} -gt 0 ] || return 1
|
|
v="${v//[0-9]/}"
|
|
[ -z "$v" ]
|
|
}
|
|
function ispnum() {
|
|
# retourner vrai si $1 est une valeur numérique entière positive
|
|
[ ${#1} -gt 0 ] || return 1
|
|
[ -z "${1//[0-9]/}" ]
|
|
}
|
|
function isrnum() {
|
|
# retourner vrai si $1 est une valeur numérique réelle (positive ou négative)
|
|
# le séparateur décimal peut être . ou ,
|
|
[ ${#1} -gt 0 ] || return 1
|
|
local v="${1#-}"
|
|
[ ${#v} -gt 0 ] || return 1
|
|
v="${v//./}"
|
|
v="${v//,/}"
|
|
v="${v//[0-9]/}"
|
|
[ -z "$v" ]
|
|
}
|
|
|
|
function evali() {
|
|
# Evaluer une expression numérique
|
|
echo "$(($*))"
|
|
}
|