0
host1$ ssh host2 cmd1 | cmd2

cmd2 会在 host1 还是 host2 上运行?

例如:

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

在这个例子中,会wc -l在 host1 或 host2 上运行,为什么?

4

3 回答 3

1

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

于 2013-01-18T02:41:06.787 回答
0

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

于 2013-01-18T05:59:09.137 回答
-1

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

主机 1$ SSH 主机 2 cmd1 \| 命令2

于 2013-01-18T02:42:11.137 回答