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

  有時咱們在linux下執行一個sh文件,會報錯「SYNTAX ERROR:UNEXPECTED END OF FILE」,這個現象主要是工做的系統環境改變形成的。html

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

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

 

解決方法 

方法一:vim

  windows 的DOS下的文本文件是以\r\n做爲斷行標誌的,表示成十六進制就是0D 0A。而Unix下的文本文件是以\n做爲斷行標誌的,表示成十六進制就是0A。因此在windows上編寫的腳本上傳都linux執行時,須要vim 一下你的文件,而後按esc後:set fileformat=unix,再:wq保存便可。windows

方法二:bash

  使用命令dos2unix命令將SCRIPT腳本格式編輯器

  打開命令行切到文件目錄,用dos2unix xxx.sh便可。xxx表明爲文件名post

   

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

相關文章
相關標籤/搜索