wyf@wyf-laptop:~/lab/wyf28$ cat test2
#!/bin/bash
count=1
for param in $*
do
echo '$*' Parameter '#'$count = $param
count=$[$count+1]
done
count=1
for param1 in $@
do
echo '$@' Parameter '#'$count = $param1
count=$[$count+1]
done
wyf@wyf-laptop:~/lab/wyf28$ ./test2 I have a question
$* Parameter #1 = I
$* Parameter #2 = have
$* Parameter #3 = a
$* Parameter #4 = question
$@ Parameter #1 = I
$@ Parameter #2 = have
$@ Parameter #3 = a
$@ Parameter #4 = question
这里$*没有把所有的参数当作一个参数,也允许对其中的值进行迭代
但是如果进行如下修改:for param in "$*"
则:
wyf@wyf-laptop:~/lab/wyf28$ ./test2 I have a question
$* Parameter #1 = I have a question
$@ Parameter #1 = I
$@ Parameter #2 = have
$@ Parameter #3 = a
$@ Parameter #4 = question
这是为什么?
shell 中的$*和$@为什么是相同的
-
- 帖子: 3
- 注册时间: 2011-04-03 9:42
- 灰色小狼
- 帖子: 4585
- 注册时间: 2008-12-06 10:38
- 系统: Arch
Re: shell 中的$*和$@为什么是相同的
"$*"读取所有参数并返回一个字符串
-
- 帖子: 6548
- 注册时间: 2008-10-31 22:12
- 系统: 践兔
- 联系: