Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
host1$ ssh host2 cmd1 | cmd2
cmd2 会在 host1 还是 host2 上运行?
例如:
host1$ ssh host2 ls -1 / | wc -l
在这个例子中,会wc -l在 host1 或 host2 上运行,为什么?
wc -l
它将在本地主机上运行,因为 shell 会识别 '|' 在调用 ssh 之前作为管道。
使用 'echo $HOSTNAME' 作为 cmd2,它会清楚地给你正确的答案
它将在 host2 上运行,因为管道结束了第一个命令。要让 cmd2 在 host1 上运行,请转义管道:
主机 1$ SSH 主机 2 cmd1 \| 命令2