因为一些项目需要安装一些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的文件管理器对系统文件进行编辑,避免因为一些原因引起异常,造成损失那可就不好了