001、两者都可以表示shell脚本的所有参数,两者没有差异(不管是否增加双引号)
举例:
a、不加双引号
[root@PC1 test1]# ls ## 准备了两个测试脚本 a.sh b.sh [root@PC1 test1]# cat a.sh ## a.sh的内容如下 #!/bin/bash echo $* [root@PC1 test1]# cat b.sh ## b.sh的内容如下 #!/bin/bash echo $@ [root@PC1 test1]# bash a.sh one two three ## 执行a.sh,同时给脚本a.sh传递3个参数 one two three [root@PC1 test1]# bash b.sh one two three ## 执行b.sh,同时给脚本b.sh传递3个参数 one two three
b、增加双引号
[root@PC1 test1]# ls ## 两个测试脚本中都增加了双引号 a.sh b.sh [root@PC1 test1]# cat a.sh #!/bin/bash echo "$*" [root@PC1 test1]# cat b.sh #!/bin/bash echo "$@" [root@PC1 test1]# bash a.sh one two three ## 结果显示两者没有差异 one two three [root@PC1 test1]# bash b.sh one two three one two three
002、把$*和$@放入循环中,两者体现出差异(当使用双引号是两者有差异,不试用双引号时两者无差异)
a、不使用双引号
标签:test1,联系,区别,PC1,two,sh,Linux,root,bash From: https://www.cnblogs.com/liujiaxin2018/p/17977679