получение состояния выхода и выхода из shell_exec () - PullRequest
22 голосов
/ 21 декабря 2009

Когда вы делаете что-то вроде

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

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

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

Ответы [ 3 ]

38 голосов
/ 21 декабря 2009

Как вы уже видели, при использовании shell_exec вы должны связать свою "настоящую" команду с echo $? чтобы получить статус выхода:

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

но если вы хотите чистый путь, то вы хотите использовать функцию exec , которая явно разрешает 3-й метод для этой цели.

11 голосов
/ 21 декабря 2009

Используйте взамен exec() или popen() (+ ручное управление процессом).

1 голос
/ 12 декабря 2018

Следующее сработало у меня с exec (), чтобы показать вывод

exec(your_command, $output, $return_var);
var_dump($output);
var_dump($return_var);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...