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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capitolo 2. Iniziare con #!<br />

Shell programming is a 1950s juke box .<br />

. .<br />

Larry Wall<br />

Nel caso più semplice, uno script non è nient’altro che un file contenente un elenco <strong>di</strong> coman<strong>di</strong> <strong>di</strong><br />

sistema. Come minimo si risparmia lo sforzo <strong>di</strong> ri<strong>di</strong>gitare quella particolare sequenza <strong>di</strong> coman<strong>di</strong> tutte le<br />

volte che è necessario.<br />

Esempio 2-1. cleanup: Uno script per cancellare i file <strong>di</strong> log in /var/log<br />

# Cleanup<br />

# Da eseguire come root, naturalmente.<br />

cd /var/log<br />

cat /dev/null > messages<br />

cat /dev/null > wtmp<br />

echo "Log cancellati."<br />

Come si può vedere, non c’è niente <strong>di</strong> insolito, solo una serie <strong>di</strong> coman<strong>di</strong> che potrebbero essere eseguiti<br />

uno ad uno dalla riga <strong>di</strong> comando <strong>di</strong> una console o <strong>di</strong> un xterm. I vantaggi <strong>di</strong> collocare dei coman<strong>di</strong> in<br />

uno script vanno, però, ben al <strong>di</strong> là del non doverli reimmettere ogni volta. Lo script, infatti, può essere<br />

mo<strong>di</strong>ficato, personalizzato o generalizzato per un’applicazione particolare.<br />

Esempio 2-2. cleanup: Lo script clean-up migliorato<br />

#!/bin/bash<br />

# Corretta intestazione <strong>di</strong> uno script <strong>Bash</strong>.<br />

# Cleanup, versione 2<br />

# Da eseguire come root, naturalmente.<br />

# Qui va inserito il co<strong>di</strong>ce che visualizza un messaggio d’errore e l’uscita<br />

#+ dallo script nel caso l’esecutore non sia root.<br />

DIR_LOG=/var/log<br />

# Meglio usare le variabili che co<strong>di</strong>ficare dei valori.<br />

cd $DIR_LOG<br />

cat /dev/null > messages<br />

cat /dev/null > wtmp<br />

echo "Log cancellati."<br />

exit # Metodo corretto per "uscire" da uno script.<br />

Adesso incomincia ad assomigliare ad un vero script. Ma si può andare oltre . . .<br />

4

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

Saved successfully!

Ooh no, something went wrong!