退出基於輸出運行指令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