首页 / 知识
关于ipc:如何从Perl脚本中捕获系统命令的stdin和stdout?
2023-04-16 06:43:00

How can I capture the stdin and stdout of system command from a Perl script?
在Perl脚本的中间,有一个我要执行的系统命令。 我有一个字符串,其中包含需要输入到stdin中的数据(该命令仅接受来自stdin的输入),并且我需要捕获写入stdout的输出。 我已经研究了Perl中执行系统命令的各种方法,并且
此刻,看来我最好的解决方案是使用 IPC :: Open2 / 3很好,但是我发现通常我真正需要的只是IPC :: Run3,它能够以最小的复杂性很好地处理简单的情况:
该文档将IPC :: Run3与其他替代方案进行了比较。即使您不决定使用它,也值得一读。 perlipc文档涵盖了许多方法,包括IPC :: Open2和IPC :: Open3。 在脚本顶部的某处添加以下行
这将包括必要的模块,默认情况下通常会在大多数Perl发行版中安装该模块。 (如果没有它,则可以使用CPAN进行安装。)然后,而不是打开,调用:
您可以通过将数据发送到$ cmd_in来将其发送到命令,然后通过从$ cmd_out中读取来读取命令的输出。 如果还希望能够读取命令的stderr流,则可以改用IPC :: Open3模块。 IPC :: Open3可能会做您想要的。它可以捕获STDERR和STDOUT。 http://metacpan.org/pod/IPC::Open3 我最近发现的一种非常简单的方法是IPC :: Filter模块。它使您可以非常直观地完成工作:
请注意,如果将列表传递给命令,它将如何在不通过外壳的情况下调用命令。它还可以很好地处理常见实用程序的错误。 (如果失败,则使用STDERR中的文本作为错误消息,它为 当然,由于它无法进行任何流处理,因此不适合用于大量数据。同样,错误处理的粒度可能不足以满足您的需求。但这使许多简单的情况确实非常简单。 有一个特殊的perl命令
可以在以下位置找到更多信息:http://sunsite.ualberta.ca/Documentation/Misc/perl-5.6.1/lib/IPC/Open2.html 我想您想看看IPC :: Open2 如果您不想包含额外的程序包,则可以
这与您的建议相反,但也应该起作用。 如果我只希望输出一行,或者想将结果分割到换行符以外的其他地方,我总是这样做:
如果要处理多行响应,请以数组形式获取结果:
|
最新内容
相关内容
linux监控cpu命令?
linux监控cpu命令?,情况,系统,信息,状态,时间,实时,电脑,工具,命令,百分比,linux查看cpu使用率使用lscpu命令 lscpu命令可以显示有关处理器架linux密码更改命令?
linux密码更改命令?,密码,系统,名称,信息,环境,命令,使用者,用户,权限,终端,Linux修改用户密码的命令是命令:passwd [-k] [-l] [-u [-f]] [-d]linux硬盘挂载命令?
linux硬盘挂载命令?,系统,设备,信息,电脑,情况,状态,管理,数据,工具,命令,linux磁盘挂载进入命令行模式下,输入命令 sudo -i 获取root权限 输入linux命令替换的字符?
linux命令替换的字符?,命令,数据,系统,商业,字符串,文件,内容,方法,批量,字符,Linux批量替换多个文件中字符串Linux下批量替换多个文件中的字linux命令行大全如何?
linux命令行大全如何?,地址,命令,基础,工作,管理,单位,数据,标准,目录,文件,linux必学的60个命令1、安装和登录命令:login、shutdown、halt、relinux开启bnc命令?
linux开启bnc命令?,网络,工作,酒店,电脑,光线,信息,位置,网卡,中心,价格,寝室校园网如何实现2台电脑共享上网?加个路由器,或者把一台电脑作为主图形化linux命令集?
图形化linux命令集?,系统,工作,密码,信息,软件,地址,命令,状态,工具,电脑,linux系统常用操作命令linux常用命令有pwd命令、cd命令、ls命令、calinux命令行打开浏览?
linux命令行打开浏览?,系统,网络,网址,工具,密码,首页,服务,网站,数据,地址,linux怎么打开命令行窗口在Linux系统中,打开命令行窗口需要使用终linux使用ssh命令?
linux使用ssh命令?,服务,系统,软件,在线,认证,地址,命令,协议,虚拟机,主机,ssh命令远程连接linux服务器你必须 在你的桌面 Linux 上安装好 Opelinux系统查版本命令?
linux系统查版本命令?,系统,信息,名称,状态,设备,命令,软件,工具,版本,终端,linux下如何查看grub版本号1、首先连接上Linux主机,如图所示,使Linulinux的安装软件命令?
linux的安装软件命令?,软件,系统,名称,发行,官方网站,市场,官网,密码,网站,检测,在linux下如何装应用程序?需要什么命令啊)执行“make”命令进linux开启命令行命令?
linux开启命令行命令?,系统,单位,工具,电脑,首页,终端,情况,密码,权威,命令,linux系统的cmd在哪里启动啊?1、打开方法:开始-所有程序-附件 或