什么是PHP exec()返回值?

bur*_*ger 12 php command-line command-line-interface

我正在尝试使用PHP exec()函数.

如果return_var参数与输出参数一起出现,则执行命令的返回状态将写入此变量.

如果执行成功,则为0.但是,如果存在错误,则可能是多个其他整数.我似乎无法找到那些整数对应的地方.我应该如何解释我得到的整数?

更新:

我本应该最初指定这个,但我正在执行另一个PHP脚本.与rsync(在其手册页上有退出值)不同,我找不到PHP的等价物.

所以我正在做的是:

$rv = exec('php file.php', $out, $rv);
Run Code Online (Sandbox Code Playgroud)

Roa*_*ter 10

返回值取决于您使用exec运行的进程/程序.例如,如果你运行grep:

如果找到选定行,则退出状态为0,如果未找到,则退出状态为1.如果发生错误,则退出状态为2.(注意:POSIX错误处理代码应检查"2"或更大.)

rsync有大约20个不同的错误退出代码,所有这些都在man page中详细解释:

http://linux.die.net/man/1/rsync

所以是的,这是程序依赖:)

即使您正在运行PHP脚本,退出值也取决于您的程序本身.默认情况下,php脚本将以0退出.如果使用exit函数,则可以返回不同的退出代码:

http://php.net/manual/en/function.exit.php

如果您想通过实验确定您的php程序退出的内容,请在命令行中调用它:

php file.php
Run Code Online (Sandbox Code Playgroud)

然后做

echo $?
Run Code Online (Sandbox Code Playgroud)

这将显示您的PHP脚本的退出值.