2017-02-20 99 views
-1

這個shell腳本包含一個while循環while-do循環文件:語法閱讀從shell腳本

while IFS = \| read SourceDB db_name Mysql_table hdfsdir libpath 
do 
    # jobs 

done < $/root/SqoopWrapper/InputFile 

exit 0 

shell腳本包含了我想要循環

在執行輸入文件,我得到

「語法錯誤附近意外的標記'做」

+0

你的問題是? –

+0

分號似乎從表達式中缺失,while循環的語法如下所示: while true; do echo「something」; done – babsaai

+0

我的問題是如何使InputFile.txt內容被讀取以處理更多腳本。我修改了我的**腳本**,如下所示:確保我的腳本在回顯變量$輸入時是否正確,它沒有回顯InputFile的內容。 'input =/root/SqoopWrapper1/InputFile.txt IFS ='|' 而讀SOURCEDB DB_NAME Mysql_table hdfsdir LIBPATH 做 #process 完成<$輸入 退出0' – swathi

回答

0

擺脫作業中的空間。

while IFS=\| read SourceDB db_name Mysql_table hdfsdir libpath 

您可以使用ShellCheck來捕獲這些類型的錯誤。

$ shellcheck myscript 

Line 1: 
while IFS = \| read SourceDB db_name Mysql_table hdfsdir libpath 
     ^-- SC2162: read without -r will mangle backslashes. 
      ^-- SC1068: Don't put spaces around the = in assignments.