目录
5、关系运算符是数字之间的:兼容数字字符串,不兼容float型数字
运算符家族
参考文章: https://www.runoob.com/linux/linux-shell-basic-operators.html
总结注意点
1、-eq 和= 、==的相同与不同点
-eq:运算符两侧都要是数字,或者能转成整数数字的
= 和 == 在操作数字时和-eq一样
=不在判断语句中就是赋值 运算符不能加空格
#!/bash/bin
if [ $1 = "test" ];then
echo "=test"
fi
if [ $1 = 10 ];then
echo "=10"
fi
if [ $1 = "11" ];then
echo "=11"
fi
if [ $1 == "test" ];then
echo "==test"
fi
if [ $1 == 10 ];then
echo "==10"
fi
if [ $1 == "11" ];then
echo "==11"
fi
if [ $1 -eq "test" ];then
echo "-eq"
fi
if [ $1 -eq 10 ];then
echo "-eq=10"
fi
if [ $1 -eq "11" ];then
echo "-eq=11"
fi
if [ $1 -eq "11.3" ];then
echo "-eq=11.3"
fi
2、加减乘除运算符需要借助expr命令
3、运算符前后要有空格,但是=号作为赋值运算符就不能加等号
4、乘号*需要区分,用\*
5、关系运算符是数字之间的:兼容数字字符串,不兼容float型数字
下面是运算大家族,实践尝试一下吧
算数运算符---操作对象是数字
+ - * \ %
关系运算符---操作对象是数字
-eq(有一样功效的= == 单等号、双等号) -ne -gt -lt -ge -le
布尔运算符
! 非
-a 与
-o 或
逻辑运算符
&& 与
|| 或
字符串运算符
!= -z -n
文件测试运算符
-d file 检测文件是否是目录,如果是,则返回 true。 [ -d $file ] 返回 false。
-f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true。
-r file 检测文件是否可读,如果是,则返回 true。 [ -r $file ] 返回 true。
-w file 检测文件是否可写,如果是,则返回 true。 [ -w $file ] 返回 true。
-x file 检测文件是否可执行,如果是,则返回 true。 [ -x $file ] 返回 true。
-s file 检测文件是否为空(文件大小是否大于0),不为空返回 true。 [ -s $file ] 返回 true。
-e file 检测文件(包括目录)是否存在,如果是,则返回 true。