linux - if的使用和判断条件

单分支语句结构

if [ 条件表达式 ]; then
    指令
fi

例如:

 

 

双分支语句结构

if [ 条件表达式 ]; then
    指令一
else
    指令二
fi

 例如:

 

条件表达式的左右,以及[ ]的左右都要有空格!  

字符判断:

-n str1        当串的长度大于0时为真(串非空) 

-z str1        当串的长度为0时为真(空串) 

文件表达式:

-d file     文件为目录为真 

-f file     文件为正规文件为真 

-s file     文件大小非0时为真 

-e file       如果file存在则为真

整数比较:

-eq 等于,如:if [ "$a" -eq "$b" ]
-ne 不等于,如:if [ "$a" -ne "$b" ]
-gt 大于,如:if [ "$a" -gt "$b" ]
-ge 大于等于,如:if [ "$a" -ge "$b" ]
-lt 小于,如:if [ "$a" -lt "$b" ]
-le 小于等于,如:if [ "$a" -le "$b" ]
< 小于(需要双括号),如:(("$a" < "$b"))
<= 小于等于(需要双括号),如:(("$a" <= "$b"))
> 大于(需要双括号),如:(("$a" > "$b"))
>= 大于等于(需要双括号),如:(("$a" >= "$b"))

&&  ||使用

在[  ]中不能用&&  ||

要用:

-a         与
-o        或
!        非

例如:

if [ $score -ge 0 -a $score -lt 60 ];
then echo "sorry,you are lost!"
elif [ $score -ge 60 -a $score -lt 85 ];
then echo "just soso!"
elif [ $score -le 100 -a $score -ge 85 ];
then echo "good job!"
else echo "input score is wrong , the range is [0-100]!"
fi

如果一定要用&& ||则要到[[  ]]中使用。

 

参考:

https://blog.csdn.net/xushiyu1996818/article/details/84545103

 

posted on 2021-09-06 17:26  TrustNature  阅读(5208)  评论(0编辑  收藏  举报