2016-06-22 65 views
1

這是我第一次嘗試編寫一個bash腳本,我感到非常困惑。我複製一個簡單的腳本解析CSV文件和IM得到一個語法錯誤bash中的簡單語法錯誤

test.bash: line 8: syntax error near unexpected token `done' 
test.bash: line 8: `done ' 

我有一個在線語法檢查器檢查,但沒有得到任何回報。這裏有人能告訴我我做錯了什麼嗎?這裏是代碼:

#!/bin/bash 
input="/input/file.cvs" 
# Set "|" as the field separator using $IFS 
# and read line by line using while read combo 
while IFS='|' read -r f1 
do 
    echo "$f1 " 
done 
+4

豈不是'做< 「$輸入」' – anubhava

+1

@anubhava這應該等待,但沒有給SyxErr .. – heemayl

+1

'我複製一個簡單的script'。絕對回車...再次... – 123

回答

1

它適用於我。您只需通過重定向stdin(如@anubhava所述)從文件中獲取輸入,並檢查所有行尾是否正確。如果您沒有足夠的經驗使用sed,您可以使用任何文本編輯器進行此操作。

如果仍然不起作用,請在最後一條命令後輸入;;它會停止執行當前的命令,因此後續的「髒」EOL無關緊要。

#!/bin/bash 
input="/input/file.cvs" 
# Set "|" as the field separator using $IFS 
# and read line by line using while read combo 
while IFS='|' read -r f1 
do 
    echo "$f1 " 
done < $input ;