#!/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 ‘&