faire base.bool et base.num
This commit is contained in:
parent
2f9ec953d7
commit
99d67095a3
|
@ -1 +1 @@
|
|||
003008000
|
||||
004000000
|
||||
|
|
|
@ -32,10 +32,14 @@ fi
|
|||
##@include base.init
|
||||
##@include base.core
|
||||
##@include base.string
|
||||
##@include base.num
|
||||
##@include base.bool
|
||||
##@include base.array
|
||||
##@include base.quote
|
||||
##@include base.split
|
||||
##@include base.compat
|
||||
uprovide base
|
||||
urequire base.init base.core base.string base.quote base.split base.array base.compat
|
||||
urequire base.init base.core base.string base.num base.bool base.array base.quote base.split base.compat
|
||||
|
||||
## Informations sur l'hôte sur lequel tourne ce script
|
||||
# Type de système
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||
## Fonctions de base: valeurs booléennes
|
||||
##@cooked nocomments
|
||||
##@include base.num
|
||||
# Note: contient du code spécifique à bash 4. Le module base.compat réimplémente
|
||||
# les fonctions concernées pour les rendre compatible avec bash >= 2.x
|
||||
uprovide base.bool
|
||||
urequire base.num
|
||||
|
||||
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
|
||||
}
|
||||
function yesval() {
|
||||
# normaliser une valeur vraie: si $1 est une valeur "oui", afficher 1, sinon
|
||||
# afficher une chaine vide
|
||||
is_yes "$1" && echo 1
|
||||
}
|
||||
|
||||
function _setb() {
|
||||
# Lancer la commande $2..@ en supprimant l'affichage standard et d'erreur. 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
|
||||
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
|
||||
}
|
||||
|
||||
function evalb() {
|
||||
# Lancer les commandes $@ avec evalx() en supprimant l'affichage standard et
|
||||
# d'erreur. Si les commandes retournent vrai, afficher 1. Sinon, afficher ""
|
||||
if evalx "$@" >&/dev/null; then
|
||||
echo 1
|
||||
else
|
||||
return $?
|
||||
fi
|
||||
}
|
||||
function setb() {
|
||||
# équivalent à setx $1 evalb $2..@
|
||||
local __s_var="$1"; shift
|
||||
if [[ "$__s_var" == *=* ]]; then
|
||||
set -- "${__s_var#*=}" "$@"
|
||||
__s_var="${__s_var%%=*}"
|
||||
fi
|
||||
setx "$__s_var" evalb "$@"
|
||||
}
|
|
@ -1,7 +1,12 @@
|
|||
##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||
## Fonctions de base: support des fonctions obsolètes et des versions de bash < 4.x
|
||||
##@cooked nocomments
|
||||
##@include base.core
|
||||
##@include base.num
|
||||
##@include base.bool
|
||||
##@include base.quote
|
||||
uprovide base.compat
|
||||
urequire base.core base.num base.bool base.quote
|
||||
|
||||
## Fonctions obsolètes
|
||||
|
||||
|
@ -52,6 +57,8 @@ if [ -n "$BASH_VERSINFO" -a "${BASH_VERSINFO[0]}" -lt 4 ]; then
|
|||
done
|
||||
echo "${vs[*]}"
|
||||
}
|
||||
|
||||
# base.bool
|
||||
function is_yes() {
|
||||
case "$1" in
|
||||
o|oui|y|yes|v|vrai|t|true|on) return 0;;
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
##@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 numériques
|
||||
##@cooked nocomments
|
||||
uprovide base.num
|
||||
|
||||
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" ]
|
||||
}
|
|
@ -116,54 +116,6 @@ function strrepl() {
|
|||
eval "$cmd"
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
function yesval() {
|
||||
# normaliser une valeur vraie: si $1 est une valeur "oui", afficher 1, sinon
|
||||
# afficher une chaine vide
|
||||
is_yes "$1" && echo 1
|
||||
}
|
||||
|
||||
function first_char() {
|
||||
# retourner le premier caractère de la chaine $*
|
||||
local str="$*"
|
||||
|
|
Loading…
Reference in New Issue