## case語句
如果有很多層if else,最好使用case來代替。
case語句的功能是:把保留字case右邊的值和閉括號“)”左邊的值比較,其語法規則如下:
~~~
case VariableName in
value1)
? ? ? Instruction
? ? ? ? ;;
value2 )
? ? ? Instruction
? ? ? ;;
esac
~~~
從上面可以看出,case語句以保留字case開頭,以esac結尾。它首先檢查變量VariableName?的值,如果它與value1相等則執行第一組指令集,如果它與value2?相等則執行第二組指令集,以此類推。同時,在每組指令集的最后用兩個分號(;;)。
在下面的例子中,將用case語句取代本章開頭的if語句,請看:
~~~
case $region in
1)
echo "Hello,Gob. "
;;
2)
echo "Hello,Mary."
;;
3)
echo "Hello,Joan."
;;
4)
echo "Hello,Mike."
;;
5)
echo "Hello,Tom."
;;
esac
~~~
## case語句中的默認情況
在case語句中,如果用戶沒有給程序提供所需要的匹配值,那么程序就找不到它所要匹配的對象。如果是由程序設計者本人提供程序所必需的匹配值,這種情況有時就不會發生。
我們完全可以用保留字符(*)來為此留一條后路,即提供一種默認情況,讓程序在此情況下執行一些必要的操作。請看下面示例:
~~~
case $region in
1)
echo "Hello,Gob. "
;;
2)
echo "Hello,Mary."
;;
3)
echo "Hello,Joan."
;;
4)
echo "Hello,Mike."
;;
5)
echo "Hello,Tom."
;;
*)
echo "Sorry,your region is not on my list."
esac
~~~
## case語句在用戶界面中的應用
case語句最常和程序的用戶界面一起使用。在一個程序顯示菜單后,程序必須等待用戶從鍵盤上輸人一個字符。這通常由用戶做出選擇,輸人選項,程序就用case語句把該選項與某些特定的值做比較。
假設讀者想建立一個電子電話號碼簿。為簡單起見,在這里僅要求其具有兩項功能:一是顯示電話號碼;二是可以添加電話號碼。
首先,程序以菜單選項的形式將這兩項功能顯示在屏幕上。然后,由用戶從鍵盤上輸入相應的選項。
為實現這個目標,可以用case語句把用戶輸入的選項與已知的菜單項對比。
在下面的例子中,程序僅顯示用戶欲做何種選擇的信息(當然,如果讓程序再復雜一點,可以用其他的指令來取代這些信息),請看:
~~~
#!/bin/bash
clear
echo ""
echo "The Telephone Book"
echo ""
echo "1.pisplay A Telephone Number"
echo "2.Add A New Telephone Number"
echo ""
echo "Q Quit"
echo ""
echo "Enter your selection;”
read selection
case $selsction in
"1")
echo "You want to display a telephone number."
;;
"2")
echo "You want to add a new telephone number."
;;
"q")
exit 0
;;
"Q")
exit 0
;;
*)
echo "You made an invalid selection."
esac
~~~
為了避免用戶退出程序時出現問題,最好像上面的例子那樣,將字母的大、小寫(如q和Q)都標上。
- 前言
- linux基礎(一)------登錄以及文件系統的了解
- linux基礎(二)----linux常用命令積累
- linux基礎(三)----linux命令系統學習----安裝和登錄命令
- linux基礎(四)----linux命令系統學習----文件處理命令
- linux基礎(五)----linux命令系統學習----系統管理命令
- linux基礎(六)----linux命令系統學習----網絡操作命令
- linux基礎(七)----linux命令系統學習----系統安全相關命令
- linux基礎(八)----linux命令系統學習----其它命令
- linux基礎(九)----linux性能監測
- linux基礎(十)----linux網絡配置詳細步驟---橋接模式和兩臺機子的遠程通信
- linux基礎(十一)----linux編程基礎----變量
- linux基礎(十二)----linux編程基礎----與用戶交互
- linux基礎(十三)----linux編程基礎----linux運算符
- linux基礎(十四)----linux編程基礎----linux條件控制語句----if else語句
- linux基礎(十五)----linux編程基礎----linux條件控制語句----case語句
- linux基礎(十六)----linux編程基礎----linux條件控制語句----多層嵌套控制結構
- linux基礎(十七)----linux編程基礎----linux循環控制語句----while循環
- linux基礎(十八)----linux編程基礎----linux循環控制語句----for in循環
- linux基礎(十九)----linux編程基礎----linux循環控制語句----break中斷和continue繼續
- linux基礎(二十)----linux編程基礎----子程序----函數