0%

读取变量

读取变量

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会将这个这个命令进行执行,替换为命令的输出结果,该过程称为命令替换

1
$(command)

交互式

上述方式是静态的在命令行或者脚本中使用赋值语句来给变量赋值,使用起来对用户并不友好,所以可以使用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

欢迎关注我的其它发布渠道