9.3 Quoting

Le stringhe possono essere quotate per controllare il modo in cui la shell interpreta alcuni parametri o variabili all'interno della stringa. Per delimitare le stringhe si possono usare i caratteri di quoting singoli (') o doppi ("). I caratteri di quoting doppi definiscono la stringa e permettono la sostituzione di variabile. I carattere di quoting singoli definiscono la stringa ma impediscono la sostituzione di variabile. Un backslash (\) prima di un carattere viene posto per effettuare un escape su di esso, specificando che il sistema deve considerare il carattere letteralmente, senza assegnarli alcun significato speciale. Queste tecniche di quoting possono essere usate per separare una variabile da una stringa fissa. Come esempio si consideri la variabile var, a cui è stata assegnata il valore bat, e la stringa costante man. Se si vuole combinare queste stringhe per ottenere come risultato la stringa batman si può sperimentare:

$varman

ma questo non funzionerà, poichè la shell tenta di valutare una variabile chiamata varman, che non esiste. Per ottenere il risultato desiderato si ha la necessità di separare le stringhe tramite quoting o di isolare la variabile con delle parentesi graffe ({}), in questo modo:

"$var"man - quoting sulla variabile
$var""man - separazione di parametri
$var"man" - quoting sulla costante
$var''man - separazione di parametri
$var'man' - quoting sulla costante
$var\man - separazione di parametri
${var}man - si isola la variabile

Queste funzionano tutte poichè ", ', \, { e } non sono validi caratteri per un nome di variabile.

Non si può usare

'$var'man

\$varman

poichè impediscono che la sostituzione della variabile prenda posto.

Quando si usano le parentesi graffe, queste devono circondare solamente la variabile, senza includere il $, altrimenti saranno incluse come parte del risultato della stringa, esempio:

% echo {$var}man
{bat}man

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Per domande su FreeBSD, leggi la documentazione prima di contattare <[email protected]>.
Per domande su questa documentazione, invia una e-mail a <[email protected]>.