美文网首页
“Linux命令行与shell脚本编程”-结构化命令

“Linux命令行与shell脚本编程”-结构化命令

作者: 刘小白DOER | 来源:发表于2020-09-12 20:59 被阅读0次

        结构化命令允许改变程序执行的顺序,if-then和case。

      if-then语句

        if command

        then

        commands

        fi

        if-then语句,if里面的命令执行成功(退出状态码是0),执行then部分的命令;如果退出状态码不为0,则执行其他值。

        if command

        then

        commands

        else

        commands

        fi

         if-then-else语句, if里面的命令执行成功(退出状态码是0),执行then部分的命令;如果退出状态码不为0,则执行else部分的命令。

    嵌套if语句

    在else语句里面添加if-then语句,也可以使用else的有另一种方式elif,这样就不需要写多个if-then语句,每块命令是根据是否返回退出状态码0来执行,语句格式是: 

        if command

        then

        commands

        elif  command

        then

        commands

        else

        commands

        fi

    test命令

        if-then语句不能测试命令退出状态之外的条件。

        if test conditon

        then

            connamds

        fi

        test命令列出的条件成立,test命令就会退出并返回退出状态码0。如果不写test,后面的条件将会以非零状态退出。bash可以定义另一种测试条件,方括号。test可判断三种条件:数值比较、字符串比较、文件比较。

        数值比较: [ n1 -eq n2 ]是否相等   , [ n1 -ge n2 ]是否大于等于 , [ n1 -gt n2 ]是否大于, [ n1 -le n2 ]是否小于等于, [ n1 -lt n2 ]是否小于, [ n1 -ne n2 ]是否不等于 。

        字符串比较: [ n1 = n2 ]是否相等, [ n1 != n2 ]是否不相等, [ n1 \< n2 ]小于 ,[ n1 \> n2 ]大于,[ -n str ]长度是否非零,[ -z str ]长度是否为零 。大小于是需要转义的,否则会被当做重定向符号。

        文件比较:[ -d file ]是否存在并是一个目录,[ -e file ]文件是否存在 …… [ -r file ]检查文件可读。

    复合条件:

        &&与计算

        ||或计算

    case命令:

        if-then-else会写出很长的语句,case命令会用列表格式来检查单个变量的多个值。

    case variable in

    pattern1 | patter2)  command1;;

    pattern3)  command2;;

    *) default commands;;

    esac

        

        

        

    相关文章

      网友评论

          本文标题:“Linux命令行与shell脚本编程”-结构化命令

          本文链接:https://www.haomeiwen.com/subject/nqqgektx.html