linux下符号($* $@)的区别
在linux下shell脚本的使用,能有效提交效率?准确理解$* vs $@在不同场景表示含义
$*与$@的区别
- $* 当做整体
- $@ 宏观整体,微观单体
1.不加引号,空格为分隔符,结果都一致
[root@mvpbang ~]# for i in $*;do echo $i;done #不加引号,默认空格为分隔符
are
you
ok
haha
!
[root@mvpbang ~]# for i in $@;do echo $i;done
are
you
ok
haha
!
2.加上引号,"$*" 代表一个整体值,"$@" 以整体,输出每个值
[root@mvpbang ~]# for i in "$*";do echo $i; done #看做一个值 "$1$2..."
are you ok haha !
[root@mvpbang ~]# for i in "$@"; do echo $i; done #依次输出每个参数的值
are you ok
haha
!
[root@mvpbang ~]# for i ;do echo $i; done #for i == for i in "$@"
are you ok
haha
!