$*和$@的区别

[root@vm1 scripts]# set -- "I am" handsome oldboy.


[root@vm1 scripts]# for i in "$*";do echo $i;done
I am handsome oldboy.
[root@vm1 scripts]# for i in "$@";do echo $i;done
I am
handsome
oldboy.


[root@vm1 scripts]# for i; do echo $i;done
I am
handsome
oldboy.

[root@vm1 scripts]# for i in $*;do echo $i;done
I
am
handsome
oldboy.


说明:

1)$*和$@,不加引号,两者没有区别。

2)如果加引号,$*相当于"$1 $2 $3"。$@相当于"$1" "$2" "$3"。

3)另外要注意的是:第一个参数“I  am” 也被拆开输出了。测试和调试程序的时候要注意。

你可能感兴趣的:(Shell,linux,运维)