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) 编辑 收藏 举报