O que há de errado com o comando tee?

0

Estou executando o seguinte comando python script piped to 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)

Digamos que eu tenha armazenado isso em file.py

Agora, se eu executar:

./file.py | tee somefile

Agora pressione Ctrl+C , observe que nada é impresso no somefile e stdout

Em execução normal:

./file.py

Após Ctrl+C :

 hello
 hello
 ^CKey board Interrupt

Além disso, o redirecionamento de arquivos está funcionando bem. O que há de errado com tee

    
por Ramana Reddy 11.02.2016 / 07:40

1 resposta

2

Nada está errado com tee . Os buffers do Python saem quando detectam que não estão gravando em um TTY. Veja este Unix & amp; Postagem no Linux . Use sys.stdout.flush() para forçar a liberação do buffer.

    
por muru 11.02.2016 / 09:17