警告:这个问题不是关于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
。所以我可以做git push 2>&1 | tail -3 | command_to_eval_given_string
答案 0 :(得分:2)
只需管道bash
本身:
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 :(得分:1)
您可以将管道换成命令替换并eval
,而不是管道到另一个命令。这将在您当前的shell会话中执行该命令。例如:
eval "$(printf 'some output 1\nsome output 2\necho execute me'| tail -1)";
## execute me