如何管道睡眠?睡眠管道不起作用

如何管道睡眠?睡眠管道不起作用

我想模拟某些脚本的执行时间,我发现这些脚本sleep NUMBER正是我想要的。
在我的场景中我需要类似的东西

sleep 5 | command | sleep 5 ...

但它的行为很奇怪,所以我单独测试了sleeps,令我惊讶的是
这需要 10 秒sleep 10 | sleep 5
并且这也需要 10 秒 sleep 5 | sleep 10

我什至尝试过sleep 1 | sleep,以防睡眠正在监听标准输入 stdin

我唯一工作的是当我在寻找如何强制 stdout 作为参数时(使用xargs

sleep 3; echo 3 | xargs sleep; echo "finished"

但由于我需要计算整个执行的时间,所以我必须这样做

time -p (sleep 3; echo 3) | (xargs sleep; echo "finished")

锄头管睡觉?如果有更好的方法,我仍然想知道为什么sleep 1 | sleep 1不首先工作?

答案1

我想你想和;而不是分开|

sleep 10; echo hi; sleep 5

这将等待 10 秒,echo hi,等待 5 秒,然后退出。

我认为我们很多人都感到困惑为什么要通过管道传输 sleep 的输出(它实际上没有有意义的输出)。说实话,虽然有可能,但我从来没有想过要睡觉。

;是串行运行命令的语法。

相关内容