例子

#!/bin/bash
temp_fifo_file=$$.info #以当前进程号,为临时管道取名
mkfifo $temp_fifo_file #创建临时管道
exec <>$temp_fifo_file #创建标识为6,可以对管道进行读写
rm $temp_fifo_file #清空管道内容
function f_sleep
{
sleep
} temp_thread= #进程数 for ((i=;i<temp_thread;i++)) #为进程创建相应的占位
do
echo #每个echo输出一个回车,为每个进程创建一个占位
done >& #将占位信息写入标识为6的管道 for ((i=;i<;i++))
do
read #获取标识为6的占位
{
f_sleep
echo $$,$i,`date`
sleep
echo $$,$i,`date`
echo >& #>>>>>当任务执行完后,会释放管道占位,所以补充一个占位
}& #>>>>>在后台执行{}中的任务
done <& #将标识为6的管道作为标准输入 wait #等待所有任务完成
exec >&- #关闭标识为6的管道

例子

#!/bin/bash
temp_fifo_file=$$.info #以当前进程号,为临时管道取名
mkfifo $temp_fifo_file #创建临时管道
exec <>$temp_fifo_file #创建标识为6,可以对管道进行读写
rm $temp_fifo_file #清空管道内容
function f_sleep
{
sleep
} temp_thread= #进程数 for ((i=;i<temp_thread;i++)) #为进程创建相应的占位
do
echo #每个echo输出一个回车,为每个进程创建一个占位
done >& #将占位信息写入标识为6的管道 for ((i=;i<;i++))
do
read #获取标识为6的占位
{
f_sleep
echo $$,$i,`date`
}& #>>>>>在后台执行{}中的任务
sleep
echo $$,$i,`date`
echo >& #>>>>>当任务执行完后,会释放管道占位,所以补充一个占位
done <& #将标识为6的管道作为标准输入 wait #等待所有任务完成
exec >&- #关闭标识为6的管道

例子

#!/bin/bash
temp_fifo_file=$$.info #以当前进程号,为临时管道取名
mkfifo $temp_fifo_file #创建临时管道
exec <>$temp_fifo_file #创建标识为6,可以对管道进行读写
rm $temp_fifo_file #清空管道内容
function f_sleep
{
sleep
echo >& #>>>>>当任务执行完后,会释放管道占位,所以补充一个占位
} temp_thread= #进程数 for ((i=;i<temp_thread;i++)) #为进程创建相应的占位
do
echo #每个echo输出一个回车,为每个进程创建一个占位
done >& #将占位信息写入标识为6的管道 for ((i=;i<;i++))
do
read #获取标识为6的占位
{
f_sleep
echo $$,$i,`date`
}& #>>>>>在后台执行{}中的任务
sleep
echo $$,$i,`date`
done <& #将标识为6的管道作为标准输入 wait #等待所有任务完成
exec >&- #关闭标识为6的管道

例子

#!/bin/bash
temp_fifo_file=$$.info #以当前进程号,为临时管道取名
mkfifo $temp_fifo_file #创建临时管道
exec <>$temp_fifo_file #创建标识为6,可以对管道进行读写
rm $temp_fifo_file #清空管道内容
function f_sleep
{
sleep
echo >& #>>>>>当任务执行完后,会释放管道占位,所以补充一个占位
} temp_thread= #进程数 for ((i=;i<temp_thread;i++)) #为进程创建相应的占位
do
echo #每个echo输出一个回车,为每个进程创建一个占位
done >& #将占位信息写入标识为6的管道 for ((i=;i<;i++))
do
read #获取标识为6的占位
{
f_sleep
echo $$,$i,`date`
sleep
echo $$,$i,`date`
}& #>>>>>在后台执行{}中的任务
done <& #将标识为6的管道作为标准输入 wait #等待所有任务完成
exec >&- #关闭标识为6的管道

shell 的多进程的更多相关文章

  1. shell脚本多进程

    shell脚本再执行过程中就一个进程,从头到尾 下面配置shell脚本执行过程中启动多个进程同时执行 #!/bin/bash for ((i=1;i<=10;i++)) do ( echo &q ...

  2. shell 并发多进程同时执行

    #!/bin/bash SEND_THREAD_NUM= #设置进程数. tmp_fifofile="/tmp/$$.fifo" # 脚本运行的当前进程ID号作为文件名 mkfif ...

  3. SHELL网络爬虫实例剖析--转载

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://nolinux.blog.51cto.com/4824967/1552472 前天 ...

  4. Linux编程 9 (shell类型,shell父子关系,子shell用法)

    一. shell类型 1.1  交互式 bin/ shell程序 当用户登录到某个虚拟控制台终端或是在GUI中启动终端仿真器时,默认的shell程序就会开始运行.系统启动什么样的shell程序取决于你 ...

  5. Linux多进程之间的文件锁

    之前对于文件的操作通常在一个进程中完成,最近需要在两个进程中对同一个文件进行操作.故想到了文件锁. Linux下可以使用flock()函数对文件进行加锁解锁等操作.简单介绍下flock()函数: 表头 ...

  6. [shell] Bash编程总结

    由于工作需要,之前的几个月写了一些Bash脚本,主要完成自动测试.打包.安装包等.虽然相比C++编程,要简单.傻瓜,但其在类Unix系统中可以大大提高工作的效率.所以在此对脚本编程过程中一些注意事项进 ...

  7. shell实践

    shell实践 父子shell 父shell:我们在登录某个虚拟机控制器终端的时候(连接某一个linux虚拟机)时,默认启动的交互式shell,然后等待命令输入. ps命令参数,是否有横杠的参数作用是 ...

  8. Linux Shell多进程并发以及并发数控制

    1. 基础知识准备 1.1. linux后台进程 Unix是一个多任务系统,允许多用户同时运行多个程序.shell的元字符&提供了在后台运行不需要键盘输入的程序的方法.输入命令后,其后紧跟&a ...

  9. shell多进程

    之前需要多进程程序都是python实现,闲来无事弄了下shell多进程,发现so easy(笑哭) 代码上: #!/bin/bash sleep 10 & sleep 5& wait ...

随机推荐

  1. git merge后如何撤销

    merge后发现冲突太多,或者合并的分支代码并不是最新,那就直接撤销再合并好了. git reset --hard HEAD 用来撤销还没commit 的merge,其实原理就是放弃index和工作区 ...

  2. Python科学计算学习之高级数组(二)

    代码性能和向量化 背景:Python是一种解释型的编程语言,基本的python代码不需要任何中间编译过程来得到机器代码,而是直接执行.而对于C.C++等编译性语言就需要在执行代码前将其编译为机器指令. ...

  3. 手动创建Oracle实例

    手工建库步骤 Step 1: Specify an Instance Identifier (SID)(指定一个实例的标识符SID)Step 2: Ensure That the Required E ...

  4. 能否显示pdf?

    <iframe src='http://km.shengaitcm.com/ADC/_layouts/15/WopiFrame.aspx?sourcedoc=%2FADC%2FDocLib16% ...

  5. 运行main方法找不到类

    http://blog.csdn.net/chenleixing/article/details/44816629

  6. 7zip 18.3性能测试

    配置 7zip 18.3 bate3 的性能大幅提升,进行一点简单测试 配置为 E3 1230v2 3.5G 4核心/8线程 12G内存 均为8线程测试 压缩解压一个1.5G的虚拟机磁盘镜像 测试 再 ...

  7. python 之路 day5 - 常用模块

    模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser has ...

  8. Rman常用命令

    配置基于时间的备份保留策略 RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; 恢复spfile RMAN> re ...

  9. Cesium 学习笔记

    Entity API 1,和 fill属性不太一样,outline没有对应的材质配置,而是用两个独立的属性outlineColor和outlineWidth. 注意outlineWidth属性仅仅在非 ...

  10. element-ui表单form和rules踩坑

    问题: 代码: <el-form ref="form" :rules="rules" :model="form" label-widt ...