日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
Shellselectin循環(huán)詳解
select in 循環(huán)用來增強交互性,它可以顯示出帶編號的菜單,用戶輸入不同的編號就可以選擇不同的菜單,并執(zhí)行不同的功能。

創(chuàng)新互聯(lián)-專業(yè)網站定制、快速模板網站建設、高性價比青川網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式青川網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋青川地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。

select in 是 Shell 獨有的一種循環(huán),非常適合終端(Terminal)這樣的交互場景,C語言、C++、Java、Python、C# 等其它編程語言中是沒有的。

Shell select in 循環(huán)的用法如下:

select variable in value_list
do
    statements
done

variable 表示變量,value_list 表示取值列表,in 是 Shell 中的關鍵字。你看,select in 和 for in 的語法是多么地相似。

我們先來看一個 select in 循環(huán)的例子:

#!/bin/bash

echo "What is your favourite OS?"
select name in "Linux" "Windows" "Mac OS" "UNIX" "Android"
do
    echo $name
done
echo "You have selected $name"

運行結果:

What is your favourite OS?
1) Linux
2) Windows
3) Mac OS
4) UNIX
5) Android
#? 4↙
You have selected UNIX
#? 1↙
You have selected Linux
#? 9↙
You have selected
#? 2↙
You have selected Windows
#?^D


#?用來提示用戶輸入菜單編號;
^D表示按下 Ctrl+D 組合鍵,它的作用是結束 select in 循環(huán)。

運行到 select 語句后,取值列表 value_list 中的內容會以菜單的形式顯示出來,用戶輸入菜單編號,就表示選中了某個值,這個值就會賦給變量 variable,然后再執(zhí)行循環(huán)體中的 statements(do 和 done 之間的部分)。

每次循環(huán)時 select 都會要求用戶輸入菜單編號,并使用環(huán)境變量 PS3 的值作為提示符,PS3 的默認值為
#?,修改 PS3 的值就可以修改提示符。

如果用戶輸入的菜單編號不在范圍之內,例如上面我們輸入的 9,那么就會給 variable 賦一個空值;如果用戶輸入一個空值(什么也不輸入,直接回車),會重新顯示一遍菜單。

注意,select 是無限循環(huán)(死循環(huán)),輸入空值,或者輸入的值無效,都不會結束循環(huán),只有遇到 break 語句,或者按下 Ctrl+D 組合鍵才能結束循環(huán)。

完整實例

select in 通常和 case in 一起使用,在用戶輸入不同的編號時可以做出不同的反應。

修改上面的代碼,加入 case in 語句:

#!/bin/bash

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),它開源免費,運行在各種服務器設備和嵌入式設備。"
            break
            ;;
        "Windows")
            echo "Windows是微軟開發(fā)的個人電腦操作系統(tǒng),它是閉源收費的。"
            break
            ;;
        "Mac OS")
            echo "Mac OS是蘋果公司基于UNIX開發(fā)的一款圖形界面操作系統(tǒng),只能運行與蘋果提供的硬件之上。"
            break
            ;;
        "UNIX")
            echo "UNIX是操作系統(tǒng)的開山鼻祖,現在已經逐漸退出歷史舞臺,只應用在特殊場合。"
            break
            ;;
        "Android")
            echo "Android是由Google開發(fā)的手機操作系統(tǒng),目前已經占據了70%的市場份額。"
            break
            ;;
        *)
            echo "輸入錯誤,請重新輸入"
    esac
done

用戶只有輸入正確的編號才會結束循環(huán),如果輸入錯誤,會要求重新輸入。

運行結果1,輸入正確選項:

What is your favourite OS?
1) Linux
2) Windows
3) Mac OS
4) UNIX
5) Android
#? 2
Windows是微軟開發(fā)的個人電腦操作系統(tǒng),它是閉源收費的。

運行結果2,輸入錯誤選項:

What is your favourite OS?
1) Linux
2) Windows
3) Mac OS
4) UNIX
5) Android
#? 7
輸入錯誤,請重新輸入
#? 4
UNIX是操作系統(tǒng)的開山鼻祖,現在已經逐漸退出歷史舞臺,只應用在特殊場合。

運行結果3,輸入空值:

What is your favourite OS?
1) Linux
2) Windows
3) Mac OS
4) UNIX
5) Android
#?
1) Linux
2) Windows
3) Mac OS
4) UNIX
5) Android
#? 3
Mac OS是蘋果公司基于UNIX開發(fā)的一款圖形界面操作系統(tǒng),只能運行與蘋果提供的硬件之上。


網站題目:Shellselectin循環(huán)詳解
URL標題:http://www.dlmjj.cn/article/cceoosd.html