Хотя не имеет прямого отношения к этой конкретной теме; если файл поступил из системы Windows, в конце строки может быть CR / LF. Это повлияет на все строки в файле, включая начальную строку выполнения, и не будет отображаться при просмотре файла.
$ ./test.sh
-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory
Чтобы увидеть это, вы можете просмотреть файл:
$ cat -A ./test.sh
#! / Bin / баш ^ M $
эхо "я" ^ M $
Для удаления используйте dos2unix.