shell - 这个脚本 5-10行什么意思
本文介绍了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屋!
查看全文