2 votes

Comment faire la différence entre le lancement par script du terminal et le lancement manuel pour les paramètres du fichier .bash_profile ?

J'ai quelques .bash_profile des paramètres qui restaurent mon dernier répertoire de travail à chaque fois que je me connecte à mon shell. Cependant, j'utilise également un programme qui ouvre une fenêtre de terminal dans le répertoire courant ouvert dans le Finder, et il le fait en envoyant un événement à Terminal en utilisant SBApplication .

Existe-t-il un moyen de détecter de quelle manière le terminal a été ouvert dans mon .bash_profile ? Actuellement, les paramètres de bash remplacent les paramètres de cd à app.

# 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)"

0voto

jherran Points 12554

Vous pouvez afficher Variables BASH sur votre .bash_profile . Comparez ensuite la sortie lorsque vous ouvrez manuellement le terminal avec la sortie lorsque cd à L'application ouvre le terminal.

Je voulais dire ajouter au début de votre .bash_profile les variables bash listées sur le site :

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

Ensuite, ouvrez manuellement le terminal et enregistrez la sortie. Ouvrez le terminal à partir de cd to et sauvegardez la sortie.

Comparez les fichiers.


La variable appropriée pour l'exemple ci-dessus est DIRSTACK.

Voici les nouveaux paramètres pour ceux qui passent par là :

# My settings
if [ $DIRSTACK = "~" ]; then
    trap 'printf %s "$PWD" > ~/.storepwd' EXIT
    cd "$(<~/.storepwd)"
fi

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X