提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。

当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为“批处理进程”)。

在某些情况下,你也许想要知道运行中的子shell的PID。这个PID信息可以在不同的情况下使用。比如,你可以使用shell脚本的PID在/tmp下创建一个唯一的临时文件。有时侯脚本需要检测所有运行的进程,它可以从进程列表中排除自身的子shell。

在bash中,子shell进程的PID存储在一个特殊的变量‘$$'中。这个变量只读,你不可以在脚本中修改它。比如:

#!/bin/bash

echo "PID of this script: $$"

上面的脚本会得到下面的输出:

PID of this script: 6583

除了$$, bash shell还会导出其他的只读变量。比如,PPID存储子shell父进程的ID(也就是主shell)。UID存储了执行这个脚本的当前用户ID。比如:#!/bin/bash

echo "PID of this script: $$"

echo "PPID of this script: $PPID"

echo "UID of this script: $UID"

输出是:PID of this script: 6686

PPID of this script: 4656

UID of this script: 1000

上面输出中,PID每次执行都会变化。这个因为每次运行都会创建一个新的shell。另一方面,PPID每次都会一样只要你在同一个shell中运行。

对于所有bash内置变量列表,参考man页。

$ man bash

shell脚本中取消重定向的方法实例

在上一篇关于shell编程的例子中,有讲到把shell脚本进行扩展之后重定向到一个文件中,以便进行查看和调试http://www.gimoo.net/article/62435.htm。但是,若是

Shell脚本之无限循环的两种方法

for实现:#!/bin/bashseti=0setj=0for((i=0;i10;))dolet"j=j+1"echo"-------------jis$j-------------------"donewhile实现:#!/bin/bashsetj=2whiletruedolet"j=j+1"echo"----------jis$j--------------"done

shell脚本实现监控shell脚本的执行流程及变量的值

很多时候,我们都会写shell程序来完成一些不用重复造轮子的时刻,但是,又因为shell语句中也会有函数,也会有变量,在运行后到底执行了哪些相关的

linux 脚本 获取pid,Shell脚本中获取进程ID的方法相关推荐

  1. 《Linux命令行与shell脚本大全》笔记

    初识Linux Shell 什么是Linux Linux可划分为以下四部分: Linux内核 GNU工具 图形化桌面环境 应用软件 深入探究Linux内核 内核主要负责以下四种功能: 系统内存管理 软 ...

  2. 【Linux】《Linux命令行与shell脚本编程大全 (第4版) 》笔记-Chapter16-脚本控制

    十六.脚本控制 Linux 利用信号与系统中的进程进行通信. 重温 Linux 信号 Linux 系统和应用程序可以产生超过 30 个信号.在 shell 脚本编程时会遇到的最常见的 Linux 系统 ...

  3. 【Linux】《Linux命令行与shell脚本编程大全 (第4版) 》笔记-汇总 ( Chapter17-ChapterB )

    十七.创建函数 bash shell 提供了用户自定义函数功能,可以将 shell 脚本代码放入函数中封装起来. 函数是一个脚本代码块,你可以为其命名并在脚本中的任何位置重用它.每当需要在脚本中使用该 ...

  4. linux 命令行与shell脚本编程大全

    linux 命令行与shell脚本编程大全 第一章 Linux LiveCD就是从cd读取的系统,由于没法将数据写入到cd,所以一旦重启,之前操作过后的一切数据都会丢失. 第二章 第三章 1.man手 ...

  5. 【2018深信服 醒狮计划】《Linux命令行与Shell脚本编程大全》学习笔记

    2018深信服"醒狮计划"笔记 第3周(5.02-5.13) 课程 必修 选修 基本要求 Shell编程 <Linux命令行与Shell脚本编程大全> <Perl ...

  6. Linux 运行和控制 shell 脚本

    脚本控制 对于 shell 脚本,我们最简单的操作是直接运行它.除此之外,我们还可以通过向运行中的脚本发送信号.修改脚本的优先级以及切换运行模式等等途径控制脚本. 一.处理信号 Linux 利用信号与 ...

  7. Linux_《Linux命令行与shell脚本编程大全》第十八章学习总结

    时间:2017年12月04日星期一 说明:本文部分内容均摘取自书籍<Linux命令行与shell脚本编程大全>,版权归原作者所有.<Linux命令行与shell脚本编程大全>( ...

  8. Linux课程---7、shell技巧(获取帮助命令)

    Linux课程---7.shell技巧(获取帮助命令) 一.总结 一句话总结: ls --help:简单手册 man ls:内容手册 1.tab补全? 命令+tab:加快敲命令敲文件目录的速度,多敲几 ...

  9. linux运维自动化脚本,linux运维自动化shell脚本小工具

    linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU # ...

最新文章

  1. 关于深度学习推荐系统领域的15个问题
  2. 微软中国 CTO:请把 AI 拉下神坛
  3. 腾讯老照片修复算法开源,细节到头发丝,3种预训练模型可下载 | GitHub热榜
  4. 青龙羊毛——狸猫十堰
  5. 构建iOS风格移动Web应用程序的8款开发框架
  6. 计算机等级考试初级网络工程师,2019年全国计算机等级考试网络工程师四级,需..._网络编辑_帮考网...
  7. CNN 反向传播推导
  8. 跟我一起学Angular2(1)-了解ng模块化
  9. Switch View when host XmlFormView in aspx
  10. 计算机第四次评估报告,建议置顶,天天那么多问计算机的。看看第四轮评估的结果。...
  11. 【转载】 ppt如何导出300dpi的高分辨率图片
  12. 1236: 数的逆转
  13. Android 实现图文混排
  14. UDP/TCP实时传输图像
  15. XP系统封装-2011年
  16. 企业网络如何实现升级
  17. USB(六)-HID(报告描述符的结构实现)
  18. Cimplicity软件开发的汽车厂监控系统案例
  19. 虚拟内存(操作系统)
  20. 第一个iBATIS测试就通不过

热门文章

  1. ModelView矩阵各列含义及说明
  2. C++11之std::async使用介绍
  3. kali换源无法保存_Kali Linux 2.0更新源无法正常使用(解决)
  4. 关于 VC 执行顺序
  5. TF从文件中读取数据
  6. 滴滴开源首次发布年度报告
  7. 转载,关于缓存穿透、缓存并发、缓存雪崩那些事
  8. 方法重载,new,override
  9. 左手价格战右手结盟 巨头加码云计算市场洗牌在即
  10. JavaScript 进阶(二)变量作用域