Probabilmente hai alcuni caratteri non stampabili alla fine delle righe (ad es. CRLF da Windows), esegui:
cat -A scriptname
sulla macchina remota, ti mostrerà tutti i caratteri nel tuo script. Quindi, puoi convertire in un formato simile a unix eseguendo
dos2unix scriptname
Ho trovato Notepad ++ molto utile per correggere questo problema dopo aver tentato la risposta
cat -A nomescript>
nomescript dos2unix
poiché presentava ancora errori durante il tentativo di conversione.
Tramite Notepad ++ c'è l'opzione nel menu di modifica/Conversione EOL/Unix/Formato OSX.
Sono ancora uno studente, ma questo metodo ha risolto il mio problema, tuttavia la soluzione precedente mi ha aiutato a trovare dove si trovava il problema.