shell 命令行参数

1, $*与$@区别

cat a.sh

#!/bin/bash

for i in $*    #这里换成$@也是一样的结果

do

echo $i

done

sh a.sh 1 '2 3'

1

2

3

vi a.sh

for i in "$*"

...

sh a.sh 1 '2 3'

1 2 3

vi a.sh

for i in "$@"

...

sh a.sh 1 '2 3'

1

2 3

 

结论: 不加双引号$*与$@结果一样 ,加了双引号,"$*" 把所有命令行参数作为一个字符串处理,"$@" 会把引号引起来的字符当成一个字符串处理如('2 3')

 

posted @ 2015-05-22 07:59  xiaohui163  阅读(130)  评论(0编辑  收藏  举报