一、位置参数:
$0:脚本本身
$1:脚本的第一个参数
$2:脚本的第二个参数
$3:脚本的第三个参数
.......
$N:脚本的N个参数
$#:脚本参数的个数,即有多少个参数
$*,$@:引用所有的脚本参数
举例:
[root@localhost ~]# cat 1.sh
#!/bin/bash
echo "The Sum is: $[$1+$2+$3]"
echo "The mul is: $[$1*$2*$3]"
echo $#
echo $*
[root@localhost ~]# ./1.sh 2 3 4 #2 3 4是脚本的参数
The Sum is: 9 #参数之和
The mul is: 24 #参数之乘
3 #是脚本里面的$#,即脚本的个数
2 3 4 #脚本参数本身
二:shift,对脚本参数进行轮训替换,当把第一个用户给的参数引用完之后就把其移除,并再把第二个参数当做第一个,以此类推
[root@localhost ~]# cat 1.sh
#!/bin/bash
#!/bin/bash
declare -i sum=0
for i in `seq 1 $#`; do
let sum+=$1
shift
done
echo $sum
[root@localhost ~]# bash -x 1.sh 10 20 30
+ declare -i sum=0
++ seq 1 3
+ for i in '`seq 1 $#`'
+ let sum+=10
+ shift
+ for i in '`seq 1 $#`'
+ let sum+=20
+ shift
+ for i in '`seq 1 $#`'
+ let sum+=30
+ shift
+ echo 60
60
[root@localhost ~]#
转载于:https://blog.51cto.com/zhangshijie/1574384