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.