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.

Capitolo 33. Miscellanea<br />

# Le due linee <strong>di</strong> comando hanno un effetto identico, ma la seconda viene<br />

#+ eseguita più velocemente perché lancia un sottoprocesso in meno.<br />

Sembra che, negli script, ci sia la tendenza ad abusare del comando cat.<br />

Si usino time e times per calcolare il tempo impiegato nell’esecuzione dei coman<strong>di</strong>. Si prenda in<br />

considerazione la possibilità <strong>di</strong> riscrivere sezioni <strong>di</strong> co<strong>di</strong>ce critiche, in termini <strong>di</strong> tempo, in C, se non<br />

ad<strong>di</strong>rittura in assembler.<br />

Si cerchi <strong>di</strong> minimizzare l’I/O <strong>di</strong> file. <strong>Bash</strong> non è particolarmente efficiente nella gestione dei file. Si<br />

consideri, quin<strong>di</strong>, l’impiego <strong>di</strong> strumenti più appropriati allo scopo, come awk o Perl.<br />

Si scrivano gli script in forma coerente e strutturata, così che possano essere riorganizzati e accorciati in<br />

caso <strong>di</strong> necessità. Alcune delle tecniche <strong>di</strong> ottimizzazione applicabili ai linguaggi <strong>di</strong> alto livello possono<br />

funzionare anche per gli script, ma altre, come lo svolgimento del ciclo, sono per lo più irrilevanti.<br />

Soprattutto, si usi il buon senso.<br />

Per un’eccellente <strong>di</strong>mostrazione <strong>di</strong> come l’ottimizzazione possa ridurre drasticamente il tempo <strong>di</strong><br />

esecuzione <strong>di</strong> uno script, ve<strong>di</strong> Esempio 12-42.<br />

33.7. Argomenti vari<br />

• Per mantenere una registrazione <strong>di</strong> quali script sono stati eseguiti durante una particolare sessione, o<br />

un determinato numero <strong>di</strong> sessioni, si aggiungano le righe seguenti a tutti gli script <strong>di</strong> cui si vuole tener<br />

traccia. In questo modo verrà continuamente aggiornato il file <strong>di</strong> registrazione con i nomi degli script e<br />

con l’ora in cui sono stati posti in esecuzione.<br />

•<br />

# Accodatte (>>) le righe seguenti alla fine <strong>di</strong> ogni script <strong>di</strong> cui<br />

#+ volete tener traccia.<br />

whoami>> $SAVE_FILE # Utente che ha invocato lo script.<br />

echo $0>> $SAVE_FILE # Nome dello script.<br />

date>> $SAVE_FILE # Data e ora.<br />

echo>> $SAVE_FILE # Riga bianca <strong>di</strong> separazione.<br />

# Naturalmente, SAVE_FILE deve essere definito ed esportato come<br />

#+ variabile d’ambiente in ~/.bashrc<br />

#+ (qualcosa come ~/.script-eseguiti)<br />

572

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

Saved successfully!

Ooh no, something went wrong!