syntax error:unexpected end of file

if [ -n "$1" ]
then
  echo "111"
else
  echo "222"
fi
exit 0

執行sh my.sh par 提示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 M.txt
:set fileformat=unix
:wq

參考文檔:

http://hi.baidu.com/hajj1987/blog/item/23339d314e163b275bb5f5ad.html


小節:

http://wenku.baidu.com/view/4c1e950703d8ce2f00662398.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章