我正在运行以下python
脚本piped
来tee
命令
#!/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
,观察没有打印任何内容到somefile
和stdout
正常执行下:
./file.py
之上Ctrl+C
:
hello
hello
^CKey board Interrupt
文件重定向也工作正常。tee
答案1
没什么问题tee
。如果 Python 检测到它没有写入 TTY,它会缓冲输出。请参阅这篇 Unix 和 Linux 文章. 用于sys.stdout.flush()
强制刷新缓冲区。