与长时间运行的bash脚本交互。出现某些输出时自动输入

时间:2010-12-28 17:20:12

标签: bash automation

echo "yes\yes\oops" | program对于长期运行的程序不起作用。

我可以考虑将program的输出重定向到文件,然后使用循环到grep该文件,直到出现某些输出。但是有更好的主意吗?

2 个答案:

答案 0 :(得分:2)

如果您喜欢/坚持使用bash,也许您正在寻找expect

有关此内容的更多信息:http://wiki.tcl.tk/11583

答案 1 :(得分:1)

用另一种语言编写Python,Perl,Ruby或脚本以与程序进行交互。在Python中,您使用subprocess。在Perl中,您使用popen()。逐行读取程序的标准输出并与已知提示进行匹配,通过写入程序的标准输入来回复所需的响应。

可以在bash中做同样的事情,但我个人不愿意这样做。