busybox/shell/ash_test/ash-signals/usage.tests
Ron Yorston 098cd7ece4 ash: improve trap and jobs builtins in child shells
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>
2023-03-31 14:22:56 +02:00

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