Tengo un comportamiento inesperado: el siguiente fragmento falla con el error de "variable independiente":
#!/bin/bash
set -u
<<EOF
a=a
b=$a
EOF
Probado en:
GNU bash, versión 4.4.12(1)-lanzamiento
GNU bash, versión 4.2.46(2)-lanzamiento
Respuesta1
Lo que ha definido set -u
es forzar una salida con un mensaje de error, si intenta utilizar una variable indefinida (El set
comando incorporado).
La forma de here-documents <<
con EOF
es equivalente a poner entre comillas dobles las palabras internas para permitir que el shell expanda las variables (expansión de parámetros) ( bash
en este caso, también sujeto a sustitución de comandos y expansión aritmética). Para evitar que se produzca la expansión, cite la cadena aquí con una comilla simple
set -u
<<'EOF'
a=a
b=$a
EOF