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 $var
no se produce entre comillas dobles, se divide. El shell se ejecuta echo
con los 5 argumentos: Pradeep
, is
, a
, good
, boy
. echo
imprime todos sus argumentos separados por un espacio.
En echo "$var"
, la expansión de $var
ocurre entre comillas dobles, por lo que no se divide. El shell se ejecuta echo
con un solo argumento,
Pradeep
is
a good
boy
que echo
imprime fielmente.