shell编程之运算符

文章目录
  1. 1. 声明变量类型declare
  2. 2. 数值运算
  3. 3. 变量测试

声明变量类型declare

declare语法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
declare [-afiprx] 变量名
参数说明:
- :设置属性
+ :取消属性
-a :定义为数组 array
-f :定义为函数 function
-i :定义为整数 integer
-p :显示变量被声明的类型
-r :定义为『只读』
-x :定义为环境变量

bash-3.2$ declare -i a=47
bash-3.2$ declare -i b=53
bash-3.2$ declare -i c=$a+$b
bash-3.2$ echo $c
100
bash-3.2$ declare -p c
declare -i c="100"

bash-3.2$ declare -a arr[0]=11 <==定义数组
bash-3.2$ declare -p arr
declare -a arr='([0]="11")'
bash-3.2$ declare -a arr[1]=22
bash-3.2$ declare -p arr
declare -a arr='([0]="11" [1]="22")'
bash-3.2$

bash-3.2$ echo ${arr} <==查看数组方法
11
bash-3.2$ echo ${arr[1]}
22
bash-3.2$ echo ${arr[*]}
11 22
bash-3.2$

数值运算

数值运算可以通过declare -i c=$a+$b进行,也可以用expr/$((运算式))/$[运算式]

1
2
3
4
5
6
7
8
9
10
11
12
bash-3.2$ dd=$(($a+$b))
bash-3.2$ echo $dd
100
bash-3.2$ ee=$(expr $a + $b) <==『+』两边必须有空格
bash-3.2$ echo $ee
100
bash-3.2$ ff=$(($a+$b))
bash-3.2$ echo $ff
100
bash-3.2$ gg=$[$a+$b]
bash-3.2$ echo $gg
100

shell支持的运算符有

shell运算符

变量测试

下面的运算符我的理解类似于java的?:三目运算符,比如第一行的x=${y-新值},意思是,如果y没有设置则x=新值,如果y为空值则x=空,如果y有值则x=$y。其他的类推

shell变量测试运算符

shell编程视频地址:http://www.imooc.com/learn/355