User Commands                                             trap(1)


NAME

     trap, onintr  -  shell  built-in  functions  to  respond  to
     (hardware) signals


SYNOPSIS

  sh
     trap [argument n [n2]...]

  csh
     onintr [-| label]

  ksh
     *trap [arg sig [sig2...]]

  ksh93
     +trap [-p] [action condition...]


DESCRIPTION

  sh
     The trap command argument is to be read  and  executed  when
     the  shell  receives  numeric  or  symbolic  signal(s)  (n).
     (Note:  argument is scanned once when the trap  is  set  and
     once  when the trap is taken.) Trap commands are executed in
     order of signal number or corresponding symbolic names.  Any
     attempt  to set a trap on a signal that was ignored on entry
     to the current shell is ineffective. An attempt to  trap  on
     signal  11  (memory fault) produces an error. If argument is
     absent all trap(s) n are reset to their original values.  If
     argument  is  the  null string this signal is ignored by the
     shell and by the commands it invokes. If n is 0 the  command
     argument  is  executed on exit from the shell. The trap com-
     mand with no arguments prints a list of commands  associated
     with each signal number.

  csh
     onintr controls the action of the shell on interrupts.  With
     no  arguments,  onintr  restores  the  default action of the
     shell on interrupts. (The shell terminates shell scripts and
     returns  to  the  terminal  command input level). With the -
     argument, the shell ignores all  interrupts.  With  a  label
     argument,  the shell executes a goto label when an interrupt
     is received or a child process  terminates  because  it  was
     interrupted.

  ksh
     trap uses arg as a command to be read and executed when  the
     shell  receives signal(s) sig.  arg is scanned once when the
     trap is set and once when the trap is taken. Each sig can be

SunOS 5.11          Last change: 20 Nov 2007                    1


User Commands                                             trap(1)

     specified  as  a  number or as the name of the signal.  trap
     commands are executed in order of signal number. Any attempt
     to  set  a trap on a signal that was ignored on entry to the
     current shell is ineffective. If arg is  omitted  or  is  -,
     then  the  trap(s)  for each sig are reset to their original
     values. If arg is the null (the empty string,  for  example,
     "")  string  then this signal is ignored by the shell and by
     the commands it invokes. If sig is ERR then arg are executed
     whenever  a  command  has  a non-zero exit status. If sig is
     DEBUG then arg are executed after each command. If sig is  0
     or EXIT for a trap set outside any function then the command
     arg is executed on exit from the  shell.  The  trap  command
     with  no arguments prints a list of commands associated with
     each signal number.

     On this manual page, ksh(1) commands that  are  preceded  by
     one  or  two * (asterisks) are treated specially in the fol-
     lowing ways:

         1.   Variable assignment  lists  preceding  the  command
              remain in effect when the command completes.

         2.   I/O  redirections  are  processed  after   variable
              assignments.

         3.   Errors cause a script that contains them to abort.

         4.   Words, following a command preceded by ** that  are
              in   the  format  of  a  variable  assignment,  are
              expanded with the same rules as a variable  assign-
              ment.  This  means  that tilde substitution is per-
              formed after the = sign and word splitting and file
              name generation are not performed.

  ksh93
     trap is a special built-in that defines actions to be  taken
     when  conditions such as receiving a signal occur.  trap can
     also be used to display the current trap settings  on  stan-
     dard output.

     If action is -, trap resets each condition  to  the  default
     value.  If action is an empty string, the shell ignores each
     of the conditions if they  arise.  Otherwise,  the  argument
     action  is read and executed by the shell as if it were pro-
     cessed by eval when  one  of  the  corresponding  conditions
     arise.  The action of the trap overrides any previous action
     associated with each specified condition. The value of $? is
     not altered by the trap execution.

SunOS 5.11          Last change: 20 Nov 2007                    2


User Commands                                             trap(1)

     condition can be the name or number of a signal, or  one  of
     the following:

     EXIT     Execute this trap when the shell exits. If  defined
              within  a function with the function reserved word,
              executes the trap in the caller's environment  when
              the  function  returns. The trap action is restored
              to the value it had when it called the function.

     0        Same as EXIT.

     DEBUG    Execute before each simple command is executed  but
              after the arguments are expanded.

     ERR      Execute whenever set -e would cause  the  shell  to
              exit.

     KEYBD    Execute when a key is entered from a terminal  dev-
              ice.

     Signal names are case insensitive  and  the  sig  prefix  is
     optional.   Signals  that  were  ignored  on entry to a non-
     interactive shell cannot trapped or reset although doing  so
     does  not  report  an error. The use of signal numbers other
     than 1, 2, 3, 6, 9, 14, and 15 are not portable.

     Although trap is a special built-in, specifying a  condition
     that  the shell does not know about causes trap to exit with
     a non-zero exit status, but does not terminate the  invoking
     shell.

     If no action  or  conditions  are  specified  then  all  the
     current trap settings are written to standard output.

     The following options are supported  by  the  trap  built-in
     command in ksh93:

     -p    Causes the current traps to be output in a format that
           can be processed as input to the shell to recreate the
           current traps.

SunOS 5.11          Last change: 20 Nov 2007                    3


User Commands                                             trap(1)

     The trap built-in in ksh93 exits with one of  the  following
     values:

     0     Successful completion.

     >0    An error occurred.

     On this manual page, ksh93(1) commands that are preceded  by
     one  or two + (plus signs) are treated specially in the fol-
     lowing ways:

         1.   Variable assignment  lists  preceding  the  command
              remain in effect when the command completes.

         2.   I/O  redirections  are  processed  after   variable
              assignments.

         3.   Errors cause a script that contains them to abort.

         4.   They are not valid function names.

         5.   Words, following a command preceded by ++ that  are
              in   the  format  of  a  variable  assignment,  are
              expanded with the same rules as a variable  assign-
              ment.  This  means  that tilde substitution is per-
              formed after the = sign and word splitting and file
              name generation are not performed.


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWcsu                     |
    |_____________________________|_____________________________|


SEE ALSO

     csh(1), eval(1), exit(1), ksh(1),  ksh93(1),  sh(1),  attri-
     butes(5)

SunOS 5.11          Last change: 20 Nov 2007                    4


Man(1) output converted with man2html


FhG Schily's Home VED powered