有時咱們在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