> On Wed, Jan 29, 2020 at 09:33:52AM -0500, Greg Wooledge wrote: >On Wed, Jan 29, 2020 at 01:05:32PM +0700, Robert Elz wrote: >> and (with all respect to Gred) please avoid archaic uses, and use the >> commands as they're currently specified, while "trap - INT" and "trap INT" >> do the same thing, the former is the standard way, similarly for >> "kill -INT ..." and "kill -s INT ..." the latter is the modern version. > >I had <https://www.cons.org/cracauer/sigint.html> open at the time, >and got the syntax from there. He actually uses the numeric signal >specifiers ("trap 2"), which I replaced with the modern standard naming >strings; but I didn't replace the legacy single-argument form with >the "-" form. Bash, of course, accepts both.
The "Proper handling of SIGINT/SIGQUIT" (https://www.cons.org/cracauer/sigint.html) looks to be an excellent explanation of the problem described here. (I'll add this to my reading list.) >You're not going to talk me into using "kill -s" any time soon, though. >I don't think I've *ever* seen anyone use that. Ditto. From my experience, "kill -s" is usually used for init scripts or debugging difficult bugs with uniquely connected hardware, etc... >> | I'm thinking, put "trap INT; kill -INT $$" inside of it's own function, > >Yeah, that's pretty common. > >sigint_handler() { > trap - INT > kill -INT $$ >} >trap sigint_handler INT > Extremely much more readable! My effort at readability was seemingly five steps behind your example here. -- Roger http://rogerx.sdf.org/