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 26. Array<br />

Le versioni più recenti <strong>di</strong> <strong>Bash</strong> supportano gli array mono<strong>di</strong>mensionali. Gli elementi dell’array possono<br />

essere inizializzati con la notazione variabile[xx]. In alternativa, uno script può <strong>di</strong>chiarare un intero<br />

array con l’enunciato esplicito declare -a variabile. Per dereferenziare (cercare il contenuto <strong>di</strong>)<br />

un elemento dell’array, si usa la notazione parentesi graffe, vale a <strong>di</strong>re, ${variabile[xx]}.<br />

Esempio 26-1. Un semplice uso <strong>di</strong> array<br />

#!/bin/bash<br />

area[11]=23<br />

area[13]=37<br />

area[51]=UFO<br />

# Non occorre che gli elementi dell’array siano consecutivi o contigui.<br />

# Alcuni elementi possono rimanere non inizializzati.<br />

# I "buchi" negli array sono permessi.<br />

# Infatti, gli array con dati non consecutivi ("array sparsi")<br />

#+ sono utili nei software <strong>di</strong> gestione dei fogli <strong>di</strong> calcolo.<br />

echo -n "area[11] = "<br />

echo ${area[11]} # sono necessarie le {parentesi graffe}.<br />

echo -n "area[13] = "<br />

echo ${area[13]}<br />

echo "Il contenuto <strong>di</strong> area[51] è ${area[51]}."<br />

# Gli elementi non inizializzati vengono visualizzati come spazi<br />

#+ (variabili nulle).<br />

echo -n "area[43] = "<br />

echo ${area[43]}<br />

echo "(area[43] non assegnato)"<br />

echo<br />

# Somma <strong>di</strong> due elementi dell’array assegnata ad un terzo.<br />

area[5]=‘expr ${area[11]} + ${area[13]}‘<br />

echo "area[5] = area[11] + area[13]"<br />

echo -n "area[5] = "<br />

echo ${area[5]}<br />

area[6]=‘expr ${area[11]} + ${area[51]}‘<br />

echo "area[6] = area[11] + area[51]"<br />

echo -n "area[6] = "<br />

472

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

Saved successfully!

Ooh no, something went wrong!