回覆列表
  • 1 # 使用者2458114238191884

    1、整數比較:

    [plain] view plain copy

    -eq 等於,如:if [ "$a" -eq "$b" ] 或 if [ $a -eq $b ]

    -ne 不等於,如:if [ "$a" -ne "$b" ]

    -gt 大於,如:if [ "$a" -gt "$b" ]

    -ge 大於等於,如:if [ "$a" -ge "$b" ]

    -lt 小於,如:if [ "$a" -lt "$b" ]

    -le 小於等於,如:if [ "$a" -le "$b" ]

    == 等於,如:if if (("$a" == "$b"))

    > 大於(需要雙括號),如:(("$a" > "$b"))

    >= 大於等於(需要雙括號),如:(("$a" >= "$b"))

    特別說明的是(())字元和括號之間不需要留空格,但[[ ]],[]要求比較嚴格,需要留空格。

    2、字串比較,上面的-eq,-nq等公式只適用於數字比較,不適用於字元比較

    [plain] view plain copy

    = 等於,如:if [ "$a" = "$b" ]

    == 等於,如:if [ "$a" == "$b" ],與=等價

    [[ $a == z* ]] # 如果$a以"z"開頭(模式匹配)那麼將為true

    [[ $a == "z*" ]] # 如果$a等於z*(字元匹配),那麼結果為true

    [ $a == z* ] # File globbing 和word splitting將會發生

    [ "$a" == "z*" ] # 如果$a等於z*(字元匹配),那麼結果為true

    3、括號之間的區別:

    [[ ]],[]對括號內變數要求嚴格且且敏感,但(())則相對寬鬆一些

    [plain] view plain copy

    1、if [[ $a == $b ]] 和 if [[ $a == $b ]] 等價

    但if [[ $a == $b ]] 和if [[ a == b ]] 不等價

    2、if (($a == $b)) 和 if (($a = $b))等價

    if (($a == $b)) 和 if ((a == b)) 等價

    4、多條件判斷:

    &&和||適用於[[ ]]和(),-a和-o適用於[]中

    舉例如下:

    [plain] view plain copy

    if ((i == 1)) 和 if [ "$i" == 1 ]等價

    if [[ "$i" = 1 && "$j" = 2 ]] 和 if ((i = 1)) || ((j = 2))

    5、其它說明:

    != 不等於,如:if [ "$a" != "$b" ]

    這個運算子將在[[]]結構中使用模式匹配.

    if [[ "$a"

    if [ "$a" \

    注意:在[]結構中"

    > 大於,在ASCII字母順序下.如:

    if [[ "$a" > "$b" ]]

    if [ "$a" \> "$b" ]

  • 中秋節和大豐收的關聯?
  • 動物吃生肉為什麼不會拉肚子?