终端模拟器因带有嵌套 case 语句的函数而崩溃?

终端模拟器因带有嵌套 case 语句的函数而崩溃?

该功能的主要目的是:

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

如果可能的话。由于不可能给带有空格的东西起别名,所以我选择编写一个 shell 函数:

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

但是,每当我运行此命令时,终端模拟器都会在约 1 秒后崩溃。

这可能是什么原因?

我正在使用 mintty 和 Cygwin。

答案1

您正在递归调用git该函数。用于command git内部调用,以便不使用该函数。

相关内容