2016-11-23 35 views
1

退出基於輸出運行指令I有一個方法,該方法我開始運行使用在bash

$ somecommand build

它基本上安裝在Android仿真器的應用,然後啓動仿真器。這個過程一直運行,直到我手動殺死它。

該命令在運行應用程序時還向終端輸出一堆調試信息。我想在這個連續輸出的某個地方殺死命令,字符串[TESTS_ENDED]已經在終端上輸出。

任何oneliner上如何做到這一點?

+0

退房這個問題被殺害:http://superuser.com/q/402979/4706並專門'grep的-m'回答: http://superuser.com/a/403041/4706 – orip

+0

我喜歡'grep -m'解決方案,但是我的腳本現在不輸出任何東西, 並且拋出一個未處理的異常,因爲它的一些npm模塊正在運行。 任何方式仍然輸出到終端,直到找到匹配? 作爲一個額外的要求,如果我可以選擇'[TESTS_STARTED]'和'[TESTS_ENDED]'之間的文本並且只輸出該文件(仍然會在[TESTS_ENDED]''' – Flame

回答

0

使用awk,以幫助從pkill

somecommand build | awk '/\[TESTS_ENDED\]/ {system("pkill somecommand")}' 
  • 假設somecommand只有一個實例是捉迷藏

  • \[TESTS_ENDED\]比賽[TESTS_ENDED]在該行

  • 如果匹配,{system("pkill somecommand")}將會運行即awk將使用system()函數運行pkill somecommandsomecommandpkill

+0

'真的很喜歡這個解決方案,它假設一個實例。如果你可以引用正在管理的實例 – Flame