Você provavelmente tem caracteres CR invisíveis no final de suas linhas (como quando o arquivo está no formato Microsoft, onde as linhas são terminadas pela seqüência de caracteres CRLF em vez de apenas LF).
Em seguida, o shell reclama que ele chega ao final do arquivo de script sem encontrar um then
após o if
(há apenas um then<CR>
).
Use dos2unix
ou d2u
ou emita um :set ff=unix
em vim
para corrigir seu arquivo de script.