shell - 这个脚本 5-10行什么意思

查看:112
本文介绍了shell - 这个脚本 5-10行什么意思的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

让同时执行的进程不超过5个?不是很懂,求大神讲解下。

解决方案

第5行:
trap func SIGNAL 是信号注册的过程; 代码翻译过来意思就是: 如果接受到信号2(SIGINT), 就执行 exec 1000<&-; exec 1000>&- 这句代码, 而这句代码的作用就是, 将文件描述符1000的读形式和写形式删除, 其实这个是针对第9行的

第7-10行
以脚本的进程号为名, 创建一个有名管道文件, 然后以读写形式打开, 并赋给文件描述符1000, 你可以跟平时的重定向联系一起, 因为标准输出:1 标准错误:2, 也是类似这样的文件按描述符. 将文件描述符1000有名管道文件绑定一起之后, 就能够删除管道文件了, 因为在linux里面, 删除文件并不意味着真正的删除, 只有程序不再占用时, 也就是程序结束时才会真正解放, 这步删除动作, 是为了不要留下临时文件.

综上所述:
定义一个有名管道文件, 将其读写都绑定到文件描述符1000, 这样就不需要直接 >${tmpfifo}, <{tmpfifo}了, 通过文件描述符就能实现, 如果接受到信号SIGINT, 应该ctrl-c,就显示将这个文件描述符删除, 并退出

想了解更加详细的内容, 可以自行谷歌 有名管道和linux exec用法

这篇关于shell - 这个脚本 5-10行什么意思的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆