-bash: .sh : /bin/sh^M: bad interpreter: No such file or directory 错误排查
今天部署新写的程序到centos linux上,结果执行脚本的时候一直报这个错误,找了很多资料,最后才解决。这里记下来,供以后参考。
这个错误脚本文件的格式系统不兼容导致的。如果我们在window 环境编辑的shell文件,放到linux下执行,就会出现这种错误,原因是文件的换行符不同所致。window下有一个\r\n,在linux下显示为^M,而linux下是\r,所以需要替换。
解决方法有两张,如果文件名称是test.sh:
(1) 执行 dos2unix (推荐)
dos2unix test.sh
(2) vim test.sh -- 用vim打开文件
:set ff=unix -- 执行后,保存退出。
再执行脚本,问题解决。