O que você definiu com set -u
é forçar uma saída com uma mensagem de erro, se tentar usar uma variável indefinida ( O comando set
builtin ).
A forma de aqui-documenta <<
com EOF
é equivalente a como se estivesse duplicando as palavras dentro para permitir que as variáveis sejam expandidas (expansão de parâmetro) pelo shell ( bash
neste caso; também sujeito a substituição de comando e expansão aritmética). Para evitar que a expansão aconteça, cite a string here com uma única citação
set -u
<<'EOF'
a=a
b=$a
EOF