書-Linux命令行與shell腳本編程大全(第3版)

 image

●命令行顯示菜單

○select-命令行顯示菜單

 

 

命令行顯示菜單

在命令行中輸入就可以顯示資訊。

 

菜單樣子:

image

只要三個步驟就可以做出來,完整的程式碼我會放在下面。

 

第一步(顯示的內容):

把要顯示在視窗的內容&格式寫好。

image

 

默認情況下echo只會顯示字符,參數 -e 為了要使用換行符號、制表符號。

\n:換行

\t:一個tab

echo –n:不換行

read –n 1 :只接受1個字元輸入

option:輸入的字元會放在這個變數

 

第二步(輸入字元的條件判斷(用case)&無限循環):

 

接下來要取得輸入去判斷,如果輸入0~3以外的就會執行*號這一行,那我不可能只執行一次,所以加一個無限迴圈while,就可以一直輸入,直到輸入0就離開。

image

while [1]  :無限迴圈

menu:呼叫function執行

break:離開程式

clear:清空畫面

read –n 1 line:這一行不是輸入,只要沒有按鍵盤,就不會進行下一步

 

 

第三步(設定函數):

 

在第二步case中,按下0~3其中一個就會呼叫函數執行。

 

函數的名稱要照case的,裡面的內容可以自訂。

image

 

 

 

 

結果:

按下:1

image

按下:2

image

按下:3

image

隨便按

image

 

 

#!bin/bash

function display {
    clear
    df -k
}
function location {
    clear    
    pwd
    
}
function name {
    clear
    who
}

function menu {
    echo -e "\t\t\tSys Adamin Menu\n"
    echo -e "\t1. Display disk space"
    echo -e "\t2. Display location"
    echo -e "\t3. Display name"
    echo -e "\t0. Exit\n\n"
    echo -en "\t\tEnter option:"
    read -n 1 option
}

while [ 1 ]
do
    menu
    case $option in
    0)
        break;;
    1)
        display;;
    2)
        location;;
    3)
        name;;
    *)
        clear
        echo "sorry , wrong selection";;
esac
echo -en "\n\n\t\t\tHit any key to continue"
read -n 1 line
done
clear
 

select-命令行顯示菜單

這是一個小工具,可以很輕鬆地完成第1步驟,第2步驟。

 

菜單樣子:

image

 

第一步驟+第二步驟:

 

基本上跟上面的是類似了,只不過省略了一些。

image

PS3=“Entry option:” :輸入時所顯示的訊息

select option in “ ”:你要顯示的menu

option:為你輸入的值,存放的是字串所以case比較要比字串。

第三步驟:

function還是要自己定義,就跟上面做的一樣。

image

#!bin/bash

function display {
    clear
    df -k
}
function location {
    clear    
    pwd
    
}
function name {
    clear
    who
}

PS3="Entry option:"
select option in "Display disk space" "Display location" "Display name" "Exit"
do
    case $option in
    "Exit")
        break;;
    "Display disk space")
        display;;
    "Display location")
        location;;
    "Display name")
        name;;
    *)
        clear
        echo "sorry , wrong selection";;
esac
done
clear
     

 

 

  

 

arrow
arrow
    創作者介紹
    創作者 讀書小天地 的頭像
    讀書小天地

    書籍分享天地

    讀書小天地 發表在 痞客邦 留言(0) 人氣()