(1)注意只能整数:
加: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命令查看)
-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 '不等于'