11.04.2013 Views

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Capitolo 33. Miscellanea<br />

• Sarebbe bello poter invocare i widget X-Windows da uno script <strong>di</strong> shell. Si dà il caso che esistano<br />

<strong>di</strong>versi pacchetti che hanno la pretesa <strong>di</strong> far questo, in particolare Xscript, Xmenu e widtools. Sembra,<br />

però, che i primi due non siano più mantenuti. Fortunatamente è ancora possibile ottenere widtools<br />

qui (http://www.batse.msfc.nasa.gov/~mallozzi/home/software/xforms/src/widtools-2.0.tgz).<br />

Cautela<br />

Il pacchetto widtools (widget tools) richiede l’installazione della libreria<br />

XForms. In aggiunta, il Makefile necessita <strong>di</strong> alcune sistemazioni prima che il<br />

pacchetto possa essere compilato su un tipico sistema Linux. Infine, tre dei<br />

sei widget non funzionano (segmentation fault).<br />

La famiglia <strong>di</strong> strumenti <strong>di</strong>alog offre un metodo per richiamare i widget <strong>di</strong> “<strong>di</strong>alogo” da uno script <strong>di</strong><br />

shell. L’utility originale <strong>di</strong>alog funziona in una console <strong>di</strong> testo, mentre i suoi successori g<strong>di</strong>alog,<br />

X<strong>di</strong>alog e k<strong>di</strong>alog usano serie <strong>di</strong> widget basate su X-Windows.<br />

Esempio 33-19. Widget invocati da uno script <strong>di</strong> shell<br />

#!/bin/bash<br />

# <strong>di</strong>alog.sh: Uso dei widgets ’g<strong>di</strong>alog’.<br />

# Per l’esecuzione dello script è in<strong>di</strong>spensabile aver installato ’g<strong>di</strong>alog’.<br />

# Versione 1.1 (corretta il 05/04/05)<br />

# Lo script è stato ispirato dal seguente articolo.<br />

# "Scripting for X Productivity," <strong>di</strong> Marco Fioretti,<br />

# LINUX JOURNAL, Numero 113, Settembre 2003, pp. 86-9.<br />

# Grazie a tutti quelli <strong>di</strong> LJ.<br />

# Errore <strong>di</strong> input nel box <strong>di</strong> <strong>di</strong>alogo.<br />

E_INPUT=65<br />

# Dimensioni dei widgets <strong>di</strong> visualizzazione e <strong>di</strong> input.<br />

ALTEZZA=50<br />

LARGHEZZA=60<br />

# Nome del file <strong>di</strong> output (composto con il nome dello script).<br />

OUTFILE=$0.output<br />

# Visualizza questo script in un widget <strong>di</strong> testo.<br />

g<strong>di</strong>alog --title "Visualizzazione: $0" --textbox $0 $ALTEZZA $LARGHEZZA<br />

# Ora, proviamo a salvare l’input in un file.<br />

echo -n "VARIABILE=" > $OUTFILE<br />

g<strong>di</strong>alog --title "Input Utente" --inputbox "Prego, inserisci un dato:" \<br />

$ALTEZZA $LARGHEZZA 2>> $OUTFILE<br />

583

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!