Linux 如何在文件中发送ssh命令的标准输出?

Linux 如何在文件中发送ssh命令的标准输出?,linux,bash,shell,ssh,Linux,Bash,Shell,Ssh,我想将ssh命令的stdout输出发送到一个文件中,但是当我读取该文件时,它仍然是空的 # ssh -o "BatchMode=yes" -o "ConnectTimeout=5" admin@10.10.10.10 > /var/tmp/.result.txt ssh: connect to host 10.10.10.10 port 22: Connection timed out # cat /var/tmp/.result.txt # 如何做到这一点?谢谢。如果您想将常规标准输出

我想将ssh命令的stdout输出发送到一个文件中,但是当我读取该文件时,它仍然是空的

# ssh -o "BatchMode=yes" -o "ConnectTimeout=5" admin@10.10.10.10 > /var/tmp/.result.txt
ssh: connect to host 10.10.10.10 port 22: Connection timed out
# cat /var/tmp/.result.txt
#

如何做到这一点?谢谢。

如果您想将常规标准输出传递给文件,您的命令会这样做。 您的问题是您遇到了一个错误;这是打印到stderr的。要通过stderr,需要将其添加到命令中

ssh -o "BatchMode=yes" -o "ConnectTimeout=5" admin@10.10.10.10 > /var/tmp/.result.txt 2>1&

这告诉bash将输出重定向到.results.txt,然后将stderr重定向到stdout,这样它们都会打印到文件中。它重用标准输出使用的文件描述符。

您的连接失败,您看到的是错误输出。你想让它重定向什么输出?哎呀,你的回答让我意识到我必须发送stderr!实际上,我想在我的文件中发送错误输出…:)Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许是或者会是一个更好的提问的地方。@jww这个命令很可能是shell脚本的一部分,所以我看不出它是如何离题的。@arco444-如本文所述,它只是另一个问题,要求对一个不相关的命令提供帮助。有更多适合这些问题的网站。我也知道“在脚本中”的诀窍,试图让他们回到主题上来。除非提供真实脚本的代码,否则我通常不会动摇。