我怎样才能发送 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
这里的ssh
和cat
有什么区别?
您可以使用:
ssh user@host << EOF | tee /tmp/a
echo hi
EOF
我想将 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
这里的ssh
和cat
有什么区别?
您可以使用:
ssh user@host << EOF | tee /tmp/a
echo hi
EOF