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

1

Eu atribuí uma variável var um valor da seguinte forma:

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

Em seguida, 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

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

    
por pradeepchhetri 02.04.2012 / 23:27

1 resposta

4

As expansões que ocorrem entre aspas duplas ( " ) não passam por divisão de campo .

Em echo $var , como a expansão de $var não ocorre entre aspas duplas, ela é dividida. O shell executa 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, de modo que não é dividida. O shell executa echo com um único argumento,

Pradeep
is
a good
boy

qual echo imprime fielmente.

    
por 02.04.2012 / 23:31