Linux shell select菜單選擇實現代碼
假設需要在shell下實現一個菜單,估計會使用 循環和read實現交互,在學習中發現一個select可在shell下很方便的實現這種交互菜單
1. select 語法
select var in ... do #your code done
2. 示例
#! /bin/bash echo "what is your favorite color :" select color in "red" "blue" "green" "white" "black" do echo "you choose is $color" break done
Bash Shell中的select命令簡單使用示例
前言
今天剛好寫瞭一個自動化打包腳本,再次使用到瞭bash shell,好幸福的感覺。這裡主要是想介紹一下select命令,這個命令
可以幫助我們完成菜單選擇功能。
格式
我今天也是第一次使用select流程控制,在php、Java、C這些語言中並沒有實現select功能。Bash Shell中,select格式如
下:
select $var in ${list[@]} do statements that can use $var done
在select執行時,會根據list數組給出選擇菜單,用戶選擇後的結果保存在$var變量中,然後執行statements語句。執行完成
後,再次給出菜單,等待用戶選擇。如果用戶想跳出選擇循環,需要在循環體中根據條件增加break語句。
示例
給出一個select的示例,大傢可以參考:
#!/bin/bash fruits=( "apple" "pear" "orange" "watermelon" ) echo "Please guess which fruit I like :" select var in ${fruits[@]} do if [ $var = "apple" ]; then echo "Congratulations, you are my good firend!" break else echo "Try again!" fi done
例子2
#!/bin/sh select ch in "begin" "end" "exit" do case $ch in "begin") echo "start something" ;; "end") echo "stop something" ;; "exit") echo "exit" break; ;; *) echo "ignorant" ;; esac done;
運行效果:
yuxuecheng@linux:~/shellSource> ./select_test.sh
1) begin
2) end
3) exit
#? 1
start something
#? 2
stop something
#? 4
ignorant
#? begin
ignorant
#? 3
exit
說明:select是循環選擇,一般與case語句使用。
推薦閱讀:
- shell 流程控制語句的具體使用
- linux shell 編程之函數使用詳解
- shell腳本讀取命令行參數的實現
- shell腳本快速創建格式化磁盤與詳細操作步驟
- Shell四種運行方式(啟動方式)的實現