加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl的backticks,系统和exec有什么区别?

发布时间:2020-12-15 21:30:15 所属栏目:大数据 来源:网络整理
导读:有人可以帮帮我吗?在Perl中,有什么区别: exec "command"; 和 system("command"); 和 print `command`; 还有其他方法来运行shell命令吗? 解决方法 执行 执行命令并且从不返回。 它就像一个函数中的return语句。 如果没有找到命令,exec返回false。 它从不
有人可以帮帮我吗?在Perl中,有什么区别:
exec "command";

system("command");

print `command`;

还有其他方法来运行shell命令吗?

解决方法

执行

执行命令并且从不返回。
它就像一个函数中的return语句。

如果没有找到命令,exec返回false。
它从不返回true,因为如果命令被发现它从来没有返回。
在返回STDOUT,STDERR或命令的退出状态时也没有意义。
你可以在perlfunc找到关于它的文档,
因为它是一个函数。

系统

执行命令,并且在命令完成后继续执行Perl脚本。

返回值是命令的退出状态。
您可以在perlfunc找到有关它的文档。

反馈

like系统执行命令,并且在命令完成后继续执行perl脚本。

与系统相反,返回值是命令的STDOUT。
qx //等效于反引号。
你可以在perlop找到关于它的文档,因为不像system和execit是一个运算符。

其他方法

上面缺少的是异步执行命令的方法。
这意味着你的perl脚本和你的命令同时运行。
这可以用open完成。
它允许您读取STDOUT / STDERR并写入您的命令的STDIN。
它是平台依赖。

还有几个模块可以缓解这个任务。有IPC :: Open2和IPC :: Open3和IPC :: Run,以及Win32 :: Process ::如果你在windows上创建。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读