function f() {
for arg; do
echo "$arg"
done
}
f 'hello world' 'second arg' '3rdarg'
Run Code Online (Sandbox Code Playgroud)
这工作正常:
hello world
second arg
3rdarg
Run Code Online (Sandbox Code Playgroud)
但是我什么时候分配$@一些变量,然后出错:
function f() {
local args="$@"
for arg in "$args"; do
echo "$arg"
done
}
Run Code Online (Sandbox Code Playgroud)
hello world second arg 3rdarg
Run Code Online (Sandbox Code Playgroud)
当我取消对的$args引用时,则每个参数都被拆分成一个单词:
hello
world
second
arg
3rdarg
Run Code Online (Sandbox Code Playgroud)
最后,我想知道是否存在定义$ @之类的变量的方法。任何答复将不胜感激。
您需要使用一个数组:
function f() {
local args=("$@") # values in parentheses
for arg in "${args[@]}"; do # array expansion syntax
echo "$arg"
done
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
799 次 |
| 最近记录: |