Unix/Linux Go Back    


Linux 2.6 - man page for trap (linux section 1posix)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


TRAP(P) 			    POSIX Programmer's Manual				  TRAP(P)

NAME
       trap - trap signals

SYNOPSIS
       trap [action condition ...]

DESCRIPTION
       If action is '-' , the shell shall reset each condition to the default value. If action is
       null ( "" ), the shell shall ignore each specified condition if it arises. Otherwise,  the
       argument action shall be read and executed by the shell when one of the corresponding con-
       ditions arises. The action of trap shall override a previous action (either default action
       or  one	explicitly  set).  The value of "$?" after the trap action completes shall be the
       value it had before trap was invoked.

       The condition can be EXIT, 0 (equivalent to EXIT), or a signal specified using a  symbolic
       name,  without  the  SIG prefix, as listed in the tables of signal names in the <signal.h>
       header defined in the Base Definitions volume of IEEE Std 1003.1-2001, Chapter  13,  Head-
       ers; for example, HUP, INT, QUIT, TERM. Implementations may permit names with the SIG pre-
       fix or ignore case in signal names as an extension. Setting a trap for SIGKILL or  SIGSTOP
       produces undefined results.

       The environment in which the shell executes a trap on EXIT shall be identical to the envi-
       ronment immediately after the last command executed before the trap on EXIT was taken.

       Each time trap is invoked, the action argument shall be processed in a  manner  equivalent
       to:

	      eval action

       Signals	that were ignored on entry to a non-interactive shell cannot be trapped or reset,
       although no error need be reported when attempting to do  so.  An  interactive  shell  may
       reset  or  catch  signals  ignored on entry. Traps shall remain in place for a given shell
       until explicitly changed with another trap command.

       When a subshell is entered, traps that are not  being  ignored  are  set  to  the  default
       actions.  This  does not imply that the trap command cannot be used within the subshell to
       set new traps.

       The trap command with no arguments shall write to standard output a list of commands asso-
       ciated with each condition. The format shall be:

	      "trap -- %s %s ...\n", <action>, <condition> ...

       The  shell  shall  format  the  output, including the proper use of quoting, so that it is
       suitable for reinput to the shell as commands that achieve the same trapping results.  For
       example:

	      save_traps=$(trap)
	      ...
	      eval "$save_traps"

       XSI-conformant  systems also allow numeric signal numbers for the conditions corresponding
       to the following signal names:

				      Signal Number   Signal Name
				      1 	      SIGHUP
				      2 	      SIGINT
				      3 	      SIGQUIT

				      6 	      SIGABRT
				      9 	      SIGKILL
				      14	      SIGALRM
				      15	      SIGTERM

       The  trap  special  built-in  shall  conform   to   the	 Base	Definitions   volume   of
       IEEE Std 1003.1-2001, Section 12.2, Utility Syntax Guidelines.

OPTIONS
       None.

OPERANDS
       See the DESCRIPTION.

STDIN
       Not used.

INPUT FILES
       None.

ENVIRONMENT VARIABLES
       None.

ASYNCHRONOUS EVENTS
       Default.

STDOUT
       See the DESCRIPTION.

STDERR
       The standard error shall be used only for diagnostic messages.

OUTPUT FILES
       None.

EXTENDED DESCRIPTION
       None.

EXIT STATUS
       If  the trap name    or number  is invalid, a non-zero exit status shall be returned; oth-
       erwise, zero shall be returned.	For both interactive and non-interactive shells,  invalid
       signal  names	 or  numbers  shall not be considered a syntax error and do not cause the
       shell to abort.

CONSEQUENCES OF ERRORS
       Default.

       The following sections are informative.

APPLICATION USAGE
       None.

EXAMPLES
       Write out a list of all traps and actions:

	      trap

       Set a trap so the logout utility in the directory referred  to  by  the	HOME  environment
       variable executes when the shell terminates:

	      trap '$HOME/logout' EXIT

       or:

	      trap '$HOME/logout' 0

       Unset traps on INT, QUIT, TERM, and EXIT:

	      trap - INT QUIT TERM EXIT

RATIONALE
       Implementations	may  permit  lowercase signal names as an extension.  Implementations may
       also accept the names with the SIG prefix; no known historical shell does so. The trap and
       kill utilities in this volume of IEEE Std 1003.1-2001 are now consistent in their omission
       of the SIG prefix for signal names. Some kill implementations do not allow the prefix, and
       kill -l lists the signals without prefixes.

       Trapping  SIGKILL or SIGSTOP is syntactically accepted by some historical implementations,
       but it has no effect. Portable POSIX applications cannot attempt to trap these signals.

       The output format is not historical practice. Since the output of historical trap commands
       is  not	portable  (because  numeric  signal values are not portable) and had to change to
       become so, an opportunity was taken to format the output in a  way  that  a  shell  script
       could use to save and then later reuse a trap if it wanted.

       The KornShell uses an ERR trap that is triggered whenever set -e would cause an exit. This
       is allowable as an extension, but was not mandated, as other shells have not used it.

       The text about the environment for the EXIT trap invalidates the behavior of some histori-
       cal  versions  of  interactive  shells which, for example, close the standard input before
       executing a trap on 0. For example, in some historical interactive shell sessions the fol-
       lowing trap on 0 would always print "--" :

	      trap 'read foo; echo "-$foo-"' 0

FUTURE DIRECTIONS
       None.

SEE ALSO
       Special Built-In Utilities

COPYRIGHT
       Portions  of  this  text  are  reprinted  and  reproduced in electronic form from IEEE Std
       1003.1, 2003 Edition, Standard for Information Technology  --  Portable	Operating  System
       Interface  (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003 by
       the Institute of Electrical and Electronics Engineers, Inc and  The  Open  Group.  In  the
       event  of  any  discrepancy  between this version and the original IEEE and The Open Group
       Standard, the original IEEE and The Open Group Standard is the referee document. The orig-
       inal Standard can be obtained online at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group			       2003					  TRAP(P)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 04:07 AM.