nutools/lib/ulib/base.string

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
}