shell程式設計中select語句的使用
阿新 • • 發佈:2018-12-12
利用select語句可以非常方便的實現選單迴圈結構,其語法如下
select variable in list #將列表中的每一個選單項之前新增從1開始遞增的序號 #顯示環境變數PS3的值(存放的是引導使用者輸入的提示資訊) #使用者選擇的選單序號存在變數REPLY中,對應的List選單項的內容存放在variable變數中 do #使用者每選擇了一個選單項之後都會重新進入迴圈體 <commands> #執行語句塊 done #本次迴圈結束,重新進入下一次選單選擇迴圈
這樣看似乎不是很直觀,我們從一個例子入門
1 # !/bin/bash 2 3 PS3="select your pefer laguage:" 4 select s in bash perl python ruby '(quit)' 5 do 6 case $s in 7 bash|perl|python|ruby) echo "you select menu$RELAY):$s";; 8 '(quit)') break ;; 9 *) echo "please select correct" ;; 10 esac 11 done
很簡單的一個例子,就是通過迴圈選單體選擇我們喜歡的腳步語言。下面是執行結果。
chenfeihaodeMacBook-Pro:sh chenfeihao$ ./select_prefer_language.sh 1) bash 2) perl 3) python 4) ruby 5) (quit) select your pefer laguage:1 you select menu1):bash select your pefer laguage:2 you select menu2):perl select your pefer laguage:3 you select menu3):python select your pefer laguage:5 chenfeihaodeMacBook-Pro:sh chenfeihao$
可以看到每次迴圈開始前都會列印我們定義的PS3提示變數,而在REPLY變數中儲存的是選單項的序號。list中的每一項都對應了一個選單項,而由於select是一個無限迴圈所以提供了出口quit。
這樣我們就學會了怎麼使用select語法實現我們程式中的選單迴圈結構了。