如何使shell脚本无阻塞?

时间:2013-12-04 02:59:17

标签: shell pipe sh blocking

一个简单的问题: 为什么遵循单线性不工作?如何使IO不阻塞?

$ while true; do date; sleep 1; done | tail -f

2 个答案:

答案 0 :(得分:2)

问题不在于非阻塞IO;这是您选择的tail

这会用冒号(所有这些)打印出每一行:

while true; do date; sleep 1; done | grep :

tail的问题在于它会转到最后10行然后开始跟随。但在你的情况下,它永远不会到达终点,因此无法打印最后十个。

答案 1 :(得分:1)

如果你想要做的是不断用你可以做到的日期替换最后一行:

while true; do echo -en "\r"`date`; sleep 1; done