bash -c
時間を測定できるようにforループを実行しようとしています。このコードは毎回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
2つの質問があります。
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'
これにより、シェルはすべてのジョブが完了するのを待ち、すべてのジョブtime
に費やされる時間を測定します。