57 lines
1.4 KiB
Plaintext
57 lines
1.4 KiB
Plaintext
|
##@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 scalaires
|
||
|
##@cooked nocomments
|
||
|
uprovide base.string
|
||
|
urequire base.core
|
||
|
|
||
|
function strlower() {
|
||
|
# afficher en minuscule la valeur $1..*
|
||
|
echo ${*,,}
|
||
|
}
|
||
|
function strupper() {
|
||
|
# afficher en majuscule la valeur $1..*
|
||
|
echo ${*^^}
|
||
|
}
|
||
|
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="${v#-}"
|
||
|
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
|
||
|
local v="$1"
|
||
|
v="${v//[0-9]/}"
|
||
|
[ -z "$v" ]
|
||
|
}
|
||
|
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="${v#-}"
|
||
|
v="${v//./}"
|
||
|
v="${v//,/}"
|
||
|
v="${v//[0-9]/}"
|
||
|
[ -z "$v" ]
|
||
|
}
|
||
|
function is_yes() {
|
||
|
# retourner vrai si $1 est une valeur "oui"
|
||
|
case "${1,,}" in
|
||
|
o|oui|y|yes|v|vrai|t|true|on) return 0;;
|
||
|
esac
|
||
|
isnum "$1" && [ "$1" -ne 0 ] && return 0
|
||
|
return 1
|
||
|
}
|
||
|
function is_no() {
|
||
|
# retourner vrai si $1 est une valeur "non"
|
||
|
case "${1,,}" in
|
||
|
n|non|no|f|faux|false|off) return 0;;
|
||
|
esac
|
||
|
isnum "$1" && [ "$1" -eq 0 ] && return 0
|
||
|
return 1
|
||
|
}
|