获取在Perl中使用反引号执行的命令的返回值
发布时间:2020-12-15 21:12:05 所属栏目:大数据 来源:网络整理
导读:我可以在bash中执行以下操作: output=`command`retcode=$? 在Perl中有什么办法吗?这样的事情 $output=`command`$retcode=??? 解决方法 你可以阅读$?变量(如在shell中).从人的perlvar $? The status returned by the last pipe close,backtick ("``") comm
|
我可以在bash中执行以下操作:
output=`command` retcode=$? 在Perl中有什么办法吗?这样的事情 $output=`command` $retcode=??? 解决方法
你可以阅读$?变量(如在shell中).从人的perlvar
$? The status returned by the last pipe close,backtick ("``") command,successful call to wait() or waitpid(),or from the
system() operator. This is just the 16-bit status word returned by the traditional Unix wait() system call (or else is made up
to look like it). Thus,the exit value of the subprocess is really ("$? >> 8"),and "$? & 127" gives which signal,if any,the
process died from,and "$? & 128" reports whether there was a core dump. (Mnemonic: similar to sh and ksh.)
Additionally,if the "h_errno" variable is supported in C,its value is returned via $? if any "gethost*()" function fails.
If you have installed a signal handler for "SIGCHLD",the value of $? will usually be wrong outside that handler.
Inside an "END" subroutine $? contains the value that is going to be given to "exit()". You can modify $? in an "END"
subroutine to change the exit status of your program. For example:
END {
$? = 1 if $? == 255; # die would make it 255
}
Under VMS,the pragma "use vmsish 'status'" makes $? reflect the actual VMS exit status,instead of the default emulation of
POSIX status; see "$?" in perlvms for details.
Also see "Error Indicators".
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
