Tengo una aplicación (herramienta de código cerrado no desarrollada por mí) que requiere que exista otro proceso antes de ejecutarse correctamente. Cuando salgo de esta aplicación, también quiero que se elimine ese proceso personalizado. Mi solución es tener un script de shell "lanzador". Puedo manejar la creación de menús de shell script, el evento de cierre y abrir / matar los procesos. El problema es que parece que no puedo entender cómo abrir una aplicación desde el Terminal, pero mantengo el Terminal bloqueado en esa aplicación para que cuando cierre la ventana del Terminal o envíe CTRL + C, la aplicación se cierre. Si está familiarizado con Linux, un ejemplo simple de mi comportamiento deseado es simplemente "gedit file.txt". El editor de texto se abriría, pero solo vivirá mientras lo haga la ventana del terminal.
En OSX con el comando "abrir", puedo iniciar aplicaciones pero no están vinculadas a la ventana de Terminal. ¿Hay algún comando alternativo que deba usar para lograr este comportamiento?
Aquí está mi script hasta ahora:
#!/bin/bash
set -e
function cleanup {
osascript -e 'tell application "APP1" to quit'
osascript -e 'tell application "APP2" to quit'
}
trap cleanup EXIT
clear
PS3='Please select an option: '
options=("Start Apps" "Stop Apps")
select opt in "${options[@]}"
do
case $opt in
"Start Apps")
open -a "APP1"
open -a "APP2"
;;
"Stop Apps")
cleanup
;;
*) echo invalid option;;
esac
done