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.

inizializza_alfa ()<br />

{<br />

local rc=0<br />

local in<strong>di</strong>ce<br />

for i in A B C D E F G H I J K L M N O P Q R S T U V W X Y<br />

do # Se preferite, potete utilizzare simboli <strong>di</strong>fferenti.<br />

local riga=‘expr $rc / $Colonne‘<br />

local colonna=‘expr $rc % $Righe‘<br />

let "in<strong>di</strong>ce = $riga * $Righe + $colonna"<br />

alfa[$in<strong>di</strong>ce]=$i<br />

# alfa[$riga][$colonna]<br />

let "rc += 1"<br />

done<br />

Capitolo 26. Array<br />

# Sarebbe stato più semplice<br />

# declare -a alpha=( A B C D E F G H I J K L M N O P Q R S T U V W X Y )<br />

#+ ma, per così <strong>di</strong>re, si sarebbe perso il "gusto" dell’array bi<strong>di</strong>mensionale.<br />

}<br />

visualizza_alfa ()<br />

{<br />

local riga=0<br />

local in<strong>di</strong>ce<br />

echo<br />

while [ "$riga" -lt "$Righe" ] # Visualizza in or<strong>di</strong>ne <strong>di</strong> precedenza <strong>di</strong> riga:<br />

do #+ variano le colonne<br />

#+ mentre la riga (ciclo esterno) non cambia.<br />

local colonna=0<br />

echo -n " " # Allinea l’array "quadrato" con quello ruotato.<br />

while [ "$colonna" -lt "$Colonne" ]<br />

do<br />

let "in<strong>di</strong>ce = $riga * $Righe + $colonna"<br />

echo -n "${alfa[in<strong>di</strong>ce]} " # alfa[$riga][$colonna]<br />

let "colonna += 1"<br />

done<br />

let "riga += 1"<br />

echo<br />

done<br />

# L’analogo più semplice è<br />

# echo ${alfa[*]} | xargs -n $Colonne<br />

echo<br />

}<br />

500

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

Saved successfully!

Ooh no, something went wrong!