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

php
2022-08-30 13:21:25

当做这样的事情时

$output = shell_exec("command 2>&1");

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

可以将命令输出写入临时文件,然后附加退出状态,但这很笨拙。有什么更好的建议吗?


答案 1

正如你已经看到的,在使用shell_exec你必须用echo $链接你的“真实”命令?获取退出状态:

 $output_including_status = shell_exec("command 2>&1; echo $?");

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


答案 2

请改用 exec()popen() (+ 手动处理进程)。


推荐