並列bashスクリプトに配列を配置する

並列bashスクリプトに配列を配置する

並列プロセスを理解するのは困難です。 Atmハードドライブを一括削除しようとしてスクリプトを作成しましたが、並行して実行されません。

for i in "${!wipe[@]}"; do
       dd if=/dev/zero of=/dev/${wipe[$i]} &
wait 

ddはディスクをゼロに設定しますが、これを順番に実行するため、8つのディスクに対して実行すると時間がかかることがあります。ありがとう

ベストアンサー1

doneforループがないため、スクリプトはまったく実行しないでください。これは確かに抜粋された内容であり、重要な部分が欠落しています。

欠落がdoneフラグメントの後に発生すると仮定すると、待機はforループ内にあるため、ddバックグラウンドで開始してから次の反復にwait進む前に完了します。

デフォルトでは、インデントは表示されたコードと一致しません。これはPythonではありません。 Pythonとは異なり、bashはインデントを無視します。インデントが欲しいと確信していますが、done待つ前にインデントがなければ意味がありません。

おすすめ記事