最近学习 shell 程式设计,发现 $@和 $*很有意思,分享一下
$* 取当前 shell 的所有引数,将所有的命令列视为单个字串,相当于 “$1$2”
$@ 取当前 shell 的所有引数保留引数里的空白,,相当于 “$“,”$2”,这是将引数传递给其他程式的最佳方式。
例子:
[root@localhost python]# set — “I am” handsome oldboy.
[root@localhost python]# echo $#
3
[root@localhost python]# for i in $*;do echo $i;done
I
am
handsome
oldboy.
[root@localhost python]# for i in $@;do echo $i;done
I
am
handsome
oldboy.
[root@localhost python]# for i ;do echo $i;done
I am
handsome
oldboy.
[root@localhost python]# for i in “$@”;do echo $i;done
I am
handsome
oldboy.
[root@localhost python]# for i in “$*”;do echo $i;done
I am handsome oldboy.