Cómo cerrar la aplicación Terminal usando la línea de comandos del terminal ("salir") en macOS Catalina

Aug 16 2020

Quiero cerrar la Terminal usando la línea de comandos de la terminal.

Pero cuando ingreso el exitcomando, Terminal solo cierra la sesión pero no cierra la ventana de la aplicación. ¿Hay alguna forma de cerrar también la aplicación?

Estoy ejecutando macOS Catalina 10.15.6.

Respuestas

17 user3439894 Aug 16 2020 at 10:50

En Terminal > Preferencias… > Perfiles > Shell , la configuración predeterminada para Cuando el shell sale: es: No cerrar la ventana

Esto se puede cambiar a: Cerrar la ventana

Entonces el exit comando cerrará la ventana .


Edite para abordar la pregunta editada:

Si desea cerrar la ventana con el exit comando , puede hacer lo que se sugiere en la primera parte de esta respuesta, sin embargo, si también desea cerrar automáticamente y con gracia la Terminal , como parte de su script o en lugar del exit comando como que se muestra en su pregunta, puede hacer lo siguiente:

Primero cree una aplicación AppleScript simple usando el siguiente código de ejemplo de AppleScript en Script Editor :

tell application "Terminal" to if (busy of windows) does not contain true then quit

Guardarlo como una aplicación llamada, por ejemplo, QuitTerminal en la carpeta principal de Aplicaciones .

Después de guardarlo, abra Terminal y luego abra, por ejemplo, QuitTerminal para activar la autorización de permisos en Preferencias del sistema > Seguridad y privacidad > Privacidad

Una vez hecho esto, puede usar lo siguiente al final de su secuencia de comandos o en lugar del exit comando :

open -a "OuitTerminal"

Ejemplo basado en el comando que se muestra en su pregunta:

/Users/harikrishna/Desktop/youtube.sh ; open -a "OuitTerminal"

Esto solo cerrará Terminal si no hay procesos en ejecución en ninguna de las ventanas de Terminal .

Nota: Si no desea ver, por ejemplo, OuitTerminal en el Dock , puede modificar la aplicación usando el siguiente comando en la Terminal :

defaults write '/Applications/OuitTerminal.app/Contents/Info.plist' LSUIElement -bool yes

Si no le importa ningún proceso en ejecución, puede forzar el cierre de Terminal desde el script o comando usando killall Terminalen lugar de exit; sin embargo, esto es complicado y no recomiendo usarlo sobre lo presentado anteriormente.