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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

${stringa:posizione}<br />

Estrazione <strong>di</strong> sottostringa<br />

${stringa:posizione:lunghezza}<br />

Estrae la sottostringa da $stringa iniziando da $posizione.<br />

Capitolo 9. Variabili riviste<br />

Se il parametro $stringa è “*” o “@”, allora vengono estratti i parametri posizionali, 3 iniziando<br />

da $posizione.<br />

Estrae una sottostringa <strong>di</strong> $lunghezza caratteri da $stringa iniziando da $posizione.<br />

stringaZ=abcABC123ABCabc<br />

# 0123456789.....<br />

# L’in<strong>di</strong>cizzazione inizia da 0.<br />

echo ${stringaZ:0} # abcABC123ABCabc<br />

echo ${stringaZ:1} # bcABC123ABCabc<br />

echo ${stringaZ:7} # 23ABCabc<br />

echo ${stringaZ:7:3} # 23A<br />

# Sottostringa <strong>di</strong> tre caratteri.<br />

# È possibile in<strong>di</strong>cizzare partendo dalla fine della stringa?<br />

echo ${stringaZ:-4} # abcABC123ABCabc<br />

# Restituisce l’intera stringa, come con ${parametro:-default}.<br />

# Tuttavia . . .<br />

echo ${stringaZ:(-4)} # Cabc<br />

echo ${stringaZ: -4} # Cabc<br />

# Ora funziona.<br />

# Le parentesi, o l’aggiunta <strong>di</strong> uno spazio, "preservano" il parametro negativo.<br />

# Grazie, Dan Jacobson, per averlo evidenziato.<br />

Se il parametro $stringa è “*” o “@”, vengono estratti un massimo <strong>di</strong> $lunghezza parametri<br />

posizionali, iniziando da $posizione.<br />

echo ${*:2} # Visualizza tutti i parametri iniziando dal secondo.<br />

echo ${@:2} # Come prima.<br />

echo ${*:2:3} # Visualizza tre parametri posizionali<br />

#+ iniziando dal secondo.<br />

120

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

Saved successfully!

Ooh no, something went wrong!