Dd

將數組放入並行 bash 腳本

  • July 16, 2021

我在理解並行程序時遇到了一些困難。Atm 我正在嘗試大規模擦除硬碟驅動器,因此創建了一個腳本,但它不會並行執行。

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

dd 將磁碟歸零,但它一個接一個地執行此操作,因此在執行 8 個磁碟時,可能非常耗時。謝謝

給定的腳本根本不應該執行,因為您缺少donefor 循環。這一定是摘錄,而您遺漏了重要部分。

假設缺少done的是在這個片段之後,等待是在 for 循環內,所以你dd在後台啟動它,然後wait讓它在進入下一次迭代之前完成。

基本上,您的縮進與顯示的程式碼不匹配,這不是 python。與 python 不同,bash 忽略縮進。我確定縮進與您想要的匹配,但是如果沒有done等待之前的 that 就沒有意義了。

引用自:https://unix.stackexchange.com/questions/657898