GNU/Linux >> Linux Esercitazione >  >> Linux

Come visualizzare le finestre di dialogo della GUI nello script bash usando Zenity

Sappiamo tutti che gli script bash di Linux sono un vero punto di forza di Linux. Spesso desideriamo visualizzare un'interfaccia utente grafica (GUI) nei nostri script per facilitare l'interazione con gli utenti. La GUI rende qualsiasi script più intuitivo e bello.

Per GTK negli script di shell, ci sono molte opzioni e strumenti disponibili in Linux.

In questo articolo, ti mostreremo come utilizzare Zenity per visualizzare le finestre di dialogo della GUI negli script Bash.

Zenity è un'applicazione open source per la visualizzazione di una semplice GUI negli script della shell. Rende gli script più facili da usare visualizzando le finestre di dialogo GTK+. Zenity è un pratico strumento da riga di comando per i moderni script di shell. Zenity è facile da usare e un'applicazione multipiattaforma.

Prerequisiti

Un utente sudo con privilegi di root.

Installa Zenity

Zenity fa parte del desktop GNOME e, per impostazione predefinita, è installato sulla maggior parte delle distribuzioni Linux. Puoi verificare l'installazione di Zenity sul tuo sistema eseguendo il seguente comando nel terminale.

zenity --version


Se Zenity non è installato sul tuo sistema, puoi installarlo utilizzando Apt , dnf o pacman comando.

Per sistemi basati su Ubuntu/Debian:

sudo apt-get install zenity

Per i sistemi basati su RedHat:

dnf install zenity

Per i sistemi basati su Arch:

pacman -S zenity

Opzioni Zenity generali

Ci sono alcune opzioni generali che possono essere utilizzate con Zenity in modo indipendente. Le opzioni generali sono --title, --window-icon, --width, --height, --timeout

Puoi utilizzare l'opzione ---title per specificare un titolo per la finestra di dialogo.

Puoi usare l'opzione --window-icon per specificare un'icona che verrà utilizzata come icona per la finestra di dialogo Zenity.

Non solo, ma puoi impostare larghezza e altezza per la finestra di dialogo Zenity impostando le opzioni --width e --height nel comando Zenity.

Usando l'opzione --timeout puoi impostare un timeout del dialogo, dopo che la finestra di dialogo si chiude automaticamente.

Casella dei messaggi Zenity

Puoi creare una finestra di dialogo semplice e piacevole per i messaggi della GUI utilizzando un semplice comando Zenity dal terminale.

Quattro tipi di finestra di dialogo per i messaggi disponibili in Zenity.
 

  • Informazioni
  • Errore
  • Domanda
  • Avviso

1. Una finestra di dialogo informativa

È possibile creare la finestra di dialogo delle informazioni eseguendo il seguente comando nel terminale:

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


2. Una finestra di dialogo di errore

Esegui il comando seguente per visualizzare la finestra di dialogo di errore

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


3. Una finestra di dialogo per le domande

Puoi facilmente chiedere Sì a nessuna domanda eseguendo il seguente comando:

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


Puoi usare Zenity Question Dialog nello script della shell in questo modo:

#/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. Una finestra di dialogo di avviso

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

Notifica

Puoi visualizzare la notifica utilizzando Zenity.

zenity --notification --text "Good Morning"

Caselle di input Zenity

Usando Zenity puoi creare semplici finestre di dialogo che prendono input dall'utente e lo visualizzano come output standard.

Ecco alcune caselle di input:

Calendario

Calendario La finestra di dialogo mostra un calendario e restituisce la data selezionata dall'utente come output standard.

zenity --calendar
Output:
17/04/21

Finestra di immissione testo

È possibile utilizzare l'opzione --entry per creare una finestra di dialogo per l'immissione di testo. È molto utile quando vuoi chiedere all'utente di inserire del testo.

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

Finestra di dialogo Elenco

Puoi usare l'opzione --list per creare una finestra di dialogo a più colonne, qui devi inserire i dati per la finestra di dialogo dell'elenco colonna per colonna, riga per riga. È possibile utilizzare la casella di controllo o la casella di ripristino con la finestra di dialogo elenco come mostrato di seguito:

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

Puoi anche dare una casella di controllo con l'opzione --list per la selezione multipla.

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

Finestra di selezione del colore

Puoi usare l'opzione --color-selection per prendere il valore di selezione del colore dall'utente.

zenity --color-selection --show-palette

Finestra di selezione dei file

È possibile utilizzare l'opzione --file-selection per acquisire file o directory selezionati come output standard. Puoi anche salvare il file usando l'opzione --file-selection.

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

Finestra di avanzamento

Puoi creare una bella barra di avanzamento usando l'opzione --progress. Questo è utile molte volte, quando vuoi mostrare all'utente la barra di avanzamento del completamento dell'applicazione o dello script.

Di seguito il comando con mostra la barra di avanzamento del download.

(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

Per ulteriori opzioni di avanzamento esegui il seguente comando nel terminale

zenity --help-progress

Per ulteriori opzioni di Zenity puoi utilizzare man Zenity e Zenity --help .

Conclusione

Nella guida sopra, hai imparato come scrivere uno script bash per visualizzare le finestre di dialogo della GUI usando Zenity e rendere lo script Bash più intuitivo. Sentiti libero di chiedermi se hai domande.


Linux
  1. Come dividere una stringa nello script Bash

  2. Come sostituire gli spazi nei nomi dei file usando uno script bash

  3. Come visualizzare solo righe diverse usando diff (bash)

  4. Come analizzare le intestazioni HTTP usando Bash?

  5. Come aggiungere un lavoro crontab a crontab usando uno script bash?

Come visualizzare le informazioni di processo utilizzando Procs su Linux

Come visualizzare i cheatsheet dei comandi di Linux usando ad es

Come creare finestre di dialogo della GUI negli script Bash con Zenity in Linux e Unix

Come creare finestre di dialogo della GUI negli script Bash con Whiptail in Linux

Come visualizzare le informazioni sulla CPU di Linux utilizzando CPUFetch

Come eseguire uno script Bash