問題
在執行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**運行腳本了。