Shell 脚本之 if 判断

本文总结了if判断语句在运维环境中最常用的几种语句,欢迎探讨!

 

一、if语句的语法

if [ 条件判断 ]; then
    ... ...
elif [ 条件判断 ]; then
    ... ...
else
    ... ...
fi

 

 

二、数字大小比较

[ $a -eq $b ]  判断 a 是否等于 b
[ $a -ne $b ]  判断 a 是否不等 b
[ $a -gt $b ]  判断 a 是否大于 b
[ $a -ge $b ]  判断 a 是否大等 b
[ $a -lt $b ]  判断 a 是否小于 b
[ $a -le $b ]  判断 a 是否小等 b

其中a和b均为整数型变量

 

三、字符串的对比和判断

[root@scott ~]# str1=abc; str2=abd

[ -z str ]        判断 str 是否长度为0
[ -n str ]        判断 str 是否长度不为0
[ str1 == str2 ]  判断 str1 与 str2 是否相同
[ str1 != str2 ]  判断 str1 与 str2 是否不同
[ str1 \> str2 ]  判断 str1 是否大于 str2
[ str1 \< str2 ]  判断 str1 是否小于 str2
[[ str1 > str2 ]] 判断 str1 是否大于 str2
[[ str1 < str2 ]] 判断 str1 是否小于 str2

字符串str可以是数字或是字母

 

四、逻辑判断

[ $a -lt $b -a $str1 == $str2 ]     a 大于 b, 而且 str1 与 str2 相等  (&&)
[ $a -lt $b -o $str1 == $str2 ]     a 大于 b, 或者 str1 与 str2 相等  (||)
[[ $a -gt $b && $str1 == $str2 ]]   a 大于 b, 而且 str1 与 str2 相等  (&&)
[[ $a -gt $b || $str1 == $str2 ]]   a 大于 b, 或者 str1 与 str2 相等  (||)
[ $a -lt $b ] && [ $str1 == $str2 ] a 大于 b, 而且 str1 与 str2 相等  (&&)
[ $a -lt $b ] || [ $str1 == $str2 ] a 大于 b, 或者 str1 与 str2 相等  (||)
-a    "and"-o    "or"&&||    或
注意方括号的作用和层数

 

五、文件和目录的判断

[ -e file ]  判断文件是否存在
[ -f file ]  判断文件是否是普通文件
[ -d file ]  判断文件是否是目录文件
[ -b file ]  判断文件是否块设备文件
[ -c file ]  判断文件是否字符设备文件
[ -s file ]  判断文件是否是非空文件

[ -r file ]  判断文件是否可读
[ -w file ]  判断文件是否可写
[ -x file ]  判断文件是否可执行

 

posted @ 2019-12-25 19:40  龙骑士老尹  阅读(961)  评论(0编辑  收藏  举报