Shell学习笔记——算数运算与条件测试

算数运算

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替代













原文地址:https://www.cnblogs.com/Windeal/p/4284632.html