Linux shell select菜單選擇實現(xiàn)代碼
假設需要在shell下實現(xiàn)一個菜單,估計會使用 循環(huán)和read實現(xiàn)交互,在學習中發(fā)現(xiàn)一個select可在shell下很方便的實現(xiàn)這種交互菜單
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這些語言中并沒有實現(xiàn)select功能。Bash Shell中,select格式如
下:
select $var in ${list[@]}
do
statements that can use $var
done
在select執(zhí)行時,會根據(jù)list數(shù)組給出選擇菜單,用戶選擇后的結(jié)果保存在$var變量中,然后執(zhí)行statements語句。執(zhí)行完成
后,再次給出菜單,等待用戶選擇。如果用戶想跳出選擇循環(huán),需要在循環(huán)體中根據(jù)條件增加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是循環(huán)選擇,一般與case語句使用。
版權聲明:本站文章來源標注為YINGSOO的內(nèi)容版權均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。
關注官方微信