57 lines
1.4 KiB
Bash
57 lines
1.4 KiB
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 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
|
|
}
|