在今天的 shell 腳本 101 中,您將學習如何使用它。 對於 shell 腳本 在不同的情況下應該使用什麼 Linux if 和 else 語句經驗證的應用 “如果聲明” 在上一個教程中做過 中斷並繼續語句.
以下是 shell 腳本中 if else 的不同基本語法:
- 基本 if 語句 – 如果… [things to do if TRUE] …是的
- if-else 語句 – 如果…[things to do if TRUE]…其他… [things to do if FALSE]…是的
- 多重條件 – 如果…。[things to do if TRUE]…alif…[secondary condition actions]…其他…[things to do if FALSE]…是的
- 如果嵌套 – 如果… [things to do if TRUE]…否則…如果…[things to do if TRUE]……披……披
Linux 中的基本 if 語句
這是一個簡單的條件語句。如果您只想讓腳本檢查某個條件,則需要一個基本的 if 語句。讓我們看看如何使用它。
n=1 if [ $n -eq 1 ] then echo "This is true" fi
上面的腳本只是將值 1 分配給變量 $n(查看更多關於 shell 腳本中的變量)並檢查變量是否具有值 1。
如果為真,則打印“這是真的”語句。 如果為 false,則腳本不打印任何內容,因為沒有 else 語句。
你也可以使用 chmod 命令.
Shell 腳本中的 If Else
讓我們繼續討論這種情況 如果條件 變成假的。如果您沒有指定任何處理此問題的內容,代碼將退出“if”塊並繼續執行其餘代碼。但我們不希望這種情況發生。這就是我們使用的 否則聲明.
仍然使用上面的代碼但改變 $n。
n=2 if [ $n -eq 1 ] then echo "This is true" else echo "N is no longer 1" fi
保存上述腳本並在終端中使用 bash 或 sh 命令。
如果我沒有在腳本中添加“else”塊,它不會打印任何內容。顯而易見的原因是它不處理 $n 不等於 1 的腳本情況。
Shell 腳本中的 If Elif Else
現在我在我的 shell 腳本中使用了 if else 來處理 $n 不等於 1 的情況。但是,如果您必須處理更多案件怎麼辦?假設我們需要確定一個變量是否大於 5。 如果大於 5,請向腳本詢問另一個輸出。 如果不等於 1 或小於等於 5,則使用默認輸出。
n=5 if [ $n -eq 1 ] then echo "Variable is 1" elif [ $n -ge 5 ] then echo "The variable is greater than 5" else echo "Variable is greater than 1 but less than 5" fi

嘗試上面的腳本並不斷更改使用的變量。根據變量值,您可以看到腳本如何從 if 到 elif 到 else。
您可以使用 if…elif…else…fi 塊來處理不同的操作,但更好的選擇是 switch…case 。這將在下一個 Shell Scripting 101 教程中介紹。
在 Shell 腳本中使用布爾運算符測試 If Else 中的多個條件
上面的代碼測試每個語句的一個條件。 if 代碼測試 $n 變量是否等於 1。 elif (else if) 條件測試變量是否大於或等於 5,如果兩種情況都為 false,else 語句處理默認輸出。
但是,您也可以測試多個條件而不僅僅是一個條件。 假設您想要一個測試 $n=1 或 $n=3 的 if 條件。 &&
(AND) 或 ||
(OR) 布爾運算符。
&& 運算符檢查兩個操作是否為真,|| 運算符檢查任何一個操作是否為真。在此示例中,使用 || 操作,因為變量 $n 不能同時為 1 和 3。
n=3 if [ $n -eq 1 ] || [ $n -eq 3 ] then echo "Variable is 1 or 3" elif [ $n -ge 5 ] then echo "The variable is greater than 5" else echo "Variable is greater than 1 but less than 5" fi

可以看到,shell 腳本 if else 可以檢查兩個變量值並處理這兩種情況。我們可以 && 布爾運算符。
結論是
你做到了!隨著教程的進展,您應該能夠自己編寫更複雜的腳本來自動化許多重複的日常任務。繼續閱讀教程以加深您對 shell 腳本的理解。