前言
創建交互式shell腳本最常用的方法是使用菜單。提供各種選項可以幫助腳本用戶了解腳本能做什么,不能做什么;通常菜單腳本會清空顯示區域,然后顯示可用的選項列表。本文給大家詳細介紹了shell創建文本菜單與窗口部件的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
創建文本菜單
創建交互式shell腳本最常用的方法是使用菜單,它提供了各種選項幫助腳本用戶了解腳本能做到的和不能做的。
shell腳本菜單的核心是case命令,該命令會根據用戶在菜單上的選擇來執行特定命令。
下面我們逐步了解和創建基于菜單的shell腳本的步驟。
創建菜單布局
第一步是決定在菜單上顯示哪些元素以及想要顯示的布局方式。
在創建菜單前,通常先清空顯示器上已有的內容。這樣能在干凈的,沒有干擾的環境中顯示菜單了。
clear命令使用當前終端的terminfo數據來清理出現在屏幕上的文字。運行clear命令后可以使用echo命令顯示菜單元素。
默認,echo命令只顯示可打印的文本字符。而在創建菜單時一些非文本字符也非常有用,比如制表符和換行符。我們需要添加-e選項使得echo命令能解析包含在其中的非文本字符。
例如,
wsx@wsx:~/tmp$ echo -e "1./tDisplay disk space"1. Display disk space
這對于格式化菜單項布局非常方便,只需要幾個echo命令就可以創建一個還不錯的菜單。
clearechoecho -e "/t/t/tSys Admin Menu/n"echo -e "/t1. Display disk space"echo -e "/t2. Display logged on users"echo -e "/t3. Display memory usage"echo -e "/t0. Exit menu/n/n"echo -en "/t/tEnter an option: "
最后一行-en選項去掉末尾換行符使得菜單更專業點,光標會在行尾等待用戶輸入。
創建菜單的最后一步是獲取用戶輸入。這一步用read命令。因為我們只期望用戶使用單字符輸入,在命令加-n選項進行限定。這樣用戶只需要輸入一個數字,不用摁回車鍵。
read -n 1 option
創建菜單函數
shell腳本菜單選項作為一組獨立的函數實現起來更為容易。要做到這一點,你要為每個菜單項創建獨立的shell函數。第一步是決定你希望腳本執行那些功能,然后將這些功能以函數的形式放在代碼中。
通常我們會為還沒有實現的函數先創建一個樁函數,它是一個控函數,或者只有一個echo語句,說明最終這里需要什么內容。
function diskspace { clear echo "This is where the diskspace commands will do"}這允許菜單在我實現某個函數時仍然能正常操作。不需要我們寫出所有函數之后才能讓菜單投入使用。函數從clear命令開始,這樣我們就能在一個干凈的屏幕上執行該函數,不會收到原先菜單的干擾。
新聞熱點
疑難解答