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のブートシナリオに適していますか? 「読み取り」によってこのコードが機能するのはなぜですか?
みんな、ありがとう