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

相關文章
相關標籤/搜索