Diferença entre o uso de aspas duplas (") e aspas simples (')
Dica publicada em Linux / Miscelânea
Diferença entre o uso de aspas duplas (") e aspas simples (')
O uso de aspas no shell serve para delimitar o valor de uma variável ou mencionar um arquivo ou diretório que contenha o caractere "espaço" em seu nome, e podem ser usadas tanto as aspas duplas (") quanto aspas simples para este propósito.
Por exemplo, para criar o diretório "gnu linux", eu poderia usar uma das formas a seguir:
mkdir "gnu linux"
Ou:
mkdir 'gnu linux'
Ou ainda:
mkdir gnu\ linux
Note que as aspas delimitam o nome do diretório, evitando que sejam criados 2 diretórios separados.
Porém, existe uma diferença entre as aspas duplas e simples.
As aspas duplas (") aceitam a expansão dos valores de variáveis e demais caracteres especiais, enquanto as aspas simples (') apenas mostram os caracteres literais.
Exemplos:
var_1=aba
$ var_2=asa
$ echo "$var_1 $var_2"
Por exemplo, para criar o diretório "gnu linux", eu poderia usar uma das formas a seguir:
mkdir "gnu linux"
Ou:
mkdir 'gnu linux'
Ou ainda:
mkdir gnu\ linux
Note que as aspas delimitam o nome do diretório, evitando que sejam criados 2 diretórios separados.
Porém, existe uma diferença entre as aspas duplas e simples.
As aspas duplas (") aceitam a expansão dos valores de variáveis e demais caracteres especiais, enquanto as aspas simples (') apenas mostram os caracteres literais.
Exemplos:
var_1=aba
$ var_2=asa
$ echo "$var_1 $var_2"
aba asaecho '$var_1 $var_2'
$var_1 $var_2No exemplo acima, quando mostro as variáveis var_1 e var_2 usando aspas duplas, o valor delas é expandido e mostrado na tela. Mas quando repito usando aspas simples, são mostrados na tela os valores literais.