¿Cuál es la diferencia entre $var y "$var"?

¿Cuál es la diferencia entre $var y "$var"?

Posible duplicado:
$VAR vs ${VAR} y cotizar o no cotizar

Le asigné a una variable var un valor de la siguiente manera:

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

Luego emití un comando de eco como:

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

y para el comando:

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

Quiero saber por qué hay diferencia en la salida.

Respuesta1

Las expansiones que ocurren entre comillas dobles ( ") no se sometendivisión de campo.


En echo $var, dado que la expansión de $varno se produce entre comillas dobles, se divide. El shell se ejecuta echocon los 5 argumentos: Pradeep, is, a, good, boy. echoimprime todos sus argumentos separados por un espacio.

En echo "$var", la expansión de $varocurre entre comillas dobles, por lo que no se divide. El shell se ejecuta echocon un solo argumento,

Pradeep
is
a good
boy

que echoimprime fielmente.

información relacionada