Ricerca nel sito web

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


Su questa pagina

  1. Prerequisiti
  2. Installa Zenity
  3. Zenity Opzioni generali
  4. Casella di messaggio Zenity
    1. 1. Una finestra di dialogo delle informazioni
    2. 2. Una finestra di dialogo di errore
    3. 3. Una finestra di dialogo con una domanda
    4. 4. Una finestra di dialogo di avviso

    1. Calendario
    2. Finestra di dialogo per l'immissione di testo
    3. Finestra di dialogo Elenco
    4. Finestra di selezione del colore
    5. Finestra di selezione file
    6. Dialogo di avanzamento

    Sappiamo tutti che gli script bash di Linux sono un vero punto di 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 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 semplici GUI negli script di shell. Rende gli script più intuitivi 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 Zenit

    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 usando il comando Apt, dnf o pacman.

    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

    Zenity Opzioni 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 ---title option  per specificare un titolo per la finestra di dialogo.

    È possibile utilizzare 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 è chiusa automaticamente.

    Finestra di messaggio Zenity

    Puoi creare una finestra di dialogo dei messaggi GUI semplice e piacevole utilizzando il semplice comando Zenity dal terminale.

    Quattro tipi di finestra di dialogo dei messaggi disponibili in Zenity.

    • Informazioni
    • Errore
    • Domanda
    • Attenzione

    1. Una finestra di dialogo delle informazioni

    È possibile creare una 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

    Eseguire il seguente comando 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 della domanda

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

    zenity --question --text="Do you want to reboot pc?" --width=200
    #/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

    È possibile visualizzare la notifica utilizzando Zenity.

    zenity --notification --text "Good Morning"

    Caselle di input Zenity

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

    Ecco alcune caselle di input:

    Calendario

    La finestra di dialogo Calendario visualizza un calendario e restituisce agli utenti la data selezionata come output standard.

    zenity --calendar
    Output:
    17/04/21

    Finestra di dialogo per l'immissione di 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

    È possibile utilizzare l'opzione --list per creare una finestra di dialogo a più colonne, qui è necessario inserire i dati per la finestra di dialogo elenco colonna per colonna, riga per riga. È possibile utilizzare la casella di controllo o rediobox 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 fornire 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

    È possibile utilizzare l'opzione --color-selection per prendere il valore di selezione del colore dall'utente.

    zenity --color-selection --show-palette

    Finestra di selezione 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 "/"

    Dialogo sull'avanzamento

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

    Sotto 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, eseguire il seguente comando nel terminale

    zenity --help-progress

    Per ulteriori opzioni Zenity puoi usare man Zenity e Zenity --help.

    Conclusione

    Nella guida sopra, hai imparato come puoi scrivere uno script bash per visualizzare le finestre di dialogo della GUI usando Zenity e rendere lo script Bash più user-friendly. Non esitate a chiedermi se avete domande.