shell的图形化工具(七)
隨著新工具的出現,在shell中也能夠進行圖形化的編程了,不過這些比起用java或者其他的高級語言實現的圖形界面是非常簡陋的。
7.1 dialog的普通使用
我們先來顯示一個普通的文本框,來看看。在命令行下輸入如下的命令:
dialog –msgbox “this is content” 10 20
產生如下的界面
如果提示沒有安裝dialog,請安裝dialog。下面的指令是在Ubuntu下安裝dialog
sudo apt-get install dialog
注意:dialog會將內容輸出到錯誤輸出流中,因此可以通過錯誤輸出流來獲得內容,點擊ok按鈕返回0,點擊cancel返回1.可以通過$?來判斷點擊的是哪一個按鈕
對上面的指令進行詳細說明,dialog的使用格式如下:
dialog 通用選項 box選項
7.2.dialog 有兩類選項,一種叫做通用選項,一種叫box選項。
通用選項:對所有的指令都適用。
box選項:專門構建各種box的選項。
常見的通用選項如下,這里并沒有列出完整的通用選項,可以通過man dialog進行查看(外加一個英語詞典):
–colors:調整字體顏色.man dialog查看該選項,原文如下:
Interpret embedded “\Z” sequences in the dialog text by the following character, which tells dialog to set colors or video attributes: 0 through 7 are the ANSI used in curses: black, red, green, yellow, blue, magenta, cyan and white respectively. Bold is set by ‘b’, reset by ‘B’. Reverse is set by ‘r’, reset by ‘R’. Underline is set by ‘u’, reset by ‘U’. The settings are cumulative, e.g., “\Zb\Z1” makes the following text bold (perhaps bright) red. Restore normal settings with “\Zn”.
大致翻譯如下:通過寫在文本里面的反斜杠字符’\Z’,來告訴dialog應該顯示怎樣的顏色屬性:這里有0-7個數字,分別表示,黑色,紅色,綠色,黃色,藍色,品紅色,青色和白色。粗體使用字符b,取消粗體使用B。反白使用r(類似于字體被選中的情況),取消反白使用R。下劃線使用u,取消下劃線使用U。舉例如下:
鍵入如下的命令:
效果如下:
解釋如下:\Z1后面的字體使用紅色,因此后面三個wanbiao使用紅色字體。\Zb后面使用粗體,因此倒數第二個wanbiao使用粗體,加紅色,\ZB取消粗體,\Zu使用下劃線,因此最后一個wanbiao使用了紅色,非粗體,加下劃線。
–ok-label string:使用指定的字符串,替換原生的ok。如下:
效果如下:
–cancel-label string:用指定的字符串,替換原生的cancel,類似于上面的選項。
–no-shadow :取消掉陰影,這在某些遠程終端上比較常用,遠程終端有時是使用字符來替代陰影,因此顯得比較混亂,可以使用此選項關閉陰影。
–shadow:同上,顯示陰影。
–clear:清除操作。
–timeout seconds:再給定秒的時間內,沒有操作,將會產生超時,設置0秒的話,將會直接忽略。超時之后,返回一個255的錯誤碼
還有一些通用選項,沒有列出,可以通過man進行查看。
二.box選項
msgbox:顯示一個信息框,用法如下:
dialog –msgbox text height width上面所有的列子都是以—msgbox來舉例的,這里不再舉例。
–checklist:顯示一個選項列表,用法如下:
dialog –checklist text height width list-height [ tag item status ] …
效果如下:
–form:表單,使用樣式如下:
dialog –form text height width formheight [ label y x item y x flen ilen ]
label y x 表示在y行x列顯示label
item y x 表示在y行x列顯示item
flen 表示filed length,字段長度
ilen 表示input length,輸入的字符長度。
示例如下:
效果圖如下:
–fselect :文件選擇器。
dialog –fselect filepath height width
效果如下:
–gauge:進度條
dialog text height width [percent]
效果如下:
下面寫一個動態的進度條,使用for循環傳遞數值給dialog如下:
圖片不能顯示動態的效果,因此,可以自己手動試一下。
–infobox text height width:跟—msgbox類似,這里不再舉例,不過他是一個消息框,彈出之后,馬上就返回了。
–inputbox text height width [init]:輸入框,如下示例:
效果如下:
剩下的box選項還包括:
–inputmenu
–menu
–pause
–passwordbox
–passwordform
–radiolist
–timebox
–calendar
等等一系列的box選項,這些選項,可以通過man手冊,獲取。此處不再贅述。
三.綜合運用
這里顯示一個例子,類似于用戶登錄,
1.首先輸入用戶名和密碼,點擊確定按鈕后
2.驗證是否正確,正確密碼為123456
代碼如下:
注意,密碼框應該是用真正的—passwordbox。
自此,shell的基礎已經復習完畢,下面的一個專題是如何自己開發這種類似的dialog工具。
效果圖如下:
總結
以上是生活随笔為你收集整理的shell的图形化工具(七)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在观念上进行大的转变
- 下一篇: Huawei S8512