重定向命令输出的问题已被多次询问,但是我遇到了一个奇怪的行为。我正在使用版本为 的bash shell(debian)4.3.30(1) - 释放并试图将输出重定向到文件,但并非所有内容都记录在文件中。 我试图运行的bin文件是酱connectv4.4.1为Linux(saucelabs的客户端,在网上公开可用)bash将输出重定向到文件,但结果不完整
如果我运行
#sudo ./bin/sc --doctor
它向我展示了一个完整的生产线
它打印:
信息:解析到'23 .42.27.27'
INFO:解决 'g2.symcb.com' 使用 .0.0.5'DNS服务器'10 ...... (其次是其他线)
信息: 'google.com' 不在hosts文件
信息:URL https://google.com可以达到
但是,如果我重定向相同的命令到一个文件中使用下面的命令
#sudo ./bin/sc --doctor > alloutput.txt 2>&1
,做
#cat alloutput.txt
同一个命令输出记录,但反对如下:
信息:解析为'23 .42.2me @ mymachine上中:/ opt/$
它具有不完整的线,下一行是下面甚至没有记录(缺少)。
我试过用>>来追加,它有同样的问题。使用命令&> alloutput.txt也不是打印整个东西。任何人都可以指出如何让上述命令的所有行完全记录到文本文件中?
UPDATE
在我设法通过使用--log alloutput.txt它完全为我提供正确的输出使用本机二进制日志的结尾。 但我让这个问题的开放,我仍然不知道为什么一个做的输出重定向
'cat -v alloutput.txt'的输出是什么? – chepner
@chepner:cat -v alloutput的输出。txt与上述二进制文件执行并显示在控制台中的情况相同,但是缺少一些行(如段落中所述) – heike
另一个尝试:分别重定向标准错误和标准输出:'./bin/sc> out.txt 2> err.txt'。我怀疑输出CRLF行结尾的'。/ bin/sc'与stdout和stderr的非确定性混合相结合。 – chepner