国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Linux Shell > 正文

Shell腳本中獲取進程ID的方法

2020-07-27 19:07:58
字體:
來源:轉載
供稿:網友

提問: 我想要知道運行中腳本子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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霍山县| 客服| 星子县| 龙游县| 布尔津县| 阿巴嘎旗| 澳门| 淮南市| 鄂托克前旗| 梅河口市| 定安县| 彭山县| 大悟县| 疏勒县| 广元市| 罗甸县| 南华县| 彭泽县| 贞丰县| 浑源县| 双桥区| 腾冲县| 安岳县| 平度市| 潍坊市| 永嘉县| 德惠市| 大理市| 西华县| 扎鲁特旗| 中方县| 冕宁县| 浮山县| 阜平县| 宁都县| 宁明县| 北海市| 莒南县| 师宗县| 大姚县| 彭泽县|