解決shell腳本報錯:-bash:xxx:/bin/bash^M:bad interpreter:No such file or directory

問題

在執行shell腳本時出現“-bash: xxx: /bin/bash^M: bad interpreter: No such file or directory”的錯誤

原因分析

主要原因是test.sh是我在windows下編輯然後上傳到linux系統裏執行的。.sh文件的格式爲dos格式。而linux只能執行格式爲unix格式的腳本。

解決方法

1.首先用vi或者vim命令打開shell文件

2.在命令模式中輸入:set ff,回車後可以看到文件的格式爲dos

~
:set ff
~
fileformat=dos

3.修改文件格式爲unix

此處有三種方法修改

方法一:打開文件使用vi或vim命令修改

命令如下:

:set ff=unix

執行完後再通過“:set ff”命令查看文件格式,結果如下:

fileformat=unix

方法二:直接使用dos2unix命令修改

命令如下:

dos2unix xxx.sh

其中xxx爲shell文件名

修改完再次執行shell文件就能正確運行了。

方法三:

直接執行sed -i “s/\r//” a.sh來轉化, 然後就可以執行**./a.sh**運行腳本了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章