最近、UbuntuからOS Xに移行しましたが、「tail」コマンドの動作が異なることがわかりました。
Ubuntuで実行できます
tail -f xyzzy.log | espeak
(たとえば、コンピューターにIRCで何が起こっているかを読み取らせるため。)
ただし、OSXでは
tail -F xyzzy.log | say
(私は同等だと思っていました)結果は得られません。
おそらくこれは、パイプがテールの完全な出力を送信したいためですが、テールは常に(-fを使用して)実行されているため、プロセスの最後に到達することはなく、出力が渡されることはありません。正直なところ、私がこの権利を理解している場合、この動作は、Ubuntuでの動作よりも理にかなっています。
それで、私が同じ結果を達成することができる別の方法はありますか? (そして、なぜこれが正しいのかについての私の推測は正しいですか?)
https://Apple.stackexchange.com/questions/9673/how-to-correctly-pipe-output-into-say-in-terminal を参照してください。
tail -f xyzzy.log | while read line ; do echo $line | say ; done