我正在尝试做this post,但是我不想从文件中读取,而是要“订阅” adb logcat
的输出,并且每次记录新行时,我都会运行这行上的一些代码。
我尝试了这些代码,但没有一个
tail -f $(adb logcat) | while read; do
echo $read;
processLine $read;
done
或
adb logcat >> logcat.txt &
tail -f logcat.txt | while read; do
echo $read;
processLine $read;
done
执行此操作的简单方法是什么?预先感谢
答案 0 :(得分:2)
以下两个解决方案应该起作用。我通常更喜欢第二种形式,因为wile循环在当前进程中运行,因此我可以使用局部变量。第一种形式在子进程中运行while循环。
在子进程中循环时:
#!/bin/bash
adb logcat |
while read -r line; do
echo "${line}"
processLine "${line}"
done
当前进程中的循环:
#!/bin/bash
while read -r line; do
echo "${line}"
processLine "${line}"
done < <(adb logcat)