2011-12-07 9 views
6

Si llamo a un comando (en mi caso otro script) con xterm así:¿Cómo obtengo el código de salida de comando y no xterm?

xterm -e sh second.sh 

El valor en $? después del retorno de xterm es el código de estado de salida de xterm (por lo general para mí 0) y no mi guión .

¿Hay alguna forma de obtener el código de estado de salida de mi script?

Respuesta

5

se podría hacer algo como esto:

statusfile=$(mktemp) 
xterm -e sh -c 'yourcommand; echo $? > '$statusfile 
status=$(cat $statusfile) 
rm $statusfile 

El estado de salida de yourcommand se encuentra ahora en la variable status.

+2

+1. Parece que no hay forma de que 'xterm' reporte el estado del comando directamente. –

+0

Para probar, creé un script que simplemente 'salía 0'. Luego llamo a este script en lugar de tu comando. El código de salida es siempre 127. Si reemplazo su comando con, digamos, "dormir 10", entonces el código de salida es correcto: S – neildeadman

+0

ignórame ... lo conseguí trabajando ... ¡gracias! – neildeadman

Cuestiones relacionadas