亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Perl的后臺、系統和EXEC之間有什么區別?

Perl的后臺、系統和EXEC之間有什么區別?

Perl的后臺、系統和EXEC之間有什么區別?有人能幫幫我嗎?在Perl中,在以下方面有什么區別:exec "command";和system("command");和print `command`;還有其他方法來運行shell命令嗎?
查看完整描述

3 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

讓我先引用這些手冊:

perldoc exec():

exec函數執行系統命令和永不復返-使用系統而不是主管如果你想要它回來

Perldoc系統():

做與執行列表完全相同的事情,除了叉子做好了首先,父進程等待子進程完成。

與.形成對比主管系統,Backticks給出的不是返回值,而是收集的STDOUT。

perldoc‘String’:

一個字符串,它(可能)被內插,然后作為一個系統命令執行。/bin/sh或者它的等價物。shell通配符、管道和重定向將得到尊重。收藏返回命令的標準輸出。標準錯誤不受影響。


替代品:

在更復雜的場景中,您需要獲取STDOUT、STDERR或返回代碼,您可以使用眾所周知的標準模塊,如IPC:Open2IPC: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也值得一看…


查看完整回答
反對 回復 2019-07-03
  • 3 回答
  • 0 關注
  • 659 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號