shell的元字符&
提供了在后台运行不需要键盘输入的程序的方法。输入命令后,其后紧跟&
字符,该命令就会被送往到linux后台执行,而终端又可以继续输入下一个命令了。
比如:
sh a.sh &
sh b.sh &
sh c.sh &
这三个命令就会被同时送往linux后台执行,在这个程度上,认为这三个命令并发执行了。
shell脚本里实现并发操作技能点
-
for循环
-
&后台运行符
-
wait等待所有子进程结束
for ipin 192.168.56.{1..254}
do
(
ping $ip -c 4 &>/dev/null;
if [ $? -eq 0 ];then
echo $ip is alive
fi
) &
done
wait
wait等待所有后台子程序执行完毕
4.只让for循环中某条指令多进程执行
for ((i=0; i<$cishu;))
do
start_num=$(expr $i \* $rsnum + $i)
end_num=$(expr $start_num + $rsnum)
for j in `seq $start_num $end_num`
do
create_dir $j &
done
wait
i=$(expr $i + 1)
done
参考资料