bash将输出重定向到文件但结果不完整

时间:2016-11-24 14:20:26

标签: linux bash redirect

重定向命令输出的问题已被多次询问,但我有一个奇怪的行为。我正在使用带有版本的bash shell(debian) 4.3.30(1) - 发布并尝试将输出重定向到文件,但并不是所有内容都记录在文件中。 我尝试运行的bin文件是用于linux的sauce-connectv4.4.1(在互联网上公开提供的saucelabs客户端)

如果我跑

#sudo ./bin/sc --doctor
它向我展示了一条完整的路线
它打印:

  

INFO:已解决为'23 .42.27.27'   
INFO:使用解析'g2.symcb.com'   
DNS服务器'10 .0.0.5'......   (其次是其他行)   
信息:'google.com'不在hosts文件中   
信息:可以到达网址https://google.com

但是,如果我使用以下命令将相同的命令重定向到文件

#sudo ./bin/sc --doctor > alloutput.txt 2>&1

并做

#cat alloutput.txt

记录相同的命令输出,但不推荐如下:

  

INFO:已解决为'23 .42.2me @ mymachine:/ opt / $

它有不完整的行,后面的下一行甚至没有记录(丢失)。

我尝试使用>>为了追加,它有同样的问题。使用命令&> alloutput.txt也不打印整个东西。任何人都可以指出如何将上述命令的所有行完全记录到文本文件中吗?

更新

  

最后,我设法使用--log来使用本机二进制日志记录   alloutput.txt它完全为我提供了正确的输出。   但是我打开这个问题因为我仍然想知道为什么通过输出重定向错过了一些信息/行

2 个答案:

答案 0 :(得分:0)

这是一个有趣的问题,我以前从未见过这种情况。我将在这里发表意见并提出建议,看看它是如何运作的:

 sudo ./bin/sc --doctor 2>&1 | tee -a alloutput.txt

答案 1 :(得分:-1)

#commandtorun &> alloutput.txt

此命令会将错误和输出重定向到同一文件。