ファイルからルーターに構成コマンドを提供するスクリプトを期待しています。プロセスをファイルに記録しますが、構成ファイルが終了する前にログへの書き込みが停止することを期待しています。たとえば、構成ファイルに
q r s t あなた v w バツ y ぜ eof
ログには u までのすべてのやり取りが含まれますが、残りはログにはありませんが、プロセスが z までずっと終了しているように見えます。通常のエンドオブファイル比較がうまくいかないようなので、以下を試してみました。
set ok 0;
while { $ok == 0 } {
set line [ gets $config ];
expect {
"#" { send -s "$line\r"; }
-re "\[.]" { send -s "$line\r"; }
}
if { $line == "eof" } {
set ok 1;
} else { }
}
close $config
ok を 1 に設定して while ステートメントを終了しますが、スクリプトはその前にログ記録を停止します。