>我试图对这篇文章做非常可能的事情,但不是从文件中读取,而是想"订阅"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
最简单的方法是什么?提前致谢
以下两种解决方案应该有效。我通常更喜欢第二种形式,因为 wile 循环在当前进程中运行,因此我可以使用局部变量。 第一个窗体在子进程中运行 while 循环。
子进程中的 while 循环:
#!/bin/bash
adb logcat |
while read -r line; do
echo "${line}"
processLine "${line}"
done
当前进程中的 while 循环:
#!/bin/bash
while read -r line; do
echo "${line}"
processLine "${line}"
done < <(adb logcat)