今天在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。
configure常用参数介绍:http://www.linuxdiyf.com/linux/2861.html
Linux Configure脚本配置工具详解:http://www.linuxdiyf.com/linux/7259.html