Date: Mon, 21 Jul 2003 08:05:03 -0500 From: D J Hawkey Jr <hawkeyd@visi.com> To: questions at FreeBSD <freebsd-questions@freebsd.org> Subject: Re: Stupid shell tricks Message-ID: <20030721130503.GA6427@sheol.localdomain> In-Reply-To: <20030721122557.GA6212@sheol.localdomain> References: <20030721122557.GA6212@sheol.localdomain>
next in thread | previous in thread | raw e-mail | index | archive | help
I got it!
> I'll cut right to it: I'm looking for a technique to do "atomic writes"
> in a shell (sh(1)) script, playing with the trap builtin. It goes something
> like this:
>
> 1: #!/bin/sh
> 2:
> 3: trapper ()
> 4: {
> 5: rm -f $TMPFILE
> 6: exit
> 7: }
> 8:
> 9: trap trapper HUP PIPE INT QUIT SEGV
> 10:
> 11: ...
> 12:
> 13: while read LINE; do
> 14: trap "" HUP PIPE INT QUIT SEGV
> 15: binary_that_writes $LINE
> 16: ...
> 17: done <$TMPFILE
> 18:
> 19: trapper
I ditched line 14, and changed line 15 to:
sh -c "trap \"\" HUP PIPE INT QUIT SEGV; binary_that_writes $LINE"
The explanation of "-T" in the man page gave me the clue.
Movin' right along,
Dave
--
______________________ ______________________
\__________________ \ D. J. HAWKEY JR. / __________________/
\________________/\ hawkeyd@visi.com /\________________/
http://www.visi.com/~hawkeyd/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030721130503.GA6427>
