Qual é a diferença entre $ {var}, “$ var” e “$ {var}” no shell Bash?

O que o título diz: o que significa encapsular uma variável em{}, ""ou"{}"Eu não tenho conseguido encontrar nenhuma explicação online sobre isso - eu não fui capaz de me referir a eles, exceto pelo uso dos símbolos, que não rendem nada.

Aqui está um exemplo:

declare -a groups

groups+=("CN=exampleexample,OU=exampleexample,OU=exampleexample,DC=example,DC=com")
groups+=("CN=example example,OU=example example,OU=example example,DC=example,DC=com")

Este:

for group in "${groups[@]}"; do
    echo $group
done

Prova ser muito diferente do que isso:

for group in $groups; do
    echo $group
done

e isto:

for group in ${groups}; do
    echo $group
done

Apenas o primeiro realiza o que eu quero: iterar através de cada elemento no array. Eu não estou muito claro sobre as diferenças entre$groups, "$groups", ${groups} e"${groups}". Se alguém pudesse explicar, eu agradeceria.

Como pergunta extra, alguém conhece a maneira aceita de se referir a esses encapsulamentos?

questionAnswers(6)

yourAnswerToTheQuestion