linux - 使用 shell 脚本从 pstree 获取指定进程名称的 pid

标签 linux bash shell pstree

我正在使用 pstree 来获取一组过程,结果将是这样的

进程A(123)---进程B(124)---进程C(125)---进程目标(126)---进程D(127)

我想使用关键字“processTarget”来获取pid,即126。

之所以选择pstree,是因为我要给这组进程发送SIGTSTP信号和SIGCONT。

我该怎么做?有什么简单的方法吗?

注意:processTarget(126)不在固定位置,所以无法用awk获取PID。

最佳答案

通过参数扩展/子字符串提取,这非常容易。示例:

#!/bin/bash

##plist=$( pstree something )  # actual command to fill plist

plist="processA(123)---processB(124)---processC(125)---processTarget(126)---processD(127)"

temp="${plist##*processTarget(}"
ptgtnum="${temp%%)--*}"

printf "\n  processTarget = %s\n\n" "$ptgtnum"

exit 0

输出

$ bash ptgt.sh

  processTarget = 126

关于linux - 使用 shell 脚本从 pstree 获取指定进程名称的 pid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29927496/

相关文章:

linux - Linux下的权限问题

Bash if 或语句,找不到命令

Python CLI 工具——一般解析题

BASH/命令行字节数

python - Python 中的并行处理问题

c++ - 程序应该显示文件的最后 5 行,但不适用于大文件

linux - 我想使用 putty 在 linux 服务器中打开 git bash。我将如何做?

linux - 按列拆分文件

regex - 存在多个/不完整匹配项时 'grep -w -f"的行为

linux - 无法为我的 .bashrc 实现别名/替换功能