本文为学习慕课视频所做的笔记,可点击链接查看视频详解。
https://www.imooc.com/learn/355
前文
shell变量的特点:弱类型、默认字符串型。如例子所示:
[root@localhost ~]# a=1
[root@localhost ~]# b=2
[root@localhost ~]# c=$a+$b
[root@localhost ~]# echo $c
1+2
可见,“+”只是连接字符串用,无法进行数值运算。要进行shell运算,有以下三种方法:
方法一:declare声明变量类型
[root@localhost ~]# a=1
[root@localhost ~]# b=2
[root@localhost ~]# declare -i c=$a+$b
[root@localhost ~]# echo $c
3
declare参数说明如下:
[root@localhost ~]# declare [+/-] [选项] 变量名
- 第一个参数 [-/+]:
“-”:给变量设定类型属性
“+”:取消变量的类型属性
- 第二个参数 [选项]:
“i”:整型
“a”:数组型(如:“-a”将变量声明为数组型)
[root@localhost ~]# arr[0]=one
[root@localhost ~]# arr[1]=two
[root@localhost ~]# declare -a arr[2]=three
[root@localhost ~]# echo ${arr} #不加下标默认查看第一个变量
one
[root@localhost ~]# echo ${arr[2]}
three
[root@localhost ~]# echo ${arr[*]} #查看所有变量
one two three
“x”:环境变量
#export只是简化命令,本质是declare命令起作用
[root@localhost ~]# declare -x a=1
[root@localhost ~]# export a=1
“r”:只读变量(如:“-r”将变量声明为只读变量)
“p”:用于显示指定变量的被声明类型
[root@localhost ~]# declare -p c
declare -i c="3"
方法二:expr或let数值运算
[root@localhost ~]# a=1
[root@localhost ~]# b=2
#注意:“+”号左右两侧必须有空格
[root@localhost ~]# d=$(expr $a + $b)
[root@localhost ~]# echo $d
3
方法三:“$((运算式))” 或 “$[运算式]”
[root@localhost ~]# a=1
[root@localhost ~]# b=2
[root@localhost ~]# c=$(($a+$b))
[root@localhost ~]# d=$[$a+$b]
[root@localhost ~]# echo $c $d
3 3