我有一个脚本,它使用 读取命令的输出while read
,并做一些小的调整(例如着色、删除一些行)。但是,有时我会得到以下形式的一行:
Would you like to hello world? (y/N):
在我输入输入之前,此行尚未完成(因此不显示)。
如何修改此脚本以允许我看到这些不完整的行,然后我可以在其上输入输入?
您不需要使用while read
,因为read
只处理“完整”行,即以 . 结尾的行LF
。(或者,read
有一个选项-d delim
告诉它将另一个定界符视为行尾标记 - 在您的情况下,这可能是问号,也可能是:
提示符的末尾。但是,我猜你可以'不要在您的特定情况下使用它,因为您将无法预测何时使用-d
)。
根据您的脚本到底在做什么,您可能能够将整个调整流程化,例如通过sed
等awk
。
要获得更详细的答案,您需要发布当前脚本的内幕。
如果您一直以相同的方式回答提示,并且命令从 stdin 读取(例如与 ssh 不同),那么您可以
yes y | command | while read ...