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的值來確定顯示區的大?。↙INES的默認值為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
下一篇 2016-08-24

相關推薦

  • Linux bash編程基礎語法總結

    前言 在Linux學習過程中,我們無可避免的會碰到一個既讓人喜歡,又令人頭疼的神奇的東西——bash編程,即shell腳本。那么什么是shell腳本呢?shell是一個命令語言解釋器,而shell腳本則是Linux命令的集合,按照預設的順序依次解釋執行,來完成特定的、較復雜的系統管理任務,類似于Windows中的批處理文件。本文帶來的是bash編程的基礎語法…

    Linux干貨 2015-04-04
  • linux的基礎小命令

    1、ifconfig,顯示主機的IP地址 2、echo 用法echo [short-option]… [string]…     -n:不進行換行     string可以使用單引號或雙引號引用變量,單引號變量內容不會替換,雙引號會替換  &nb…

    Linux干貨 2016-10-30
  • 集中管理利器-puppet快速入門-下

    Puppet配置 1.    文件管理 file 文件服務器寫法: /etc/puppet/ fileserver.conf 定義 [files] path /tmp/files  ## puppet數據存放目錄 =è后面遠程備份實戰會用到 allow *.example.com 實戰1: 備份master機…

    Linux干貨 2015-05-07
  • MySQL管理應用入門(一)

    什么是數據庫? 數據庫(Database)是按照數據結構來組織、存儲和管理數據的建立在計算機存儲設備上的倉庫。 簡單來說是本身可視為電子化的文件柜——存儲電子文件的處所,用戶可以對文件中的數據進行新增、截取、更新、刪除等操作。 在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣的“倉庫”,并根據管理的需要進行相應的處理。 例如, 企業或事業單位的人事部…

    Linux干貨 2017-07-08
  • Linux磁盤及文件系統管理

    磁盤(Hard Disk Drive,簡稱HDD)是一種存儲介質,傳統的機械硬盤由一個或多個鋁制或玻璃制的碟片組成,碟片外覆蓋有鐵磁性材料。 磁盤的物理結構一般由磁頭與碟片、電動機、主控芯片與排線等部件組成;當主電動機帶動碟片旋轉時,副電動機帶動一組(磁頭)到相對應的碟片上并確定讀取正面還是反面的碟面,磁頭懸浮在碟面上畫出一個與碟片同心的圓形軌道(磁軌或稱柱…

    Linux干貨 2015-04-20
  • N26 第一周作業

    1、計算機的組成及其功能     依據馮諾依曼架構,計算機由以下組件組成     圖片來源:Wikipedia Von Neumann Architecture 中央處理單元(Central Processing Unit) 控制單元(Control Unit, CU) 負責控制處理器中的數據流,并…

    Linux干貨 2017-01-14
欧美性久久久久