Recientemente me mudé de Ubuntu a OS X y descubrí que el comando 'cola' se comporta de manera diferente.
En Ubuntu podría ejecutar
tail -f xyzzy.log | espeak
(Para que la computadora me lea lo que está sucediendo en IRC, por ejemplo).
Sin embargo, en OS X
tail -F xyzzy.log | say
(que esperaba que fuera equivalente) no produce ningún resultado.
Presumiblemente, esto se debe a que la tubería quiere enviar la salida completa de tail to say, pero como tail se ejecuta constantemente (con -f), nunca llega al final del proceso y, por lo tanto, la salida nunca pasa a say. Honestamente, si entiendo bien esto, este comportamiento tiene más sentido que el comportamiento que tenía en Ubuntu; simplemente es menos útil.
Entonces, ¿hay otra manera de lograr el mismo resultado? (¿Y son correctas mis suposiciones sobre por qué sucede esto?)
Respuesta1
Verhttps://apple.stackexchange.com/questions/9673/how-to-correctly-pipe-output-into-say-in-terminallo que sugiere
tail -f xyzzy.log | while read line ; do echo $line | say ; done