歡迎您光臨本站 註冊首頁

Zenity教程:Linux如何自動管理腳本?

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

每個系統管理員都需要使用shell腳本不時地自動執行許多日常工作。其實許多這些小幫手都是來源於命令行,而有時也需要通過用戶輸入。你可以使用Python一類成熟的編程語言來完成它,或者你也可以使用Zenity工具。

Zenity是基於GTK+的一個對話框工具,並為管理員提供了許多有用的用戶輸入輸出的命令行窗口,能夠很方便的應用於shell腳本之中。雖然它的工具列表是比較有限的,但是仍然提供了日期選擇器,文件/目錄選擇、列表框、消息框和進度條。Zenity不是一個直接腳本,而是在你的腳本中能夠提供標準輸出結果的工具。在這個Zenity教程中,我們瀏覽過很多關於怎樣使用Zenity的練習實例,來把過去曾經易暴露的備份變的更加安全。

Zenity入門

快速谷歌搜索將找到許多Zenity教程和Zenity Manual官方網站的鏈接。你能夠得到一種用Zenity來做什麼的感覺,最好的辦法是打開終端,並旋轉它。Zenity有內置的幫助選項。它提供一個所有選項的列表,包括對每一個對話框附加的幫助。主要對話框的列表包括日曆、輸入、報錯、消息、文件選擇、清單、通知、進展、問題、警告、比例和文字信息。

許多對話框有一些簡單的選項設置,例如文本輸入對話框。選項包括—進入-默認文本,文本顯示在輸入框的上面;--隱藏-當你輸入密碼的時候掩飾你的輸入。如果在終端上輸入簡單的命令,你會看到對話框,並且結果將返回給屏幕。一個例子:使用—進入命令可能看上去像下面這樣:

$ zenity --entry --text=”Please enter your name”

有時候你會根據用戶不同的輸入採取不同的行動,例如,點擊取消鍵。這種類型的交互是需要一些shell腳本來捕獲對話框的輸出,但這並不複雜。如果你不熟悉shell或Bash腳本,你可以在網上查找一些很實用的關於Bash的編程入門教程。如果你更喜歡紙質書,你可以試一試最新版的Unix和Linux 系統管理手冊。它有一整章是關於腳本的介紹,其它31章也是與shell相關的,這是作為一個Linux系統管理員需要掌握的。

文件和目錄

在腳本中較常見的任務之一就是使用正在執行的任務來選擇一個需要的文件或目錄。Zenity的文件選擇對話框提供訪問標準GTK+文件對話框和輸出已選文件的所有路徑。這個對話框包括許多選項:-- 確定-使用關聯文件的覆蓋,--保存提示-如果選擇使用現有的文件,結果就將覆蓋當前的文件。

下面這行腳本將顯示一個文件選擇對話框和這個strFileName變數中存儲的結果:

$ strFileName=$(zenity --file-selection --save --confirm-overwrite); echo $strFileName

‘$’後面的‘=’ 促使Bash來替換Zenity命令輸出,作為一個為strFileName變數賦值的目標。用前面的字元‘$’ 來代替echo命令的參數變數strFileName,結果會返回到終端屏幕。

文件選擇對話框的其它選項包括:--multiple用來選擇多個文件;--file-設置文件過濾器要顯示的東西;--directory用於激活目錄只讀模式。在顯示文件選擇對話框之前,很容易了解文本輸入對話框到選擇過濾模式之間是如何聯繫起來的。當使用--multiple選項時,你也能夠使用--separator選項來設定什麼字元將用來分割文件名。如果你沒有設定的話,將默認使用‘|’。

總結

通過一個小實驗,你應該能夠掌握如何把Zenity對話框添加到一個已存在或新的腳本里。任何需要用戶輸入的腳本都將是一個很好的對象,以及需要使用標準框來顯示輸出。--list選項完成一個偉大的解決方案,如果你需要從用戶的選擇中顯示資料一覽表。有許多像文件選擇對話框一樣的選項,如--checklist和--radiolist用來設置複選框或單選按鈕的第一列。



[火星人 ] Zenity教程:Linux如何自動管理腳本?已經有867次圍觀

http://coctec.com/docs/linux/show-post-68587.html