我应该承认我早些时候发布了一个与我的问题相关的问题。但是,我从最初的问题又向前迈进了一步,现在与 Perl 相关的问题比 ADB 命令相关的更多。感谢我最后一位建议我研究 Expect 功能的发帖人,但是我无法在 Win7 平台上成功安装此模块。我已经改变了我原来的剧本。
我在下面有以下脚本,我可以在其中捕获 Android 手机 ADB logcat 文本的输出,同时在手机上执行手动 PLMN 扫描。并且脚本将记录 logcat 直到找到指定的字符串(字符串 >> /EVENT_NETWORK_SCAN_COMPLETED/ <<)然后日志停止。脚本工作到这里,但是从这一点开始,STDOUT 文本在我的 CMD 窗口中滚动,然后挂在找到的字符串的位置,但没有 C:> 提示,所以要退出我需要手动执行 Ctrl+ C 在键盘上。理想情况下,我宁愿不显示 STDOUT 滚动文本,而是简单地发布到文本文件,然后在我的 CMD 窗口中返回命令提示符。很抱歉类似的帖子,我现在似乎只是在绕圈子。
use warnings;
use diagnostics;
use strict;
open my $fh, '>', "output.txt" or die "Cannot open output.txt: $!";
open( README, "adb logcat |" ) or die "Can't run program: $!\n";
while (<README>) {
print $fh "$_\n";
if ( $_ =~ /EVENT_NETWORK_SCAN_COMPLETED/ ) {
system('adb logcat -d');
system('exit');
}
}
close $fh;