#!/bin/bash
# ----------------------------------------------------
tmpfile=./$$.pid #$$是获取当前SHELL脚本进程的PID
mkfifo $tmpfile #生成一个FIFO管道文件
exec 1000<>$tmpfile #绑定文件描述符1000与FIFO管道文件
rm -rf $tmpfile #删除FIFO管道文件
# ----------定义并发进程数,这里定义为10--------------
for x in `seq 10`
do
echo >&1000 #向文件描述符1000写入一个空行
done
# ----------------------------------------------------
for x in `seq 100`
do
{
read -u1000 #从文件描述符1000读取一个空行
echo $x
sleep 3
echo >&1000 #向文件描述符1000写入一个空行
}&
done
# ----------------------------------------------------
tmpfile=./$$.pid #$$是获取当前SHELL脚本进程的PID
mkfifo $tmpfile #生成一个FIFO管道文件
exec 1000<>$tmpfile #绑定文件描述符1000与FIFO管道文件
rm -rf $tmpfile #删除FIFO管道文件
# ----------定义并发进程数,这里定义为10--------------
for x in `seq 10`
do
echo >&1000 #向文件描述符1000写入一个空行
done
# ----------------------------------------------------
for x in `seq 100`
do
{
read -u1000 #从文件描述符1000读取一个空行
echo $x
sleep 3
echo >&1000 #向文件描述符1000写入一个空行
}&
done
wait #等待进程终止,然后结束SHELL进程
参考:https://www.jianshu.com/p/2d60e6513fdd