即使对于一个命令,也可以立即使用开球命令

我是使用tee命令的新手。

我试图运行一个需要很长时间才能完成的程序,但是它会在进程中打印出信息。 我正在使用“tee”将输出保存到文件以及在shell( bash )中查看输出。

但是,问题是tee不会将输出转发到shell直到我的命令结束。 有没有办法做到这一点?

我正在使用Debian和bash

这实际上取决于输出的数量和执行你正在运行的任何命令。 任何程序都不得不将任何东西直接打印到stdoutstderr并且一直刷新它。 因此,尽管大多数C运行库实现在使用其中一个运行时例程(如printf )写入一定数量的数据之后进行刷新,但根据实现情况,这可能并非如此。

它不会马上输出,它可能只是在你的命令运行结束时才接收输入。 提到它的确切命令可能会有所帮助。

你遇到的问题很可能与缓冲有关。 你可以看看stdbuf命令,它执行以下操作:

stdbuf – 运行COMMAND,修改标准流的缓冲操作。

如果你张贴你的用法,我可以给出一个更好的答案,但事实如此

 (for i in `seq 10`; do echo $i; sleep 1s; done) | tee ./tmp 

正确使用T恤命令,似乎工作。 用你的命令替换管道前的部分,你应该很好走。