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 --versionSe 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 zenityPer sistemi basati su RedHat:
dnf install zenityPer sistemi basati su Arch:
pacman -S zenityOpzioni 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
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
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
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
fi4. Una finestra di dialogo di avviso
zenity --warning --title="Aggiornamento disponibile" --text="Aggiornamento OS richiesto" --width=200Notifica
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 --calendarOutput:
17/04/21
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
Puoi anche fornire una casella di controllo con l’opzione –list per selezioni multiple.

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|FirefoxFinestra di selezione colore
Puoi utilizzare l’opzione –color-selection per prendere il valore di selezione colore dall’utente.
zenity --color-selection --show-paletteFinestra 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 "/"
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 --pulsatePer ulteriori opzioni di progresso esegui il seguente comando nel terminale
zenity --help-progressPer 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.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.

