Può succedere che uno script.sh dia errore pur avendo codice corretto... esempio:

/bin/bash^M: bad interpreter: No such file or directory
in questo caso si presume ci siano caratteri strani non visibili che danno fastidio. Per ripulire il file si esegue il comando

sed -i -e 's/\r$//' script.sh