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 28. Zero e Null<br />

Usi <strong>di</strong> /dev/null<br />

/dev/zero e /dev/null<br />

Si pensi a /dev/null come a un “buco nero”. Equivale, quasi, ad un file in sola scrittura. Tutto<br />

quello che vi viene scritto scompare per sempre. I tentativi per leggerne o visualizzarne il contenuto<br />

non danno alcun risultato. Ciò nonostante, /dev/null può essere piuttosto utile sia da riga <strong>di</strong><br />

comando che negli script.<br />

Sopprimere lo stdout.<br />

cat $nomefile >/dev/null<br />

# Il contenuto del file non verrà elencato allo stdout.<br />

Sopprimere lo stderr (da Esempio 12-3).<br />

rm $nomestrano 2>/dev/null<br />

# Così i messaggi d’errore [stderr] vengono "sotterrati".<br />

Sopprimere gli output <strong>di</strong> entrambi, stdout e stderr.<br />

cat $nomefile 2>/dev/null >/dev/null<br />

# Se "$nomefile" non esiste, come output non ci sarà alcun messaggio d’errore.<br />

# Se "$nomefile" esiste, il suo contenuto non verrà elencato allo stdout.<br />

# Quin<strong>di</strong>, la riga <strong>di</strong> co<strong>di</strong>ce precedente, in ogni caso, non dà alcun risultato.<br />

#<br />

# Ciò può rivelarsi utile in situazioni in cui è necessario verificare il<br />

#+ co<strong>di</strong>ce <strong>di</strong> ritorno <strong>di</strong> un comando, ma non si desidera visualizzarne l’output.<br />

#<br />

# cat $nomefile &>/dev/null<br />

# anche in questa forma, come ha sottolineato Baris Cicek.<br />

Cancellare il contenuto <strong>di</strong> un file, preservando il file stesso ed i rispettivi permessi (da Esempio 2-1<br />

e Esempio 2-3):<br />

cat /dev/null > /var/log/messages<br />

# : > /var/log/messages ha lo stesso effetto e non genera un nuovo processo.<br />

cat /dev/null > /var/log/wtmp<br />

511

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

Saved successfully!

Ooh no, something went wrong!