如何使用Zenity在bash腳本中顯示GUI對話框

如何使用Zenity在bash腳本中顯示GUI對話框

每個人都知道Linux bash腳本是Linux的真正優勢。腳本通常需要顯示圖形用戶界面(GUI),以促進用戶交互。 GUI使您的腳本更加用戶友好和美觀。

對於Shell腳本GTK,Linux上有許多可用的選項和工具。

本文將向您展示如何使用Zenity在Bash腳本中顯示GUI對話框。

Zenity是一個開源應用程序,用於在Shell腳本中顯示簡單的GUI。 通過顯示GTK +對話框,使您的腳本更加用戶友好。 Zenity是用於創建現代Shell腳本的便捷命令行工具。 Zenity是易於使用的跨平台應用程序。

先決條件

具有root特權的sudo用戶。

安裝Zenity

Zenity是GNOME桌面的一部分,默認情況下已在大多數Linux發行版中安裝。您可以通過在終端中運行以下命令來驗證系統上是否已安裝Zenity:

zenity --version

如果您的系統上未安裝Zenity 易於dnf 或者 吃豆人 對於基於Ubuntu / Debian的系統:

sudo apt-get install zenity

對於基於RedHat的系統:

dnf install zenity

對於基於Arch的系統:

pacman -S zenity

Zenity常規選項

您可以在Zenity中單獨使用一些常用選項。常用選項是-title,-window-icon,-width,-height和-timeout。

您可以使用— title選項指定對話框窗口的標題。

您可以使用–window-icon選項指定將在“ Zenity”對話框中用作圖標的圖標。

不僅如此,還可以通過使用Zenity命令設置–width和–height選項來設置Zenity對話框的寬度和高度。

對話框自動關閉後,可以使用–timeout選項設置對話框超時。

Zenity消息框

您可以從終端使用簡單的Zenity命令來創建基本的和良好的GUI消息對話框。 Zenity可以使用四種類型的消息對話框。

  • 信息
  • 錯誤
  • 問題
  • 警告

1.信息對話框

您可以通過在終端中運行以下命令來創建信息對話框:

zenity --info --text="Software Update Available." --width=500

2.錯誤對話框

運行以下命令以顯示錯誤對話框

zenity --error --text="Error In Installation" --title="Error" --width=500 --width=200

使用bash腳本顯示錯誤對話框

3.問題對話框

您可以通過運行以下命令輕鬆地詢問“是”或“否”問題:

zenity --question --text="Do you want to reboot pc?" --width=200

bash對話框您可以將ZenityQuestionDialog與以下shell腳本一起使用:

#/bin/bashtouch demo.txtif zenity --question --title="Confirm deletion" --text="Are you sure you want to demo.txt file?" --no-wrap    then    rm demo.txt    zenity --info --title="Success" --text="demo.text was removed" --no-wrapfi

4.警告對話框

zenity --warning --title="Update Available" --text="OS Update required" --width=200

Bash警告顯示對話框

注意

您可以使用Zenity查看通知。

zenity --notification --text "Good Morning"

使用bash腳本在GNOME中顯示桌面通知

Zenity輸入框

Zenity允許您創建一個簡單的對話框,該對話框接收用戶的輸入並將其顯示為標準輸出。

以下是一些輸入框:

日曆

[カレンダー]對話框中顯示一個日曆,並返回用戶選擇的日期作為標準輸出。

zenity --calendar
Output:17/04/21

來自bash腳本的日曆輸入

文字輸入對話框

您可以使用–entry選項創建文本輸入對話框。如果您想要求用戶輸入文本,這將非常有用。

zenity --entry --title "User Info" --text "Please enter your name"

列表對話框

您可以使用–list選項創建一個多列對話框。在這裡,您需要在列表對話框中逐列和逐行輸入數據。您可以在列表對話框中使用複選框或重做框,如下所示。

zenity --list  --title "Choose Processor" --radiolist  --column "ID" --column="Name" 1 AMD 2 Intel

列表對話框

您也可以使用-list選項指定一個複選框以進行多項選擇。

使用bash的複選框選項

zenity --list --title "Packages" --list  --text "select packages you want to install" --checklist --column "id"  --column "Name" 1 "Google Chrome" 2 "VLC" 3 "Firefox" 4 "GIMP"
OutputGoogle Chrome|VLC|Firefox

顏色選擇對話框

您可以使用–color-selection選項從用戶那裡獲得顏色選擇值。

zenity --color-selection --show-palette

Bash腳本顏色選擇器

文件選擇對話框

您可以使用–file-selection選項將所選文件或目錄捕獲為標準輸出。 您也可以使用–file-selection選項保存文件。

zenity --file-selection --multiple --filename "/"

從bash打開文件選擇框

進度對話框

您可以使用–progress選項創建一個不錯的進度欄。這對於向用戶顯示應用程序或腳本完成的進度條非常有用。使用以下命令下載進度條。

(wget -r  --no-parent patch -A.tar.gz http://157.245.99.119/latest/ -P /tmp 2>&1 ) | sed -u 's/.* ([0-9]+%) +([0-9.]+.) (.*)/1n# Downloading at 2/s, ETA 3/' | zenity --progress --title="Downloading File..." --percentage=1 --pulsate

有關高級進度選項,請在終端中運行以下命令

zenity --help-progress

可用於其他Zenity選項 人的熱情Zenity-幫助..

結論

在上面的指南中,您學習了如何使用Zenity編寫bash腳本以顯示GUI對話框,並使Bash腳本更加用戶友好。如有任何疑問,請隨時與我們聯繫。

Sidebar