嘿,你们这些伟大的编码人员,
起初我是 bash 的新手,只有一些 Java 经验。 现在我的任务是制作一个脚本,使在 linux 机器上尽可能快速和自动地闪存几百个 USB 驱动器成为可能,这不应该改变。 所以没有安装更多的包。
现在开始问题: 我已将任务拆分为两个脚本。
过滤 lsusb 并搜索正确的设备,然后使用设备 ID 启动后台进程以复制图像并执行一些分区操作。
主脚本同时过滤新设备并创建一个新的后台进程来为它们复制。 当没有更多适合的设备时,主脚本等待所有后台进程完成,然后要求用户拔出所有设备并将下一批插入。
目前,除了 dd 在一个等待另一个后台进程完成的后台进程之外,它工作得很好。因为它们应该并行运行并且启动 dd 的进程有不同的 pid,所以我不知道为什么要等待。
这是脚本的一部分:
第一个参数是序列号,第二个参数是要复制的镜像文件名
最佳答案
您可以尝试将 sync
从第 8 行移动到上面的行 echo "all connected devices are flashed, please change devices"
或您等待后的另一行(wait $i
) 等待所有操作完成。
关于linux - Bash 并行 dd 和 mkfs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43503074/