Come distinguere tra l'avvio con script di Terminal e l'avvio manuale per le impostazioni di .bash_profile

3

Ho alcune impostazioni di .bash_profile che ripristinano la mia ultima directory di lavoro ogni volta che accedo alla mia shell. Tuttavia, uso anche un programma che apre una finestra di terminale nella directory corrente aperta in Finder, e lo fa inviando un evento a Terminal usando SBApplication .

C'è un modo per rilevare in che modo il terminale è stato aperto nel mio .bash_profile ? Al momento le impostazioni di bash sostituiscono l'app su .

# 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)"
    
posta cdamayor 09.02.2016 - 08:52
fonte

1 risposta

0

Puoi visualizzare variabili BASH sulla tua .bash_profile . Quindi confronta l'output quando apri manualmente il terminale con output quando cd su app apre il terminale.

Intendevo append all'inizio della .bash_profile delle variabili bash elencate sul sito web:

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

Quindi apri manualmente il terminale e salva l'output. Apri il terminale da cd a e salva l'output.

Confronta i file.

La variabile corretta per l'esempio precedente è DIRSTACK.

Ecco le nuove impostazioni per chi passa:

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

Leggi altre domande sui tag