Как указано ott - Ваш сценарий имеет CR LF
окончания строки. Это более видимо с 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
Как Вы видите, Вы имеете \r
(возврат каретки) и \n
символы (перевода строки) в конце каждой строки, где Вы должны только иметь \n
персонажи. Это - результат проблемы совместимости между Windows, и *отклоняют системы. Bash испытывает затруднения при контакте с \r
персонажи.
Можно исправить сценарий при помощи утилиты как dos2unix
или путем выполнения следующей строки.
sed -i 's/\r$//' script