shell if 多个条件_【Shell】20天学会shell脚本命令(3)IF条件语句

一、问题

1.1、环境

电脑环境:Windows 10;

JDK环境: Jdk1.8;

Docker版本:Server Version: 19.03.3

1.2、问题

在Shell脚本语句中,我们肯定会遇到条件判断,那么shell的条件判断该如何编写呢?

二、解答

2.1、数值判断;

格式:

if 

1、正确实例:

#!/bin/bash

正确实例截图:

v2-4cae536c21a6acfddc8d6d0105a559b1_b.jpg

2、错误实例

#!/bin/bash

错误实例的截图:

v2-09de2b1a04d93691348fc6898afe54e0_b.jpg

我们得出了完全相反的结论,然而,根据常识,我们明显知道,9不可能大于10的;那么,问题出在哪里呢?原来,双方括号【[[ 条件 ]]】如果要比较大小,必须使用转义的大鱼号,小于号,等于号;如上图中,不能直接使用大于号,而应该讲大于号换成【-gtl】;并且,双中括号内侧必须两内侧边空格,否则会报错;但是,如果使用双小括号,就可以不用空格,更简单明了; 将上面的语句改成下面的样子即可:

v2-e259e037eacd3170c82a8588791688ce_b.jpg

关于小括号和中括号的用法,可以看下面的总结; 2.2、目录是否存在 目录的判断需要使用中括号,中括号里的逻辑运算符,可以总结如下:

  1. -f:判断文件是否存在;
  2. -d:判断目录是否存在;
  3. -eq:等于,整数比较;
  4. -ne:不等于,整数比较;
  5. -lt:小于;
  6. -gt:大于;
  7. -le:小于或等于;
  8. -ge:大于或等于;
  9. -a:and,表示并的关系;
  10. -o:or,或者,表示并的关系;
  11. -z:空字符串;
  12. !:非;

实例: 如果目录不存在,则创建目录;

#!/bin/bash

注意感叹号和-d之间有空格!!!

v2-0bd560fd145b86fe7a25274fe16d9129_b.jpg

2.3、测试脚本是否正确 格式:

/bin/bash -n fileExist.sh

如果没有问题,则会没有任何提示:

v2-afac1e17bdc412e2177d2b59a953bb11_b.png

如果有问题,则:

v2-d4127de81d5499ce7374ff7ab77794e9_b.jpg

(我这里多打了一个中括号);但是,这个方法只能检查格式错误,不能检查其他的错误,立刻如,如果我把中括号那里换成了1,则不会报错;

2.4、分数判断实例:

#!/bin/bash

截图:

v2-d7d226eb64050607784b4031fae53ef2_b.jpg

2.5、注意

1、小括号可以使用>,<,=;并且括号内外可以没有空格;

2、中括号括号内侧必须要有空格;

3、中括号不可以使用<,>,=;而必须使用转义的逻辑判断条件;

4、赋值号前后不能有空格;

本篇说明内容完毕;

三、总结

欢迎关注我的

CSDN博客https://blog.csdn.net/River_Continent

微信公众号:幕桥社区

v2-d298151facd0214ba1ad183606372162_b.jpg

知乎:张牧野, https://www.zhihu.com/people/zhang-mu-ye-37-76/activities

简书https://www.jianshu.com/u/02c0096cbfd3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值