在本主題中,我們將討論case語句的基本原理以及在Bash腳本中使用它們的方法。
Bash case語句是帶有許多ELIF元素的最簡單的IF-THEN-ELSE語句。使用case語句可以使我們的bash腳本或程序更易於閱讀和管理。它們通常用於解釋具有各種不同選項的複雜條件。
由於使用Javascript或C switch語句,Bash case語句遵循相同的邏輯。有一個小的區別,如下:
Bash case語句要求卓越一次,並多次測試該值。一旦它接收到模式並執行與之相結合的語句,它就會掛起檢出模式,這大約是C switch語句中的另一個情況。
Case語句語法
讓我們看看bash的語法:
中的Case表達式
pattern_1)
語句
;;
pattern_2)
語句
;;
pattern_3 | pattern_4 | pattern_5)
語句
;;
pattern-n)
語句
;;
*)
語句
;;
esac
bash case語句有許多關鍵特性:
bash中的單個case語句以'case'關鍵字開始,並伴隨著case表達式和'in'關鍵字。case聲明以'esac'關鍵字結束。
我們可以利用|算子分割出的複雜模式。') '表示模式目錄的終止。
包含這些語句的模式被指定為子句,它應該用雙分號(;;)停止。星號(*)被用作定義默認大小寫的最終模式。由於最後一個情況,它在使用時被用作默認情況。
它是如何工作的
首先,case語句展開表達式並嚐試匹配每個包含的模式。當它找到一個匹配時,所有連接的語句都將被實現,直到雙分號(;;)。在主匹配之後,case以最後執行語句的退出狀態結束。
如果沒有類似的模式,則該案例的退出狀態為零。相反,返回狀態是已執行語句的退出狀態。
如果使用默認的星號模式,它將在沒有匹配模式的情況下執行。
讓我們通過幾個例子來理解這一機製:
例二:
/bin/bash echo "Do you know Java Programming?" read -p "Yes/No? ":" Answer case $Answer in Yes| Yes|y |y) echo "That's amazing." echo;;No| No| N| N) echo“這很簡單。讓我們從Great learning Academybeplay2018官网開始學習,我們有免費的java課程,這將有助於學習。”;;esac
以下是給定命令的輸出:
示例2:
在本例中,我們定義了一個組合場景,其中當沒有找到之前匹配的情況時,還有一個默認情況。
#!echo "Windows, Android, Chrome, Linux, Others?" read -p "輸入你的操作係統名稱:" OS case $OS in Windows| Windows) echo "這很常見。你應該嚐試一些新的東西。”“這是我最喜歡的。它有很多應用。”Chrome| Chrome) echo“酷!!”這是為專業用戶準備的。Amazing Choice.”echo;;Linux| Linux) echo“你可能對安全是認真的!!”“聽起來很有趣。 I will try that." echo ;; esac
以上代碼片段的輸出: