Shell指令碼學習筆記(九)–文字和圖形介面

來源:互聯網
上載者:User

文字和圖形介面

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。但支援更加多樣化的對話方塊。。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.