
Ist es möglich, das Skript so einzustellen, dass es in einem bestimmten Verzeichnis ausgeführt wird, wenn Sie cd
es aufrufen?
Wenn es sich beispielsweise /foo
um ein Verzeichnis mit git
einem Projekt handelt, ist es möglich, dass es cd /foo
automatisch ausgeführt wird git status
oder bestimmte npm
Skripte?
Bitte verlinken Sie die Antwort nicht ausschließlich mit git
, es könnte sich auch um jeden anderen Befehl/jedes andere Skript handeln.
Antwort1
Sie können es cd
durch eine Funktion ersetzen, die jede gewünschte Verarbeitung hinzufügt:
cd() {
builtin cd "$@"
# Do whatever you want here
}
Antwort2
Ich verwende etwas Ähnliches wie die Antwort von Stephen Kitt in meinem .bashrc
:
function cd() {
command cd "$@" || return
if [[ -d .git ]]
then
git status --short
else
ls -al
fi
}
Sie können je nach Bedarf zusätzliche Bedingungen erstellen, um unterschiedliche Dinge zu handhaben.
HINWEIS: Da wir den Verweis auf den Befehl überschreiben cd
, müssen Sie command cd
, builtin cd
, oder verwenden \cd
, um zu verhindern, dass die Funktion sich selbst aufruft und endlos rekursiert. Aus diesem Grund könnte es für manche sinnvoll sein, diese Funktion umzubenennen.
Antwort3
Sie können dies unter anderem über den folgenden alias
Befehl tun:
alias cdgit="cd /foo; git status"
Dann führen Sie aus cdgit
und gehen zum Verzeichnis /foo
und führen ausgit status