php-config: /bin/sh^M: 坏的解释器: 没有那个文件或目录

因为一些项目需要安装一些PHP扩展,在执行./configure时提示

php-config: /bin/sh^M: 坏的解释器: 没有那个文件或目录

最开始以为这个文件被修改了,最终和测试服务器上的php-config进行对比发现内容都一样,但是执行php-config返回的结果却不一样,最后执行cat命令查看才发现问题在哪儿

cat -A php-config

下面为有问题的文件内容截图,注意每行内容结尾多了个(^M)

原来这跟wdcp有关,通过wdcp的文件管理器打开该文件编辑过后,每一行的结尾都会多出来一个字符\r,变成了\n\r,而在linux下文件的结尾是\n,那么在linux下打开看的时候每一行的结尾就会多出来一个字符\r,使用cat -A查看内容时\r会显示为^M

解决办法

下面为执行命令(把以\r结束的字符换成空白)

sed -i 's/\r$//' php-config

参数说明

-i   插入
s     替代模式
\r$   表示任何以\r结束的字符

特别说明

在Windows下编辑过的文件结尾一样也是\n\r,所以上传Linux服务器后一样需要进行替换,所以不建议在Windows下面和wdcp的文件管理器对系统文件进行编辑,避免因为一些原因引起异常,造成损失那可就不好了

猜你喜欢

转载自my.oschina.net/kangweb/blog/1801967