6.位置参数变量
位置参数变量就是bash将传递给脚本的参数,按照位置不同,保存在不同的位置变量中,以便于脚本调用这些变量。
shell中的位置参数变量及其作用见下图:
image
其中,$n
是最重要的一个位置参数变量。举个例子,:
#!/bin/bash
num1=$1
num2=$2
sum=$(($num1 + $num2))
echo $sum
将上述代码保存在test1.sh中,执行结果如下:
image需要注意的是,在执行命令时,需要在执行的文件后面加上要运算的数值。执行程序后,程序会把第一个数值38赋给num1,把第二个值33赋给num2,并计算两个数值的和。
$*
和$@
都代表命令行中的所有参数,只不过$*
是把所有参数看做一个整体,$@
是把每个参数区分对待,而$#
代表命令行中所有参数的个数。
举个例子:
#!/bin/bash
for i in $*
do
echo $i
done
for i in $@
do
echo $i
done
for i in $#
do
echo $i
done
将以上代码保存到test2.sh中,执行结果如下:
image$*
循环只返回一行结果,说明该循环只执行了一次,$@
返回6行结果,说明循环执行了6次,而$#
返回了后面参数的个数,循环执行了1次。
7.预定义变量
系统预先定义的变量简称为预定义变量,是由系统预先定义的一组变量,这些变量通常用于保存与系统 / 命令等有关的信息。预定义变量由系统自动生成 / 维护,用户无需修改其值。
常用的预定义变量:
image8.read:接受键盘输入
read [选项] [变量名]
选项:
- -p "提示信息":在等待read输入时,输出提示信息
- -t 秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间
- -n 字符数:read命令只接受指定的字符数,就会执行
- -s:隐藏输入信息的数据,适用于机密信息的输入
举个例子:
#!/bin/bash
read -p "please input your name: " name
echo -e "\n" #换行
echo "I know your name is"$name
将以上代码存入read.sh中,执行结果如下:
image
网友评论