如何在 Bash 中使用 if...else 語句
條件語句在幾乎所有的程式語言中都很普遍,用於決策。它們只允許在滿足特定條件的情況下執行一條或多條語句。if ... else
在大多數程式語言中被用作條件語句。在 Bash
中,我們還有 if
、if...elif...elfer
、if ... else
和巢狀的 if
語句作為條件語句。
Bash
中的 if
語句
if
語句的語法
if Test-Expression
then
Statements
fi
在上面的例子中,如果 Test-Expression
是 True
,則執行 Statements
。fi
關鍵字用於結束 if
語句。
如果 Test-Expression
不是 True
,Statements
都不會被執行。
為了使我們的程式碼看起來更易讀,更有條理,我們可以使用 4 空格或 2 空格縮排。
示例:Bash
中的 if
語句
echo -n "Enter numnber : "
read n
rem=$(( $n % 2 ))
if [ $rem -eq 0 ]
then
echo "$n is even number"
fi
輸出:
Enter numnber : 4
4 is even number
它接受使用者提供的數字,只有當數字是偶數時才會輸出。
如果數字是偶數,那麼當數字除以二時,餘數為零,因此測試表示式為 True
,這樣 echo
語句就會被執行。
Bash
中的 if ... else
語句
if ... else
語句的語法
if Test-Expression
then
Statements-1
else
Statements-2
fi
在這個例子中,如果 Test-Expression
是 True
,則執行 Statements-1
;否則,執行 Statements-2
。在結束 if ... else
語句時,使用 fi
關鍵字。
例子:Bash
中的 if...else
語句
echo -n "Enter numnber : "
read n
rem=$(( $n % 2 ))
if [ $rem -eq 0 ]
then
echo "$n is even number"
else
echo "$n is odd number"
fi
輸出:
Enter numnber : 5
4 is odd number
它接受使用者提供的一個數字,並根據輸入數字是否正好被 2
整除而給出輸出。
如果數字是偶數,當數字除以 2 時,餘數為零;因此,測試表示式為 True
,語句 echo "$n is even number"
得到執行。
如果數字是奇數,餘數不為零;因此,測試表示式為 False
,語句 echo "$n is odd number"
被執行。
if...elif...else
語句在 Bash
中的應用
if...elif...else
語句的語法
if Test-Expression-1
then
Statements-1
elif Test-Expression-2
then
Statements-2
else
Statements-3
fi
如果 Test-Expression-1
為 True
,則執行 Statements-1
;否則,如果 Test-Expression-2
為 True
,則執行 Statements-2
。
如果兩個測試表示式都不為 True
,則執行 Statements-3
。
我們可以有任意多的 elif
語句,else
語句是可選的。
例子:Bash
中的 if...elif...else
語句
echo -n "Enter the value of a: "
read a
echo -n "Enter the value of b: "
read b
if [ $a -lt $b ]
then
echo "a is less than b"
elif [ $a -gt $b ]
then
echo "a is greater than b"
else
echo "a is equal to b"
fi
輸出:
Enter the value of a: 4
Enter the value of b: 4
a is equal to b
它接受兩個數字作為使用者的輸入,並根據哪個測試表示式為真列印結果。
如果 a<b
,程式列印 a is less than b
。
如果 a>b
,程式列印 a is greater then b
。
如果這兩個條件語句都不為真,程式就會列印出 a is equal to b
。
巢狀在 Bash
中的 if
語句
當一個 if
語句放在另一個 if
語句中時,稱為巢狀 if
語句。
echo -n "Enter numnber : "
read a
rem=$(( $a % 2 ))
if [ $rem -eq 0 ]
then
if [ $a -gt 10 ]
then
echo "$a is even number and greater than 10."
else
echo "$a is even number and less than 10."
fi
else
echo "$a is odd number"
fi
輸出:
Enter numnber : 46
46 is even number and greater than 10.
它演示了巢狀的 if
語句的用法。如果數字正好被 2
除以 2
且大於 10
,則執行 echo "$a is even number and greater than 10."
語句。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn