-bash: ./start.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录
写Linux启动脚本遇到的一个坑。因为脚本文件 start.sh 中存在不可见的特殊字符,具体是 "^M"(也被称为 Carriage Return,CR)。这通常是由于在 Windows 系统中编写的文件在 Linux 或者 Unix 系统中执行时,文件格式不兼容所导致的。
可以使用 sed 命令删除 "^M":
sed -i 's/\r$//' start.sh
也可以在Vim 或者 Vi 编辑器中,你可以使用以下命令进入文件并删除 "^M":
vim start.sh :set ff=unix :wq