Um builtin Befehle zu verwenden, aus Funktionen mit dem gleichen Namen, oder anderswo für diese Angelegenheit, können Sie das builtin
precommand Modifikator:
function cd() {
builtin cd $1
ls .
}
builtin COMMAND
zsh sagt die builtin zu verwenden, um mit der Name COMMAND
anstelle eines Alias, einer Funktion oder eines externen Befehls desselben Namens. Wenn ein solches Built-in nicht existiert, wird eine Fehlermeldung ausgegeben. , Builtin oder Funktion mit dem gleichen Namen
Für Fälle, in denen Sie einen externen Befehl statt eines Alias verwenden möchten, können Sie den command
precommand Modifikator. Zum Beispiel:
command echo foobar
Dies wird die binären echo
(höchstwahrscheinlich /bin/echo
) anstelle von zsh der builtin echo
.
Im Gegensatz zu Funktionen builtin
und command
sind in der Regel nicht notwendig, mit Aliase Rekursion zu verhindern. Während es möglich ist, einen Alias in einer Alias-Definition zu verwenden, wird jeder Alias-Name nur einmal expandiert. Beim zweiten Vorkommen wird der Alias nicht erweitert und eine Funktion, ein eingebauter oder externer Befehl wird verwendet.
% alias echo="echo echo:"
% echo foobar
echo: foobar
% alias xx="yy x:"
% alias yy="xx y:"
% xx foobar
zsh: command not found: xx
Natürlich können Sie immer noch builtin
oder command
in Aliasnamen verwenden, wenn Sie die Verwendung eines anderen Alias verhindern wollen, oder wenn Sie speziell einen eingebauten oder externen Befehl verwenden möchten. Zum Beispiel:
alias echo="command echo"
Mit diesen binären echo
wird anstelle der builtin verwendet werden.