Coisas como command
ou sudo
não se aplicam magicamente ao restante da linha. (Somente #
comentários e time
incorporados têm essa mágica.)
Ou seja, se você usar command clear && git diff
, ele será primeiro expandido para dois comandos separados: command clear
(onde o prefixo "command" é inútil) e git diff
(onde for necessário).
A função correta seria:
git() {
if [[ $1 == "diff" ]]; then
clear && command git "$@"
else
command git "$@"
fi
}
Alternativamente:
git() {
if [[ $1 == diff ]]; then
clear
fi
command git "$@"
}
(Use "$@"
em ambos os casos, pois você poderá precisar de git diff --cached
ou algo assim.)