perl - 在运行时通过 SSH 显示命令的输出

标签 perl shell unix ssh

我正在通过 ssh 运行 perl 脚本,如下所示:

[dipuh@local ~]$ ssh dipuh@myremote_001 'perl /home/dipuh/a.pl'

a.pl的内容如下:

print "Sleeping \n";
sleep(60);
print "Waking Up";

这里我的本地终端等待 perl 脚本完全执行,完成后显示完整的输出。最初的“ sleep ”文本也将仅与最终输出一起打印。

有什么办法,在我的本地终端中,我可以在运行时显示 perl 脚本中每个命令的输出,而不是等待整个 perl 脚本完成。

最佳答案

你是suffering from buffering .

您可以将 block 的 $| 设置为 1

{
    local $| = 1;
    print "Sleeping \n";
    sleep(60);
    print "Waking Up";
}

或者使用 IO::Handle

use IO::Handle;
STDOUT->autoflush(1);

关于perl - 在运行时通过 SSH 显示命令的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39657317/

相关文章:

bash - 如何将 PostgreSQL 结果插入 shell 变量

c++ - 在这里使用虚函数的地方

linux - 缩短我的数据标签

linux - 放置自定义可执行文件或脚本的 Unix 标准目录?

ruby - 在 ruby​​ 的当前终端中运行命令,然后在退出时执行代码

c# - RegEx 字表现 :\w vs [a-zA-Z0-9_]

perl - Perl 中的参数输入机制有什么区别?

perl - 'global symbol requires explicit package name'的解释

linux - INET6 不适用于 [::1]

node.js - 如何使用nodejs运行shell脚本文件?