Esta versão muito simplificada do meu script
#!/usr/bin/env bash
example="$(bash -rs <<'BASH' -- 'This has been executed in restricted shell'
echo "$1"
BASH
)"
echo "$example"
é executado sem problemas em um sistema com bash versão 5.1.4. No entanto, em outro sistema com bash versão 4.0.44, recebo o erro
line 2: unexpected EOF while looking for matching `)'
Se eu mudar o script para
#!/usr/bin/env bash
example="$(bash -rs <<'BASH'
echo 'This has been executed in restricted shell'
BASH
)"
echo "$example"
ou
#!/usr/bin/env bash
bash -rs <<'BASH' -- 'This has been executed in restricted shell'
echo "$1"
BASH
também funciona no sistema com bash versão 4.
Alguém tem uma ideia de qual poderia ser o motivo?
Bem, é um bug. Qual especificamente, essa é a questão.
Poderia ser este, talvez:
Mas isso é apenas um palpite.
Relatório antigo na lista de discussão de bugs do bash: https://lists.gnu.org/archive/html/bug-bash/2010-07/msg00052.html