Basicamente, eu tenho exatamente essas linhas no meu script bastante complexo:
echo $SHELL
echo "$BASH_VERSION"
echo $(which cat)
echo $(alias cat 2>/dev/null) || :
cat <<AAA
test
AAA
echo 1
E mostra um erro no log de depuração:
++++ echo /bin/bash
++++ echo '4.3.46(1)-release'
+++++ which cat
++++ echo /bin/cat
+++++ alias cat
++++ echo
++++ cat
cat: -: No such file or directory
E quando tento repetir o mesmo em um script simples - o cat funciona como pretendido e apenas imprime "teste"
(O mesmo acontece quando eu substituo o AAA por alguma outra palavra. Este é um simples recipiente docker da imagem básica do "ubuntu" com alguns programas instalados. E eu tenho certeza que essa configuração exata funcionou bem por alguns meses. quebrado, mas ainda estou interessado em encontrar a causa raiz).
Alguma ideia do que pode causar o erro?
Atualizar no dia seguinte: TLDR: Eu acredito que foi algum problema com o docker. Para abordar comentários válidos:
Hoje eu iniciei esse contêiner e ele parece estar ainda mais corrompido - pelo menos todas as montagens parecem estar corrompidas como abaixo:
# ll
ls: cannot access '_template': No such file or directory
drwxr-xr-x 2 root root 4096 Apr 2 13:41 _system/
d????????? ? ? ? ? ? _template/
Não posso mais executar o script lá. Vou criar um novo contêiner e esperar que ele funcione corretamente.
Acredito que a solução de problemas adicionais requer a busca em logs do kernel / docker e provavelmente não é tão interessante. De qualquer forma - obrigado a todos pela tentativa - vamos considerar que foi apenas 'recipiente quebrado', espero que ajude alguém em algum momento que atenda ao problema exato
Tags bash here-document