Does the tee command always wait for EOF?

command-line, cygwin

Solution

tee seems to insist on waiting for the end of file before outputting anything to either stdout or the log file.

This should definitely not be happening - it would render tee nearly useless. Here's a simple test that I wrote that puts this to the test, and it's definitely not waiting for eof.

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

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

Problem

I'd like to log the output of a command to `stdout` as well as to a log file. I've got Cygwin installed and I'm trying to use the `tee` command to accomplish this. ``` devenv mysolution.sln /build myproject "Release|Win32" | tee build.log ``` Trouble is that `tee` seems to insist on waiting for the end of file before outputting anything to either `stdout` or the log file. This takes away the point of it all, which is to have a log file for future reference, but also some `stdout` logging so I can easily see the build progress. `tee`'s options appear to be limited to `--append`, `--ignore-interrupts`, `--help`, and `--version`. So is there another method to get to what I'm trying to do?

Original source