Erro de Bash 'unbound variable' quando as variáveis são referenciadas no comentário de múltiplas linhas (set -u) [duplicate]

2

Eu tenho uma falha de acompanhamento de comportamento inesperada após a variável 'unbound variable':

#!/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

    
por padura 24.11.2017 / 19:06

1 resposta

6

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
    
por 24.11.2017 / 19:17