端末から入力を取得するために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

masterPS:2つのエイリアス(1つはfor、もう1つは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
}

おすすめ記事