ターミナルエミュレータがネストされたケースステートメントを持つ関数と競合していますか?

ターミナルエミュレータがネストされたケースステートメントを持つ関数と競合していますか?

この機能の主な目的は次のとおりです。

alias "git log"="git log --name-status"

可能であれば。スペースでエイリアスを指定することは不可能なので、シェル関数を作成することにしました。

git() {
        case $# in
        1)
                case "$1" in
                log)
                        git log --name-status
                ;;
                *)
                        git "$@"
                ;;
                esac
        ;;
        *)
                git "$@"
        ;;
        esac
}

ただし、このコマンドを実行するたびに約1秒後にターミナルエミュレータがクラッシュします。

その理由は何ですか?

私はminttyとCygwinを使っています。

答え1

git関数を再帰的に呼び出しています。内部呼び出しcommand gitにはその機能を使用しません。

関連情報