Bash if語(yǔ)句

2022-05-06 16:00 更新

if語(yǔ)句在順序執(zhí)行代碼語(yǔ)句的流程中執(zhí)行條件性任務(wù)。根據(jù)設(shè)置的條件,判斷是否運(yùn)行一段代碼語(yǔ)句。

基礎(chǔ)

if語(yǔ)句中,如果判斷為true,則執(zhí)行給定的代碼語(yǔ)句進(jìn)行相關(guān)操作。如果判斷為false,則略過(guò)給定的代碼語(yǔ)句不進(jìn)行相關(guān)操作。 基本語(yǔ)法:

if [ expression ];
then
statements
fi

注:
expression 是判斷表達(dá)式。
statements 是給定的執(zhí)行語(yǔ)句。

  • 結(jié)合&&邏輯運(yùn)算符使用多個(gè)條件:
    if [ expression_1 ] && [ expression_2 ];
    then
    statements
    fi
  • 結(jié)合||邏輯運(yùn)算符使用多個(gè)條件:
    if [ expression_1 ] || [ expression_2 ];
    then
    statements
    fi
  • 同時(shí)使用&&||邏輯運(yùn)算符:
    if [[ expression_1 && expression_2 || expression_3 ]];
    then
    statements
    fi

示例:

#!/bin/bash


## TRUE && TRUE
if [ 8 -gt 6 ] && [ 10 -eq 10 ];
then
echo "Conditions are true"
fi


## TRUE && FALSE
if [ "mylife" == "mylife" ] && [ 3 -gt 10 ];
then
echo "Conditions are false"
fi

執(zhí)行后得到以下結(jié)果:

Conditions are true

if 語(yǔ)句選項(xiàng)常用列表

選項(xiàng) 描述
! EXPRESSION 檢查EXPRESSION是否為假。
-n STRING 檢查STRING的長(zhǎng)度是否大于零。
-z STRING 檢查STRING的長(zhǎng)度是否為零(即為空)
STRING1 == STRING2 檢查STRING1是否等于STRING2。
STRING1 != STRING2 檢查STRING1是否不等于STRING2
INTEGER1 -eq INTEGER2 檢查INTEGER1在數(shù)值上是否等于INTEGER2。
INTEGER1 -gt INTEGER2 檢查INTEGER1在數(shù)值上是否大于INTEGER2
INTEGER1 -lt INTEGER2 檢查INTEGER1在數(shù)值上是否小于INTEGER2。
-d FILE 檢查FILE是否存在并且它是一個(gè)目錄。
-e FILE 檢查FILE是否存在。
-r FILE 檢查FILE是否存在,并授予讀取權(quán)限。
-s FILE 檢查FILE是否存在并且其大小大于零(表示它不為空)。
-w FILE 檢查FILE是否存在并授予寫(xiě)權(quán)限。
-x FILE 檢查FILE是否存在并授予執(zhí)行權(quán)限。

嵌套 if 語(yǔ)句

在 Bash 的實(shí)際運(yùn)用中可能會(huì)需要多個(gè) if 語(yǔ)句。這時(shí)可能就會(huì)出現(xiàn)在一個(gè) if 語(yǔ)句中使用另一個(gè) if 語(yǔ)句的情況,這被稱為嵌套 if 語(yǔ)句。 示例:

#!/bin/bash
#Nested if statement


if [ $1 -gt 50 ]
then
  echo "Number is greater than 50."


  if (( $1 % 2 == 0 ))
  then
    echo "and it is an even number."
  fi
fi

執(zhí)行后得到以下結(jié)果:

Number is greater than 50.
and it is an even number.
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)