He mirado por todo esto y no estoy del todo seguro de cómo hacerlo.
Quiero usar un script de bash para abrir una aplicación usando 'abrir' y luego verificar el estado de salida de la aplicación después de que haya finalizado.
Por lo que yo sé, open -W saldrá con el estado 0 siempre que la aplicación se haya abierto, no estoy interesado en esta salida, estoy interesado en la salida de aplicaciones.
Actualmente tengo el siguiente script:
trap "echo manual abort; exit 1" 1 2 3 15;
while open -W /path/to/MyApp.app
echo "all is well"
done
exit 0
Lo que abre la aplicación y luego espera, si el estado de salida es 0, volverá a abrir la aplicación nuevamente después del cierre. Sin embargo, esto está pensado, lo que quiero es poder detener este script si la aplicación en sí no salía de 0 en lugar de que el comando 'abrir' se cerrara con éxito.
En resumen:
Abre MyApp.app
si MyApp.app (no abierto) se bloquea, detenga la secuencia de comandos; de lo contrario, vuelva a abrir MyApp.app