接收输入时Bash过滤输出

时间:2013-06-14 15:35:09

标签: bash stream

我有一个脚本,它使用while read读取命令的输出,并进行微调(例如着色,删除一些行)。但是,有时我会得到一个表格:

Would you like to hello world? (y/N):

在输入输入之前,此行未完成(因此未显示)。

如何修改此脚本以允许我查看这些不完整的行,然后我可以在其中输入输入?

2 个答案:

答案 0 :(得分:1)

您需要不使用while read,因为read仅处理“完整”行,即以LF结尾的行。 (或者,read有一个选项-d delim,告诉它将另一个分隔符视为行尾标记 - 在您的情况下,这可能是问号,或:在提示的最后。但是,我猜你不能在你的特定情况下使用它,因为你将无法预测何时使用-d)。

根据您的脚本究竟在做什么,您可以管理整个调整,例如:通过sedawk等。

要获得更详细的答案,您需要发布当前脚本的内部信息。

答案 1 :(得分:0)

如果您一直以相同的方式回答提示,并且如果命令从stdin读取(例如与ssh不同),那么您可以

yes y | command | while read ...