我有一个 perl 脚本,可以从远程服务器获取一些文件,我希望能够代表进度。我尝试这样做的方式是这样的:
print "\tDownloading comp.reg.binary.sdiff.log...\n";
if(does_file_exist('comp.reg.binary.sdiff.log', @ret)){
$sftp->get("t-gds/log/comp.reg.binary.sdiff.log", $saveDir, sub {
my($sftp, $data, $offset, $size) = @_;
print "\tRead $offset of $size bytes\r";
});
print "\n\tDownloaded.\n";
}else{
print "\tFile not found on server...skipping.\n";
}
但是,cygwin 似乎吞下了回车,直到最后一个 print 语句才打印任何内容。我对此表示怀疑,因为脚本运行得太快了,因为当我将 \r 更改为 \n 时,我可以看到它们打印出来很慢。
有谁知道为什么它没有按应有的方式工作?