今天在Linux下运行./l-c, 谁知道竟然报出../configure: /bin/sh^M: bad interpreter: No such file or directory , 这个问题。
我用git命令拉的代码,上周是可以执行./l-c的。后来查了下原因,原来是不同系统的编码格式引起的。
网上分析认为此文件是在window下写的,所以在每行后面会加个ctrl+m就是^M,所以后面的sh就变成sh^M当然是没有这个命令的,所以脚本就不能运行了。
具体原因是git开启了自动转换行符的操作
目前最稳妥的做法是关闭自动换行的设置
对于git bash用户使用命令:
git config --global core.autocrlf false
为了保证文件的换行符是以安全的方法,避免windows与unix的换行符混用的情况,最好也加上这么一句
git config --global core.safecrlf true
具体解决方案是:在Linux下git config --global core.autocrlf false。