function f() {
for arg; do
echo "$arg"
done
}
f 'hello world' 'second arg' '3rdarg'
这工作正常:
hello world
second arg
3rdarg
但我什么时候分配$@
到某个变量,然后就出错了:
function f() {
local args="$@"
for arg in "$args"; do
echo "$arg"
done
}
output:
hello world second arg 3rdarg
当我取消引用时$args
,然后每个参数被分成单个单词:
hello
world
second
arg
3rdarg
最后,我想知道是否有一种方法可以定义像$@这样的变量。任何回应将不胜感激。
您需要使用一个数组:
function f() {
local args=("$@") # values in parentheses
for arg in "${args[@]}"; do # array expansion syntax
echo "$arg"
done
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)