如何在 bash -c 命令中使用 globbing for 循环?

如何在 bash -c 命令中使用 globbing for 循环?

我正在尝试在其中运行一个 for 循环,bash -c以便我可以计时。这段代码每次都写23。我怎样才能让它迭代数字?

time bash -c "for i in {0..23}; do echo $i & done"

该代码有效,但我需要计算整个操作的时间:

for i in {0..23}; do echo $i & done

echo命令只是为了简单起见。我真的很想运行dd,这就是为什么我用 & 将进程置于后台

答案1

有两个问题。

time bash -c "for i in {0..23}; do echo $i & done"

无法按您的预期工作,因为$i会立即扩展;你需要使用单引号:

time bash -c 'for i in {0..23}; do echo $i & done'

time等待所有后台作业,您可以使用wait

time bash -c 'for i in {0..23}; do sleep $i & done; wait'

这会导致 shell 等待所有作业完成,从而time测量所有操作所花费的时间。

相关内容