¿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?