報錯解決——linux下執行sh出現異常"syntax error: unexpected end of file"


  有時我們在linux下執行一個sh文件,會報錯“SYNTAX ERROR:UNEXPECTED END OF FILE”,這個現象主要是工作的系統環境改變造成的。

  若最初腳本中是在windows下,使用sublime編輯器寫。將shell腳本傳至linux中:使用命令bash -x SCRIPT檢查語法總是出一個錯誤 syntax error:unexpected end of file。

  原因:dos文件傳輸到unix系統時,會在每行的結尾多一個^M,在vim的時候,當你用如下命令查看:cat -A SCRIPT 

 

解決方法 

方法一:

  windows 的DOS下的文本文件是以\r\n作為斷行標志的,表示成十六進制就是0D 0A。而Unix下的文本文件是以\n作為斷行標志的,表示成十六進制就是0A。所以在windows上編寫的腳本上傳都linux執行時,需要vim 一下你的文件,然后按esc后:set fileformat=unix,再:wq保存即可。

方法二:

  使用命令dos2unix命令將SCRIPT腳本格式

  打開命令行切到文件目錄,用dos2unix xxx.sh即可。xxx代表為文件名

   

dos2unix是個很強大的linux命令,具體用法可參考:dos2unix命令

 

             

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM