首页 > 代码库 > 15、自学——Linux的学习进度与任务【bash编程之条件判断】

15、自学——Linux的学习进度与任务【bash编程之条件判断】

bash编程之条件判断

bash编程之条件判断:判定后续操作的前提条件是否满足

          1、条件判断的常用判断类型(bash内生的):

              整数测试
              字符测试
              文件测试

          2、echo $?(执行状态返回值):

              0:正确
              1-255:错误

              布尔值:
                真 假
        3、逻辑运算:
              与运算:
                真 && 真 = 真(0)
                真 && 假 = 假(非0)
                假 && 真 = 假
                假 && 假 = 假

              或运算:
                真 || 真 = 真(0)
                真 || 假 = 真
                假 || 真 = 真
                假 || 假 = 假


              非运算:
                !真 = 假
                !假 = 真

         4、bash中如何做测试:test命令

            test 比较表达式
            [ 测试表达式 ]:表达式两端必须要有空格;bash的内生命令
            [[ 测试表达式 ]]:同上;bash脚本编程的关键字

            任何命令的执行结果也可以作为判断条件

        5、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、二元测试:(一般是用两个数进行比较)
            num1 操作符 num2
          操作符:
              -eq 等于
              -ne 不等于
              -le:小于等于
              -ge:大于等于
              -lt:小于[$num1 -lt $num2]
              -gt:大于[$num1 -gt $num2]
  
        2、bash知识点之脚本自动退出
            exit [n] n为不为0,1,127,255的数字

            条件测试:
                bash :每个命令,执行状态都有返回值
                  成功:0
                  失败:非0
                $?:

                脚本的状态返回值:脚本执行的最后一条命令:
                自定义脚本状态返回值:exit[n],获取返回值用$?

                引用命令的执行结果:使用`command`或$(command)
                引用命令执行成功与否的状态结果:一定是直接执行命令。此时,通常需要将执行结果重定向至/dev/null


            组合条件测试:对条件做逻辑运算

                  与:条件1&&条件2

                    条件1为假,则最终结果一定为假,否则,条件2不予执行
                    条件1为真,则最终条件结果决于后面条件,因此,条件2必须执行

                  或:条件1||条件2

                    条件1为真,则最终结果一定为真,否则,条件2不予执行
                    条件1为假,则最终条件结果决于后面条件,因此,条件2必须执行

                  非: !条件
                    与的优先级大于或,或的优先级大于非

bash编程之:字符测试,一般加引号

          双目:
            > : 大于
            < :小于

                 !=, <>: 不等于
            ==:等于,等值比较, 变量需要加引号
            =~:左侧是字符串,右侧是一个模式,判断左侧的字符串能否被右侧的模式所匹配:通常只在[[]]中使用

                         模式中可以使用行首、行尾锚定符,但是模式不要加引号

          单目:
            -n $stringVar: 字符串是否不空,不空为真,空则为假
            -z $stringVar:字符串是否为空,空则为真,不空则假:

15、自学——Linux的学习进度与任务【bash编程之条件判断】