Shell 腳本簡介:Shell 腳本中的 If Else


在今天的 shell 腳本 101 中,您將學習如何使用它。 對於 shell 腳本 在不同的情況下應該使用什麼 Linux if 和 else 語句經驗證的應用 “如果聲明” 在上一個教程中做過 中斷並繼續語句.

以下是 shell 腳本中 if else 的不同基本語法:

  1. 基本 if 語句 – 如果… [things to do if TRUE] …是的
  2. if-else 語句 – 如果…[things to do if TRUE]…其他… [things to do if FALSE]…是的
  3. 多重條件 – 如果…。[things to do if TRUE]…alif…[secondary condition actions]…其他…[things to do if FALSE]…是的
  4. 如果嵌套 – 如果… [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 語句。

Linux 中的基本 if 語句

你也可以使用 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
如果 Elif Else 輸出如果 Elif Else 輸出

嘗試上面的腳本並不斷更改使用的變量。根據變量值,您可以看到腳本如何從 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
If Else 布爾值If Else 布爾值

可以看到,shell 腳本 if else 可以檢查兩個變量值並處理這兩種情況。我們可以 && 布爾運算符。

結論是

你做到了!隨著教程的進展,您應該能夠自己編寫更複雜的腳本來自動化許多重複的日常任務。繼續閱讀教程以加深您對 shell 腳本的理解。