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