Select、Case

select循環與菜單

select循環主要用于創建菜單,按數字排序list指定的順序排序,并列出在標準輸出,利用PS3列出提示符進行輸入選擇

用法:

select VARIABLE in list
 do
    循環體命令
done

PS3提示語定義:

在腳本中腳本代碼的第一行加入即可

PS3=“提示語”

用戶輸入相應的數字,就會執行相對應的命令,用戶輸入的選項被保存在REPLY中

select經常和case配合使用,一個指定菜單,一個執行菜單指定的相對應的命令。

select是個無限循環,因此要記住用break命令退出循環,或者用exit命令結束腳本運行。

select與for循環類似,可以省略inlist,此時在執行腳本是指定參數為位置變量傳給select語句。

##############################################################################################################

多分支case語句

case語句和if elif else 語句一樣都是多分支條件語句,不過和if多分支條件語句不同的是,case語句只能判斷一種條件關系,而if else 語句可以判斷多種條件關系

用法:

case  $VARIABLE(變量名) in
    “值1”)
        ;;
    “值2”)
        ;;
    …………
esac

case語句支持glob風格的通配符進行模糊匹配(應用在“值1”|“值2"…..)

*:任意長度的任意字符

?:任意單個字符

[] : 指定范圍內的任意單個字符

a|b:條件1或條件2

select與case綜合示例:輸入指定命令,顯示對應的信息

#!/bin/bash
#
######定義函數開始##############

meminfo() {
    clear
    free -m
}
diskinfo() {
    clear
    df -k
}
logged() {
    clear
    who
}
######定義函數結束##############

######PS3定義提示語##############
PS3="input option (input "5" is help) :"

########select語句定義菜單列表#########
select opt in "display meminfo" "display diskinfo" "display logged user" "Exit program" "help";do
    case $opt in       
   //應用case語句,變量是select語句定義的菜單變量,case語句會一一進行匹配select的變量中的值
        "display meminfo")   //注意菜單上的名稱必須與case語句選項一致
            meminfo ;;         //調用相對應的函數
        "display diskinfo")    //如果select的值對應到此值,則指定相對應的函數程序
            diskinfo ;;      
       //雙分號(;;)為語句結束符,如果此語句匹配到依舊不退出,繼續向下匹配
        "display logged user")
            logged ;;
        "Exit program")
            break ;;
        "help")
            echo "Usage (1.mem|2.disk|3.loguser|4.exit|5.help)"
        ;;
        *)     //如果上方所有case語句都不能匹配到,則執行此條程序命令。
            echo "sorry,Error input!" ;;
     esac   //case語句結束
done      //select語句結束

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

(0)
LiiLii
上一篇 2016-08-21 20:45
下一篇 2016-08-21 20:45

相關推薦

  • 與正則表達式的第一次親密接觸

    Linux文本處理三劍客 grep:文本過濾(模式:psttern)工具 grep,egrep,fgrep (不支持正則表達式搜索) sed:stream editor,文本編輯工具 awk:Linux上的實現gawk,文本報告生成器 下面就先談一談:grep及正則表達式;egrep及擴展的正則表達式 grep grep:Goobal search REgu…

    Linux干貨 2017-04-06
  • alias——Linux基本命令(4)

    1.     alias別名 (1)查看、設置別名 Linux系統提供了一個有用的工具叫alias,可以讓我們將一些需要頻繁使用的但又過于冗長的命令設置一個別名,這樣一來,以后只需輸入一個簡短的別名就可以達到同樣的作用。 alias顯看當前已定義的別名   使用aliasaliname=’comm…

    2017-07-13
  • 初識linux的進程管理與作業控制(第十二天)

         進程:linux中,運行每一個二制進程序或觸發每一個事件,系統都會將它定義為一個進程,并給一個進程號,稱為PID。同時依據觸發這個進程的用戶與相關屬性關系,給予這個PID一組有效的權限設置。          &nbsp…

    Linux干貨 2016-06-01
  • 22期第六周課堂作業

    1.vim編輯器     文本編輯器:         文本:純文本,ASCII text;Unicode;     文本編輯種類:         行編輯器:sed         全屏編輯器:na…

    Linux干貨 2016-09-26
  • 8.3_Linux習題和作業

    課堂習題 1.當用戶xiaoming對/testdir 目錄無執行權限時,意味著無法做哪些操作? 答:不能cd進該目錄 2.當用戶xiaoqiang對/testdir 目錄無讀權限時,意味著無法做哪些操作? 答:不能查看目錄內的文件列表,不能cd,也不能查看目錄里面文件的元數據 3.當用戶wangcai 對/testdir 目錄無寫權限時,該目錄下的只讀文件…

    Linux干貨 2016-08-05
  • date命令常見用法。

    date是一個非常實用的小工具,可以查看時間,并且也可以添加選項去完成自己想完成的東西。

    Linux干貨 2017-11-13
欧美性久久久久