Seu script bash tem finais de linha do DOS, mas bash espera terminações de linha no estilo Unix (apenas um par de feed de linha, não de retorno de carro / linha. Você precisará removê-los; dos2unix é uma boa ferramenta para usar, pois é tr -d '\r' .
Especificamente, parece que a mensagem de erro vem de
python test.py
desde que bash obtenha o retorno de carro seguindo o y em test.py como parte do nome do arquivo. A mensagem de erro "real" consiste nos bytes
python: can't open file 'test.py\r': [Errno 2] No such file or directory
mas o \r , quando exibido no terminal, faz com que o cursor retorne ao início da linha, para que o restante da mensagem de erro começando em ': [Errno 2]... substitua a parte anterior, produzindo como você viu
': [Errno 2] No such file or directory