bash腳本編程之select語法詳解

shell編程之select

select控制結構(在tcsh中不可用)基于Korn Shell中的控制結構 select語句首先顯示一個菜單,然后根據用戶的選擇給變量賦予相應的值,最后執行一系列命令

其語法如下:

select varname in list

do

commands

done

select 表達式是一種bash的擴展應用,動作包括: 自動用1,2,3,4列出菜單 (沒有echo指令,自動顯示菜單) 自動read輸入選擇 (沒有 read指令,自動輸入) 賦值給變量 (沒有賦值指令,自動輸入數字后,賦值字符串給變量)

select結構顯示arg項的菜單。加入忽略關鍵字in和參數列表,select控制語句就用位置參數來取代arg項。select的菜單格式化為在每一項前加一個數字select結構用變量LINES和變量COLUMNS的值來確定顯示區的大小(LINES的默認值為24,COLUMNS的默認值為80)。

在select語句輸出菜單后,它就會顯示出PS3的值,select提示符PS3的默認值為“?#”,但一般將其設置為一個更有意義的值。

在PS3提示符后輸入一個合法的數字(在菜單范圍中),select語句就把varname設置為與該數字對應的參數。非法的輸入會使shell把varname設置為空,在這兩種情況下,select將把用戶的響應存儲在關鍵字變量REPLY中,然后執行do與done之間的命令。若只按RETURN鍵而沒有做任何選擇,shell就會重新顯示菜單和PS3提示符。

舉例說明:

腳本:

8 #!/bin/bash
  9 PS3="What sports do you like?"
 10 select menu in basketball football tableball
 11 do
 12 case $menu in
 13 basketball)
 14 echo "$menu" is your favorite sport!
 15 ;;
 16 football)
 17 echo "$menu" is your favorite sport!
 18 ;;
 19 tableball)
 20 echo "$menu" is your favirite sport!
 21 ;;
 22 *)
 23 echo "Your input is false!"
 24 break
 25 ;;
 26 esac
 27 done

執行結果:

[root@localhost bin]# select.sh 
1) basketball
2) football
3) tableball
What sports do you like?basketball
Your input is false!
[root@localhost bin]# select.sh
1) basketball
2) football
3) tableball
What sports do you like?1
basketball is your favorite sport!
What sports do you like?2
football is your favorite sport!
What sports do you like?3
tableball is your favirite sport!
What sports do you like?g
Your input is false!

原創文章,作者:YOUNG,如若轉載,請注明出處:http://www.www58058.com/39003

(0)
YOUNGYOUNG
上一篇 2016-08-24 21:22
下一篇 2016-08-24 21:22

相關推薦

  • linux shell 腳本詳解

    . Linux  shell 腳本編寫基礎◆1.1 語法基本介紹1.1.1 開頭程序必須以下面的行開始(必須方在文件的第一行):#!/bin/sh符號#!用來告訴系統它后面的參數是用來執行該文件的程序。在這個例子中我們使用/bin/sh來執行程序。當編輯好腳本時,如果要執行該腳本,還必須使其可執行。要使腳本可執行:編譯 chmod +x filen…

    2017-08-05
  • 磁盤管理

    一、知識整理 1、每個扇區:512字節;每個柱面:256個磁頭*63個扇區*512字節,大概為8M。centos6中分區使用起始結束柱面;centos7中分區使用起始結束扇區。EBR:擴展分區的第一個扇區。 2、MBR:master root record,1982年,使用32位表示扇區數,分區不超過2T。其中,一共512bytes字節,446bytes為b…

    Linux干貨 2016-08-29
  • LVM詳解

    一、概述     LVM全稱為Logical Volume Manager,即邏輯卷管理器。LVM可以彈性的調整文件系統的容量,可以將多個物理分區整合在一起,并且根據需要劃分空間或動態的修改文件系統空間。     LVM有兩個版本: lvm,lvm2 二、LVM的相關概念   &…

    Linux干貨 2015-04-28
  • OPENSSL加密技術及私有CA的搭建

    加密方式有對稱加密 非對稱加密 單向加密 對稱加密:     加密和加密都用同一個對稱密鑰,但是,這種加密方法存在一定問題,就是密鑰傳輸時,容易被盜竊。還有密鑰管理困難,對稱加密的方法:DES、AES、Blowfish、Twofish、IDEA、RC6、CAST5。   非對稱加密: 公鑰…

    Linux干貨 2015-08-17
  • 重定向與管道

         本次內容    1.三種I/O設備    2.把I/O從定向入文件    3.命令tr    4.使用管道鏈接命令    5.tee   我們都知道程序是由:指令+數據    &n…

    2017-07-23
  • awk用法三

      6、結構化控制語句     6.1 if語句       格式:if(條件) {body} else {else body}         實例1:判斷/etc/passwd文件中的UID如果大于500則顯示為“common user”,否則顯…

    Linux干貨 2016-02-14
欧美性久久久久