Qual é a diferença entre $var e “$var”?

Qual é a diferença entre $var e “$var”?

Possível duplicata:
$VAR vs ${VAR} e citar ou não citar

Atribuí a uma variável var um valor da seguinte forma:

pradeep@pradeep-laptop:~$ var="Pradeep
> is     
> a good
> boy"

Então emiti um comando echo como:

pradeep@pradeep-laptop:~$ echo $var
Pradeep is a good boy

e para o comando:

pradeep@pradeep-laptop:~$ echo "$var"
Pradeep
is 
a good
boy

Quero saber por que há diferença na saída?

Responder1

Expansões que ocorrem entre aspas duplas ( ") não sofremdivisão de campo.


Em echo $var, como a expansão de $varnão ocorre entre aspas duplas, ela sofre divisão. O shell é executado echocom os 5 argumentos: Pradeep, is, a, good, boy. echoimprime todos os seus argumentos separados por um espaço.

Em echo "$var", a expansão de $varocorre entre aspas duplas, portanto não sofre divisão. O shell é executado echocom um único argumento,

Pradeep
is
a good
boy

que echoimprime fielmente.

informação relacionada