shell腳本不執行

問題:某天研發某同事找我說幫他看看他寫的shell腳本,死活不執行,報錯。我看了下,腳本很簡單,也沒有常規性的錯誤,報“:badinterpreter:Nosuchfileordirectory”錯。

看這錯,我就問他是不是在windows下編寫的腳本,然後在上傳到linux服務器的……果然。

原因:在DOS/windows裏,文本文件的換行符爲rn,而在*nix系統裏則爲n,所以DOS/Windows裏編輯過的文本文件到了*nix裏,每一行都多了個^M。

解決:

1)重新在linux下編寫腳本;

2)vi:%s/r//g:%s/^M//g(^M輸入用Ctrl+v,Ctrl+m)

附:sh-x腳本文件名,可以單步執行並回顯結果,有助於排查複雜腳本問題。

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