今天部署项目的时候出现了这样一个错误
linux -bash: ./startup.sh: /bin/sh^M: 坏的解释器: 没有那个文件或目录
仔细看了看脚本并没有什么问题
研究半天发现这个问题大多数是因为脚本文件在windows下编辑过。在windows下,每一行的结尾是\n\r,而在linux下文件的结尾是\n,那么你在windows下编辑过的文件在linux下打开看的时候每一行的结尾就会多出来一个字符\r,用cat -A urfile时你可以看到这个\r字符被显示为^M,这时候只需要删除这个字符就可以了。
可以使用命令 :
sed-i's/\r$//' startup.sh