“host1 $ ssh host2 cmd1 | cmd2”哪个主机将运行cmd2?

时间:2013-01-18 02:39:48

标签: linux bash ssh

host1$ ssh host2 cmd1 | cmd2

cmd2会在host1或host2上运行吗?

例如:

host1$ ssh host2 ls -1 / | wc -l

在此示例中,wc -l将在host1或host2上运行,为什么?

3 个答案:

答案 0 :(得分:1)

它将在本地主机上运行,​​因为shell将识别“|”在调用ssh之前作为管道。

答案 1 :(得分:0)

使用'echo $ HOSTNAME'作为cmd2,它会清楚地给出正确答案

答案 2 :(得分:-1)

它将在host2上运行,因为管道结束了第一个命令。要在host1上运行cmd2,请转义管道:

host1 $ ssh host2 cmd1 \ | CMD2