shell 報錯:syntax error: unexpected end of file


 

有時執行腳本時會報錯:

[root@host1 shell]# sh -x test.sh 
+ $'\r'
: command not found
test.sh: line 37: syntax error: unexpected end of file

原因可能是:

文本編輯是在windows下通過記事本或其它編輯器編寫的這個文件,運行 在cygwin模擬LINUX軟件環境下。

解決思路:

DOS下文件和Linux下文件格式差異問題導致的。

DOS下的文本文件是以\r\n作為斷行標志的,表示成十六進制就是0D 0A。而Unix下的文本文件是以\n作為斷行標志的,表示成十六進制就是0A。

【在windows里,換行用的兩個符號,回車\r,換行符號\n,在linux下只需一個符號\n就可以了.】

DOS格式的文本文件在Linux下,用較低版本的vi打開時行尾會顯示^M,當然也有可能看不到,但是在vi的時候,會在下面顯示此文件的格式,"M.txt" [dos] 8L, 72C表示是一個dos文件格式。

解決方案:

使用下面的命令將文件格式設置為unix格式即可解決上述錯誤

vi test.sh
:set fileformat=unix
:wq


免責聲明!

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



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