Bash if語句

2022-05-06 16:00 更新

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

基礎(chǔ)

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

if [ expression ];
then
statements
fi

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

  • 結(jié)合&&邏輯運算符使用多個條件:
    if [ expression_1 ] && [ expression_2 ];
    then
    statements
    fi
  • 結(jié)合||邏輯運算符使用多個條件:
    if [ expression_1 ] || [ expression_2 ];
    then
    statements
    fi
  • 同時使用&&||邏輯運算符:
    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 語句選項常用列表

選項 描述
! EXPRESSION 檢查EXPRESSION是否為假。
-n STRING 檢查STRING的長度是否大于零。
-z STRING 檢查STRING的長度是否為零(即為空)
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是否存在并且它是一個目錄。
-e FILE 檢查FILE是否存在。
-r FILE 檢查FILE是否存在,并授予讀取權(quán)限。
-s FILE 檢查FILE是否存在并且其大小大于零(表示它不為空)。
-w FILE 檢查FILE是否存在并授予寫權(quán)限。
-x FILE 檢查FILE是否存在并授予執(zhí)行權(quán)限。

嵌套 if 語句

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

#!/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)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號