터미널에서 입력을 얻기 위해 bash 별칭을 수정하는 방법은 무엇입니까?

터미널에서 입력을 얻기 위해 bash 별칭을 수정하는 방법은 무엇입니까?

내 별칭은 다음과 .bashrc같습니다.

#Custom aliases
alias gta="git add -A"
alias gtc="git commit -m 'Added files' "

명령을 실행하는 새 별칭을 만들고 싶습니다 git push origin <branch name>. 이전에는 항상 로 설정되어 있었기 때문에 쉬웠습니다 git push origin master.

하지만 이제 GitHub에서는 2020년 10월 이후 생성된 모든 리포지토리에 적용 master되도록 변경했습니다 . main이제 내가 원하는 것은 별칭을 설정하고 싶고 또는 를 gtp사용하라는 메시지를 표시하는 것입니다 . 선택에 따라 적절한 명령이 실행되기를 원합니다.mainmaster

master추신: 2개의 별칭(하나는 for 이고 다른 하나는 for ) 을 만들 수 있다는 것을 알고 있습니다. main그런데 그냥 궁금해서 위의 문제를 해결하는 방법은 무엇입니까?

답변1

다음에서 이 작업을 수행할 수 있습니다 .bashrc.

alias gtp=f

f() {
  arg="$1"
  if [[ -z "$arg" ]] || [[ "$arg" != main && "$arg" != master ]]; then
    echo "Bad argument"
  else
    git push origin "$arg"
  fi
}

그 다음에

~$ . .bashrc
$ gtp
Bad argument

$ gtp foo
Bad argument

$ gtp main
<git doing it's thing>

$ gtp master
<git doing it's thing>

또는@Kusalananda의 제안

f() {
    arg="$1"

    case $arg in
        main|master)
            git push origin "$arg"
            ;;
        *)
            echo error >&2
    esac
}

관련 정보