Quel est le meilleur moyen d'exécuter un script lors de la saisie dans un répertoire?
Lorsque je déménage dans un nouveau répertoire, j'aimerais que bash exécute le script projectSettings.bash un peu comme le fait RVM.
bash
shell-script
cd-command
MageProspero
la source
la source
Réponses:
Vous pouvez créer
cd
une fonction (etpop
etpushd
) et la faire détecter si vous entrez dans ce répertoire particulier.Ne le faites pas dans des répertoires que vous n'avez pas inscrits sur la liste blanche, car il serait très facile pour quelqu'un de vous faire tromper pour exécuter du code arbitraire - vous envoyer une archive, vous la décompressez ainsi, vous accédez au répertoire qu'il a créé et vous ' Nous allons maintenant exécuter le code de l'attaquant.
Je ne recommande pas cette approche, car cela signifie que le script sera exécuté même si vous entrez dans ce répertoire pour une raison quelconque qui n'est pas liée au travail sur le projet. Je suggère d'avoir une fonction spécifique qui modifie le répertoire du projet et source le script de paramètres.
la source
cd
et il existe sans aucun doute une meilleure solution. Même utiliser $ PROMPT_COMMAND, c'est mieux!if [ -z $MYSETTINGS ] ; then export MYSETTINGS=1 ; echo your settings here ; fi
. C'est pour éviter les problèmes si vous faites quelque chose comme PATH = / mytools / bin: $ PATH comme type d'initialisation.direnv pourrait être ce que vous recherchez.
Voici un exemple tiré de la documentation officielle:
la source