func()
{
- trap 'echo [$LINENO] funcdebug' DEBUG
+ trap 'echo ${FUNCNAME:-$0}[$LINENO] funcdebug' DEBUG
echo funcdebug line
}
trap
+trap 'echo ${FUNCNAME:-$0}[$LINENO] debug' DEBUG
+func2()
+{
+ echo func2debug line
+}
+declare -ft func2
+func2
+
+unset -f func2
+
trap '' DEBUG
trap
trap '' USR2
./trap1.sub
+# test ERR trap
+./trap2.sub
+
+${THIS_SH} ./trap3.sub
+
+${THIS_SH} ./trap4.sub
+
+# This doesn't work right on all Unix versions
+#${THIS_SH} ./trap5.sub
+
#
# show that setting a trap on SIGCHLD is not disastrous.
#
sleep 7 & sleep 6 & sleep 5 &
+# this will only catch the first, since there's a trap on SIGCHLD
wait
trap -p SIGCHLD
# Now reset some of the signals the shell handles specially back to
# their default values (with or without the SIG prefix)
-trap SIGINT QUIT TERM
+trap - SIGINT QUIT TERM
trap
+
+trap - SIGCHLD
+wait