Dd
將數組放入並行 bash 腳本
我在理解並行程序時遇到了一些困難。Atm 我正在嘗試大規模擦除硬碟驅動器,因此創建了一個腳本,但它不會並行執行。
for i in "${!wipe[@]}"; do dd if=/dev/zero of=/dev/${wipe[$i]} & wait
dd 將磁碟歸零,但它一個接一個地執行此操作,因此在執行 8 個磁碟時,可能非常耗時。謝謝
給定的腳本根本不應該執行,因為您缺少
done
for 循環。這一定是摘錄,而您遺漏了重要部分。假設缺少
done
的是在這個片段之後,等待是在 for 循環內,所以你dd
在後台啟動它,然後wait
讓它在進入下一次迭代之前完成。基本上,您的縮進與顯示的程式碼不匹配,這不是 python。與 python 不同,bash 忽略縮進。我確定縮進與您想要的匹配,但是如果沒有
done
等待之前的 that 就沒有意義了。