Bash while while循环问题与输出

时间:2015-05-20 10:51:38

标签: bash expect

我有一个问题,我正在寻找有关我建立的监控脚本的帮助。

有两个组件,1)执行逻辑的bash脚本和2)并期望通过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作为多行变量,它的行为与预期一致,所以问题肯定与预期的输出有关。

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

谢谢!

1 个答案:

答案 0 :(得分:0)

马太,你是对的,非常感谢你。为了其他任何人的利益,我使用bash程序“od”显示所有字符,然后使用“tr”删除\ r \ n字符。一切正常!