这个睡眠时间用管子需要多长时间

这个睡眠时间用管子需要多长时间

我试图更好地理解管道。如果在命令行中输入以下过程需要多长时间?睡眠 30 |睡眠 40

我想如果他们同时跑的话40秒?

答案1

$ time $(sleep 30 | sleep 40)

real    0m40.004s
user    0m0.001s
sys 0m0.003s

是的。我相信管道在命令启动后立即启动并进行输出和输入操作。因此需要尽可能长的时间来完成命令。

还 ,您无法预测管道运行的时间.这完全取决于系统CPU在该特定时间点的I/O能力。

$ cat file
test

$ time grep test file
test

real    0m0.005s
user    0m0.000s
sys 0m0.003s

$ time grep test file | grep test
test

real    0m0.004s
user    0m0.002s
sys 0m0.002s

答案2

管道的中断部分同时发生,它们彼此独立执行(除非发生了一些 IO,而在您的情况下没有发生)。

您的流程将只需要sleep您发出的最长的时间。在你的情况下,40 秒。

斯大林·维涅什·库马尔(Stalin Vignesh Kumar)向您展示了示例并进行了详细阐述。

相关内容