我正在使用 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/