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‘)

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。