Linux与shell脚本编程:运算符计算与常见的条件判断

一、运算符计算


(1)注意只能整数:

先让变量a,b分别为12,6

:expr 12 + 6         expr $a + $b      注意一定要加空格,不然就相当于字符串

       echo $[12 + 6]        echo $[a + b]

                  echo $((12 + 6))    echo $((a + b))

                 

:expr 12 - 6            expr $a - $b

       echo $[12 - 6]        echo $[a - b]

       echo $((12 - 6))     echo $((a - b))

:expr 12 \* 6        expr $a \* $b     注意要加转义符\,不然就相当于通配符

                  echo $[12 * 6]          echo $[a * b]

                  echo $((12 * 6))    echo $((a * b))

                 

 :expr 12 / 6            expr $a / $b

                   echo $((12 / 6))    echo $((a / b))

                   echo $[12 / 6]        echo $[a / b]

求余:expr 12 % 6         expr $a % $b

                   echo $((12 % 6))    echo $((a % b))

                   echo $[12 % 6]    echo $[a % b]

(2)小数:通过bc计算器
保留多少位小数可以通过scale,但是scale只对除法,取余数,乘幂 有效,对加减没有效

技巧:scale计算加减法可以通过除以1的方式

              echo "scale=2;(0.2+0.3)/1" | bc   #计算出0.2+0.3的和并保留俩位小数,此时bc计算器会省略掉个位数的0
              echo "scale=2;(1.2+1.3)/1" | bc   #计算出1.2+1.3的和并保留俩位小数
             

二、常见的条件判断

语法:[ 判断表达式 ]  注意 两边都需要有空格

(1)文件(夹)或者路径判断:

 -e  目标是否存在(exist)

 -d  是否为路径(directory)

-f  是否为文件(file)

举 例: [ -e foer.sh ] || touch foer.sh     #判断当前目录下是否有foer.sh这个文件,假如没有就创建出foer.sh文件

             

           

(2)权限判断:(可以通过ll命令查看)

        Linux与shell脚本编程:运算符计算与常见的条件判断_第1张图片

 -r  是否有读取权限(read)

 -w  是否有写入权限(write)

 -x  是否有执行权限(excute)

举例: [ -x 123.txt ] && echo '有执行权限'

           因为没有执行权限x,所以没有输出

(3)整数值(int型判断

            -eq 等于(equal)
            -ne 不等于(not equal)
            -gt 大于(greater than)
            -lt 小于(lesser than)
            -ge 大于或者等于(greater or equal)
            -le 小于或者等于(lesser or equal)

举例: [ 9 -gt 8 ] && echo '大于'

           


(4)小数(浮点型)判断
            [ `echo '1.2 < 1.3' | bc` -eq 1 ] && echo '小于'
            

(5)字符串判断:
            =    相等
            !=   不相等

            [ 'kkkkk' != 'kkkk' ] && echo '不等于'

           

你可能感兴趣的:(运算符计算,条件判断,Linux与shell脚本)