我正在尝试在其中运行一个 for 循环,bash -c
以便我可以计时。此代码每次写入 23。我怎样才能让它遍历数字?
time bash -c "for i in {0..23}; do echo $i & done"
Run Code Online (Sandbox Code Playgroud)
此代码有效,但我需要对整个操作计时:
for i in {0..23}; do echo $i & done
Run Code Online (Sandbox Code Playgroud)
该echo
命令只是为了简单起见。我真的很想跑dd
,这就是为什么我用 &
有两个问题。
time bash -c "for i in {0..23}; do echo $i & done"
Run Code Online (Sandbox Code Playgroud)
没有按预期工作,因为$i
它会立即扩展;你需要使用单引号:
time bash -c 'for i in {0..23}; do echo $i & done'
Run Code Online (Sandbox Code Playgroud)
要time
等待所有后台作业,您可以使用wait
:
time bash -c 'for i in {0..23}; do sleep $i & done; wait'
Run Code Online (Sandbox Code Playgroud)
这会导致 shell 等待其所有作业完成,从而time
测量所有操作所花费的时间。