Получение выходного и выходного статуса из shell_exec()
Выполняя что-то вроде
$output = shell_exec("command 2>&1");
сбор команды stdout и stderr в $output
, есть ли способ найти статус выхода команды?
Можно написать вывод команды во временный файл, а затем добавить статус выхода, но это довольно неуклюже. Любые лучшие предложения?
Ответы
Ответ 1
Как вы уже видели, при использовании shell_exec вам нужно привязать свою "настоящую" команду с помощью echo $? для получения статуса выхода:
$output_including_status = shell_exec("command 2>&1; echo $?");
но если вы хотите использовать чистый способ, то вы хотите использовать функцию exec, которая позволяет для 3-го апгмента явно для этой цели.
Ответ 2
Используйте exec()
или popen()
( + ручное управление процессом).
Ответ 3
Следующее работало для меня с exec(), чтобы показать вывод
exec(your_command, $output, $return_var);
var_dump($output);
var_dump($return_var);