编写了shell脚本后,运行时有时会出现:
^M bad interpreter No such file or directory
的报错,本文提供了解决方案
原因
Shell脚本在windows系统下用记事本文件编写的,由于最终在linux下执行,其不同系统的文件格式(CR/LF)不同,在windows下换行是\r\n
,而linux下是\n
,最终导致了
^M bad interpreter No such file or directory
解决方法
1. 在编写文件时指定文件格式
不推荐在windows下使用记事本来进行一些文字编辑,我用的是editPlus,在编辑文本时就指定文件格式以及编码。
EditPlus改变文件格式的方法为:
文档->文件格式->编辑文档格式
2. 使用vi\vim直接转换文件格式
-
确保用户对文件有读写及执行权限
chmod a+x test.sh
-
vi打开文件
vi test.sh
-
查看当前文件类型
:set ff
或:set fileformat
-
可以看到如下信息
fileformat=dos
或fileformat=unix
-
更改文件格式
:set ff=unix
或:set fileformat=unix
-
存盘退出
:wq
Comments | NOTHING