shell 命令行参数
1, $*与$@区别
cat a.sh
#!/bin/bash
for i in $* #这里换成$@也是一样的结果
do
echo $i
done
sh a.sh 1 '2 3'
1
2
3
vi a.sh
for i in "$*"
...
sh a.sh 1 '2 3'
1 2 3
vi a.sh
for i in "$@"
...
sh a.sh 1 '2 3'
1
2 3
结论: 不加双引号$*与$@结果一样 ,加了双引号,"$*" 把所有命令行参数作为一个字符串处理,"$@" 会把引号引起来的字符当成一个字符串处理如('2 3')