Dans bash, on peut échapper des arguments contenant des espaces.construire des listes d'arguments contenant des espaces blancs
foo "a string"
Cela fonctionne également pour les arguments à une commande ou une fonction:
bar() {
foo "[email protected]"
}
bar "a string"
Jusqu'à présent, si bon, mais si je veux manipuler les arguments avant d'appeler foo
?
Cela ne fonctionne pas:
bar() {
for arg in "[email protected]"
do
args="$args \"prefix $arg\""
done
# Everything looks good ...
echo $args
# ... but it isn't.
foo $args
# foo "$args" would just be silly
}
bar a b c
Alors, comment voulez-vous construire une liste d'arguments lorsque les arguments contiennent des espaces?
putain, aurait dû être arrivé plus tôt - aurait pu vous épargner le travail :) – hop