##@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 }