bash语法之条件判断

通过一个if语句里的对某个特定的条件给予索要结果。当出现某种结果是我们希望程序在这种特定的结果下做些什么事情,就在该语句下写出来。反之就不能进行某些操作;这个和我们生活中遇到的事情是一样的。

    例如:今天10号到了每月要发薪水的时间了,财务需要做一个if判断了,索要条件的结果如下:
    if 条件1:账户里有钱吗?√满足&&条件2:老板让发薪水吗?√满足&&条件3:财务是否知道每个人的银行信息满足!
        语句1:今天发薪水!
    结束:
条件表示式里的各种原因并不在判断语句考虑的范围之内,只对结果是否满足加以考虑。什么意思呢? 就是说在这个if判断里面,条件1:对于钱怎么来的不加以考虑,关键是是否有钱;条件2:老板是否被农民工胁迫不加以考虑,关键是老板同意;条件3:财务对每个人的银行信息是否准确不加以判断,只对是否有对应人的银行信息加以判断。所以如果想通过if判断完成自己想做的事情,对应要判断的条件要一定要考虑清楚,需要对哪种结果加以判断。

条件判断中很多机制其中常见的机制-“ 比较”

条件判断的常用判断类型:

  • 整数测试:判断数字之前的关系的:大小,相等,大于小于等
  • 字符测试:判断字符串之间的关系,是否相同,是否为空等
  • 文件测试:判断文件是否存在,类型是否匹配,等等
在所有的判断中,条件的成立都是靠命令状态返回值来实现的:“ $?”
      0:正确
      1-255:错误
  • 逻辑运算:非0为假,0为真
    • 与运算:&&
    • 或运算:||
    • 非运算:! :结果取反

bash 条件判断语法:放在if后面对需要判断的内容放在

    text 判断表达式
    [ 判断表达式 ]  // [  ] 内侧两边必须有空格,否则为语法错误
    [[ 判断表达式 ]]

bash 条件判断用的关键字为:if

又分为多分支

单分支:
    if 条件; then
      分支1;
    fi
双分支:
    if 条件; then
      分支1;
    else 
      分支2;
    fi
多分支:
    if 条件; then
          分支1;
    elif 条件2; then 
          分支2;
    elif 条件3; then 
         分支3;
    ...
    else 
         分支n;
    fi

只要命令用作条件,就表示引用的是其状态结果(即执行成功与否),而非命令的输出结果,因此,不能使用命令替换符.

整数测试

   二元测试:满足条件是真,否则是假
  • num1 操作符 num2
    • -eq 等于 [ num1eqnum2 ]
    • -ne 不等于
    • -le:小于等于
    • -ge:大于等于
    • -lt:小于
    • -gt:大于

字符测试

双目:
     > : 大于
     < :小于
     ==:等于,等值比较
     =~:左侧是字符串,右侧是一个模式,判断左侧的字符串能否被右侧的模式所匹配:通常只在[[]]中使用
        模式中可以使用行首、行尾锚定符,但是模式不要加引号
     !=, <>: 不等于
   单目:
     -n 字符串: 字符串是否不空,不空为真,空则为假
     -z 字符串:字符串是否为空,空则为真,不空则假:

文件测试

通常就是测试文件是否存在,文件是否是特定的某个类型等

单目测试

测试文件是否存在;是为真,不是则为假
  • -e /路径/file:测试文件是否存在
  • -a /路径/file:测试文件是否存在
对文件类型的测试
  • -f /路径/file: 测试文件是否为普通文件
  • d /路径/somefile:测试文件是否为目录文件
  • -b /路径/somefile :测试文件是否存在并且是否是一个块设备
  • -c /路径/somefile :测试文件是否存在,并且为为字符设备
  • -h /路径/somefile :测试文件是否存在,并且为符号链接文件
  • -l 和-h 同样
  • -p /路径/somefile :测试文件是否存在,并且为管道文件
  • -S 同样
当前的执行用户对此文件有读取权限
  • -r /路径/somefile
当前的执行用户对此文件有写权限
  • -w /路径/somefile
当前的执行用户对此文件有执行权限
  • -x /路径/somefile
测试文件是否为空
  • -s /路径/somefile 测试文件是否存在并且不为空

双目测试

测试file1是否比file2更 新一些
  • file1 -nt file2 :
测试file1是否比file2更 老一些


  • file1 -ot file2 :

如果文件2不存在,那么它也认为文件1更新

bash知识点之脚本自动退出

exit n n为不为0,1,127,255的数字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值