shell 中常见的位置参数如下
$# : 用来统计参数的个数
$@ :会将命令行的所有的参数当做同一个字符串中的多个独立单词
$* :会将命令行的参数当做一个参数来保存
举例说明
参数 $#
1
2
3
4
5
6
|
cat
test8.sh
#!/bin/bash
## getting the unmber of parameters
#
echo
there are $
# parameters supplied
|
./test8.sh 1 2 3
there are 3 parameters supplied
参数的简单运算,当输入正确的参数时进行运算、错误的时候输入脚本用法
1
2
3
4
5
6
7
8
9
10
11
12
|
#!/bin/bash
## testing parameters
#
if
[ $
# -ne 2 ]
then
echo
Usage: test9.sh a b
else
total=$[ $1 + $2 ]
echo
The total is $total
#echo
fi
|
./test9.sh 8 56
The total is 64
./test9.sh 81
Usage: test9.sh a b
参数$@ 和$#
1
2
3
4
5
6
7
|
#!/bin/bash
#testing $* and $@
echo
#echo "Using the $* method: $*"
echo
"Using the \$* method: $*"
echo
echo
"Using the \$@ method: $@"
|
./test11.sh aa bb cc
Using the $* method: aa bb cc
Using the $@ method: aa bb cc
上述例子表面上$@ 和$# 的用法是一样的,下面的例子将会加以区分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#!/bin/bash
# testing $* and $@
#
echo
count=1
#
for
param
in
"$*"
do
echo
"\$* parameter #$count = $param"
count=$[ $count + 1 ]
done
echo
"-------------------------------------"
#
for
param
in
"$@"
do
echo
"\$@ parameter #$count = $param"
count=$[ $count + 1 ]
done
|
./test12.sh aa bb cc dd
$* parameter #1 = aa bb cc dd
-------------------------------------
$@ parameter #2 = aa
$@ parameter #3 = bb
$@ parameter #4 = cc
$@ parameter #5 = dd
本文转自 水滴石川1 51CTO博客,原文链接:http://blog.51cto.com/sdsca/1903992,如需转载请自行联系原作者