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.

FACILI<br />

Elenco della <strong>di</strong>rectory home<br />

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

Si esegua un elenco ricorsivo della <strong>di</strong>rectory home dell’utente e si salvino le informazioni in un file.<br />

Questo file va compresso e lo script deve visualizzare un messaggio che invita l’utente ad inserire<br />

un <strong>di</strong>schetto e a premere, successivamente, il tasto INVIO. Alla fine il file dovrà risultare registrato<br />

su un floppy <strong>di</strong>sk.<br />

Mo<strong>di</strong>fica dei cicli for in cicli while e until<br />

Si sostituiscano i cicli for presenti in Esempio 10-1 con cicli while. Suggerimento: si registrino i<br />

dati in un array, quin<strong>di</strong> si passino in rassegna gli elementi dell’array stesso.<br />

Essendo “il più” già fatto, ora si convertano i cicli dell’esempio in cicli until.<br />

Mo<strong>di</strong>fica dell’interlinea <strong>di</strong> un file <strong>di</strong> testo<br />

Elenco inverso<br />

Si scriva uno script che legga ciascuna riga del file in<strong>di</strong>cato e la visualizzi allo stdout, ma seguita<br />

da una riga bianca aggiuntiva. Questo produrrà, come risultato, un file con interlinea doppia.<br />

Si aggiunga il co<strong>di</strong>ce necessario affinché venga effettuato un controllo sui necessari argomenti che<br />

devono essere passati allo script da riga <strong>di</strong> comando (il nome <strong>di</strong> un file) e per verificare che il file<br />

esista.<br />

Una volta certi che lo script funzioni correttamente, lo si mo<strong>di</strong>fichi in modo da ottenere una<br />

interlinea tripla del file in<strong>di</strong>cato.<br />

Infine, si scriva uno script che rimuova tutte le righe vuote dal file in<strong>di</strong>cato in modo che il testo<br />

risulti composto con interlinea singola.<br />

Si scriva uno script che si autovisualizzi allo stdout, ma in senso inverso (prima l’ultima riga, poi<br />

la penultima, ecc.).<br />

Decompressione automatica <strong>di</strong> file<br />

ID unico <strong>di</strong> sistema<br />

Dato come input un elenco <strong>di</strong> file, questo script interrogherà ciascun file (verificando l’output del<br />

comando file) per controllare quale tipo <strong>di</strong> compressione è stata ad esso applicata. Lo script, quin<strong>di</strong>,<br />

dovrà invocare automaticamente l’appropriato comando <strong>di</strong> decompressione (gunzip, bunzip2,<br />

unzip, uncompress o altro). Se, tra i file in<strong>di</strong>cati, ve ne dovessero essere <strong>di</strong> non compressi, lo script<br />

dovrà visualizzare un messaggio d’avvertimento e non effettuare, su tali file, nessun’altra azione.<br />

Si generi un numero identificativo “unico”, <strong>di</strong> sei cifre esadecimali, per il vostro computer. Non si<br />

usi l’inadeguato comando hostid. Suggerimento: md5sum /etc/passwd e quin<strong>di</strong> si scelgano le<br />

812

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

Saved successfully!

Ooh no, something went wrong!