1、位置参数变量
$n:n为数字,$0代表命令本身,$1-$9代表带一个到第九个参数,十以上的参数需要使用大括号表示,比如${10}
$*:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
$@:这个变量也代表命令行中所有的参数,是把每个参数却分对待
$#:这个变量代表命令行中所有参数的个数
2、$n示例
两个数相加:
touch cs.sh
进行编辑
vi cs.sh
内容如下:
#!/bin/bash
num1=$1
num2=$2
sum=$(($num1 + $num2))
echo $sum
赋予权限
chmod 755 cs.sh
执行结果如下:
./cs.sh 11 33
结果为44
3、$*、$@和$#示例
代码如下:
#!/bin/bash
echo "\s* out result : $*"
echo "\s@ out result : $@"
echo "\s# out result : $#"
执行:
./cs1.sh 11 22 33 44
结果如下:
\s* out result : 11 22 33 44
\s@ out result : 11 22 33 44
\s# out result : 4
4、$*和$@的区别
#!/bin/bash
echo "\s* loops echo result is : "
for i in "$*"
do
echo $i
done
echo "\s@ loops echo result is : "
for j in "$@"
do
echo $j
done
执行
./cs2.sh 11 22 33 44
结果如下
\s* loops echo result is :
11 22 33 44
\s@ loops echo result is :
11
22
33
44
可以看出:
$*中的所有参数看成是一个整体,所以for循环只循环一次。
$@中的每个参数十独立的,所有输入几个参数,就会循环几次。