Apri l'applicazione dal terminale e rimani collegata al processo (come Linux) così quando CTRL + C viene inviato al terminale l'applicazione si chiude anch'essa

2

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
    
posta CauselessEffect 17.03.2015 - 15:27
fonte

1 risposta

0

Piuttosto che usare il comando Unix aperto.

È possibile eseguire direttamente il file eseguibile delle applicazioni.

Ad esempio per TextEdit.app

Esecuzione del comando in Terminal.app

/Applications/TextEdit.app/Contents/MacOS/TextEdit

Questo aprirà TextEdit usando un processo da Terminal.app

Quando chiudi la finestra del terminale o usi Ctrl + C

TextEdit si chiuderà.

    
risposta data 17.03.2015 - 18:12
fonte

Leggi altre domande sui tag