问题描述:在LINUX系统下执行某shell脚本发生如下错误:bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory
产生原因:通过上面我们可以看到有个^M个标志,这个标志是Windows环境下dos格式文件传输到unix系统时,会在每行的结尾多一个^M,所以在执行的时候出现了这种现象,但是你在unix或者Linux环境下使用vi编辑的时候,会在下面显示此文件的格式,比如”sky8g.sh” [dos] 2L,20C字样,表示这是一个【dos】的格式文件,如果是MAC的系统则会出现【MAC】的字样,因为文件格式的原因,有时候我们是unix程序或shell程序,则就要把dos文件转化为unix的文件格式。
解决办法:使用"vim test.sh"编辑test.sh脚本,然后在底部模式下,输入":set fileformat=unix",然后按回车执行该命令,最后输入":wq"保存修改,然后就可以执行./test.sh运行脚本了。