我想象时间A | B 只会测量运行 A 所花费的时间(因为时间参数是 A)。解决办法是什么?
答案1
取决于外壳。例如Bash 有一个关键字time
那是整个管道的时间。外部实现time
只会A
在您的示例中出现。解决方法可能是显式运行额外的 shell:
time sh -c "A | B"
答案2
您还可以使用子外壳,例如
time ( A | B )
至少什么时候time
bash 是内置的(但是子 shell 就没用了)。如果您想使用时间(1)命令(参见这)你最好明确地运行一些sh -c
像iikachu 回答了