tee 命令有什么问题?

tee 命令有什么问题?

我正在运行以下python脚本pipedtee命令

#!/usr/bin/python

from sys import exit,exc_info
from time import sleep

try:
    print "hello"
    #raise KeyboardInterrupt
    while True:
        print "hello"
        sleep(1)

except KeyboardInterrupt:
    print "Key board Interrupt"
    exit(0)

假设我将其存储在file.py

现在如果我执行:

./file.py | tee somefile

现在按下Ctrl+C,观察没有打印任何内容到somefilestdout

正常执行下:

./file.py

之上Ctrl+C

 hello
 hello
 ^CKey board Interrupt

文件重定向也工作正常。tee

答案1

没什么问题tee。如果 Python 检测到它没有写入 TTY,它会缓冲输出。请参阅这篇 Unix 和 Linux 文章. 用于sys.stdout.flush()强制刷新缓冲区。

答案2

您也可以使用这种方法:

python -u file.py | tee somefile

这个问题提到堆栈溢出

相关内容