trap [ arg [ sig ... ] ]
       arg  is  a command 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  val-
       ues.   If  arg is the null 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 executed after each command.
       If sig is 0 or EXIT and the trap statement is  exe-
       cuted  inside the body of a function, then the com-
       mand 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.

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