Como apontou por ott-- , seu script tem CR LF
finais de linha. Isso é mais visível com od
.
$ od -c script
0000000 # ! / b i n / b a s h \r \n w h i
0000020 l e r e a d n a m e ; d o
0000040 \r \n e c h o " N a m e r e a
0000060 d f r o m f i l e - $ n
0000100 a m e " \r \n d o n e < / h o
0000120 m e / M a t t / s e r v e r s .
0000140 t x t \r \n
0000145
Como você pode ver, você tem os caracteres \r
(retorno de carro) e \n
(alimentação de linha) no final de cada linha, onde você deve ter apenas \n
caracteres. Isso é resultado de um problema de compatibilidade entre os sistemas Windows e * nix. O Bash tem dificuldade em lidar com os caracteres \r
.
Você pode corrigir seu script usando um utilitário como dos2unix
ou executando a seguinte linha.
sed -i 's/\r$//' script