#!/bin/bash
for ((i=0;i<5;i++));do
{
sleep 3; echo "done!"
}
done
wait
上面这段bash脚本执行一次要耗时3x5=15秒钟 。
但下面这段bash脚本执行完却仅耗时3秒钟
#!/bin/bash
for ((i=0;i<5;i++));do
{
sleep 3; echo "done!"
} &
done
wait
比较发现后面这个脚本仅多了一个 & 控制操作符。
&是并行执行的操作控制符,它不等一条命令执行完,另外一条命令同步执行。
参考:http://www.gnu.org/software/bash/manual/bashref.html#Lists
中的描述:If a command is terminated by the control operator ‘&

本文介绍了如何使用Bash脚本实现命令的并行执行,通过使用操作控制符‘&’,使得原本需要15秒的执行时间缩短到3秒,大大提高了执行效率。并引用了GNU Bash手册中关于并行执行和coprocesses的相关描述。
最低0.47元/天 解锁文章

356

被折叠的 条评论
为什么被折叠?



