如何使用 perl 从终端读取连续的输出流



我知道backticks可用于在命令完成执行后检索命令的输出,但我不知道如何在命令仍在执行时读取输出,或者如何同时使用多个终端执行此操作。

运行脚本的操作系统是 Ubuntu 17.04

如果你对Perl中的进程间通信有疑问,那么perlipc手册页可能是一个很好的起点。具体而言,在这种情况下,关于使用open()进行IPC的部分似乎很有用。

基本上,您可以使用open()打开进程的句柄,然后可以像从任何文件句柄读取数据一样从中读取数据。

文档中的示例使用netstat

open(STATUS, "netstat -an 2>&1 |")
    || die "can't fork: $!";
while (<STATUS>) {
    next if /^(tcp|udp)/;
    print;
}
close STATUS        || die "bad netstat: $! $?";

最新更新