我有一个处理文件传输的Perl Expect脚本。该脚本工作正常,但它在文件传输完成之前退出。我不想依赖sleep(),因为所需的时间可能会有所不同。
在继续之前,有没有期待等待我的命令完成?
my $exp = Expect->spawn("perl ./fileTransfer.pl $url")
or die "Cannot spawn program: $!\n";
#Enter credentials
$exp->send($username);
sleep(1);
$exp->send($password);
sleep(1);
#This only executes for a bit, before the program exits:
$exp->send($getFiles);
$exp->soft_close();
exit;
答案 0 :(得分:2)
只需使用$exp->expect(undef);
代替$exp->soft_close();
即可解决此问题
我也接受了@Mark Setchell的建议,现在“期待”特定的提示,这样我就可以轻松地进行多次'发送',而不必担心在前一个完成之前执行。