我希望将输出sd命令的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
#
怎么做?感谢。
答案 0 :(得分:0)
如果要将常规 stdout 传递给文件,则命令会执行此操作。 您的问题是出现错误;这打印到 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,这样它们都会打印到文件中。它重用了stdout使用的文件描述符。