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.

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

# set -vx # Se desiterate, abilitatelo<br />

declare -f varFunz #+ nel namespace delle funzioni<br />

varFunz=_print # Contiene il nome della funzione.<br />

$varFunz param1 # Uguale a _print.<br />

echo<br />

varFunz=$(_print ) # Contiene il risultato della funzione.<br />

$varFunz # Nessun input, nessun output.<br />

$varFunz $VarQualcosa # Risultato preve<strong>di</strong>bile.<br />

echo<br />

varFunz=$(_print $VarQualcosa) # QUI $VarQualcosa viene sostituita.<br />

$varFunz # L’espansione è parte del<br />

echo #+ contenuto della variabile.<br />

varFunz="$(_print $VarQualcosa)" # QUI $VarQualcosa viene sostituita.<br />

$varFunz # L’espansione <strong>di</strong>venta parte del<br />

echo #+ contenuto della variabile.<br />

# La <strong>di</strong>fferenza tra la versione con il quoting e quella senza<br />

#+ la si può analizzare nell’esempio "protect_literal.sh".<br />

# Nel primo caso viene elaborata come avente due Parole-<strong>Bash</strong>, senza quoting.<br />

# Nel secondo come avente un’unica Parola-<strong>Bash</strong>, con il quoting.<br />

# Sostituzione ritardata<br />

# ----------------------<br />

echo<br />

echo ’- - Sostituzione ritardata - -’<br />

varFunz="$(_print ’$VarQualcosa’)" # Nessuna sostituzione, Parola-<strong>Bash</strong> singola.<br />

eval $varFunz # QUI $VarQualcosa viene sostituita.<br />

echo<br />

VarQualcosa=’Nuovovalore’<br />

eval $varFunz # QUI $VarQualcosa viene sostituita.<br />

echo<br />

# Ripristino dell’impostazione originale precedentemente mo<strong>di</strong>ficata.<br />

VarQualcosa=Letterale<br />

# Ci sono due funzioni <strong>di</strong>mostrative negli esempi<br />

#+ "protect_literal.sh" e "unprotect_literal.sh".<br />

# Si tratta <strong>di</strong> funzioni generiche per la sostituzione ritardata<br />

#+ <strong>di</strong> stringhe letterali.<br />

736

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

Saved successfully!

Ooh no, something went wrong!