mirror of
https://git.busybox.net/busybox
synced 2025-05-10 04:33:59 +02:00
The trap and jobs builtins can be used to report information about traps and jobs. This works when they're called from the current shell but in a child shell the required information is usually cleared. Special hacks allow: - trap to work with command substitution; - jobs to work with command substitution or in a pipeline. Neither works with process substitution. - Relax the test for the trap hack so it also supports pipelines. - Pass the command to be evaluated to forkshell() in evalbackcmd() so trap and jobs both work with process substitution. function old new delta forkchild 629 640 +11 argstr 1502 1496 -6 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/1 up/down: 11/-6) Total: 5 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
35 lines
391 B
Text
Executable file
35 lines
391 B
Text
Executable file
# no output -- default state
|
|
echo ___
|
|
trap
|
|
|
|
# assign some traps
|
|
echo ___
|
|
trap "a" EXIT INT USR1 USR2
|
|
|
|
# show them all
|
|
echo ___
|
|
trap
|
|
|
|
# show them by command substitution
|
|
echo ___
|
|
echo $(trap)
|
|
|
|
# show them by pipe
|
|
echo ___
|
|
trap | cat
|
|
|
|
# show them by process substitution
|
|
echo ___
|
|
cat <(trap)
|
|
|
|
# clear one
|
|
echo ___
|
|
trap 0 INT
|
|
echo ___
|
|
trap
|
|
|
|
# clear another
|
|
echo ___
|
|
trap "-" USR1
|
|
echo ___
|
|
trap
|