我在ssh上运行perl脚本,如下所示:
[dipuh@local ~]$ ssh dipuh@myremote_001 'perl /home/dipuh/a.pl'
a.pl的内容如下:
print "Sleeping \n";
sleep(60);
print "Waking Up";
这里我的本地终端等待perl脚本完全执行,一旦完成显示完整的输出。最初的"睡眠"文本也将仅与最终输出一起打印。
有没有办法,在我的本地终端中,我可以在运行时在perl脚本中显示每个命令的输出,而不是等待整个perl脚本完成。
答案 0 :(得分:4)
您可以为该块设置$|
至1
。
{
local $| = 1;
print "Sleeping \n";
sleep(60);
print "Waking Up";
}
或使用IO :: Handle
use IO::Handle;
STDOUT->autoflush(1);
答案 1 :(得分:2)
您可以尝试打开自动闪光模式。老式的方法是在脚本的顶部添加以下内容:
$| = 1;
或者你可以用更现代的方式来做到这一点:
use IO::Handle;
STDOUT->autoflush(1);
或者,您可以使用以下命令刷新STDOUT:
use IO::Handle;
print "Sleeping \n";
STDOUT->flush;
sleep(60);
print "Waking Up";
STDOUT->flush;