Scripting · 5 min read · Nov 10, 2025

Come visualizzare le finestre di dialogo GUI in uno script bash utilizzando Zenity

Sappiamo tutti che gli script bash di Linux sono una vera forza di Linux. Spesso vogliamo visualizzare un’interfaccia utente grafica (GUI) nei nostri script per facilitare l’interazione con gli utenti. La GUI rende qualsiasi script più user-friendly e bello.

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

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

Zenity è un’applicazione open-source per visualizzare semplici GUI negli script shell. Rende gli script più user-friendly visualizzando finestre di dialogo GTK+. Zenity è un utile strumento da riga di comando per la programmazione moderna degli script shell. Zenity è facile da usare e un’applicazione multipiattaforma.

Requisiti

Un utente sudo con privilegi di root.

Installa Zenity

Zenity è parte del desktop GNOME e per impostazione predefinita è installato nella 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 il comando Apt, dnf o pacman.

Per sistemi basati su Ubuntu/Debian:

sudo apt-get install zenity

Per sistemi basati su RedHat:

dnf install zenity

Per sistemi basati su Arch:

pacman -S zenity

Opzioni generali di Zenity

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 utilizzare l’opzione –window-icon per specificare un’icona che sarà 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.

Utilizzando l’opzione –timeout puoi impostare un timeout per la finestra di dialogo, dopo il quale la finestra di dialogo si chiude automaticamente.

Finestra di messaggio Zenity

Puoi creare alcune finestre di dialogo di messaggio GUI di base e carine utilizzando un semplice comando Zenity dal terminale.

Quattro tipi di finestre di dialogo di messaggio disponibili in Zenity.

  • Informazione
  • Errore
  • Domanda
  • Avviso

1. Una finestra di dialogo di informazione

Puoi creare una finestra di dialogo di informazione eseguendo il seguente comando nel terminale:

zenity --info --text="Aggiornamento software disponibile." --width=500

Visualizza finestra di dialogo di testo informativo utilizzando lo script bash

2. Una finestra di dialogo di errore

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

zenity --error --text="Errore nell'installazione" --title="Errore" --width=500 --width=200

Mostra finestra di dialogo di errore utilizzando lo script bash

3. Una finestra di dialogo di domanda

Puoi facilmente chiedere una domanda di sì o no eseguendo il seguente comando:

zenity --question --text="Vuoi riavviare il pc?" --width=200

Finestre di dialogo in bash
Puoi utilizzare la finestra di dialogo di domanda di Zenity nello script shell in questo modo:

#/bin/bash  
touch demo.txt  
if zenity --question --title="Conferma eliminazione" --text="Sei sicuro di voler eliminare il file demo.txt?" --no-wrap  
    then  
    rm demo.txt  
    zenity --info --title="Successo" --text="demo.text è stato rimosso" --no-wrap  
fi

4. Una finestra di dialogo di avviso

zenity --warning --title="Aggiornamento disponibile" --text="Aggiornamento OS richiesto" --width=200

Bash mostra finestra di dialogo di avviso

Notifica

Puoi visualizzare una notifica utilizzando Zenity.

zenity --notification --text "Buongiorno"

Finestre di input Zenity

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

Ecco alcune finestre di input:

Calendario

La finestra di dialogo del calendario visualizza un calendario e restituisce la data selezionata dall’utente come output standard.

zenity --calendar
Output:  
17/04/21

Input calendario dallo script bash

Finestra di inserimento testo

Puoi utilizzare l’opzione –entry per creare una finestra di dialogo di inserimento testo. È molto utile quando vuoi chiedere all’utente di inserire del testo.

zenity --entry --title "Informazioni utente" --text "Per favore inserisci il tuo nome"

Finestra di dialogo elenco

Puoi utilizzare l’opzione –list per creare una finestra di dialogo multi-colonna, qui devi inserire i dati per la colonna della finestra di dialogo elenco colonna per colonna, riga per riga. Puoi utilizzare una casella di controllo o un radiobox con la finestra di dialogo dell’elenco come mostrato di seguito:

zenity --list  --title "Scegli Processore" --radiolist  --column "ID" --column="Nome" 1 AMD 2 Intel

Finestra di dialogo elenco

Puoi anche fornire una casella di controllo con l’opzione –list per selezioni multiple.

Opzioni casella di controllo con bash

zenity --list --title "Pacchetti" --list  --text "seleziona i pacchetti che vuoi installare" --checklist --column "id"  --column "Nome" 1 "Google Chrome" 2 "VLC" 3 "Firefox" 4 "GIMP"
Output  
Google Chrome|VLC|Firefox

Finestra di selezione colore

Puoi utilizzare l’opzione –color-selection per prendere il valore di selezione colore dall’utente.

zenity --color-selection --show-palette

Selettore colore script bash

Finestra di selezione file

Puoi utilizzare l’opzione –file-selection per catturare file o directory selezionati come output standard. Puoi anche salvare un file utilizzando l’opzione –file-selection.

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

Apri finestra di selezione file da bash

Finestra di dialogo di progresso

Puoi creare una bella barra di progresso utilizzando l’opzione –progress. Questo è utile molte volte, dove vuoi mostrare all’utente la barra di progresso del completamento della tua applicazione o script.

Il comando qui sotto mostrerà la barra di progresso 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="Scaricamento file..." --percentage=1 --pulsate

Per ulteriori opzioni di progresso 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 appreso come puoi scrivere uno script bash per visualizzare finestre di dialogo GUI utilizzando Zenity e rendere lo script Bash più user-friendly. Sentiti libero di chiedermi se hai domande.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.