Ho un'applicazione (strumento closed-source non sviluppato da me) che richiede l'esistenza di un altro processo prima dell'esecuzione corretta. Quando esco da questa applicazione, voglio anche che il processo personalizzato venga ucciso. La mia soluzione è avere uno "script" di script di shell. Posso gestire la creazione di menu script di shell, l'evento on-close e l'apertura / uccisione dei processi. Il problema è che non riesco a capire come aprire un'applicazione da Terminal, ma mantenere Terminal bloccato su quell'applicazione in modo che quando chiudo la finestra di Terminale o invii CTRL + C l'applicazione si chiuda. Se hai familiarità con Linux, un semplice esempio del mio comportamento desiderato è solo "gedit file.txt". L'editor di testo si aprirà ma sopravvive solo fino a quando la finestra del terminale non lo fa.
Su OSX con il comando "apri", posso avviare le applicazioni ma non sono collegate alla finestra del Terminale. C'è un comando alternativo che dovrei usare per ottenere questo comportamento?
Ecco il mio script finora:
#!/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