あるコマンドの出力を別のコマンドの引数に渡す方法

あるコマンドの出力を別のコマンドの引数に渡す方法

似たような質問をした方がいますが、初心者なので文脈上のUnix回答がはっきりしません。私が望むのは、あるコマンドの出力を別のコマンドにパラメータとして渡すことです。私はソース管理にgitを使用し、3つの異なるブランチで作業します。

コミットする必要があるたびにブランチを確認し、適切なコマンドを発行する必要があります。

git pull --rebase origin <branch-name>

git-rebaseまず実行するだけですので、エイリアスを作成したいと思いますgit branch

gitブランチの出力は次のとおりです

experiment
*master
new feature

したがって、マスターブランチに加えて2つのブランチがある場合は、すべてのブランチが表示され、現在のブランチはアスタリスクで表示されます。アスタリスクで示された行を抽出し、その出力を上記のコマンドに渡したいと思います。

また、コマンドの出力を抑制したいと思いますgit branch。私がこれをしたのは、完全なコマンドを入力するにはあまりにも怠惰ではなく、Unix bashの強力な機能についてもっと学びたかったからです。それから何かを学ぶことを願っています。

ベストアンサー1

git branchまず、出力を使用可能な形式に変換する必要があります。

$ git branch
  experiment
* master
  new feature

$ git branch | awk '/^\* / { print $2 }'
master

これでパラメータとして使用したいと思います。

$ git pull --rebase origin $(git branch | awk '/^\* / { print $2 }')

(またはpsusiの答えのようにバックティックを使用することもできます)。

これしなければならない大丈夫です。 awkコマンドは常に正確に1行に一致する必要があり、ブランチ名にスペースを含めることはできません。より複雑な場合は、関数(またはスクリプト)でラップして中間値の完全なチェックを実行できます。

おすすめ記事