Next: Über dieses Dokument ... Up: Beispiele für Shell-Programmierung Previous: Primitive Turbo-C-Variante
Anzeigen von Prozeß-Hierarchien
-
Schreiben Sie ein Script, das alle Vorfahren eines Prozesses anzeigt. Die Nummer des
Prozesses wird dem Script als Argument übergeben. Für jeden Prozeß sind
folgende Angaben anzuzeigen: PID, PPID, UID, TTY und das vollständige Kommando.
#!/bin/sh # # Prozessangaben anzeigen # # Aufruf: proz <prozess_id> # ps -elf >/tmp/pro$$ a=$1 if test $a -lt 0 then a=`expr $a '*' -1` else echo "PID PPID UID TTY CMD" fi trap "rm /tmp/pro$$; exit" 2 ( while read n do x=`echo $n | cut -f4 -d' '` if test "$x" -eq "$a" then # die Feldnummern (fuer cut -f) sind vom Listenformat der # ps-Implementierung abhaengig p=`echo $n | cut -f4 -d' '` pp=`echo $n | cut -f5 -d' '` u=`echo $n | cut -f3 -d' '` t=`echo $n | cut -f12 -d' '` c=`echo $n | cut -f14- -d' '` echo "$p $pp $u $t $c" if test $pp -ne 0 then ./proz -$pp fi break fi done ) </tmp/pro$$ rm /tmp/pro$$