shell 获取 进程号

先上脚本

======================================================

proc=xxx // 应用程序名称

pid=`ps | grep $proc | grep -v grep | sed 's/^\s*//' | sed 's/[[:space:]].*//'`

echo $pid

======================================================

详解:

第一行先定义一个应用名变量。 

第二行:获取出应用名对应的进程号,这里内容有点多,分步说明

  ps 用于查看当前运行的任务。

 ps | grep telnet  过滤出 包含应用名的这一行,假设我这里过滤 telnet。

可以看到出现2行,其中下面那行是本条命令的进程,也需要过滤掉。用 grep -v grep 反向过滤,即过滤掉包含grep的行。

 ps | grep telnet  | grep -v grep

这下只剩下 telnetd这行了。 接下来要取前面的数字691. 思路是这样的,用空字符替换691前面的空格和后面的所有字符。sed命令可以很好的实现这个功能。

sed 's/^\s*//'  这行的意思表示,替换从行头开始的不可见字符(匹配任何空白字符,包括空格、制表符、换页符等等)为空。这样前面的空格就去除了。 关于正则表达式自行补充。

接下来是要去除后面的一长串字符。思路是从空格开始的所有内容。sed中 空格用 [[:space:]] 表示

[[:space:]] :一次空格

.* :除换行之外的所有字符。

sed 's/[[:space:]].*//'

这样进程号就出来了。

 

 

 

 

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值