算术运算

bash中的算术运算:help let
+, -, *, /, %取模(取余), **(乘方)
实现算术运算:
(1) let var=算术表达式
(2) var=$[算术表达式]
(3) var=$((算术表达式))
(4) var=$(expr arg1 arg2 arg3 ...)
(5) declare –i var = 数值
(6) echo ‘算术表达式’ | bc
乘法符号有些场景中需要转义,如*
bash有内建的随机数生成器:$RANDOM(0-32767)
echo $[$RANDOM%50] :0-49之间随机数
bash中算数运算时用let关键字来声明后面的语句进行算数运算。
语法:let value=运算表达式

赋值运算

    与类C语言一样,shell中也可以使用:

    +=、++、-=、--、*=、/=、%=

来进行赋值运算,语句格式与算数运算相同。

    在赋值运算时应注意value=++value与value=value++的区别。

    value=++value时会先对右值value进行累加运算,再对左值进行赋值;

    value=value++时会先对左值进行赋值,再对右值进行累加运算。

逻辑运算

    顺序执行 ; :按照语句中命令的先后而顺序执行。

    与运算 -a:全真为真,有假则假。

    或运算 -o:全假为假,有真则真。

    非运算 !:非真为假,非假为真。

    短路与 &&:语句1为假,则逻辑必假,语句2不执行;

                        语句1为真,语句2必执行,逻辑真假由语句2决定。

    短路非 ||:语句1为真,则逻辑必真,语句2不执行;

                    语句1为假,语句2必执行,逻辑真假由语句2决定。

[root@CentOS7 bin]# [ 1 -eq 1 ] && [ 0 -gt 1 ]
[root@CentOS7 bin]# echo $?
1
[root@CentOS7 bin]# [ 1 -eq 1 ] && [ 3 -gt 1 ]
[root@CentOS7 bin]# echo $?
0