nulib/bash/src/base.num.sh

31 lines
890 B
Bash

# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
##@cooked nocomments
module: base.num "Fonctions de base: gestion des valeurs numériques"
function: isnum 'retourner vrai si $1 est une valeur numérique entière (positive ou négative)'
function isnum() {
[ ${#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'
function ispnum() {
[ ${#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 ,'
function isrnum() {
[ ${#1} -gt 0 ] || return 1
local v="${1#-}"
[ ${#v} -gt 0 ] || return 1
v="${v//./}"
v="${v//,/}"
v="${v//[0-9]/}"
[ -z "$v" ]
}