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
<questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a
<doc@FreeBSD.org>.