OSX Shell termina después de usar

OSX Shell termina después de usar

Tengo un script de shell que cambia de directorio y luego se ejecuta. Quiero que el cambio de directorio se muestre en el símbolo del sistema una vez que finalice el script.

Entonces lo ejecuto con:

. script

Sin embargo, ahora, cuando finaliza el script, finaliza toda la ventana. ¿Hay alguna manera de solucionar esto?

Mi caparazón es bash.

Respuesta1

Hay dos formas de solucionar esto en Mac

A> Vaya a sus Preferencias de Terminal, seleccione [General] y desmarque la casilla que dice "Cerrar ventana si el shell sale limpiamente".

B> Apunte su editor de texto favorito a ~/Library/Preferences/com.apple.Terminal.plist

Encuentra las filas:

< clave>ShellExitAction</clave>
< entero>1</entero>

cambie el 1 a un 2 y reinicie la aplicación del terminal.

B es básicamente lo mismo que A, pero se hace manualmente.

Respuesta2

¿ scriptContiene una exitdeclaración? Recuerde que dot (sourcing) ejecuta su código en el shell actual. Entonces, si tiene un exit, su shell actual se cierra. Es posible que desees comprobar el script y cambiarlo exita return.

Es posible que pueda detectar el origen (donde le gustaría return) y la ejecución (donde le gustaría exit)

[[ $BASH_SOURCE != $0 ]] && echo 'running sourced ...'

información relacionada