zoukankan      html  css  js  c++  java
  • Shell if else语句

    if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if ... else 语句:

    • if ... fi 语句;
    • if ... else ... fi 语句;
    • if ... elif ... else ... fi 语句。

    1) if ... else 语句

    if ... else 语句的语法:

    if [ expression ]
    then
       Statement(s) to be executed if expression is true
    fi

    如果 expression 返回 true,then 后边的语句将会被执行;如果返回 false,不会执行任何语句。

    最后必须以 fi 来结尾闭合 if,fi 就是 if 倒过来拼写,后面也会遇见。

    注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误。

    举个例子:

    1. #!/bin/sh
    2. a=10
    3. b=20
    4. if [ $a == $b ]
    5. then
    6. echo "a is equal to b"
    7. fi
    8. if [ $a != $b ]
    9. then
    10. echo "a is not equal to b"
    11. fi

    运行结果:

    a is not equal to b

    2) if ... else ... fi 语句

    if ... else ... fi 语句的语法:

    if [ expression ]
    then
       Statement(s) to be executed if expression is true
    else
       Statement(s) to be executed if expression is not true
    fi

    如果 expression 返回 true,那么 then 后边的语句将会被执行;否则,执行 else 后边的语句。

    举个例子:

    1. #!/bin/sh
    2. a=10
    3. b=20
    4. if [ $a == $b ]
    5. then
    6. echo "a is equal to b"
    7. else
    8. echo "a is not equal to b"
    9. fi

    执行结果:

    a is not equal to b

    3) if ... elif ... fi 语句

    if ... elif ... fi 语句可以对多个条件进行判断,语法为:

    if [ expression 1 ]
    then
       Statement(s) to be executed if expression 1 is true
    elif [ expression 2 ]
    then
       Statement(s) to be executed if expression 2 is true
    elif [ expression 3 ]
    then
       Statement(s) to be executed if expression 3 is true
    else
       Statement(s) to be executed if no expression is true
    fi

    哪一个 expression 的值为 true,就执行哪个 expression 后面的语句;如果都为 false,那么不执行任何语句。

    举个例子:

    1. #!/bin/sh
    2. a=10
    3. b=20
    4. if [ $a == $b ]
    5. then
    6. echo "a is equal to b"
    7. elif [ $a -gt $b ]
    8. then
    9. echo "a is greater than b"
    10. elif [ $a -lt $b ]
    11. then
    12. echo "a is less than b"
    13. else
    14. echo "None of the condition met"
    15. fi

    运行结果:

    a is less than b


    if ... else 语句也可以写成一行,以命令的方式来运行,像这样:

    1. if test $[2*3] -eq $[1+5]; then echo 'The two numbers are equal!'; fi;


    if ... else 语句也经常与 test 命令结合使用,如下所示:

    1. num1=$[2*3]
    2. num2=$[1+5]
    3. if test $[num1] -eq $[num2]
    4. then
    5. echo 'The two numbers are equal!'
    6. else
    7. echo 'The two numbers are not equal!'
    8. fi

    输出:

    The two numbers are equal!

    test 命令用于检查某个条件是否成立,与方括号([ ])类似。

  • 相关阅读:
    mac os programming
    Rejecting Good Engineers?
    Do Undergrads in MIT Struggle to Obtain Good Grades?
    Go to industry?
    LaTex Tricks
    Convert jupyter notebooks to python files
    How to get gradients with respect to the inputs in pytorch
    Uninstall cuda 9.1 and install cuda 8.0
    How to edit codes on the server which runs jupyter notebook using your pc's bwroser
    Leetcode No.94 Binary Tree Inorder Traversal二叉树中序遍历(c++实现)
  • 原文地址:https://www.cnblogs.com/yang-hao/p/5969252.html
Copyright © 2011-2022 走看看