0

我有一个脚本,它使用 读取命令的输出while read,并做一些小的调整(例如着色、删除一些行)。但是,有时我会得到以下形式的一行:

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

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

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

4

2 回答 2

1

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

根据您的脚本到底在做什么,您可能能够将整个调整流程化,例如通过sedawk

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

于 2013-06-14T15:52:31.420 回答
0

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

yes y | command | while read ...
于 2013-06-14T16:55:44.783 回答