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.

echo "Inserisci il secondo numero"<br />

read secondo<br />

echo<br />

Capitolo 33. Miscellanea<br />

valres=‘somma_e_prodotto $primo $secondo‘ # Assegna l’output della funzione.<br />

somma=‘echo "$valres" | awk ’{print $1}’‘ # Assegna il primo campo.<br />

prodotto=‘echo "$valres" | awk ’{print $2}’‘ # Assegna il secondo campo.<br />

echo "$primo + $secondo = $somma"<br />

echo "$primo * $secondo = $prodotto"<br />

echo<br />

exit 0<br />

• Le prossime, della serie <strong>di</strong> trucchi del mestiere, sono le tecniche per il passaggio <strong>di</strong> un array a una<br />

funzione e della successiva “restituzione” dell’array allo script.<br />

Passare un array ad una funzione implica dover caricare gli elementi dell’array, separati da spazi, in<br />

una variabile per mezzo della sostituzione <strong>di</strong> comando. Per la restituzione dell’array, come “valore <strong>di</strong><br />

ritorno” della funzione, si impiega lo stratagemma appena descritto e, quin<strong>di</strong>, tramite la sostituzione<br />

<strong>di</strong> comando e l’operatore ( ... ) lo si riassegna ad un array.<br />

Esempio 33-17. Passaggio e restituzione <strong>di</strong> array<br />

#!/bin/bash<br />

# array-function.sh: Passaggio <strong>di</strong> un array a una funzione e...<br />

# "restituzione" <strong>di</strong> un array da una funzione<br />

Passa_Array ()<br />

{<br />

local array_passato # Variabile locale.<br />

array_passato=( ‘echo "$1"‘ )<br />

echo "${array_passato[@]}"<br />

# Elenca tutti gli elementi del nuovo array<br />

#+ <strong>di</strong>chiarato e impostato all’interno della funzione.<br />

}<br />

array_originario=( elemento1 elemento2 elemento3 elemento4 elemento5 )<br />

echo<br />

echo "array originario = ${array_originario[@]}"<br />

# Elenca tutti gli elementi dell’array originario.<br />

# Ecco il trucco che consente <strong>di</strong> passare un array ad una funzione.<br />

# *************************************<br />

argomento=‘echo ${array_originario[@]}‘<br />

# *************************************<br />

579

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

Saved successfully!

Ooh no, something went wrong!