1. 程式人生 > >24、dialog學習筆記

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>]             

指定exit按鍵顯示的內容

  [--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