在 bash 中,可以转义包含空格的参数。
foo "a string"
这也适用于命令或函数的参数:
bar() {
foo "$@"
}
bar "a string"
到目前为止一切顺利,但是如果我想在调用之前操纵参数foo
怎么办?
这不起作用:
bar() {
for arg in "$@"
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
那么当参数包含空格时如何构建参数列表呢?