我正在尝试在其中运行一个 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
测量所有操作所花费的时间。