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