bash条件判断基础

判断的作用

  • 判断后续操作的提前条件是否满足
  • 如果满足执行一种命令
  • 不满足则执行另一种指令

条件测试类型:

  • 整型测试
  • 字符测试
  • 文字测试

 整数测试:比较两个整数谁大谁小,是否相等;

    二元测试:

      num1 操作符 num2

      -eq: 等于

      -ne: 不等于

      -le:小于等于

      -ge:大于等于 

      -lt:小于

      -gt: 大于


字符测试:比较两个字符串是否相等;

    双目录

           >:          大于

           <:          小于

           ==:        等于,等值比较

           =~:        左侧是字符串,右侧是一个模式,判定左侧的字符串能否被右侧的模式所匹配;                             通常只[[ ]]中使用,模式中可以使用行首、行尾锚定符;但模式不要加引导

           !=, <>:     不等于

    单目录

           -n 字符串:  字符串是否不空,不空为真,空则为假

           -z 字符串:  字符串是否为空,空则为真,不空则假


 文件测试:测试某个文件是否具有读权限、写权限、执行权限等;

    单目测试:

      -e file :         测试文件是否存在

      -a file :         测试文件是否存在

      -f file :         测试是否为普通文件

      -d     :            测试是否为目录文件

      -b somefile :     测试文件是否存在并且是否为一个块设备文件

      -c somefile :     测试文件是否存在并且是否为一个字符设备文件

      -h|-L somefile :     测试文件是否存在并且是否为符号链接文件

      -p somefile :     测试文件是否存在并且是否为管道文件:

      -S somefile :     测试文件是否存在并且是否为套接字文件:

      -r somefile:      测试其有效用户是否对此文件有读取权限

      -w somefile:      测试其有效用户是否对此文件有写权限

      -x somefile:      测试其有效用户是否对此文件有执行权限

      -s somefile:      测试文件是否存在并且不空

     双目测试:

      file1 -nt file2 : 测试file1是否比file2

      file1 -ot file2 : 测试file1是否比file2

      file1 -ef file2 :  测试file1和file2是否引用同一个文件   


bash编程之:逻辑运算:

    与运算:

      真 && 真 = 真 

      真 && 假 = 假

      假 && 真 = 假

      假 && 假 = 假

    或运算:

      真 || 真 = 真 

      真 || 假 = 真

      假 || 真 = 真

      假 || 假 = 假

    非运算:

      !真 = 假

      !假 = 真


bash编程之:组合条件测试

    与:条件1 &&条件2

      条件1为假,则最终结果一定为假,否则,条件2不予执行

      条件1为真,则最终条件结果决于后面条件,因此,条件2必须执行

    或:条件1 ||条件2

      条件1为真,则最终结果一定为真,否则,条件2不予执行

      条件1为假,则最终条件结果决于后面条件,因此,条件2必须执行

    非: 

      与的优先级大于或,或的优先级大于非


bash编程之:条件测试方法

     test 表达式

     [ 测试表达式 ]

     [[ 测试表达式 ]]


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


bash编程之:命令引用:

  1.引用命令的执行结果:使用`COMMAND`或$(COMMAND)

  2.引用命令执行是否成功的状态结果:一定是直接执行命令,此时需要执行结果重定向至/dev/null

bash编程之:脚本自动退出

  exit [n] 

        0表示成功(Zero - Success)

        非0表示失败(Non-Zero  - Failure)

        2表示用法不当(Incorrect Usage)

        127表示命令没有找到(Command Not Found)

        126表示不是可执行的


      用户和脚本进行交互:

        位置变量

        read命令

read -p "参数" 变量名

  位置参数轮替:

       #!/bin/bash

        echo "参数列表:$#"

        echo "参数列表:$@"

        echo""

        shift 2

       echo "参数列表:$#"

       echo "参数列表:$@"

        

       
       

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值