Gibt es eine ordnerspezifische .bashrc- oder .bash_profile-Datei?

Gibt es eine ordnerspezifische .bashrc- oder .bash_profile-Datei?

Ist es möglich, ein Bash-Skript (im Grunde wie ein .bashrcoder .bash_profile) zu haben, das nur beim Wechseln in einen bestimmten Ordner ausgeführt wird?

Antwort1

Fügen Sie dies zu Ihrem hinzu ~/.bashrc.

Wenn .bashrces sich im aktuellen Arbeitsverzeichnis befindet:

PROMPT_COMMAND='if [[ "$bashrc" != "$PWD" && "$PWD" != "$HOME" && -e .bashrc ]]; then bashrc="$PWD"; . .bashrc; fi'

Antwort2

Abhängig von Ihrem genauen Anwendungsfall und Ihren Einschränkungen,ondirkönnte Ihren Bedürfnissen entsprechen:

ondir ist ein kleines Programm zum Automatisieren von Aufgaben, die bestimmte Verzeichnisse betreffen. Es funktioniert, indem es Skripte in Verzeichnissen ausführt, wenn Sie diese betreten und verlassen.

Dies geschieht durch die Verwendung einer zentralen ~/.ondirrcDatei für die Konfiguration pro Verzeichnis. Im Gegensatz dazu PROMPT_COMMAND ermöglicht das clevere Setup, das @Cyrus vorgeschlagen hat, dass die Konfiguration in den einzelnen Verzeichnissen selbst gespeichert wird. Jeder Ansatz ist gültig; es hängt von den Einschränkungen und Daten ab, mit denen Sie arbeiten.

Haftungsausschluss:Ich habe es nie ondirpersönlich verwendet. Ich bin darauf gestoßen, als ich nach einer automatischen Methode gesucht habe, umGit-Benutzerkonfiguration pro Verzeichnis. In diesem Fall ondirhat es nicht meinen Anforderungen entsprochen – ich habe schließlich einen Git-Alias ​​verwendet, --configder Optionen an übergibt git clone.

Antwort3

Ergänzung zur Antwort von @Cyrus: Wenn Sie verwenden zsh, müssen Sie Folgendes verwenden precmd():

PROMPT_COMMAND='if [[ "$profile" != "$PWD" && "$PWD" != "$HOME" && -e .profile ]]; then profile="$PWD"; source .profile; fi'
precmd() { eval "$PROMPT_COMMAND" }

Es wird beantwortet vondiese Antwort

Anmerkung: meine prompten Tests für .profilenicht .bashrc.

verwandte Informationen