Nic*_*wen 3 command-line pipe tail macos
我最近从 Ubuntu 转移到 OS X,我发现“tail”命令的行为有所不同。
在 Ubuntu 上我可以运行
tail -f xyzzy.log | espeak
Run Code Online (Sandbox Code Playgroud)
(例如,让计算机读取 IRC 上发生的事情。)
但是在 OS X 上
tail -F xyzzy.log | say
Run Code Online (Sandbox Code Playgroud)
(我希望它是等效的)不会产生任何结果。
大概这是因为管道想要发送 tail 的完整输出 to say,但由于 tail 不断运行(使用 -f),它永远不会到达进程的末尾,因此输出永远不会被传递给 say。老实说,如果我理解正确的话,这种行为比我在 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6608 次 |
| 最近记录: |