目錄
為什麼要使用Zenity?
在Linux中安裝Zenity
Linux中Zenity的基本用法
示例1:顯示信息對話框
示例2:顯示警告對話框
示例3:顯示問題對話框
示例4:顯示文件選擇對話框
示例5:顯示文本輸入對話框
示例6:顯示密碼對話框
示例7:顯示進度欄對話框
示例8:顯示錯誤對話框
示例9:顯示列表對話框
在shell腳本中使用Zenity
Zenity的錯誤處理
結論
首頁 系統教程 Linux Zenity:在外殼腳本中構建GTK對話框

Zenity:在外殼腳本中構建GTK對話框

May 13, 2025 am 09:38 AM

Zenity是一種工具,可讓您使用命令行在Linux中創建圖形對話框。它使用GTK ,這是​​一種用於創建圖形用戶界面(GUI)的工具包,使您可以輕鬆地將視覺元素添加到您的腳本中。

Zenity對於外殼腳本非常有用,因為它提供了一種通過對話框,文件選擇器,進度條等與用戶進行交互的簡單方法。

在本文中,我們將深入了解Zenity的工作原理,它可以創建的對話框的類型以及如何在Shell腳本中有效使用它。

為什麼要使用Zenity?

在編寫Shell腳本時,通常通過終端中的文本輸入/輸出進行用戶交互。但是,在某些情況下,您可能希望提供更具用戶友好的體驗,尤其是當腳本適用於可能不滿意終端命令的人時。

Zenity通過允許您創建易於理解和使用的圖形對話框來幫助解決此問題。

在Linux中安裝Zenity

大多數現代Linux發行版都帶有Zenity預安裝,您可以通過在終端中鍵入以下命令來檢查系統上的Zenity

 Zenity- version

<strong>4.0.1</strong>
登入後複製

如果安裝了Zenity ,則此命令將顯示版本號。如果未安裝,則可以使用軟件包管理器安裝它。

 sudo apt安裝Zenity [在<strong>Debian,Ubuntu和Mint</strong>上]
sudo yum安裝Zenity [在<strong>Rhel/Centos/Fedora</strong>和<strong>Rocky/Almalinux</strong>上]
Sudo Emerge -a sys -apps/zenity [ <strong>Gentoo Linux</strong>上]
sudo apk添加Zenity [在<strong>Alpine Linux</strong>上]
sudo pacman -s Zenity [在<strong>Arch Linux</strong>上]
sudo zypper安裝Zenity [在<strong>OpenSuse</strong>上]    
sudo pkg安裝Zenity [在FreeBSD上]
登入後複製

Linux中Zenity的基本用法

Zenity非常易於使用,因為它通過使用各種選項從命令行中調用不同類型的對話框進行操作。每個選項對應於特定類型的對話框。

示例1:顯示信息對話框

Zenity的最簡單用途之一是顯示一個信息對話框。

 Zenity -Info -Text =“這是一個信息對話框”
登入後複製

Zenity:在外殼腳本中構建GTK對話框

示例2:顯示警告對話框

您還可以使用以下命令顯示警告對話框:

 Zenity - -warning -Text =“這是警告消息”
登入後複製

Zenity:在外殼腳本中構建GTK對話框

示例3:顯示問題對話框

問題對話框可用於向用戶詢問是/否問題。結果作為退出代碼返回。

如果Zenity  -  Question -Text =“您想繼續嗎?”;然後
    迴聲“用戶選擇是”
別的
    Echo“用戶選擇否”
fi
登入後複製

Zenity:在外殼腳本中構建GTK對話框

示例4:顯示文件選擇對話框

Zenity也可以用來打開文件選擇對話框,從而使用戶可以從其係統中選擇文件:

 file = $(zenity-文件 - 選擇-title =“選擇文件”)
迴聲“您選擇:$ file”
登入後複製

Zenity:在外殼腳本中構建GTK對話框

示例5:顯示文本輸入對話框

您可以創建一個對話框,該對話框提示用戶輸入一些文本,這對於獲取用戶輸入很有用。

 USER_INPUT = $(Zenity -Entry -title =“ Intup ofult ofurt ofurt”  -  Text =“輸入您的名稱:”)
迴聲“您輸入:$ user_input”
登入後複製

Zenity:在外殼腳本中構建GTK對話框

示例6:顯示密碼對話框

如果要詢問用戶輸入密碼,則可以使用“密碼”對話框,但是輸入將隱藏在視圖中:

密碼= $(zenity -password -title =“輸入您的密碼”)
迴聲“輸入密碼:$密碼”
登入後複製

Zenity:在外殼腳本中構建GTK對話框

示例7:顯示進度欄對話框

Zenity可以顯示一個進度欄,當您想指出任務正在進行中時,這很有用。

 ((
對於{1..100};做
    迴聲$ i
    睡眠0.1
完畢
)| zenity  -  progress  -  title =“進展任務” -Text =“請wait ...” -pecentage = 0
登入後複製

Zenity:在外殼腳本中構建GTK對話框

示例8:顯示錯誤對話框

當您的腳本中出現問題時,您可以顯示錯誤對話框:

 zenity -error -text =“發生錯誤!”
登入後複製

Zenity:在外殼腳本中構建GTK對話框

示例9:顯示列表對話框

Zenity可以顯示一個選項列表供用戶選擇:

 zenity -list -title =“選擇一個選項” -COLUMN =“ options”選項1“”選項2“選項3”
登入後複製

Zenity:在外殼腳本中構建GTK對話框

在shell腳本中使用Zenity

可以將Zenity無縫集成到Shell腳本中,以創建更具用戶友好的體驗。

這是一個使用各種Zenity對話框的簡單腳本的完整示例。

 #! /bin/bash

#歡迎消息
Zenity -Info -Text =“歡迎來到用戶設置腳本”

#要求用戶的名字
user_name = $(zenity -entry -title =“用戶信息” -Text =“請輸入您的名字:”)

#要求確認
如果Zenity  -  Question -Text =“您的名字$ user_name?”;然後
    Zenity -Info -Text =“謝謝,$ user_name”
別的
    Zenity -error -Text =“名稱不匹配。退出腳本。”
    出口1
fi

#文件選擇
file = $(zenity-文件 - 選擇-title =“選擇要處理的文件”)
Zenity -Info -Text =“您選擇:$ file”

#顯示進度
((
對於{1..100};做
    迴聲$ i
    睡眠0.1
完畢
)| zenity -progress -title =“處理文件” -Text =“請在我們處理文件...”時等待

Zenity -Info -Text =“過程完成!”
登入後複製

此腳本首先歡迎用戶,然後詢問他們的名字,確認名稱,要求他們選擇文件,並在處理文件時顯示進度條。它演示瞭如何使用Zenity將圖形接口添加到否則基於文本的腳本中。

Zenity:在外殼腳本中構建GTK對話框

Zenity的錯誤處理

Zenity根據用戶操作返回不同的退出代碼。了解這些代碼有助於處理腳本中正確的錯誤或用戶取消。

  • 退出代碼0 :用戶單擊“確定”或選擇一個選項。
  • 退出代碼1 :用戶單擊“取消”或關閉對話框。
  • 退出代碼-1 :發生了一些錯誤。

您可以使用這些退出代碼來處理不同的用戶響應:

如果Zenity  -  Question -Text =“您想繼續嗎?”;然後
    Echo“繼續...”
別的
    迴聲“用戶取消操作”。
    出口1
fi
登入後複製
結論

Zenity是在Shell腳本中創建圖形對話框的非常有用的工具。無論您是構建簡單的文件選擇器,交互式問題對話框還是進度條,Zenity都可以通過提供用戶友好的界面來增強您的腳本。

通過使用Zenity ,您可以使非技術用戶更容易訪問命令行應用程序和Shell腳本。

以上是Zenity:在外殼腳本中構建GTK對話框的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1672
14
CakePHP 教程
1428
52
Laravel 教程
1332
25
PHP教程
1276
29
C# 教程
1256
24
Linux管理員的薪水是多少? Linux管理員的薪水是多少? Apr 17, 2025 am 12:24 AM

Linux管理員的平均年薪在美國為75,000至95,000美元,歐洲為40,000至60,000歐元。提升薪資可以通過:1.持續學習新技術,如雲計算和容器技術;2.積累項目經驗並建立Portfolio;3.建立職業網絡,拓展人脈。

Linux系統管理員的主要任務是什麼? Linux系統管理員的主要任務是什麼? Apr 19, 2025 am 12:23 AM

Linux系統管理員的主要任務包括系統監控與性能調優、用戶管理、軟件包管理、安全管理與備份、故障排查與解決、性能優化與最佳實踐。 1.使用top、htop等工具監控系統性能,並進行調優。 2.通過useradd等命令管理用戶賬戶和權限。 3.利用apt、yum管理軟件包,確保系統更新和安全。 4.配置防火牆、監控日誌、進行數據備份以確保系統安全。 5.通過日誌分析和工具使用進行故障排查和解決。 6.優化內核參數和應用配置,遵循最佳實踐提升系統性能和穩定性。

Linux和Windows之間虛擬化支持有哪些差異? Linux和Windows之間虛擬化支持有哪些差異? Apr 22, 2025 pm 06:09 PM

Linux和Windows在虛擬化支持上的主要區別在於:1)Linux提供KVM和Xen,性能和靈活性突出,適合高定制環境;2)Windows通過Hyper-V支持虛擬化,界面友好,與Microsoft生態系統緊密集成,適合依賴Microsoft軟件的企業。

Linux的主要目的是什麼? Linux的主要目的是什麼? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

很難學習Linux嗎? 很難學習Linux嗎? Apr 18, 2025 am 12:23 AM

學習Linux並不難。 1.Linux是一個開源操作系統,基於Unix,廣泛應用於服務器、嵌入式系統和個人電腦。 2.理解文件系統和權限管理是關鍵,文件系統是層次化的,權限包括讀、寫和執行。 3.包管理系統如apt和dnf使得軟件管理方便。 4.進程管理通過ps和top命令實現。 5.從基本命令如mkdir、cd、touch和nano開始學習,再嘗試高級用法如shell腳本和文本處理。 6.常見錯誤如權限問題可以通過sudo和chmod解決。 7.性能優化建議包括使用htop監控資源、清理不必要文件和使用sy

Linux軟件的未來:Flatpak和Snap會替換本機桌面應用程序嗎? Linux軟件的未來:Flatpak和Snap會替換本機桌面應用程序嗎? Apr 25, 2025 am 09:10 AM

多年來,Linux軟件分佈依賴於DEB和RPM等本地格式,並深深地根深蒂固。 但是,Flatpak和Snap已經出現,有望成為應用程序包裝的通用方法。 本文考試

在Linux中比較文件的前7個工具(示例) 在Linux中比較文件的前7個工具(示例) Apr 28, 2025 am 09:21 AM

本指南探討了用於比較Linux中文本文件的各種方法,Linux是系統管理員和開發人員的關鍵任務。 我們將介紹命令行工具和視覺差異工具,突出顯示其優勢和適當的用例。 假設

Linux和Windows之間的用戶帳戶管理有什麼區別? Linux和Windows之間的用戶帳戶管理有什麼區別? May 02, 2025 am 12:02 AM

Linux和Windows在用戶賬戶管理上的主要區別在於權限模型和管理工具。 Linux使用基於Unix的權限模型和命令行工具(如useradd、usermod、userdel),而Windows採用自己的安全模型和圖形用戶界面(GUI)管理工具。

See all articles