améliorer l'ergonomie des fonctions setv(), setx() et seta()
This commit is contained in:
parent
24fd6884d6
commit
be6e529385
|
@ -107,18 +107,51 @@ function qlines() {
|
|||
sed "s/'/'\\\\''/g; s/.*/'&'/g"
|
||||
}
|
||||
function setv() {
|
||||
# initialiser la variable $1 avec la valeur $2..*
|
||||
# initialiser la variable $1 avec la valeur "$2..*"
|
||||
# note: en principe, la syntaxe est 'setv var values...'. cependant, la
|
||||
# syntaxe 'setv var=values...' est supportée aussi
|
||||
local __s_var="$1"; shift
|
||||
if [[ "$__s_var" == *=* ]]; then
|
||||
set -- "${__s_var#*=}" "$@"
|
||||
__s_var="${__s_var%%=*}"
|
||||
fi
|
||||
eval "$__s_var=\"$(qval "$*")\""
|
||||
}
|
||||
function _setv() {
|
||||
# Comme la fonction setv() mais ne supporte que la syntaxe '_setv var cmd args...'
|
||||
local __s_var="$1"; shift
|
||||
eval "$__s_var=\"$(qval "$*")\""
|
||||
}
|
||||
function setx() {
|
||||
# initialiser la variable $1 avec le résultat de la commande '$2..@'
|
||||
# initialiser la variable $1 avec le résultat de la commande "$2..@"
|
||||
# note: en principe, la syntaxe est 'setx var cmd args...'. cependant, la
|
||||
# syntaxe 'setx var=cmd args...' est supportée aussi
|
||||
local __s_var="$1"; shift
|
||||
eval "$__s_var=\"\$(\"\$@\")\""
|
||||
if [[ "$__s_var" == *=* ]]; then
|
||||
set -- "${__s_var#*=}" "$@"
|
||||
__s_var="${__s_var%%=*}"
|
||||
fi
|
||||
eval "$__s_var="'"$("$@")"'
|
||||
}
|
||||
function _setx() {
|
||||
# Comme la fonction setx() mais ne supporte que la syntaxe '_setx var cmd args...'
|
||||
local __s_var="$1"; shift
|
||||
eval "$__s_var="'"$("$@")"'
|
||||
}
|
||||
function seta() {
|
||||
# initialiser le tableau $1 avec le résultat de la commande '$2..@', chaque
|
||||
# initialiser le tableau $1 avec le résultat de la commande "$2..@", chaque
|
||||
# ligne du résultat étant un élément du tableau
|
||||
# note: en principe, la syntaxe est 'seta var cmd args...'. cependant, la
|
||||
# syntaxe 'seta var=cmd args...' est supportée aussi
|
||||
local __s_array="$1"; shift
|
||||
if [[ "$__s_var" == *=* ]]; then
|
||||
set -- "${__s_var#*=}" "$@"
|
||||
__s_var="${__s_var%%=*}"
|
||||
fi
|
||||
eval "$__s_array=($("$@" | qlines))"
|
||||
}
|
||||
function _seta() {
|
||||
# Comme la fonction seta() mais ne supporte que la syntaxe '_seta var cmd args...'
|
||||
local __s_array="$1"; shift
|
||||
eval "$__s_array=($("$@" | qlines))"
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue