Почему grep -m 1 внутри $ () с долгоживущим процессом застревает? - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь отслеживать бесконечную задачу, подбрасывая до первой подходящей строки.Это хорошо работает:

$ adb -L tcp:qa-qemu3.mlan:5037 -s emulator-5616 logcat | grep -m 1 v
05-18 11:34:08.386 21032 21032 D ICU     : No timezone override file found: /data/misc/zoneinfo/current/icu/icu_tzdata.dat
$

Я хотел бы захватить этот вывод в переменную, но когда я пытаюсь, оболочка зависает:

$ F=$(adb -L tcp:qa-qemu3.mlan:5037 -s emulator-5616 logcat | grep -m 1 g)
^C
$ echo $F
--------- beginning of main
$ 

Есть несколько очевидных файловыхна основе обходных путей, и для logcat, в частности, я могу просто использовать первую версию, перезапустить ее в $() с -d, но мне любопытно, как избежать застревания $(), потому что все процессыв трубопровод не вышли.И timeout/timelimit не работает для меня.

Это на MacOs High Sierra.

...