2009-12-21 14 views
18

Al hacer algo así comoconseguir el estado de salida y la salida de shell_exec()

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

recoger stdout & stderr del comando en $output, ¿hay una manera de encontrar el código de salida del comando?

Se podría escribir el resultado del comando en un archivo temporal y luego anexar el estado de salida, pero eso es un poco torpe. ¿Alguna mejor sugerencia?

Respuesta

32

Como ya has visto, cuando usas shell_exec tienes que encadenar tu comando "real" con echo $? para obtener el estado de salida:

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

pero si desea que la forma limpia, entonces usted desea utilizar la función exec, que permite a un tercero agument expresamente para este fin.

+0

sí, de hecho. exec() lo hará. gracias, Tony –

Cuestiones relacionadas