在windows下儲存了一個腳本檔案,用ssh上傳到centos,添權重限執行nginx提示沒有那個檔案或目錄。
shell腳本放到/etc/init.d/目錄下,再執行/etc/init.d/nginx,提示多了這句/bin/bash^M: bad interpreter。
網上找了資料才知道
如果這個腳本在Windows下編輯過,就有可能被轉換成Windows下的dos文本格式了,這樣的格式每一行的末尾都是以\r\n來辨別,它的ASCII碼分别是0x0D,0x0A。如果你将這個腳本檔案直接放到Linux上執行就會報/bin/bash^M: bad interpreter錯誤提示。
解決方法很簡單,首先你先要檢查一下看看你的腳本檔案是不是這個問題導緻的,用vi指令打開要檢查的腳本檔案,然後用
:set ff?
指令檢查一下,看看是不是dos字樣,如果是dos格式的,繼續執行
:set ff=unix
然後執行
:qw
儲存退出即可。