溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

shell腳本基礎(chǔ)知識(shí)梳理<八>:流程控制 select

發(fā)布時(shí)間:2020-08-06 09:01:27 來(lái)源:網(wǎng)絡(luò) 閱讀:227 作者:wx5cb5dcd871bbc 欄目:系統(tǒng)運(yùn)維

select variable in list
do # 循環(huán)開(kāi)始的標(biāo)志
commands # 循環(huán)變量每取一次值,循環(huán)體就執(zhí)行一遍
done # 循環(huán)結(jié)束的標(biāo)志

select 循環(huán)主要用于創(chuàng)建菜單,按數(shù)字順序排列的菜單項(xiàng)將顯示在標(biāo)準(zhǔn)錯(cuò)誤上,等待用戶輸入
菜單項(xiàng)的間隔符由環(huán)境變量 IFS 決定
用于引導(dǎo)用戶輸入的提示信息存放在環(huán)境變量 PS3 中
用戶直接輸入回車將重新顯示菜單
與 for 循環(huán)類似,省略 in list 時(shí)等價(jià)于 in “$*”
用戶輸入菜單列表中的某個(gè)數(shù)字,執(zhí)行相應(yīng)的命令
用戶的輸入被保存在內(nèi)置變量 REPLY 中。

實(shí)例 1

#!/bin/bash
#
#IFS 是系統(tǒng)分隔符變量;未指定輸入?yún)?shù)變量,系統(tǒng)默認(rèn)把腳本后跟輸入的參數(shù)存放REPLY變量里
clear
PS3="What is your preferred OS?"
IFS='|'
OS="Linux|Gnu Hurd|FreeBSD|Mac OS X"
select s in $OS
do
case $REPLY in
1|2|3|4) echo "You selected $s" ;;
*) exit ;;
esac
done

執(zhí)行結(jié)果

1) Linux
2) Gnu Hurd
3) FreeBSD
4) Mac OS X
What is your preferred OS?1
You selected Linux
What is your preferred OS?4
You selected Mac OS X
What is your preferred OS?e
[root@localhost shell]#

實(shí)例 2

#!/bin/bash
#
#PS3 用戶自定義的提示信息
clear
PS3="What is your preferred scripting language?"

select s in bash perl python ruby quit
do
case $s in
bash|perl|python|ruby)
echo "You selected $s"
;;
quit) exit ;;
*) echo "You selected error,retry " ;;
esac

執(zhí)行結(jié)果

1) bash
2) perl
3) python
4) ruby
5) quit
What is your preferred scripting language?1
You selected bash
What is your preferred scripting language?2
You selected perl
What is your preferred scripting language?5
[root@localhost shell]#

實(shí)例 3

#!/bin/bash
#
#命令包查看腳本
PS3="Select a program you want to execute: "
TOPLIST="wget telnet htop atop nettop iftop ftop"
clear
select prog in $TOPLIST quit
do
[[ $prog == quit ]] && exit
rpm -q $prog > /dev/null && echo "$prog installed" || echo "$prog is not installed"

done

執(zhí)行結(jié)果

1) wget 3) htop 5) nettop 7) ftop
2) telnet 4) atop 6) iftop 8) quit
Select a program you want to execute: 1
wget installed
Select a program you want to execute: 8
[root@localhost shell]#

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI