#!/bin/bash # version 1.0, 2003-08-01, Michael Wang . # * emulate Solaris "ptree PID" command. # * works under ksh (93), bash (2.05), and pdksh (v5.2.14). shopt -s extglob 2>/dev/null PID=$1 set -- flag=; unset flag { ps --forest -e -o pid,args printf "%s\n" "00000 a" } | while IFS= read -r i; do if [[ $i == *( )+([0-9])@( )+([! ])* ]]; then if [[ $flag == Y ]]; then printf "%s\n" "$@" break else set -- "$i" fi else set -- "$@" "$i" fi [[ $i == *( )$PID+( )* ]] && flag=Y done