首页 > 其他 > 详细

Bash脚本之命令行参数$@和$*

时间:2014-03-09 21:05:11      阅读:694      评论:0      收藏:0      [点我收藏+]

$@和$*都代表所有命令行参数,但是二者是有区别的。

$*将命令行上提供的所有参数当作一个参数来保存,$@将命令行上提供的所有参数当作一个字符串中的多个独立的参数来保存。

通常都是在程序中使用$@,并且用双引号引起来。下面举例说明:

以下5个程序的程序名都是test.sh,均执行如下命令:

sh test.sh a b "c d"
希望得到的输出是:

a
b
c d

程序1

for var in $*
do
	echo $var
done
输出:

a
b
c
d

程序2

for var in $@
do
	echo $var
done
输出:
a
b
c
d

程序3

for var in "$*"
do
	echo $var
done
输出:

a b c d

程序4

for var in "$@"
do
	echo $var
done
输出:

a
b
c d

程序5

while [ -n "$1" ]
do
	echo $1
	shift
done
输出:

a
b
c d

只有最后两个程序得到了期望的结果,可以看出双引号的作用是很重要的。

Bash脚本之命令行参数$@和$*,布布扣,bubuko.com

Bash脚本之命令行参数$@和$*

原文:http://blog.csdn.net/warren912/article/details/20841455

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!