Мне нужно написать скрипт, который отображает 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"
Я ожидал, что сценарий отображает правнуков, но отображает внуков.