我怎样才能发送 ssh 脚本的输出?

How can I tee the output of an ssh script?

我想将 shell SSH 脚本的输出捕获到一个文件中,同时将其保存在标准输出中。我知道我可以使用 tee,但在这种情况下它似乎无法正常工作。

示例,

#!/bin/sh

ssh user@host | tee /tmp/a << EOF
echo hi
EOF

我希望 hi/tmp/a 中,但看起来 ssh 永远等待输入。

如果我将 ssh 替换为 cat,它会像我预期的那样工作

#!/bin/sh

cat | tee /tmp/a << EOF
hi
EOF

Output: hi

$ cat /tmp/a
hi

这里的sshcat有什么区别?

您可以使用:

ssh user@host << EOF | tee /tmp/a
echo hi
EOF