我需要编写脚本来显示其PID作为参数给出的进程的所有曾孙的PID。
以下脚本显示了其PID为参数但我需要曾孙的进程的孙代。
#!/bin/env bash
display_cpid() {
local depth=$1 pid=$2 child_pid
(( ++depth ))
while IFS= read -r child_pid; do
if (( depth < 2 )); then
display_cpid "$depth" "$child_pid"
else
echo "$child_pid"
fi
done < <(pgrep -P "$pid" | xargs)
}
display_cpid 0 "$1"
我希望脚本显示曾孙,但显示孙代。
最佳答案
条件“深度
旁注:该脚本无法在Mint-19下执行,请考虑修改版本:
#!/bin/bash
display_cpid() {
local depth=$1 pid=$2 child_pid
(( ++depth ))
pgrep -P "$pid" | while read -r child_pid; do
if (( depth < 3 )); then
display_cpid "$depth" "$child_pid"
else
echo "$child_pid"
fi
done
}
display_cpid 0 "$1"
关于linux - 如何从Bash脚本中列出目标PID的曾孙PID?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58002440/