脚本 test1.sh 如下,
[speed@localhost ~]$ cat test1.sh
#! /bin/sh
# test1.sh
echo "\$# 传递到脚本的参数的个数为 $#"
echo "\$* 以一个单字符串显示所有向脚本传递的参数为 $*"
echo "\$@ 使用时加双引号,并且在双引号中返回每个参数 $@"
echo "\$@ 返回\$@中每一个参数"
for index in $@
do
echo $index
done
在终端中执行 sh test1.sh 1 2 3 4 5 6 7 8 9 10 11 12,这个结果中遍历显示参数是没有问题的
speed@localhost ~]$ sh test1.sh 1 2 3 4 5 6 7 8 9 10 11 12
$# 传递到脚本的参数的个数为 12
$* 以一个单字符串显示所有向脚本传递的参数为 1 2 3 4 5 6 7 8 9 10 11 12
$@ 使用时加双引号,并且在双引号中返回每个参数 1 2 3 4 5 6 7 8 9 10 11 12
$@ 返回$@中每一个参数
1
2
3
4
5
6
7
8
9
10
11
12
在终端中执行 sh test1.sh "1 a" "2 b" "3 c" "4 d" "5 e" "6 f" "7 g",这个结果中遍历显示参数是有问题,如何解决呢。
如何让遍历显示参数时,显示结果如下呢
1 a
2 b
3 c
4 d
5 e
6 f
7 g
[speed@localhost ~]$ sh test1.sh "1 a" "2 b" "3 c" "4 d" "5 e" "6 f" "7 g"
$# 传递到脚本的参数的个数为 7
$* 以一个单字符串显示所有向脚本传递的参数为 1 a 2 b 3 c 4 d 5 e 6 f 7 g
$@ 使用时加双引号,并且在双引号中返回每个参数 1 a 2 b 3 c 4 d 5 e 6 f 7 g
$@ 返回$@中每一个参数
1
a
2
b
3
c
4
d
5
e
6
f
7
g
求解,shell中如何正确使用$@
-
- 帖子: 125
- 注册时间: 2007-10-22 22:40
-
- 帖子: 1453
- 注册时间: 2008-05-24 8:30
Re: 求解,shell中如何正确使用$@
要正确使用 $@,就要学会使用双引号。
其中 echo 语句中的双引号容易被人忽略,而且使用不全面的测试方法时不会发现缺少这个引号有什么问题。
代码: 全选
for arg in "$@" # 这里需要双引号
do
echo "$arg" # 这里也应该使用双引号
done
上次由 aerofox 在 2011-04-30 21:56,总共编辑 1 次。
-
- 帖子: 48
- 注册时间: 2011-03-01 23:14
Re: 求解,shell中如何正确使用$@
呵呵,不加引号是惯常错误~~
-
- 帖子: 125
- 注册时间: 2007-10-22 22:40
Re: 求解,shell中如何正确使用$@
了解 谢谢
-
- 帖子: 6548
- 注册时间: 2008-10-31 22:12
- 系统: 践兔
- 联系:
Re: 求解,shell中如何正确使用$@
你自己都说要加双引号了啊。chengmoYS 写了: echo "\$@ 使用时加双引号,并且在双引号中返回每个参数 $@"
代码: 全选
] ls -ld //
-
- 帖子: 299
- 注册时间: 2009-07-25 19:23