time
ist sowohl in zsh als auch in bash integriert. % Co_de% ist jedoch nur in zsh integriert. In bash, wenn Sie which
verwenden, wird which
ausgeführt, was keine Ahnung von Shell-Einbauten hat.
Also solltest du in der bash:
verwenden %Vor% Der Grund dafür, dass /usr/bin/which
nicht funktioniert, ist, dass die time -l ...
-Syntax das time
-Flag nicht enthält.
In beiden Fällen ist es nicht richtig zu sagen, dass -l
eine eingebaute Funktion ist. Ein "reserviertes Wort" oder "Shell-Schlüsselwort" zu nennen ist genauer, weil es für eine gesamte Pipeline gilt; Es kann nicht als Funktion oder externer Befehl implementiert werden. In diesem Sinne ähnelt es anderen syntaktischen Elementen wie time
und if
.
Eine andere Möglichkeit zu ermitteln, ob ein Befehl ein bash-Befehl ist, ist der Befehl help
builtin. Der Nebeneffekt besteht darin, Informationen über diesen Befehl (und die unterstützten Befehlszeilenargumente) zu erhalten.
Für nicht eingebaute Befehle sagt help
, dass es nichts davon weiß.
time ist eine eingebaute Funktion in zsh. Es ist nicht in der Bash. Wenn Sie die / usr / bin / time-Version verwenden möchten, müssen Sie den vollständigen Pfad angeben, wenn Sie zsh verwenden.
Es ist auch möglich, dieses Verhalten mit dem Befehl "disable -r" in zsh zu deaktivieren.
Tags und Links bash shell exec zsh executable