Linux - /bin/sh^M: bad interpreter: No such file or directory
问题
在Windows环境下用Notepad++写了个shell脚本,上传到Linux平台后运行报错如下:
/bin/sh^M: bad interpreter: No such file or directory
经过查阅资料才知道,这是由于文件格式的问题:使用vi/vim进入该shell文件,按下:进入末行模式,输入set ff查询文件格式,结果如下:
fileformat=dos
这个问题是由于不同的操作系统使用了不同的符号来换行导致的,可以简单参考下下面的表格:
| 系统 | 换行符 |
|---|---|
| DOS | CR/LF |
| UNIX | LF |
| MAC | CR |
如果通过Windows下的Git将文件提交到Linux上的服务器,也会收到换行符将被替换的消息通知。
解决方案
通过vi/vim进入想要修改的文件,按下:进入末行模式,输入set fileformat=unix,接着按下ZZ或者按下shift + z + z或者输入:x或者:wq保存修改即可。
参考链接
/*** * * .-~~~~~~~~~-._ _.-~~~~~~~~~-. * __.' 欢迎访问 ~. .~ `.__ * .'// 我的个人博客 \./ ☞ lewky.cn ☜ \\`. * .'// | \\`. * .'// .-~"""""""~~~~-._ | _,-~~~~"""""""~-. \\`. * .'//.-" `-. | .-' "-.\\`. * .'//______.============-.. \ | / ..-============.______\\`. * .'______________________________\|/______________________________`. */

浙公网安备 33010602011771号