假设有一个test脚本
for var in "$@";do
echo $var
done
那么执行 test 1 "2 3"可以正确地得到结果:
1
2 3
然而,如果我把shell改成
commands=$@
for var in "$commands";do
echo $var
done
得到的结果是
1
2
3
如果我把shell改成
commands="$@"
for var in "$commands";do
echo $var
done
得到的结果是
1 2 3
把commands设置成数组:
commands=($@)
for var in ${commands[*]};do
echo $var
done
得到的结果还是
1
2
3
现在的问题是,要怎么做才能让遍历$commands的效果跟$@一样呢?