寂寞烈火:
这样比较一下
for i in $@;do echo $i;done
for i in "$@";do echo $i;done
for i in $@;do echo $i;done
for i in "$@";do echo $i;done
黑哥:
$@经过参数展开后,还要word splitting,
"$@"经过参数展开后,不再word splitting.
对于"1 2" 4, $@参数展开后:"1 2", "4", word splitting后得到三个字(word): 1, 2,4
"$@"参数展开得到两个字:"1 2","4".
"$@"经过参数展开后,不再word splitting.
对于"1 2" 4, $@参数展开后:"1 2", "4", word splitting后得到三个字(word): 1, 2,4
"$@"参数展开得到两个字:"1 2","4".
Springwind426:
不回引号时, $@ 和 $* 相同
加双引号时
参数: "1 2" 4
"$@" 表示所有的参数,即 "1 2" 4
"$*" 表示把所有的参数扩展并形成一个字符串 "1 2 4"
加双引号时
参数: "1 2" 4
"$@" 表示所有的参数,即 "1 2" 4
"$*" 表示把所有的参数扩展并形成一个字符串 "1 2 4"