| Line | |
|---|
| 1 | # test the trap code
|
|---|
| 2 |
|
|---|
| 3 | trap 'echo exiting' 0
|
|---|
| 4 | trap 'echo aborting' 1 2 3 6 15
|
|---|
| 5 |
|
|---|
| 6 | # make sure a user-specified subshell runs the exit trap, but does not
|
|---|
| 7 | # inherit the exit trap from a parent shell
|
|---|
| 8 | ( trap 'echo subshell exit' 0; exit 0 )
|
|---|
| 9 | ( exit 0 )
|
|---|
| 10 |
|
|---|
| 11 | trap
|
|---|
| 12 |
|
|---|
| 13 | func()
|
|---|
| 14 | {
|
|---|
| 15 | trap 'echo ${FUNCNAME:-$0}[$LINENO] funcdebug' DEBUG
|
|---|
| 16 | echo funcdebug line
|
|---|
| 17 | }
|
|---|
| 18 |
|
|---|
| 19 | trap 'echo [$LINENO] debug' DEBUG
|
|---|
| 20 | echo debug line
|
|---|
| 21 |
|
|---|
| 22 | trap
|
|---|
| 23 |
|
|---|
| 24 | func
|
|---|
| 25 |
|
|---|
| 26 | trap
|
|---|
| 27 |
|
|---|
| 28 | trap 'echo ${FUNCNAME:-$0}[$LINENO] debug' DEBUG
|
|---|
| 29 | func2()
|
|---|
| 30 | {
|
|---|
| 31 | echo func2debug line
|
|---|
| 32 | }
|
|---|
| 33 | declare -ft func2
|
|---|
| 34 | func2
|
|---|
| 35 |
|
|---|
| 36 | unset -f func2
|
|---|
| 37 |
|
|---|
| 38 | trap '' DEBUG
|
|---|
| 39 |
|
|---|
| 40 | trap
|
|---|
| 41 |
|
|---|
| 42 | trap - debug
|
|---|
| 43 |
|
|---|
| 44 | trap
|
|---|
| 45 |
|
|---|
| 46 | trap - HUP
|
|---|
| 47 | trap hup
|
|---|
| 48 | trap '' INT
|
|---|
| 49 | trap '' int
|
|---|
| 50 |
|
|---|
| 51 | trap
|
|---|
| 52 |
|
|---|
| 53 | # exit 0 in exit trap should set exit status
|
|---|
| 54 | (
|
|---|
| 55 | set -e
|
|---|
| 56 | trap 'exit 0' EXIT
|
|---|
| 57 | false
|
|---|
| 58 | echo bad
|
|---|
| 59 | )
|
|---|
| 60 | echo $?
|
|---|
| 61 |
|
|---|
| 62 | # hmmm...should this set the handling to SIG_IGN for children, too?
|
|---|
| 63 | trap '' USR2
|
|---|
| 64 | ./trap1.sub
|
|---|
| 65 |
|
|---|
| 66 | # test ERR trap
|
|---|
| 67 | ./trap2.sub
|
|---|
| 68 |
|
|---|
| 69 | #
|
|---|
| 70 | # show that setting a trap on SIGCHLD is not disastrous.
|
|---|
| 71 | #
|
|---|
| 72 | set -o monitor
|
|---|
| 73 |
|
|---|
| 74 | trap 'echo caught a child death' SIGCHLD
|
|---|
| 75 |
|
|---|
| 76 | sleep 7 & sleep 6 & sleep 5 &
|
|---|
| 77 |
|
|---|
| 78 | wait
|
|---|
| 79 |
|
|---|
| 80 | trap -p SIGCHLD
|
|---|
| 81 |
|
|---|
| 82 | # Now reset some of the signals the shell handles specially back to
|
|---|
| 83 | # their default values (with or without the SIG prefix)
|
|---|
| 84 | trap - SIGINT QUIT TERM
|
|---|
| 85 |
|
|---|
| 86 | trap
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.