-3

我们有一个运行测试的工具,但如果测试失败则返回错误代码。
该工具在开始通过 SSH 登录到自定义控制台(不是 bash)并发出命令后运行测试。所有测试在该调用中一次运行测试的日志记录到一个文件中。该工具的输出大致为:

test1 [ok]
test2 Some message based on the failure
...

要停止构建,我们需要在输出中查找某些字符串。
输出显示为测试运行。

我可以将整个输出捕获到一个文件中并最终失败。但是一旦第一次测试失败,它会节省相当多的失败时间。

因此,我想要类似的东西tee,但如果它找到那个失败字符串,它也会终止执行。或者,至少,它应该打印输出,如果找到字符串则返回非零值。

这对标准的 Linux 工具包可行吗?

4

1 回答 1

0

我能想到的唯一解决方案是:

  1. 开始构建过程并将cat其输出到输出文件。
  2. 启动另一个监视此文件的脚本:一个循环,每 X 秒迭代一次,以搜索文件中的禁用词。一旦它们出现,就终止构建过程(您可能需要一种方法来识别您的构建过程,例如 pid 文件或类似的东西)并清除该文件。

您甚至可以将这 2 个进程放在一个 shellscript 中,并在需要时让它们同时启动和停止。

于 2019-09-19T16:10:38.610 回答