代码之家  ›  专栏  ›  技术社区  ›  Owen

tee命令是否总是等待EOF?

  •  4
  • Owen  · 技术社区  · 17 年前

    stdout 以及一个日志文件。我已经安装了Cygwin,我正在尝试使用 tee

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

    问题是 stdout 记录日志,以便轻松查看构建进度。

    球座 的选项似乎仅限于 --append , --ignore-interrupts , --help --version . 那么,有没有其他方法来实现我的目标呢?

    3 回复  |  直到 17 年前
        1
  •  4
  •   Sam Reynolds    17 年前

    您可以输出到文件,并跟踪文件。

    devenv mysolution.sln/build myproject“Release | Win32”>build.log&

        2
  •  2
  •   C. K. Young    17 年前

    $| )设置已打开,因此看到的每一条线都会被直接刷新。这也许是真实的 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

        3
  •  2
  •   jon    17 年前

    tee似乎坚持要等 到标准输出或日志文件。

    这绝对不应该发生——这将使tee几乎毫无用处。这是我写的一个简单的测试,它将测试这个,它肯定不会等待eof。

    $ cat test
    #!/bin/sh
    echo "hello"
    sleep 5
    echo "goodbye"
    
    $ ./test | tee test.log
    hello
    <pause>
    goodbye