2016-08-18 5 views
1

警告:この問題はgitの使用についてではなく、Linuxでのパイプの使用についてはgitコマンドの例として示しています。 git push別のコマンドの出力に与えられた行を実行してください

fatal: The current branch my_branch has no upstream branch. 
To push the current branch and set the remote as upstream, use 

    git push --set-upstream origin my_branch 

のように出力を有する

私はすなわちgit push --set-upstream origin my_branch、与えられたコマンドを実行します。

git push 2>&1 | tail -3を実行すると、git push --set-upstream origin my_branchが画面に表示されます。

質問:次のパイプに追加するコマンドは、git pushとなります。だから私はbashに自分自身をgit push 2>&1 | tail -3 | command_to_eval_given_string

+0

「tail-3」ではなく「tail-1」が必要です。これはちょうど最後の1行です。 – gilez

答えて

2

ジャストパイプを行うことができます:

git push ... | bash 

これは、それを実行することを、bashに前のパイプからの標準出力を送信します。

$ echo "echo 'hello'" | bash 
hello 
$ echo "uptime" | bash 
16:22:37 up 7:31, 3 users, load average: 0,03, 0,14, 0,23 
1

よりもむしろ別のコマンドにパイプするには、代わりにコマンド置換とevalその中にパイプラインをラップすることができます。現在のシェルセッションでコマンドが実行されます。例:

eval "$(printf 'some output 1\nsome output 2\necho execute me'| tail -1)"; 
## execute me 
関連する問題