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.

__.._..___<br />

_..___..__<br />

+++<br />

Appen<strong>di</strong>ce A. Script aggiuntivi<br />

I due script seguenti sono <strong>di</strong> Mark Moraes della University of Toronto. Si veda l’allegato file<br />

“Moraes-COPYRIGHT” per quanto riguarda i permessi e le restrizioni.<br />

Esempio A-12. behead: togliere le intestazioni dai messaggi <strong>di</strong> e-mail e <strong>di</strong> news<br />

#! /bin/sh<br />

# Toglie l’intestazione da una e-mail/messaggio News, vale a <strong>di</strong>re tutto<br />

# fino alla prima riga vuota.<br />

# Mark Moraes, University of Toronto<br />

# ==> Questi commenti sono stati aggiunti dall’autore del libro.<br />

if [ $# -eq 0 ]; then<br />

# ==> Se non ci sono argomenti da riga <strong>di</strong> comando,<br />

#+ agisce sul file re<strong>di</strong>retto allo st<strong>di</strong>n.<br />

sed -e ’1,/^$/d’ -e ’/^[ ]*$/d’<br />

# --> Cancella tutte le righe, comprese quelle vuote,<br />

# --> fino a quella che inizia con uno spazio.<br />

else<br />

# ==> Se sono stati passati degli argomenti, agisce sul/i file passato(i).<br />

for i do<br />

sed -e ’1,/^$/d’ -e ’/^[ ]*$/d’ $i<br />

# --> Idem, come sopra.<br />

done<br />

fi<br />

# ==> Esercizio: aggiungete una verifica d’errore ed altre opzioni.<br />

# ==><br />

# ==> Notate che il breve script sed viene ripetuto due volte,<br />

# ==> con la solo <strong>di</strong>fferenza dell’argomento passato.<br />

# ==> Avrebbe senso inserirlo in una funzione? Perché sì o perché no?<br />

Esempio A-13. ftpget: scaricare file via ftp<br />

#! /bin/sh<br />

# $Id: ftpget.sh,v 1.1.1.1 2003/06/25 22:41:32 giacomo Exp $<br />

# Script per l’esecuzione batch <strong>di</strong> un ftp anonimo. Praticamente, trasforma un<br />

# elenco <strong>di</strong> coman<strong>di</strong> passati come argomenti da riga <strong>di</strong> comando<br />

# in un input per ftp.<br />

# ==> Questo script non è nient’altro che uno shell wrapper ad "ftp" . . .<br />

# Semplice e rapido - scritto come compagno <strong>di</strong> ftplist<br />

# -h specifica l’host remoto (default: prep.ai.mit.edu)<br />

# -d specifica la <strong>di</strong>rectory remota a cui si vuole accedere - possono<br />

# essere in<strong>di</strong>cate più opzioni -d - in questo caso il programma vi<br />

# accederà in sequenza. Se i percorsi sono relativi,<br />

# si deve far attenzione a in<strong>di</strong>carli esattamente. Prudenza con i<br />

632

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

Saved successfully!

Ooh no, something went wrong!