退出基于输出运行指令I有一个方法,该方法我开始运行使用在bash
$ somecommand build
它基本上安装在Android仿真器的应用,然后启动仿真器。这个过程一直运行,直到我手动杀死它。
该命令在运行应用程序时还向终端输出一堆调试信息。我想在这个连续输出的某个地方杀死命令,字符串[TESTS_ENDED]
已经在终端上输出。
任何oneliner上如何做到这一点?
退出基于输出运行指令I有一个方法,该方法我开始运行使用在bash
$ somecommand build
它基本上安装在Android仿真器的应用,然后启动仿真器。这个过程一直运行,直到我手动杀死它。
该命令在运行应用程序时还向终端输出一堆调试信息。我想在这个连续输出的某个地方杀死命令,字符串[TESTS_ENDED]
已经在终端上输出。
任何oneliner上如何做到这一点?
使用awk
,以帮助从pkill
:
somecommand build | awk '/\[TESTS_ENDED\]/ {system("pkill somecommand")}'
假设somecommand
只有一个实例是捉迷藏
\[TESTS_ENDED\]
比赛[TESTS_ENDED]
在该行
如果匹配,{system("pkill somecommand")}
将会运行即awk
将使用system()
函数运行pkill somecommand
即somecommand
将pkill
'真的很喜欢这个解决方案,它假设一个实例。如果你可以引用正在管理的实例 – Flame
退房这个问题被杀害:http://superuser.com/q/402979/4706并专门'grep的-m'回答: http://superuser.com/a/403041/4706 – orip
我喜欢'grep -m'解决方案,但是我的脚本现在不输出任何东西, 并且抛出一个未处理的异常,因为它的一些npm模块正在运行。 任何方式仍然输出到终端,直到找到匹配? 作为一个额外的要求,如果我可以选择'[TESTS_STARTED]'和'[TESTS_ENDED]'之间的文本并且只输出该文件(仍然会在[TESTS_ENDED]''' – Flame