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.

# Salva lo stdout.<br />

exec > $FILELOG # stdout sostituito dal file "filelog.txt".<br />

Capitolo 16. Re<strong>di</strong>rezione I/O<br />

# ----------------------------------------------------------------------- #<br />

# Tutti i risultati dei coman<strong>di</strong> inclusi in questo blocco <strong>di</strong> co<strong>di</strong>ce vengono<br />

#+ inviati al file $FILELOG.<br />

echo -n "File <strong>di</strong> log: "<br />

date<br />

echo "-------------------------------------"<br />

echo<br />

echo "Output del comando \"ls -al\""<br />

echo<br />

ls -al<br />

echo; echo<br />

echo "Output del comando \"df\""<br />

echo<br />

df<br />

# ----------------------------------------------------------------------- #<br />

exec 1>&6 6>&- # Ripristina lo stdout e chiude il descrittore <strong>di</strong> file nr.6.<br />

echo<br />

echo "== ripristinato lo stdout alla funzionalità <strong>di</strong> default == "<br />

echo<br />

ls -al<br />

echo<br />

exit 0<br />

Esempio 16-3. Re<strong>di</strong>rigere, nello stesso script, sia lo st<strong>di</strong>n che lo stdout con exec<br />

#!/bin/bash<br />

# upperconv.sh<br />

# Converte in lettere maiuscole il testo del file <strong>di</strong> input specificato.<br />

E_ACCESSO_FILE=70<br />

E_ERR_ARG=71<br />

if [ ! -r "$1" ] # Il file specificato ha i permessi in lettura?<br />

then<br />

echo "Non riesco a leggere il file <strong>di</strong> input!"<br />

echo "Utilizzo: $0 file-input file-output"<br />

exit $E_ACCESSO_FILE<br />

fi # Esce con lo stesso errore anche quando non viene<br />

#+ specificato il file <strong>di</strong> input $1 (perché?).<br />

if [ -z "$2" ]<br />

then<br />

399

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

Saved successfully!

Ooh no, something went wrong!