linux shell并发执行命令

本文介绍了一种在Linux环境下并行执行Shell命令的方法。通过使用后台进程与控制并发数量的技术,有效地提高了批量命令执行的效率。文章提供了一个具体脚本实例,详细展示了如何控制同一时间内的最大并发进程数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般我们在linux上十一shell命令的批量执行操作,一般使用for或者while 循环进行操作,但是这样有一个问题,for或者while本质上是串行的,并不能,如果某一个命令执行耗费的时间比较长,就会等待很长的时间,很浪费时间;

将被执行的命令运行为后台执行,可以实现并发执行多条命令;

for ((i=0;i<10;i++));do echo "done ";done &  wait

  

但是上述方法,如果在i的值很大的时候,会产生大量的进行,造成系统严重的问题,所以,需要控制进行数,下面的脚本会保证同一时间只有10个进程在运行;

[root@linux-node1 ~]# cat parallel.sh 
#!/bin/sh

tempfifo=$$.fifo
echo $tempfifo
trap "exec 100>&-;exec 1000<&-;exit 0" 2
mkfifo $tempfifo
exec 1000<>$tempfifo
rm -rf $tempfifo

for ((i=0;i<10;i++))
do
   echo >&1000
done

for((i=0;i<300;i++))
do
read -u1000
{
   sleep 5 
   echo "Done!"
   echo $i
   echo >&1000
}&
echo "--------------"
done
wait

echo "done !!!!!!!!!"

  

转载于:https://www.cnblogs.com/cqq-20151202/p/6702954.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值