implémenter _rval(), pour corriger un bug avec le listage de fichiers avec des espaces
This commit is contained in:
parent
418753bf89
commit
b64cb98dad
|
@ -1 +1 @@
|
||||||
007011000
|
007012000
|
||||||
|
|
|
@ -1304,7 +1304,8 @@ function __la_cmd() {
|
||||||
local arg
|
local arg
|
||||||
local cmd="/bin/ls -1d"
|
local cmd="/bin/ls -1d"
|
||||||
for arg in "$@"; do
|
for arg in "$@"; do
|
||||||
cmd="$cmd $(quote_arg "$arg")"
|
arg="$(_rval "$arg")"
|
||||||
|
cmd="$cmd $arg"
|
||||||
done
|
done
|
||||||
cmd="$cmd 2>/dev/null"
|
cmd="$cmd 2>/dev/null"
|
||||||
echo "$cmd"
|
echo "$cmd"
|
||||||
|
|
|
@ -29,6 +29,23 @@ function recho_() {
|
||||||
echo -n "$@"
|
echo -n "$@"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
function _rval() {
|
||||||
|
# Dans la chaine $*, remplacer \ par \\, " par \", $ par \$, ` par \`, SPACE par
|
||||||
|
# \SPACE
|
||||||
|
# Cela permet de quoter une chaine à afficher telle quelle, sans guillemets, e.g
|
||||||
|
# eval "echo $(_rval "$value")"
|
||||||
|
# Note: la protection de ! n'est pas effectuée, parce que le comportement du
|
||||||
|
# shell est incohérent entre le shell interactif et les scripts. Pour une
|
||||||
|
# version plus robuste, il est nécessaire d'utiliser un programme externe tel
|
||||||
|
# que sed ou awk
|
||||||
|
local s="$*"
|
||||||
|
s="${s//\\/\\\\}"
|
||||||
|
s="${s//\"/\\\"}"
|
||||||
|
s="${s//\$/\\\$}"
|
||||||
|
s="${s//\`/\\\`}"
|
||||||
|
s="${s// /\\ }"
|
||||||
|
recho_ "$s"
|
||||||
|
}
|
||||||
function _qval() {
|
function _qval() {
|
||||||
# Dans la chaine $*, remplacer \ par \\, " par \", $ par \$, ` par \`
|
# Dans la chaine $*, remplacer \ par \\, " par \", $ par \$, ` par \`
|
||||||
# Cela permet de quoter une chaine à mettre entre guillements.
|
# Cela permet de quoter une chaine à mettre entre guillements.
|
||||||
|
|
Loading…
Reference in New Issue