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 />

COL=$(expr ‘cat cavallo_${MUOVI_CAVALLO}_posizione | head -1‘)<br />

AGG_POS=1<br />

# Verifica se la posizione attuale corrisponde a una posizione <strong>di</strong><br />

#+ han<strong>di</strong>cap.<br />

if seq 10 7 68 | grep -w $COL &> /dev/null; then<br />

if grep -w $MUOVI_CAVALLO $COL &> /dev/null; then<br />

AGG_POS=0<br />

grep -v -w $MUOVI_CAVALLO $COL > ${COL}_nuova<br />

rm -f $COL<br />

mv -f ${COL}_nuova $COL<br />

else AGG_POS=1<br />

fi<br />

else AGG_POS=1<br />

fi<br />

COL=‘expr $COL + $AGG_POS‘<br />

echo $COL > cavallo_${MUOVI_CAVALLO}_posizione # Registra la nuova<br />

#+ posizione.<br />

# Scelta del tipo <strong>di</strong> cavallo da <strong>di</strong>segnare.<br />

case $TIPO_CAVALLO in<br />

1) TIPO_CAVALLO=2; DISEGNA_CAVALLO=<strong>di</strong>segna_cavallo_due<br />

;;<br />

2) TIPO_CAVALLO=1; DISEGNA_CAVALLO=<strong>di</strong>segna_cavallo_uno<br />

esac<br />

# Registra il tipo corrente.<br />

echo $TIPO_CAVALLO >> cavallo_${MUOVI_CAVALLO}_posizione<br />

# Imposta a nero il colore del primo piano,<br />

#+ a verde quello dello sfondo.<br />

echo -ne ’\E[30;42m’<br />

# Sposta il cursore nella nuova posizione del cavallo.<br />

tput cup ‘expr $MUOVI_CAVALLO + 5‘\<br />

‘cat cavallo_${MUOVI_CAVALLO}_posizione | head -1‘<br />

# Disegna il cavallo.<br />

$DISEGNA_CAVALLO<br />

usleep $USLEEP_ARG<br />

# Quando tutti i cavalli hanno oltrepassato il campo corrispondente<br />

#+ alla linea 16, vengono rivisualizzate le poste.<br />

touch linea16<br />

if [ $COL = 16 ]; then<br />

echo $MUOVI_CAVALLO >> linea16<br />

fi<br />

if [ ‘wc -l linea16 | cut -f1 -d " "‘ = 9 ]; then<br />

visualizza_poste<br />

: > linea16<br />

fi<br />

# Determina il cavallo in prima posizione.<br />

PRIMA_POS=‘cat *posizione | sort -n | tail -1‘<br />

569

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

Saved successfully!

Ooh no, something went wrong!