gpt4 book ai didi

Linux:如何捕获进程的标准输出直到结束,但如果出现特定字符串则停止并返回非零代码?

转载 作者:太空宇宙 更新时间:2023-11-04 05:59:20 27 4
gpt4 key购买 nike

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

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

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

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

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

这可以使用标准 Linux 工具包实现吗?

最佳答案

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

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

您甚至可以将这两个进程放在一个 shell 脚本中,并在需要时启动和停止它们。

关于Linux:如何捕获进程的标准输出直到结束,但如果出现特定字符串则停止并返回非零代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58014292/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com