Sei in
Home > GNU/Linux > Script bash e Zenity impariamo a conoscerli

Script bash e Zenity impariamo a conoscerli

finestra di dialogo ZenityCome promesso sono tornata a parlarvi di Zenity.
In questo articoletto voglio mostrarvi un piccolo esempio di utilizzo molto, ma molto semplice, per farvi scoprire la praticità di questo tool.
Il primo esempio è quello che penso interessi più di tutti, cioè l’acquisizione di testo.
Prima di inserire i comandi Zenity all’interno di uno script suggerisco di provarli sulla riga di comando, è molto più semplice e veloce.
Quindi, digitiamo sulla shell:

zenity –entry –title=’prova inserimento testo’ –text=’scrivi qui il testo che vuoi far acquisire dal tuo script’ –width=250 –height=250 –timeout=5

Parliamone. Le opzioni title, text, width, height, timeout non sono obbligatorie ma permettono di personalizzare la finestra di dialogo che verrà aperta impostandone il titolo (title), il testo riportato al suo interno (text), ampiezza ed altezza (width, height), il tempo oltre il quale si ha una chiusura automatica della finestra se non viene selezionata nessuna opzione visualizzata (timeout).
Ora, se il comando funziona correttamente possiamo inserirlo all’interno del nostro script, ad esempio in questo modo:

#!/bin/bash
# zenity.sh

TESTO=$(zenity –entry –title=’prova inserimento testo’ –text=’scrivi qui il testo che vuoi far acquisire dal tuo script’ –width=250 –height=250 –timeout=10)
echo ‘il testo che hai inserito è il seguente: ‘ $TESTO

exit 0

Parliamone di nuovo: nella prima riga commentata con il simbolo # ho comunicato alla shell che il file lanciato è scritto nel linguaggio bash, nella seconda riga ho riportato il nome con cui ho chiamato il file (piccola comodità quando si hanno un sacco di file aperti); TESTO è il nome della variabile nella quale confluirà l’output del comando Zenity; con echo visualizzo ciò che è stato inserito attraverso la finestra.
Ora, per fare ulteriormente la fanatica, potrei sostituire il comando echo con una ulteriore finestra Zenity, in questo modo:

zenity –info –title=’output’ –text=”il testo che hai inserito è il seguente: $TESTO ” –width=250 –height=50 –timeout=5

Riassumendo:

#!/bin/bash
# zenity.sh

TESTO=$(zenity –entry –title=’prova inserimento testo’ –text=’scrivi qui il testo che vuoi far acquisire dal tuo script’ –width=250 –height=250 –timeout=5)

zenity –info –title=’output’ –text=”il testo che hai inserito è il seguente: $TESTO” –width=250 –height=250 –timeout=10

exit 0

Avete notato gli apici utilizzati per scrivere il testo? Doppi anzichè singoli. Questo perchè con gli apici singoli il contenuto al loro interno viene interpretato tutto come testo, compresi i nomi delle variabili ed il simbolo del dollaro, infatti se avessi utilizzato gli apici singoli nella finestra zenity avrei avuto visualizzato $TESTO anzichè il suo contenuto.
Ora, volendo lo script si può complicare ulteriormente aggiungendo un controllo sugli output delle finestre Zenity utilizzando un blocco case, ma lascio il divertimento a voi 😉

DIMENTICAVO!! Per poter eseguire lo script che abbiamo chiamato zenity.sh ricordatevi di:
– dare i permessi di esecuzione al file digitando da shell: chmod +x /percorso_file/zenity.sh
– per mandarlo in esecuzione entrate nella cartella in cui risiede il file con il comando cd /percorso_file/ e digitate ./zenity.sh

Script bash e Zenity impariamo a conoscerli, 4.5 out of 5 based on 2 ratings
$accesspress_mag_show_footer_switch = of_get_option( 'footer_switch', '1' ); $accesspress_mag_footer_layout = of_get_option( 'footer_layout' ); $accesspress_mag_sub_footer_switch = of_get_option( 'sub_footer_switch', '1' ); $accesspress_mag_copyright_text = of_get_option( 'mag_footer_copyright' ); $accesspress_mag_copyright_symbol = of_get_option( 'copyright_symbol', '1' ); $trans_top = of_get_option( 'top_arrow', 'Top' ); if( empty( $trans_top ) ) { $trans_top = __( 'Top', 'accesspress-mag' ); } ?>