ajout base.num et base.bool
This commit is contained in:
parent
f4fa9fa28c
commit
2e037cfa68
|
@ -0,0 +1,50 @@
|
||||||
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
|
##@cooked nocomments
|
||||||
|
module: base.bool "Fonctions de base: valeurs booléennes"
|
||||||
|
|
||||||
|
function: is_yes 'retourner vrai si $1 est une valeur "oui"'
|
||||||
|
function is_yes() {
|
||||||
|
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"'
|
||||||
|
function is_no() {
|
||||||
|
case "${1,,}" in
|
||||||
|
n|non|no|f|faux|false|off) return 0;;
|
||||||
|
esac
|
||||||
|
isnum "$1" && [ "$1" -eq 0 ] && return 0
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
function: normyesval 'remplacer les valeurs des variables $1..* par la valeur normalisée de leur valeur "oui"'
|
||||||
|
function normyesval() {
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
is_yes "${!1}" && _setv "$1" 1 || _setv "$1" ""
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function: setb 'Lancer la commande $2..@ en supprimant la sortie standard. Si la commande
|
||||||
|
retourne vrai, assigner la valeur 1 à la variable $1. Sinon, lui assigner la
|
||||||
|
valeur ""
|
||||||
|
note: en principe, la syntaxe est "setb var cmd args...". cependant, la
|
||||||
|
syntaxe "setb var=cmd args..." est supportée aussi'
|
||||||
|
function setb() {
|
||||||
|
local __s_var="$1"; shift
|
||||||
|
if [[ "$__s_var" == *=* ]]; then
|
||||||
|
set -- "${__s_var#*=}" "$@"
|
||||||
|
__s_var="${__s_var%%=*}"
|
||||||
|
fi
|
||||||
|
local __s_r
|
||||||
|
if "$@" >/dev/null; then
|
||||||
|
eval "$__s_var=1"
|
||||||
|
else
|
||||||
|
__s_r=$?
|
||||||
|
eval "$__s_var="
|
||||||
|
return $__s_r
|
||||||
|
fi
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
# -*- 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" ]
|
||||||
|
}
|
Loading…
Reference in New Issue