我正在编写一个启动 linux 映像并需要检测映像是否到达登录提示符的 perl 脚本。我正在使用 Device::serial 模块与开发板通信。我在检测登录字符串时遇到问题。我认为这可能与 linux 启动期间发生的大量打印有关。下面的代码尝试捕获提示。奇怪的是,它仅在我添加不必要的“读取”命令时才有效
# Wait for login prompt
$port->are_match("login:");
$gotit = "";
$timeout = 60;
until (($gotit ne "") or ($timeout eq 0))
{
$gotit = $port->lookfor; # poll until data ready
die "Aborted without match\n" unless (defined $gotit);
$read = $port->read(1000000);
$port->lookclear;
sleep(1);
$timeout--;
}
“lookfor”对 linux 引导场景有好处吗?为什么“读取”使此代码有效?
感谢大家