Shell中select in的具體使用
select in 用法
select in循環(huán)用來增強(qiáng)交互性,它可以顯示出帶編號的菜單,用戶輸入不同的編號就可以選擇不同的菜單,并執(zhí)行不同的功能。
select in 是shell獨(dú)有的一種循環(huán),非常適合終端(Terminal)這樣的交互場景。這是其他語言所沒有的。
用法:
select variable in value_list #variable表示變量,value_list表示取值列表
do
statements
done1.#?用來提示用戶輸入菜單編號;^D表示按下Ctrl+D組合鍵,它的作用是結(jié)束select in循環(huán)
2.每次循環(huán)時,selevt都會要求用戶輸入菜單編號,并使用環(huán)境變量PS3的值作為提示符,PS3的默認(rèn)值為#?,修改PS3的值就可以修改提示符
3.如果用戶輸入的菜單編號不在范圍之內(nèi),那么就會給variable賦一個空值;如果用戶輸入一個空值,會重新顯示一遍菜單
例1.
vim test.sh
#!/bin/bash
#test the usage of 'select in'.
echo "What is your favourite OS? "
select name in "Linux" "Windows" "Mac OS" "Unix" "Android" '//“ ”可以省略'
do
echo $name
done ##此處不會自動跳出select in 循環(huán),需要按ctrl+D跳出select in
echo "You have selected $name"運(yùn)行:
[root@server1 ~]# chmod u+x test.sh
[root@server1 ~]# ./test.sh
What is your favourite OS?
1) Linux
2) Windows
3) Mac OS
4) Unix
5) Android
#? 1
Linux
#? '//按ctrl+D'
You have selected Linux=======================================================
[root@server1 ~]# ./test.sh
What is your favourite OS?
1) Linux
2) Windows
3) Mac OS
4) Unix
5) Android
#? 5
Android
#? 3
Mac OS
#? 2
Windows
#? '//按ctrl+D'
You have selected Windows
select in 通常和 case in 搭配使用
例2:
#!/bin/bash
#"select in" is usually used with "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操作系統(tǒng),它開源免費(fèi)"
break
;;
"Windows")
echo "Mac OS是微軟開發(fā)的個人電腦操作系統(tǒng),它是閉源收費(fèi)的"
break
;;
"Mac OS")
echo "Mac OS是蘋果公司開發(fā)的一款圖形界面操作系統(tǒng)"
break
;;
"Unix")
echo "Unix是操作系統(tǒng)的開山鼻祖,現(xiàn)在只應(yīng)用在一些特殊場合"
break
;;
"Android")
echo "Android是由Google開發(fā)的手機(jī)操作系統(tǒng)"
break
;;
*)
echo "沒有這個選項(xiàng)!"
break
esac
done運(yùn)行:
[root@server1 ~]# ./test2.sh
What is your favourite OS?
1) Linux
2) Windows
3) Mac OS
4) Unix
5) Android
#? 1
Linux是一個類Unix操作系統(tǒng),它開源免費(fèi)[root@server1 ~]# ./test2.sh
What is your favourite OS?
1) Linux
2) Windows
3) Mac OS
4) Unix
5) Android
#? 2
Mac OS是微軟開發(fā)的個人電腦操作系統(tǒng),它是閉源收費(fèi)的[root@server1 ~]# ./test2.sh
What is your favourite OS?
1) Linux
2) Windows
3) Mac OS
4) Unix
5) Android
#? 5
Android是由Google開發(fā)的手機(jī)操作系統(tǒng)
到此這篇關(guān)于Shell中select in的具體使用的文章就介紹到這了,更多相關(guān)Shell select in內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Shell腳本實(shí)現(xiàn)自動輸入密碼登錄服務(wù)器
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)自動輸入密碼登錄服務(wù)器,本文使用expect來實(shí)現(xiàn)這個需求,講解了expect的安裝及使用腳本,需要的朋友可以參考下2015-03-03
監(jiān)控服務(wù)器swap并重啟php的Shell腳本
有一臺服務(wù)器老是交換扇區(qū)占滿然后失去響應(yīng),很煩,因?yàn)榧虞d了以前別人寫的一個php擴(kuò)展,效率低,資源占用大,悲劇的是現(xiàn)在還沒有可以替換的東西2014-03-03
linux whatis與whatis database 使用及查詢方法(man使用實(shí)例)
在學(xué)習(xí)man命令時候,估計很多朋友都發(fā)現(xiàn)有man –f ,man –k 參數(shù),可以查出很多數(shù)據(jù)。這些有的與man手冊頁相同,有些不是屬于手冊頁的。它們數(shù)據(jù)怎么收集來的,并且whatis是怎么樣工作的2015-10-10
Linux下科學(xué)計數(shù)法(e)轉(zhuǎn)化為數(shù)字的方法
這篇文章主要介紹了Linux下科學(xué)計數(shù)法(e)轉(zhuǎn)化為數(shù)字的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05

