从shell_exec()获取输出和退出状态

23 php

做什么的时候

$output = shell_exec("command 2>&1");
Run Code Online (Sandbox Code Playgroud)

收集命令的stdout&stderr in $output,有没有办法找到命令的退出状态?

可以将命令输出写入临时文件,然后附加退出状态,但这相当笨重.有更好的建议吗?

Ton*_*ler 43

正如您已经看到的,当使用shell_exec时,您必须使用echo $链接"真实"命令?获得退出状态:

 $output_including_status = shell_exec("command 2>&1; echo $?");
Run Code Online (Sandbox Code Playgroud)

但是如果你想要干净的方式,那么你想使用exec函数,它允许第三个文章明确地用于此目的.


Luk*_*ský 11

使用exec()popen()(+手动处理过程)代替.


Rob*_*air 6

以下使用 exec() 为我工作以显示输出

exec(your_command, $output, $return_var);
var_dump($output);
var_dump($return_var);
Run Code Online (Sandbox Code Playgroud)