Подтвердить что ты не робот

Получение выходного и выходного статуса из shell_exec()

Выполняя что-то вроде

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

сбор команды stdout и stderr в $output, есть ли способ найти статус выхода команды?

Можно написать вывод команды во временный файл, а затем добавить статус выхода, но это довольно неуклюже. Любые лучшие предложения?

4b9b3361

Ответ 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);