Получить статус выхода из скрипта php внутри сценария оболочки

У меня есть сценарий оболочки bash, который вызывает несколько PHP-скриптов, подобных этому.

#!/bin/bash php -f somescript.php php -f anotherscript.php 

Я хочу составить журнал ошибок и / или отчет о деятельности на основе результатов этих сценариев.

Есть ли способ получить статус выхода php-скрипта в сценарии оболочки?

Я мог бы использовать целочисленные статусы выхода или строковые сообщения.

Вы можете легко поймать вывод с помощью оператора backtick и получить код выхода последней команды с помощью $? :

 #!/bin/bash output=`php -f somescript.php` exitcode=$? anotheroutput=`php -f anotherscript.php` anotherexitcode=$? 

Ответ Эмилио был хорош, но я думал, что смогу расширить это для других. Вы можете использовать скрипт вроде этого в cron, если хотите, и попросите его отправить вам по электронной почте, если есть ошибка. YAY: D

 #!/bin/sh EMAIL="myemail@foo.com" PATH=/sbin:/usr/sbin:/usr/bin:/usr/local/bin:/bin export PATH output=`php-cgi -f /www/Web/myscript.php myUrlParam=1` #echo $output if [ "$output" = "0" ]; then echo "Success :D" fi if [ "$output" = "1" ]; then echo "Failure D:" mailx -s "Script failed" $EMAIL <<!EOF This is an automated message. The script failed. Output was: $output !EOF fi 

Использование php-cgi в качестве команды (вместо php ) упрощает передачу параметров url в php-скрипт, и к ним можно получить доступ, используя обычный PHP-код, например:

$id = $_GET["myUrlParam"];

Параметр $output команды exec может использоваться для получения вывода другой PHP-программы:

callee.php

 <?php echo "my return string\n"; echo "another return value\n"; exit(20); 

caller.php

 <?php exec("php callee.php", $output, $return_var); print_r(array($output, $return_var)); 

Запустив caller.php, вы получите следующее:

 Array ( [0] => Array ( [0] => my return string [1] => another return value ) [1] => 20 ) 

Обратите внимание, что статус exit должен быть числом в диапазоне 0-254. См. exit для получения дополнительной информации о кодах состояния возврата.