Do teste, parece que isso ocorre porque seu script foi criado usando o Windows Line Endings (CRLF), em vez de terminações de linha de estilo Unix (LF), provavelmente porque você usou um editor baseado no Windows. Eu encontrei o mesmo problema desde que eu estava usando o SublimeText que padroniza para terminações de linha 'sistema' (CRLF) no Windows.
Para verificar basta copiar seu script e criar o arquivo usando um editor incluído, como o vi no shell do bash do Ubuntu no Windows, configurar seu editor para usar finais de linha do Unix ou converter seu arquivo existente em finais de linha do Unix.
-
vi test.sh
- Cole seu código
- Salve o arquivo
wq
-
./test.sh
produz os resultados esperados