Como canalizar a saída de tail -F no OS X?

Como canalizar a saída de tail -F no OS X?

Recentemente mudei do Ubuntu para o OS X e descobri que o comando 'tail' se comporta de maneira diferente.

No Ubuntu eu poderia rodar

tail -f xyzzy.log | espeak

(Para que o computador me leia o que está acontecendo no IRC, por exemplo.)

No entanto, no OS X

tail -F xyzzy.log | say

(que eu esperava ser equivalente) não produz resultado.

Presumivelmente, isso ocorre porque o pipe deseja enviar a saída completa de tail para dizer, mas como tail está sendo executado constantemente (com -f), ele nunca chega ao final do processo e, portanto, a saída nunca é passada para dizer. Honestamente, se entendi direito, esse comportamento faz mais sentido do que o comportamento que tive no Ubuntu - é apenas menos útil.

Então, há outra maneira de obter o mesmo resultado? (E minhas suposições sobre por que isso está acontecendo estão corretas?)

Responder1

Verhttps://apple.stackexchange.com/questions/9673/how-to-correctly-pipe-output-into-say-in-terminalo que sugere

 tail -f xyzzy.log | while read line ; do echo $line | say ; done

informação relacionada