터미널 에뮬레이터가 중첩된 사례 문이 있는 함수와 충돌합니까?

터미널 에뮬레이터가 중첩된 사례 문이 있는 함수와 충돌합니까?

이 기능의 주요 목적은 다음과 같습니다.

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으로 해당 기능을 사용하지 않습니다.

관련 정보