一、位置参数:

$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 ~]#