trap [ arg [ sig ... ] ]
       arg is a series of commands (usually quoted to protect  it  from
       immediate  evaluation by the shell) to be read and executed when
       the shell receives sig.  Each sig can be given as a number or as
       the  name  of  a  signal.  If arg is `-', then all traps sig are
       reset to their default values.  If arg is the empty string, then
       this  signal  is  ignored  by  the  shell and by the commands it
       invokes.

       If sig is ZERR then arg will be executed after each command with
       a  nonzero  exit  status.  If sig is DEBUG then arg will be exe-
       cuted after each command.  If sig is 0  or  EXIT  and  the  trap
       statement  is  executed  inside the body of a function, then the
       command arg is executed after the function completes.  If sig is
       0 or EXIT and the trap statement is not executed inside the body
       of a function, then the command arg is executed when  the  shell
       terminates.

       ZERR,  DEBUG and EXIT traps are not executed inside other traps.

       The trap command with no arguments prints  a  list  of  commands
       associated with each signal.

       Note  that traps defined with the trap builtin are slightly dif-
       ferent from those defined as `TRAPNAL () { ... }', as the latter
       have   their  own  function  environment  (line  numbers,  local
       variables, etc.) while the former use  the  environment  of  the
       command in which they were called.  For example,

              trap 'print $LINENO' DEBUG

       will  print  the  line number of a command executed after it has
       run, while

              TRAPDEBUG() { print $LINENO; }

       will always print the number zero.

       Alternative signal names are allowed  as  described  under  kill
       above.   Defining a trap under either name causes any trap under
       an alternative name to be removed.  However, it  is  recommended
       that  for  consistency  users  stick  exclusively to one name or
       another.
