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.

Appen<strong>di</strong>ce M. Esercizi<br />

Spiegate il compito svolto dallo script seguente. In fondo corrisponde semplicemente ad una pipe da riga<br />

<strong>di</strong> comando contenente delle variabili.<br />

#!/bin/bash<br />

NOMEDIR=/usr/bin<br />

TIPOFILE="shell script"<br />

FILE_DI_LOG=logfile<br />

file "$NOMEDIR"/* | fgrep "$TIPOFILE" | tee $FILE_DI_LOG | wc -l<br />

exit 0<br />

---<br />

Un lettore ha inviato il seguente frammento <strong>di</strong> co<strong>di</strong>ce.<br />

while read RIGA<br />

do<br />

echo $RIGA<br />

done < ‘tail -f /var/log/messages‘<br />

Il suo desiderio era quello <strong>di</strong> scrivere uno script che visualizzasse le mo<strong>di</strong>fiche del file <strong>di</strong> log <strong>di</strong> sistema<br />

/var/log/messages. Sfortunatamente, il precedente co<strong>di</strong>ce si blocca e non fa niente <strong>di</strong> utile. Perché?<br />

Si risolva il problema in modo che funzioni correttamente (Suggerimento: invece <strong>di</strong> re<strong>di</strong>rigere lo st<strong>di</strong>n<br />

del ciclo, si provi con una pipe.)<br />

---<br />

Si analizzi l’Esempio A-10 e lo si riorganizzi in uno stile più semplice e logico. Si veda quante delle<br />

variabili in esso presenti possono essere eliminate e lo si ottimizzi per aumentarne la velocità<br />

d’esecuzione.<br />

Si mo<strong>di</strong>fichi lo script in modo che accetti, come input, un qualsiasi file <strong>di</strong> testo ASCII per la sua<br />

“generazione” iniziale. Lo script dovrà leggere i primi caratteri $ROW*$COL ed impostare le occorrenze<br />

delle vocali come celle “vive”. Suggerimento: ci si accerti <strong>di</strong> aver trasformato tutti gli spazi presenti nel<br />

file <strong>di</strong> input in caratteri <strong>di</strong> sottolineatura.<br />

M.2. Scrivere script<br />

Per ciascuno dei compiti sotto elencati, si scriva uno script che svolga correttamente quanto richiesto.<br />

811

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

Saved successfully!

Ooh no, something went wrong!