读取变量
shell变量包括两种:环境变量和用户定义变量。环境变量用于定制shell的运行环境,保证shell的正确运行,可以参考环境变量
那一节来进行配置;用户定义的变量在shell脚本中用来作为临时的存储空间
1 2 3 4 5 6 7 8 9 10 11 12
| #设置变量 # 变量名=变量值 之间没有空格 myvar=this_is_variable # 如果变量值包含空格,需要使用引号 myvar1="this is variable1" # 使用变量,这里可以有引号也可以没有引号,还可以使用${varName} myvar2=$myvar1 myvar3="$myvar1" # 如果变量后有其他英数单词要用${},否则shell无法正确判断变量 echo Hi,${myvar1}Mm # 如果是多个变量连接的话需要引号 myvar4="$myvar $myvar1"
|
注意:设定变量时,等号两边不能有空格
可以通过$variable来读取变量,如果变量是一段命令的话,可以将命令放在括号中,shell会将这个这个命令进行执行,替换为命令的输出结果,该过程称为命令替换
交互式
上述方式是静态的在命令行或者脚本中使用赋值语句来给变量赋值,使用起来对用户并不友好,所以可以使用read来接收键盘输入的变量,与位置参数变量相比更适合于人机交互
1 2 3 4 5 6 7 8
| read [选项] [变量] ------------------------ -s 隐藏输入(密码) -p 提示信息 -t 读取值时的等待时间,单位s -n 限制字符个数 -a name 把词读入到name数组中去 -e 把一整行读入到第一个变量中
|
1 2 3 4 5 6
| #!/bin/bash # 将键盘输入的内容赋给num1变量 read -p "输入数字1: " num1 read -p "输入数字2: " num2 #$((运算式))可以进行数值运算 echo "两个数之和为"$(($num1 + $num2))
|
1 2 3 4
| zhanghe@bogon shell % sh add.sh 输入数字1: 13 输入数字2: 12 两个数之和为25
|