有時我們在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命令
