existe uma diferença:
tente
unset name
name="Michael Jackson" ; echo "$name"
e
unset name #to reset name, see comments
name=Michael Jackson ; echo "$name"
É muito diferente: no dia 2, ele tenta iniciar o comando "Jackson", passando o ambiente "name = Michael". Então, ele vai reclamar que "Jackson: comando não encontrado"
Eu tenho que adicionar o unset name
ao nome "reset", como parte da name=Michael
da próxima linha só será passada para o comando "Jackson" (e somente para esse comando) e, portanto, não é feito no nível de shell de chamada ! (que, portanto, ainda teria o name="Michael Jackson"
do primeiro comando, se não o ajustássemos de volta para ""
antes de nossa segunda tentativa. Então, o "echo $ name" ainda exibiria "Michael Jackson" se não o tivéssemos esqueça essa primeira tentativa.)
No normal, sempre coloca aspas duplas ao redor, especialmente quando você usa variáveis.
cd "${var}"
é muito melhor que
cd $var
A segunda versão iria silenciosamente para o homedir em vez de protestar se $ var não estivesse definido ...
Em seguida, retire apenas as aspas duplas circunvizinhas somente quando você sabe que você precisa para separar cada elemento da variável, ou seja, em:
for i in $var ; do something_using_i ; done