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

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 ))

结果如下图所示:

你可能感兴趣的:(从零开始学习Linux(三十七):Shell基础之bash运算符)