24、dialog學習筆記
每個對話方塊提供的輸出有兩種形式:
1. 將所有輸出到stderr 輸出,不顯示到螢幕。
2. 使用退出狀態碼,“OK”為0,“NO”為1,"ESC"為255用法
用法:
dialog 通用選項 窗體選項
常用通用選項
[--backtitle <backtitle>]
[--begin <y> <x>] 指定窗體左上角的起始位置
[--cancel-label <str>] 指定cancel按鍵顯示的內容
[--colors] 指定文字內容顏色\Znum顯示的文字\Zn,num取值範圍1-7
[--default-item <str>] 指定menu窗體中預設選中的條目,預設為第一條
[--defaultno] 指定yesno窗體中預設選中的為no
[--exit-label <str>]
[--extra-button] 新增額外按鍵
[--extra-label <str>] 額外按鍵顯示的內容
[--insecure] 指定passwordbox窗體中,密碼以*格式顯示
[--no-cancel] 取消cancel按鍵
[--no-label <str>] 指定no按鍵顯示的內容
[--no-ok] 取消ok按鍵
[--no-shadow] 取消陰影
[--nook] 取消ok按鍵
[--ok-label <str>] 指定ok按鍵顯示的內容
[--shadow] 顯示陰影
[--sleep <secs>] 指定窗體休眠時間,這段時間內無法做其他操作
[--stderr] 指定輸出到標準錯誤輸出
[--stdout] 指定輸出到標準輸出,可以使用命令替換來獲取dialog輸出結果
[--timeout <secs>] 指定無操作是自動退出窗體
[--title <title>] 指定窗體標題
窗體
--calendar <text> <height> <width> <day> <month> <year>
--checklist <text> <height> <width> <list height> <tag1> <item1> <status1>...
--dselect <directory> <height> <width>
--editbox <file> <height> <width>
--form <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>...
--fselect <filepath> <height> <width>
--gauge <text> <height> <width> [<percent>]
--infobox <text> <height> <width>
--inputbox <text> <height> <width> [<init>]
--inputmenu <text> <height> <width> <menu height> <tag1> <item1>...
--menu <text> <height> <width> <menu height> <tag1> <item1>...
--mixedform <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1> <itype>...
--mixedgauge <text> <height> <width> <percent> <tag1> <item1>...
--msgbox <text> <height> <width>
--passwordbox <text> <height> <width> [<init>]
--passwordform <text> <height> <width> <form height> <label1> <l_y1> <l_x1> <item1> <i_y1> <i_x1> <flen1> <ilen1>...
--pause <text> <height> <width> <seconds>
--progressbox <height> <width>
--radiolist <text> <height> <width> <list height> <tag1> <item1> <status1>...
--tailbox <file> <height> <width>
--tailboxbg <file> <height> <width>
--textbox <file> <height> <width>
--timebox <text> <height> <width> <hour> <minute> <second>
--yesno <text> <height> <width>
應用例項:
日曆窗體
echo `dialog --stdout --title 日曆窗體 --calendar 顯示日期 10 30 8 8 2008`
複選窗體
echo `dialog --stdout --title 複選窗體 --checklist 選擇以下選項 10 30 5 Disk "Disk Info" 1 Mem "Memory Info" 2`
目錄選擇窗體
echo `dialog --stdout --title 目錄選擇窗體 --dselect /root 10 30`
文字編輯窗體
dialog --stdout --title 文字編輯窗體 --editbox /home/inittab 100 300 > /home/inittab_edit
表單窗體
echo `dialog --stdout --title --form 表單 20 50 10 username: 1 1 "" 1 10 20 20 password: 2 1 "" 2 10 20 20 userid: 3 3 "" 3 10 20 20`
檔案選擇窗體
echo `dialog --stdout --title 檔案選擇窗體 --fselect /etc/sysconfig/network-scripts/ 20 50`
進度條窗體
for I in {1..100};do echo $I; sleep 0.1; done | dialog --title 進度條窗體 --gauge 進度 10 50 0
for I in {1..100};do echo $I; echo XXX; echo 完成進度:$I%;echo XXX; sleep 0.1; done | dialog --title 進度條窗體 --gauge 進度 10 50 0
資訊顯示窗體
dialog --title 資訊顯示窗體 --infobox 此窗體和msgbox窗體類似,用於顯示資訊 10 20
輸入窗體
echo `dialog --stdout --title 輸入窗體 --inputbox username 10 30 123`
選單窗體
echo `dialog --stdout --title 選單窗體 --menu 選擇任意選項 20 50 10 Disk "Disk Info" Mem "Memory Info"`
資訊顯示窗體
dialog --title 資訊顯示窗體 --msgbox 此窗體和infobox窗體類似,用於顯示資訊 10 20
密碼輸入窗體
echo `dialog --stdout --title 密碼輸入窗體 --passwordbox 請輸入密碼 20 50`
密碼輸入選單窗體
echo `dialog --title 密碼輸入選單窗體 --stdout --passwordform 請輸入密碼 20 50 10 張三: 1 1 '' 1 10 10 10 李四: 2 1 '' 2 10 10 10`
倒計時窗體
dialog --title 倒計時窗體 --pause 倒計時 10 20 10
文字顯示窗體
dialog --title 文字顯示窗體 --textbox /etc/inittab 100 200
時間窗體
echo `dialog --title 時間窗體 --stdout --timebox 顯示時間 20 50 1 1 1`
YES/NO窗體
dialog --title YES/NO窗體 --yesno 請選擇YES或者NO 10 20