¿Cuál es la diferencia entre $ {var}, “$ var” y “$ {var}” en el shell de Bash?

Lo que dice el título: qué significa encapsular una variable en{}, ""o"{}"? No he podido encontrar ninguna explicación en línea sobre esto, no he podido referirme a ellos excepto por el uso de los símbolos, que no producen nada.

Aquí hay un ejemplo:

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")

Esta:

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

Demuestra ser muy diferente a esto:

for group in $groups; do
    echo $group
done

y esto:

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

Solo el primero logra lo que quiero: recorrer cada elemento de la matriz. No tengo muy claras las diferencias entre$groups, "$groups", ${groups} y"${groups}". Si alguien pudiera explicarlo, se lo agradecería.

Como una pregunta adicional, ¿alguien sabe la forma aceptada de referirse a estos encapsulados?

Respuestas a la pregunta(6)

Su respuesta a la pregunta