$* 与 $@ 区别:
相同点:都是引用所有参数
不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)
jagger@2004:~/working/bash$ cat test.sh
#!/bin/bash
echo "参数个数:$#"
echo "---\$*---"
for i in "$*"
do
echo $i
done
echo "---\$@---"
for i in "$@"
do
echo $i
done
jagger@2004:~/working/bash$ ./test.sh 1 2 3
参数个数:3
---$*---
1 2 3
---$@---
1
2
3
jagger@2004:~/working/bash$
jagger@2004:~/working/bash$ echo $?
0
jagger@2004:~/working/bash$ test1.sh
test1.sh: command not found
jagger@2004:~/working/bash$ echo $?
127
jagger@2004:~/working/bash$