Merge branch 'master' of vcs.univ.run:modules/nutools
This commit is contained in:
commit
bc1dd7174e
|
@ -107,21 +107,95 @@ function qlines() {
|
||||||
sed "s/'/'\\\\''/g; s/.*/'&'/g"
|
sed "s/'/'\\\\''/g; s/.*/'&'/g"
|
||||||
}
|
}
|
||||||
function setv() {
|
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
|
local __s_var="$1"; shift
|
||||||
eval "$__s_var=\"$(qval "$*")\""
|
eval "$__s_var=\"$(qval "$*")\""
|
||||||
}
|
}
|
||||||
function setx() {
|
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
|
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() {
|
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
|
# 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_array" == *=* ]]; then
|
||||||
|
set -- "${__s_array#*=}" "$@"
|
||||||
|
__s_array="${__s_array%%=*}"
|
||||||
|
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
|
local __s_array="$1"; shift
|
||||||
eval "$__s_array=($("$@" | qlines))"
|
eval "$__s_array=($("$@" | qlines))"
|
||||||
}
|
}
|
||||||
|
function evalx() {
|
||||||
|
# évaluer ...
|
||||||
|
local val arg r=0
|
||||||
|
local -a cmd
|
||||||
|
|
||||||
|
local first=1
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
cmd=()
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
arg="$1"; shift
|
||||||
|
[ "$arg" == // ] && break
|
||||||
|
if [ "${arg%//}" != "$arg" ]; then
|
||||||
|
local tmp="${arg%//}"
|
||||||
|
if [ -z "${tmp//\\/}" ]; then
|
||||||
|
arg="${arg#\\}"
|
||||||
|
cmd=("${cmd[@]}" "$arg")
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
cmd=("${cmd[@]}" "$arg")
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$first" ]; then
|
||||||
|
val="$("${cmd[@]}")" || r=$?
|
||||||
|
else
|
||||||
|
val="$("${cmd[@]}" "$val")" || r=$?
|
||||||
|
fi
|
||||||
|
first=
|
||||||
|
done
|
||||||
|
[ -n "$val" ] && echo "$val"
|
||||||
|
return $r
|
||||||
|
}
|
||||||
|
function evalp() {
|
||||||
|
# évaluer ...
|
||||||
|
:
|
||||||
|
}
|
||||||
|
function testx() {
|
||||||
|
# tester ...
|
||||||
|
:
|
||||||
|
}
|
||||||
|
|
||||||
function e2of() {
|
function e2of() {
|
||||||
# lancer la commande $@ en redirigeant la sortie d'erreur sur la sortie standard
|
# lancer la commande $@ en redirigeant la sortie d'erreur sur la sortie standard
|
||||||
"$@" 2>&1
|
"$@" 2>&1
|
||||||
|
|
Loading…
Reference in New Issue