是否tee命令总是等待EOF?

我想一个命令的输出记录到stdout ,以及一个日志文件。 我已经安装了Cygwin和我试图用tee命令来做到这一点。

devenv mysolution.sln /build myproject "Release|Win32" | tee build.log

麻烦的是tee ,似乎坚持输出任何东西要么之前等待文件的末尾stdout或日志文件。 这带走了点的这一切,这是对未来的参考的日志文件,但也有一些stdout日志记录,所以我可以很容易地看到构建进度。

tee的选项出现在限于--append --ignore-interrupts --help--version 那么,有没有其他方法去我想要做什么?

--------------解决方案-------------

三通似乎坚持输出任何东西要么stdout或日志文件之前等待文件的末尾。

这绝不应该发生的事情 - 它将使发球几乎无用。 这里有一个简单的测试,我写道,把这个测试,而且它绝对不是等着EOF。

$ cat test
#!/bin/sh
echo "hello"
sleep 5
echo "goodbye"

$ ./test | tee test.log
hello
<pause>
goodbye

可以输出到文件和尾部-f该文件。

devenv的mysolution.sln /编译MyProject的“发布| Win32的”> build.log&

尾-f build.log

自己写的! (这里的关键是,自动冲洗$|设置为打开,所以每看到被刷新直线距离行这也许是有什么真正的。 tee命令所缺乏的。)

#!/usr/bin/perl -w
use strict;
use IO::File;
$| = 1;
my @fhs = map IO::File->new(">$_"), @ARGV;
while (my $line = <STDIN>) {
print $line;
$_->print($line) for @fhs;
}
$_->close for @fhs;

你可以打电话给你想要的脚本什么。 我把它称为perlmilktee :-P

分类:命令行 时间:2015-03-15 人气:2
本文关键词: 命令行,cygwin的
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.452 (s). 10 q(s)