今天在windows下使用notepad++寫了個python腳本,傳到linux伺服器執行後提示:-bash: ./logger.py: usr/bin/python^M: bad interpreter: No such file or directory
1.原因分析
這是不同系統編碼格式引起的:在windows系統中編輯的logger.py檔案可能有不可見字符,所以在Linux系統下執行會報以上異常訊息。一般是因為windows行結尾和linux行結尾標識不同造成的,在window中行結尾符為'\r\n'表,而在linux中行結尾符為'\n',而^M 就是是ascii中的'\r'。
2.解決方法
1)在windows下轉換:
利用一些編輯器如UltraEdit或EditPlus等工具先將腳本編碼轉換,再放到Linux中執行。轉換方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。
2)linux下直接替換:
sed -i 's/^M//g' filename ,意思是替換filename中的每一行中的^M為/(注意^M 在linux 下寫法按^M 是回車換行符,輸入方法是按住CTRL+v,鬆開v,按m)
3)也可在Linux中轉換:
#
首先要確保檔案有可執行權限: chmod a+x filename ; 然後修改檔案格式:進入vi filename ,之後利用set ff(或set fileformat)指令查看檔案格式,為fileformat=dos 或fileformat=unix , 再利用以下指令修改檔案格式: set ff=unix 或:et fileformat=unix ;最後wq (記憶體退出)
以上是window下寫python腳本在linux下執行出錯 usr/bin/python^M: bad interpreter: No such file or directory的詳細內容。更多資訊請關注PHP中文網其他相關文章!