DOS uses a carriage return (^M) with a line feed therefore linux system confused and thinks the script should be executed by /bin/bash^M which doesn’t exist. Solution: Option 1: Install dos2unix and convert the file dos2unix myscript.sh
Option 2: vi and vim will convert line endings when you specify the file format. vi myscript.sh
Hit ESC to enter command mode where you can set the format and save your changes. :set fileformat=unix
:x!
Option 3: sed is handy for cleaning up things like this from the command line. sed |