Dinge, die sich auf den Rest der Linie beziehen command
oder sudo
nicht, sind magisch. (Nur #
Kommentare und das time
Builtin haben solche Magie.)
Das heißt, wenn Sie es verwenden command clear && git diff
, wird es zunächst auf zwei separate Befehle erweitert: command clear
(wobei das Präfix "Befehl" nicht verwendet wird) und git diff
(wo es benötigt wird).
Die korrekte Funktion wäre:
git() { if [[ $1 == "diff" ]]; then clear && command git "$@" else command git "$@" fi }
Alternative:
git() { if [[ $1 == diff ]]; then clear fi command git "$@" }
(Verwenden Sie "$@"
in beiden Fällen, wie Sie es vielleicht eines Tages brauchen git diff --cached
oder so.)