$@ 与$*之终极比较


准确来讲, 兩者只有在 soft quote 中才有差异, 否則, 都表示"全部 参数"( $0 除
外)。
举个例來說好了:
若在 command line 上跑 my.sh p1 "p2 p3" p4 的話,
不管是 $@ 還是 $* , 都可得到 p1 p2 p3 p4 就是了。
但是, 如果置於 soft quote 中的話: "$@" 則可得到 "p1" "p2 p3" "p4" 這三个不同的词段(word)﹔ "$*" 則可得到 "p1 p2 p3 p4" 单一的词段

#!/bin/bash

#hao.sh

my_fun() { echo "$#" }

echo 'the number ofparameter in "$@" is '$(my_fun "$@")

echo 'the number ofparameter in "$*" is '$(my_fun "$*")
脚本执行命令:./hao.sh p1 p2 p3 

执行结果

the number ofparameter in "$@" is 3
the number ofparameter in "$*" is 1

posted @ 2015-07-07 16:56  haoxing990  阅读(210)  评论(0编辑  收藏  举报