diff options
Diffstat (limited to 'Doc/help/trap')
-rw-r--r-- | Doc/help/trap | 52 |
1 files changed, 26 insertions, 26 deletions
diff --git a/Doc/help/trap b/Doc/help/trap index e8de30f4a..f83cde2f6 100644 --- a/Doc/help/trap +++ b/Doc/help/trap @@ -1,18 +1,18 @@ 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 any of the signals specified by one or more - sig args. Each sig can be given as a number, or as the name of + 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 any of the signals specified by one or more + sig args. Each sig can be given as a number, or as the name of a signal either with or without the string SIG in front (e.g. 1, HUP, and SIGHUP are all the same signal). If arg is `-', then the specified signals are reset to their de- faults, or, if no sig args are present, all traps are reset. - If arg is an empty string, then the specified signals are ig- + If arg is an empty string, then the specified signals are ig- nored by the shell (and by the commands it invokes). - If arg is omitted but one or more sig args are provided (i.e. + If arg is omitted but one or more sig args are provided (i.e. the first argument is a valid signal number or name), the effect is the same as if arg had been specified as `-'. @@ -24,49 +24,49 @@ trap [ arg ] [ sig ... ] have no SIGERR signal (this is the usual case). If sig is DEBUG then arg will be executed before each command if - the option DEBUG_BEFORE_CMD is set (as it is by default), else + the option DEBUG_BEFORE_CMD is set (as it is by default), else after each command. Here, a `command' is what is described as a - `sublist' in the shell grammar, see the section SIMPLE COMMANDS - & PIPELINES in zshmisc(1). If DEBUG_BEFORE_CMD is set various - additional features are available. First, it is possible to - skip the next command by setting the option ERR_EXIT; see the - description of the ERR_EXIT option in zshoptions(1). Also, the + `sublist' in the shell grammar, see the section SIMPLE COMMANDS + & PIPELINES in zshmisc(1). If DEBUG_BEFORE_CMD is set various + additional features are available. First, it is possible to + skip the next command by setting the option ERR_EXIT; see the + description of the ERR_EXIT option in zshoptions(1). Also, the shell parameter ZSH_DEBUG_CMD is set to the string corresponding - to the command to be executed following the trap. Note that - this string is reconstructed from the internal format and may + to the command to be executed following the trap. Note that + this string is reconstructed from the internal format and may not be formatted the same way as the original text. The parame- ter is unset after the trap is executed. - 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. The value of $? at the start of execu- + 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. The value of $? at the start of execu- tion is the exit status of the shell or the return status of the function exiting. 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 runs before any + is executed when the shell terminates; the trap runs before any zshexit hook functions. ZERR, DEBUG, and EXIT traps are not executed inside other traps. - ZERR and DEBUG traps are kept within subshells, while other + ZERR and DEBUG traps are kept within subshells, while other traps are reset. - Note that traps defined with the trap builtin are slightly dif- + 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 vari- + have their own function environment (line numbers, local vari- ables, 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 + 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 an- + 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 an- other. |