Ich möchte die Funktionalität des cdBefehls gemäß meinen Anforderungen anpassen .
Ich habe die folgende Funktion definiert -
function cd () { cd "$@" && pushd "$@"; }
Mit dieser Funktion soll das Verzeichnis automatisch auf den Stapel verschoben werden, damit ich nicht pushd .jedes Mal manuell tippen muss.
Die obige Funktion ist jedoch eine unendlich rekursive Funktion, da der Aufruf cdvon als die Funktion selbst und nicht als die cdeingebaute interpretiert wird .
Wie beziehe ich mich auf die cdin dieser Funktion eingebaute?
Ich weiß, dass Aliase mit entkommen werden können \. Wie können Funktionen oder Referenz-Built-Ins expliziter umgangen werden?
Hinweis: Ich möchte meine Funktion nicht in eine andere Funktion umbenennen.
pushdunterstützt nicht -P. Aber du hast recht, wie in der Frage gezeigt function cdsieht das ein bisschen falsch aus, da es das Verzeichnis zweimal gewechselt hat.
alias cd=pushd? Was erwarten Sie, wenn Sie zu etwas wechseln, das kein absoluter Pfad ist (z. B.cd ../)?