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.

anno=<br />

Errore_Param () # Parametri da riga <strong>di</strong> comando errati.<br />

{<br />

echo "Utilizzo: ‘basename $0‘ [M]M/[G]G/AAAA [M]M/[G]G/AAAA"<br />

echo " (la data deve essere successiva al 1/3/1600)"<br />

exit $E_ERR_PARAM<br />

}<br />

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

Analizza_Data () # Analizza la data passata come parametro<br />

#+ da riga <strong>di</strong> comando.<br />

{<br />

mese=${1%%/**}<br />

gm=${1%/**} # Giorno e mese.<br />

giorno=${gm#*/}<br />

let "anno = ‘basename $1‘" # Non è un nome <strong>di</strong> un file,<br />

#+ ma funziona ugualmente.<br />

}<br />

controlla_data () # Controlla la vali<strong>di</strong>tà della(e) data(e)<br />

#+ passate(e).<br />

{<br />

[ "$giorno" -gt "$GPM" ] || [ "$mese" -gt "$MPA" ] ||\<br />

[ "$anno" -lt "$ANNORIF" ] && Errore_Param<br />

# Esce dallo script se i valori sono errati.<br />

# Impiego <strong>di</strong> "lista-or / lista-and".<br />

#<br />

# Esercizio: implementate una verifica più rigorosa.<br />

}<br />

toglie_zero_iniziale () # Toglie i possibili zeri iniziali<br />

{ #+ dal giorno e dal mese<br />

return ${1#0} #+ altrimenti <strong>Bash</strong> li interpreta<br />

} #+ come valori ottali (POSIX.2, sez. 2.9.2.1).<br />

tot_giorni () # Formula <strong>di</strong> Gauss:<br />

{ # Giorni intercorrenti dal gennaio 3 1600<br />

#+ alla data passata come parametro.<br />

giorno=$1<br />

mese=$2<br />

anno=$3<br />

let "mese = $mese - 2"<br />

if [ "$mese" -le 0 ]<br />

then<br />

let "mese += 12"<br />

let "anno -= 1"<br />

618

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

Saved successfully!

Ooh no, something went wrong!