On Tue, Feb 19, 2002 at 05:42:35PM +0100, Viktor Rosenfeld wrote: > Hi, > > I have the following bash question. I've written a script that makes > sure that I'm online (ISDN dial-on-demand) and then gets mail with > fetchmail. He're the code that makes sure I'm connected and prints dots > while doing so: > > # Make sure we're online > echo -n "Connecting to the internet .." > /bin/bash -c 'while true; do echo -n "."; sleep 1s; done' & > DOTLOOP=$! > ping -c 1 www.web.de > /dev/null > kill -9 $DOTLOOP > echo " done." > > This works fine, but after the fetchmail command runs (not shown there) > I get the following message: > > /home/viktor/bin/getmail: line 16: 3869 Killed > /bin/bash -c 'while true; do echo -n "."; sleep 1s; done' > > This, of course, is not surprising, it's normal bash behavior. > Unfortunately, I don't like it and would like to suppress it. Any way > to achieve this?
With "kill -9", there is no way the shell can catch it. It's a bit of a
shotgun approach to getting rid of the process (man 7 signal).
However, if you were to settle for the normal kill (= SIGTERM), then you
should be OK:
#!/bin/sh
echo -n "Doing something.."
(while true; do echo -n "."; sleep 1; done) &
DOTLOOP=$!
ping -c 1 www.web.de > /dev/null
kill $DOTLOOP
echo " done."
HTH
--
Karl E. Jørgensen
[EMAIL PROTECTED]
www.karl.jorgensen.com
==== Today's fortune:
The University of California Statistics Department; where mean is normal,
and deviation standard.
pgpQltjniiOug.pgp
Description: PGP signature

