Я пытаюсь использовать tail -f и проигрывать звук каждый раз, когда появляется новая строка.

Я попробовал это:

for i in tail -f myFile; do aplay alert.wav; done;

Какой из них работал, вывод:

Playing WAVE 'alert.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono
Playing WAVE 'alert.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono
Playing WAVE 'alert.wav' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono

Но через 3 раза он останавливается, и я хотел бы напечатать результат tail -f, а не результат aplay.

Как я мог этого добиться?

1 ответ1

2

Я не на Linux сейчас, но он должен работать так:

tail -f yourFile | while read line ; do aplay alert.wav 2>&1 1>/dev/null ; echo $line ; done

В Mac OS X я успешно использую следующее для печати системного журнала:

tail -f /private/var/log/system.log | while read line; do printf "\a" ; echo $line ; done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .