Você também não possui arquivos no diretório atual com .txt
como sufixo do nome do arquivo ou há um caractere invisível no final da linha no script, como um retorno de carro.
Um retorno de carro pode ter entrado nele se você editou o arquivo de texto de script em uma máquina Windows e o salvou como um arquivo de texto do DOS.
Para removê-los de todas as linhas, use dos2unix
no arquivo de script.
Em ambos os casos, o padrão não se expande porque não há nada correspondente. A concha, portanto, mantém o padrão não expandido.
Se você quiser que o script pule o loop completamente se não houver nomes de arquivos correspondentes, defina a opção nullglob
shell:
shopt -s nullglob
Isso faz com que bash
expanda padrões não correspondentes para a string vazia.