Duda con $? en scripts sh

Bueeenas gente!

Bueno, el caso es que estoy haciendo un script que llama a otro script y quiero que ese ultimo me devuelva un valor con return al primero.
Si después de ejecutar el segundo script, hago un echo $?, me imprime el valor de return perfectamente.

El problema esta en que $? te muestra en pantalla el resultado del último comando ejecutado (si me explico bien) y tengo cierto grado de "paranoia" con que si se podría ejecutar otro comando entre la ejecución del segundo script y el echo $? y no mostrarme el resultado que quiero.

No hace falta que sea tan paranoico y uso $? sin problemas? O mejor me ahorro por todos los medios posibles usarlo?
Es que vale que es una fracción de segundo, pero siempre cabe la probabilidad.

Graciaaaas!
$? devuelve el resultado del ultimo comando ejecutado en la sesión que estás, así que aunque se ejecuten otros programas de fondo, no van a afectar al resultado.
nu_kru escribió:$? devuelve el resultado del ultimo comando ejecutado en la sesión que estás, así que aunque se ejecuten otros programas de fondo, no van a afectar al resultado.


Vale, creo que ya he pillado como funciona jaja.
Con un terminal por SSH, le he puesto una orden no valida para forzar al echo $? que me devolviera el valor 127.
Al volver a hacer echo $? me salia el valor 0, ya que el anterior echo $? ha funcionado correctamente.

Con 2 terminales por SSH conectados al mismo equipo, he vuelto a introducir una orden no valida para que echo $? me diera resultado 127.
Pero he introducido en el otro terminal echo $? y me ha dado como resultado 0, y si vuelvo al terminal donde le he dado una orden no valida y le hago un echo $? me devuelve aun 127.

Vamos, que por mas que estén conectados en el mismo servidor el equipo ya lo gestiona para diferenciar una terminal de otra.

Pues ala, a usar $? sin complicarme la vida y sin preocupaciones jaja.

Gracias de nuevo! :)
2 respuestas