五、Shell编程--shell变量

1、变量分类
1)自定义变量:可以自己定义、修改和删除(以字母或数字开头,区分大小写)
2)预定义变量:bash预定义的变量,不可以直接修改。
3)位置变量:也就是命令行参数,通过命令行传递的执行参数
$n:n为1~9之间的数字,从1开始计数。
如:./test.sh first
脚本中:echo "$1" // 输出first
2、自定义变量
1)格式:变量名=变量值 (等号两边无空格,否则运行时找不到该变量)
如下:
firstv=20
secondv='user1'
2)引用变量1:$变量名或${变量名}
如下:
echo $firstv
echo $secondv
echo ${firstv}
注:使用大括号后可以紧跟其他字符,且解释器仍可以识别。
如下:
echo $firstvst // 可以识别firstv变量
echo ${firstv}st // 不可以识别firstv变量
3)赋值:如前可以用等号直接赋值,也可以通过read从键盘读取,还可以通过反引号命令结果赋值
如下:read -p "input a value:" 变量名
read -p "input a value: " thirdv
echo $thirdv
4)各种引号的意义
"": 双引号,运行使用$引用其他变量
firstv=20
echo "$firstv" // 输出:20
'' : 单引号,禁止引用其他变量,$被视作普通字符
firstv=20
echo '$firstv' // 输出为:$firstv
``: 反引号,执行一个命令,可以将其结果赋值给一个变量
fourthv=`echo 123` // 把命令的结果123赋值给fourthv
echo $fourthv // 输出为:123
5)预定义变量
$#:命令行位置参数的个数
$*:所有位置参数的内容
$?:上一条命令的执行状态,返回0表示正常,非0表示异常或出错
$0:当前执行的进程或程序名
6)数值变量运算
格式1:expr 变量1 运算符 变量2 ...
*赋值需要使用反引号,变量运算符之间要使用空格
sixv=`expr 1 + 2 \* 3 / 3`
echo "$sixv"
格式2:$((变量1 运算符 变量2))
*有空格皆可,可以直接赋值,常规语言运算符都可以,和expr有区别
fivev=$((1+3))
echo "$fivev"
expr常用运算符:
加:+
减:-
乘:\* 这里需要注意与常规语言不同
除:/
余:%


猜你喜欢

转载自blog.csdn.net/gosenkle/article/details/80153422