Problem mit unserer /bin/sh

From: Oliver Fromme <olli(at)secnetix.de>
Date: Wed, 4 Dec 2002 17:02:37 +0100 (CET)

Moin,

Bevor ich die große Runde in freebsd-questions belästige,
versuche ich's erstmal in der kuscheligen Ecke von de-bsd-
questions ... :-)

Folgende Situation: Ich habe ein Shell-Skript, das mehrere
Subshells startet (Shellfunktionen), sich die PIDs ($!) in
Variablen merkt und diese später wieder killt. Das Problem
ist, daß ich bei jedem kill eine Ausgabe »[1] Terminated«,
was erstens überflüssig und zweitens äußerst störend ist,
weil es mitten in den regulären Ausgaben des Skriptes lan-
det.

Das Problem besteht offenbar nur mit der /bin/sh von Free-
BSD (unter Solaris konnte ich es nicht reproduzieren). Um-
leiten von stdout und/oder stderr hilft nicht, auch nicht
sonstige Spielereien mit Filedescriptoren, /dev/tty usw.
Es gibt auch keine Option, mit der man der ssh diese Blöd-
heit abgewöhnen kann. Mit Job-control hat es offenbar
nichts zu tun.

Hat jemand eine Ahnung, was man da machen kann?

Hier ein kurzes Beispiel-Skript zum Reproduzieren (meine
»echte« Anwendung tut natürlich einiges mehr als nur sleep
und echo):

#!/bin/sh -
Counter()
{
        i=0
        while :; do
                printf '%4d\r' $i
                sleep 1
                i=$(($i + 1))
        done
}
echo "Starting Counter ..."
Counter &
C_PID=$!
echo "Doing some work ..."
sleep 4
echo "Doing even more work ..."
kill $C_PID
echo "Killed Counter."
sleep 1
echo "Doing terribly much work ..."

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"All that we see or seem is just a dream within a dream" (E. A. Poe)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 04 Dec 2002 - 17:02:41 CET

search this site