Home >> Blog >> shell script if - 如何在 Shell 腳本中使用 if-else?
shell script if - 如何在 Shell 腳本中使用 if-else?
從我們之前關於 shell 腳本中的數組的教程繼續前進,讓我們了解如何在 shell 腳本中使用 if-else。
條件編程是任何編程語言的重要組成部分,因為執行程序中的每一條語句通常都是不可取的。
我們需要一種有條件地執行語句的方法。shell 腳本中的 if-else 服務於這種情況。
Shell 腳本中的條件
條件編程最重要的部分之一是 if-else 語句。if-else 語句允許您在代碼中執行迭代條件語句。
當我們希望評估條件時,我們在 shell 腳本中使用 if-else,然後決定使用結果在兩組或多組語句之間執行一組。
這實質上允許我們選擇對條件表達式計算結果的響應。
shell 腳本中的 if-else 是如何工作的?
現在我們知道什麼是 if-else 函數以及為什麼它對任何程序員都很重要,無論他們的領域如何。要理解 shell 腳本中的 if-else,我們需要分解條件函數的工作。
讓我們看一下 if-else 條件塊的語法。
if [condition]
then
statement1
else
statement2
fi
這裡我們有四個關鍵字,分別是 if、then、else和fi。
- 關鍵字if後跟一個條件。
- 評估此條件以確定處理器將執行哪個語句。
- 如果條件評估為 TRUE,處理器將執行關鍵字then後跟的語句。在語法中,它被稱為statement1。
- 在條件評估為 FALSE 的情況下,處理器將執行後跟關鍵字else的語句。這在函數語法中表示為statement2 。
要記住的重要一點是,與 C 編程一樣,shell 腳本是區分大小寫的。因此,在代碼中使用關鍵字時需要小心。
如何在 shell 腳本中使用 if-else
很容易看到函數的語法,並且相信您知道如何使用它。但是通過示例來理解函數總是更好的選擇,因為它們可以幫助您理解函數的不同方面所扮演的角色。
以下是 shell 腳本中 if-else 的一些有用示例,可讓您更好地了解如何使用此工具。
1.使用if-else判斷兩個數是否相等
當試圖理解 shell 腳本中 if-else 等函數的工作原理時,最好從簡單的開始。在這裡,我們初始化兩個變量a和b,然後使用if-else函數檢查兩個變量是否相等。此任務的 bash 腳本應如下所示。
#!/bin/bash
m=1
n=2
if [ $n -eq $m ]
then
echo "Both variables are the same"
else
echo "Both variables are different"
fi
輸出:
Both variables are different
2.使用if-else比較兩個值
在 shell 腳本中 if-else 更常見的用途是比較兩個值。將一個變量與另一個變量或固定值進行比較有助於各種程序員在各種情況下使用。
為了這個例子,我們將初始化兩個變量並使用 if-else 函數來查找大於另一個的變量。
#!/bin/bash
a=2
b=7
if [ $a -ge $b ]
then
echo "The variable 'a' is greater than the variable 'b'."
else
echo "The variable 'b' is greater than the variable 'a'."
fi
輸出:
The variable 'b' is greater than the variable 'a'.
3.使用if-else判斷一個數是否為偶數
有時我們會遇到需要處理和區分偶數和奇數的情況。如果我們藉助模數運算符,這可以通過 shell 腳本中的 if-else 來完成。
模運算符將一個數除以一個除數並返回餘數。
我們知道所有偶數都是 2 的倍數,我們可以使用以下 shell 腳本來檢查一個數字是偶數還是奇數。
#!/bin/bash
n=10
if [ $((n%2))==0 ]
then
echo "The number is even."
else
echo "The number is odd."
fi
輸出:
The number is even
如您所見,我們將條件的一部分括在雙括號中。那是因為我們需要在檢查條件之前執行模運算。
此外,用雙括號括起來運行 C 風格的語句,允許您在 bash 腳本中處理一些 C 風格的命令。
4. 使用 if-else 作為簡單的密碼提示
if-else 函數以其多功能性和應用範圍而聞名。在本例中,我們將在 shell 腳本中使用 if-else 來製作密碼提示界面。
為此,我們將要求用戶輸入密碼並將其存儲在變量pass 中。
如果它與預定義的密碼(本例中為“密碼”)匹配,用戶將得到輸出為 -“密碼正確”。
否則,shell 腳本會告訴用戶密碼不正確,並要求他們重試。
#!/bin/bash
echo "Enter password"
read pass
if [ $pass="password" ]
then
echo "The password is correct."
else
echo "The password is incorrect, try again."
fi
結論
shell 腳本中 if-else 的功能是 shell 程序員的重要資產。當您需要根據預定義的條件執行一組語句時,它是最好的工具。
如果不是條件編程中最重要的部分,if-else 塊就是其中之一。通過調節特定語句的執行,您不僅可以提高代碼效率,還可以釋放處理器可能浪費在執行特定情況下不必要的語句的寶貴時間。
我們希望本教程能夠幫助您了解如何使用 if-else 函數。如果您有任何疑問、反饋或建議,請隨時在下面的評論中與我們聯繫。