Come chiudere l'app Terminale utilizzando la riga di comando del terminale ("uscita") in macOS Catalina
Voglio chiudere il terminale usando la riga di comando del terminale.
Ma quando inserisco il exit
comando, Terminal disconnette solo la sessione ma non chiude la finestra dell'app. C'è un modo per chiudere anche l'app.
Sto eseguendo macOS Catalina 10.15.6.

Risposte
In Terminale > Preferenze ... > Profili > Shell , l'impostazione predefinita per Quando la shell esce: è: Non chiudere la finestra
Questo può essere modificato in: Chiudi la finestra
Quindi il exit
comando chiuderà la finestra .

Modifica per affrontare la domanda modificata:
Se vuoi chiudere la finestra usando il exit
comando puoi fare come suggerito nella prima parte di questa risposta, tuttavia, se vuoi anche chiudere automaticamente e con garbo anche Terminal , come parte del tuo script o al posto del exit
comando come mostrato nella tua domanda, puoi eseguire le seguenti operazioni:
Creare prima una semplice applicazione AppleScript utilizzando il seguente codice AppleScript di esempio in Script Editor :
tell application "Terminal" to if (busy of windows) does not contain true then quit
Salvandolo come un'applicazione denominata ad esempio QuitTerminal nella cartella Applicazioni principale .
Dopo averlo salvato, apri Terminale e quindi apri ad esempio QuitTerminal per attivare le autorizzazioni di autorizzazione in Preferenze di Sistema > Sicurezza e Privacy > Privacy
Una volta fatto questo, puoi quindi utilizzare quanto segue alla fine dello script o al posto del exit
comando :
open -a "OuitTerminal"
Esempio basato sul comando mostrato nella tua domanda:
/Users/harikrishna/Desktop/youtube.sh ; open -a "OuitTerminal"
Questo chiuderà Terminal solo se non ci sono processi in esecuzione in nessuna delle finestre di Terminal .
Nota: se non si desidera vedere, ad esempio, lo spettacolo OuitTerminal nel Dock , è possibile modificare l' applicazione utilizzando il seguente comando nel Terminale :
defaults write '/Applications/OuitTerminal.app/Contents/Info.plist' LSUIElement -bool yes
Se non ti interessa alcun processo in esecuzione, puoi forzare la chiusura del Terminale dallo script o dal comando usando killall Terminal
al posto di exit
; tuttavia questo è disordinato e non consiglio di usarlo sopra quanto presentato sopra.