Linux shell算术运算&逻辑运算&布尔运算符


算数运算

expr(注意乘法)

ptmax@ubuntu:~$ a=123
ptmax@ubuntu:~$ b=789
# 加法
ptmax@ubuntu:~$ c=`expr "$a" + "$b"` #c=`expr $a + $b`也可
ptmax@ubuntu:~$ echo $c
912
#减法
ptmax@ubuntu:~$ c=`expr $a - $b`
ptmax@ubuntu:~$ echo $c
-666
#整除
ptmax@ubuntu:~$ c=`expr $a / $b`
ptmax@ubuntu:~$ echo $c
0
#乘法
ptmax@ubuntu:~$ c=`expr $a \* $b` #乘号前必须加'\'
ptmax@ubuntu:~$ echo $c
97047

$[表达式](无需注意乘法)

#加法
ptmax@ubuntu:~$ c=$[a+b]
ptmax@ubuntu:~$ echo $c
912
#减法
ptmax@ubuntu:~$ c=$[a-b]
ptmax@ubuntu:~$ echo $c
-666
#整除
ptmax@ubuntu:~$ c=$[a/b]
ptmax@ubuntu:~$ echo $c
0
#乘法
ptmax@ubuntu:~$ c=$[a*b]
ptmax@ubuntu:~$ echo $c
97047
ptmax@ubuntu:~$ 

逻辑运算

注意 [[表达式]] 写法

#!/bin/bash
# author:菜鸟教程
a=10
b=20

if  test $a -lt 100 && test $b -gt 100  #或者[[ $a -lt 100 && $b -gt 100 ]]
then
   echo "返回 true"
else
   echo "返回 false"
fi

if  test $a -lt 100 || test $b -gt 100 #或者[[ $a -lt 100 || $b -gt 100 ]]
then
   echo "返回 true"
else
   echo "返回 false"
fi

布尔运算符

注意 [![ a !=b ]] 与 [ a ==b ] 含义相同

a=10
b=20

if [ $a -lt 100 -a $b -gt 15 ]
then
   echo "$a 小于 100 且 $b 大于 15 : 返回 true"
else
   echo "$a 小于 100 且 $b 大于 15 : 返回 false"
fi

if [ $a -lt 100 -o $b -gt 100 ]
then
   echo "$a 小于 100 或 $b 大于 100 : 返回 true"
else
   echo "$a 小于 100 或 $b 大于 100 : 返回 false"
fi

你可能感兴趣的:(Linux shell算术运算&逻辑运算&布尔运算符)