1. 程式人生 > 其它 >Shell報錯syntax error: unexpected end of file

Shell報錯syntax error: unexpected end of file

技術標籤:Linuxlinuxshell

執行shell指令碼檔案,報錯syntax error: unexpected end of file

使用vim工具開啟指令碼檔案,卻並沒有發現有什麼問題。

vim hello.sh

在這裡插入圖片描述

但是隻需要使用vim+引數的方式開啟該檔案,就會發現一些端倪。

vim -b hello.sh

在這裡插入圖片描述

在每一個shell語句的末尾,都多了一個^M的標誌,這其實是因為該檔案是在windows環境下編寫,然後傳輸到Linux環境來的,但是因為windows環境的文字有\r的回車標識,在Linux環境下就會出現不相容的問題。

解決方法:

1、只需要把^M的標誌符刪除,該指令碼檔案即可正常執行。不過這種方法只適用於少量文字,如果是大量的指令碼程式碼,這顯然是不適用的。

2、通過命令的方式,將shell檔案的格式改為unix。

vim hello.sh
:set fileformat=unix
:x

使用vim編輯文字的時候,不要使用-b引數,否則是無法將shell檔案的檔案格式修改為unix的。