Erro de 'variável não vinculada' do Bash quando variáveis ​​​​são referenciadas em comentários de várias linhas (set -u)

Erro de 'variável não vinculada' do Bash quando variáveis ​​​​são referenciadas em comentários de várias linhas (set -u)

Tenho um comportamento inesperado - falha no seguinte snippet com erro de 'variável não vinculada':

#!/bin/bash
set -u
<<EOF
a=a
b=$a
EOF

Testado em:
GNU bash, versão 4.4.12(1)-release
GNU bash, versão 4.2.46(2)-release

Responder1

O que você definiu set -ué forçar uma saída com uma mensagem de erro, se tentar usar uma variável indefinida (O setcomando interno).

A forma de aqui-documentos <<com EOFé equivalente a colocar aspas duplas nas palavras internas para permitir que as variáveis ​​​​sejam expandidas (expansão de parâmetros) pelo shell ( bashneste 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 aqui com aspas simples

set -u
<<'EOF'
a=a
b=$a
EOF

informação relacionada