算数运算
1. 使用let命令
#!/sbin/bash var1=2 var2=3 let sum=var1+var2 echo $sum
使用let命令式,变量前不需要加$号
只用于整数运算,不适用浮点数
2. 使用$[...]
[]的使用与let类似
#!/sbin/bash var1=2 var2=3 sum=$[ var1+var2 ] echo $sum
通let一样,变量不需要使用$,但是计算结果需要在[前使用$
只用于整数运算,不适用浮点数
3 使用$((...))
#!/sbin/bash var1=2 var2=3 sum=$((var1+var2)) echo $sum
用法类似于$[...]
只用于整数运算,不适用浮点数
4 expr
#!/sbin/bash var1=2 var2=3 sum=`expr $var1 + $var2` echo $sum
注意 反单引号```的使用,还有变量前需要使用$,另运算法两边需要有空格
5 可以用于浮点数计算的bc工具
#!/sbin/bash var1=2.6 var2=3 sum=`echo "$var1 * $var2" | bc` echo $sum
bc工具还可以通过scale进行精度设置,并且具有进制转换等功能。
条件测试
算数比较
比较运算符:
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
用法如下:
[ $var1 -eq $var2 ]逻辑运算符
-a 且
-o 或
用例:
[ $var1 -eq 0 -a $var2 -ne 2 ]文件测试
[ -f $file_var ]<span style="white-space:pre"> </span>//判断是否为普通文件或路径,是的话返回真 [ -x $var ] //判断是否为可执行文件 [ -d $var ] //判断是否为目录 [ -e $var ] //判断文件是否存在 [ -c $var ] //判断是否为字符设备文件 [ -b $var ] //判断是否为块设备文件 [ -w $var ] //判断文件是否可写 [ -r $var ] //判断文件是否可读 [ -L $var ] //判断文件是否为符号链接
用法
if condition then
fpath="/etc/passwd" if [ -e $fpath ]; then echo "$fpath exist!" else echo "$fpath exist!" fi
字符串比较
字符串比较可以直接使用 == > < >= <=符号
-z // 判断是否为空字符串 -n //判断是否为非空字符串
判断表达式 [ ] 可以用test替代