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