2012-08-23 14 views
5

Tengo un script en el que estoy revisando minuciosamente los códigos de retorno para ver si hay errores, de modo que pueda abortar anticipadamente en caso de error. Un paso de este script implica ejecutar un comando como root en otro cuadro, a través de ssh y sudo.Captura del código de salida del proceso sudo-run

considerar:

ssh $HOST sudo $CMD 
echo $? 

ssh pasa códigos de retorno hacia atrás muy bien, pero incluso si $ CMD devuelve un código de salida distinto de cero, sudo sigue devolviendo 0 después de ejecutar el comando.

¿Cómo capturo el código de retorno a $ CMD? Estoy muy interesado en que se transmita como el código de retorno de ssh, pero si hay otro método simple que no puede confundirse con el resultado de $ CMD, soy todo oídos.

Respuesta

4

Como resultado, sudo es pasando el código de retorno correctamente. Mi caso de prueba muy probablemente fue sobrescribir $? con una ejecución posterior o prueba condicional. Normalmente uso una variable con nombre para conservar $? para evitar tales cosas, pero ahí estás.

+0

Lo mismo aquí: me estaba haciendo eco del resultado, así que aunque ssh estaba pasando el código de estado correctamente, echo devolvía 0. –

Cuestiones relacionadas