我已经搜索了这个,并预计会发现数百个解决方案,但没有找到!Bash实时阅读标准输出流
我想读取STDOUT流并等待一个特定的字符串出现,而无需等待该过程完成。
我现在有,等待的过程中返回输出之前完成:
RESP=$(execute some command 2>&1)
if $RESP contains something then do something;
如何我可以读取的实时,而不是等待它完成流?
编辑
我尝试以下的稻田,其用于测试使用ping命令的工作建议:
RESP=$(dhcpcd wlan0 -r 192.168.0.190 | grep claims -m1)
:
RESP=$(ping 192.168.0.1 | grep seq=5 -m1)
但是它不会与我想使用的dhcpcd命令工作
与ping测试不同,命令的输出被发送到控制台而不是隐藏,并且即使它存在于ou中也不会检测到“声明”文本tput?
确定的dhcpcd的输出去标准输出?它可能通过stderr来到你的控制台?在这种情况下,您应该将'2>&1' stderr-输出重定向到stdout-output。 – urzeit