2014年11月6日 星期四

[Shell scripts]warning: here-document at line 3 delimited by end-of-file (wanted `EOF')

        把一個測試過的Shell script用copy與paste內容的方法複製到另外一台Server上,結果執行卻遇到如下錯誤

check_err_log.sh: line 28: warning: here-document at line 3 delimited by end-of-file (wanted `EOF')
check_err_log.sh: line 29: syntax error: unexpected end of file

        上網查是說EOF前面不能有SPACE,可以有TAB,可是怎麼看兩邊的script都一樣啊,至少我肉眼分辨不出來,兩邊的長得跟下圖一模一樣,為何兩邊結果不一樣?


        後來查到可以用cat -A file 命令秀出那些印不出的字,才看出兩邊是不一樣的,左邊是正常可以執行的,是用TAB,會顯示"^I";右邊是會出錯的,SPACE還是顯示SPACE


        最後就把SPACE移掉換用TAB就沒問題了,不過copy和paste會把TAB換成SPACE真是奇怪的行為,上網有查到似乎在某些模式下會這樣,之後遇到再看看囉

0 意見:

張貼留言