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 $var
não ocorre entre aspas duplas, ela sofre divisão. O shell é executado echo
com os 5 argumentos: Pradeep
, is
, a
, good
, boy
. echo
imprime todos os seus argumentos separados por um espaço.
Em echo "$var"
, a expansão de $var
ocorre entre aspas duplas, portanto não sofre divisão. O shell é executado echo
com um único argumento,
Pradeep
is
a good
boy
que echo
imprime fielmente.