Linux笔记25-Bash的运算符

1 数值运算与运算符

出现上面的原因是,Linux中的变量默认都是字符串类型的。

 

◆ declare声明变量类型

[root@localhost ~]# declare [+/-][选项] 变量名

选项:

-: 给变量设定类型属性

+: 取消变量的类型属性

-i: 将变量声明为整数型(integer)

-x: 将变量声明为环境变量

-p: 显示指定变量的被声明的类型

扩展:将一个变量声明为环境变量,使用 export,此时查看会看到 –x

 

◆ 数值运算

→ 方法1

[root@localhost ~]# aa=11

[root@localhost ~]# bb=22 #给变量aa和bb赋值

[root@localhost ~]# declare -i cc=$aa+$bb

→方法2:expr或let数值运算工具 (不是很推荐)

[root@localhost ~]# aa=11

[root@localhost ~]# bb=22 #给变量aa和变量bb赋值

[root@localhost ~]# dd=$(expr $aa + $bb) #dd的值是aa和bb的和。注意“+”号左右两侧必须有空格

→方法3:“$((运算式))”或“$[运算式]”(比较直观,强烈推荐)

[root@localhost ~]# aa=11

[root@localhost ~]# bb=22

[root@localhost ~]# ff=$(( $aa+$bb ))

[root@localhost ~]# gg=$[ $aa+$bb ]

Linux笔记25-Bash的运算符_第1张图片

 

◆ 运算符

优先级 运算符 说明

13 -, + 单目负、单目正

12 !, ~ 逻辑非、按位取反或补码

11 * , / , % 乘、除、取模

10 +, - 加、减

9 << , >> 按位左移、按位右移

8 < =, > =, < , > 小于或等于、大于或等于、小于、大于

7 == , != 等于、不等于

6 & 按位与

5 ^ 按位异或

4 | 按位或

3 && 逻辑与

2 || 逻辑或

1

=,+=,-=,*=,/=,%=,&=, ^=,

|=, <<=, >>=

赋值、运算且赋值

 

  • 备注:这里的“优先级”,数值越高,优先级越高!

Linux笔记25-Bash的运算符_第2张图片

[root@localhost ~]# aa=$(( (11+3)*3/2 )) #虽然乘和除的优先级高于加,但是通过小括号可以调整运算优先级

[root@localhost ~]# bb=$(( 14%3 )) #14不能被3整除,余数是2

[root@localhost ~]# cc=$(( 1 && 0 )) #逻辑与运算只有想与的两边都是1,与的结果才是1,否则与的结果是0

 

2 变量测试与内容替换

Linux笔记25-Bash的运算符_第3张图片

 

例子1:测试x=${y-新值}

[root@localhost ~]# unset y #删除变量y

[root@localhost ~]# x=${y-new} #进行测试

[root@localhost ~]# echo $x

New #因为变量y不存在,所以x=new

 

[root@localhost ~]# y="" #给变量y赋值为空

[root@localhost ~]# x=${y-new} #进行测试

[root@localhost ~]# echo $x

 

[root@localhost ~]# y=old #给变量y赋值

[root@localhost ~]# x=${y-new} #进行测试

[root@localhost ~]# echo $x #结果:old

你可能感兴趣的:(Linux笔记)