2011-11-24 12 views
6

Qualcuno può fornirmi una spiegazione sul motivo per cui alcuni esperti di Linux suggeriscono di utilizzare $ {VARIABLE} negli script di Bash? Non sembra esserci alcuna differenza.

risposta

9

dire che si desidera stampare $VARIABLE immediatamente seguito da "string"

echo "$VARIABLEstring" # tries to print the variable called VARIABLEstring 
echo "${VARIABLE}string" # prints $VARIABLE and then "string" 

Bash supporta anche string manipulation utilizzando questa sintassi.

+0

Grazie. Ci sono altre differenze? –

+0

@ 爱国者 no, non ci sono altre differenze. –

+0

La forma '$ {}' è essenziale anche quando si utilizzano gli array di dereferenziazione. Vedi http://tldp.org/LDP/abs/html/arrays.html per maggiori dettagli. –

3

Una ragione si consiglia di fare questo è {} agire come delimitatori:

a=42 
echo "${a}sdf" # 42sdf 
echo "$asdf" # prints nothing because there's no variable $asdf 
1

Questa funzionalità viene spesso utilizzato per proteggere un nome di variabile da caratteri circostanti.

$ var=foo 

Se vogliamo per concatenare una stringa alla fine del $var Non possiamo farlo:

$ echo $varbar 

$ 

come questo sta cercando di utilizzare una variabile nuova $varbar.
Invece abbiamo bisogno di racchiudere in var{} come:

$ echo ${var}bar 
foobar