我想同时循环执行命令,而不是一个接一个

Fel*_*rez 5 script bash

我想写一个循环('for'),它会做一些动作 'X' 次。但不是一个接一个地顺序执行动作,我希望它们同时执行(同时并行)。如何做到这一点?脚本或单衬都很好。

仅示例:

for i in 1 2 3 4 5; do dd if=/dev/zero of=/tmp/disk$i bs=10M count=10; done
Run Code Online (Sandbox Code Playgroud)

nik*_*nik 5

这主要是根据给出的答案Dennis(那里+1)以及您的示例案例。

对于 $(seq 1 5) 中的 i;做 \
 dd if=/dev/zero of=/tmp/disk$i bs=10M count=10 & \
完毕; 等待

' \' 和新行只是为了阅读乐趣,您可以将所有内容写在一行中。


这可以更好地理解控制序列和语法,

对于 $(seq 1 5) 中的 i;做 \
 (\
  echo "$i 开始..."; \
  dd if=/dev/zero of=/tmp/disk$i bs=10M count=10; \
  echo "$我完成了..."; \
 ) & \
完毕; 等待