2015-05-20 49 views
0

我有一個問題,我正在尋找與我正在構建的監視腳本有關的幫助。Bash while output問題與輸出

有兩個組件:1)執行邏輯的bash腳本,以及期望通過SSH連接到各種主機的腳本,運行命令並將結果作爲多行變量返回到bash腳本進一步操作。

我遇到的問題是我需要在結果的每一行周圍添加文本,但是這樣的預測要困難得多!

printf %s "$EXPECT_RESULT" | while IFS= read -r line 
    do 
     echo "$line" text 
done 
} 

小試驗的上述未如預期結果:

line1_content txt 
line2_content txt 
line3_content txt 

相反的結果爲:

txte1_content 
txte1_content 
txte1_content 

的名爲「txt」在該行的開頭添加並覆蓋我之後的部分輸出。

如果我手動生成$ EXPECT_RESULT作爲一個多行變量,它的行爲如預期,所以這個問題絕對似乎與來自期望的輸出相關。

任何想法或陷阱我不知道?

謝謝!

+4

你的變量可能包含'\ r'字符 – Mat

+0

墊,你說得對,非常感謝你。對於其他人的好處,我使用bash程序「od」顯示所有字符,然後使用「tr」刪除\ r字符。所有工作現在! – SJN

回答

0

墊,你是對的,非常感謝你。對於其他人的好處,我使用bash程序「od」顯示所有字符,然後使用「tr」刪除\ r字符。所有工作現在!