Cómo diferenciar entre el inicio programado de Terminal y el inicio manual para la configuración de .bash_profile

3

Tengo algunas configuraciones de .bash_profile que restauran mi último directorio de trabajo cada vez que inicio sesión en mi shell. Sin embargo, también uso un programa que abre una ventana de terminal en el directorio actual abierto en Finder, y lo hace enviando un evento a Terminal usando SBApplication .

¿Hay alguna forma en que pueda detectar de qué manera se abrió la Terminal en mi .bash_profile ? En este momento, la configuración de bash anula la aplicación cd to .

# Setting PATH for Python 3.4
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.4/bin"
export PATH

# My settings
trap 'printf %s "$PWD" > ~/.storepwd' EXIT

cd "$(<~/.storepwd)"
    
pregunta cdamayor 09.02.2016 - 08:52

1 respuesta

0

Puede mostrar variables BASH en su .bash_profile . Luego compare la salida cuando abre manualmente el terminal con la salida cuando la aplicación cd to abre el terminal.

Me refiero a agregar al principio de su .bash_profile las variables bash que figuran en el sitio web:

echo $BASH
echo $BASHOPTS
echo $BASHPID
...
echo $TMPDIR
echo $UID

Luego abra manualmente el terminal y guarde la salida. Abra el terminal de cd a y guarde la salida.

Compara los archivos.

La variable adecuada para el ejemplo anterior es DIRSTACK.

Aquí están las nuevas configuraciones para los que pasan:

# My settings
if [ $DIRSTACK = "~" ]; then
    trap 'printf %s "$PWD" > ~/.storepwd' EXIT
    cd "$(<~/.storepwd)"
fi
    
respondido por el jherran 09.02.2016 - 12:26

Lea otras preguntas en las etiquetas