Perl的后台、系统和EXEC之间有什么区别?

Perl的后台、系统和EXEC之间有什么区别?

有人能帮帮我吗?在Perl中,在以下方面有什么区别:

exec "command";

system("command");

print `command`;

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


交互式爱情
浏览 609回答 3
3回答

GCT1015

让我先引用这些手册:perldoc exec():exec函数执行系统命令和永不复返-使用系统而不是主管如果你想要它回来Perldoc系统():做与执行列表完全相同的事情,除了叉子做好了首先,父进程等待子进程完成。与.形成对比主管和系统,Backticks给出的不是返回值,而是收集的STDOUT。perldoc‘String’:一个字符串,它(可能)被内插,然后作为一个系统命令执行。/bin/sh或者它的等价物。shell通配符、管道和重定向将得到尊重。收藏返回命令的标准输出。标准错误不受影响。替代品:在更复杂的场景中,您需要获取STDOUT、STDERR或返回代码,您可以使用众所周知的标准模块,如IPC:Open2和IPC:Open3.例子:use IPC::Open2;my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'some', 'cmd', 'and', 'args');waitpid( $pid, 0 );my $child_exit_status = $? >> 8;最后,IPC:Run也值得一看…
打开App,查看更多内容
随时随地看视频慕课网APP