Všichni víme, že linuxové bash skripty jsou skutečnou silou Linuxu. Často chceme v našich skriptech zobrazit grafické uživatelské rozhraní (GUI), abychom usnadnili interakci s uživateli. GUI dělá jakýkoli skript uživatelsky přívětivějším a krásnějším.
Pro GTK ve skriptech shellu je v Linuxu k dispozici mnoho možností a nástrojů.
V tomto článku vám ukážeme, jak používat Zenity k zobrazení dialogů GUI ve skriptech Bash.
Zenity je open-source aplikace pro zobrazení jednoduchého GUI ve skriptech shellu. Díky zobrazování GTK+ dialogů jsou skripty uživatelsky přívětivější. Zenity je užitečný nástroj příkazového řádku pro moderní skriptování shellu. Zenity se snadno používá a je multiplatformní aplikací.
Předpoklady
Uživatel sudo s právy root.
Nainstalujte Zenity
Zenity je součástí desktopu GNOME a ve výchozím nastavení je nainstalován na většině distribucí Linuxu. Instalaci Zenity ve vašem systému můžete ověřit provedením následujícího příkazu v terminálu.
zenity --version
Pokud Zenity není na vašem systému nainstalován, můžete jej nainstalovat pomocí Apt , dnf nebo pacman command.
Pro systémy založené na Ubuntu/Debian:
sudo apt-get install zenity
Pro systémy založené na RedHat:
dnf install zenity
Pro systémy založené na Arch:
pacman -S zenity
Obecné možnosti Zenity
Existují některé obecné možnosti, které lze se Zenity použít nezávisle. Obecné možnosti jsou --title, --window-icon, --width, --height, --timeout
Pro zadání názvu dialogového okna můžete použít volbu ---title.
Můžete použít volbu --window-icon k určení ikony, která bude použita jako ikona pro dialogové okno Zenity.
Nejen to, ale můžete nastavit šířku a výšku dialogového okna Zenity nastavením voleb --width a --height v příkazu Zenity.
Pomocí volby --timeout můžete nastavit časový limit dialogu, po kterém se dialogové okno automaticky zavře.
Schránka Zenity Message Box
Pomocí jednoduchého příkazu Zenity z terminálu můžete vytvořit nějaké základní a pěkné dialogové okno zpráv GUI.
V Zenity jsou k dispozici čtyři typy dialogového okna zpráv.
- Informace
- Chyba
- Otázka
- Upozornění
1. Informační dialogové okno
Informační dialogové okno můžete vytvořit spuštěním následujícího příkazu v terminálu:
zenity --info --text="Software Update Available." --width=500
2. Chybové dialogové okno
Provedením následujícího příkazu zobrazíte chybové dialogové okno
zenity --error --text="Error In Installation" --title="Error" --width=500 --width=200
3. Dialogové okno s otázkami
Provedením následujícího příkazu se můžete snadno zeptat na Ano bez otázky:
zenity --question --text="Do you want to reboot pc?" --width=200
V shellovém skriptu můžete použít Zenity Question Dialog takto:
#/bin/bash
touch demo.txt
if 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-wrap
fi
4. Dialogové okno varování
zenity --warning --title="Update Available" --text="OS Update required" --width=200
Oznámení
Oznámení můžete zobrazit pomocí Zenity.
zenity --notification --text "Good Morning"
Vstupní pole Zenity
Pomocí Zenity můžete vytvářet jednoduchá dialogová okna, která přebírají vstup od uživatele a zobrazují jej jako standardní výstup.
Zde jsou některá vstupní pole:
Kalendář
Kalendář Dialogové okno zobrazí kalendář a vrátí uživatelem vybrané datum jako standardní výstup.
zenity --calendar
Output:
17/04/21
Dialogové okno pro zadávání textu
Pro vytvoření dialogového okna pro zadávání textu můžete použít volbu --entry. Je to velmi užitečné, když chcete uživatele požádat, aby vložil nějaký text.
zenity --entry --title "User Info" --text "Please enter your name"
Dialogové okno seznamu
Můžete použít volbu --list k vytvoření vícesloupcového dialogu. Zde musíte zadat Data pro dialogové okno seznamu sloupec po sloupci, řádek po řádku. Můžete použít zaškrtávací políčko nebo rediobox s dialogovým oknem seznamu, jak je uvedeno níže:
zenity --list --title "Choose Processor" --radiolist --column "ID" --column="Name" 1 AMD 2 Intel
Můžete také zaškrtnout políčko s volbou --list pro vícenásobný výběr.
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"
Output
Google Chrome|VLC|Firefox
Dialogové okno pro výběr barvy
Můžete použít volbu --color-selection k převzetí hodnoty výběru barvy od uživatele.
zenity --color-selection --show-palette
Dialogové okno pro výběr souboru
Můžete použít volbu --file-selection k zachycení vybraných souborů nebo adresářů jako standardního výstupu. Soubor můžete také uložit pomocí volby --file-selection.
zenity --file-selection --multiple --filename "/"
Dialogové okno průběhu
Pomocí volby --progress můžete vytvořit pěkný ukazatel průběhu. To je užitečné mnohokrát, když chcete uživateli zobrazit ukazatel průběhu dokončení vaší aplikace nebo skriptu.
Níže příkaz s ukazatelem průběhu stahování.
(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.]\+.\) \(.*\)/\1\n# Downloading at \2\/s, ETA \3/' | zenity --progress --title="Downloading File..." --percentage=1 --pulsate
Pro další postup spusťte následující příkaz do terminálu
zenity --help-progress
Pro více možností Zenity můžete použít man Zenity a Zenity --help .
Závěr
Ve výše uvedené příručce jste se naučili, jak můžete napsat bash skript pro zobrazení dialogů GUI pomocí Zenity a učinit skript Bash uživatelsky přívětivějším. Pokud máte nějaké dotazy, neváhejte se mě zeptat.