关于Shell的一些笔记📒
前言本文主要记录📝平时学到关于Shell的一些知识,方便复习.
知识如何在脚本中获取进程ID(PID)?在运行Shell脚本时,主shell并不会去运行,而是创建一个子Shell进程去运行我们的Shell脚本.
子shell将shell脚本中的命令作为批处理运行(因此称为“批处理进程”)
在某些情况下,我们需要知道运行中子shell的进程ID(PID).
那么PID可以用来做什么呢?
PID信息可以用来在/tmp下创建一个唯一的临时文件
有时脚本需要检测所有运行的进程,PID可以从进程列表中排除自身的子shell
等等
在bash中,子shell进程的PID存储在一个特殊的变量‘$$’中。这个变量只读,你不可以在脚本中修改它.
1echo "PID of this script: $$"
除了$$, bash shell还会导出其他的只读变量。比如,PPID存储子shell父进程的ID(也就是主shell)。UID存储了执行这个脚本的当前用户ID。比如:
12345#!/bin/bash echo "PID of this scr ...
实现Shell"多线程"
前言Shell一行行地执行实在是太影响效率.本文将带你提升你的Shell执行效率,采用伪”多线程”的方式启动多个后端进程,最大程度利用cpu性能.
本文代码关键点有一定的注释,方便读者理解并灵活使用.本文示例及部分内容摘录自互联网,由本人整理成以下内容.遵守CC BY-NC-SA 4.0协议.
先问你一个问题.
多线程有什么用?这里引用知乎pansz用户的回答
单进程单线程:一个人在一个桌子上吃菜
单进程多线程:多个人在同一个桌子上一起吃菜
多进程单线程:多个人每个人在自己的桌子上吃菜
多线程的问题是多个人同时吃一道菜的时候容易发生争抢例如两个人同时夹一个菜,一个人刚伸出筷子,结果伸到的时候已经被夹走菜了…此时就必须等一个人夹一口之后,在还给另外一个人夹菜,也就是说资源共享就会发生冲突争抢。
对于 Windows 系统来说,【开桌子】的开销很大,因此 Windows 鼓励大家在一个桌子上吃菜。因此 Windows 多线程学习重点是要大量面对资源争抢与同步方面的问题。
对于 Linux 系统来说,【开桌子】的开销很小,因此 Linux 鼓励大家尽量每个人都开自己的桌子吃菜。这带 ...