shell中的select in語句
- 1. select in 語句的用法
- 2. select in 通常和 case in 搭配使用
1. select in 語句的用法
select in循環用來增強互動性,它可以顯示出帶編号的菜單,使用者輸入不同的編号就可以選擇不同的菜單,并執行不同的功能。
select in 是shell獨有的一種循環,非常适合終端(Terminal)這樣的互動場景。其他語言是沒有的。
格式:
select variable in value_list
do
statements
done
variable表示變量,value_list表示取值清單
注意:
- 1.#?用來提示使用者輸入菜單編号;^D表示按下Ctrl+D組合鍵,它的作用是結束select in循環
- 2.運作到select語句後,取值清單 value_list 中的内容會以菜單的形式顯示出來,使用者輸入菜單編号,就表示選中了某個值,這個值就會賦給變量 variable,然後再執行循環體中的 statements
- 3.每次循環時,selevt都會要求使用者輸入菜單編号,并使用環境變量PS3的值作為提示符,PS3的預設值為#?,修改PS3的值就可以修改提示符
- 4.如果使用者輸入的菜單編号不在範圍之内,那麼就會給variable賦一個空值;如果使用者輸入一個空值,會重新顯示一遍菜單
例:
#!/bin/bash
echo "What is your favourite OS ?"
select name in "Linux" "Windows" "Mac OS" "UNINX" "Android"
do
echo $name
done
echo "You have selected $name"
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP31kMrRlTzMGVOBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmL0AjM4UTNyAjM2EjMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
2. select in 通常和 case in 搭配使用
#!/bin/bash
# select in 通常和 case in 搭配使用
echo "What is your favourite OS ?"
select name in "Linux" "Windows" "Mac OS" "UNIX" "Android"
do
case $name in
"Linux")
echo "Linux是一個類UNIX作業系統,它開源免費,運作在各種伺服器裝置和嵌入式裝置。"
break
;;
"Windows")
echo "Windows是微軟開發的個人電腦作業系統,它是閉源收費的"
break
;;
"Mac OS")
echo "Mac OS是蘋果公司開發的一款圖形界面作業系統"
break
;;
"UNIX")
echo "UNIXs是作業系統的開山鼻祖,現在隻應用在特殊場合"
break
;;
"Android")
echo "Andriod是有Google開發的手機作業系統"
break
;;
*)
echo "沒有這個選項!"
break
esac
done