1. 程式人生 > >bin sh^M bad interpreter No such file or directory 解決

bin sh^M bad interpreter No such file or directory 解決

編寫了shell指令碼後,執行時有時會出現:
^M bad interpreter No such file or directory
的報錯,本文提供瞭解決方案

原因

Shell指令碼在windows系統下用記事本檔案編寫的,由於最終在linux下執行,其不同系統的檔案格式(CR/LF)不同,在windows下換行是\r\n,而linux下是\n,最終導致了

^M bad interpreter No such file or directory

解決方法

1. 在編寫檔案時指定檔案格式

不推薦在windows下使用記事本來進行一些文字編輯,我用的是editPlus,在編輯文字時就指定檔案格式以及編碼。

EditPlus改變檔案格式的方法為:

文件->檔案格式->編輯文件格式

2. 使用vi\vim直接轉換檔案格式

  • 確保使用者對檔案有讀寫及執行許可權
    chmod a+x test.sh

  • vi開啟檔案
    vi test.sh

  • 檢視當前檔案型別
    :set ff:set fileformat

  • 可以看到如下資訊
    fileformat=dosfileformat=unix

  • 更改檔案格式
    :set ff=unix:set fileformat=unix

  • 存檔退出
    :wq