問題:最近編寫shell腳本,遇到直接執行shell腳本怎麼也不成功,但是在控制檯輸入命令就能執行成功,報錯如下圖所示:
腳本內容如下:
腳本實現功能很簡單,且語法也沒問題,但是運行腳本就報錯,經過艱苦排查,發現問題在於 filebeat_kill.sh 是我在windows下編輯然後上傳到linux系統裏執行的。.sh文件的格式爲dos格式。而linux只能執行格式爲unix格式的腳本。
我們可以通過vi編輯器來查看文件的format格式。步驟如下:
1.首先用vi命令打開文件:vi filebeat_kill.sh
2.在vi命令模式中輸入 :set ff 然後回車,如下圖:
結果顯示文件的格式爲dos:
3.修改文件format爲unix
使用vi修改文件format,命令 :set ff=unix,回車
4.修改完成後,查看文件格式已改爲unix
再次執行 ./filebeat_kill.sh,執行成功