文字和圖形介面
dialog是一種在shell script中建立對話方塊的工具,利用dialog可以建立不同的資訊和問題視窗,增加指令碼方便性。
dialog建立的是終端模式下的文本介面,另外有一種和dialog文法相容的工具叫xdialog,xdialog算建立X window下的圖形介面。xdialog使用GTK+圖形工具來完成各式各樣的對話方塊,可融入不同的桌面主題。http://xdialog.free.fr/
除了xdialog外,zenity也可以,它改寫自gdialog。
安裝:sudo apt-get install dialog xdialog zenity
xdialog沒有找到。。。
使用dialog
目前支援的對話方塊功能有:
calendar,checklist,form,fselect,gauge,infobox,inputbox,inputmenu,menu,msgbox(message),password,pause,radiolist,tailbox,tailboxbg,textbox,timebox,and yesno(yes/no)
這些對話方塊的文法,至少要有三個參數:標題或資訊內容,視窗高度、寬度
常用的用法:
顯示資訊:dialog --msgbox 資訊內容 高度 寬度
按確認離去狀態為0,按esc離去狀態為255,可使用$?來檢查使用者對視窗的反應。
例子
#!/bin/bash
DIA='/usr/bin/dialog'
$DIA --msgbox "小測試1" 10 40
x=$?
if [ "$x" -eq 0 ]; then
echo "你按了Enter鍵"
elif [ "$x" -eq 255 ]; then
echo "你按了Esc鍵"
else
echo "未知的錯誤"
fi
結果
進度條
#!/bin/bash
{
for((i=1;i<=10;i++))
do
let I=10*i
echo $I
sleep 1
done
} | dialog --gauge "進度" 5 60 0
xdialog可向下相容大部分的dialog文法,只需要改為Xdialog。但支援更加多樣化的對話方塊。。