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

由于一些项目须要安装一些PHP扩展,在执行./configure时提示php

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

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

cat -A php-config

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

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

解决办法测试

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

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

参数说明class

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

特别说明扩展

在Windows下编辑过的文件结尾同样也是\n\r,因此上传Linux服务器后同样须要进行替换,因此不建议在Windows下面和wdcp的文件管理器对系统文件进行编辑,避免由于一些缘由引发异常,形成损失那可就很差了sed

相关文章
相关标签/搜索