Scenario
Uso molto il terminale in SSH, tuttavia vorrei che l'app del terminale si chiudesse quando l'ultima scheda si chiude usando exit. Ho già la stessa finestra del terminale impostata per chiudere con esito positivo, tuttavia Terminal continua a funzionare. Ho seguito il tutorial di Ricky Campbell qui che utilizza un AppleScript per uscire dal terminale . AppleScript funziona perfettamente quando si esegue all'esterno di Terminal, tuttavia in qualche modo non riesco a far funzionare il comando trap che deve essere inserito nel terminale.
Per riferimento pubblicherò il testo pertinente qui:
Now we need a way to kickoff the script. This can be done with the bash command “trap”, having it listen for the EXIT signal. Since I want this to happen everytime my user opens a shell, I add it to my .profile file. I do this with nano:
$ nano ~/.profile
In this file add the following somewhere. You may need to edit the path to the AppleScript file you created earlier:
trap '/usr/bin/osascript $HOME/Scripts/QuitTerminal.scpt' EXIT
All this does is listen for the EXIT signal within bash and when it gets it, runs the script we created earlier.
Domanda
Come faccio a risolvere questo problema. Per qualche motivo la trappola non sta sparando o funziona come dovrebbe, anche dopo numerosi riavvii. Esiste un modo alternativo per chiudere l'app Terminal quando viene chiusa l'ultima scheda?
Soluzione
I collegamenti forniti da Dori hanno portato alla soluzione. L'articolo suggerisce che il comando trap debba essere in .profile
, quando in realtà deve essere inserito in .bashrc
. Spostandolo nello script corretto risolto il problema.