从零开始学习Linux(三十七):Shell基础之bash运算符

87 阅读1分钟

1、declare声明变量类型

命令格式:declare [+/-][选项] 变量名; 参数说明:

  • -:给变量设定类型属性;
  • +:取消变量的类型属性;

注意:取消命令是+,设定命令是-,和我们通常的认知相反!!!

选项说明:

  • i:将变量声明为整数型(integer);
  • x:将变量声明为环境变量;
  • p:显示指定变量的被声明的类型;

声明变量num1,执行 declare -p num1 查看num1的类型。 给变量设定整数类型 declare -i num1,再次查看num1的类型。 给变量取消整数类型 declare +i num1,再次查看num1的类型。

整个过程如下图所示:

2、数值运算

2.1、方法1

使用declare为结果变量定义类型。

[root@VM-0-8-centos sh]# aa=11
[root@VM-0-8-centos sh]# bb=22
[root@VM-0-8-centos sh]# declare -i cc=$aa+$bb
[root@VM-0-8-centos sh]# echo $cc

此种方式不支持小数运算

2.2、方法2

使用expr或let数值运算工具。

注意:命令$(expr $aa + $bb)之中,+左右必须要有空格, let与expr一样!!!

此种方式不支持小数运算

2.3、方法3

使用$((运算式)) 或$[运算式]。

强烈推荐使用这种方式!!!

此种方式不支持小数运算

3、运算符优先级

优先级运算符说明
13-, +单目负、单目正
12!, ~逻辑非、按位取反或补码
11*,/, %乘、除、取模
10+, -加、减
9<< , >>按位左移、按位右移
8<=, >=, < , >小于或等于、大于或等于、小于、大于
7== , !=等于、不等于
6&按位与
5按位异或
4|按位或
3&&逻辑与
2||逻辑或
1=,+=,-=,*=,/=,%=,&=, ^= ,|=, <<=, >>=赋值、运算且赋值

执行下方计算命令:

echo $(( (11+3)*3/2 ))
echo $(( 14%3 ))
echo $(( 1&&0 ))
echo $(( 1||0 ))

结果如下图所示: