Paul Eggert wrote: > The difference can be seen with this script: > > trap : 2 > sleep 5 > sleep 10 > > If you execute this with "bash -x", and interrupt the "sleep 5" with > Control-C, you'll see that the "sleep 10" is executed with "trap :", > whereas it would not be executed with "trap -".
Oh, you are right, thanks. I misunderstood how 'trap' works. > How about if you replace this: > > trap : 0 1 2 3 15 > > with this? > > trap '' 0 > trap '(exit $?); exit $?' 1 2 13 15 This works as desired, thanks. The following works as well: trap '' 0 trap 'exit $?' 1 2 13 15 Tested with both bash and zsh. (The confusion about the interpretation of $? within trap between bash and zsh/Solaris sh applies only to the 0 signal. For signal 2, $? is 130 in all cases.) I committed the appended patch. Bruno *** gnulib-tool 25 Jan 2006 14:20:06 -0000 1.105 --- gnulib-tool 26 Jan 2006 12:51:07 -0000 *************** *** 1176,1182 **** func_add_or_update done rm -rf "$tmp" ! trap : 0 1 2 3 15 # Command-line invocation printed in a comment in generated gnulib-cache.m4. actioncmd="gnulib-tool --import" --- 1176,1188 ---- func_add_or_update done rm -rf "$tmp" ! # Undo the effect of the previous 'trap' command. Some shellology: ! # We cannot use "trap - 0 1 2 3 15", because Solaris sh would attempt to ! # execute the command "-". "trap '' ..." is fine only for signal 0 (= normal ! # exit); for the others we need to call 'exit' explicitly. The value of $? is ! # 128 + signal number and is set before the trap-registered command is run. ! trap '' 0 ! trap 'exit $?' 1 2 3 15 # Command-line invocation printed in a comment in generated gnulib-cache.m4. actioncmd="gnulib-tool --import" _______________________________________________ bug-gnulib mailing list bug-gnulib@gnu.org http://lists.gnu.org/mailman/listinfo/bug-gnulib