instead of straight return; add same call at end of function.
Placeholder for future work in deinstalling signal handlers when
readline is not active
-
+
+ 10/25
+ -----
+expr.c
+ - exp2: catch arithmetic overflow when val1 == INTMAX_MIN and val2 == -1
+ for DIV and MOD and avoid SIGFPE. Bug report and pointer to fix
+ from Jaak Ristioja <jaak.ristioja@cyber.ee>
+ - expassign: same changes for arithmetic overflow for DIV and MOD
+
+ 10/28
+ -----
+subst.c
+ - parameter_brace_expand: allow pattern substitution when there is an
+ expansion of the form ${var/} as a no-op: replacing nothing with
+ nothing
+ - parameter_brace_patsub: don't need to check for PATSUB being NULL;
+ it never is
+
+flags.c
+ - if STRICT_POSIX is defined, initialize history_expansion to 0, since
+ history expansion (and its treatment of ! within double quotes) is
+ not a conforming posix environment. From austin-group issue 500
+
+lib/readline/histexpand.c
+ - history_expand: when processing a string within double quotes
+ (DQUOTE == 1), make the closing double quote inhibit history
+ expansion, as if the word were outside double quotes. In effect,
+ we assume that the double quote is followed by a character in
+ history_no_expand_chars. tcsh and csh seem to do this. This
+ answers a persistent complaint about history expansion
+
+ 10/29
+ -----
+make_cmd.c
+ - make_arith_for_command: use skip_to_delim to find the next `;'
+ when breaking the string between the double parens into three
+ separate components instead of a simple character loop. Fixes
+ bug reported by Dan Douglas <ormaaj@gmail.com>
try to delete the last history entry -- the `history -s' command
might not have been saved. Fixes bug reported by
lester@vmw-les.eng.vmware.com
+
+lib/readline/complete.c
+ - rl_callback_read_char: add calls to a macro CALLBACK_READ_RETURN
+ instead of straight return; add same call at end of function.
+ Placeholder for future work in deinstalling signal handlers when
+ readline is not active
+
+ 10/25
+ -----
+expr.c
+ - exp2: catch arithmetic overflow when val1 == INTMAX_MIN and val2 == -1
+ for DIV and MOD and avoid SIGFPE. Bug report and pointer to fix
+ from Jaak Ristioja <jaak.ristioja@cyber.ee>
+ - expassign: same changes for arithmetic overflow for DIV and MOD
+
+ 10/28
+ -----
+subst.c
+ - parameter_brace_expand: allow pattern substitution when there is an
+ expansion of the form ${var/} as a no-op: replacing nothing with
+ nothing
+ - parameter_brace_patsub: don't need to check for PATSUB being NULL;
+ it never is
+
+flags.c
+ - if STRICT_POSIX is defined, initialize history_expansion to 0, since
+ history expansion (and its treatment of ! within double quotes) is
+ not a conforming posix environment. From austin-group issue 500
+
+lib/readline/histexpand.c
+ - history_expand: when processing a string within double quotes
+ (DQUOTE == 1), make the closing double quote inhibit history
+ expansion, as if the word were outside double quotes. In effect,
+ we assume that the double quote is followed by a character in
+ history_no_expand_chars. tcsh and csh seem to do this. This
+ answers a persistent complaint about history expansion
tests/arith2.sub f
tests/arith3.sub f
tests/arith4.sub f
+tests/arith5.sub f
tests/array.tests f
tests/array.right f
tests/array1.sub f
{
array_add (&buffer[i], defs->lines);
- while (buffer[i] != '\n' && i < file_size)
+ while (i < file_size && buffer[i] != '\n')
i++;
buffer[i++] = '\0';
}
>\b>_\bw_\bo_\br_\bd 2>\b>&\b&1
- (see D\bDu\bup\bpl\bli\bic\bca\bat\bti\bin\bng\bg F\bFi\bil\ble\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs below).
+ When using the second form, _\bw_\bo_\br_\bd may not expand to a number or -\b-. If
+ it does, other redirection operators apply (see D\bDu\bup\bpl\bli\bic\bca\bat\bti\bin\bng\bg F\bFi\bil\ble\be
+ D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs below) for compatibility reasons.
A\bAp\bpp\bpe\ben\bnd\bdi\bin\bng\bg S\bSt\bta\ban\bnd\bda\bar\brd\bd O\bOu\but\btp\bpu\but\bt a\ban\bnd\bd S\bSt\bta\ban\bnd\bda\bar\brd\bd E\bEr\brr\bro\bor\br
This construct allows both the standard output (file descriptor 1) and
is used similarly to duplicate output file descriptors. If _\bn is not
specified, the standard output (file descriptor 1) is used. If the
digits in _\bw_\bo_\br_\bd do not specify a file descriptor open for output, a re-
- direction error occurs. As a special case, if _\bn is omitted, and _\bw_\bo_\br_\bd
- does not expand to one or more digits, the standard output and standard
- error are redirected as described previously.
+ direction error occurs. If _\bw_\bo_\br_\bd evaluates to -\b-, file descriptor _\bn is
+ closed. As a special case, if _\bn is omitted, and _\bw_\bo_\br_\bd does not expand
+ to one or more digits or -\b-, the standard output and standard error are
+ redirected as described previously.
M\bMo\bov\bvi\bin\bng\bg F\bFi\bil\ble\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs
The redirection operator
[_\bn]<\b<&\b&_\bd_\bi_\bg_\bi_\bt-\b-
- moves the file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or the standard
+ moves the file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or the standard
input (file descriptor 0) if _\bn is not specified. _\bd_\bi_\bg_\bi_\bt is closed after
being duplicated to _\bn.
[_\bn]>\b>&\b&_\bd_\bi_\bg_\bi_\bt-\b-
- moves the file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or the standard
+ moves the file descriptor _\bd_\bi_\bg_\bi_\bt to file descriptor _\bn, or the standard
output (file descriptor 1) if _\bn is not specified.
O\bOp\bpe\ben\bni\bin\bng\bg F\bFi\bil\ble\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bto\bor\brs\bs f\bfo\bor\br R\bRe\bea\bad\bdi\bin\bng\bg a\ban\bnd\bd W\bWr\bri\bit\bti\bin\bng\bg
[_\bn]<\b<>\b>_\bw_\bo_\br_\bd
- causes the file whose name is the expansion of _\bw_\bo_\br_\bd to be opened for
- both reading and writing on file descriptor _\bn, or on file descriptor 0
+ causes the file whose name is the expansion of _\bw_\bo_\br_\bd to be opened for
+ both reading and writing on file descriptor _\bn, or on file descriptor 0
if _\bn is not specified. If the file does not exist, it is created.
A\bAL\bLI\bIA\bAS\bSE\bES\bS
- _\bA_\bl_\bi_\ba_\bs_\be_\bs allow a string to be substituted for a word when it is used as
- the first word of a simple command. The shell maintains a list of
- aliases that may be set and unset with the a\bal\bli\bia\bas\bs and u\bun\bna\bal\bli\bia\bas\bs builtin
- commands (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below). The first word of each
- simple command, if unquoted, is checked to see if it has an alias. If
- so, that word is replaced by the text of the alias. The characters /\b/,
- $\b$, `\b`, and =\b= and any of the shell _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs or quoting characters
+ _\bA_\bl_\bi_\ba_\bs_\be_\bs allow a string to be substituted for a word when it is used as
+ the first word of a simple command. The shell maintains a list of
+ aliases that may be set and unset with the a\bal\bli\bia\bas\bs and u\bun\bna\bal\bli\bia\bas\bs builtin
+ commands (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below). The first word of each
+ simple command, if unquoted, is checked to see if it has an alias. If
+ so, that word is replaced by the text of the alias. The characters /\b/,
+ $\b$, `\b`, and =\b= and any of the shell _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br_\bs or quoting characters
listed above may not appear in an alias name. The replacement text may
- contain any valid shell input, including shell metacharacters. The
- first word of the replacement text is tested for aliases, but a word
- that is identical to an alias being expanded is not expanded a second
- time. This means that one may alias l\bls\bs to l\bls\bs -\b-F\bF, for instance, and
- b\bba\bas\bsh\bh does not try to recursively expand the replacement text. If the
- last character of the alias value is a _\bb_\bl_\ba_\bn_\bk, then the next command
+ contain any valid shell input, including shell metacharacters. The
+ first word of the replacement text is tested for aliases, but a word
+ that is identical to an alias being expanded is not expanded a second
+ time. This means that one may alias l\bls\bs to l\bls\bs -\b-F\bF, for instance, and
+ b\bba\bas\bsh\bh does not try to recursively expand the replacement text. If the
+ last character of the alias value is a _\bb_\bl_\ba_\bn_\bk, then the next command
word following the alias is also checked for alias expansion.
Aliases are created and listed with the a\bal\bli\bia\bas\bs command, and removed with
the u\bun\bna\bal\bli\bia\bas\bs command.
- There is no mechanism for using arguments in the replacement text. If
- arguments are needed, a shell function should be used (see F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
+ There is no mechanism for using arguments in the replacement text. If
+ arguments are needed, a shell function should be used (see F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
below).
- Aliases are not expanded when the shell is not interactive, unless the
- e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bs shell option is set using s\bsh\bho\bop\bpt\bt (see the description of
+ Aliases are not expanded when the shell is not interactive, unless the
+ e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bs shell option is set using s\bsh\bho\bop\bpt\bt (see the description of
s\bsh\bho\bop\bpt\bt under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
- The rules concerning the definition and use of aliases are somewhat
- confusing. B\bBa\bas\bsh\bh always reads at least one complete line of input
- before executing any of the commands on that line. Aliases are
- expanded when a command is read, not when it is executed. Therefore,
- an alias definition appearing on the same line as another command does
- not take effect until the next line of input is read. The commands
+ The rules concerning the definition and use of aliases are somewhat
+ confusing. B\bBa\bas\bsh\bh always reads at least one complete line of input
+ before executing any of the commands on that line. Aliases are
+ expanded when a command is read, not when it is executed. Therefore,
+ an alias definition appearing on the same line as another command does
+ not take effect until the next line of input is read. The commands
following the alias definition on that line are not affected by the new
- alias. This behavior is also an issue when functions are executed.
- Aliases are expanded when a function definition is read, not when the
- function is executed, because a function definition is itself a com-
+ alias. This behavior is also an issue when functions are executed.
+ Aliases are expanded when a function definition is read, not when the
+ function is executed, because a function definition is itself a com-
pound command. As a consequence, aliases defined in a function are not
- available until after that function is executed. To be safe, always
- put alias definitions on a separate line, and do not use a\bal\bli\bia\bas\bs in com-
+ available until after that function is executed. To be safe, always
+ put alias definitions on a separate line, and do not use a\bal\bli\bia\bas\bs in com-
pound commands.
For almost every purpose, aliases are superseded by shell functions.
F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
- A shell function, defined as described above under S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR,
- stores a series of commands for later execution. When the name of a
- shell function is used as a simple command name, the list of commands
+ A shell function, defined as described above under S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR,
+ stores a series of commands for later execution. When the name of a
+ shell function is used as a simple command name, the list of commands
associated with that function name is executed. Functions are executed
- in the context of the current shell; no new process is created to
- interpret them (contrast this with the execution of a shell script).
- When a function is executed, the arguments to the function become the
+ in the context of the current shell; no new process is created to
+ interpret them (contrast this with the execution of a shell script).
+ When a function is executed, the arguments to the function become the
positional parameters during its execution. The special parameter #\b# is
- updated to reflect the change. Special parameter 0\b0 is unchanged. The
- first element of the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE variable is set to the name of the func-
+ updated to reflect the change. Special parameter 0\b0 is unchanged. The
+ first element of the F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE variable is set to the name of the func-
tion while the function is executing.
- All other aspects of the shell execution environment are identical
+ All other aspects of the shell execution environment are identical
between a function and its caller with these exceptions: the D\bDE\bEB\bBU\bUG\bG and
- R\bRE\bET\bTU\bUR\bRN\bN traps (see the description of the t\btr\bra\bap\bp builtin under S\bSH\bHE\bEL\bLL\bL
- B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) are not inherited unless the function has been
- given the t\btr\bra\bac\bce\be attribute (see the description of the d\bde\bec\bcl\bla\bar\bre\be builtin
- below) or the -\b-o\bo f\bfu\bun\bnc\bct\btr\bra\bac\bce\be shell option has been enabled with the s\bse\bet\bt
- builtin (in which case all functions inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN
- traps), and the E\bER\bRR\bR trap is not inherited unless the -\b-o\bo e\ber\brr\brt\btr\bra\bac\bce\be shell
+ R\bRE\bET\bTU\bUR\bRN\bN traps (see the description of the t\btr\bra\bap\bp builtin under S\bSH\bHE\bEL\bLL\bL
+ B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) are not inherited unless the function has been
+ given the t\btr\bra\bac\bce\be attribute (see the description of the d\bde\bec\bcl\bla\bar\bre\be builtin
+ below) or the -\b-o\bo f\bfu\bun\bnc\bct\btr\bra\bac\bce\be shell option has been enabled with the s\bse\bet\bt
+ builtin (in which case all functions inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN
+ traps), and the E\bER\bRR\bR trap is not inherited unless the -\b-o\bo e\ber\brr\brt\btr\bra\bac\bce\be shell
option has been enabled.
- Variables local to the function may be declared with the l\blo\boc\bca\bal\bl builtin
+ Variables local to the function may be declared with the l\blo\boc\bca\bal\bl builtin
command. Ordinarily, variables and their values are shared between the
function and its caller.
- The F\bFU\bUN\bNC\bCN\bNE\bES\bST\bT variable, if set to a numeric value greater than 0,
- defines a maximum function nesting level. Function invocations that
+ The F\bFU\bUN\bNC\bCN\bNE\bES\bST\bT variable, if set to a numeric value greater than 0,
+ defines a maximum function nesting level. Function invocations that
exceed the limit cause the entire command to abort.
- If the builtin command r\bre\bet\btu\bur\brn\bn is executed in a function, the function
- completes and execution resumes with the next command after the func-
- tion call. Any command associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed
+ If the builtin command r\bre\bet\btu\bur\brn\bn is executed in a function, the function
+ completes and execution resumes with the next command after the func-
+ tion call. Any command associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed
before execution resumes. When a function completes, the values of the
- positional parameters and the special parameter #\b# are restored to the
+ positional parameters and the special parameter #\b# are restored to the
values they had prior to the function's execution.
- Function names and definitions may be listed with the -\b-f\bf option to the
+ Function names and definitions may be listed with the -\b-f\bf option to the
d\bde\bec\bcl\bla\bar\bre\be or t\bty\byp\bpe\bes\bse\bet\bt builtin commands. The -\b-F\bF option to d\bde\bec\bcl\bla\bar\bre\be or t\bty\byp\bpe\be-\b-
- s\bse\bet\bt will list the function names only (and optionally the source file
- and line number, if the e\bex\bxt\btd\bde\beb\bbu\bug\bg shell option is enabled). Functions
- may be exported so that subshells automatically have them defined with
- the -\b-f\bf option to the e\bex\bxp\bpo\bor\brt\bt builtin. A function definition may be
- deleted using the -\b-f\bf option to the u\bun\bns\bse\bet\bt builtin. Note that shell
+ s\bse\bet\bt will list the function names only (and optionally the source file
+ and line number, if the e\bex\bxt\btd\bde\beb\bbu\bug\bg shell option is enabled). Functions
+ may be exported so that subshells automatically have them defined with
+ the -\b-f\bf option to the e\bex\bxp\bpo\bor\brt\bt builtin. A function definition may be
+ deleted using the -\b-f\bf option to the u\bun\bns\bse\bet\bt builtin. Note that shell
functions and variables with the same name may result in multiple iden-
- tically-named entries in the environment passed to the shell's chil-
+ tically-named entries in the environment passed to the shell's chil-
dren. Care should be taken in cases where this may cause a problem.
Functions may be recursive. The F\bFU\bUN\bNC\bCN\bNE\bES\bST\bT variable may be used to limit
- the depth of the function call stack and restrict the number of func-
- tion invocations. By default, no limit is imposed on the number of
+ the depth of the function call stack and restrict the number of func-
+ tion invocations. By default, no limit is imposed on the number of
recursive calls.
A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN
- The shell allows arithmetic expressions to be evaluated, under certain
- circumstances (see the l\ble\bet\bt and d\bde\bec\bcl\bla\bar\bre\be builtin commands and A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc
- E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn). Evaluation is done in fixed-width integers with no check
- for overflow, though division by 0 is trapped and flagged as an error.
- The operators and their precedence, associativity, and values are the
- same as in the C language. The following list of operators is grouped
- into levels of equal-precedence operators. The levels are listed in
+ The shell allows arithmetic expressions to be evaluated, under certain
+ circumstances (see the l\ble\bet\bt and d\bde\bec\bcl\bla\bar\bre\be builtin commands and A\bAr\bri\bit\bth\bhm\bme\bet\bti\bic\bc
+ E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn). Evaluation is done in fixed-width integers with no check
+ for overflow, though division by 0 is trapped and flagged as an error.
+ The operators and their precedence, associativity, and values are the
+ same as in the C language. The following list of operators is grouped
+ into levels of equal-precedence operators. The levels are listed in
order of decreasing precedence.
_\bi_\bd+\b++\b+ _\bi_\bd-\b--\b-
_\be_\bx_\bp_\br_\b1 ,\b, _\be_\bx_\bp_\br_\b2
comma
- Shell variables are allowed as operands; parameter expansion is per-
+ Shell variables are allowed as operands; parameter expansion is per-
formed before the expression is evaluated. Within an expression, shell
- variables may also be referenced by name without using the parameter
- expansion syntax. A shell variable that is null or unset evaluates to
+ variables may also be referenced by name without using the parameter
+ expansion syntax. A shell variable that is null or unset evaluates to
0 when referenced by name without using the parameter expansion syntax.
- The value of a variable is evaluated as an arithmetic expression when
- it is referenced, or when a variable which has been given the _\bi_\bn_\bt_\be_\bg_\be_\br
+ The value of a variable is evaluated as an arithmetic expression when
+ it is referenced, or when a variable which has been given the _\bi_\bn_\bt_\be_\bg_\be_\br
attribute using d\bde\bec\bcl\bla\bar\bre\be -\b-i\bi is assigned a value. A null value evaluates
- to 0. A shell variable need not have its _\bi_\bn_\bt_\be_\bg_\be_\br attribute turned on
+ to 0. A shell variable need not have its _\bi_\bn_\bt_\be_\bg_\be_\br attribute turned on
to be used in an expression.
Constants with a leading 0 are interpreted as octal numbers. A leading
- 0x or 0X denotes hexadecimal. Otherwise, numbers take the form
- [_\bb_\ba_\bs_\be_\b#]n, where the optional _\bb_\ba_\bs_\be is a decimal number between 2 and 64
- representing the arithmetic base, and _\bn is a number in that base. If
- _\bb_\ba_\bs_\be_\b# is omitted, then base 10 is used. The digits greater than 9 are
- represented by the lowercase letters, the uppercase letters, @, and _,
- in that order. If _\bb_\ba_\bs_\be is less than or equal to 36, lowercase and
- uppercase letters may be used interchangeably to represent numbers
+ 0x or 0X denotes hexadecimal. Otherwise, numbers take the form
+ [_\bb_\ba_\bs_\be_\b#]n, where the optional _\bb_\ba_\bs_\be is a decimal number between 2 and 64
+ representing the arithmetic base, and _\bn is a number in that base. If
+ _\bb_\ba_\bs_\be_\b# is omitted, then base 10 is used. The digits greater than 9 are
+ represented by the lowercase letters, the uppercase letters, @, and _,
+ in that order. If _\bb_\ba_\bs_\be is less than or equal to 36, lowercase and
+ uppercase letters may be used interchangeably to represent numbers
between 10 and 35.
- Operators are evaluated in order of precedence. Sub-expressions in
- parentheses are evaluated first and may override the precedence rules
+ Operators are evaluated in order of precedence. Sub-expressions in
+ parentheses are evaluated first and may override the precedence rules
above.
C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS
- Conditional expressions are used by the [\b[[\b[ compound command and the
- t\bte\bes\bst\bt and [\b[ builtin commands to test file attributes and perform string
- and arithmetic comparisons. Expressions are formed from the following
- unary or binary primaries. If any _\bf_\bi_\bl_\be argument to one of the pri-
+ Conditional expressions are used by the [\b[[\b[ compound command and the
+ t\bte\bes\bst\bt and [\b[ builtin commands to test file attributes and perform string
+ and arithmetic comparisons. Expressions are formed from the following
+ unary or binary primaries. If any _\bf_\bi_\bl_\be argument to one of the pri-
maries is of the form _\b/_\bd_\be_\bv_\b/_\bf_\bd_\b/_\bn, then file descriptor _\bn is checked. If
- the _\bf_\bi_\bl_\be argument to one of the primaries is one of _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bi_\bn,
- _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bo_\bu_\bt, or _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\be_\br_\br, file descriptor 0, 1, or 2, respectively,
+ the _\bf_\bi_\bl_\be argument to one of the primaries is one of _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bi_\bn,
+ _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\bo_\bu_\bt, or _\b/_\bd_\be_\bv_\b/_\bs_\bt_\bd_\be_\br_\br, file descriptor 0, 1, or 2, respectively,
is checked.
Unless otherwise specified, primaries that operate on files follow sym-
bolic links and operate on the target of the link, rather than the link
itself.
- When used with [\b[[\b[, the <\b< and >\b> operators sort lexicographically using
+ When used with [\b[[\b[, the <\b< and >\b> operators sort lexicographically using
the current locale. The t\bte\bes\bst\bt command sorts using ASCII ordering.
-\b-a\ba _\bf_\bi_\bl_\be
-\b-L\bL _\bf_\bi_\bl_\be
True if _\bf_\bi_\bl_\be exists and is a symbolic link.
-\b-N\bN _\bf_\bi_\bl_\be
- True if _\bf_\bi_\bl_\be exists and has been modified since it was last
+ True if _\bf_\bi_\bl_\be exists and has been modified since it was last
read.
-\b-O\bO _\bf_\bi_\bl_\be
True if _\bf_\bi_\bl_\be exists and is owned by the effective user id.
-\b-S\bS _\bf_\bi_\bl_\be
True if _\bf_\bi_\bl_\be exists and is a socket.
_\bf_\bi_\bl_\be_\b1 -\b-e\bef\bf _\bf_\bi_\bl_\be_\b2
- True if _\bf_\bi_\bl_\be_\b1 and _\bf_\bi_\bl_\be_\b2 refer to the same device and inode num-
+ True if _\bf_\bi_\bl_\be_\b1 and _\bf_\bi_\bl_\be_\b2 refer to the same device and inode num-
bers.
_\bf_\bi_\bl_\be_\b1 -n\bnt\bt _\bf_\bi_\bl_\be_\b2
- True if _\bf_\bi_\bl_\be_\b1 is newer (according to modification date) than
+ True if _\bf_\bi_\bl_\be_\b1 is newer (according to modification date) than
_\bf_\bi_\bl_\be_\b2, or if _\bf_\bi_\bl_\be_\b1 exists and _\bf_\bi_\bl_\be_\b2 does not.
_\bf_\bi_\bl_\be_\b1 -o\bot\bt _\bf_\bi_\bl_\be_\b2
- True if _\bf_\bi_\bl_\be_\b1 is older than _\bf_\bi_\bl_\be_\b2, or if _\bf_\bi_\bl_\be_\b2 exists and _\bf_\bi_\bl_\be_\b1
+ True if _\bf_\bi_\bl_\be_\b1 is older than _\bf_\bi_\bl_\be_\b2, or if _\bf_\bi_\bl_\be_\b2 exists and _\bf_\bi_\bl_\be_\b1
does not.
-\b-o\bo _\bo_\bp_\bt_\bn_\ba_\bm_\be
- True if the shell option _\bo_\bp_\bt_\bn_\ba_\bm_\be is enabled. See the list of
- options under the description of the -\b-o\bo option to the s\bse\bet\bt
+ True if the shell option _\bo_\bp_\bt_\bn_\ba_\bm_\be is enabled. See the list of
+ options under the description of the -\b-o\bo option to the s\bse\bet\bt
builtin below.
-\b-v\bv _\bv_\ba_\br_\bn_\ba_\bm_\be
- True if the shell variable _\bv_\ba_\br_\bn_\ba_\bm_\be is set (has been assigned a
+ True if the shell variable _\bv_\ba_\br_\bn_\ba_\bm_\be is set (has been assigned a
value).
-\b-z\bz _\bs_\bt_\br_\bi_\bn_\bg
True if the length of _\bs_\bt_\br_\bi_\bn_\bg is zero.
_\bs_\bt_\br_\bi_\bn_\bg_\b1 =\b==\b= _\bs_\bt_\br_\bi_\bn_\bg_\b2
_\bs_\bt_\br_\bi_\bn_\bg_\b1 =\b= _\bs_\bt_\br_\bi_\bn_\bg_\b2
- True if the strings are equal. =\b= should be used with the t\bte\bes\bst\bt
+ True if the strings are equal. =\b= should be used with the t\bte\bes\bst\bt
command for POSIX conformance.
_\bs_\bt_\br_\bi_\bn_\bg_\b1 !\b!=\b= _\bs_\bt_\br_\bi_\bn_\bg_\b2
True if _\bs_\bt_\br_\bi_\bn_\bg_\b1 sorts after _\bs_\bt_\br_\bi_\bn_\bg_\b2 lexicographically.
_\ba_\br_\bg_\b1 O\bOP\bP _\ba_\br_\bg_\b2
- O\bOP\bP is one of -\b-e\beq\bq, -\b-n\bne\be, -\b-l\blt\bt, -\b-l\ble\be, -\b-g\bgt\bt, or -\b-g\bge\be. These arithmetic
- binary operators return true if _\ba_\br_\bg_\b1 is equal to, not equal to,
- less than, less than or equal to, greater than, or greater than
- or equal to _\ba_\br_\bg_\b2, respectively. _\bA_\br_\bg_\b1 and _\ba_\br_\bg_\b2 may be positive
+ O\bOP\bP is one of -\b-e\beq\bq, -\b-n\bne\be, -\b-l\blt\bt, -\b-l\ble\be, -\b-g\bgt\bt, or -\b-g\bge\be. These arithmetic
+ binary operators return true if _\ba_\br_\bg_\b1 is equal to, not equal to,
+ less than, less than or equal to, greater than, or greater than
+ or equal to _\ba_\br_\bg_\b2, respectively. _\bA_\br_\bg_\b1 and _\ba_\br_\bg_\b2 may be positive
or negative integers.
S\bSI\bIM\bMP\bPL\bLE\bE C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
- When a simple command is executed, the shell performs the following
+ When a simple command is executed, the shell performs the following
expansions, assignments, and redirections, from left to right.
- 1. The words that the parser has marked as variable assignments
- (those preceding the command name) and redirections are saved
+ 1. The words that the parser has marked as variable assignments
+ (those preceding the command name) and redirections are saved
for later processing.
- 2. The words that are not variable assignments or redirections are
- expanded. If any words remain after expansion, the first word
- is taken to be the name of the command and the remaining words
+ 2. The words that are not variable assignments or redirections are
+ expanded. If any words remain after expansion, the first word
+ is taken to be the name of the command and the remaining words
are the arguments.
3. Redirections are performed as described above under R\bRE\bED\bDI\bIR\bRE\bEC\bCT\bTI\bIO\bON\bN.
4. The text after the =\b= in each variable assignment undergoes tilde
expansion, parameter expansion, command substitution, arithmetic
- expansion, and quote removal before being assigned to the vari-
+ expansion, and quote removal before being assigned to the vari-
able.
If no command name results, the variable assignments affect the current
- shell environment. Otherwise, the variables are added to the environ-
- ment of the executed command and do not affect the current shell envi-
- ronment. If any of the assignments attempts to assign a value to a
- readonly variable, an error occurs, and the command exits with a non-
+ shell environment. Otherwise, the variables are added to the environ-
+ ment of the executed command and do not affect the current shell envi-
+ ronment. If any of the assignments attempts to assign a value to a
+ readonly variable, an error occurs, and the command exits with a non-
zero status.
- If no command name results, redirections are performed, but do not
- affect the current shell environment. A redirection error causes the
+ If no command name results, redirections are performed, but do not
+ affect the current shell environment. A redirection error causes the
command to exit with a non-zero status.
- If there is a command name left after expansion, execution proceeds as
- described below. Otherwise, the command exits. If one of the expan-
- sions contained a command substitution, the exit status of the command
- is the exit status of the last command substitution performed. If
+ If there is a command name left after expansion, execution proceeds as
+ described below. Otherwise, the command exits. If one of the expan-
+ sions contained a command substitution, the exit status of the command
+ is the exit status of the last command substitution performed. If
there were no command substitutions, the command exits with a status of
zero.
C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN
- After a command has been split into words, if it results in a simple
- command and an optional list of arguments, the following actions are
+ After a command has been split into words, if it results in a simple
+ command and an optional list of arguments, the following actions are
taken.
- If the command name contains no slashes, the shell attempts to locate
- it. If there exists a shell function by that name, that function is
- invoked as described above in F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS. If the name does not match a
- function, the shell searches for it in the list of shell builtins. If
+ If the command name contains no slashes, the shell attempts to locate
+ it. If there exists a shell function by that name, that function is
+ invoked as described above in F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS. If the name does not match a
+ function, the shell searches for it in the list of shell builtins. If
a match is found, that builtin is invoked.
- If the name is neither a shell function nor a builtin, and contains no
- slashes, b\bba\bas\bsh\bh searches each element of the P\bPA\bAT\bTH\bH for a directory con-
- taining an executable file by that name. B\bBa\bas\bsh\bh uses a hash table to
- remember the full pathnames of executable files (see h\bha\bas\bsh\bh under S\bSH\bHE\bEL\bLL\bL
- B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below). A full search of the directories in P\bPA\bAT\bTH\bH is
- performed only if the command is not found in the hash table. If the
+ If the name is neither a shell function nor a builtin, and contains no
+ slashes, b\bba\bas\bsh\bh searches each element of the P\bPA\bAT\bTH\bH for a directory con-
+ taining an executable file by that name. B\bBa\bas\bsh\bh uses a hash table to
+ remember the full pathnames of executable files (see h\bha\bas\bsh\bh under S\bSH\bHE\bEL\bLL\bL
+ B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below). A full search of the directories in P\bPA\bAT\bTH\bH is
+ performed only if the command is not found in the hash table. If the
search is unsuccessful, the shell searches for a defined shell function
named c\bco\bom\bmm\bma\ban\bnd\bd_\b_n\bno\bot\bt_\b_f\bfo\bou\bun\bnd\bd_\b_h\bha\ban\bnd\bdl\ble\be. If that function exists, it is invoked
- with the original command and the original command's arguments as its
- arguments, and the function's exit status becomes the exit status of
- the shell. If that function is not defined, the shell prints an error
+ with the original command and the original command's arguments as its
+ arguments, and the function's exit status becomes the exit status of
+ the shell. If that function is not defined, the shell prints an error
message and returns an exit status of 127.
- If the search is successful, or if the command name contains one or
+ If the search is successful, or if the command name contains one or
more slashes, the shell executes the named program in a separate execu-
tion environment. Argument 0 is set to the name given, and the remain-
ing arguments to the command are set to the arguments given, if any.
- If this execution fails because the file is not in executable format,
- and the file is not a directory, it is assumed to be a _\bs_\bh_\be_\bl_\bl _\bs_\bc_\br_\bi_\bp_\bt, a
- file containing shell commands. A subshell is spawned to execute it.
- This subshell reinitializes itself, so that the effect is as if a new
- shell had been invoked to handle the script, with the exception that
- the locations of commands remembered by the parent (see h\bha\bas\bsh\bh below
+ If this execution fails because the file is not in executable format,
+ and the file is not a directory, it is assumed to be a _\bs_\bh_\be_\bl_\bl _\bs_\bc_\br_\bi_\bp_\bt, a
+ file containing shell commands. A subshell is spawned to execute it.
+ This subshell reinitializes itself, so that the effect is as if a new
+ shell had been invoked to handle the script, with the exception that
+ the locations of commands remembered by the parent (see h\bha\bas\bsh\bh below
under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS) are retained by the child.
- If the program is a file beginning with #\b#!\b!, the remainder of the first
- line specifies an interpreter for the program. The shell executes the
+ If the program is a file beginning with #\b#!\b!, the remainder of the first
+ line specifies an interpreter for the program. The shell executes the
specified interpreter on operating systems that do not handle this exe-
cutable format themselves. The arguments to the interpreter consist of
- a single optional argument following the interpreter name on the first
- line of the program, followed by the name of the program, followed by
+ a single optional argument following the interpreter name on the first
+ line of the program, followed by the name of the program, followed by
the command arguments, if any.
C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
- The shell has an _\be_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn _\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt, which consists of the follow-
+ The shell has an _\be_\bx_\be_\bc_\bu_\bt_\bi_\bo_\bn _\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt, which consists of the follow-
ing:
- +\bo open files inherited by the shell at invocation, as modified by
+ +\bo open files inherited by the shell at invocation, as modified by
redirections supplied to the e\bex\bxe\bec\bc builtin
- +\bo the current working directory as set by c\bcd\bd, p\bpu\bus\bsh\bhd\bd, or p\bpo\bop\bpd\bd, or
+ +\bo the current working directory as set by c\bcd\bd, p\bpu\bus\bsh\bhd\bd, or p\bpo\bop\bpd\bd, or
inherited by the shell at invocation
- +\bo the file creation mode mask as set by u\bum\bma\bas\bsk\bk or inherited from
+ +\bo the file creation mode mask as set by u\bum\bma\bas\bsk\bk or inherited from
the shell's parent
+\bo current traps set by t\btr\bra\bap\bp
+\bo shell parameters that are set by variable assignment or with s\bse\bet\bt
or inherited from the shell's parent in the environment
- +\bo shell functions defined during execution or inherited from the
+ +\bo shell functions defined during execution or inherited from the
shell's parent in the environment
- +\bo options enabled at invocation (either by default or with com-
+ +\bo options enabled at invocation (either by default or with com-
mand-line arguments) or by s\bse\bet\bt
+\bo options enabled by s\bsh\bho\bop\bpt\bt
+\bo shell aliases defined with a\bal\bli\bia\bas\bs
- +\bo various process IDs, including those of background jobs, the
+ +\bo various process IDs, including those of background jobs, the
value of $\b$$\b$, and the value of P\bPP\bPI\bID\bD
- When a simple command other than a builtin or shell function is to be
- executed, it is invoked in a separate execution environment that con-
- sists of the following. Unless otherwise noted, the values are inher-
+ When a simple command other than a builtin or shell function is to be
+ executed, it is invoked in a separate execution environment that con-
+ sists of the following. Unless otherwise noted, the values are inher-
ited from the shell.
- +\bo the shell's open files, plus any modifications and additions
+ +\bo the shell's open files, plus any modifications and additions
specified by redirections to the command
+\bo the current working directory
+\bo the file creation mode mask
- +\bo shell variables and functions marked for export, along with
+ +\bo shell variables and functions marked for export, along with
variables exported for the command, passed in the environment
+\bo traps caught by the shell are reset to the values inherited from
the shell's parent, and traps ignored by the shell are ignored
- A command invoked in this separate environment cannot affect the
+ A command invoked in this separate environment cannot affect the
shell's execution environment.
- Command substitution, commands grouped with parentheses, and asynchro-
+ Command substitution, commands grouped with parentheses, and asynchro-
nous commands are invoked in a subshell environment that is a duplicate
- of the shell environment, except that traps caught by the shell are
+ of the shell environment, except that traps caught by the shell are
reset to the values that the shell inherited from its parent at invoca-
tion. Builtin commands that are invoked as part of a pipeline are also
executed in a subshell environment. Changes made to the subshell envi-
ronment cannot affect the shell's execution environment.
Subshells spawned to execute command substitutions inherit the value of
- the -\b-e\be option from the parent shell. When not in _\bp_\bo_\bs_\bi_\bx mode, b\bba\bas\bsh\bh
+ the -\b-e\be option from the parent shell. When not in _\bp_\bo_\bs_\bi_\bx mode, b\bba\bas\bsh\bh
clears the -\b-e\be option in such subshells.
- If a command is followed by a &\b& and job control is not active, the
- default standard input for the command is the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl.
- Otherwise, the invoked command inherits the file descriptors of the
+ If a command is followed by a &\b& and job control is not active, the
+ default standard input for the command is the empty file _\b/_\bd_\be_\bv_\b/_\bn_\bu_\bl_\bl.
+ Otherwise, the invoked command inherits the file descriptors of the
calling shell as modified by redirections.
E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
- When a program is invoked it is given an array of strings called the
+ When a program is invoked it is given an array of strings called the
_\be_\bn_\bv_\bi_\br_\bo_\bn_\bm_\be_\bn_\bt. This is a list of _\bn_\ba_\bm_\be-_\bv_\ba_\bl_\bu_\be pairs, of the form
_\bn_\ba_\bm_\be=_\bv_\ba_\bl_\bu_\be.
- The shell provides several ways to manipulate the environment. On
+ The shell provides several ways to manipulate the environment. On
invocation, the shell scans its own environment and creates a parameter
- for each name found, automatically marking it for _\be_\bx_\bp_\bo_\br_\bt to child pro-
- cesses. Executed commands inherit the environment. The e\bex\bxp\bpo\bor\brt\bt and
- d\bde\bec\bcl\bla\bar\bre\be -\b-x\bx commands allow parameters and functions to be added to and
+ for each name found, automatically marking it for _\be_\bx_\bp_\bo_\br_\bt to child pro-
+ cesses. Executed commands inherit the environment. The e\bex\bxp\bpo\bor\brt\bt and
+ d\bde\bec\bcl\bla\bar\bre\be -\b-x\bx commands allow parameters and functions to be added to and
deleted from the environment. If the value of a parameter in the envi-
- ronment is modified, the new value becomes part of the environment,
- replacing the old. The environment inherited by any executed command
- consists of the shell's initial environment, whose values may be modi-
- fied in the shell, less any pairs removed by the u\bun\bns\bse\bet\bt command, plus
+ ronment is modified, the new value becomes part of the environment,
+ replacing the old. The environment inherited by any executed command
+ consists of the shell's initial environment, whose values may be modi-
+ fied in the shell, less any pairs removed by the u\bun\bns\bse\bet\bt command, plus
any additions via the e\bex\bxp\bpo\bor\brt\bt and d\bde\bec\bcl\bla\bar\bre\be -\b-x\bx commands.
- The environment for any _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd or function may be augmented
- temporarily by prefixing it with parameter assignments, as described
+ The environment for any _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd or function may be augmented
+ temporarily by prefixing it with parameter assignments, as described
above in P\bPA\bAR\bRA\bAM\bME\bET\bTE\bER\bRS\bS. These assignment statements affect only the envi-
ronment seen by that command.
- If the -\b-k\bk option is set (see the s\bse\bet\bt builtin command below), then _\ba_\bl_\bl
- parameter assignments are placed in the environment for a command, not
+ If the -\b-k\bk option is set (see the s\bse\bet\bt builtin command below), then _\ba_\bl_\bl
+ parameter assignments are placed in the environment for a command, not
just those that precede the command name.
- When b\bba\bas\bsh\bh invokes an external command, the variable _\b_ is set to the
+ When b\bba\bas\bsh\bh invokes an external command, the variable _\b_ is set to the
full filename of the command and passed to that command in its environ-
ment.
E\bEX\bXI\bIT\bT S\bST\bTA\bAT\bTU\bUS\bS
- The exit status of an executed command is the value returned by the
+ The exit status of an executed command is the value returned by the
_\bw_\ba_\bi_\bt_\bp_\bi_\bd system call or equivalent function. Exit statuses fall between
- 0 and 255, though, as explained below, the shell may use values above
+ 0 and 255, though, as explained below, the shell may use values above
125 specially. Exit statuses from shell builtins and compound commands
- are also limited to this range. Under certain circumstances, the shell
+ are also limited to this range. Under certain circumstances, the shell
will use special values to indicate specific failure modes.
For the shell's purposes, a command which exits with a zero exit status
- has succeeded. An exit status of zero indicates success. A non-zero
- exit status indicates failure. When a command terminates on a fatal
+ has succeeded. An exit status of zero indicates success. A non-zero
+ exit status indicates failure. When a command terminates on a fatal
signal _\bN, b\bba\bas\bsh\bh uses the value of 128+_\bN as the exit status.
- If a command is not found, the child process created to execute it
- returns a status of 127. If a command is found but is not executable,
+ If a command is not found, the child process created to execute it
+ returns a status of 127. If a command is found but is not executable,
the return status is 126.
If a command fails because of an error during expansion or redirection,
the exit status is greater than zero.
- Shell builtin commands return a status of 0 (_\bt_\br_\bu_\be) if successful, and
- non-zero (_\bf_\ba_\bl_\bs_\be) if an error occurs while they execute. All builtins
+ Shell builtin commands return a status of 0 (_\bt_\br_\bu_\be) if successful, and
+ non-zero (_\bf_\ba_\bl_\bs_\be) if an error occurs while they execute. All builtins
return an exit status of 2 to indicate incorrect usage.
- B\bBa\bas\bsh\bh itself returns the exit status of the last command executed,
- unless a syntax error occurs, in which case it exits with a non-zero
+ B\bBa\bas\bsh\bh itself returns the exit status of the last command executed,
+ unless a syntax error occurs, in which case it exits with a non-zero
value. See also the e\bex\bxi\bit\bt builtin command below.
S\bSI\bIG\bGN\bNA\bAL\bLS\bS
- When b\bba\bas\bsh\bh is interactive, in the absence of any traps, it ignores
+ When b\bba\bas\bsh\bh is interactive, in the absence of any traps, it ignores
S\bSI\bIG\bGT\bTE\bER\bRM\bM (so that k\bki\bil\bll\bl 0\b0 does not kill an interactive shell), and S\bSI\bIG\bGI\bIN\bNT\bT
- is caught and handled (so that the w\bwa\bai\bit\bt builtin is interruptible). In
- all cases, b\bba\bas\bsh\bh ignores S\bSI\bIG\bGQ\bQU\bUI\bIT\bT. If job control is in effect, b\bba\bas\bsh\bh
+ is caught and handled (so that the w\bwa\bai\bit\bt builtin is interruptible). In
+ all cases, b\bba\bas\bsh\bh ignores S\bSI\bIG\bGQ\bQU\bUI\bIT\bT. If job control is in effect, b\bba\bas\bsh\bh
ignores S\bSI\bIG\bGT\bTT\bTI\bIN\bN, S\bSI\bIG\bGT\bTT\bTO\bOU\bU, and S\bSI\bIG\bGT\bTS\bST\bTP\bP.
Non-builtin commands run by b\bba\bas\bsh\bh have signal handlers set to the values
- inherited by the shell from its parent. When job control is not in
- effect, asynchronous commands ignore S\bSI\bIG\bGI\bIN\bNT\bT and S\bSI\bIG\bGQ\bQU\bUI\bIT\bT in addition to
- these inherited handlers. Commands run as a result of command substi-
+ inherited by the shell from its parent. When job control is not in
+ effect, asynchronous commands ignore S\bSI\bIG\bGI\bIN\bNT\bT and S\bSI\bIG\bGQ\bQU\bUI\bIT\bT in addition to
+ these inherited handlers. Commands run as a result of command substi-
tution ignore the keyboard-generated job control signals S\bSI\bIG\bGT\bTT\bTI\bIN\bN, S\bSI\bIG\bGT\bT-\b-
T\bTO\bOU\bU, and S\bSI\bIG\bGT\bTS\bST\bTP\bP.
- The shell exits by default upon receipt of a S\bSI\bIG\bGH\bHU\bUP\bP. Before exiting,
- an interactive shell resends the S\bSI\bIG\bGH\bHU\bUP\bP to all jobs, running or
+ The shell exits by default upon receipt of a S\bSI\bIG\bGH\bHU\bUP\bP. Before exiting,
+ an interactive shell resends the S\bSI\bIG\bGH\bHU\bUP\bP to all jobs, running or
stopped. Stopped jobs are sent S\bSI\bIG\bGC\bCO\bON\bNT\bT to ensure that they receive the
- S\bSI\bIG\bGH\bHU\bUP\bP. To prevent the shell from sending the signal to a particular
- job, it should be removed from the jobs table with the d\bdi\bis\bso\bow\bwn\bn builtin
- (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) or marked to not receive S\bSI\bIG\bGH\bHU\bUP\bP
+ S\bSI\bIG\bGH\bHU\bUP\bP. To prevent the shell from sending the signal to a particular
+ job, it should be removed from the jobs table with the d\bdi\bis\bso\bow\bwn\bn builtin
+ (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) or marked to not receive S\bSI\bIG\bGH\bHU\bUP\bP
using d\bdi\bis\bso\bow\bwn\bn -\b-h\bh.
- If the h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt shell option has been set with s\bsh\bho\bop\bpt\bt, b\bba\bas\bsh\bh sends a
+ If the h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt shell option has been set with s\bsh\bho\bop\bpt\bt, b\bba\bas\bsh\bh sends a
S\bSI\bIG\bGH\bHU\bUP\bP to all jobs when an interactive login shell exits.
- If b\bba\bas\bsh\bh is waiting for a command to complete and receives a signal for
+ If b\bba\bas\bsh\bh is waiting for a command to complete and receives a signal for
which a trap has been set, the trap will not be executed until the com-
- mand completes. When b\bba\bas\bsh\bh is waiting for an asynchronous command via
- the w\bwa\bai\bit\bt builtin, the reception of a signal for which a trap has been
+ mand completes. When b\bba\bas\bsh\bh is waiting for an asynchronous command via
+ the w\bwa\bai\bit\bt builtin, the reception of a signal for which a trap has been
set will cause the w\bwa\bai\bit\bt builtin to return immediately with an exit sta-
tus greater than 128, immediately after which the trap is executed.
J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL
- _\bJ_\bo_\bb _\bc_\bo_\bn_\bt_\br_\bo_\bl refers to the ability to selectively stop (_\bs_\bu_\bs_\bp_\be_\bn_\bd) the
+ _\bJ_\bo_\bb _\bc_\bo_\bn_\bt_\br_\bo_\bl refers to the ability to selectively stop (_\bs_\bu_\bs_\bp_\be_\bn_\bd) the
execution of processes and continue (_\br_\be_\bs_\bu_\bm_\be) their execution at a later
- point. A user typically employs this facility via an interactive
- interface supplied jointly by the operating system kernel's terminal
+ point. A user typically employs this facility via an interactive
+ interface supplied jointly by the operating system kernel's terminal
driver and b\bba\bas\bsh\bh.
- The shell associates a _\bj_\bo_\bb with each pipeline. It keeps a table of
- currently executing jobs, which may be listed with the j\bjo\bob\bbs\bs command.
- When b\bba\bas\bsh\bh starts a job asynchronously (in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd), it prints a
+ The shell associates a _\bj_\bo_\bb with each pipeline. It keeps a table of
+ currently executing jobs, which may be listed with the j\bjo\bob\bbs\bs command.
+ When b\bba\bas\bsh\bh starts a job asynchronously (in the _\bb_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd), it prints a
line that looks like:
[1] 25647
indicating that this job is job number 1 and that the process ID of the
last process in the pipeline associated with this job is 25647. All of
- the processes in a single pipeline are members of the same job. B\bBa\bas\bsh\bh
+ the processes in a single pipeline are members of the same job. B\bBa\bas\bsh\bh
uses the _\bj_\bo_\bb abstraction as the basis for job control.
- To facilitate the implementation of the user interface to job control,
+ To facilitate the implementation of the user interface to job control,
the operating system maintains the notion of a _\bc_\bu_\br_\br_\be_\bn_\bt _\bt_\be_\br_\bm_\bi_\bn_\ba_\bl _\bp_\br_\bo_\bc_\be_\bs_\bs
_\bg_\br_\bo_\bu_\bp _\bI_\bD. Members of this process group (processes whose process group
ID is equal to the current terminal process group ID) receive keyboard-
- generated signals such as S\bSI\bIG\bGI\bIN\bNT\bT. These processes are said to be in
- the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd. _\bB_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd processes are those whose process group ID
+ generated signals such as S\bSI\bIG\bGI\bIN\bNT\bT. These processes are said to be in
+ the _\bf_\bo_\br_\be_\bg_\br_\bo_\bu_\bn_\bd. _\bB_\ba_\bc_\bk_\bg_\br_\bo_\bu_\bn_\bd processes are those whose process group ID
differs from the terminal's; such processes are immune to keyboard-gen-
erated signals. Only foreground processes are allowed to read from or,
- if the user so specifies with stty tostop, write to the terminal.
- Background processes which attempt to read from (write to when stty
- tostop is in effect) the terminal are sent a S\bSI\bIG\bGT\bTT\bTI\bIN\bN (\b(S\bSI\bIG\bGT\bTT\bTO\bOU\bU)\b) signal
- by the kernel's terminal driver, which, unless caught, suspends the
+ if the user so specifies with stty tostop, write to the terminal.
+ Background processes which attempt to read from (write to when stty
+ tostop is in effect) the terminal are sent a S\bSI\bIG\bGT\bTT\bTI\bIN\bN (\b(S\bSI\bIG\bGT\bTT\bTO\bOU\bU)\b) signal
+ by the kernel's terminal driver, which, unless caught, suspends the
process.
- If the operating system on which b\bba\bas\bsh\bh is running supports job control,
+ If the operating system on which b\bba\bas\bsh\bh is running supports job control,
b\bba\bas\bsh\bh contains facilities to use it. Typing the _\bs_\bu_\bs_\bp_\be_\bn_\bd character (typ-
ically ^\b^Z\bZ, Control-Z) while a process is running causes that process to
- be stopped and returns control to b\bba\bas\bsh\bh. Typing the _\bd_\be_\bl_\ba_\by_\be_\bd _\bs_\bu_\bs_\bp_\be_\bn_\bd
- character (typically ^\b^Y\bY, Control-Y) causes the process to be stopped
- when it attempts to read input from the terminal, and control to be
- returned to b\bba\bas\bsh\bh. The user may then manipulate the state of this job,
- using the b\bbg\bg command to continue it in the background, the f\bfg\bg command
+ be stopped and returns control to b\bba\bas\bsh\bh. Typing the _\bd_\be_\bl_\ba_\by_\be_\bd _\bs_\bu_\bs_\bp_\be_\bn_\bd
+ character (typically ^\b^Y\bY, Control-Y) causes the process to be stopped
+ when it attempts to read input from the terminal, and control to be
+ returned to b\bba\bas\bsh\bh. The user may then manipulate the state of this job,
+ using the b\bbg\bg command to continue it in the background, the f\bfg\bg command
to continue it in the foreground, or the k\bki\bil\bll\bl command to kill it. A ^\b^Z\bZ
takes effect immediately, and has the additional side effect of causing
pending output and typeahead to be discarded.
There are a number of ways to refer to a job in the shell. The charac-
- ter %\b% introduces a job specification (_\bj_\bo_\bb_\bs_\bp_\be_\bc). Job number _\bn may be
+ ter %\b% introduces a job specification (_\bj_\bo_\bb_\bs_\bp_\be_\bc). Job number _\bn may be
referred to as %\b%n\bn. A job may also be referred to using a prefix of the
name used to start it, or using a substring that appears in its command
- line. For example, %\b%c\bce\be refers to a stopped c\bce\be job. If a prefix
- matches more than one job, b\bba\bas\bsh\bh reports an error. Using %\b%?\b?c\bce\be, on the
- other hand, refers to any job containing the string c\bce\be in its command
- line. If the substring matches more than one job, b\bba\bas\bsh\bh reports an
- error. The symbols %\b%%\b% and %\b%+\b+ refer to the shell's notion of the _\bc_\bu_\br_\b-
- _\br_\be_\bn_\bt _\bj_\bo_\bb, which is the last job stopped while it was in the foreground
+ line. For example, %\b%c\bce\be refers to a stopped c\bce\be job. If a prefix
+ matches more than one job, b\bba\bas\bsh\bh reports an error. Using %\b%?\b?c\bce\be, on the
+ other hand, refers to any job containing the string c\bce\be in its command
+ line. If the substring matches more than one job, b\bba\bas\bsh\bh reports an
+ error. The symbols %\b%%\b% and %\b%+\b+ refer to the shell's notion of the _\bc_\bu_\br_\b-
+ _\br_\be_\bn_\bt _\bj_\bo_\bb, which is the last job stopped while it was in the foreground
or started in the background. The _\bp_\br_\be_\bv_\bi_\bo_\bu_\bs _\bj_\bo_\bb may be referenced using
%\b%-\b-. If there is only a single job, %\b%+\b+ and %\b%-\b- can both be used to refer
- to that job. In output pertaining to jobs (e.g., the output of the
+ to that job. In output pertaining to jobs (e.g., the output of the
j\bjo\bob\bbs\bs command), the current job is always flagged with a +\b+, and the pre-
- vious job with a -\b-. A single % (with no accompanying job specifica-
+ vious job with a -\b-. A single % (with no accompanying job specifica-
tion) also refers to the current job.
- Simply naming a job can be used to bring it into the foreground: %\b%1\b1 is
- a synonym for `\b``\b`f\bfg\bg %\b%1\b1'\b''\b', bringing job 1 from the background into the
- foreground. Similarly, `\b``\b`%\b%1\b1 &\b&'\b''\b' resumes job 1 in the background,
+ Simply naming a job can be used to bring it into the foreground: %\b%1\b1 is
+ a synonym for `\b``\b`f\bfg\bg %\b%1\b1'\b''\b', bringing job 1 from the background into the
+ foreground. Similarly, `\b``\b`%\b%1\b1 &\b&'\b''\b' resumes job 1 in the background,
equivalent to `\b``\b`b\bbg\bg %\b%1\b1'\b''\b'.
- The shell learns immediately whenever a job changes state. Normally,
+ The shell learns immediately whenever a job changes state. Normally,
b\bba\bas\bsh\bh waits until it is about to print a prompt before reporting changes
- in a job's status so as to not interrupt any other output. If the -\b-b\bb
+ in a job's status so as to not interrupt any other output. If the -\b-b\bb
option to the s\bse\bet\bt builtin command is enabled, b\bba\bas\bsh\bh reports such changes
- immediately. Any trap on S\bSI\bIG\bGC\bCH\bHL\bLD\bD is executed for each child that
+ immediately. Any trap on S\bSI\bIG\bGC\bCH\bHL\bLD\bD is executed for each child that
exits.
- If an attempt to exit b\bba\bas\bsh\bh is made while jobs are stopped (or, if the
- c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs shell option has been enabled using the s\bsh\bho\bop\bpt\bt builtin, run-
+ If an attempt to exit b\bba\bas\bsh\bh is made while jobs are stopped (or, if the
+ c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs shell option has been enabled using the s\bsh\bho\bop\bpt\bt builtin, run-
ning), the shell prints a warning message, and, if the c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs option
- is enabled, lists the jobs and their statuses. The j\bjo\bob\bbs\bs command may
- then be used to inspect their status. If a second attempt to exit is
- made without an intervening command, the shell does not print another
+ is enabled, lists the jobs and their statuses. The j\bjo\bob\bbs\bs command may
+ then be used to inspect their status. If a second attempt to exit is
+ made without an intervening command, the shell does not print another
warning, and any stopped jobs are terminated.
P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
When executing interactively, b\bba\bas\bsh\bh displays the primary prompt P\bPS\bS1\b1 when
- it is ready to read a command, and the secondary prompt P\bPS\bS2\b2 when it
- needs more input to complete a command. B\bBa\bas\bsh\bh allows these prompt
- strings to be customized by inserting a number of backslash-escaped
+ it is ready to read a command, and the secondary prompt P\bPS\bS2\b2 when it
+ needs more input to complete a command. B\bBa\bas\bsh\bh allows these prompt
+ strings to be customized by inserting a number of backslash-escaped
special characters that are decoded as follows:
\\b\a\ba an ASCII bell character (07)
- \\b\d\bd the date in "Weekday Month Date" format (e.g., "Tue May
+ \\b\d\bd the date in "Weekday Month Date" format (e.g., "Tue May
26")
\\b\D\bD{\b{_\bf_\bo_\br_\bm_\ba_\bt}\b}
- the _\bf_\bo_\br_\bm_\ba_\bt is passed to _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) and the result is
- inserted into the prompt string; an empty _\bf_\bo_\br_\bm_\ba_\bt results
+ the _\bf_\bo_\br_\bm_\ba_\bt is passed to _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) and the result is
+ inserted into the prompt string; an empty _\bf_\bo_\br_\bm_\ba_\bt results
in a locale-specific time representation. The braces are
required
\\b\e\be an ASCII escape character (033)
\\b\l\bl the basename of the shell's terminal device name
\\b\n\bn newline
\\b\r\br carriage return
- \\b\s\bs the name of the shell, the basename of $\b$0\b0 (the portion
+ \\b\s\bs the name of the shell, the basename of $\b$0\b0 (the portion
following the final slash)
\\b\t\bt the current time in 24-hour HH:MM:SS format
\\b\T\bT the current time in 12-hour HH:MM:SS format
\\b\u\bu the username of the current user
\\b\v\bv the version of b\bba\bas\bsh\bh (e.g., 2.00)
\\b\V\bV the release of b\bba\bas\bsh\bh, version + patch level (e.g., 2.00.0)
- \\b\w\bw the current working directory, with $\b$H\bHO\bOM\bME\bE abbreviated
- with a tilde (uses the value of the P\bPR\bRO\bOM\bMP\bPT\bT_\b_D\bDI\bIR\bRT\bTR\bRI\bIM\bM vari-
+ \\b\w\bw the current working directory, with $\b$H\bHO\bOM\bME\bE abbreviated
+ with a tilde (uses the value of the P\bPR\bRO\bOM\bMP\bPT\bT_\b_D\bDI\bIR\bRT\bTR\bRI\bIM\bM vari-
able)
\\b\W\bW the basename of the current working directory, with $\b$H\bHO\bOM\bME\bE
abbreviated with a tilde
\\b\$\b$ if the effective UID is 0, a #\b#, otherwise a $\b$
\\b\_\bn_\bn_\bn the character corresponding to the octal number _\bn_\bn_\bn
\\b\\\b\ a backslash
- \\b\[\b[ begin a sequence of non-printing characters, which could
- be used to embed a terminal control sequence into the
+ \\b\[\b[ begin a sequence of non-printing characters, which could
+ be used to embed a terminal control sequence into the
prompt
\\b\]\b] end a sequence of non-printing characters
- The command number and the history number are usually different: the
- history number of a command is its position in the history list, which
- may include commands restored from the history file (see H\bHI\bIS\bST\bTO\bOR\bRY\bY
- below), while the command number is the position in the sequence of
- commands executed during the current shell session. After the string
- is decoded, it is expanded via parameter expansion, command substitu-
- tion, arithmetic expansion, and quote removal, subject to the value of
- the p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs shell option (see the description of the s\bsh\bho\bop\bpt\bt command
+ The command number and the history number are usually different: the
+ history number of a command is its position in the history list, which
+ may include commands restored from the history file (see H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ below), while the command number is the position in the sequence of
+ commands executed during the current shell session. After the string
+ is decoded, it is expanded via parameter expansion, command substitu-
+ tion, arithmetic expansion, and quote removal, subject to the value of
+ the p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs shell option (see the description of the s\bsh\bho\bop\bpt\bt command
under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
- This is the library that handles reading input when using an interac-
+ This is the library that handles reading input when using an interac-
tive shell, unless the -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option is given at shell invocation.
Line editing is also used when using the -\b-e\be option to the r\bre\bea\bad\bd builtin.
By default, the line editing commands are similar to those of Emacs. A
vi-style line editing interface is also available. Line editing can be
- enabled at any time using the -\b-o\bo e\bem\bma\bac\bcs\bs or -\b-o\bo v\bvi\bi options to the s\bse\bet\bt
- builtin (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below). To turn off line editing
- after the shell is running, use the +\b+o\bo e\bem\bma\bac\bcs\bs or +\b+o\bo v\bvi\bi options to the
+ enabled at any time using the -\b-o\bo e\bem\bma\bac\bcs\bs or -\b-o\bo v\bvi\bi options to the s\bse\bet\bt
+ builtin (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below). To turn off line editing
+ after the shell is running, use the +\b+o\bo e\bem\bma\bac\bcs\bs or +\b+o\bo v\bvi\bi options to the
s\bse\bet\bt builtin.
R\bRe\bea\bad\bdl\bli\bin\bne\be N\bNo\bot\bta\bat\bti\bio\bon\bn
In this section, the Emacs-style notation is used to denote keystrokes.
- Control keys are denoted by C-_\bk_\be_\by, e.g., C-n means Control-N. Simi-
- larly, _\bm_\be_\bt_\ba keys are denoted by M-_\bk_\be_\by, so M-x means Meta-X. (On key-
- boards without a _\bm_\be_\bt_\ba key, M-_\bx means ESC _\bx, i.e., press the Escape key
+ Control keys are denoted by C-_\bk_\be_\by, e.g., C-n means Control-N. Simi-
+ larly, _\bm_\be_\bt_\ba keys are denoted by M-_\bk_\be_\by, so M-x means Meta-X. (On key-
+ boards without a _\bm_\be_\bt_\ba key, M-_\bx means ESC _\bx, i.e., press the Escape key
then the _\bx key. This makes ESC the _\bm_\be_\bt_\ba _\bp_\br_\be_\bf_\bi_\bx. The combination M-C-_\bx
- means ESC-Control-_\bx, or press the Escape key then hold the Control key
+ means ESC-Control-_\bx, or press the Escape key then hold the Control key
while pressing the _\bx key.)
Readline commands may be given numeric _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs, which normally act as
- a repeat count. Sometimes, however, it is the sign of the argument
- that is significant. Passing a negative argument to a command that
- acts in the forward direction (e.g., k\bki\bil\bll\bl-\b-l\bli\bin\bne\be) causes that command to
- act in a backward direction. Commands whose behavior with arguments
+ a repeat count. Sometimes, however, it is the sign of the argument
+ that is significant. Passing a negative argument to a command that
+ acts in the forward direction (e.g., k\bki\bil\bll\bl-\b-l\bli\bin\bne\be) causes that command to
+ act in a backward direction. Commands whose behavior with arguments
deviates from this are noted below.
- When a command is described as _\bk_\bi_\bl_\bl_\bi_\bn_\bg text, the text deleted is saved
+ When a command is described as _\bk_\bi_\bl_\bl_\bi_\bn_\bg text, the text deleted is saved
for possible future retrieval (_\by_\ba_\bn_\bk_\bi_\bn_\bg). The killed text is saved in a
_\bk_\bi_\bl_\bl _\br_\bi_\bn_\bg. Consecutive kills cause the text to be accumulated into one
unit, which can be yanked all at once. Commands which do not kill text
separate the chunks of text on the kill ring.
R\bRe\bea\bad\bdl\bli\bin\bne\be I\bIn\bni\bit\bti\bia\bal\bli\biz\bza\bat\bti\bio\bon\bn
- Readline is customized by putting commands in an initialization file
- (the _\bi_\bn_\bp_\bu_\bt_\br_\bc file). The name of this file is taken from the value of
- the I\bIN\bNP\bPU\bUT\bTR\bRC\bC variable. If that variable is unset, the default is
- _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc. When a program which uses the readline library starts up,
+ Readline is customized by putting commands in an initialization file
+ (the _\bi_\bn_\bp_\bu_\bt_\br_\bc file). The name of this file is taken from the value of
+ the I\bIN\bNP\bPU\bUT\bTR\bRC\bC variable. If that variable is unset, the default is
+ _\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc. When a program which uses the readline library starts up,
the initialization file is read, and the key bindings and variables are
- set. There are only a few basic constructs allowed in the readline
- initialization file. Blank lines are ignored. Lines beginning with a
- #\b# are comments. Lines beginning with a $\b$ indicate conditional con-
+ set. There are only a few basic constructs allowed in the readline
+ initialization file. Blank lines are ignored. Lines beginning with a
+ #\b# are comments. Lines beginning with a $\b$ indicate conditional con-
structs. Other lines denote key bindings and variable settings.
- The default key-bindings may be changed with an _\bi_\bn_\bp_\bu_\bt_\br_\bc file. Other
+ The default key-bindings may be changed with an _\bi_\bn_\bp_\bu_\bt_\br_\bc file. Other
programs that use this library may add their own commands and bindings.
For example, placing
M-Control-u: universal-argument
or
C-Meta-u: universal-argument
- into the _\bi_\bn_\bp_\bu_\bt_\br_\bc would make M-C-u execute the readline command _\bu_\bn_\bi_\bv_\be_\br_\b-
+ into the _\bi_\bn_\bp_\bu_\bt_\br_\bc would make M-C-u execute the readline command _\bu_\bn_\bi_\bv_\be_\br_\b-
_\bs_\ba_\bl_\b-_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt.
- The following symbolic character names are recognized: _\bR_\bU_\bB_\bO_\bU_\bT, _\bD_\bE_\bL,
+ The following symbolic character names are recognized: _\bR_\bU_\bB_\bO_\bU_\bT, _\bD_\bE_\bL,
_\bE_\bS_\bC, _\bL_\bF_\bD, _\bN_\bE_\bW_\bL_\bI_\bN_\bE, _\bR_\bE_\bT, _\bR_\bE_\bT_\bU_\bR_\bN, _\bS_\bP_\bC, _\bS_\bP_\bA_\bC_\bE, and _\bT_\bA_\bB.
- In addition to command names, readline allows keys to be bound to a
+ In addition to command names, readline allows keys to be bound to a
string that is inserted when the key is pressed (a _\bm_\ba_\bc_\br_\bo).
R\bRe\bea\bad\bdl\bli\bin\bne\be K\bKe\bey\by B\bBi\bin\bnd\bdi\bin\bng\bgs\bs
- The syntax for controlling key bindings in the _\bi_\bn_\bp_\bu_\bt_\br_\bc file is simple.
- All that is required is the name of the command or the text of a macro
- and a key sequence to which it should be bound. The name may be speci-
+ The syntax for controlling key bindings in the _\bi_\bn_\bp_\bu_\bt_\br_\bc file is simple.
+ All that is required is the name of the command or the text of a macro
+ and a key sequence to which it should be bound. The name may be speci-
fied in one of two ways: as a symbolic key name, possibly with _\bM_\be_\bt_\ba_\b- or
_\bC_\bo_\bn_\bt_\br_\bo_\bl_\b- prefixes, or as a key sequence.
Meta-Rubout: backward-kill-word
Control-o: "> output"
- In the above example, _\bC_\b-_\bu is bound to the function u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt,
- _\bM_\b-_\bD_\bE_\bL is bound to the function b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd, and _\bC_\b-_\bo is bound to
- run the macro expressed on the right hand side (that is, to insert the
+ In the above example, _\bC_\b-_\bu is bound to the function u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt,
+ _\bM_\b-_\bD_\bE_\bL is bound to the function b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd, and _\bC_\b-_\bo is bound to
+ run the macro expressed on the right hand side (that is, to insert the
text ``> output'' into the line).
- In the second form, "\b"k\bke\bey\bys\bse\beq\bq"\b":_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be or _\bm_\ba_\bc_\br_\bo, k\bke\bey\bys\bse\beq\bq differs
- from k\bke\bey\byn\bna\bam\bme\be above in that strings denoting an entire key sequence may
- be specified by placing the sequence within double quotes. Some GNU
- Emacs style key escapes can be used, as in the following example, but
+ In the second form, "\b"k\bke\bey\bys\bse\beq\bq"\b":_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be or _\bm_\ba_\bc_\br_\bo, k\bke\bey\bys\bse\beq\bq differs
+ from k\bke\bey\byn\bna\bam\bme\be above in that strings denoting an entire key sequence may
+ be specified by placing the sequence within double quotes. Some GNU
+ Emacs style key escapes can be used, as in the following example, but
the symbolic character names are not recognized.
"\C-u": universal-argument
"\e[11~": "Function Key 1"
In this example, _\bC_\b-_\bu is again bound to the function u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt.
- _\bC_\b-_\bx _\bC_\b-_\br is bound to the function r\bre\be-\b-r\bre\bea\bad\bd-\b-i\bin\bni\bit\bt-\b-f\bfi\bil\ble\be, and _\bE_\bS_\bC _\b[ _\b1 _\b1 _\b~ is
+ _\bC_\b-_\bx _\bC_\b-_\br is bound to the function r\bre\be-\b-r\bre\bea\bad\bd-\b-i\bin\bni\bit\bt-\b-f\bfi\bil\ble\be, and _\bE_\bS_\bC _\b[ _\b1 _\b1 _\b~ is
bound to insert the text ``Function Key 1''.
The full set of GNU Emacs style escape sequences is
\\b\"\b" literal "
\\b\'\b' literal '
- In addition to the GNU Emacs style escape sequences, a second set of
+ In addition to the GNU Emacs style escape sequences, a second set of
backslash escapes is available:
\\b\a\ba alert (bell)
\\b\b\bb backspace
\\b\r\br carriage return
\\b\t\bt horizontal tab
\\b\v\bv vertical tab
- \\b\_\bn_\bn_\bn the eight-bit character whose value is the octal value
+ \\b\_\bn_\bn_\bn the eight-bit character whose value is the octal value
_\bn_\bn_\bn (one to three digits)
- \\b\x\bx_\bH_\bH the eight-bit character whose value is the hexadecimal
+ \\b\x\bx_\bH_\bH the eight-bit character whose value is the hexadecimal
value _\bH_\bH (one or two hex digits)
When entering the text of a macro, single or double quotes must be used
to indicate a macro definition. Unquoted text is assumed to be a func-
- tion name. In the macro body, the backslash escapes described above
- are expanded. Backslash will quote any other character in the macro
+ tion name. In the macro body, the backslash escapes described above
+ are expanded. Backslash will quote any other character in the macro
text, including " and '.
- B\bBa\bas\bsh\bh allows the current readline key bindings to be displayed or modi-
- fied with the b\bbi\bin\bnd\bd builtin command. The editing mode may be switched
- during interactive use by using the -\b-o\bo option to the s\bse\bet\bt builtin com-
+ B\bBa\bas\bsh\bh allows the current readline key bindings to be displayed or modi-
+ fied with the b\bbi\bin\bnd\bd builtin command. The editing mode may be switched
+ during interactive use by using the -\b-o\bo option to the s\bse\bet\bt builtin com-
mand (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below).
R\bRe\bea\bad\bdl\bli\bin\bne\be V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs
s\bse\bet\bt _\bv_\ba_\br_\bi_\ba_\bb_\bl_\be_\b-_\bn_\ba_\bm_\be _\bv_\ba_\bl_\bu_\be
- Except where noted, readline variables can take the values O\bOn\bn or O\bOf\bff\bf
- (without regard to case). Unrecognized variable names are ignored.
- When a variable value is read, empty or null values, "on" (case-insen-
+ Except where noted, readline variables can take the values O\bOn\bn or O\bOf\bff\bf
+ (without regard to case). Unrecognized variable names are ignored.
+ When a variable value is read, empty or null values, "on" (case-insen-
sitive), and "1" are equivalent to O\bOn\bn. All other values are equivalent
to O\bOf\bff\bf. The variables and their default values are:
b\bbe\bel\bll\bl-\b-s\bst\bty\byl\ble\be (\b(a\bau\bud\bdi\bib\bbl\ble\be)\b)
- Controls what happens when readline wants to ring the terminal
+ Controls what happens when readline wants to ring the terminal
bell. If set to n\bno\bon\bne\be, readline never rings the bell. If set to
- v\bvi\bis\bsi\bib\bbl\ble\be, readline uses a visible bell if one is available. If
+ v\bvi\bis\bsi\bib\bbl\ble\be, readline uses a visible bell if one is available. If
set to a\bau\bud\bdi\bib\bbl\ble\be, readline attempts to ring the terminal's bell.
b\bbi\bin\bnd\bd-\b-t\btt\bty\by-\b-s\bsp\bpe\bec\bci\bia\bal\bl-\b-c\bch\bha\bar\brs\bs (\b(O\bOn\bn)\b)
- If set to O\bOn\bn, readline attempts to bind the control characters
+ If set to O\bOn\bn, readline attempts to bind the control characters
treated specially by the kernel's terminal driver to their read-
line equivalents.
c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn (\b(`\b``\b`#\b#'\b''\b')\b)
- The string that is inserted when the readline i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmm\bme\ben\bnt\bt
+ The string that is inserted when the readline i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmm\bme\ben\bnt\bt
command is executed. This command is bound to M\bM-\b-#\b# in emacs mode
and to #\b# in vi command mode.
c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-i\big\bgn\bno\bor\bre\be-\b-c\bca\bas\bse\be (\b(O\bOf\bff\bf)\b)
If set to O\bOn\bn, readline performs filename matching and completion
in a case-insensitive fashion.
c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-p\bpr\bre\bef\bfi\bix\bx-\b-d\bdi\bis\bsp\bpl\bla\bay\by-\b-l\ble\ben\bng\bgt\bth\bh (\b(0\b0)\b)
- The length in characters of the common prefix of a list of pos-
- sible completions that is displayed without modification. When
- set to a value greater than zero, common prefixes longer than
- this value are replaced with an ellipsis when displaying possi-
+ The length in characters of the common prefix of a list of pos-
+ sible completions that is displayed without modification. When
+ set to a value greater than zero, common prefixes longer than
+ this value are replaced with an ellipsis when displaying possi-
ble completions.
c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn-\b-q\bqu\bue\ber\bry\by-\b-i\bit\bte\bem\bms\bs (\b(1\b10\b00\b0)\b)
- This determines when the user is queried about viewing the num-
- ber of possible completions generated by the p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\be-\b-
- t\bti\bio\bon\bns\bs command. It may be set to any integer value greater than
- or equal to zero. If the number of possible completions is
+ This determines when the user is queried about viewing the num-
+ ber of possible completions generated by the p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\be-\b-
+ t\bti\bio\bon\bns\bs command. It may be set to any integer value greater than
+ or equal to zero. If the number of possible completions is
greater than or equal to the value of this variable, the user is
- asked whether or not he wishes to view them; otherwise they are
+ asked whether or not he wishes to view them; otherwise they are
simply listed on the terminal.
c\bco\bon\bnv\bve\ber\brt\bt-\b-m\bme\bet\bta\ba (\b(O\bOn\bn)\b)
- If set to O\bOn\bn, readline will convert characters with the eighth
+ If set to O\bOn\bn, readline will convert characters with the eighth
bit set to an ASCII key sequence by stripping the eighth bit and
- prefixing an escape character (in effect, using escape as the
+ prefixing an escape character (in effect, using escape as the
_\bm_\be_\bt_\ba _\bp_\br_\be_\bf_\bi_\bx).
d\bdi\bis\bsa\bab\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn (\b(O\bOf\bff\bf)\b)
If set to O\bOn\bn, readline will inhibit word completion. Completion
- characters will be inserted into the line as if they had been
+ characters will be inserted into the line as if they had been
mapped to s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt.
e\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be (\b(e\bem\bma\bac\bcs\bs)\b)
Controls whether readline begins with a set of key bindings sim-
ilar to _\bE_\bm_\ba_\bc_\bs or _\bv_\bi. e\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be can be set to either e\bem\bma\bac\bcs\bs or
v\bvi\bi.
e\bec\bch\bho\bo-\b-c\bco\bon\bnt\btr\bro\bol\bl-\b-c\bch\bha\bar\bra\bac\bct\bte\ber\brs\bs (\b(O\bOn\bn)\b)
- When set to O\bOn\bn, on operating systems that indicate they support
+ When set to O\bOn\bn, on operating systems that indicate they support
it, readline echoes a character corresponding to a signal gener-
ated from the keyboard.
e\ben\bna\bab\bbl\ble\be-\b-k\bke\bey\byp\bpa\bad\bd (\b(O\bOf\bff\bf)\b)
When set to O\bOn\bn, readline will try to enable the application key-
- pad when it is called. Some systems need this to enable the
+ pad when it is called. Some systems need this to enable the
arrow keys.
e\ben\bna\bab\bbl\ble\be-\b-m\bme\bet\bta\ba-\b-k\bke\bey\by (\b(O\bOn\bn)\b)
- When set to O\bOn\bn, readline will try to enable any meta modifier
- key the terminal claims to support when it is called. On many
+ When set to O\bOn\bn, readline will try to enable any meta modifier
+ key the terminal claims to support when it is called. On many
terminals, the meta key is used to send eight-bit characters.
e\bex\bxp\bpa\ban\bnd\bd-\b-t\bti\bil\bld\bde\be (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, tilde expansion is performed when readline
+ If set to O\bOn\bn, tilde expansion is performed when readline
attempts word completion.
h\bhi\bis\bst\bto\bor\bry\by-\b-p\bpr\bre\bes\bse\ber\brv\bve\be-\b-p\bpo\boi\bin\bnt\bt (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, the history code attempts to place point at the
- same location on each history line retrieved with p\bpr\bre\bev\bvi\bio\bou\bus\bs-\b-h\bhi\bis\bs-\b-
+ If set to O\bOn\bn, the history code attempts to place point at the
+ same location on each history line retrieved with p\bpr\bre\bev\bvi\bio\bou\bus\bs-\b-h\bhi\bis\bs-\b-
t\bto\bor\bry\by or n\bne\bex\bxt\bt-\b-h\bhi\bis\bst\bto\bor\bry\by.
h\bhi\bis\bst\bto\bor\bry\by-\b-s\bsi\biz\bze\be (\b(0\b0)\b)
- Set the maximum number of history entries saved in the history
+ Set the maximum number of history entries saved in the history
list. If set to zero, the number of entries in the history list
is not limited.
h\bho\bor\bri\biz\bzo\bon\bnt\bta\bal\bl-\b-s\bsc\bcr\bro\bol\bll\bl-\b-m\bmo\bod\bde\be (\b(O\bOf\bff\bf)\b)
- When set to O\bOn\bn, makes readline use a single line for display,
+ When set to O\bOn\bn, makes readline use a single line for display,
scrolling the input horizontally on a single screen line when it
- becomes longer than the screen width rather than wrapping to a
+ becomes longer than the screen width rather than wrapping to a
new line.
i\bin\bnp\bpu\but\bt-\b-m\bme\bet\bta\ba (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, readline will enable eight-bit input (that is, it
- will not strip the high bit from the characters it reads),
+ If set to O\bOn\bn, readline will enable eight-bit input (that is, it
+ will not strip the high bit from the characters it reads),
regardless of what the terminal claims it can support. The name
m\bme\bet\bta\ba-\b-f\bfl\bla\bag\bg is a synonym for this variable.
i\bis\bse\bea\bar\brc\bch\bh-\b-t\bte\ber\brm\bmi\bin\bna\bat\bto\bor\brs\bs (\b(`\b``\b`C\bC-\b-[\b[C\bC-\b-J\bJ'\b''\b')\b)
- The string of characters that should terminate an incremental
- search without subsequently executing the character as a com-
- mand. If this variable has not been given a value, the charac-
+ The string of characters that should terminate an incremental
+ search without subsequently executing the character as a com-
+ mand. If this variable has not been given a value, the charac-
ters _\bE_\bS_\bC and _\bC_\b-_\bJ will terminate an incremental search.
k\bke\bey\bym\bma\bap\bp (\b(e\bem\bma\bac\bcs\bs)\b)
- Set the current readline keymap. The set of valid keymap names
- is _\be_\bm_\ba_\bc_\bs_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b, _\bv_\bi_\b, _\bv_\bi_\b-_\bc_\bo_\bm_\b-
- _\bm_\ba_\bn_\bd, and _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt. _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd; _\be_\bm_\ba_\bc_\bs is
- equivalent to _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd. The default value is _\be_\bm_\ba_\bc_\bs; the
+ Set the current readline keymap. The set of valid keymap names
+ is _\be_\bm_\ba_\bc_\bs_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b, _\bv_\bi_\b, _\bv_\bi_\b-_\bc_\bo_\bm_\b-
+ _\bm_\ba_\bn_\bd, and _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt. _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd; _\be_\bm_\ba_\bc_\bs is
+ equivalent to _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd. The default value is _\be_\bm_\ba_\bc_\bs; the
value of e\bed\bdi\bit\bti\bin\bng\bg-\b-m\bmo\bod\bde\be also affects the default keymap.
m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs (\b(O\bOn\bn)\b)
If set to O\bOn\bn, completed directory names have a slash appended.
m\bma\bar\brk\bk-\b-m\bmo\bod\bdi\bif\bfi\bie\bed\bd-\b-l\bli\bin\bne\bes\bs (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, history lines that have been modified are dis-
+ If set to O\bOn\bn, history lines that have been modified are dis-
played with a preceding asterisk (*\b*).
m\bma\bar\brk\bk-\b-s\bsy\bym\bml\bli\bin\bnk\bke\bed\bd-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs (\b(O\bOf\bff\bf)\b)
If set to O\bOn\bn, completed names which are symbolic links to direc-
- tories have a slash appended (subject to the value of
+ tories have a slash appended (subject to the value of
m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs).
m\bma\bat\btc\bch\bh-\b-h\bhi\bid\bdd\bde\ben\bn-\b-f\bfi\bil\ble\bes\bs (\b(O\bOn\bn)\b)
- This variable, when set to O\bOn\bn, causes readline to match files
- whose names begin with a `.' (hidden files) when performing
- filename completion. If set to O\bOf\bff\bf, the leading `.' must be
+ This variable, when set to O\bOn\bn, causes readline to match files
+ whose names begin with a `.' (hidden files) when performing
+ filename completion. If set to O\bOf\bff\bf, the leading `.' must be
supplied by the user in the filename to be completed.
m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-d\bdi\bis\bsp\bpl\bla\bay\by-\b-p\bpr\bre\bef\bfi\bix\bx (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, menu completion displays the common prefix of the
+ If set to O\bOn\bn, menu completion displays the common prefix of the
list of possible completions (which may be empty) before cycling
through the list.
o\bou\but\btp\bpu\but\bt-\b-m\bme\bet\bta\ba (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, readline will display characters with the eighth
+ If set to O\bOn\bn, readline will display characters with the eighth
bit set directly rather than as a meta-prefixed escape sequence.
p\bpa\bag\bge\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(O\bOn\bn)\b)
- If set to O\bOn\bn, readline uses an internal _\bm_\bo_\br_\be-like pager to dis-
+ If set to O\bOn\bn, readline uses an internal _\bm_\bo_\br_\be-like pager to dis-
play a screenful of possible completions at a time.
p\bpr\bri\bin\bnt\bt-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs-\b-h\bho\bor\bri\biz\bzo\bon\bnt\bta\bal\bll\bly\by (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, readline will display completions with matches
- sorted horizontally in alphabetical order, rather than down the
+ If set to O\bOn\bn, readline will display completions with matches
+ sorted horizontally in alphabetical order, rather than down the
screen.
r\bre\bev\bve\ber\brt\bt-\b-a\bal\bll\bl-\b-a\bat\bt-\b-n\bne\bew\bwl\bli\bin\bne\be (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, readline will undo all changes to history lines
+ If set to O\bOn\bn, readline will undo all changes to history lines
before returning when a\bac\bcc\bce\bep\bpt\bt-\b-l\bli\bin\bne\be is executed. By default, his-
- tory lines may be modified and retain individual undo lists
+ tory lines may be modified and retain individual undo lists
across calls to r\bre\bea\bad\bdl\bli\bin\bne\be.
s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-a\bam\bmb\bbi\big\bgu\buo\bou\bus\bs (\b(O\bOf\bff\bf)\b)
- This alters the default behavior of the completion functions.
+ This alters the default behavior of the completion functions.
If set to O\bOn\bn, words which have more than one possible completion
- cause the matches to be listed immediately instead of ringing
+ cause the matches to be listed immediately instead of ringing
the bell.
s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-u\bun\bnm\bmo\bod\bdi\bif\bfi\bie\bed\bd (\b(O\bOf\bff\bf)\b)
- This alters the default behavior of the completion functions in
+ This alters the default behavior of the completion functions in
a fashion similar to s\bsh\bho\bow\bw-\b-a\bal\bll\bl-\b-i\bif\bf-\b-a\bam\bmb\bbi\big\bgu\buo\bou\bus\bs. If set to O\bOn\bn, words
- which have more than one possible completion without any possi-
- ble partial completion (the possible completions don't share a
- common prefix) cause the matches to be listed immediately
+ which have more than one possible completion without any possi-
+ ble partial completion (the possible completions don't share a
+ common prefix) cause the matches to be listed immediately
instead of ringing the bell.
s\bsk\bki\bip\bp-\b-c\bco\bom\bmp\bpl\ble\bet\bte\bed\bd-\b-t\bte\bex\bxt\bt (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, this alters the default completion behavior when
- inserting a single match into the line. It's only active when
- performing completion in the middle of a word. If enabled,
- readline does not insert characters from the completion that
- match characters after point in the word being completed, so
+ If set to O\bOn\bn, this alters the default completion behavior when
+ inserting a single match into the line. It's only active when
+ performing completion in the middle of a word. If enabled,
+ readline does not insert characters from the completion that
+ match characters after point in the word being completed, so
portions of the word following the cursor are not duplicated.
v\bvi\bis\bsi\bib\bbl\ble\be-\b-s\bst\bta\bat\bts\bs (\b(O\bOf\bff\bf)\b)
- If set to O\bOn\bn, a character denoting a file's type as reported by
- _\bs_\bt_\ba_\bt(2) is appended to the filename when listing possible com-
+ If set to O\bOn\bn, a character denoting a file's type as reported by
+ _\bs_\bt_\ba_\bt(2) is appended to the filename when listing possible com-
pletions.
R\bRe\bea\bad\bdl\bli\bin\bne\be C\bCo\bon\bnd\bdi\bit\bti\bio\bon\bna\bal\bl C\bCo\bon\bns\bst\btr\bru\buc\bct\bts\bs
- Readline implements a facility similar in spirit to the conditional
- compilation features of the C preprocessor which allows key bindings
- and variable settings to be performed as the result of tests. There
+ Readline implements a facility similar in spirit to the conditional
+ compilation features of the C preprocessor which allows key bindings
+ and variable settings to be performed as the result of tests. There
are four parser directives used.
- $\b$i\bif\bf The $\b$i\bif\bf construct allows bindings to be made based on the edit-
- ing mode, the terminal being used, or the application using
- readline. The text of the test extends to the end of the line;
+ $\b$i\bif\bf The $\b$i\bif\bf construct allows bindings to be made based on the edit-
+ ing mode, the terminal being used, or the application using
+ readline. The text of the test extends to the end of the line;
no characters are required to isolate it.
- m\bmo\bod\bde\be The m\bmo\bod\bde\be=\b= form of the $\b$i\bif\bf directive is used to test
- whether readline is in emacs or vi mode. This may be
- used in conjunction with the s\bse\bet\bt k\bke\bey\bym\bma\bap\bp command, for
- instance, to set bindings in the _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd and
- _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx keymaps only if readline is starting out in
+ m\bmo\bod\bde\be The m\bmo\bod\bde\be=\b= form of the $\b$i\bif\bf directive is used to test
+ whether readline is in emacs or vi mode. This may be
+ used in conjunction with the s\bse\bet\bt k\bke\bey\bym\bma\bap\bp command, for
+ instance, to set bindings in the _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd and
+ _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx keymaps only if readline is starting out in
emacs mode.
- t\bte\ber\brm\bm The t\bte\ber\brm\bm=\b= form may be used to include terminal-specific
+ t\bte\ber\brm\bm The t\bte\ber\brm\bm=\b= form may be used to include terminal-specific
key bindings, perhaps to bind the key sequences output by
the terminal's function keys. The word on the right side
of the =\b= is tested against the both full name of the ter-
- minal and the portion of the terminal name before the
- first -\b-. This allows _\bs_\bu_\bn to match both _\bs_\bu_\bn and _\bs_\bu_\bn_\b-_\bc_\bm_\bd,
+ minal and the portion of the terminal name before the
+ first -\b-. This allows _\bs_\bu_\bn to match both _\bs_\bu_\bn and _\bs_\bu_\bn_\b-_\bc_\bm_\bd,
for instance.
a\bap\bpp\bpl\bli\bic\bca\bat\bti\bio\bon\bn
The a\bap\bpp\bpl\bli\bic\bca\bat\bti\bio\bon\bn construct is used to include application-
specific settings. Each program using the readline
- library sets the _\ba_\bp_\bp_\bl_\bi_\bc_\ba_\bt_\bi_\bo_\bn _\bn_\ba_\bm_\be, and an initialization
+ library sets the _\ba_\bp_\bp_\bl_\bi_\bc_\ba_\bt_\bi_\bo_\bn _\bn_\ba_\bm_\be, and an initialization
file can test for a particular value. This could be used
- to bind key sequences to functions useful for a specific
- program. For instance, the following command adds a key
- sequence that quotes the current or previous word in
+ to bind key sequences to functions useful for a specific
+ program. For instance, the following command adds a key
+ sequence that quotes the current or previous word in
b\bba\bas\bsh\bh:
$\b$i\bif\bf Bash
test fails.
$\b$i\bin\bnc\bcl\blu\bud\bde\be
- This directive takes a single filename as an argument and reads
- commands and bindings from that file. For example, the follow-
+ This directive takes a single filename as an argument and reads
+ commands and bindings from that file. For example, the follow-
ing directive would read _\b/_\be_\bt_\bc_\b/_\bi_\bn_\bp_\bu_\bt_\br_\bc:
$\b$i\bin\bnc\bcl\blu\bud\bde\be _\b/_\be_\bt_\bc_\b/_\bi_\bn_\bp_\bu_\bt_\br_\bc
S\bSe\bea\bar\brc\bch\bhi\bin\bng\bg
- Readline provides commands for searching through the command history
+ Readline provides commands for searching through the command history
(see H\bHI\bIS\bST\bTO\bOR\bRY\bY below) for lines containing a specified string. There are
two search modes: _\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt_\ba_\bl and _\bn_\bo_\bn_\b-_\bi_\bn_\bc_\br_\be_\bm_\be_\bn_\bt_\ba_\bl.
- Incremental searches begin before the user has finished typing the
- search string. As each character of the search string is typed, read-
+ Incremental searches begin before the user has finished typing the
+ search string. As each character of the search string is typed, read-
line displays the next entry from the history matching the string typed
- so far. An incremental search requires only as many characters as
- needed to find the desired history entry. The characters present in
- the value of the i\bis\bse\bea\bar\brc\bch\bh-\b-t\bte\ber\brm\bmi\bin\bna\bat\bto\bor\brs\bs variable are used to terminate an
+ so far. An incremental search requires only as many characters as
+ needed to find the desired history entry. The characters present in
+ the value of the i\bis\bse\bea\bar\brc\bch\bh-\b-t\bte\ber\brm\bmi\bin\bna\bat\bto\bor\brs\bs variable are used to terminate an
incremental search. If that variable has not been assigned a value the
- Escape and Control-J characters will terminate an incremental search.
- Control-G will abort an incremental search and restore the original
- line. When the search is terminated, the history entry containing the
+ Escape and Control-J characters will terminate an incremental search.
+ Control-G will abort an incremental search and restore the original
+ line. When the search is terminated, the history entry containing the
search string becomes the current line.
- To find other matching entries in the history list, type Control-S or
- Control-R as appropriate. This will search backward or forward in the
- history for the next entry matching the search string typed so far.
- Any other key sequence bound to a readline command will terminate the
- search and execute that command. For instance, a _\bn_\be_\bw_\bl_\bi_\bn_\be will termi-
+ To find other matching entries in the history list, type Control-S or
+ Control-R as appropriate. This will search backward or forward in the
+ history for the next entry matching the search string typed so far.
+ Any other key sequence bound to a readline command will terminate the
+ search and execute that command. For instance, a _\bn_\be_\bw_\bl_\bi_\bn_\be will termi-
nate the search and accept the line, thereby executing the command from
the history list.
Readline remembers the last incremental search string. If two Control-
- Rs are typed without any intervening characters defining a new search
+ Rs are typed without any intervening characters defining a new search
string, any remembered search string is used.
- Non-incremental searches read the entire search string before starting
- to search for matching history lines. The search string may be typed
+ Non-incremental searches read the entire search string before starting
+ to search for matching history lines. The search string may be typed
by the user or be part of the contents of the current line.
R\bRe\bea\bad\bdl\bli\bin\bne\be C\bCo\bom\bmm\bma\ban\bnd\bd N\bNa\bam\bme\bes\bs
- The following is a list of the names of the commands and the default
+ The following is a list of the names of the commands and the default
key sequences to which they are bound. Command names without an accom-
panying key sequence are unbound by default. In the following descrip-
- tions, _\bp_\bo_\bi_\bn_\bt refers to the current cursor position, and _\bm_\ba_\br_\bk refers to
- a cursor position saved by the s\bse\bet\bt-\b-m\bma\bar\brk\bk command. The text between the
+ tions, _\bp_\bo_\bi_\bn_\bt refers to the current cursor position, and _\bm_\ba_\br_\bk refers to
+ a cursor position saved by the s\bse\bet\bt-\b-m\bma\bar\brk\bk command. The text between the
point and mark is referred to as the _\br_\be_\bg_\bi_\bo_\bn.
C\bCo\bom\bmm\bma\ban\bnd\bds\bs f\bfo\bor\br M\bMo\bov\bvi\bin\bng\bg
Move forward to the end of the next word. Words are composed of
alphanumeric characters (letters and digits).
b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-b\bb)\b)
- Move back to the start of the current or previous word. Words
+ Move back to the start of the current or previous word. Words
are composed of alphanumeric characters (letters and digits).
s\bsh\bhe\bel\bll\bl-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
- Move forward to the end of the next word. Words are delimited
+ Move forward to the end of the next word. Words are delimited
by non-quoted shell metacharacters.
s\bsh\bhe\bel\bll\bl-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
- Move back to the start of the current or previous word. Words
+ Move back to the start of the current or previous word. Words
are delimited by non-quoted shell metacharacters.
c\bcl\ble\bea\bar\br-\b-s\bsc\bcr\bre\bee\ben\bn (\b(C\bC-\b-l\bl)\b)
- Clear the screen leaving the current line at the top of the
- screen. With an argument, refresh the current line without
+ Clear the screen leaving the current line at the top of the
+ screen. With an argument, refresh the current line without
clearing the screen.
r\bre\bed\bdr\bra\baw\bw-\b-c\bcu\bur\brr\bre\ben\bnt\bt-\b-l\bli\bin\bne\be
Refresh the current line.
C\bCo\bom\bmm\bma\ban\bnd\bds\bs f\bfo\bor\br M\bMa\ban\bni\bip\bpu\bul\bla\bat\bti\bin\bng\bg t\bth\bhe\be H\bHi\bis\bst\bto\bor\bry\by
a\bac\bcc\bce\bep\bpt\bt-\b-l\bli\bin\bne\be (\b(N\bNe\bew\bwl\bli\bin\bne\be,\b, R\bRe\bet\btu\bur\brn\bn)\b)
Accept the line regardless of where the cursor is. If this line
- is non-empty, add it to the history list according to the state
- of the H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL variable. If the line is a modified history
+ is non-empty, add it to the history list according to the state
+ of the H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL variable. If the line is a modified history
line, then restore the history line to its original state.
p\bpr\bre\bev\bvi\bio\bou\bus\bs-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-p\bp)\b)
Fetch the previous command from the history list, moving back in
the list.
n\bne\bex\bxt\bt-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-n\bn)\b)
- Fetch the next command from the history list, moving forward in
+ Fetch the next command from the history list, moving forward in
the list.
b\bbe\beg\bgi\bin\bnn\bni\bin\bng\bg-\b-o\bof\bf-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-<\b<)\b)
Move to the first line in the history.
e\ben\bnd\bd-\b-o\bof\bf-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b->\b>)\b)
- Move to the end of the input history, i.e., the line currently
+ Move to the end of the input history, i.e., the line currently
being entered.
r\bre\bev\bve\ber\brs\bse\be-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-r\br)\b)
- Search backward starting at the current line and moving `up'
- through the history as necessary. This is an incremental
+ Search backward starting at the current line and moving `up'
+ through the history as necessary. This is an incremental
search.
f\bfo\bor\brw\bwa\bar\brd\bd-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(C\bC-\b-s\bs)\b)
- Search forward starting at the current line and moving `down'
- through the history as necessary. This is an incremental
+ Search forward starting at the current line and moving `down'
+ through the history as necessary. This is an incremental
search.
n\bno\bon\bn-\b-i\bin\bnc\bcr\bre\bem\bme\ben\bnt\bta\bal\bl-\b-r\bre\bev\bve\ber\brs\bse\be-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-p\bp)\b)
Search backward through the history starting at the current line
- using a non-incremental search for a string supplied by the
+ using a non-incremental search for a string supplied by the
user.
n\bno\bon\bn-\b-i\bin\bnc\bcr\bre\bem\bme\ben\bnt\bta\bal\bl-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-s\bse\bea\bar\brc\bch\bh-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-n\bn)\b)
- Search forward through the history using a non-incremental
+ Search forward through the history using a non-incremental
search for a string supplied by the user.
h\bhi\bis\bst\bto\bor\bry\by-\b-s\bse\bea\bar\brc\bch\bh-\b-f\bfo\bor\brw\bwa\bar\brd\bd
- Search forward through the history for the string of characters
- between the start of the current line and the point. This is a
+ Search forward through the history for the string of characters
+ between the start of the current line and the point. This is a
non-incremental search.
h\bhi\bis\bst\bto\bor\bry\by-\b-s\bse\bea\bar\brc\bch\bh-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd
Search backward through the history for the string of characters
- between the start of the current line and the point. This is a
+ between the start of the current line and the point. This is a
non-incremental search.
y\bya\ban\bnk\bk-\b-n\bnt\bth\bh-\b-a\bar\brg\bg (\b(M\bM-\b-C\bC-\b-y\by)\b)
- Insert the first argument to the previous command (usually the
+ Insert the first argument to the previous command (usually the
second word on the previous line) at point. With an argument _\bn,
- insert the _\bnth word from the previous command (the words in the
- previous command begin with word 0). A negative argument
+ insert the _\bnth word from the previous command (the words in the
+ previous command begin with word 0). A negative argument
inserts the _\bnth word from the end of the previous command. Once
- the argument _\bn is computed, the argument is extracted as if the
+ the argument _\bn is computed, the argument is extracted as if the
"!_\bn" history expansion had been specified.
y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg (\b(M\bM-\b-.\b.,\b, M\bM-\b-_\b_)\b)
- Insert the last argument to the previous command (the last word
+ Insert the last argument to the previous command (the last word
of the previous history entry). With a numeric argument, behave
- exactly like y\bya\ban\bnk\bk-\b-n\bnt\bth\bh-\b-a\bar\brg\bg. Successive calls to y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg
- move back through the history list, inserting the last word (or
- the word specified by the argument to the first call) of each
+ exactly like y\bya\ban\bnk\bk-\b-n\bnt\bth\bh-\b-a\bar\brg\bg. Successive calls to y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg
+ move back through the history list, inserting the last word (or
+ the word specified by the argument to the first call) of each
line in turn. Any numeric argument supplied to these successive
- calls determines the direction to move through the history. A
- negative argument switches the direction through the history
+ calls determines the direction to move through the history. A
+ negative argument switches the direction through the history
(back or forward). The history expansion facilities are used to
- extract the last argument, as if the "!$" history expansion had
+ extract the last argument, as if the "!$" history expansion had
been specified.
s\bsh\bhe\bel\bll\bl-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be (\b(M\bM-\b-C\bC-\b-e\be)\b)
Expand the line as the shell does. This performs alias and his-
tory expansion as well as all of the shell word expansions. See
- H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history expansion.
+ H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history expansion.
h\bhi\bis\bst\bto\bor\bry\by-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be (\b(M\bM-\b-^\b^)\b)
- Perform history expansion on the current line. See H\bHI\bIS\bST\bTO\bOR\bRY\bY
+ Perform history expansion on the current line. See H\bHI\bIS\bST\bTO\bOR\bRY\bY
E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history expansion.
m\bma\bag\bgi\bic\bc-\b-s\bsp\bpa\bac\bce\be
- Perform history expansion on the current line and insert a
+ Perform history expansion on the current line and insert a
space. See H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN below for a description of history
expansion.
a\bal\bli\bia\bas\bs-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be
- Perform alias expansion on the current line. See A\bAL\bLI\bIA\bAS\bSE\bES\bS above
+ Perform alias expansion on the current line. See A\bAL\bLI\bIA\bAS\bSE\bES\bS above
for a description of alias expansion.
h\bhi\bis\bst\bto\bor\bry\by-\b-a\ban\bnd\bd-\b-a\bal\bli\bia\bas\bs-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-l\bli\bin\bne\be
Perform history and alias expansion on the current line.
i\bin\bns\bse\ber\brt\bt-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt (\b(M\bM-\b-.\b.,\b, M\bM-\b-_\b_)\b)
A synonym for y\bya\ban\bnk\bk-\b-l\bla\bas\bst\bt-\b-a\bar\brg\bg.
o\bop\bpe\ber\bra\bat\bte\be-\b-a\ban\bnd\bd-\b-g\bge\bet\bt-\b-n\bne\bex\bxt\bt (\b(C\bC-\b-o\bo)\b)
- Accept the current line for execution and fetch the next line
- relative to the current line from the history for editing. Any
+ Accept the current line for execution and fetch the next line
+ relative to the current line from the history for editing. Any
argument is ignored.
e\bed\bdi\bit\bt-\b-a\ban\bnd\bd-\b-e\bex\bxe\bec\bcu\but\bte\be-\b-c\bco\bom\bmm\bma\ban\bnd\bd (\b(C\bC-\b-x\bxC\bC-\b-e\be)\b)
- Invoke an editor on the current command line, and execute the
- result as shell commands. B\bBa\bas\bsh\bh attempts to invoke $\b$V\bVI\bIS\bSU\bUA\bAL\bL,
+ Invoke an editor on the current command line, and execute the
+ result as shell commands. B\bBa\bas\bsh\bh attempts to invoke $\b$V\bVI\bIS\bSU\bUA\bAL\bL,
$\b$E\bED\bDI\bIT\bTO\bOR\bR, and _\be_\bm_\ba_\bc_\bs as the editor, in that order.
C\bCo\bom\bmm\bma\ban\bnd\bds\bs f\bfo\bor\br C\bCh\bha\ban\bng\bgi\bin\bng\bg T\bTe\bex\bxt\bt
d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br (\b(C\bC-\b-d\bd)\b)
- Delete the character at point. If point is at the beginning of
- the line, there are no characters in the line, and the last
+ Delete the character at point. If point is at the beginning of
+ the line, there are no characters in the line, and the last
character typed was not bound to d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br, then return E\bEO\bOF\bF.
b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br (\b(R\bRu\bub\bbo\bou\but\bt)\b)
- Delete the character behind the cursor. When given a numeric
+ Delete the character behind the cursor. When given a numeric
argument, save the deleted text on the kill ring.
f\bfo\bor\brw\bwa\bar\brd\bd-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br
- Delete the character under the cursor, unless the cursor is at
+ Delete the character under the cursor, unless the cursor is at
the end of the line, in which case the character behind the cur-
sor is deleted.
q\bqu\buo\bot\bte\bed\bd-\b-i\bin\bns\bse\ber\brt\bt (\b(C\bC-\b-q\bq,\b, C\bC-\b-v\bv)\b)
- Add the next character typed to the line verbatim. This is how
+ Add the next character typed to the line verbatim. This is how
to insert characters like C\bC-\b-q\bq, for example.
t\bta\bab\bb-\b-i\bin\bns\bse\ber\brt\bt (\b(C\bC-\b-v\bv T\bTA\bAB\bB)\b)
Insert a tab character.
s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt (\b(a\ba,\b, b\bb,\b, A\bA,\b, 1\b1,\b, !\b!,\b, .\b..\b..\b.)\b)
Insert the character typed.
t\btr\bra\ban\bns\bsp\bpo\bos\bse\be-\b-c\bch\bha\bar\brs\bs (\b(C\bC-\b-t\bt)\b)
- Drag the character before point forward over the character at
- point, moving point forward as well. If point is at the end of
- the line, then this transposes the two characters before point.
+ Drag the character before point forward over the character at
+ point, moving point forward as well. If point is at the end of
+ the line, then this transposes the two characters before point.
Negative arguments have no effect.
t\btr\bra\ban\bns\bsp\bpo\bos\bse\be-\b-w\bwo\bor\brd\bds\bs (\b(M\bM-\b-t\bt)\b)
- Drag the word before point past the word after point, moving
- point over that word as well. If point is at the end of the
+ Drag the word before point past the word after point, moving
+ point over that word as well. If point is at the end of the
line, this transposes the last two words on the line.
u\bup\bpc\bca\bas\bse\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-u\bu)\b)
- Uppercase the current (or following) word. With a negative
+ Uppercase the current (or following) word. With a negative
argument, uppercase the previous word, but do not move point.
d\bdo\bow\bwn\bnc\bca\bas\bse\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-l\bl)\b)
- Lowercase the current (or following) word. With a negative
+ Lowercase the current (or following) word. With a negative
argument, lowercase the previous word, but do not move point.
c\bca\bap\bpi\bit\bta\bal\bli\biz\bze\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-c\bc)\b)
- Capitalize the current (or following) word. With a negative
+ Capitalize the current (or following) word. With a negative
argument, capitalize the previous word, but do not move point.
o\bov\bve\ber\brw\bwr\bri\bit\bte\be-\b-m\bmo\bod\bde\be
- Toggle overwrite mode. With an explicit positive numeric argu-
+ Toggle overwrite mode. With an explicit positive numeric argu-
ment, switches to overwrite mode. With an explicit non-positive
numeric argument, switches to insert mode. This command affects
- only e\bem\bma\bac\bcs\bs mode; v\bvi\bi mode does overwrite differently. Each call
+ only e\bem\bma\bac\bcs\bs mode; v\bvi\bi mode does overwrite differently. Each call
to _\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b(_\b) starts in insert mode. In overwrite mode, charac-
- ters bound to s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt replace the text at point rather than
- pushing the text to the right. Characters bound to b\bba\bac\bck\bk-\b-
- w\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br replace the character before point with a
+ ters bound to s\bse\bel\blf\bf-\b-i\bin\bns\bse\ber\brt\bt replace the text at point rather than
+ pushing the text to the right. Characters bound to b\bba\bac\bck\bk-\b-
+ w\bwa\bar\brd\bd-\b-d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br replace the character before point with a
space. By default, this command is unbound.
K\bKi\bil\bll\bli\bin\bng\bg a\ban\bnd\bd Y\bYa\ban\bnk\bki\bin\bng\bg
b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-l\bli\bin\bne\be (\b(C\bC-\b-x\bx R\bRu\bub\bbo\bou\but\bt)\b)
Kill backward to the beginning of the line.
u\bun\bni\bix\bx-\b-l\bli\bin\bne\be-\b-d\bdi\bis\bsc\bca\bar\brd\bd (\b(C\bC-\b-u\bu)\b)
- Kill backward from point to the beginning of the line. The
+ Kill backward from point to the beginning of the line. The
killed text is saved on the kill-ring.
k\bki\bil\bll\bl-\b-w\bwh\bho\bol\ble\be-\b-l\bli\bin\bne\be
- Kill all characters on the current line, no matter where point
+ Kill all characters on the current line, no matter where point
is.
k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-d\bd)\b)
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the
+ Kill from point to the end of the current word, or if between
+ words, to the end of the next word. Word boundaries are the
same as those used by f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-R\bRu\bub\bbo\bou\but\bt)\b)
- Kill the word behind point. Word boundaries are the same as
+ Kill the word behind point. Word boundaries are the same as
those used by b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
s\bsh\bhe\bel\bll\bl-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-d\bd)\b)
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the
+ Kill from point to the end of the current word, or if between
+ words, to the end of the next word. Word boundaries are the
same as those used by s\bsh\bhe\bel\bll\bl-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
s\bsh\bhe\bel\bll\bl-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-k\bki\bil\bll\bl-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-R\bRu\bub\bbo\bou\but\bt)\b)
- Kill the word behind point. Word boundaries are the same as
+ Kill the word behind point. Word boundaries are the same as
those used by s\bsh\bhe\bel\bll\bl-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
u\bun\bni\bix\bx-\b-w\bwo\bor\brd\bd-\b-r\bru\bub\bbo\bou\but\bt (\b(C\bC-\b-w\bw)\b)
- Kill the word behind point, using white space as a word bound-
+ Kill the word behind point, using white space as a word bound-
ary. The killed text is saved on the kill-ring.
u\bun\bni\bix\bx-\b-f\bfi\bil\ble\ben\bna\bam\bme\be-\b-r\bru\bub\bbo\bou\but\bt
- Kill the word behind point, using white space and the slash
- character as the word boundaries. The killed text is saved on
+ Kill the word behind point, using white space and the slash
+ character as the word boundaries. The killed text is saved on
the kill-ring.
d\bde\bel\ble\bet\bte\be-\b-h\bho\bor\bri\biz\bzo\bon\bnt\bta\bal\bl-\b-s\bsp\bpa\bac\bce\be (\b(M\bM-\b-\\b\)\b)
Delete all spaces and tabs around point.
c\bco\bop\bpy\by-\b-r\bre\beg\bgi\bio\bon\bn-\b-a\bas\bs-\b-k\bki\bil\bll\bl
Copy the text in the region to the kill buffer.
c\bco\bop\bpy\by-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
- Copy the word before point to the kill buffer. The word bound-
+ Copy the word before point to the kill buffer. The word bound-
aries are the same as b\bba\bac\bck\bkw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
c\bco\bop\bpy\by-\b-f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd
- Copy the word following point to the kill buffer. The word
+ Copy the word following point to the kill buffer. The word
boundaries are the same as f\bfo\bor\brw\bwa\bar\brd\bd-\b-w\bwo\bor\brd\bd.
y\bya\ban\bnk\bk (\b(C\bC-\b-y\by)\b)
Yank the top of the kill ring into the buffer at point.
y\bya\ban\bnk\bk-\b-p\bpo\bop\bp (\b(M\bM-\b-y\by)\b)
- Rotate the kill ring, and yank the new top. Only works follow-
+ Rotate the kill ring, and yank the new top. Only works follow-
ing y\bya\ban\bnk\bk or y\bya\ban\bnk\bk-\b-p\bpo\bop\bp.
N\bNu\bum\bme\ber\bri\bic\bc A\bAr\brg\bgu\bum\bme\ben\bnt\bts\bs
d\bdi\big\bgi\bit\bt-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt (\b(M\bM-\b-0\b0,\b, M\bM-\b-1\b1,\b, .\b..\b..\b.,\b, M\bM-\b--\b-)\b)
- Add this digit to the argument already accumulating, or start a
+ Add this digit to the argument already accumulating, or start a
new argument. M-- starts a negative argument.
u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt
- This is another way to specify an argument. If this command is
- followed by one or more digits, optionally with a leading minus
- sign, those digits define the argument. If the command is fol-
- lowed by digits, executing u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt again ends the
- numeric argument, but is otherwise ignored. As a special case,
- if this command is immediately followed by a character that is
- neither a digit or minus sign, the argument count for the next
- command is multiplied by four. The argument count is initially
- one, so executing this function the first time makes the argu-
+ This is another way to specify an argument. If this command is
+ followed by one or more digits, optionally with a leading minus
+ sign, those digits define the argument. If the command is fol-
+ lowed by digits, executing u\bun\bni\biv\bve\ber\brs\bsa\bal\bl-\b-a\bar\brg\bgu\bum\bme\ben\bnt\bt again ends the
+ numeric argument, but is otherwise ignored. As a special case,
+ if this command is immediately followed by a character that is
+ neither a digit or minus sign, the argument count for the next
+ command is multiplied by four. The argument count is initially
+ one, so executing this function the first time makes the argu-
ment count four, a second time makes the argument count sixteen,
and so on.
C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg
c\bco\bom\bmp\bpl\ble\bet\bte\be (\b(T\bTA\bAB\bB)\b)
- Attempt to perform completion on the text before point. B\bBa\bas\bsh\bh
+ Attempt to perform completion on the text before point. B\bBa\bas\bsh\bh
attempts completion treating the text as a variable (if the text
- begins with $\b$), username (if the text begins with ~\b~), hostname
- (if the text begins with @\b@), or command (including aliases and
+ begins with $\b$), username (if the text begins with ~\b~), hostname
+ (if the text begins with @\b@), or command (including aliases and
functions) in turn. If none of these produces a match, filename
completion is attempted.
p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(M\bM-\b-?\b?)\b)
List the possible completions of the text before point.
i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(M\bM-\b-*\b*)\b)
- Insert all completions of the text before point that would have
+ Insert all completions of the text before point that would have
been generated by p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs.
m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be
- Similar to c\bco\bom\bmp\bpl\ble\bet\bte\be, but replaces the word to be completed with
- a single match from the list of possible completions. Repeated
- execution of m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be steps through the list of possible
- completions, inserting each match in turn. At the end of the
+ Similar to c\bco\bom\bmp\bpl\ble\bet\bte\be, but replaces the word to be completed with
+ a single match from the list of possible completions. Repeated
+ execution of m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be steps through the list of possible
+ completions, inserting each match in turn. At the end of the
list of completions, the bell is rung (subject to the setting of
b\bbe\bel\bll\bl-\b-s\bst\bty\byl\ble\be) and the original text is restored. An argument of _\bn
- moves _\bn positions forward in the list of matches; a negative
- argument may be used to move backward through the list. This
- command is intended to be bound to T\bTA\bAB\bB, but is unbound by
+ moves _\bn positions forward in the list of matches; a negative
+ argument may be used to move backward through the list. This
+ command is intended to be bound to T\bTA\bAB\bB, but is unbound by
default.
m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd
- Identical to m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be, but moves backward through the list
- of possible completions, as if m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be had been given a
+ Identical to m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be, but moves backward through the list
+ of possible completions, as if m\bme\ben\bnu\bu-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be had been given a
negative argument. This command is unbound by default.
d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br-\b-o\bor\br-\b-l\bli\bis\bst\bt
- Deletes the character under the cursor if not at the beginning
- or end of the line (like d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br). If at the end of the
+ Deletes the character under the cursor if not at the beginning
+ or end of the line (like d\bde\bel\ble\bet\bte\be-\b-c\bch\bha\bar\br). If at the end of the
line, behaves identically to p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs. This command
is unbound by default.
c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-f\bfi\bil\ble\ben\bna\bam\bme\be (\b(M\bM-\b-/\b/)\b)
List the possible completions of the text before point, treating
it as a filename.
c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-u\bus\bse\ber\brn\bna\bam\bme\be (\b(M\bM-\b-~\b~)\b)
- Attempt completion on the text before point, treating it as a
+ Attempt completion on the text before point, treating it as a
username.
p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-u\bus\bse\ber\brn\bna\bam\bme\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx ~\b~)\b)
List the possible completions of the text before point, treating
it as a username.
c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-v\bva\bar\bri\bia\bab\bbl\ble\be (\b(M\bM-\b-$\b$)\b)
- Attempt completion on the text before point, treating it as a
+ Attempt completion on the text before point, treating it as a
shell variable.
p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-v\bva\bar\bri\bia\bab\bbl\ble\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx $\b$)\b)
List the possible completions of the text before point, treating
it as a shell variable.
c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-h\bho\bos\bst\btn\bna\bam\bme\be (\b(M\bM-\b-@\b@)\b)
- Attempt completion on the text before point, treating it as a
+ Attempt completion on the text before point, treating it as a
hostname.
p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-h\bho\bos\bst\btn\bna\bam\bme\be-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx @\b@)\b)
List the possible completions of the text before point, treating
it as a hostname.
c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-c\bco\bom\bmm\bma\ban\bnd\bd (\b(M\bM-\b-!\b!)\b)
- Attempt completion on the text before point, treating it as a
- command name. Command completion attempts to match the text
- against aliases, reserved words, shell functions, shell
+ Attempt completion on the text before point, treating it as a
+ command name. Command completion attempts to match the text
+ against aliases, reserved words, shell functions, shell
builtins, and finally executable filenames, in that order.
p\bpo\bos\bss\bsi\bib\bbl\ble\be-\b-c\bco\bom\bmm\bma\ban\bnd\bd-\b-c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bns\bs (\b(C\bC-\b-x\bx !\b!)\b)
List the possible completions of the text before point, treating
it as a command name.
d\bdy\byn\bna\bam\bmi\bic\bc-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-h\bhi\bis\bst\bto\bor\bry\by (\b(M\bM-\b-T\bTA\bAB\bB)\b)
- Attempt completion on the text before point, comparing the text
- against lines from the history list for possible completion
+ Attempt completion on the text before point, comparing the text
+ against lines from the history list for possible completion
matches.
d\bda\bab\bbb\bbr\bre\bev\bv-\b-e\bex\bxp\bpa\ban\bnd\bd
- Attempt menu completion on the text before point, comparing the
+ Attempt menu completion on the text before point, comparing the
text against lines from the history list for possible completion
matches.
c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-i\bin\bnt\bto\bo-\b-b\bbr\bra\bac\bce\bes\bs (\b(M\bM-\b-{\b{)\b)
Perform filename completion and insert the list of possible com-
- pletions enclosed within braces so the list is available to the
+ pletions enclosed within braces so the list is available to the
shell (see B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above).
K\bKe\bey\byb\bbo\boa\bar\brd\bd M\bMa\bac\bcr\bro\bos\bs
s\bst\bta\bar\brt\bt-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b(C\bC-\b-x\bx (\b()\b)
- Begin saving the characters typed into the current keyboard
+ Begin saving the characters typed into the current keyboard
macro.
e\ben\bnd\bd-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b(C\bC-\b-x\bx )\b))\b)
Stop saving the characters typed into the current keyboard macro
and store the definition.
c\bca\bal\bll\bl-\b-l\bla\bas\bst\bt-\b-k\bkb\bbd\bd-\b-m\bma\bac\bcr\bro\bo (\b(C\bC-\b-x\bx e\be)\b)
- Re-execute the last keyboard macro defined, by making the char-
+ Re-execute the last keyboard macro defined, by making the char-
acters in the macro appear as if typed at the keyboard.
M\bMi\bis\bsc\bce\bel\bll\bla\ban\bne\beo\bou\bus\bs
r\bre\be-\b-r\bre\bea\bad\bd-\b-i\bin\bni\bit\bt-\b-f\bfi\bil\ble\be (\b(C\bC-\b-x\bx C\bC-\b-r\br)\b)
- Read in the contents of the _\bi_\bn_\bp_\bu_\bt_\br_\bc file, and incorporate any
+ Read in the contents of the _\bi_\bn_\bp_\bu_\bt_\br_\bc file, and incorporate any
bindings or variable assignments found there.
a\bab\bbo\bor\brt\bt (\b(C\bC-\b-g\bg)\b)
- Abort the current editing command and ring the terminal's bell
+ Abort the current editing command and ring the terminal's bell
(subject to the setting of b\bbe\bel\bll\bl-\b-s\bst\bty\byl\ble\be).
d\bdo\bo-\b-u\bup\bpp\bpe\ber\brc\bca\bas\bse\be-\b-v\bve\ber\brs\bsi\bio\bon\bn (\b(M\bM-\b-a\ba,\b, M\bM-\b-b\bb,\b, M\bM-\b-_\bx,\b, .\b..\b..\b.)\b)
- If the metafied character _\bx is lowercase, run the command that
+ If the metafied character _\bx is lowercase, run the command that
is bound to the corresponding uppercase character.
p\bpr\bre\bef\bfi\bix\bx-\b-m\bme\bet\bta\ba (\b(E\bES\bSC\bC)\b)
Metafy the next character typed. E\bES\bSC\bC f\bf is equivalent to M\bMe\bet\bta\ba-\b-f\bf.
u\bun\bnd\bdo\bo (\b(C\bC-\b-_\b_,\b, C\bC-\b-x\bx C\bC-\b-u\bu)\b)
Incremental undo, separately remembered for each line.
r\bre\bev\bve\ber\brt\bt-\b-l\bli\bin\bne\be (\b(M\bM-\b-r\br)\b)
- Undo all changes made to this line. This is like executing the
- u\bun\bnd\bdo\bo command enough times to return the line to its initial
+ Undo all changes made to this line. This is like executing the
+ u\bun\bnd\bdo\bo command enough times to return the line to its initial
state.
t\bti\bil\bld\bde\be-\b-e\bex\bxp\bpa\ban\bnd\bd (\b(M\bM-\b-&\b&)\b)
Perform tilde expansion on the current word.
s\bse\bet\bt-\b-m\bma\bar\brk\bk (\b(C\bC-\b-@\b@,\b, M\bM-\b-<\b<s\bsp\bpa\bac\bce\be>\b>)\b)
- Set the mark to the point. If a numeric argument is supplied,
+ Set the mark to the point. If a numeric argument is supplied,
the mark is set to that position.
e\bex\bxc\bch\bha\ban\bng\bge\be-\b-p\bpo\boi\bin\bnt\bt-\b-a\ban\bnd\bd-\b-m\bma\bar\brk\bk (\b(C\bC-\b-x\bx C\bC-\b-x\bx)\b)
- Swap the point with the mark. The current cursor position is
- set to the saved position, and the old cursor position is saved
+ Swap the point with the mark. The current cursor position is
+ set to the saved position, and the old cursor position is saved
as the mark.
c\bch\bha\bar\bra\bac\bct\bte\ber\br-\b-s\bse\bea\bar\brc\bch\bh (\b(C\bC-\b-]\b])\b)
A character is read and point is moved to the next occurrence of
- that character. A negative count searches for previous occur-
+ that character. A negative count searches for previous occur-
rences.
c\bch\bha\bar\bra\bac\bct\bte\ber\br-\b-s\bse\bea\bar\brc\bch\bh-\b-b\bba\bac\bck\bkw\bwa\bar\brd\bd (\b(M\bM-\b-C\bC-\b-]\b])\b)
- A character is read and point is moved to the previous occur-
- rence of that character. A negative count searches for subse-
+ A character is read and point is moved to the previous occur-
+ rence of that character. A negative count searches for subse-
quent occurrences.
s\bsk\bki\bip\bp-\b-c\bcs\bsi\bi-\b-s\bse\beq\bqu\bue\ben\bnc\bce\be
- Read enough characters to consume a multi-key sequence such as
- those defined for keys like Home and End. Such sequences begin
+ Read enough characters to consume a multi-key sequence such as
+ those defined for keys like Home and End. Such sequences begin
with a Control Sequence Indicator (CSI), usually ESC-[. If this
- sequence is bound to "\[", keys producing such sequences will
- have no effect unless explicitly bound to a readline command,
- instead of inserting stray characters into the editing buffer.
+ sequence is bound to "\[", keys producing such sequences will
+ have no effect unless explicitly bound to a readline command,
+ instead of inserting stray characters into the editing buffer.
This is unbound by default, but usually bound to ESC-[.
i\bin\bns\bse\ber\brt\bt-\b-c\bco\bom\bmm\bme\ben\bnt\bt (\b(M\bM-\b-#\b#)\b)
- Without a numeric argument, the value of the readline c\bco\bom\bm-\b-
- m\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn variable is inserted at the beginning of the current
+ Without a numeric argument, the value of the readline c\bco\bom\bm-\b-
+ m\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn variable is inserted at the beginning of the current
line. If a numeric argument is supplied, this command acts as a
- toggle: if the characters at the beginning of the line do not
- match the value of c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn, the value is inserted, other-
+ toggle: if the characters at the beginning of the line do not
+ match the value of c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn, the value is inserted, other-
wise the characters in c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn are deleted from the begin-
- ning of the line. In either case, the line is accepted as if a
- newline had been typed. The default value of c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn
- causes this command to make the current line a shell comment.
- If a numeric argument causes the comment character to be
+ ning of the line. In either case, the line is accepted as if a
+ newline had been typed. The default value of c\bco\bom\bmm\bme\ben\bnt\bt-\b-b\bbe\beg\bgi\bin\bn
+ causes this command to make the current line a shell comment.
+ If a numeric argument causes the comment character to be
removed, the line will be executed by the shell.
g\bgl\blo\bob\bb-\b-c\bco\bom\bmp\bpl\ble\bet\bte\be-\b-w\bwo\bor\brd\bd (\b(M\bM-\b-g\bg)\b)
- The word before point is treated as a pattern for pathname
- expansion, with an asterisk implicitly appended. This pattern
- is used to generate a list of matching filenames for possible
+ The word before point is treated as a pattern for pathname
+ expansion, with an asterisk implicitly appended. This pattern
+ is used to generate a list of matching filenames for possible
completions.
g\bgl\blo\bob\bb-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-w\bwo\bor\brd\bd (\b(C\bC-\b-x\bx *\b*)\b)
- The word before point is treated as a pattern for pathname
- expansion, and the list of matching filenames is inserted,
- replacing the word. If a numeric argument is supplied, an
+ The word before point is treated as a pattern for pathname
+ expansion, and the list of matching filenames is inserted,
+ replacing the word. If a numeric argument is supplied, an
asterisk is appended before pathname expansion.
g\bgl\blo\bob\bb-\b-l\bli\bis\bst\bt-\b-e\bex\bxp\bpa\ban\bns\bsi\bio\bon\bns\bs (\b(C\bC-\b-x\bx g\bg)\b)
- The list of expansions that would have been generated by
- g\bgl\blo\bob\bb-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-w\bwo\bor\brd\bd is displayed, and the line is redrawn. If a
- numeric argument is supplied, an asterisk is appended before
+ The list of expansions that would have been generated by
+ g\bgl\blo\bob\bb-\b-e\bex\bxp\bpa\ban\bnd\bd-\b-w\bwo\bor\brd\bd is displayed, and the line is redrawn. If a
+ numeric argument is supplied, an asterisk is appended before
pathname expansion.
d\bdu\bum\bmp\bp-\b-f\bfu\bun\bnc\bct\bti\bio\bon\bns\bs
- Print all of the functions and their key bindings to the read-
+ Print all of the functions and their key bindings to the read-
line output stream. If a numeric argument is supplied, the out-
- put is formatted in such a way that it can be made part of an
+ put is formatted in such a way that it can be made part of an
_\bi_\bn_\bp_\bu_\bt_\br_\bc file.
d\bdu\bum\bmp\bp-\b-v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
Print all of the settable readline variables and their values to
- the readline output stream. If a numeric argument is supplied,
- the output is formatted in such a way that it can be made part
+ the readline output stream. If a numeric argument is supplied,
+ the output is formatted in such a way that it can be made part
of an _\bi_\bn_\bp_\bu_\bt_\br_\bc file.
d\bdu\bum\bmp\bp-\b-m\bma\bac\bcr\bro\bos\bs
- Print all of the readline key sequences bound to macros and the
- strings they output. If a numeric argument is supplied, the
+ Print all of the readline key sequences bound to macros and the
+ strings they output. If a numeric argument is supplied, the
output is formatted in such a way that it can be made part of an
_\bi_\bn_\bp_\bu_\bt_\br_\bc file.
d\bdi\bis\bsp\bpl\bla\bay\by-\b-s\bsh\bhe\bel\bll\bl-\b-v\bve\ber\brs\bsi\bio\bon\bn (\b(C\bC-\b-x\bx C\bC-\b-v\bv)\b)
- Display version information about the current instance of b\bba\bas\bsh\bh.
+ Display version information about the current instance of b\bba\bas\bsh\bh.
P\bPr\bro\bog\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
- When word completion is attempted for an argument to a command for
- which a completion specification (a _\bc_\bo_\bm_\bp_\bs_\bp_\be_\bc) has been defined using
- the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below), the pro-
+ When word completion is attempted for an argument to a command for
+ which a completion specification (a _\bc_\bo_\bm_\bp_\bs_\bp_\be_\bc) has been defined using
+ the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below), the pro-
grammable completion facilities are invoked.
- First, the command name is identified. If the command word is the
- empty string (completion attempted at the beginning of an empty line),
- any compspec defined with the -\b-E\bE option to c\bco\bom\bmp\bpl\ble\bet\bte\be is used. If a
- compspec has been defined for that command, the compspec is used to
+ First, the command name is identified. If the command word is the
+ empty string (completion attempted at the beginning of an empty line),
+ any compspec defined with the -\b-E\bE option to c\bco\bom\bmp\bpl\ble\bet\bte\be is used. If a
+ compspec has been defined for that command, the compspec is used to
generate the list of possible completions for the word. If the command
- word is a full pathname, a compspec for the full pathname is searched
- for first. If no compspec is found for the full pathname, an attempt
- is made to find a compspec for the portion following the final slash.
- If those searches do not result in a compspec, any compspec defined
+ word is a full pathname, a compspec for the full pathname is searched
+ for first. If no compspec is found for the full pathname, an attempt
+ is made to find a compspec for the portion following the final slash.
+ If those searches do not result in a compspec, any compspec defined
with the -\b-D\bD option to c\bco\bom\bmp\bpl\ble\bet\bte\be is used as the default.
- Once a compspec has been found, it is used to generate the list of
- matching words. If a compspec is not found, the default b\bba\bas\bsh\bh comple-
+ Once a compspec has been found, it is used to generate the list of
+ matching words. If a compspec is not found, the default b\bba\bas\bsh\bh comple-
tion as described above under C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg is performed.
- First, the actions specified by the compspec are used. Only matches
- which are prefixed by the word being completed are returned. When the
- -\b-f\bf or -\b-d\bd option is used for filename or directory name completion, the
+ First, the actions specified by the compspec are used. Only matches
+ which are prefixed by the word being completed are returned. When the
+ -\b-f\bf or -\b-d\bd option is used for filename or directory name completion, the
shell variable F\bFI\bIG\bGN\bNO\bOR\bRE\bE is used to filter the matches.
- Any completions specified by a pathname expansion pattern to the -\b-G\bG
+ Any completions specified by a pathname expansion pattern to the -\b-G\bG
option are generated next. The words generated by the pattern need not
- match the word being completed. The G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE shell variable is not
+ match the word being completed. The G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE shell variable is not
used to filter the matches, but the F\bFI\bIG\bGN\bNO\bOR\bRE\bE variable is used.
- Next, the string specified as the argument to the -\b-W\bW option is consid-
- ered. The string is first split using the characters in the I\bIF\bFS\bS spe-
- cial variable as delimiters. Shell quoting is honored. Each word is
- then expanded using brace expansion, tilde expansion, parameter and
- variable expansion, command substitution, and arithmetic expansion, as
+ Next, the string specified as the argument to the -\b-W\bW option is consid-
+ ered. The string is first split using the characters in the I\bIF\bFS\bS spe-
+ cial variable as delimiters. Shell quoting is honored. Each word is
+ then expanded using brace expansion, tilde expansion, parameter and
+ variable expansion, command substitution, and arithmetic expansion, as
described above under E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN. The results are split using the rules
described above under W\bWo\bor\brd\bd S\bSp\bpl\bli\bit\btt\bti\bin\bng\bg. The results of the expansion are
prefix-matched against the word being completed, and the matching words
become the possible completions.
- After these matches have been generated, any shell function or command
- specified with the -\b-F\bF and -\b-C\bC options is invoked. When the command or
+ After these matches have been generated, any shell function or command
+ specified with the -\b-F\bF and -\b-C\bC options is invoked. When the command or
function is invoked, the C\bCO\bOM\bMP\bP_\b_L\bLI\bIN\bNE\bE, C\bCO\bOM\bMP\bP_\b_P\bPO\bOI\bIN\bNT\bT, C\bCO\bOM\bMP\bP_\b_K\bKE\bEY\bY, and C\bCO\bOM\bMP\bP_\b_T\bTY\bYP\bPE\bE
variables are assigned values as described above under S\bSh\bhe\bel\bll\bl V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs.
- If a shell function is being invoked, the C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS and C\bCO\bOM\bMP\bP_\b_C\bCW\bWO\bOR\bRD\bD
- variables are also set. When the function or command is invoked, the
- first argument is the name of the command whose arguments are being
- completed, the second argument is the word being completed, and the
- third argument is the word preceding the word being completed on the
- current command line. No filtering of the generated completions
- against the word being completed is performed; the function or command
+ If a shell function is being invoked, the C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDS\bS and C\bCO\bOM\bMP\bP_\b_C\bCW\bWO\bOR\bRD\bD
+ variables are also set. When the function or command is invoked, the
+ first argument is the name of the command whose arguments are being
+ completed, the second argument is the word being completed, and the
+ third argument is the word preceding the word being completed on the
+ current command line. No filtering of the generated completions
+ against the word being completed is performed; the function or command
has complete freedom in generating the matches.
- Any function specified with -\b-F\bF is invoked first. The function may use
- any of the shell facilities, including the c\bco\bom\bmp\bpg\bge\ben\bn builtin described
- below, to generate the matches. It must put the possible completions
+ Any function specified with -\b-F\bF is invoked first. The function may use
+ any of the shell facilities, including the c\bco\bom\bmp\bpg\bge\ben\bn builtin described
+ below, to generate the matches. It must put the possible completions
in the C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY array variable.
- Next, any command specified with the -\b-C\bC option is invoked in an envi-
- ronment equivalent to command substitution. It should print a list of
- completions, one per line, to the standard output. Backslash may be
+ Next, any command specified with the -\b-C\bC option is invoked in an envi-
+ ronment equivalent to command substitution. It should print a list of
+ completions, one per line, to the standard output. Backslash may be
used to escape a newline, if necessary.
- After all of the possible completions are generated, any filter speci-
- fied with the -\b-X\bX option is applied to the list. The filter is a pat-
- tern as used for pathname expansion; a &\b& in the pattern is replaced
- with the text of the word being completed. A literal &\b& may be escaped
- with a backslash; the backslash is removed before attempting a match.
- Any completion that matches the pattern will be removed from the list.
+ After all of the possible completions are generated, any filter speci-
+ fied with the -\b-X\bX option is applied to the list. The filter is a pat-
+ tern as used for pathname expansion; a &\b& in the pattern is replaced
+ with the text of the word being completed. A literal &\b& may be escaped
+ with a backslash; the backslash is removed before attempting a match.
+ Any completion that matches the pattern will be removed from the list.
A leading !\b! negates the pattern; in this case any completion not match-
ing the pattern will be removed.
added to each member of the completion list, and the result is returned
to the readline completion code as the list of possible completions.
- If the previously-applied actions do not generate any matches, and the
- -\b-o\bo d\bdi\bir\brn\bna\bam\bme\bes\bs option was supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec was
+ If the previously-applied actions do not generate any matches, and the
+ -\b-o\bo d\bdi\bir\brn\bna\bam\bme\bes\bs option was supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec was
defined, directory name completion is attempted.
- If the -\b-o\bo p\bpl\blu\bus\bsd\bdi\bir\brs\bs option was supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec
+ If the -\b-o\bo p\bpl\blu\bus\bsd\bdi\bir\brs\bs option was supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec
was defined, directory name completion is attempted and any matches are
added to the results of the other actions.
- By default, if a compspec is found, whatever it generates is returned
- to the completion code as the full set of possible completions. The
+ By default, if a compspec is found, whatever it generates is returned
+ to the completion code as the full set of possible completions. The
default b\bba\bas\bsh\bh completions are not attempted, and the readline default of
filename completion is disabled. If the -\b-o\bo b\bba\bas\bsh\bhd\bde\bef\bfa\bau\bul\blt\bt option was sup-
- plied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec was defined, the b\bba\bas\bsh\bh default com-
+ plied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec was defined, the b\bba\bas\bsh\bh default com-
pletions are attempted if the compspec generates no matches. If the -\b-o\bo
- d\bde\bef\bfa\bau\bul\blt\bt option was supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec was defined,
- readline's default completion will be performed if the compspec (and,
+ d\bde\bef\bfa\bau\bul\blt\bt option was supplied to c\bco\bom\bmp\bpl\ble\bet\bte\be when the compspec was defined,
+ readline's default completion will be performed if the compspec (and,
if attempted, the default b\bba\bas\bsh\bh completions) generate no matches.
- When a compspec indicates that directory name completion is desired,
- the programmable completion functions force readline to append a slash
- to completed names which are symbolic links to directories, subject to
- the value of the m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs readline variable, regardless of the
+ When a compspec indicates that directory name completion is desired,
+ the programmable completion functions force readline to append a slash
+ to completed names which are symbolic links to directories, subject to
+ the value of the m\bma\bar\brk\bk-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs readline variable, regardless of the
setting of the m\bma\bar\brk\bk-\b-s\bsy\bym\bml\bli\bin\bnk\bke\bed\bd-\b-d\bdi\bir\bre\bec\bct\bto\bor\bri\bie\bes\bs readline variable.
- There is some support for dynamically modifying completions. This is
- most useful when used in combination with a default completion speci-
- fied with c\bco\bom\bmp\bpl\ble\bet\bte\be -\b-D\bD. It's possible for shell functions executed as
- completion handlers to indicate that completion should be retried by
- returning an exit status of 124. If a shell function returns 124, and
+ There is some support for dynamically modifying completions. This is
+ most useful when used in combination with a default completion speci-
+ fied with c\bco\bom\bmp\bpl\ble\bet\bte\be -\b-D\bD. It's possible for shell functions executed as
+ completion handlers to indicate that completion should be retried by
+ returning an exit status of 124. If a shell function returns 124, and
changes the compspec associated with the command on which completion is
- being attempted (supplied as the first argument when the function is
+ being attempted (supplied as the first argument when the function is
executed), programmable completion restarts from the beginning, with an
- attempt to find a new compspec for that command. This allows a set of
- completions to be built dynamically as completion is attempted, rather
+ attempt to find a new compspec for that command. This allows a set of
+ completions to be built dynamically as completion is attempted, rather
than being loaded all at once.
- For instance, assuming that there is a library of compspecs, each kept
- in a file corresponding to the name of the command, the following
+ For instance, assuming that there is a library of compspecs, each kept
+ in a file corresponding to the name of the command, the following
default completion function would load completions dynamically:
_completion_loader()
H\bHI\bIS\bST\bTO\bOR\bRY\bY
- When the -\b-o\bo h\bhi\bis\bst\bto\bor\bry\by option to the s\bse\bet\bt builtin is enabled, the shell
+ When the -\b-o\bo h\bhi\bis\bst\bto\bor\bry\by option to the s\bse\bet\bt builtin is enabled, the shell
provides access to the _\bc_\bo_\bm_\bm_\ba_\bn_\bd _\bh_\bi_\bs_\bt_\bo_\br_\by, the list of commands previously
- typed. The value of the H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE variable is used as the number of
+ typed. The value of the H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE variable is used as the number of
commands to save in a history list. The text of the last H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE com-
- mands (default 500) is saved. The shell stores each command in the
- history list prior to parameter and variable expansion (see E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
- above) but after history expansion is performed, subject to the values
+ mands (default 500) is saved. The shell stores each command in the
+ history list prior to parameter and variable expansion (see E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
+ above) but after history expansion is performed, subject to the values
of the shell variables H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE and H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL.
On startup, the history is initialized from the file named by the vari-
- able H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE (default _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by). The file named by the value
- of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is truncated, if necessary, to contain no more than the
- number of lines specified by the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE. When the his-
- tory file is read, lines beginning with the history comment character
- followed immediately by a digit are interpreted as timestamps for the
- preceding history line. These timestamps are optionally displayed
- depending on the value of the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable. When an inter-
- active shell exits, the last $\b$H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE lines are copied from the his-
+ able H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE (default _\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bh_\bi_\bs_\bt_\bo_\br_\by). The file named by the value
+ of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is truncated, if necessary, to contain no more than the
+ number of lines specified by the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE. When the his-
+ tory file is read, lines beginning with the history comment character
+ followed immediately by a digit are interpreted as timestamps for the
+ preceding history line. These timestamps are optionally displayed
+ depending on the value of the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable. When an inter-
+ active shell exits, the last $\b$H\bHI\bIS\bST\bTS\bSI\bIZ\bZE\bE lines are copied from the his-
tory list to $\b$H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE. If the h\bhi\bis\bst\bta\bap\bpp\bpe\ben\bnd\bd shell option is enabled (see
the description of s\bsh\bho\bop\bpt\bt under S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below), the lines
- are appended to the history file, otherwise the history file is over-
- written. If H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is unset, or if the history file is unwritable,
- the history is not saved. If the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable is set, time
+ are appended to the history file, otherwise the history file is over-
+ written. If H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is unset, or if the history file is unwritable,
+ the history is not saved. If the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable is set, time
stamps are written to the history file, marked with the history comment
- character, so they may be preserved across shell sessions. This uses
+ character, so they may be preserved across shell sessions. This uses
the history comment character to distinguish timestamps from other his-
tory lines. After saving the history, the history file is truncated to
- contain no more than H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE lines. If H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE is not set,
+ contain no more than H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE lines. If H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bES\bSI\bIZ\bZE\bE is not set,
no truncation is performed.
- The builtin command f\bfc\bc (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) may be used
+ The builtin command f\bfc\bc (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below) may be used
to list or edit and re-execute a portion of the history list. The h\bhi\bis\bs-\b-
- t\bto\bor\bry\by builtin may be used to display or modify the history list and
- manipulate the history file. When using command-line editing, search
- commands are available in each editing mode that provide access to the
+ t\bto\bor\bry\by builtin may be used to display or modify the history list and
+ manipulate the history file. When using command-line editing, search
+ commands are available in each editing mode that provide access to the
history list.
- The shell allows control over which commands are saved on the history
+ The shell allows control over which commands are saved on the history
list. The H\bHI\bIS\bST\bTC\bCO\bON\bNT\bTR\bRO\bOL\bL and H\bHI\bIS\bST\bTI\bIG\bGN\bNO\bOR\bRE\bE variables may be set to cause the
shell to save only a subset of the commands entered. The c\bcm\bmd\bdh\bhi\bis\bst\bt shell
- option, if enabled, causes the shell to attempt to save each line of a
- multi-line command in the same history entry, adding semicolons where
- necessary to preserve syntactic correctness. The l\bli\bit\bth\bhi\bis\bst\bt shell option
- causes the shell to save the command with embedded newlines instead of
+ option, if enabled, causes the shell to attempt to save each line of a
+ multi-line command in the same history entry, adding semicolons where
+ necessary to preserve syntactic correctness. The l\bli\bit\bth\bhi\bis\bst\bt shell option
+ causes the shell to save the command with embedded newlines instead of
semicolons. See the description of the s\bsh\bho\bop\bpt\bt builtin below under S\bSH\bHE\bEL\bLL\bL
B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS for information on setting and unsetting shell
options.
H\bHI\bIS\bST\bTO\bOR\bRY\bY E\bEX\bXP\bPA\bAN\bNS\bSI\bIO\bON\bN
- The shell supports a history expansion feature that is similar to the
- history expansion in c\bcs\bsh\bh.\b. This section describes what syntax features
- are available. This feature is enabled by default for interactive
+ The shell supports a history expansion feature that is similar to the
+ history expansion in c\bcs\bsh\bh.\b. This section describes what syntax features
+ are available. This feature is enabled by default for interactive
shells, and can be disabled using the +\b+H\bH option to the s\bse\bet\bt builtin com-
mand (see S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS below). Non-interactive shells do not
perform history expansion by default.
History expansions introduce words from the history list into the input
- stream, making it easy to repeat commands, insert the arguments to a
+ stream, making it easy to repeat commands, insert the arguments to a
previous command into the current input line, or fix errors in previous
commands quickly.
- History expansion is performed immediately after a complete line is
- read, before the shell breaks it into words. It takes place in two
- parts. The first is to determine which line from the history list to
+ History expansion is performed immediately after a complete line is
+ read, before the shell breaks it into words. It takes place in two
+ parts. The first is to determine which line from the history list to
use during substitution. The second is to select portions of that line
for inclusion into the current one. The line selected from the history
- is the _\be_\bv_\be_\bn_\bt, and the portions of that line that are acted upon are
- _\bw_\bo_\br_\bd_\bs. Various _\bm_\bo_\bd_\bi_\bf_\bi_\be_\br_\bs are available to manipulate the selected
+ is the _\be_\bv_\be_\bn_\bt, and the portions of that line that are acted upon are
+ _\bw_\bo_\br_\bd_\bs. Various _\bm_\bo_\bd_\bi_\bf_\bi_\be_\br_\bs are available to manipulate the selected
words. The line is broken into words in the same fashion as when read-
- ing input, so that several _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br-separated words surrounded by
- quotes are considered one word. History expansions are introduced by
- the appearance of the history expansion character, which is !\b! by
- default. Only backslash (\\b\) and single quotes can quote the history
+ ing input, so that several _\bm_\be_\bt_\ba_\bc_\bh_\ba_\br_\ba_\bc_\bt_\be_\br-separated words surrounded by
+ quotes are considered one word. History expansions are introduced by
+ the appearance of the history expansion character, which is !\b! by
+ default. Only backslash (\\b\) and single quotes can quote the history
expansion character.
- Several characters inhibit history expansion if found immediately fol-
- lowing the history expansion character, even if it is unquoted: space,
- tab, newline, carriage return, and =\b=. If the e\bex\bxt\btg\bgl\blo\bob\bb shell option is
+ Several characters inhibit history expansion if found immediately fol-
+ lowing the history expansion character, even if it is unquoted: space,
+ tab, newline, carriage return, and =\b=. If the e\bex\bxt\btg\bgl\blo\bob\bb shell option is
enabled, (\b( will also inhibit expansion.
- Several shell options settable with the s\bsh\bho\bop\bpt\bt builtin may be used to
- tailor the behavior of history expansion. If the h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\by shell
+ Several shell options settable with the s\bsh\bho\bop\bpt\bt builtin may be used to
+ tailor the behavior of history expansion. If the h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\by shell
option is enabled (see the description of the s\bsh\bho\bop\bpt\bt builtin below), and
- r\bre\bea\bad\bdl\bli\bin\bne\be is being used, history substitutions are not immediately
- passed to the shell parser. Instead, the expanded line is reloaded
+ r\bre\bea\bad\bdl\bli\bin\bne\be is being used, history substitutions are not immediately
+ passed to the shell parser. Instead, the expanded line is reloaded
into the r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer for further modification. If r\bre\bea\bad\bdl\bli\bin\bne\be
- is being used, and the h\bhi\bis\bst\btr\bre\bee\bed\bdi\bit\bt shell option is enabled, a failed
- history substitution will be reloaded into the r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer
- for correction. The -\b-p\bp option to the h\bhi\bis\bst\bto\bor\bry\by builtin command may be
- used to see what a history expansion will do before using it. The -\b-s\bs
+ is being used, and the h\bhi\bis\bst\btr\bre\bee\bed\bdi\bit\bt shell option is enabled, a failed
+ history substitution will be reloaded into the r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer
+ for correction. The -\b-p\bp option to the h\bhi\bis\bst\bto\bor\bry\by builtin command may be
+ used to see what a history expansion will do before using it. The -\b-s\bs
option to the h\bhi\bis\bst\bto\bor\bry\by builtin may be used to add commands to the end of
- the history list without actually executing them, so that they are
+ the history list without actually executing them, so that they are
available for subsequent recall.
- The shell allows control of the various characters used by the history
+ The shell allows control of the various characters used by the history
expansion mechanism (see the description of h\bhi\bis\bst\btc\bch\bha\bar\brs\bs above under S\bSh\bhe\bel\bll\bl
- V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs). The shell uses the history comment character to mark his-
+ V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs). The shell uses the history comment character to mark his-
tory timestamps when writing the history file.
E\bEv\bve\ben\bnt\bt D\bDe\bes\bsi\big\bgn\bna\bat\bto\bor\brs\bs
- An event designator is a reference to a command line entry in the his-
- tory list. Unless the reference is absolute, events are relative to
+ An event designator is a reference to a command line entry in the his-
+ tory list. Unless the reference is absolute, events are relative to
the current position in the history list.
- !\b! Start a history substitution, except when followed by a b\bbl\bla\ban\bnk\bk,
- newline, carriage return, = or ( (when the e\bex\bxt\btg\bgl\blo\bob\bb shell option
+ !\b! Start a history substitution, except when followed by a b\bbl\bla\ban\bnk\bk,
+ newline, carriage return, = or ( (when the e\bex\bxt\btg\bgl\blo\bob\bb shell option
is enabled using the s\bsh\bho\bop\bpt\bt builtin).
!\b!_\bn Refer to command line _\bn.
!\b!-\b-_\bn Refer to the current command minus _\bn.
!\b!!\b! Refer to the previous command. This is a synonym for `!-1'.
!\b!_\bs_\bt_\br_\bi_\bn_\bg
- Refer to the most recent command preceding the current position
+ Refer to the most recent command preceding the current position
in the history list starting with _\bs_\bt_\br_\bi_\bn_\bg.
!\b!?\b?_\bs_\bt_\br_\bi_\bn_\bg[\b[?\b?]\b]
Refer to the most recent command preceding the current postition
- in the history list containing _\bs_\bt_\br_\bi_\bn_\bg. The trailing ?\b? may be
+ in the history list containing _\bs_\bt_\br_\bi_\bn_\bg. The trailing ?\b? may be
omitted if _\bs_\bt_\br_\bi_\bn_\bg is followed immediately by a newline.
^\b^_\bs_\bt_\br_\bi_\bn_\bg_\b1^\b^_\bs_\bt_\br_\bi_\bn_\bg_\b2^\b^
- Quick substitution. Repeat the previous command, replacing
- _\bs_\bt_\br_\bi_\bn_\bg_\b1 with _\bs_\bt_\br_\bi_\bn_\bg_\b2. Equivalent to ``!!:s/_\bs_\bt_\br_\bi_\bn_\bg_\b1/_\bs_\bt_\br_\bi_\bn_\bg_\b2/''
+ Quick substitution. Repeat the previous command, replacing
+ _\bs_\bt_\br_\bi_\bn_\bg_\b1 with _\bs_\bt_\br_\bi_\bn_\bg_\b2. Equivalent to ``!!:s/_\bs_\bt_\br_\bi_\bn_\bg_\b1/_\bs_\bt_\br_\bi_\bn_\bg_\b2/''
(see M\bMo\bod\bdi\bif\bfi\bie\ber\brs\bs below).
!\b!#\b# The entire command line typed so far.
W\bWo\bor\brd\bd D\bDe\bes\bsi\big\bgn\bna\bat\bto\bor\brs\bs
- Word designators are used to select desired words from the event. A :\b:
- separates the event specification from the word designator. It may be
- omitted if the word designator begins with a ^\b^, $\b$, *\b*, -\b-, or %\b%. Words
- are numbered from the beginning of the line, with the first word being
- denoted by 0 (zero). Words are inserted into the current line sepa-
+ Word designators are used to select desired words from the event. A :\b:
+ separates the event specification from the word designator. It may be
+ omitted if the word designator begins with a ^\b^, $\b$, *\b*, -\b-, or %\b%. Words
+ are numbered from the beginning of the line, with the first word being
+ denoted by 0 (zero). Words are inserted into the current line sepa-
rated by single spaces.
0\b0 (\b(z\bze\ber\bro\bo)\b)
$\b$ The last argument.
%\b% The word matched by the most recent `?_\bs_\bt_\br_\bi_\bn_\bg?' search.
_\bx-\b-_\by A range of words; `-_\by' abbreviates `0-_\by'.
- *\b* All of the words but the zeroth. This is a synonym for `_\b1_\b-_\b$'.
- It is not an error to use *\b* if there is just one word in the
+ *\b* All of the words but the zeroth. This is a synonym for `_\b1_\b-_\b$'.
+ It is not an error to use *\b* if there is just one word in the
event; the empty string is returned in that case.
x\bx*\b* Abbreviates _\bx_\b-_\b$.
x\bx-\b- Abbreviates _\bx_\b-_\b$ like x\bx*\b*, but omits the last word.
- If a word designator is supplied without an event specification, the
+ If a word designator is supplied without an event specification, the
previous command is used as the event.
M\bMo\bod\bdi\bif\bfi\bie\ber\brs\bs
- After the optional word designator, there may appear a sequence of one
+ After the optional word designator, there may appear a sequence of one
or more of the following modifiers, each preceded by a `:'.
h\bh Remove a trailing filename component, leaving only the head.
e\be Remove all but the trailing suffix.
p\bp Print the new command but do not execute it.
q\bq Quote the substituted words, escaping further substitutions.
- x\bx Quote the substituted words as with q\bq, but break into words at
+ x\bx Quote the substituted words as with q\bq, but break into words at
b\bbl\bla\ban\bnk\bks\bs and newlines.
s\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/
- Substitute _\bn_\be_\bw for the first occurrence of _\bo_\bl_\bd in the event
- line. Any delimiter can be used in place of /. The final
- delimiter is optional if it is the last character of the event
- line. The delimiter may be quoted in _\bo_\bl_\bd and _\bn_\be_\bw with a single
- backslash. If & appears in _\bn_\be_\bw, it is replaced by _\bo_\bl_\bd. A sin-
- gle backslash will quote the &. If _\bo_\bl_\bd is null, it is set to
- the last _\bo_\bl_\bd substituted, or, if no previous history substitu-
+ Substitute _\bn_\be_\bw for the first occurrence of _\bo_\bl_\bd in the event
+ line. Any delimiter can be used in place of /. The final
+ delimiter is optional if it is the last character of the event
+ line. The delimiter may be quoted in _\bo_\bl_\bd and _\bn_\be_\bw with a single
+ backslash. If & appears in _\bn_\be_\bw, it is replaced by _\bo_\bl_\bd. A sin-
+ gle backslash will quote the &. If _\bo_\bl_\bd is null, it is set to
+ the last _\bo_\bl_\bd substituted, or, if no previous history substitu-
tions took place, the last _\bs_\bt_\br_\bi_\bn_\bg in a !\b!?\b?_\bs_\bt_\br_\bi_\bn_\bg[\b[?\b?]\b] search.
&\b& Repeat the previous substitution.
g\bg Cause changes to be applied over the entire event line. This is
- used in conjunction with `:\b:s\bs' (e.g., `:\b:g\bgs\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/') or `:\b:&\b&'.
- If used with `:\b:s\bs', any delimiter can be used in place of /, and
- the final delimiter is optional if it is the last character of
+ used in conjunction with `:\b:s\bs' (e.g., `:\b:g\bgs\bs/\b/_\bo_\bl_\bd/\b/_\bn_\be_\bw/\b/') or `:\b:&\b&'.
+ If used with `:\b:s\bs', any delimiter can be used in place of /, and
+ the final delimiter is optional if it is the last character of
the event line. An a\ba may be used as a synonym for g\bg.
- G\bG Apply the following `s\bs' modifier once to each word in the event
+ G\bG Apply the following `s\bs' modifier once to each word in the event
line.
S\bSH\bHE\bEL\bLL\bL B\bBU\bUI\bIL\bLT\bTI\bIN\bN C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
Unless otherwise noted, each builtin command documented in this section
as accepting options preceded by -\b- accepts -\b--\b- to signify the end of the
- options. The :\b:, t\btr\bru\bue\be, f\bfa\bal\bls\bse\be, and t\bte\bes\bst\bt builtins do not accept options
+ options. The :\b:, t\btr\bru\bue\be, f\bfa\bal\bls\bse\be, and t\bte\bes\bst\bt builtins do not accept options
and do not treat -\b--\b- specially. The e\bex\bxi\bit\bt, l\blo\bog\bgo\bou\but\bt, b\bbr\bre\bea\bak\bk, c\bco\bon\bnt\bti\bin\bnu\bue\be, l\ble\bet\bt,
- and s\bsh\bhi\bif\bft\bt builtins accept and process arguments beginning with -\b- with-
- out requiring -\b--\b-. Other builtins that accept arguments but are not
- specified as accepting options interpret arguments beginning with -\b- as
+ and s\bsh\bhi\bif\bft\bt builtins accept and process arguments beginning with -\b- with-
+ out requiring -\b--\b-. Other builtins that accept arguments but are not
+ specified as accepting options interpret arguments beginning with -\b- as
invalid options and require -\b--\b- to prevent this interpretation.
:\b: [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
- No effect; the command does nothing beyond expanding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs
- and performing any specified redirections. A zero exit code is
+ No effect; the command does nothing beyond expanding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs
+ and performing any specified redirections. A zero exit code is
returned.
.\b. _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
s\bso\bou\bur\brc\bce\be _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
- Read and execute commands from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be in the current shell
- environment and return the exit status of the last command exe-
- cuted from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be. If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be does not contain a slash,
- filenames in P\bPA\bAT\bTH\bH are used to find the directory containing
+ Read and execute commands from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be in the current shell
+ environment and return the exit status of the last command exe-
+ cuted from _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be. If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be does not contain a slash,
+ filenames in P\bPA\bAT\bTH\bH are used to find the directory containing
_\bf_\bi_\bl_\be_\bn_\ba_\bm_\be. The file searched for in P\bPA\bAT\bTH\bH need not be executable.
- When b\bba\bas\bsh\bh is not in _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, the current directory is
- searched if no file is found in P\bPA\bAT\bTH\bH. If the s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh option
- to the s\bsh\bho\bop\bpt\bt builtin command is turned off, the P\bPA\bAT\bTH\bH is not
- searched. If any _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs are supplied, they become the posi-
- tional parameters when _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is executed. Otherwise the
- positional parameters are unchanged. The return status is the
- status of the last command exited within the script (0 if no
- commands are executed), and false if _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is not found or
+ When b\bba\bas\bsh\bh is not in _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, the current directory is
+ searched if no file is found in P\bPA\bAT\bTH\bH. If the s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh option
+ to the s\bsh\bho\bop\bpt\bt builtin command is turned off, the P\bPA\bAT\bTH\bH is not
+ searched. If any _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs are supplied, they become the posi-
+ tional parameters when _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is executed. Otherwise the
+ positional parameters are unchanged. The return status is the
+ status of the last command exited within the script (0 if no
+ commands are executed), and false if _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is not found or
cannot be read.
a\bal\bli\bia\bas\bs [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
A\bAl\bli\bia\bas\bs with no arguments or with the -\b-p\bp option prints the list of
- aliases in the form a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be=_\bv_\ba_\bl_\bu_\be on standard output. When
- arguments are supplied, an alias is defined for each _\bn_\ba_\bm_\be whose
+ aliases in the form a\bal\bli\bia\bas\bs _\bn_\ba_\bm_\be=_\bv_\ba_\bl_\bu_\be on standard output. When
+ arguments are supplied, an alias is defined for each _\bn_\ba_\bm_\be whose
_\bv_\ba_\bl_\bu_\be is given. A trailing space in _\bv_\ba_\bl_\bu_\be causes the next word
to be checked for alias substitution when the alias is expanded.
- For each _\bn_\ba_\bm_\be in the argument list for which no _\bv_\ba_\bl_\bu_\be is sup-
- plied, the name and value of the alias is printed. A\bAl\bli\bia\bas\bs
- returns true unless a _\bn_\ba_\bm_\be is given for which no alias has been
+ For each _\bn_\ba_\bm_\be in the argument list for which no _\bv_\ba_\bl_\bu_\be is sup-
+ plied, the name and value of the alias is printed. A\bAl\bli\bia\bas\bs
+ returns true unless a _\bn_\ba_\bm_\be is given for which no alias has been
defined.
b\bbg\bg [_\bj_\bo_\bb_\bs_\bp_\be_\bc ...]
- Resume each suspended job _\bj_\bo_\bb_\bs_\bp_\be_\bc in the background, as if it
+ Resume each suspended job _\bj_\bo_\bb_\bs_\bp_\be_\bc in the background, as if it
had been started with &\b&. If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, the shell's
- notion of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb is used. b\bbg\bg _\bj_\bo_\bb_\bs_\bp_\be_\bc returns 0 unless
- run when job control is disabled or, when run with job control
- enabled, any specified _\bj_\bo_\bb_\bs_\bp_\be_\bc was not found or was started
+ notion of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb is used. b\bbg\bg _\bj_\bo_\bb_\bs_\bp_\be_\bc returns 0 unless
+ run when job control is disabled or, when run with job control
+ enabled, any specified _\bj_\bo_\bb_\bs_\bp_\be_\bc was not found or was started
without job control.
b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] [-\b-l\blp\bps\bsv\bvP\bPS\bSV\bV]
b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] -\b-x\bx _\bk_\be_\by_\bs_\be_\bq:_\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
b\bbi\bin\bnd\bd [-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp] _\bk_\be_\by_\bs_\be_\bq:_\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be
b\bbi\bin\bnd\bd _\br_\be_\ba_\bd_\bl_\bi_\bn_\be_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
- Display current r\bre\bea\bad\bdl\bli\bin\bne\be key and function bindings, bind a key
- sequence to a r\bre\bea\bad\bdl\bli\bin\bne\be function or macro, or set a r\bre\bea\bad\bdl\bli\bin\bne\be
- variable. Each non-option argument is a command as it would
- appear in _\b._\bi_\bn_\bp_\bu_\bt_\br_\bc, but each binding or command must be passed
- as a separate argument; e.g., '"\C-x\C-r": re-read-init-file'.
+ Display current r\bre\bea\bad\bdl\bli\bin\bne\be key and function bindings, bind a key
+ sequence to a r\bre\bea\bad\bdl\bli\bin\bne\be function or macro, or set a r\bre\bea\bad\bdl\bli\bin\bne\be
+ variable. Each non-option argument is a command as it would
+ appear in _\b._\bi_\bn_\bp_\bu_\bt_\br_\bc, but each binding or command must be passed
+ as a separate argument; e.g., '"\C-x\C-r": re-read-init-file'.
Options, if supplied, have the following meanings:
-\b-m\bm _\bk_\be_\by_\bm_\ba_\bp
Use _\bk_\be_\by_\bm_\ba_\bp as the keymap to be affected by the subsequent
bindings. Acceptable _\bk_\be_\by_\bm_\ba_\bp names are _\be_\bm_\ba_\bc_\bs_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\b-
- _\bd_\ba_\br_\bd_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b, _\bv_\bi_\b, _\bv_\bi_\b-_\bm_\bo_\bv_\be_\b, _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd,
- and _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt. _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd; _\be_\bm_\ba_\bc_\bs is
+ _\bd_\ba_\br_\bd_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bm_\be_\bt_\ba_\b, _\be_\bm_\ba_\bc_\bs_\b-_\bc_\bt_\bl_\bx_\b, _\bv_\bi_\b, _\bv_\bi_\b-_\bm_\bo_\bv_\be_\b, _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd,
+ and _\bv_\bi_\b-_\bi_\bn_\bs_\be_\br_\bt. _\bv_\bi is equivalent to _\bv_\bi_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd; _\be_\bm_\ba_\bc_\bs is
equivalent to _\be_\bm_\ba_\bc_\bs_\b-_\bs_\bt_\ba_\bn_\bd_\ba_\br_\bd.
-\b-l\bl List the names of all r\bre\bea\bad\bdl\bli\bin\bne\be functions.
- -\b-p\bp Display r\bre\bea\bad\bdl\bli\bin\bne\be function names and bindings in such a
+ -\b-p\bp Display r\bre\bea\bad\bdl\bli\bin\bne\be function names and bindings in such a
way that they can be re-read.
-\b-P\bP List current r\bre\bea\bad\bdl\bli\bin\bne\be function names and bindings.
- -\b-s\bs Display r\bre\bea\bad\bdl\bli\bin\bne\be key sequences bound to macros and the
- strings they output in such a way that they can be re-
+ -\b-s\bs Display r\bre\bea\bad\bdl\bli\bin\bne\be key sequences bound to macros and the
+ strings they output in such a way that they can be re-
read.
- -\b-S\bS Display r\bre\bea\bad\bdl\bli\bin\bne\be key sequences bound to macros and the
+ -\b-S\bS Display r\bre\bea\bad\bdl\bli\bin\bne\be key sequences bound to macros and the
strings they output.
- -\b-v\bv Display r\bre\bea\bad\bdl\bli\bin\bne\be variable names and values in such a way
+ -\b-v\bv Display r\bre\bea\bad\bdl\bli\bin\bne\be variable names and values in such a way
that they can be re-read.
-\b-V\bV List current r\bre\bea\bad\bdl\bli\bin\bne\be variable names and values.
-\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
-\b-r\br _\bk_\be_\by_\bs_\be_\bq
Remove any current binding for _\bk_\be_\by_\bs_\be_\bq.
-\b-x\bx _\bk_\be_\by_\bs_\be_\bq:\b:_\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd
- Cause _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd to be executed whenever _\bk_\be_\by_\bs_\be_\bq is
- entered. When _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd is executed, the shell sets
- the R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_L\bLI\bIN\bNE\bE variable to the contents of the r\bre\bea\bad\bd-\b-
- l\bli\bin\bne\be line buffer and the R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_P\bPO\bOI\bIN\bNT\bT variable to the
+ Cause _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd to be executed whenever _\bk_\be_\by_\bs_\be_\bq is
+ entered. When _\bs_\bh_\be_\bl_\bl_\b-_\bc_\bo_\bm_\bm_\ba_\bn_\bd is executed, the shell sets
+ the R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_L\bLI\bIN\bNE\bE variable to the contents of the r\bre\bea\bad\bd-\b-
+ l\bli\bin\bne\be line buffer and the R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_P\bPO\bOI\bIN\bNT\bT variable to the
current location of the insertion point. If the executed
- command changes the value of R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_L\bLI\bIN\bNE\bE or R\bRE\bEA\bAD\bD-\b-
- L\bLI\bIN\bNE\bE_\b_P\bPO\bOI\bIN\bNT\bT, those new values will be reflected in the
+ command changes the value of R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE_\b_L\bLI\bIN\bNE\bE or R\bRE\bEA\bAD\bD-\b-
+ L\bLI\bIN\bNE\bE_\b_P\bPO\bOI\bIN\bNT\bT, those new values will be reflected in the
editing state.
- The return value is 0 unless an unrecognized option is given or
+ The return value is 0 unless an unrecognized option is given or
an error occurred.
b\bbr\bre\bea\bak\bk [_\bn]
- Exit from within a f\bfo\bor\br, w\bwh\bhi\bil\ble\be, u\bun\bnt\bti\bil\bl, or s\bse\bel\ble\bec\bct\bt loop. If _\bn is
- specified, break _\bn levels. _\bn must be >= 1. If _\bn is greater
- than the number of enclosing loops, all enclosing loops are
- exited. The return value is 0 unless _\bn is not greater than or
+ Exit from within a f\bfo\bor\br, w\bwh\bhi\bil\ble\be, u\bun\bnt\bti\bil\bl, or s\bse\bel\ble\bec\bct\bt loop. If _\bn is
+ specified, break _\bn levels. _\bn must be >= 1. If _\bn is greater
+ than the number of enclosing loops, all enclosing loops are
+ exited. The return value is 0 unless _\bn is not greater than or
equal to 1.
b\bbu\bui\bil\blt\bti\bin\bn _\bs_\bh_\be_\bl_\bl_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
- Execute the specified shell builtin, passing it _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs, and
+ Execute the specified shell builtin, passing it _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs, and
return its exit status. This is useful when defining a function
- whose name is the same as a shell builtin, retaining the func-
+ whose name is the same as a shell builtin, retaining the func-
tionality of the builtin within the function. The c\bcd\bd builtin is
- commonly redefined this way. The return status is false if
+ commonly redefined this way. The return status is false if
_\bs_\bh_\be_\bl_\bl_\b-_\bb_\bu_\bi_\bl_\bt_\bi_\bn is not a shell builtin command.
c\bca\bal\bll\ble\ber\br [_\be_\bx_\bp_\br]
Returns the context of any active subroutine call (a shell func-
tion or a script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins). With-
out _\be_\bx_\bp_\br, c\bca\bal\bll\ble\ber\br displays the line number and source filename of
- the current subroutine call. If a non-negative integer is sup-
+ the current subroutine call. If a non-negative integer is sup-
plied as _\be_\bx_\bp_\br, c\bca\bal\bll\ble\ber\br displays the line number, subroutine name,
- and source file corresponding to that position in the current
- execution call stack. This extra information may be used, for
- example, to print a stack trace. The current frame is frame 0.
- The return value is 0 unless the shell is not executing a sub-
- routine call or _\be_\bx_\bp_\br does not correspond to a valid position in
+ and source file corresponding to that position in the current
+ execution call stack. This extra information may be used, for
+ example, to print a stack trace. The current frame is frame 0.
+ The return value is 0 unless the shell is not executing a sub-
+ routine call or _\be_\bx_\bp_\br does not correspond to a valid position in
the call stack.
c\bcd\bd [-\b-L\bL|[-\b-P\bP [-\b-e\be]]] [_\bd_\bi_\br]
- Change the current directory to _\bd_\bi_\br. The variable H\bHO\bOM\bME\bE is the
- default _\bd_\bi_\br. The variable C\bCD\bDP\bPA\bAT\bTH\bH defines the search path for
- the directory containing _\bd_\bi_\br. Alternative directory names in
- C\bCD\bDP\bPA\bAT\bTH\bH are separated by a colon (:). A null directory name in
- C\bCD\bDP\bPA\bAT\bTH\bH is the same as the current directory, i.e., ``.\b.''. If
- _\bd_\bi_\br begins with a slash (/), then C\bCD\bDP\bPA\bAT\bTH\bH is not used. The -\b-P\bP
- option says to use the physical directory structure instead of
- following symbolic links (see also the -\b-P\bP option to the s\bse\bet\bt
+ Change the current directory to _\bd_\bi_\br. The variable H\bHO\bOM\bME\bE is the
+ default _\bd_\bi_\br. The variable C\bCD\bDP\bPA\bAT\bTH\bH defines the search path for
+ the directory containing _\bd_\bi_\br. Alternative directory names in
+ C\bCD\bDP\bPA\bAT\bTH\bH are separated by a colon (:). A null directory name in
+ C\bCD\bDP\bPA\bAT\bTH\bH is the same as the current directory, i.e., ``.\b.''. If
+ _\bd_\bi_\br begins with a slash (/), then C\bCD\bDP\bPA\bAT\bTH\bH is not used. The -\b-P\bP
+ option says to use the physical directory structure instead of
+ following symbolic links (see also the -\b-P\bP option to the s\bse\bet\bt
builtin command); the -\b-L\bL option forces symbolic links to be fol-
- lowed. If the -\b-e\be option is supplied with -\b-P\bP, and the current
+ lowed. If the -\b-e\be option is supplied with -\b-P\bP, and the current
working directory cannot be successfully determined after a suc-
cessful directory change, c\bcd\bd will return an unsuccessful status.
- An argument of -\b- is converted to $\b$O\bOL\bLD\bDP\bPW\bWD\bD before the directory
- change is attempted. If a non-empty directory name from C\bCD\bDP\bPA\bAT\bTH\bH
+ An argument of -\b- is converted to $\b$O\bOL\bLD\bDP\bPW\bWD\bD before the directory
+ change is attempted. If a non-empty directory name from C\bCD\bDP\bPA\bAT\bTH\bH
is used, or if -\b- is the first argument, and the directory change
- is successful, the absolute pathname of the new working direc-
- tory is written to the standard output. The return value is
+ is successful, the absolute pathname of the new working direc-
+ tory is written to the standard output. The return value is
true if the directory was successfully changed; false otherwise.
c\bco\bom\bmm\bma\ban\bnd\bd [-\b-p\bpV\bVv\bv] _\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\ba_\br_\bg ...]
- Run _\bc_\bo_\bm_\bm_\ba_\bn_\bd with _\ba_\br_\bg_\bs suppressing the normal shell function
- lookup. Only builtin commands or commands found in the P\bPA\bAT\bTH\bH are
- executed. If the -\b-p\bp option is given, the search for _\bc_\bo_\bm_\bm_\ba_\bn_\bd is
- performed using a default value for P\bPA\bAT\bTH\bH that is guaranteed to
- find all of the standard utilities. If either the -\b-V\bV or -\b-v\bv
+ Run _\bc_\bo_\bm_\bm_\ba_\bn_\bd with _\ba_\br_\bg_\bs suppressing the normal shell function
+ lookup. Only builtin commands or commands found in the P\bPA\bAT\bTH\bH are
+ executed. If the -\b-p\bp option is given, the search for _\bc_\bo_\bm_\bm_\ba_\bn_\bd is
+ performed using a default value for P\bPA\bAT\bTH\bH that is guaranteed to
+ find all of the standard utilities. If either the -\b-V\bV or -\b-v\bv
option is supplied, a description of _\bc_\bo_\bm_\bm_\ba_\bn_\bd is printed. The -\b-v\bv
- option causes a single word indicating the command or filename
+ option causes a single word indicating the command or filename
used to invoke _\bc_\bo_\bm_\bm_\ba_\bn_\bd to be displayed; the -\b-V\bV option produces a
- more verbose description. If the -\b-V\bV or -\b-v\bv option is supplied,
- the exit status is 0 if _\bc_\bo_\bm_\bm_\ba_\bn_\bd was found, and 1 if not. If
+ more verbose description. If the -\b-V\bV or -\b-v\bv option is supplied,
+ the exit status is 0 if _\bc_\bo_\bm_\bm_\ba_\bn_\bd was found, and 1 if not. If
neither option is supplied and an error occurred or _\bc_\bo_\bm_\bm_\ba_\bn_\bd can-
- not be found, the exit status is 127. Otherwise, the exit sta-
+ not be found, the exit status is 127. Otherwise, the exit sta-
tus of the c\bco\bom\bmm\bma\ban\bnd\bd builtin is the exit status of _\bc_\bo_\bm_\bm_\ba_\bn_\bd.
c\bco\bom\bmp\bpg\bge\ben\bn [_\bo_\bp_\bt_\bi_\bo_\bn] [_\bw_\bo_\br_\bd]
- Generate possible completion matches for _\bw_\bo_\br_\bd according to the
- _\bo_\bp_\bt_\bi_\bo_\bns, which may be any option accepted by the c\bco\bom\bmp\bpl\ble\bet\bte\be
- builtin with the exception of -\b-p\bp and -\b-r\br, and write the matches
- to the standard output. When using the -\b-F\bF or -\b-C\bC options, the
- various shell variables set by the programmable completion
+ Generate possible completion matches for _\bw_\bo_\br_\bd according to the
+ _\bo_\bp_\bt_\bi_\bo_\bns, which may be any option accepted by the c\bco\bom\bmp\bpl\ble\bet\bte\be
+ builtin with the exception of -\b-p\bp and -\b-r\br, and write the matches
+ to the standard output. When using the -\b-F\bF or -\b-C\bC options, the
+ various shell variables set by the programmable completion
facilities, while available, will not have useful values.
- The matches will be generated in the same way as if the pro-
- grammable completion code had generated them directly from a
+ The matches will be generated in the same way as if the pro-
+ grammable completion code had generated them directly from a
completion specification with the same flags. If _\bw_\bo_\br_\bd is speci-
fied, only those completions matching _\bw_\bo_\br_\bd will be displayed.
- The return value is true unless an invalid option is supplied,
+ The return value is true unless an invalid option is supplied,
or no matches were generated.
- c\bco\bom\bmp\bpl\ble\bet\bte\be [-\b-a\bab\bbc\bcd\bde\bef\bfg\bgj\bjk\bks\bsu\buv\bv] [-\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn] [-\b-D\bDE\bE] [-\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn] [-\b-G\bG _\bg_\bl_\bo_\bb_\b-
+ c\bco\bom\bmp\bpl\ble\bet\bte\be [-\b-a\bab\bbc\bcd\bde\bef\bfg\bgj\bjk\bks\bsu\buv\bv] [-\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn] [-\b-D\bDE\bE] [-\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn] [-\b-G\bG _\bg_\bl_\bo_\bb_\b-
_\bp_\ba_\bt] [-\b-W\bW _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt] [-\b-F\bF _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn] [-\b-C\bC _\bc_\bo_\bm_\bm_\ba_\bn_\bd]
[-\b-X\bX _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt] [-\b-P\bP _\bp_\br_\be_\bf_\bi_\bx] [-\b-S\bS _\bs_\bu_\bf_\bf_\bi_\bx] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be _\b._\b._\b.]
c\bco\bom\bmp\bpl\ble\bet\bte\be -\b-p\bpr\br [-\b-D\bDE\bE] [_\bn_\ba_\bm_\be ...]
- Specify how arguments to each _\bn_\ba_\bm_\be should be completed. If the
- -\b-p\bp option is supplied, or if no options are supplied, existing
- completion specifications are printed in a way that allows them
+ Specify how arguments to each _\bn_\ba_\bm_\be should be completed. If the
+ -\b-p\bp option is supplied, or if no options are supplied, existing
+ completion specifications are printed in a way that allows them
to be reused as input. The -\b-r\br option removes a completion spec-
- ification for each _\bn_\ba_\bm_\be, or, if no _\bn_\ba_\bm_\bes are supplied, all com-
+ ification for each _\bn_\ba_\bm_\be, or, if no _\bn_\ba_\bm_\bes are supplied, all com-
pletion specifications. The -\b-D\bD option indicates that the
- remaining options and actions should apply to the ``default''
- command completion; that is, completion attempted on a command
- for which no completion has previously been defined. The -\b-E\bE
- option indicates that the remaining options and actions should
- apply to ``empty'' command completion; that is, completion
+ remaining options and actions should apply to the ``default''
+ command completion; that is, completion attempted on a command
+ for which no completion has previously been defined. The -\b-E\bE
+ option indicates that the remaining options and actions should
+ apply to ``empty'' command completion; that is, completion
attempted on a blank line.
- The process of applying these completion specifications when
- word completion is attempted is described above under P\bPr\bro\bo-\b-
+ The process of applying these completion specifications when
+ word completion is attempted is described above under P\bPr\bro\bo-\b-
g\bgr\bra\bam\bmm\bma\bab\bbl\ble\be C\bCo\bom\bmp\bpl\ble\bet\bti\bio\bon\bn.
- Other options, if specified, have the following meanings. The
- arguments to the -\b-G\bG, -\b-W\bW, and -\b-X\bX options (and, if necessary, the
- -\b-P\bP and -\b-S\bS options) should be quoted to protect them from expan-
+ Other options, if specified, have the following meanings. The
+ arguments to the -\b-G\bG, -\b-W\bW, and -\b-X\bX options (and, if necessary, the
+ -\b-P\bP and -\b-S\bS options) should be quoted to protect them from expan-
sion before the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin is invoked.
-\b-o\bo _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn
- The _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn controls several aspects of the comp-
- spec's behavior beyond the simple generation of comple-
+ The _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn controls several aspects of the comp-
+ spec's behavior beyond the simple generation of comple-
tions. _\bc_\bo_\bm_\bp_\b-_\bo_\bp_\bt_\bi_\bo_\bn may be one of:
b\bba\bas\bsh\bhd\bde\bef\bfa\bau\bul\blt\bt
Perform the rest of the default b\bba\bas\bsh\bh completions
if the compspec generates no matches.
- d\bde\bef\bfa\bau\bul\blt\bt Use readline's default filename completion if
+ d\bde\bef\bfa\bau\bul\blt\bt Use readline's default filename completion if
the compspec generates no matches.
d\bdi\bir\brn\bna\bam\bme\bes\bs
- Perform directory name completion if the comp-
+ Perform directory name completion if the comp-
spec generates no matches.
f\bfi\bil\ble\ben\bna\bam\bme\bes\bs
- Tell readline that the compspec generates file-
- names, so it can perform any filename-specific
- processing (like adding a slash to directory
- names, quoting special characters, or suppress-
- ing trailing spaces). Intended to be used with
+ Tell readline that the compspec generates file-
+ names, so it can perform any filename-specific
+ processing (like adding a slash to directory
+ names, quoting special characters, or suppress-
+ ing trailing spaces). Intended to be used with
shell functions.
- n\bno\bos\bsp\bpa\bac\bce\be Tell readline not to append a space (the
- default) to words completed at the end of the
+ n\bno\bos\bsp\bpa\bac\bce\be Tell readline not to append a space (the
+ default) to words completed at the end of the
line.
p\bpl\blu\bus\bsd\bdi\bir\brs\bs
- After any matches defined by the compspec are
- generated, directory name completion is
- attempted and any matches are added to the
+ After any matches defined by the compspec are
+ generated, directory name completion is
+ attempted and any matches are added to the
results of the other actions.
-\b-A\bA _\ba_\bc_\bt_\bi_\bo_\bn
- The _\ba_\bc_\bt_\bi_\bo_\bn may be one of the following to generate a
+ The _\ba_\bc_\bt_\bi_\bo_\bn may be one of the following to generate a
list of possible completions:
a\bal\bli\bia\bas\bs Alias names. May also be specified as -\b-a\ba.
a\bar\brr\bra\bay\byv\bva\bar\br
Array variable names.
b\bbi\bin\bnd\bdi\bin\bng\bg R\bRe\bea\bad\bdl\bli\bin\bne\be key binding names.
- b\bbu\bui\bil\blt\bti\bin\bn Names of shell builtin commands. May also be
+ b\bbu\bui\bil\blt\bti\bin\bn Names of shell builtin commands. May also be
specified as -\b-b\bb.
c\bco\bom\bmm\bma\ban\bnd\bd Command names. May also be specified as -\b-c\bc.
d\bdi\bir\bre\bec\bct\bto\bor\bry\by
d\bdi\bis\bsa\bab\bbl\ble\bed\bd
Names of disabled shell builtins.
e\ben\bna\bab\bbl\ble\bed\bd Names of enabled shell builtins.
- e\bex\bxp\bpo\bor\brt\bt Names of exported shell variables. May also be
+ e\bex\bxp\bpo\bor\brt\bt Names of exported shell variables. May also be
specified as -\b-e\be.
f\bfi\bil\ble\be File names. May also be specified as -\b-f\bf.
f\bfu\bun\bnc\bct\bti\bio\bon\bn
h\bhe\bel\blp\bpt\bto\bop\bpi\bic\bc
Help topics as accepted by the h\bhe\bel\blp\bp builtin.
h\bho\bos\bst\btn\bna\bam\bme\be
- Hostnames, as taken from the file specified by
+ Hostnames, as taken from the file specified by
the H\bHO\bOS\bST\bTF\bFI\bIL\bLE\bE shell variable.
- j\bjo\bob\bb Job names, if job control is active. May also
+ j\bjo\bob\bb Job names, if job control is active. May also
be specified as -\b-j\bj.
- k\bke\bey\byw\bwo\bor\brd\bd Shell reserved words. May also be specified as
+ k\bke\bey\byw\bwo\bor\brd\bd Shell reserved words. May also be specified as
-\b-k\bk.
r\bru\bun\bnn\bni\bin\bng\bg Names of running jobs, if job control is active.
s\bse\ber\brv\bvi\bic\bce\be Service names. May also be specified as -\b-s\bs.
- s\bse\bet\bto\bop\bpt\bt Valid arguments for the -\b-o\bo option to the s\bse\bet\bt
+ s\bse\bet\bto\bop\bpt\bt Valid arguments for the -\b-o\bo option to the s\bse\bet\bt
builtin.
- s\bsh\bho\bop\bpt\bt Shell option names as accepted by the s\bsh\bho\bop\bpt\bt
+ s\bsh\bho\bop\bpt\bt Shell option names as accepted by the s\bsh\bho\bop\bpt\bt
builtin.
s\bsi\big\bgn\bna\bal\bl Signal names.
s\bst\bto\bop\bpp\bpe\bed\bd Names of stopped jobs, if job control is active.
Names of all shell variables. May also be spec-
ified as -\b-v\bv.
-\b-C\bC _\bc_\bo_\bm_\bm_\ba_\bn_\bd
- _\bc_\bo_\bm_\bm_\ba_\bn_\bd is executed in a subshell environment, and its
+ _\bc_\bo_\bm_\bm_\ba_\bn_\bd is executed in a subshell environment, and its
output is used as the possible completions.
-\b-F\bF _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
- The shell function _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn is executed in the current
- shell environment. When it finishes, the possible com-
- pletions are retrieved from the value of the C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY
+ The shell function _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn is executed in the current
+ shell environment. When it finishes, the possible com-
+ pletions are retrieved from the value of the C\bCO\bOM\bMP\bPR\bRE\bEP\bPL\bLY\bY
array variable.
-\b-G\bG _\bg_\bl_\bo_\bb_\bp_\ba_\bt
- The pathname expansion pattern _\bg_\bl_\bo_\bb_\bp_\ba_\bt is expanded to
+ The pathname expansion pattern _\bg_\bl_\bo_\bb_\bp_\ba_\bt is expanded to
generate the possible completions.
-\b-P\bP _\bp_\br_\be_\bf_\bi_\bx
- _\bp_\br_\be_\bf_\bi_\bx is added at the beginning of each possible com-
+ _\bp_\br_\be_\bf_\bi_\bx is added at the beginning of each possible com-
pletion after all other options have been applied.
-\b-S\bS _\bs_\bu_\bf_\bf_\bi_\bx
_\bs_\bu_\bf_\bf_\bi_\bx is appended to each possible completion after all
other options have been applied.
-\b-W\bW _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt
- The _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is split using the characters in the I\bIF\bFS\bS
- special variable as delimiters, and each resultant word
- is expanded. The possible completions are the members
- of the resultant list which match the word being com-
+ The _\bw_\bo_\br_\bd_\bl_\bi_\bs_\bt is split using the characters in the I\bIF\bFS\bS
+ special variable as delimiters, and each resultant word
+ is expanded. The possible completions are the members
+ of the resultant list which match the word being com-
pleted.
-\b-X\bX _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt
- _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is a pattern as used for pathname expansion.
+ _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is a pattern as used for pathname expansion.
It is applied to the list of possible completions gener-
- ated by the preceding options and arguments, and each
- completion matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is removed from the list.
- A leading !\b! in _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt negates the pattern; in this
- case, any completion not matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is removed.
-
- The return value is true unless an invalid option is supplied,
- an option other than -\b-p\bp or -\b-r\br is supplied without a _\bn_\ba_\bm_\be argu-
- ment, an attempt is made to remove a completion specification
+ ated by the preceding options and arguments, and each
+ completion matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is removed from the list.
+ A leading !\b! in _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt negates the pattern; in this
+ case, any completion not matching _\bf_\bi_\bl_\bt_\be_\br_\bp_\ba_\bt is removed.
+
+ The return value is true unless an invalid option is supplied,
+ an option other than -\b-p\bp or -\b-r\br is supplied without a _\bn_\ba_\bm_\be argu-
+ ment, an attempt is made to remove a completion specification
for a _\bn_\ba_\bm_\be for which no specification exists, or an error occurs
adding a completion specification.
c\bco\bom\bmp\bpo\bop\bpt\bt [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [-\b-D\bDE\bE] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be]
Modify completion options for each _\bn_\ba_\bm_\be according to the
- _\bo_\bp_\bt_\bi_\bo_\bns, or for the currently-executing completion if no _\bn_\ba_\bm_\bes
- are supplied. If no _\bo_\bp_\bt_\bi_\bo_\bns are given, display the completion
- options for each _\bn_\ba_\bm_\be or the current completion. The possible
- values of _\bo_\bp_\bt_\bi_\bo_\bn are those valid for the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin
- described above. The -\b-D\bD option indicates that the remaining
+ _\bo_\bp_\bt_\bi_\bo_\bns, or for the currently-executing completion if no _\bn_\ba_\bm_\bes
+ are supplied. If no _\bo_\bp_\bt_\bi_\bo_\bns are given, display the completion
+ options for each _\bn_\ba_\bm_\be or the current completion. The possible
+ values of _\bo_\bp_\bt_\bi_\bo_\bn are those valid for the c\bco\bom\bmp\bpl\ble\bet\bte\be builtin
+ described above. The -\b-D\bD option indicates that the remaining
options should apply to the ``default'' command completion; that
- is, completion attempted on a command for which no completion
- has previously been defined. The -\b-E\bE option indicates that the
- remaining options should apply to ``empty'' command completion;
+ is, completion attempted on a command for which no completion
+ has previously been defined. The -\b-E\bE option indicates that the
+ remaining options should apply to ``empty'' command completion;
that is, completion attempted on a blank line.
- The return value is true unless an invalid option is supplied,
+ The return value is true unless an invalid option is supplied,
an attempt is made to modify the options for a _\bn_\ba_\bm_\be for which no
completion specification exists, or an output error occurs.
c\bco\bon\bnt\bti\bin\bnu\bue\be [_\bn]
Resume the next iteration of the enclosing f\bfo\bor\br, w\bwh\bhi\bil\ble\be, u\bun\bnt\bti\bil\bl, or
- s\bse\bel\ble\bec\bct\bt loop. If _\bn is specified, resume at the _\bnth enclosing
- loop. _\bn must be >= 1. If _\bn is greater than the number of
- enclosing loops, the last enclosing loop (the ``top-level''
+ s\bse\bel\ble\bec\bct\bt loop. If _\bn is specified, resume at the _\bnth enclosing
+ loop. _\bn must be >= 1. If _\bn is greater than the number of
+ enclosing loops, the last enclosing loop (the ``top-level''
loop) is resumed. The return value is 0 unless _\bn is not greater
than or equal to 1.
d\bde\bec\bcl\bla\bar\bre\be [-\b-a\baA\bAf\bfF\bFg\bgi\bil\blr\brt\btu\bux\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
t\bty\byp\bpe\bes\bse\bet\bt [-\b-a\baA\bAf\bfF\bFg\bgi\bil\blr\brt\btu\bux\bx] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
- Declare variables and/or give them attributes. If no _\bn_\ba_\bm_\bes are
- given then display the values of variables. The -\b-p\bp option will
+ Declare variables and/or give them attributes. If no _\bn_\ba_\bm_\bes are
+ given then display the values of variables. The -\b-p\bp option will
display the attributes and values of each _\bn_\ba_\bm_\be. When -\b-p\bp is used
with _\bn_\ba_\bm_\be arguments, additional options are ignored. When -\b-p\bp is
- supplied without _\bn_\ba_\bm_\be arguments, it will display the attributes
- and values of all variables having the attributes specified by
- the additional options. If no other options are supplied with
- -\b-p\bp, d\bde\bec\bcl\bla\bar\bre\be will display the attributes and values of all shell
- variables. The -\b-f\bf option will restrict the display to shell
+ supplied without _\bn_\ba_\bm_\be arguments, it will display the attributes
+ and values of all variables having the attributes specified by
+ the additional options. If no other options are supplied with
+ -\b-p\bp, d\bde\bec\bcl\bla\bar\bre\be will display the attributes and values of all shell
+ variables. The -\b-f\bf option will restrict the display to shell
functions. The -\b-F\bF option inhibits the display of function defi-
- nitions; only the function name and attributes are printed. If
- the e\bex\bxt\btd\bde\beb\bbu\bug\bg shell option is enabled using s\bsh\bho\bop\bpt\bt, the source
+ nitions; only the function name and attributes are printed. If
+ the e\bex\bxt\btd\bde\beb\bbu\bug\bg shell option is enabled using s\bsh\bho\bop\bpt\bt, the source
file name and line number where the function is defined are dis-
played as well. The -\b-F\bF option implies -\b-f\bf. The -\b-g\bg option forces
- variables to be created or modified at the global scope, even
- when d\bde\bec\bcl\bla\bar\bre\be is executed in a shell function. It is ignored in
- all other cases. The following options can be used to restrict
- output to variables with the specified attribute or to give
+ variables to be created or modified at the global scope, even
+ when d\bde\bec\bcl\bla\bar\bre\be is executed in a shell function. It is ignored in
+ all other cases. The following options can be used to restrict
+ output to variables with the specified attribute or to give
variables attributes:
- -\b-a\ba Each _\bn_\ba_\bm_\be is an indexed array variable (see A\bAr\brr\bra\bay\bys\bs
+ -\b-a\ba Each _\bn_\ba_\bm_\be is an indexed array variable (see A\bAr\brr\bra\bay\bys\bs
above).
- -\b-A\bA Each _\bn_\ba_\bm_\be is an associative array variable (see A\bAr\brr\bra\bay\bys\bs
+ -\b-A\bA Each _\bn_\ba_\bm_\be is an associative array variable (see A\bAr\brr\bra\bay\bys\bs
above).
-\b-f\bf Use function names only.
-\b-i\bi The variable is treated as an integer; arithmetic evalua-
- tion (see A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN above) is performed when
+ tion (see A\bAR\bRI\bIT\bTH\bHM\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN above) is performed when
the variable is assigned a value.
- -\b-l\bl When the variable is assigned a value, all upper-case
- characters are converted to lower-case. The upper-case
+ -\b-l\bl When the variable is assigned a value, all upper-case
+ characters are converted to lower-case. The upper-case
attribute is disabled.
-\b-r\br Make _\bn_\ba_\bm_\bes readonly. These names cannot then be assigned
values by subsequent assignment statements or unset.
- -\b-t\bt Give each _\bn_\ba_\bm_\be the _\bt_\br_\ba_\bc_\be attribute. Traced functions
- inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps from the calling
- shell. The trace attribute has no special meaning for
+ -\b-t\bt Give each _\bn_\ba_\bm_\be the _\bt_\br_\ba_\bc_\be attribute. Traced functions
+ inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps from the calling
+ shell. The trace attribute has no special meaning for
variables.
- -\b-u\bu When the variable is assigned a value, all lower-case
- characters are converted to upper-case. The lower-case
+ -\b-u\bu When the variable is assigned a value, all lower-case
+ characters are converted to upper-case. The lower-case
attribute is disabled.
- -\b-x\bx Mark _\bn_\ba_\bm_\bes for export to subsequent commands via the
+ -\b-x\bx Mark _\bn_\ba_\bm_\bes for export to subsequent commands via the
environment.
- Using `+' instead of `-' turns off the attribute instead, with
+ Using `+' instead of `-' turns off the attribute instead, with
the exceptions that +\b+a\ba may not be used to destroy an array vari-
- able and +\b+r\br will not remove the readonly attribute. When used
+ able and +\b+r\br will not remove the readonly attribute. When used
in a function, d\bde\bec\bcl\bla\bar\bre\be and t\bty\byp\bpe\bes\bse\bet\bt make each _\bn_\ba_\bm_\be local, as with
the l\blo\boc\bca\bal\bl command, unless the -\b-g\bg option is supplied. If a vari-
- able name is followed by =_\bv_\ba_\bl_\bu_\be, the value of the variable is
+ able name is followed by =_\bv_\ba_\bl_\bu_\be, the value of the variable is
set to _\bv_\ba_\bl_\bu_\be. The return value is 0 unless an invalid option is
- encountered, an attempt is made to define a function using ``-f
- foo=bar'', an attempt is made to assign a value to a readonly
+ encountered, an attempt is made to define a function using ``-f
+ foo=bar'', an attempt is made to assign a value to a readonly
variable, an attempt is made to assign a value to an array vari-
- able without using the compound assignment syntax (see A\bAr\brr\bra\bay\bys\bs
- above), one of the _\bn_\ba_\bm_\be_\bs is not a valid shell variable name, an
+ able without using the compound assignment syntax (see A\bAr\brr\bra\bay\bys\bs
+ above), one of the _\bn_\ba_\bm_\be_\bs is not a valid shell variable name, an
attempt is made to turn off readonly status for a readonly vari-
- able, an attempt is made to turn off array status for an array
- variable, or an attempt is made to display a non-existent func-
+ able, an attempt is made to turn off array status for an array
+ variable, or an attempt is made to display a non-existent func-
tion with -\b-f\bf.
d\bdi\bir\brs\bs [\b[-\b-c\bcl\blp\bpv\bv]\b] [\b[+\b+_\bn]\b] [\b[-\b-_\bn]\b]
- Without options, displays the list of currently remembered
- directories. The default display is on a single line with
- directory names separated by spaces. Directories are added to
- the list with the p\bpu\bus\bsh\bhd\bd command; the p\bpo\bop\bpd\bd command removes
+ Without options, displays the list of currently remembered
+ directories. The default display is on a single line with
+ directory names separated by spaces. Directories are added to
+ the list with the p\bpu\bus\bsh\bhd\bd command; the p\bpo\bop\bpd\bd command removes
entries from the list.
-\b-c\bc Clears the directory stack by deleting all of the
entries.
- -\b-l\bl Produces a listing using full pathnames; the default
+ -\b-l\bl Produces a listing using full pathnames; the default
listing format uses a tilde to denote the home directory.
-\b-p\bp Print the directory stack with one entry per line.
- -\b-v\bv Print the directory stack with one entry per line, pre-
+ -\b-v\bv Print the directory stack with one entry per line, pre-
fixing each entry with its index in the stack.
+\b+_\bn Displays the _\bnth entry counting from the left of the list
shown by d\bdi\bir\brs\bs when invoked without options, starting with
zero.
- -\b-_\bn Displays the _\bnth entry counting from the right of the
+ -\b-_\bn Displays the _\bnth entry counting from the right of the
list shown by d\bdi\bir\brs\bs when invoked without options, starting
with zero.
- The return value is 0 unless an invalid option is supplied or _\bn
+ The return value is 0 unless an invalid option is supplied or _\bn
indexes beyond the end of the directory stack.
d\bdi\bis\bso\bow\bwn\bn [-\b-a\bar\br] [-\b-h\bh] [_\bj_\bo_\bb_\bs_\bp_\be_\bc ...]
- Without options, remove each _\bj_\bo_\bb_\bs_\bp_\be_\bc from the table of active
- jobs. If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, and neither -\b-a\ba nor -\b-r\br is sup-
+ Without options, remove each _\bj_\bo_\bb_\bs_\bp_\be_\bc from the table of active
+ jobs. If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, and neither -\b-a\ba nor -\b-r\br is sup-
plied, the shell's notion of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb is used. If the -\b-h\bh
option is given, each _\bj_\bo_\bb_\bs_\bp_\be_\bc is not removed from the table, but
- is marked so that S\bSI\bIG\bGH\bHU\bUP\bP is not sent to the job if the shell
+ is marked so that S\bSI\bIG\bGH\bHU\bUP\bP is not sent to the job if the shell
receives a S\bSI\bIG\bGH\bHU\bUP\bP. If no _\bj_\bo_\bb_\bs_\bp_\be_\bc is present, and neither the -\b-a\ba
- nor the -\b-r\br option is supplied, the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb is used. If no
- _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied, the -\b-a\ba option means to remove or mark all
- jobs; the -\b-r\br option without a _\bj_\bo_\bb_\bs_\bp_\be_\bc argument restricts opera-
- tion to running jobs. The return value is 0 unless a _\bj_\bo_\bb_\bs_\bp_\be_\bc
+ nor the -\b-r\br option is supplied, the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb is used. If no
+ _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied, the -\b-a\ba option means to remove or mark all
+ jobs; the -\b-r\br option without a _\bj_\bo_\bb_\bs_\bp_\be_\bc argument restricts opera-
+ tion to running jobs. The return value is 0 unless a _\bj_\bo_\bb_\bs_\bp_\be_\bc
does not specify a valid job.
e\bec\bch\bho\bo [-\b-n\bne\beE\bE] [_\ba_\br_\bg ...]
- Output the _\ba_\br_\bgs, separated by spaces, followed by a newline.
- The return status is 0 unless a write error occurs. If -\b-n\bn is
+ Output the _\ba_\br_\bgs, separated by spaces, followed by a newline.
+ The return status is 0 unless a write error occurs. If -\b-n\bn is
specified, the trailing newline is suppressed. If the -\b-e\be option
- is given, interpretation of the following backslash-escaped
- characters is enabled. The -\b-E\bE option disables the interpreta-
- tion of these escape characters, even on systems where they are
- interpreted by default. The x\bxp\bpg\bg_\b_e\bec\bch\bho\bo shell option may be used
- to dynamically determine whether or not e\bec\bch\bho\bo expands these
- escape characters by default. e\bec\bch\bho\bo does not interpret -\b--\b- to
- mean the end of options. e\bec\bch\bho\bo interprets the following escape
+ is given, interpretation of the following backslash-escaped
+ characters is enabled. The -\b-E\bE option disables the interpreta-
+ tion of these escape characters, even on systems where they are
+ interpreted by default. The x\bxp\bpg\bg_\b_e\bec\bch\bho\bo shell option may be used
+ to dynamically determine whether or not e\bec\bch\bho\bo expands these
+ escape characters by default. e\bec\bch\bho\bo does not interpret -\b--\b- to
+ mean the end of options. e\bec\bch\bho\bo interprets the following escape
sequences:
\\b\a\ba alert (bell)
\\b\b\bb backspace
\\b\t\bt horizontal tab
\\b\v\bv vertical tab
\\b\\\b\ backslash
- \\b\0\b0_\bn_\bn_\bn the eight-bit character whose value is the octal value
+ \\b\0\b0_\bn_\bn_\bn the eight-bit character whose value is the octal value
_\bn_\bn_\bn (zero to three octal digits)
- \\b\x\bx_\bH_\bH the eight-bit character whose value is the hexadecimal
+ \\b\x\bx_\bH_\bH the eight-bit character whose value is the hexadecimal
value _\bH_\bH (one or two hex digits)
- \\b\u\bu_\bH_\bH_\bH_\bH the Unicode (ISO/IEC 10646) character whose value is the
+ \\b\u\bu_\bH_\bH_\bH_\bH the Unicode (ISO/IEC 10646) character whose value is the
hexadecimal value _\bH_\bH_\bH_\bH (one to four hex digits)
\\b\U\bU_\bH_\bH_\bH_\bH_\bH_\bH_\bH_\bH
- the Unicode (ISO/IEC 10646) character whose value is the
+ the Unicode (ISO/IEC 10646) character whose value is the
hexadecimal value _\bH_\bH_\bH_\bH_\bH_\bH_\bH_\bH (one to eight hex digits)
e\ben\bna\bab\bbl\ble\be [-\b-a\ba] [-\b-d\bdn\bnp\bps\bs] [-\b-f\bf _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be] [_\bn_\ba_\bm_\be ...]
- Enable and disable builtin shell commands. Disabling a builtin
+ Enable and disable builtin shell commands. Disabling a builtin
allows a disk command which has the same name as a shell builtin
- to be executed without specifying a full pathname, even though
- the shell normally searches for builtins before disk commands.
- If -\b-n\bn is used, each _\bn_\ba_\bm_\be is disabled; otherwise, _\bn_\ba_\bm_\be_\bs are
+ to be executed without specifying a full pathname, even though
+ the shell normally searches for builtins before disk commands.
+ If -\b-n\bn is used, each _\bn_\ba_\bm_\be is disabled; otherwise, _\bn_\ba_\bm_\be_\bs are
enabled. For example, to use the t\bte\bes\bst\bt binary found via the P\bPA\bAT\bTH\bH
- instead of the shell builtin version, run ``enable -n test''.
- The -\b-f\bf option means to load the new builtin command _\bn_\ba_\bm_\be from
+ instead of the shell builtin version, run ``enable -n test''.
+ The -\b-f\bf option means to load the new builtin command _\bn_\ba_\bm_\be from
shared object _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be, on systems that support dynamic loading.
- The -\b-d\bd option will delete a builtin previously loaded with -\b-f\bf.
+ The -\b-d\bd option will delete a builtin previously loaded with -\b-f\bf.
If no _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option is supplied,
a list of shell builtins is printed. With no other option argu-
- ments, the list consists of all enabled shell builtins. If -\b-n\bn
- is supplied, only disabled builtins are printed. If -\b-a\ba is sup-
- plied, the list printed includes all builtins, with an indica-
- tion of whether or not each is enabled. If -\b-s\bs is supplied, the
- output is restricted to the POSIX _\bs_\bp_\be_\bc_\bi_\ba_\bl builtins. The return
- value is 0 unless a _\bn_\ba_\bm_\be is not a shell builtin or there is an
+ ments, the list consists of all enabled shell builtins. If -\b-n\bn
+ is supplied, only disabled builtins are printed. If -\b-a\ba is sup-
+ plied, the list printed includes all builtins, with an indica-
+ tion of whether or not each is enabled. If -\b-s\bs is supplied, the
+ output is restricted to the POSIX _\bs_\bp_\be_\bc_\bi_\ba_\bl builtins. The return
+ value is 0 unless a _\bn_\ba_\bm_\be is not a shell builtin or there is an
error loading a new builtin from a shared object.
e\bev\bva\bal\bl [_\ba_\br_\bg ...]
- The _\ba_\br_\bgs are read and concatenated together into a single com-
- mand. This command is then read and executed by the shell, and
- its exit status is returned as the value of e\bev\bva\bal\bl. If there are
+ The _\ba_\br_\bgs are read and concatenated together into a single com-
+ mand. This command is then read and executed by the shell, and
+ its exit status is returned as the value of e\bev\bva\bal\bl. If there are
no _\ba_\br_\bg_\bs, or only null arguments, e\bev\bva\bal\bl returns 0.
e\bex\bxe\bec\bc [-\b-c\bcl\bl] [-\b-a\ba _\bn_\ba_\bm_\be] [_\bc_\bo_\bm_\bm_\ba_\bn_\bd [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]]
- If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is specified, it replaces the shell. No new process
- is created. The _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs become the arguments to _\bc_\bo_\bm_\bm_\ba_\bn_\bd. If
+ If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is specified, it replaces the shell. No new process
+ is created. The _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs become the arguments to _\bc_\bo_\bm_\bm_\ba_\bn_\bd. If
the -\b-l\bl option is supplied, the shell places a dash at the begin-
- ning of the zeroth argument passed to _\bc_\bo_\bm_\bm_\ba_\bn_\bd. This is what
+ ning of the zeroth argument passed to _\bc_\bo_\bm_\bm_\ba_\bn_\bd. This is what
_\bl_\bo_\bg_\bi_\bn(1) does. The -\b-c\bc option causes _\bc_\bo_\bm_\bm_\ba_\bn_\bd to be executed with
- an empty environment. If -\b-a\ba is supplied, the shell passes _\bn_\ba_\bm_\be
+ an empty environment. If -\b-a\ba is supplied, the shell passes _\bn_\ba_\bm_\be
as the zeroth argument to the executed command. If _\bc_\bo_\bm_\bm_\ba_\bn_\bd can-
- not be executed for some reason, a non-interactive shell exits,
- unless the e\bex\bxe\bec\bcf\bfa\bai\bil\bl shell option is enabled. In that case, it
- returns failure. An interactive shell returns failure if the
+ not be executed for some reason, a non-interactive shell exits,
+ unless the e\bex\bxe\bec\bcf\bfa\bai\bil\bl shell option is enabled. In that case, it
+ returns failure. An interactive shell returns failure if the
file cannot be executed. If _\bc_\bo_\bm_\bm_\ba_\bn_\bd is not specified, any redi-
rections take effect in the current shell, and the return status
- is 0. If there is a redirection error, the return status is 1.
+ is 0. If there is a redirection error, the return status is 1.
e\bex\bxi\bit\bt [_\bn]
- Cause the shell to exit with a status of _\bn. If _\bn is omitted,
+ Cause the shell to exit with a status of _\bn. If _\bn is omitted,
the exit status is that of the last command executed. A trap on
E\bEX\bXI\bIT\bT is executed before the shell terminates.
e\bex\bxp\bpo\bor\brt\bt [-\b-f\bfn\bn] [_\bn_\ba_\bm_\be[=_\bw_\bo_\br_\bd]] ...
e\bex\bxp\bpo\bor\brt\bt -\b-p\bp
- The supplied _\bn_\ba_\bm_\be_\bs are marked for automatic export to the envi-
- ronment of subsequently executed commands. If the -\b-f\bf option is
- given, the _\bn_\ba_\bm_\be_\bs refer to functions. If no _\bn_\ba_\bm_\be_\bs are given, or
- if the -\b-p\bp option is supplied, a list of names of all exported
- variables is printed. The -\b-n\bn option causes the export property
+ The supplied _\bn_\ba_\bm_\be_\bs are marked for automatic export to the envi-
+ ronment of subsequently executed commands. If the -\b-f\bf option is
+ given, the _\bn_\ba_\bm_\be_\bs refer to functions. If no _\bn_\ba_\bm_\be_\bs are given, or
+ if the -\b-p\bp option is supplied, a list of names of all exported
+ variables is printed. The -\b-n\bn option causes the export property
to be removed from each _\bn_\ba_\bm_\be. If a variable name is followed by
=_\bw_\bo_\br_\bd, the value of the variable is set to _\bw_\bo_\br_\bd. e\bex\bxp\bpo\bor\brt\bt returns
an exit status of 0 unless an invalid option is encountered, one
- of the _\bn_\ba_\bm_\be_\bs is not a valid shell variable name, or -\b-f\bf is sup-
+ of the _\bn_\ba_\bm_\be_\bs is not a valid shell variable name, or -\b-f\bf is sup-
plied with a _\bn_\ba_\bm_\be that is not a function.
f\bfc\bc [-\b-e\be _\be_\bn_\ba_\bm_\be] [-\b-l\bln\bnr\br] [_\bf_\bi_\br_\bs_\bt] [_\bl_\ba_\bs_\bt]
f\bfc\bc -\b-s\bs [_\bp_\ba_\bt=_\br_\be_\bp] [_\bc_\bm_\bd]
- The first form selects a range of commands from _\bf_\bi_\br_\bs_\bt to _\bl_\ba_\bs_\bt
- from the history list and displays or edits and re-executes
- them. _\bF_\bi_\br_\bs_\bt and _\bl_\ba_\bs_\bt may be specified as a string (to locate
- the last command beginning with that string) or as a number (an
- index into the history list, where a negative number is used as
- an offset from the current command number). If _\bl_\ba_\bs_\bt is not
- specified it is set to the current command for listing (so that
- ``fc -l -10'' prints the last 10 commands) and to _\bf_\bi_\br_\bs_\bt other-
- wise. If _\bf_\bi_\br_\bs_\bt is not specified it is set to the previous com-
+ The first form selects a range of commands from _\bf_\bi_\br_\bs_\bt to _\bl_\ba_\bs_\bt
+ from the history list and displays or edits and re-executes
+ them. _\bF_\bi_\br_\bs_\bt and _\bl_\ba_\bs_\bt may be specified as a string (to locate
+ the last command beginning with that string) or as a number (an
+ index into the history list, where a negative number is used as
+ an offset from the current command number). If _\bl_\ba_\bs_\bt is not
+ specified it is set to the current command for listing (so that
+ ``fc -l -10'' prints the last 10 commands) and to _\bf_\bi_\br_\bs_\bt other-
+ wise. If _\bf_\bi_\br_\bs_\bt is not specified it is set to the previous com-
mand for editing and -16 for listing.
- The -\b-n\bn option suppresses the command numbers when listing. The
- -\b-r\br option reverses the order of the commands. If the -\b-l\bl option
- is given, the commands are listed on standard output. Other-
- wise, the editor given by _\be_\bn_\ba_\bm_\be is invoked on a file containing
- those commands. If _\be_\bn_\ba_\bm_\be is not given, the value of the F\bFC\bCE\bED\bDI\bIT\bT
- variable is used, and the value of E\bED\bDI\bIT\bTO\bOR\bR if F\bFC\bCE\bED\bDI\bIT\bT is not set.
- If neither variable is set, _\bv_\bi is used. When editing is com-
+ The -\b-n\bn option suppresses the command numbers when listing. The
+ -\b-r\br option reverses the order of the commands. If the -\b-l\bl option
+ is given, the commands are listed on standard output. Other-
+ wise, the editor given by _\be_\bn_\ba_\bm_\be is invoked on a file containing
+ those commands. If _\be_\bn_\ba_\bm_\be is not given, the value of the F\bFC\bCE\bED\bDI\bIT\bT
+ variable is used, and the value of E\bED\bDI\bIT\bTO\bOR\bR if F\bFC\bCE\bED\bDI\bIT\bT is not set.
+ If neither variable is set, _\bv_\bi is used. When editing is com-
plete, the edited commands are echoed and executed.
- In the second form, _\bc_\bo_\bm_\bm_\ba_\bn_\bd is re-executed after each instance
- of _\bp_\ba_\bt is replaced by _\br_\be_\bp. _\bC_\bo_\bm_\bm_\ba_\bn_\bd is intepreted the same as
- _\bf_\bi_\br_\bs_\bt above. A useful alias to use with this is ``r="fc -s"'',
- so that typing ``r cc'' runs the last command beginning with
+ In the second form, _\bc_\bo_\bm_\bm_\ba_\bn_\bd is re-executed after each instance
+ of _\bp_\ba_\bt is replaced by _\br_\be_\bp. _\bC_\bo_\bm_\bm_\ba_\bn_\bd is intepreted the same as
+ _\bf_\bi_\br_\bs_\bt above. A useful alias to use with this is ``r="fc -s"'',
+ so that typing ``r cc'' runs the last command beginning with
``cc'' and typing ``r'' re-executes the last command.
- If the first form is used, the return value is 0 unless an
- invalid option is encountered or _\bf_\bi_\br_\bs_\bt or _\bl_\ba_\bs_\bt specify history
- lines out of range. If the -\b-e\be option is supplied, the return
+ If the first form is used, the return value is 0 unless an
+ invalid option is encountered or _\bf_\bi_\br_\bs_\bt or _\bl_\ba_\bs_\bt specify history
+ lines out of range. If the -\b-e\be option is supplied, the return
value is the value of the last command executed or failure if an
error occurs with the temporary file of commands. If the second
- form is used, the return status is that of the command re-exe-
- cuted, unless _\bc_\bm_\bd does not specify a valid history line, in
+ form is used, the return status is that of the command re-exe-
+ cuted, unless _\bc_\bm_\bd does not specify a valid history line, in
which case f\bfc\bc returns failure.
f\bfg\bg [_\bj_\bo_\bb_\bs_\bp_\be_\bc]
- Resume _\bj_\bo_\bb_\bs_\bp_\be_\bc in the foreground, and make it the current job.
+ Resume _\bj_\bo_\bb_\bs_\bp_\be_\bc in the foreground, and make it the current job.
If _\bj_\bo_\bb_\bs_\bp_\be_\bc is not present, the shell's notion of the _\bc_\bu_\br_\br_\be_\bn_\bt _\bj_\bo_\bb
- is used. The return value is that of the command placed into
- the foreground, or failure if run when job control is disabled
+ is used. The return value is that of the command placed into
+ the foreground, or failure if run when job control is disabled
or, when run with job control enabled, if _\bj_\bo_\bb_\bs_\bp_\be_\bc does not spec-
- ify a valid job or _\bj_\bo_\bb_\bs_\bp_\be_\bc specifies a job that was started
+ ify a valid job or _\bj_\bo_\bb_\bs_\bp_\be_\bc specifies a job that was started
without job control.
g\bge\bet\bto\bop\bpt\bts\bs _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg _\bn_\ba_\bm_\be [_\ba_\br_\bg_\bs]
- g\bge\bet\bto\bop\bpt\bts\bs is used by shell procedures to parse positional parame-
- ters. _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg contains the option characters to be recog-
- nized; if a character is followed by a colon, the option is
- expected to have an argument, which should be separated from it
- by white space. The colon and question mark characters may not
- be used as option characters. Each time it is invoked, g\bge\bet\bto\bop\bpt\bts\bs
- places the next option in the shell variable _\bn_\ba_\bm_\be, initializing
+ g\bge\bet\bto\bop\bpt\bts\bs is used by shell procedures to parse positional parame-
+ ters. _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg contains the option characters to be recog-
+ nized; if a character is followed by a colon, the option is
+ expected to have an argument, which should be separated from it
+ by white space. The colon and question mark characters may not
+ be used as option characters. Each time it is invoked, g\bge\bet\bto\bop\bpt\bts\bs
+ places the next option in the shell variable _\bn_\ba_\bm_\be, initializing
_\bn_\ba_\bm_\be if it does not exist, and the index of the next argument to
be processed into the variable O\bOP\bPT\bTI\bIN\bND\bD. O\bOP\bPT\bTI\bIN\bND\bD is initialized to
- 1 each time the shell or a shell script is invoked. When an
- option requires an argument, g\bge\bet\bto\bop\bpt\bts\bs places that argument into
- the variable O\bOP\bPT\bTA\bAR\bRG\bG. The shell does not reset O\bOP\bPT\bTI\bIN\bND\bD automati-
- cally; it must be manually reset between multiple calls to
+ 1 each time the shell or a shell script is invoked. When an
+ option requires an argument, g\bge\bet\bto\bop\bpt\bts\bs places that argument into
+ the variable O\bOP\bPT\bTA\bAR\bRG\bG. The shell does not reset O\bOP\bPT\bTI\bIN\bND\bD automati-
+ cally; it must be manually reset between multiple calls to
g\bge\bet\bto\bop\bpt\bts\bs within the same shell invocation if a new set of parame-
ters is to be used.
- When the end of options is encountered, g\bge\bet\bto\bop\bpt\bts\bs exits with a
- return value greater than zero. O\bOP\bPT\bTI\bIN\bND\bD is set to the index of
+ When the end of options is encountered, g\bge\bet\bto\bop\bpt\bts\bs exits with a
+ return value greater than zero. O\bOP\bPT\bTI\bIN\bND\bD is set to the index of
the first non-option argument, and _\bn_\ba_\bm_\be is set to ?.
- g\bge\bet\bto\bop\bpt\bts\bs normally parses the positional parameters, but if more
+ g\bge\bet\bto\bop\bpt\bts\bs normally parses the positional parameters, but if more
arguments are given in _\ba_\br_\bg_\bs, g\bge\bet\bto\bop\bpt\bts\bs parses those instead.
- g\bge\bet\bto\bop\bpt\bts\bs can report errors in two ways. If the first character
- of _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg is a colon, _\bs_\bi_\bl_\be_\bn_\bt error reporting is used. In
- normal operation, diagnostic messages are printed when invalid
- options or missing option arguments are encountered. If the
- variable O\bOP\bPT\bTE\bER\bRR\bR is set to 0, no error messages will be dis-
+ g\bge\bet\bto\bop\bpt\bts\bs can report errors in two ways. If the first character
+ of _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg is a colon, _\bs_\bi_\bl_\be_\bn_\bt error reporting is used. In
+ normal operation, diagnostic messages are printed when invalid
+ options or missing option arguments are encountered. If the
+ variable O\bOP\bPT\bTE\bER\bRR\bR is set to 0, no error messages will be dis-
played, even if the first character of _\bo_\bp_\bt_\bs_\bt_\br_\bi_\bn_\bg is not a colon.
If an invalid option is seen, g\bge\bet\bto\bop\bpt\bts\bs places ? into _\bn_\ba_\bm_\be and, if
- not silent, prints an error message and unsets O\bOP\bPT\bTA\bAR\bRG\bG. If
- g\bge\bet\bto\bop\bpt\bts\bs is silent, the option character found is placed in
+ not silent, prints an error message and unsets O\bOP\bPT\bTA\bAR\bRG\bG. If
+ g\bge\bet\bto\bop\bpt\bts\bs is silent, the option character found is placed in
O\bOP\bPT\bTA\bAR\bRG\bG and no diagnostic message is printed.
- If a required argument is not found, and g\bge\bet\bto\bop\bpt\bts\bs is not silent,
- a question mark (?\b?) is placed in _\bn_\ba_\bm_\be, O\bOP\bPT\bTA\bAR\bRG\bG is unset, and a
- diagnostic message is printed. If g\bge\bet\bto\bop\bpt\bts\bs is silent, then a
- colon (:\b:) is placed in _\bn_\ba_\bm_\be and O\bOP\bPT\bTA\bAR\bRG\bG is set to the option
+ If a required argument is not found, and g\bge\bet\bto\bop\bpt\bts\bs is not silent,
+ a question mark (?\b?) is placed in _\bn_\ba_\bm_\be, O\bOP\bPT\bTA\bAR\bRG\bG is unset, and a
+ diagnostic message is printed. If g\bge\bet\bto\bop\bpt\bts\bs is silent, then a
+ colon (:\b:) is placed in _\bn_\ba_\bm_\be and O\bOP\bPT\bTA\bAR\bRG\bG is set to the option
character found.
- g\bge\bet\bto\bop\bpt\bts\bs returns true if an option, specified or unspecified, is
+ g\bge\bet\bto\bop\bpt\bts\bs returns true if an option, specified or unspecified, is
found. It returns false if the end of options is encountered or
an error occurs.
h\bha\bas\bsh\bh [-\b-l\blr\br] [-\b-p\bp _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be] [-\b-d\bdt\bt] [_\bn_\ba_\bm_\be]
Each time h\bha\bas\bsh\bh is invoked, the full pathname of the command _\bn_\ba_\bm_\be
- is determined by searching the directories in $\b$P\bPA\bAT\bTH\bH and remem-
+ is determined by searching the directories in $\b$P\bPA\bAT\bTH\bH and remem-
bered. Any previously-remembered pathname is discarded. If the
-\b-p\bp option is supplied, no path search is performed, and _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
- is used as the full filename of the command. The -\b-r\br option
- causes the shell to forget all remembered locations. The -\b-d\bd
- option causes the shell to forget the remembered location of
- each _\bn_\ba_\bm_\be. If the -\b-t\bt option is supplied, the full pathname to
- which each _\bn_\ba_\bm_\be corresponds is printed. If multiple _\bn_\ba_\bm_\be argu-
- ments are supplied with -\b-t\bt, the _\bn_\ba_\bm_\be is printed before the
- hashed full pathname. The -\b-l\bl option causes output to be dis-
+ is used as the full filename of the command. The -\b-r\br option
+ causes the shell to forget all remembered locations. The -\b-d\bd
+ option causes the shell to forget the remembered location of
+ each _\bn_\ba_\bm_\be. If the -\b-t\bt option is supplied, the full pathname to
+ which each _\bn_\ba_\bm_\be corresponds is printed. If multiple _\bn_\ba_\bm_\be argu-
+ ments are supplied with -\b-t\bt, the _\bn_\ba_\bm_\be is printed before the
+ hashed full pathname. The -\b-l\bl option causes output to be dis-
played in a format that may be reused as input. If no arguments
- are given, or if only -\b-l\bl is supplied, information about remem-
- bered commands is printed. The return status is true unless a
+ are given, or if only -\b-l\bl is supplied, information about remem-
+ bered commands is printed. The return status is true unless a
_\bn_\ba_\bm_\be is not found or an invalid option is supplied.
h\bhe\bel\blp\bp [-\b-d\bdm\bms\bs] [_\bp_\ba_\bt_\bt_\be_\br_\bn]
- Display helpful information about builtin commands. If _\bp_\ba_\bt_\bt_\be_\br_\bn
- is specified, h\bhe\bel\blp\bp gives detailed help on all commands matching
- _\bp_\ba_\bt_\bt_\be_\br_\bn; otherwise help for all the builtins and shell control
+ Display helpful information about builtin commands. If _\bp_\ba_\bt_\bt_\be_\br_\bn
+ is specified, h\bhe\bel\blp\bp gives detailed help on all commands matching
+ _\bp_\ba_\bt_\bt_\be_\br_\bn; otherwise help for all the builtins and shell control
structures is printed.
-\b-d\bd Display a short description of each _\bp_\ba_\bt_\bt_\be_\br_\bn
-\b-m\bm Display the description of each _\bp_\ba_\bt_\bt_\be_\br_\bn in a manpage-like
h\bhi\bis\bst\bto\bor\bry\by -\b-s\bs _\ba_\br_\bg [_\ba_\br_\bg _\b._\b._\b.]
With no options, display the command history list with line num-
bers. Lines listed with a *\b* have been modified. An argument of
- _\bn lists only the last _\bn lines. If the shell variable H\bHI\bIS\bST\bTT\bTI\bIM\bME\bE-\b-
- F\bFO\bOR\bRM\bMA\bAT\bT is set and not null, it is used as a format string for
- _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) to display the time stamp associated with each dis-
- played history entry. No intervening blank is printed between
- the formatted time stamp and the history line. If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is
- supplied, it is used as the name of the history file; if not,
- the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is used. Options, if supplied, have the
+ _\bn lists only the last _\bn lines. If the shell variable H\bHI\bIS\bST\bTT\bTI\bIM\bME\bE-\b-
+ F\bFO\bOR\bRM\bMA\bAT\bT is set and not null, it is used as a format string for
+ _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3) to display the time stamp associated with each dis-
+ played history entry. No intervening blank is printed between
+ the formatted time stamp and the history line. If _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be is
+ supplied, it is used as the name of the history file; if not,
+ the value of H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE is used. Options, if supplied, have the
following meanings:
-\b-c\bc Clear the history list by deleting all the entries.
-\b-d\bd _\bo_\bf_\bf_\bs_\be_\bt
Delete the history entry at position _\bo_\bf_\bf_\bs_\be_\bt.
- -\b-a\ba Append the ``new'' history lines (history lines entered
- since the beginning of the current b\bba\bas\bsh\bh session) to the
+ -\b-a\ba Append the ``new'' history lines (history lines entered
+ since the beginning of the current b\bba\bas\bsh\bh session) to the
history file.
- -\b-n\bn Read the history lines not already read from the history
- file into the current history list. These are lines
- appended to the history file since the beginning of the
+ -\b-n\bn Read the history lines not already read from the history
+ file into the current history list. These are lines
+ appended to the history file since the beginning of the
current b\bba\bas\bsh\bh session.
- -\b-r\br Read the contents of the history file and append them to
+ -\b-r\br Read the contents of the history file and append them to
the current history list.
-\b-w\bw Write the current history list to the history file, over-
writing the history file's contents.
- -\b-p\bp Perform history substitution on the following _\ba_\br_\bg_\bs and
- display the result on the standard output. Does not
- store the results in the history list. Each _\ba_\br_\bg must be
+ -\b-p\bp Perform history substitution on the following _\ba_\br_\bg_\bs and
+ display the result on the standard output. Does not
+ store the results in the history list. Each _\ba_\br_\bg must be
quoted to disable normal history expansion.
- -\b-s\bs Store the _\ba_\br_\bg_\bs in the history list as a single entry.
- The last command in the history list is removed before
+ -\b-s\bs Store the _\ba_\br_\bg_\bs in the history list as a single entry.
+ The last command in the history list is removed before
the _\ba_\br_\bg_\bs are added.
- If the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable is set, the time stamp informa-
- tion associated with each history entry is written to the his-
- tory file, marked with the history comment character. When the
- history file is read, lines beginning with the history comment
- character followed immediately by a digit are interpreted as
+ If the H\bHI\bIS\bST\bTT\bTI\bIM\bME\bEF\bFO\bOR\bRM\bMA\bAT\bT variable is set, the time stamp informa-
+ tion associated with each history entry is written to the his-
+ tory file, marked with the history comment character. When the
+ history file is read, lines beginning with the history comment
+ character followed immediately by a digit are interpreted as
timestamps for the previous history line. The return value is 0
- unless an invalid option is encountered, an error occurs while
- reading or writing the history file, an invalid _\bo_\bf_\bf_\bs_\be_\bt is sup-
+ unless an invalid option is encountered, an error occurs while
+ reading or writing the history file, an invalid _\bo_\bf_\bf_\bs_\be_\bt is sup-
plied as an argument to -\b-d\bd, or the history expansion supplied as
an argument to -\b-p\bp fails.
The first form lists the active jobs. The options have the fol-
lowing meanings:
-\b-l\bl List process IDs in addition to the normal information.
- -\b-n\bn Display information only about jobs that have changed
- status since the user was last notified of their status.
- -\b-p\bp List only the process ID of the job's process group
+ -\b-n\bn Display information only about jobs that have changed
+ status since the user was last notified of their status.
+ -\b-p\bp List only the process ID of the job's process group
leader.
-\b-r\br Display only running jobs.
-\b-s\bs Display only stopped jobs.
- If _\bj_\bo_\bb_\bs_\bp_\be_\bc is given, output is restricted to information about
- that job. The return status is 0 unless an invalid option is
+ If _\bj_\bo_\bb_\bs_\bp_\be_\bc is given, output is restricted to information about
+ that job. The return status is 0 unless an invalid option is
encountered or an invalid _\bj_\bo_\bb_\bs_\bp_\be_\bc is supplied.
If the -\b-x\bx option is supplied, j\bjo\bob\bbs\bs replaces any _\bj_\bo_\bb_\bs_\bp_\be_\bc found in
- _\bc_\bo_\bm_\bm_\ba_\bn_\bd or _\ba_\br_\bg_\bs with the corresponding process group ID, and
+ _\bc_\bo_\bm_\bm_\ba_\bn_\bd or _\ba_\br_\bg_\bs with the corresponding process group ID, and
executes _\bc_\bo_\bm_\bm_\ba_\bn_\bd passing it _\ba_\br_\bg_\bs, returning its exit status.
k\bki\bil\bll\bl [-\b-s\bs _\bs_\bi_\bg_\bs_\bp_\be_\bc | -\b-n\bn _\bs_\bi_\bg_\bn_\bu_\bm | -\b-_\bs_\bi_\bg_\bs_\bp_\be_\bc] [_\bp_\bi_\bd | _\bj_\bo_\bb_\bs_\bp_\be_\bc] ...
k\bki\bil\bll\bl -\b-l\bl [_\bs_\bi_\bg_\bs_\bp_\be_\bc | _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs]
- Send the signal named by _\bs_\bi_\bg_\bs_\bp_\be_\bc or _\bs_\bi_\bg_\bn_\bu_\bm to the processes
- named by _\bp_\bi_\bd or _\bj_\bo_\bb_\bs_\bp_\be_\bc. _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a case-insensitive
- signal name such as S\bSI\bIG\bGK\bKI\bIL\bLL\bL (with or without the S\bSI\bIG\bG prefix) or
- a signal number; _\bs_\bi_\bg_\bn_\bu_\bm is a signal number. If _\bs_\bi_\bg_\bs_\bp_\be_\bc is not
- present, then S\bSI\bIG\bGT\bTE\bER\bRM\bM is assumed. An argument of -\b-l\bl lists the
- signal names. If any arguments are supplied when -\b-l\bl is given,
- the names of the signals corresponding to the arguments are
+ Send the signal named by _\bs_\bi_\bg_\bs_\bp_\be_\bc or _\bs_\bi_\bg_\bn_\bu_\bm to the processes
+ named by _\bp_\bi_\bd or _\bj_\bo_\bb_\bs_\bp_\be_\bc. _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a case-insensitive
+ signal name such as S\bSI\bIG\bGK\bKI\bIL\bLL\bL (with or without the S\bSI\bIG\bG prefix) or
+ a signal number; _\bs_\bi_\bg_\bn_\bu_\bm is a signal number. If _\bs_\bi_\bg_\bs_\bp_\be_\bc is not
+ present, then S\bSI\bIG\bGT\bTE\bER\bRM\bM is assumed. An argument of -\b-l\bl lists the
+ signal names. If any arguments are supplied when -\b-l\bl is given,
+ the names of the signals corresponding to the arguments are
listed, and the return status is 0. The _\be_\bx_\bi_\bt_\b__\bs_\bt_\ba_\bt_\bu_\bs argument to
- -\b-l\bl is a number specifying either a signal number or the exit
- status of a process terminated by a signal. k\bki\bil\bll\bl returns true
- if at least one signal was successfully sent, or false if an
+ -\b-l\bl is a number specifying either a signal number or the exit
+ status of a process terminated by a signal. k\bki\bil\bll\bl returns true
+ if at least one signal was successfully sent, or false if an
error occurs or an invalid option is encountered.
l\ble\bet\bt _\ba_\br_\bg [_\ba_\br_\bg ...]
Each _\ba_\br_\bg is an arithmetic expression to be evaluated (see A\bAR\bRI\bIT\bTH\bH-\b-
- M\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN above). If the last _\ba_\br_\bg evaluates to 0, l\ble\bet\bt
+ M\bME\bET\bTI\bIC\bC E\bEV\bVA\bAL\bLU\bUA\bAT\bTI\bIO\bON\bN above). If the last _\ba_\br_\bg evaluates to 0, l\ble\bet\bt
returns 1; 0 is returned otherwise.
l\blo\boc\bca\bal\bl [_\bo_\bp_\bt_\bi_\bo_\bn] [_\bn_\ba_\bm_\be[=_\bv_\ba_\bl_\bu_\be] ...]
- For each argument, a local variable named _\bn_\ba_\bm_\be is created, and
- assigned _\bv_\ba_\bl_\bu_\be. The _\bo_\bp_\bt_\bi_\bo_\bn can be any of the options accepted
+ For each argument, a local variable named _\bn_\ba_\bm_\be is created, and
+ assigned _\bv_\ba_\bl_\bu_\be. The _\bo_\bp_\bt_\bi_\bo_\bn can be any of the options accepted
by d\bde\bec\bcl\bla\bar\bre\be. When l\blo\boc\bca\bal\bl is used within a function, it causes the
- variable _\bn_\ba_\bm_\be to have a visible scope restricted to that func-
+ variable _\bn_\ba_\bm_\be to have a visible scope restricted to that func-
tion and its children. With no operands, l\blo\boc\bca\bal\bl writes a list of
- local variables to the standard output. It is an error to use
+ local variables to the standard output. It is an error to use
l\blo\boc\bca\bal\bl when not within a function. The return status is 0 unless
- l\blo\boc\bca\bal\bl is used outside a function, an invalid _\bn_\ba_\bm_\be is supplied,
+ l\blo\boc\bca\bal\bl is used outside a function, an invalid _\bn_\ba_\bm_\be is supplied,
or _\bn_\ba_\bm_\be is a readonly variable.
l\blo\bog\bgo\bou\but\bt Exit a login shell.
- m\bma\bap\bpf\bfi\bil\ble\be [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk]
+ m\bma\bap\bpf\bfi\bil\ble\be [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk]
[-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
- r\bre\bea\bad\bda\bar\brr\bra\bay\by [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk]
+ r\bre\bea\bad\bda\bar\brr\bra\bay\by [-\b-n\bn _\bc_\bo_\bu_\bn_\bt] [-\b-O\bO _\bo_\br_\bi_\bg_\bi_\bn] [-\b-s\bs _\bc_\bo_\bu_\bn_\bt] [-\b-t\bt] [-\b-u\bu _\bf_\bd] [-\b-C\bC _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk]
[-\b-c\bc _\bq_\bu_\ba_\bn_\bt_\bu_\bm] [_\ba_\br_\br_\ba_\by]
- Read lines from the standard input into the indexed array vari-
- able _\ba_\br_\br_\ba_\by, or from file descriptor _\bf_\bd if the -\b-u\bu option is sup-
- plied. The variable M\bMA\bAP\bPF\bFI\bIL\bLE\bE is the default _\ba_\br_\br_\ba_\by. Options, if
+ Read lines from the standard input into the indexed array vari-
+ able _\ba_\br_\br_\ba_\by, or from file descriptor _\bf_\bd if the -\b-u\bu option is sup-
+ plied. The variable M\bMA\bAP\bPF\bFI\bIL\bLE\bE is the default _\ba_\br_\br_\ba_\by. Options, if
supplied, have the following meanings:
- -\b-n\bn Copy at most _\bc_\bo_\bu_\bn_\bt lines. If _\bc_\bo_\bu_\bn_\bt is 0, all lines are
+ -\b-n\bn Copy at most _\bc_\bo_\bu_\bn_\bt lines. If _\bc_\bo_\bu_\bn_\bt is 0, all lines are
copied.
- -\b-O\bO Begin assigning to _\ba_\br_\br_\ba_\by at index _\bo_\br_\bi_\bg_\bi_\bn. The default
+ -\b-O\bO Begin assigning to _\ba_\br_\br_\ba_\by at index _\bo_\br_\bi_\bg_\bi_\bn. The default
index is 0.
-\b-s\bs Discard the first _\bc_\bo_\bu_\bn_\bt lines read.
-\b-t\bt Remove a trailing newline from each line read.
- -\b-u\bu Read lines from file descriptor _\bf_\bd instead of the stan-
+ -\b-u\bu Read lines from file descriptor _\bf_\bd instead of the stan-
dard input.
- -\b-C\bC Evaluate _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk each time _\bq_\bu_\ba_\bn_\bt_\bu_\bm lines are read. The
+ -\b-C\bC Evaluate _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk each time _\bq_\bu_\ba_\bn_\bt_\bu_\bm lines are read. The
-\b-c\bc option specifies _\bq_\bu_\ba_\bn_\bt_\bu_\bm.
- -\b-c\bc Specify the number of lines read between each call to
+ -\b-c\bc Specify the number of lines read between each call to
_\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk.
- If -\b-C\bC is specified without -\b-c\bc, the default quantum is 5000.
+ If -\b-C\bC is specified without -\b-c\bc, the default quantum is 5000.
When _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk is evaluated, it is supplied the index of the next
array element to be assigned and the line to be assigned to that
- element as additional arguments. _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk is evaluated after
+ element as additional arguments. _\bc_\ba_\bl_\bl_\bb_\ba_\bc_\bk is evaluated after
the line is read but before the array element is assigned.
- If not supplied with an explicit origin, m\bma\bap\bpf\bfi\bil\ble\be will clear
+ If not supplied with an explicit origin, m\bma\bap\bpf\bfi\bil\ble\be will clear
_\ba_\br_\br_\ba_\by before assigning to it.
- m\bma\bap\bpf\bfi\bil\ble\be returns successfully unless an invalid option or option
- argument is supplied, _\ba_\br_\br_\ba_\by is invalid or unassignable, or if
+ m\bma\bap\bpf\bfi\bil\ble\be returns successfully unless an invalid option or option
+ argument is supplied, _\ba_\br_\br_\ba_\by is invalid or unassignable, or if
_\ba_\br_\br_\ba_\by is not an indexed array.
p\bpo\bop\bpd\bd [-n\bn] [+_\bn] [-_\bn]
- Removes entries from the directory stack. With no arguments,
- removes the top directory from the stack, and performs a c\bcd\bd to
+ Removes entries from the directory stack. With no arguments,
+ removes the top directory from the stack, and performs a c\bcd\bd to
the new top directory. Arguments, if supplied, have the follow-
ing meanings:
- -\b-n\bn Suppresses the normal change of directory when removing
- directories from the stack, so that only the stack is
+ -\b-n\bn Suppresses the normal change of directory when removing
+ directories from the stack, so that only the stack is
manipulated.
- +\b+_\bn Removes the _\bnth entry counting from the left of the list
- shown by d\bdi\bir\brs\bs, starting with zero. For example: ``popd
+ +\b+_\bn Removes the _\bnth entry counting from the left of the list
+ shown by d\bdi\bir\brs\bs, starting with zero. For example: ``popd
+0'' removes the first directory, ``popd +1'' the second.
-\b-_\bn Removes the _\bnth entry counting from the right of the list
- shown by d\bdi\bir\brs\bs, starting with zero. For example: ``popd
- -0'' removes the last directory, ``popd -1'' the next to
+ shown by d\bdi\bir\brs\bs, starting with zero. For example: ``popd
+ -0'' removes the last directory, ``popd -1'' the next to
last.
- If the p\bpo\bop\bpd\bd command is successful, a d\bdi\bir\brs\bs is performed as well,
- and the return status is 0. p\bpo\bop\bpd\bd returns false if an invalid
+ If the p\bpo\bop\bpd\bd command is successful, a d\bdi\bir\brs\bs is performed as well,
+ and the return status is 0. p\bpo\bop\bpd\bd returns false if an invalid
option is encountered, the directory stack is empty, a non-exis-
tent directory stack entry is specified, or the directory change
fails.
p\bpr\bri\bin\bnt\btf\bf [-\b-v\bv _\bv_\ba_\br] _\bf_\bo_\br_\bm_\ba_\bt [_\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs]
- Write the formatted _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs to the standard output under the
- control of the _\bf_\bo_\br_\bm_\ba_\bt. The -\b-v\bv option causes the output to be
- assigned to the variable _\bv_\ba_\br rather than being printed to the
+ Write the formatted _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs to the standard output under the
+ control of the _\bf_\bo_\br_\bm_\ba_\bt. The -\b-v\bv option causes the output to be
+ assigned to the variable _\bv_\ba_\br rather than being printed to the
standard output.
- The _\bf_\bo_\br_\bm_\ba_\bt is a character string which contains three types of
- objects: plain characters, which are simply copied to standard
- output, character escape sequences, which are converted and
- copied to the standard output, and format specifications, each
- of which causes printing of the next successive _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt. In
+ The _\bf_\bo_\br_\bm_\ba_\bt is a character string which contains three types of
+ objects: plain characters, which are simply copied to standard
+ output, character escape sequences, which are converted and
+ copied to the standard output, and format specifications, each
+ of which causes printing of the next successive _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt. In
addition to the standard _\bp_\br_\bi_\bn_\bt_\bf(1) format specifications, p\bpr\bri\bin\bnt\btf\bf
interprets the following extensions:
%\b%b\bb causes p\bpr\bri\bin\bnt\btf\bf to expand backslash escape sequences in the
corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt (except that \\b\c\bc terminates output,
- backslashes in \\b\'\b', \\b\"\b", and \\b\?\b? are not removed, and octal
+ backslashes in \\b\'\b', \\b\"\b", and \\b\?\b? are not removed, and octal
escapes beginning with \\b\0\b0 may contain up to four digits).
- %\b%q\bq causes p\bpr\bri\bin\bnt\btf\bf to output the corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt in a
+ %\b%q\bq causes p\bpr\bri\bin\bnt\btf\bf to output the corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt in a
format that can be reused as shell input.
%\b%(\b(_\bd_\ba_\bt_\be_\bf_\bm_\bt)\b)T\bT
- causes p\bpr\bri\bin\bnt\btf\bf to output the date-time string resulting
- from using _\bd_\ba_\bt_\be_\bf_\bm_\bt as a format string for _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3).
+ causes p\bpr\bri\bin\bnt\btf\bf to output the date-time string resulting
+ from using _\bd_\ba_\bt_\be_\bf_\bm_\bt as a format string for _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be(3).
The corresponding _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt is an integer representing the
- number of seconds since the epoch. Two special argument
- values may be used: -1 represents the current time, and
+ number of seconds since the epoch. Two special argument
+ values may be used: -1 represents the current time, and
-2 represents the time the shell was invoked.
- Arguments to non-string format specifiers are treated as C con-
+ Arguments to non-string format specifiers are treated as C con-
stants, except that a leading plus or minus sign is allowed, and
- if the leading character is a single or double quote, the value
+ if the leading character is a single or double quote, the value
is the ASCII value of the following character.
- The _\bf_\bo_\br_\bm_\ba_\bt is reused as necessary to consume all of the _\ba_\br_\bg_\bu_\b-
+ The _\bf_\bo_\br_\bm_\ba_\bt is reused as necessary to consume all of the _\ba_\br_\bg_\bu_\b-
_\bm_\be_\bn_\bt_\bs. If the _\bf_\bo_\br_\bm_\ba_\bt requires more _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs than are supplied,
- the extra format specifications behave as if a zero value or
- null string, as appropriate, had been supplied. The return
+ the extra format specifications behave as if a zero value or
+ null string, as appropriate, had been supplied. The return
value is zero on success, non-zero on failure.
p\bpu\bus\bsh\bhd\bd [-\b-n\bn] [+_\bn] [-_\bn]
p\bpu\bus\bsh\bhd\bd [-\b-n\bn] [_\bd_\bi_\br]
- Adds a directory to the top of the directory stack, or rotates
- the stack, making the new top of the stack the current working
+ Adds a directory to the top of the directory stack, or rotates
+ the stack, making the new top of the stack the current working
directory. With no arguments, exchanges the top two directories
- and returns 0, unless the directory stack is empty. Arguments,
+ and returns 0, unless the directory stack is empty. Arguments,
if supplied, have the following meanings:
- -\b-n\bn Suppresses the normal change of directory when adding
- directories to the stack, so that only the stack is
+ -\b-n\bn Suppresses the normal change of directory when adding
+ directories to the stack, so that only the stack is
manipulated.
- +\b+_\bn Rotates the stack so that the _\bnth directory (counting
- from the left of the list shown by d\bdi\bir\brs\bs, starting with
+ +\b+_\bn Rotates the stack so that the _\bnth directory (counting
+ from the left of the list shown by d\bdi\bir\brs\bs, starting with
zero) is at the top.
- -\b-_\bn Rotates the stack so that the _\bnth directory (counting
- from the right of the list shown by d\bdi\bir\brs\bs, starting with
+ -\b-_\bn Rotates the stack so that the _\bnth directory (counting
+ from the right of the list shown by d\bdi\bir\brs\bs, starting with
zero) is at the top.
_\bd_\bi_\br Adds _\bd_\bi_\br to the directory stack at the top, making it the
- new current working directory as if it had been supplied
+ new current working directory as if it had been supplied
as the argument to the c\bcd\bd builtin.
If the p\bpu\bus\bsh\bhd\bd command is successful, a d\bdi\bir\brs\bs is performed as well.
- If the first form is used, p\bpu\bus\bsh\bhd\bd returns 0 unless the cd to _\bd_\bi_\br
- fails. With the second form, p\bpu\bus\bsh\bhd\bd returns 0 unless the direc-
- tory stack is empty, a non-existent directory stack element is
- specified, or the directory change to the specified new current
+ If the first form is used, p\bpu\bus\bsh\bhd\bd returns 0 unless the cd to _\bd_\bi_\br
+ fails. With the second form, p\bpu\bus\bsh\bhd\bd returns 0 unless the direc-
+ tory stack is empty, a non-existent directory stack element is
+ specified, or the directory change to the specified new current
directory fails.
p\bpw\bwd\bd [-\b-L\bLP\bP]
- Print the absolute pathname of the current working directory.
+ Print the absolute pathname of the current working directory.
The pathname printed contains no symbolic links if the -\b-P\bP option
is supplied or the -\b-o\bo p\bph\bhy\bys\bsi\bic\bca\bal\bl option to the s\bse\bet\bt builtin command
- is enabled. If the -\b-L\bL option is used, the pathname printed may
- contain symbolic links. The return status is 0 unless an error
- occurs while reading the name of the current directory or an
+ is enabled. If the -\b-L\bL option is used, the pathname printed may
+ contain symbolic links. The return status is 0 unless an error
+ occurs while reading the name of the current directory or an
invalid option is supplied.
r\bre\bea\bad\bd [-\b-e\ber\brs\bs] [-\b-a\ba _\ba_\bn_\ba_\bm_\be] [-\b-d\bd _\bd_\be_\bl_\bi_\bm] [-\b-i\bi _\bt_\be_\bx_\bt] [-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs] [-\b-N\bN _\bn_\bc_\bh_\ba_\br_\bs] [-\b-p\bp
_\bp_\br_\bo_\bm_\bp_\bt] [-\b-t\bt _\bt_\bi_\bm_\be_\bo_\bu_\bt] [-\b-u\bu _\bf_\bd] [_\bn_\ba_\bm_\be ...]
- One line is read from the standard input, or from the file
- descriptor _\bf_\bd supplied as an argument to the -\b-u\bu option, and the
+ One line is read from the standard input, or from the file
+ descriptor _\bf_\bd supplied as an argument to the -\b-u\bu option, and the
first word is assigned to the first _\bn_\ba_\bm_\be, the second word to the
- second _\bn_\ba_\bm_\be, and so on, with leftover words and their interven-
- ing separators assigned to the last _\bn_\ba_\bm_\be. If there are fewer
+ second _\bn_\ba_\bm_\be, and so on, with leftover words and their interven-
+ ing separators assigned to the last _\bn_\ba_\bm_\be. If there are fewer
words read from the input stream than names, the remaining names
- are assigned empty values. The characters in I\bIF\bFS\bS are used to
- split the line into words. The backslash character (\\b\) may be
- used to remove any special meaning for the next character read
- and for line continuation. Options, if supplied, have the fol-
+ are assigned empty values. The characters in I\bIF\bFS\bS are used to
+ split the line into words. The backslash character (\\b\) may be
+ used to remove any special meaning for the next character read
+ and for line continuation. Options, if supplied, have the fol-
lowing meanings:
-\b-a\ba _\ba_\bn_\ba_\bm_\be
The words are assigned to sequential indices of the array
new values are assigned. Other _\bn_\ba_\bm_\be arguments are
ignored.
-\b-d\bd _\bd_\be_\bl_\bi_\bm
- The first character of _\bd_\be_\bl_\bi_\bm is used to terminate the
+ The first character of _\bd_\be_\bl_\bi_\bm is used to terminate the
input line, rather than newline.
-\b-e\be If the standard input is coming from a terminal, r\bre\bea\bad\bdl\bli\bin\bne\be
- (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE above) is used to obtain the line. Read-
- line uses the current (or default, if line editing was
+ (see R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE above) is used to obtain the line. Read-
+ line uses the current (or default, if line editing was
not previously active) editing settings.
-\b-i\bi _\bt_\be_\bx_\bt
- If r\bre\bea\bad\bdl\bli\bin\bne\be is being used to read the line, _\bt_\be_\bx_\bt is
+ If r\bre\bea\bad\bdl\bli\bin\bne\be is being used to read the line, _\bt_\be_\bx_\bt is
placed into the editing buffer before editing begins.
-\b-n\bn _\bn_\bc_\bh_\ba_\br_\bs
- r\bre\bea\bad\bd returns after reading _\bn_\bc_\bh_\ba_\br_\bs characters rather than
- waiting for a complete line of input, but honor a delim-
- iter if fewer than _\bn_\bc_\bh_\ba_\br_\bs characters are read before the
+ r\bre\bea\bad\bd returns after reading _\bn_\bc_\bh_\ba_\br_\bs characters rather than
+ waiting for a complete line of input, but honor a delim-
+ iter if fewer than _\bn_\bc_\bh_\ba_\br_\bs characters are read before the
delimiter.
-\b-N\bN _\bn_\bc_\bh_\ba_\br_\bs
- r\bre\bea\bad\bd returns after reading exactly _\bn_\bc_\bh_\ba_\br_\bs characters
- rather than waiting for a complete line of input, unless
- EOF is encountered or r\bre\bea\bad\bd times out. Delimiter charac-
- ters encountered in the input are not treated specially
- and do not cause r\bre\bea\bad\bd to return until _\bn_\bc_\bh_\ba_\br_\bs characters
+ r\bre\bea\bad\bd returns after reading exactly _\bn_\bc_\bh_\ba_\br_\bs characters
+ rather than waiting for a complete line of input, unless
+ EOF is encountered or r\bre\bea\bad\bd times out. Delimiter charac-
+ ters encountered in the input are not treated specially
+ and do not cause r\bre\bea\bad\bd to return until _\bn_\bc_\bh_\ba_\br_\bs characters
are read.
-\b-p\bp _\bp_\br_\bo_\bm_\bp_\bt
Display _\bp_\br_\bo_\bm_\bp_\bt on standard error, without a trailing new-
line, before attempting to read any input. The prompt is
displayed only if input is coming from a terminal.
-\b-r\br Backslash does not act as an escape character. The back-
- slash is considered to be part of the line. In particu-
- lar, a backslash-newline pair may not be used as a line
+ slash is considered to be part of the line. In particu-
+ lar, a backslash-newline pair may not be used as a line
continuation.
-\b-s\bs Silent mode. If input is coming from a terminal, charac-
ters are not echoed.
-\b-t\bt _\bt_\bi_\bm_\be_\bo_\bu_\bt
- Cause r\bre\bea\bad\bd to time out and return failure if a complete
- line of input is not read within _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds. _\bt_\bi_\bm_\be_\b-
- _\bo_\bu_\bt may be a decimal number with a fractional portion
- following the decimal point. This option is only effec-
- tive if r\bre\bea\bad\bd is reading input from a terminal, pipe, or
- other special file; it has no effect when reading from
- regular files. If _\bt_\bi_\bm_\be_\bo_\bu_\bt is 0, r\bre\bea\bad\bd returns immedi-
- ately, without trying to read any data. The exit statis
+ Cause r\bre\bea\bad\bd to time out and return failure if a complete
+ line of input is not read within _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds. _\bt_\bi_\bm_\be_\b-
+ _\bo_\bu_\bt may be a decimal number with a fractional portion
+ following the decimal point. This option is only effec-
+ tive if r\bre\bea\bad\bd is reading input from a terminal, pipe, or
+ other special file; it has no effect when reading from
+ regular files. If _\bt_\bi_\bm_\be_\bo_\bu_\bt is 0, r\bre\bea\bad\bd returns immedi-
+ ately, without trying to read any data. The exit statis
is 0 if input is available on the specified file descrip-
tor, non-zero otherwise. The exit status is greater than
128 if the timeout is exceeded.
-\b-u\bu _\bf_\bd Read input from file descriptor _\bf_\bd.
If no _\bn_\ba_\bm_\be_\bs are supplied, the line read is assigned to the vari-
- able R\bRE\bEP\bPL\bLY\bY. The return code is zero, unless end-of-file is
- encountered, r\bre\bea\bad\bd times out (in which case the return code is
- greater than 128), or an invalid file descriptor is supplied as
+ able R\bRE\bEP\bPL\bLY\bY. The return code is zero, unless end-of-file is
+ encountered, r\bre\bea\bad\bd times out (in which case the return code is
+ greater than 128), or an invalid file descriptor is supplied as
the argument to -\b-u\bu.
r\bre\bea\bad\bdo\bon\bnl\bly\by [-\b-a\baA\bAf\bf] [-\b-p\bp] [_\bn_\ba_\bm_\be[=_\bw_\bo_\br_\bd] ...]
- The given _\bn_\ba_\bm_\be_\bs are marked readonly; the values of these _\bn_\ba_\bm_\be_\bs
- may not be changed by subsequent assignment. If the -\b-f\bf option
- is supplied, the functions corresponding to the _\bn_\ba_\bm_\be_\bs are so
- marked. The -\b-a\ba option restricts the variables to indexed
- arrays; the -\b-A\bA option restricts the variables to associative
- arrays. If both options are supplied, -\b-A\bA takes precedence. If
- no _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option is supplied, a
+ The given _\bn_\ba_\bm_\be_\bs are marked readonly; the values of these _\bn_\ba_\bm_\be_\bs
+ may not be changed by subsequent assignment. If the -\b-f\bf option
+ is supplied, the functions corresponding to the _\bn_\ba_\bm_\be_\bs are so
+ marked. The -\b-a\ba option restricts the variables to indexed
+ arrays; the -\b-A\bA option restricts the variables to associative
+ arrays. If both options are supplied, -\b-A\bA takes precedence. If
+ no _\bn_\ba_\bm_\be arguments are given, or if the -\b-p\bp option is supplied, a
list of all readonly names is printed. The other options may be
- used to restrict the output to a subset of the set of readonly
- names. The -\b-p\bp option causes output to be displayed in a format
- that may be reused as input. If a variable name is followed by
- =_\bw_\bo_\br_\bd, the value of the variable is set to _\bw_\bo_\br_\bd. The return
- status is 0 unless an invalid option is encountered, one of the
+ used to restrict the output to a subset of the set of readonly
+ names. The -\b-p\bp option causes output to be displayed in a format
+ that may be reused as input. If a variable name is followed by
+ =_\bw_\bo_\br_\bd, the value of the variable is set to _\bw_\bo_\br_\bd. The return
+ status is 0 unless an invalid option is encountered, one of the
_\bn_\ba_\bm_\be_\bs is not a valid shell variable name, or -\b-f\bf is supplied with
a _\bn_\ba_\bm_\be that is not a function.
r\bre\bet\btu\bur\brn\bn [_\bn]
- Causes a function to stop executing and return the value speci-
- fied by _\bn to its caller. If _\bn is omitted, the return status is
- that of the last command executed in the function body. If
- r\bre\bet\btu\bur\brn\bn is used outside a function, but during execution of a
- script by the .\b. (s\bso\bou\bur\brc\bce\be) command, it causes the shell to stop
- executing that script and return either _\bn or the exit status of
- the last command executed within the script as the exit status
- of the script. The return status is non-zero if r\bre\bet\btu\bur\brn\bn is used
- outside a function and not during execution of a script by .\b. or
- s\bso\bou\bur\brc\bce\be. Any command associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed
- before execution resumes after the function or script.
+ Causes a function to stop executing and return the value speci-
+ fied by _\bn to its caller. If _\bn is omitted, the return status is
+ that of the last command executed in the function body. If
+ r\bre\bet\btu\bur\brn\bn is used outside a function, but during execution of a
+ script by the .\b. (s\bso\bou\bur\brc\bce\be) command, it causes the shell to stop
+ executing that script and return either _\bn or the exit status of
+ the last command executed within the script as the exit status
+ of the script. If _\bn is supplied, the return value is its least
+ significant 8 bits. The return status is non-zero if r\bre\bet\btu\bur\brn\bn is
+ supplied a non-numeric argument, or is used outside a function
+ and not during execution of a script by .\b. or s\bso\bou\bur\brc\bce\be. Any com-
+ mand associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed before execu-
+ tion resumes after the function or script.
s\bse\bet\bt [-\b--\b-a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be] [_\ba_\br_\bg ...]
s\bse\bet\bt [+\b+a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be] [_\ba_\br_\bg ...]
- Without options, the name and value of each shell variable are
+ Without options, the name and value of each shell variable are
displayed in a format that can be reused as input for setting or
resetting the currently-set variables. Read-only variables can-
- not be reset. In _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, only shell variables are listed.
- The output is sorted according to the current locale. When
- options are specified, they set or unset shell attributes. Any
- arguments remaining after option processing are treated as val-
+ not be reset. In _\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be, only shell variables are listed.
+ The output is sorted according to the current locale. When
+ options are specified, they set or unset shell attributes. Any
+ arguments remaining after option processing are treated as val-
ues for the positional parameters and are assigned, in order, to
- $\b$1\b1, $\b$2\b2, .\b..\b..\b. $\b$_\bn. Options, if specified, have the following
+ $\b$1\b1, $\b$2\b2, .\b..\b..\b. $\b$_\bn. Options, if specified, have the following
meanings:
- -\b-a\ba Automatically mark variables and functions which are
- modified or created for export to the environment of
+ -\b-a\ba Automatically mark variables and functions which are
+ modified or created for export to the environment of
subsequent commands.
- -\b-b\bb Report the status of terminated background jobs immedi-
+ -\b-b\bb Report the status of terminated background jobs immedi-
ately, rather than before the next primary prompt. This
is effective only when job control is enabled.
- -\b-e\be Exit immediately if a _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be (which may consist of a
- single _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd), a _\bl_\bi_\bs_\bt, or a _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd _\bc_\bo_\bm_\bm_\ba_\bn_\bd
- (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR above), exits with a non-zero sta-
- tus. The shell does not exit if the command that fails
- is part of the command list immediately following a
- w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword, part of the test following the
- i\bif\bf or e\bel\bli\bif\bf reserved words, part of any command executed
- in a &\b&&\b& or |\b||\b| list except the command following the
- final &\b&&\b& or |\b||\b|, any command in a pipeline but the last,
- or if the command's return value is being inverted with
- !\b!. If a compound command other than a subshell returns
- a non-zero status because a command failed while -\b-e\be was
- being ignored, the shell does not exit. A trap on E\bER\bRR\bR,
+ -\b-e\be Exit immediately if a _\bp_\bi_\bp_\be_\bl_\bi_\bn_\be (which may consist of a
+ single _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd), a _\bl_\bi_\bs_\bt, or a _\bc_\bo_\bm_\bp_\bo_\bu_\bn_\bd _\bc_\bo_\bm_\bm_\ba_\bn_\bd
+ (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR above), exits with a non-zero sta-
+ tus. The shell does not exit if the command that fails
+ is part of the command list immediately following a
+ w\bwh\bhi\bil\ble\be or u\bun\bnt\bti\bil\bl keyword, part of the test following the
+ i\bif\bf or e\bel\bli\bif\bf reserved words, part of any command executed
+ in a &\b&&\b& or |\b||\b| list except the command following the
+ final &\b&&\b& or |\b||\b|, any command in a pipeline but the last,
+ or if the command's return value is being inverted with
+ !\b!. If a compound command other than a subshell returns
+ a non-zero status because a command failed while -\b-e\be was
+ being ignored, the shell does not exit. A trap on E\bER\bRR\bR,
if set, is executed before the shell exits. This option
applies to the shell environment and each subshell envi-
- ronment separately (see C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
+ ronment separately (see C\bCO\bOM\bMM\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT
above), and may cause subshells to exit before executing
all the commands in the subshell.
-\b-f\bf Disable pathname expansion.
- -\b-h\bh Remember the location of commands as they are looked up
+ -\b-h\bh Remember the location of commands as they are looked up
for execution. This is enabled by default.
- -\b-k\bk All arguments in the form of assignment statements are
- placed in the environment for a command, not just those
+ -\b-k\bk All arguments in the form of assignment statements are
+ placed in the environment for a command, not just those
that precede the command name.
- -\b-m\bm Monitor mode. Job control is enabled. This option is
- on by default for interactive shells on systems that
- support it (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL above). All processes run
+ -\b-m\bm Monitor mode. Job control is enabled. This option is
+ on by default for interactive shells on systems that
+ support it (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL above). All processes run
in a separate process group. When a background job com-
pletes, the shell prints a line containing its exit sta-
tus.
-\b-n\bn Read commands but do not execute them. This may be used
- to check a shell script for syntax errors. This is
+ to check a shell script for syntax errors. This is
ignored by interactive shells.
-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be
The _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be can be one of the following:
Same as -\b-a\ba.
b\bbr\bra\bac\bce\bee\bex\bxp\bpa\ban\bnd\bd
Same as -\b-B\bB.
- e\bem\bma\bac\bcs\bs Use an emacs-style command line editing inter-
+ e\bem\bma\bac\bcs\bs Use an emacs-style command line editing inter-
face. This is enabled by default when the shell
is interactive, unless the shell is started with
- the -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option. This also affects the
+ the -\b--\b-n\bno\boe\bed\bdi\bit\bti\bin\bng\bg option. This also affects the
editing interface used for r\bre\bea\bad\bd -\b-e\be.
e\ber\brr\bre\bex\bxi\bit\bt Same as -\b-e\be.
e\ber\brr\brt\btr\bra\bac\bce\be
H\bHI\bIS\bST\bTO\bOR\bRY\bY. This option is on by default in inter-
active shells.
i\big\bgn\bno\bor\bre\bee\beo\bof\bf
- The effect is as if the shell command
- ``IGNOREEOF=10'' had been executed (see S\bSh\bhe\bel\bll\bl
+ The effect is as if the shell command
+ ``IGNOREEOF=10'' had been executed (see S\bSh\bhe\bel\bll\bl
V\bVa\bar\bri\bia\bab\bbl\ble\bes\bs above).
k\bke\bey\byw\bwo\bor\brd\bd Same as -\b-k\bk.
m\bmo\bon\bni\bit\bto\bor\br Same as -\b-m\bm.
p\bph\bhy\bys\bsi\bic\bca\bal\bl
Same as -\b-P\bP.
p\bpi\bip\bpe\bef\bfa\bai\bil\bl
- If set, the return value of a pipeline is the
- value of the last (rightmost) command to exit
- with a non-zero status, or zero if all commands
- in the pipeline exit successfully. This option
+ If set, the return value of a pipeline is the
+ value of the last (rightmost) command to exit
+ with a non-zero status, or zero if all commands
+ in the pipeline exit successfully. This option
is disabled by default.
- p\bpo\bos\bsi\bix\bx Change the behavior of b\bba\bas\bsh\bh where the default
- operation differs from the POSIX standard to
+ p\bpo\bos\bsi\bix\bx Change the behavior of b\bba\bas\bsh\bh where the default
+ operation differs from the POSIX standard to
match the standard (_\bp_\bo_\bs_\bi_\bx _\bm_\bo_\bd_\be).
p\bpr\bri\biv\bvi\bil\ble\beg\bge\bed\bd
Same as -\b-p\bp.
v\bve\ber\brb\bbo\bos\bse\be Same as -\b-v\bv.
- v\bvi\bi Use a vi-style command line editing interface.
+ v\bvi\bi Use a vi-style command line editing interface.
This also affects the editing interface used for
r\bre\bea\bad\bd -\b-e\be.
x\bxt\btr\bra\bac\bce\be Same as -\b-x\bx.
If -\b-o\bo is supplied with no _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, the values of the
- current options are printed. If +\b+o\bo is supplied with no
- _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, a series of s\bse\bet\bt commands to recreate the
- current option settings is displayed on the standard
+ current options are printed. If +\b+o\bo is supplied with no
+ _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be, a series of s\bse\bet\bt commands to recreate the
+ current option settings is displayed on the standard
output.
- -\b-p\bp Turn on _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd mode. In this mode, the $\b$E\bEN\bNV\bV and
- $\b$B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV files are not processed, shell functions are
- not inherited from the environment, and the S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS,
- B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS, C\bCD\bDP\bPA\bAT\bTH\bH, and G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE variables, if they
+ -\b-p\bp Turn on _\bp_\br_\bi_\bv_\bi_\bl_\be_\bg_\be_\bd mode. In this mode, the $\b$E\bEN\bNV\bV and
+ $\b$B\bBA\bAS\bSH\bH_\b_E\bEN\bNV\bV files are not processed, shell functions are
+ not inherited from the environment, and the S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS,
+ B\bBA\bAS\bSH\bHO\bOP\bPT\bTS\bS, C\bCD\bDP\bPA\bAT\bTH\bH, and G\bGL\bLO\bOB\bBI\bIG\bGN\bNO\bOR\bRE\bE variables, if they
appear in the environment, are ignored. If the shell is
- started with the effective user (group) id not equal to
- the real user (group) id, and the -\b-p\bp option is not sup-
+ started with the effective user (group) id not equal to
+ the real user (group) id, and the -\b-p\bp option is not sup-
plied, these actions are taken and the effective user id
- is set to the real user id. If the -\b-p\bp option is sup-
- plied at startup, the effective user id is not reset.
- Turning this option off causes the effective user and
+ is set to the real user id. If the -\b-p\bp option is sup-
+ plied at startup, the effective user id is not reset.
+ Turning this option off causes the effective user and
group ids to be set to the real user and group ids.
-\b-t\bt Exit after reading and executing one command.
-\b-u\bu Treat unset variables and parameters other than the spe-
- cial parameters "@" and "*" as an error when performing
- parameter expansion. If expansion is attempted on an
- unset variable or parameter, the shell prints an error
- message, and, if not interactive, exits with a non-zero
+ cial parameters "@" and "*" as an error when performing
+ parameter expansion. If expansion is attempted on an
+ unset variable or parameter, the shell prints an error
+ message, and, if not interactive, exits with a non-zero
status.
-\b-v\bv Print shell input lines as they are read.
- -\b-x\bx After expanding each _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, f\bfo\bor\br command, c\bca\bas\bse\be
+ -\b-x\bx After expanding each _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, f\bfo\bor\br command, c\bca\bas\bse\be
command, s\bse\bel\ble\bec\bct\bt command, or arithmetic f\bfo\bor\br command, dis-
- play the expanded value of P\bPS\bS4\b4, followed by the command
+ play the expanded value of P\bPS\bS4\b4, followed by the command
and its expanded arguments or associated word list.
- -\b-B\bB The shell performs brace expansion (see B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
+ -\b-B\bB The shell performs brace expansion (see B\bBr\bra\bac\bce\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn
above). This is on by default.
- -\b-C\bC If set, b\bba\bas\bsh\bh does not overwrite an existing file with
- the >\b>, >\b>&\b&, and <\b<>\b> redirection operators. This may be
+ -\b-C\bC If set, b\bba\bas\bsh\bh does not overwrite an existing file with
+ the >\b>, >\b>&\b&, and <\b<>\b> redirection operators. This may be
overridden when creating output files by using the redi-
rection operator >\b>|\b| instead of >\b>.
-\b-E\bE If set, any trap on E\bER\bRR\bR is inherited by shell functions,
- command substitutions, and commands executed in a sub-
- shell environment. The E\bER\bRR\bR trap is normally not inher-
+ command substitutions, and commands executed in a sub-
+ shell environment. The E\bER\bRR\bR trap is normally not inher-
ited in such cases.
-\b-H\bH Enable !\b! style history substitution. This option is on
by default when the shell is interactive.
- -\b-P\bP If set, the shell does not follow symbolic links when
- executing commands such as c\bcd\bd that change the current
+ -\b-P\bP If set, the shell does not follow symbolic links when
+ executing commands such as c\bcd\bd that change the current
working directory. It uses the physical directory
structure instead. By default, b\bba\bas\bsh\bh follows the logical
- chain of directories when performing commands which
+ chain of directories when performing commands which
change the current directory.
- -\b-T\bT If set, any traps on D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN are inherited by
- shell functions, command substitutions, and commands
- executed in a subshell environment. The D\bDE\bEB\bBU\bUG\bG and
+ -\b-T\bT If set, any traps on D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN are inherited by
+ shell functions, command substitutions, and commands
+ executed in a subshell environment. The D\bDE\bEB\bBU\bUG\bG and
R\bRE\bET\bTU\bUR\bRN\bN traps are normally not inherited in such cases.
- -\b--\b- If no arguments follow this option, then the positional
+ -\b--\b- If no arguments follow this option, then the positional
parameters are unset. Otherwise, the positional parame-
- ters are set to the _\ba_\br_\bgs, even if some of them begin
+ ters are set to the _\ba_\br_\bgs, even if some of them begin
with a -\b-.
- -\b- Signal the end of options, cause all remaining _\ba_\br_\bgs to
+ -\b- Signal the end of options, cause all remaining _\ba_\br_\bgs to
be assigned to the positional parameters. The -\b-x\bx and -\b-v\bv
options are turned off. If there are no _\ba_\br_\bgs, the posi-
tional parameters remain unchanged.
- The options are off by default unless otherwise noted. Using +
- rather than - causes these options to be turned off. The
- options can also be specified as arguments to an invocation of
- the shell. The current set of options may be found in $\b$-\b-. The
+ The options are off by default unless otherwise noted. Using +
+ rather than - causes these options to be turned off. The
+ options can also be specified as arguments to an invocation of
+ the shell. The current set of options may be found in $\b$-\b-. The
return status is always true unless an invalid option is encoun-
tered.
s\bsh\bhi\bif\bft\bt [_\bn]
- The positional parameters from _\bn+1 ... are renamed to $\b$1\b1 .\b..\b..\b..\b.
- Parameters represented by the numbers $\b$#\b# down to $\b$#\b#-_\bn+1 are
- unset. _\bn must be a non-negative number less than or equal to
- $\b$#\b#. If _\bn is 0, no parameters are changed. If _\bn is not given,
- it is assumed to be 1. If _\bn is greater than $\b$#\b#, the positional
- parameters are not changed. The return status is greater than
+ The positional parameters from _\bn+1 ... are renamed to $\b$1\b1 .\b..\b..\b..\b.
+ Parameters represented by the numbers $\b$#\b# down to $\b$#\b#-_\bn+1 are
+ unset. _\bn must be a non-negative number less than or equal to
+ $\b$#\b#. If _\bn is 0, no parameters are changed. If _\bn is not given,
+ it is assumed to be 1. If _\bn is greater than $\b$#\b#, the positional
+ parameters are not changed. The return status is greater than
zero if _\bn is greater than $\b$#\b# or less than zero; otherwise 0.
s\bsh\bho\bop\bpt\bt [-\b-p\bpq\bqs\bsu\bu] [-\b-o\bo] [_\bo_\bp_\bt_\bn_\ba_\bm_\be ...]
Toggle the values of variables controlling optional shell behav-
ior. With no options, or with the -\b-p\bp option, a list of all set-
table options is displayed, with an indication of whether or not
- each is set. The -\b-p\bp option causes output to be displayed in a
- form that may be reused as input. Other options have the fol-
+ each is set. The -\b-p\bp option causes output to be displayed in a
+ form that may be reused as input. Other options have the fol-
lowing meanings:
-\b-s\bs Enable (set) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
-\b-u\bu Disable (unset) each _\bo_\bp_\bt_\bn_\ba_\bm_\be.
- -\b-q\bq Suppresses normal output (quiet mode); the return status
+ -\b-q\bq Suppresses normal output (quiet mode); the return status
indicates whether the _\bo_\bp_\bt_\bn_\ba_\bm_\be is set or unset. If multi-
- ple _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments are given with -\b-q\bq, the return sta-
- tus is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are enabled; non-zero other-
+ ple _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments are given with -\b-q\bq, the return sta-
+ tus is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs are enabled; non-zero other-
wise.
- -\b-o\bo Restricts the values of _\bo_\bp_\bt_\bn_\ba_\bm_\be to be those defined for
+ -\b-o\bo Restricts the values of _\bo_\bp_\bt_\bn_\ba_\bm_\be to be those defined for
the -\b-o\bo option to the s\bse\bet\bt builtin.
- If either -\b-s\bs or -\b-u\bu is used with no _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments, s\bsh\bho\bop\bpt\bt
- shows only those options which are set or unset, respectively.
- Unless otherwise noted, the s\bsh\bho\bop\bpt\bt options are disabled (unset)
+ If either -\b-s\bs or -\b-u\bu is used with no _\bo_\bp_\bt_\bn_\ba_\bm_\be arguments, s\bsh\bho\bop\bpt\bt
+ shows only those options which are set or unset, respectively.
+ Unless otherwise noted, the s\bsh\bho\bop\bpt\bt options are disabled (unset)
by default.
- The return status when listing options is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs
- are enabled, non-zero otherwise. When setting or unsetting
- options, the return status is zero unless an _\bo_\bp_\bt_\bn_\ba_\bm_\be is not a
+ The return status when listing options is zero if all _\bo_\bp_\bt_\bn_\ba_\bm_\be_\bs
+ are enabled, non-zero otherwise. When setting or unsetting
+ options, the return status is zero unless an _\bo_\bp_\bt_\bn_\ba_\bm_\be is not a
valid shell option.
The list of s\bsh\bho\bop\bpt\bt options is:
- a\bau\but\bto\boc\bcd\bd If set, a command name that is the name of a directory
- is executed as if it were the argument to the c\bcd\bd com-
+ a\bau\but\bto\boc\bcd\bd If set, a command name that is the name of a directory
+ is executed as if it were the argument to the c\bcd\bd com-
mand. This option is only used by interactive shells.
c\bcd\bda\bab\bbl\ble\be_\b_v\bva\bar\brs\bs
- If set, an argument to the c\bcd\bd builtin command that is
- not a directory is assumed to be the name of a variable
+ If set, an argument to the c\bcd\bd builtin command that is
+ not a directory is assumed to be the name of a variable
whose value is the directory to change to.
c\bcd\bds\bsp\bpe\bel\bll\bl If set, minor errors in the spelling of a directory com-
- ponent in a c\bcd\bd command will be corrected. The errors
+ ponent in a c\bcd\bd command will be corrected. The errors
checked for are transposed characters, a missing charac-
- ter, and one character too many. If a correction is
- found, the corrected filename is printed, and the com-
- mand proceeds. This option is only used by interactive
+ ter, and one character too many. If a correction is
+ found, the corrected filename is printed, and the com-
+ mand proceeds. This option is only used by interactive
shells.
c\bch\bhe\bec\bck\bkh\bha\bas\bsh\bh
If set, b\bba\bas\bsh\bh checks that a command found in the hash ta-
- ble exists before trying to execute it. If a hashed
- command no longer exists, a normal path search is per-
+ ble exists before trying to execute it. If a hashed
+ command no longer exists, a normal path search is per-
formed.
c\bch\bhe\bec\bck\bkj\bjo\bob\bbs\bs
If set, b\bba\bas\bsh\bh lists the status of any stopped and running
- jobs before exiting an interactive shell. If any jobs
+ jobs before exiting an interactive shell. If any jobs
are running, this causes the exit to be deferred until a
- second exit is attempted without an intervening command
- (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL above). The shell always postpones
+ second exit is attempted without an intervening command
+ (see J\bJO\bOB\bB C\bCO\bON\bNT\bTR\bRO\bOL\bL above). The shell always postpones
exiting if any jobs are stopped.
c\bch\bhe\bec\bck\bkw\bwi\bin\bns\bsi\biz\bze\be
- If set, b\bba\bas\bsh\bh checks the window size after each command
- and, if necessary, updates the values of L\bLI\bIN\bNE\bES\bS and C\bCO\bOL\bL-\b-
+ If set, b\bba\bas\bsh\bh checks the window size after each command
+ and, if necessary, updates the values of L\bLI\bIN\bNE\bES\bS and C\bCO\bOL\bL-\b-
U\bUM\bMN\bNS\bS.
- c\bcm\bmd\bdh\bhi\bis\bst\bt If set, b\bba\bas\bsh\bh attempts to save all lines of a multiple-
- line command in the same history entry. This allows
+ c\bcm\bmd\bdh\bhi\bis\bst\bt If set, b\bba\bas\bsh\bh attempts to save all lines of a multiple-
+ line command in the same history entry. This allows
easy re-editing of multi-line commands.
c\bco\bom\bmp\bpa\bat\bt3\b31\b1
If set, b\bba\bas\bsh\bh changes its behavior to that of version 3.1
- with respect to quoted arguments to the [\b[[\b[ conditional
+ with respect to quoted arguments to the [\b[[\b[ conditional
command's =\b=~\b~ operator.
c\bco\bom\bmp\bpa\bat\bt3\b32\b2
If set, b\bba\bas\bsh\bh changes its behavior to that of version 3.2
- with respect to locale-specific string comparison when
- using the [\b[[\b[ conditional command's <\b< and >\b> operators.
- Bash versions prior to bash-4.1 use ASCII collation and
- _\bs_\bt_\br_\bc_\bm_\bp(3); bash-4.1 and later use the current locale's
+ with respect to locale-specific string comparison when
+ using the [\b[[\b[ conditional command's <\b< and >\b> operators.
+ Bash versions prior to bash-4.1 use ASCII collation and
+ _\bs_\bt_\br_\bc_\bm_\bp(3); bash-4.1 and later use the current locale's
collation sequence and _\bs_\bt_\br_\bc_\bo_\bl_\bl(3).
c\bco\bom\bmp\bpa\bat\bt4\b40\b0
If set, b\bba\bas\bsh\bh changes its behavior to that of version 4.0
- with respect to locale-specific string comparison when
- using the [\b[[\b[ conditional command's <\b< and >\b> operators
- (see previous item) and the effect of interrupting a
+ with respect to locale-specific string comparison when
+ using the [\b[[\b[ conditional command's <\b< and >\b> operators
+ (see previous item) and the effect of interrupting a
command list.
c\bco\bom\bmp\bpa\bat\bt4\b41\b1
- If set, b\bba\bas\bsh\bh, when in posix mode, treats a single quote
- in a double-quoted parameter expansion as a special
- character. The single quotes must match (an even num-
- ber) and the characters between the single quotes are
- considered quoted. This is the behavior of posix mode
- through version 4.1. The default bash behavior remains
+ If set, b\bba\bas\bsh\bh, when in posix mode, treats a single quote
+ in a double-quoted parameter expansion as a special
+ character. The single quotes must match (an even num-
+ ber) and the characters between the single quotes are
+ considered quoted. This is the behavior of posix mode
+ through version 4.1. The default bash behavior remains
as in previous versions.
c\bco\bom\bmp\bpl\ble\bet\bte\be_\b_f\bfu\bul\bll\blq\bqu\buo\bot\bte\be
- If set, b\bba\bas\bsh\bh quotes all shell metacharacters in file-
- names and directory names when performing completion.
+ If set, b\bba\bas\bsh\bh quotes all shell metacharacters in file-
+ names and directory names when performing completion.
If not set, b\bba\bas\bsh\bh removes metacharacters such as the dol-
- lar sign from the set of characters that will be quoted
- in completed filenames when these metacharacters appear
- in shell variable references in words to be completed.
- This means that dollar signs in variable names that
- expand to directories will not be quoted; however, any
- dollar signs appearing in filenames will not be quoted,
- either. This is active only when bash is using back-
- slashes to quote completed filenames. This variable is
- set by default, which is the default bash behavior in
+ lar sign from the set of characters that will be quoted
+ in completed filenames when these metacharacters appear
+ in shell variable references in words to be completed.
+ This means that dollar signs in variable names that
+ expand to directories will not be quoted; however, any
+ dollar signs appearing in filenames will not be quoted,
+ either. This is active only when bash is using back-
+ slashes to quote completed filenames. This variable is
+ set by default, which is the default bash behavior in
versions through 4.2.
d\bdi\bir\bre\bex\bxp\bpa\ban\bnd\bd
- If set, b\bba\bas\bsh\bh replaces directory names with the results
- of word expansion when performing filename completion.
+ If set, b\bba\bas\bsh\bh replaces directory names with the results
+ of word expansion when performing filename completion.
This changes the contents of the readline editing
- buffer. If not set, b\bba\bas\bsh\bh attempts to preserve what the
+ buffer. If not set, b\bba\bas\bsh\bh attempts to preserve what the
user typed.
d\bdi\bir\brs\bsp\bpe\bel\bll\bl
- If set, b\bba\bas\bsh\bh attempts spelling correction on directory
- names during word completion if the directory name ini-
+ If set, b\bba\bas\bsh\bh attempts spelling correction on directory
+ names during word completion if the directory name ini-
tially supplied does not exist.
- d\bdo\bot\btg\bgl\blo\bob\bb If set, b\bba\bas\bsh\bh includes filenames beginning with a `.' in
+ d\bdo\bot\btg\bgl\blo\bob\bb If set, b\bba\bas\bsh\bh includes filenames beginning with a `.' in
the results of pathname expansion.
e\bex\bxe\bec\bcf\bfa\bai\bil\bl
If set, a non-interactive shell will not exit if it can-
- not execute the file specified as an argument to the
- e\bex\bxe\bec\bc builtin command. An interactive shell does not
+ not execute the file specified as an argument to the
+ e\bex\bxe\bec\bc builtin command. An interactive shell does not
exit if e\bex\bxe\bec\bc fails.
e\bex\bxp\bpa\ban\bnd\bd_\b_a\bal\bli\bia\bas\bse\bes\bs
- If set, aliases are expanded as described above under
+ If set, aliases are expanded as described above under
A\bAL\bLI\bIA\bAS\bSE\bES\bS. This option is enabled by default for interac-
tive shells.
e\bex\bxt\btd\bde\beb\bbu\bug\bg
- If set, behavior intended for use by debuggers is
+ If set, behavior intended for use by debuggers is
enabled:
1\b1.\b. The -\b-F\bF option to the d\bde\bec\bcl\bla\bar\bre\be builtin displays the
source file name and line number corresponding to
each function name supplied as an argument.
- 2\b2.\b. If the command run by the D\bDE\bEB\bBU\bUG\bG trap returns a
- non-zero value, the next command is skipped and
+ 2\b2.\b. If the command run by the D\bDE\bEB\bBU\bUG\bG trap returns a
+ non-zero value, the next command is skipped and
not executed.
- 3\b3.\b. If the command run by the D\bDE\bEB\bBU\bUG\bG trap returns a
- value of 2, and the shell is executing in a sub-
- routine (a shell function or a shell script exe-
- cuted by the .\b. or s\bso\bou\bur\brc\bce\be builtins), a call to
+ 3\b3.\b. If the command run by the D\bDE\bEB\bBU\bUG\bG trap returns a
+ value of 2, and the shell is executing in a sub-
+ routine (a shell function or a shell script exe-
+ cuted by the .\b. or s\bso\bou\bur\brc\bce\be builtins), a call to
r\bre\bet\btu\bur\brn\bn is simulated.
- 4\b4.\b. B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC and B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as described
+ 4\b4.\b. B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGC\bC and B\bBA\bAS\bSH\bH_\b_A\bAR\bRG\bGV\bV are updated as described
in their descriptions above.
- 5\b5.\b. Function tracing is enabled: command substitu-
+ 5\b5.\b. Function tracing is enabled: command substitu-
tion, shell functions, and subshells invoked with
(\b( _\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the D\bDE\bEB\bBU\bUG\bG and R\bRE\bET\bTU\bUR\bRN\bN traps.
- 6\b6.\b. Error tracing is enabled: command substitution,
- shell functions, and subshells invoked with (\b(
+ 6\b6.\b. Error tracing is enabled: command substitution,
+ shell functions, and subshells invoked with (\b(
_\bc_\bo_\bm_\bm_\ba_\bn_\bd )\b) inherit the E\bER\bRR\bR trap.
e\bex\bxt\btg\bgl\blo\bob\bb If set, the extended pattern matching features described
above under P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn are enabled.
e\bex\bxt\btq\bqu\buo\bot\bte\be
- If set, $\b$'_\bs_\bt_\br_\bi_\bn_\bg' and $\b$"_\bs_\bt_\br_\bi_\bn_\bg" quoting is performed
- within $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b} expansions enclosed in double
+ If set, $\b$'_\bs_\bt_\br_\bi_\bn_\bg' and $\b$"_\bs_\bt_\br_\bi_\bn_\bg" quoting is performed
+ within $\b${\b{_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br}\b} expansions enclosed in double
quotes. This option is enabled by default.
f\bfa\bai\bil\blg\bgl\blo\bob\bb
- If set, patterns which fail to match filenames during
+ If set, patterns which fail to match filenames during
pathname expansion result in an expansion error.
f\bfo\bor\brc\bce\be_\b_f\bfi\big\bgn\bno\bor\bre\be
- If set, the suffixes specified by the F\bFI\bIG\bGN\bNO\bOR\bRE\bE shell
- variable cause words to be ignored when performing word
+ If set, the suffixes specified by the F\bFI\bIG\bGN\bNO\bOR\bRE\bE shell
+ variable cause words to be ignored when performing word
completion even if the ignored words are the only possi-
ble completions. See S\bSH\bHE\bEL\bLL\bL V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS above for a
- description of F\bFI\bIG\bGN\bNO\bOR\bRE\bE. This option is enabled by
+ description of F\bFI\bIG\bGN\bNO\bOR\bRE\bE. This option is enabled by
default.
g\bgl\blo\bob\bba\bas\bsc\bci\bii\bir\bra\ban\bng\bge\bes\bs
- If set, range expressions used in pattern matching (see
- P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg above) behave as if in the traditional
+ If set, range expressions used in pattern matching (see
+ P\bPa\bat\btt\bte\ber\brn\bn M\bMa\bat\btc\bch\bhi\bin\bng\bg above) behave as if in the traditional
C locale when performing comparisons. That is, the cur-
- rent locale's collating sequence is not taken into
- account, so b\bb will not collate between A\bA and B\bB, and
- upper-case and lower-case ASCII characters will collate
+ rent locale's collating sequence is not taken into
+ account, so b\bb will not collate between A\bA and B\bB, and
+ upper-case and lower-case ASCII characters will collate
together.
g\bgl\blo\bob\bbs\bst\bta\bar\br
If set, the pattern *\b**\b* used in a pathname expansion con-
- text will match all files and zero or more directories
- and subdirectories. If the pattern is followed by a /\b/,
+ text will match all files and zero or more directories
+ and subdirectories. If the pattern is followed by a /\b/,
only directories and subdirectories match.
g\bgn\bnu\bu_\b_e\ber\brr\brf\bfm\bmt\bt
If set, shell error messages are written in the standard
GNU error message format.
h\bhi\bis\bst\bta\bap\bpp\bpe\ben\bnd\bd
- If set, the history list is appended to the file named
- by the value of the H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE variable when the shell
+ If set, the history list is appended to the file named
+ by the value of the H\bHI\bIS\bST\bTF\bFI\bIL\bLE\bE variable when the shell
exits, rather than overwriting the file.
h\bhi\bis\bst\btr\bre\bee\bed\bdi\bit\bt
- If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, a user is given the
+ If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, a user is given the
opportunity to re-edit a failed history substitution.
h\bhi\bis\bst\btv\bve\ber\bri\bif\bfy\by
- If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, the results of his-
- tory substitution are not immediately passed to the
- shell parser. Instead, the resulting line is loaded
+ If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, the results of his-
+ tory substitution are not immediately passed to the
+ shell parser. Instead, the resulting line is loaded
into the r\bre\bea\bad\bdl\bli\bin\bne\be editing buffer, allowing further modi-
fication.
h\bho\bos\bst\btc\bco\bom\bmp\bpl\ble\bet\bte\be
If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, b\bba\bas\bsh\bh will attempt to
- perform hostname completion when a word containing a @\b@
- is being completed (see C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg under R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
+ perform hostname completion when a word containing a @\b@
+ is being completed (see C\bCo\bom\bmp\bpl\ble\bet\bti\bin\bng\bg under R\bRE\bEA\bAD\bDL\bLI\bIN\bNE\bE
above). This is enabled by default.
h\bhu\bup\bpo\bon\bne\bex\bxi\bit\bt
If set, b\bba\bas\bsh\bh will send S\bSI\bIG\bGH\bHU\bUP\bP to all jobs when an inter-
active login shell exits.
i\bin\bnt\bte\ber\bra\bac\bct\bti\biv\bve\be_\b_c\bco\bom\bmm\bme\ben\bnt\bts\bs
If set, allow a word beginning with #\b# to cause that word
- and all remaining characters on that line to be ignored
- in an interactive shell (see C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS above). This
+ and all remaining characters on that line to be ignored
+ in an interactive shell (see C\bCO\bOM\bMM\bME\bEN\bNT\bTS\bS above). This
option is enabled by default.
l\bla\bas\bst\btp\bpi\bip\bpe\be
- If set, and job control is not active, the shell runs
+ If set, and job control is not active, the shell runs
the last command of a pipeline not executed in the back-
ground in the current shell environment.
- l\bli\bit\bth\bhi\bis\bst\bt If set, and the c\bcm\bmd\bdh\bhi\bis\bst\bt option is enabled, multi-line
+ l\bli\bit\bth\bhi\bis\bst\bt If set, and the c\bcm\bmd\bdh\bhi\bis\bst\bt option is enabled, multi-line
commands are saved to the history with embedded newlines
rather than using semicolon separators where possible.
l\blo\bog\bgi\bin\bn_\b_s\bsh\bhe\bel\bll\bl
- The shell sets this option if it is started as a login
- shell (see I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN above). The value may not be
+ The shell sets this option if it is started as a login
+ shell (see I\bIN\bNV\bVO\bOC\bCA\bAT\bTI\bIO\bON\bN above). The value may not be
changed.
m\bma\bai\bil\blw\bwa\bar\brn\bn
- If set, and a file that b\bba\bas\bsh\bh is checking for mail has
- been accessed since the last time it was checked, the
- message ``The mail in _\bm_\ba_\bi_\bl_\bf_\bi_\bl_\be has been read'' is dis-
+ If set, and a file that b\bba\bas\bsh\bh is checking for mail has
+ been accessed since the last time it was checked, the
+ message ``The mail in _\bm_\ba_\bi_\bl_\bf_\bi_\bl_\be has been read'' is dis-
played.
n\bno\bo_\b_e\bem\bmp\bpt\bty\by_\b_c\bcm\bmd\bd_\b_c\bco\bom\bmp\bpl\ble\bet\bti\bio\bon\bn
- If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, b\bba\bas\bsh\bh will not
+ If set, and r\bre\bea\bad\bdl\bli\bin\bne\be is being used, b\bba\bas\bsh\bh will not
attempt to search the P\bPA\bAT\bTH\bH for possible completions when
completion is attempted on an empty line.
n\bno\boc\bca\bas\bse\beg\bgl\blo\bob\bb
- If set, b\bba\bas\bsh\bh matches filenames in a case-insensitive
+ If set, b\bba\bas\bsh\bh matches filenames in a case-insensitive
fashion when performing pathname expansion (see P\bPa\bat\bth\bhn\bna\bam\bme\be
E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above).
n\bno\boc\bca\bas\bse\bem\bma\bat\btc\bch\bh
- If set, b\bba\bas\bsh\bh matches patterns in a case-insensitive
+ If set, b\bba\bas\bsh\bh matches patterns in a case-insensitive
fashion when performing matching while executing c\bca\bas\bse\be or
[\b[[\b[ conditional commands.
n\bnu\bul\bll\blg\bgl\blo\bob\bb
- If set, b\bba\bas\bsh\bh allows patterns which match no files (see
- P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above) to expand to a null string,
+ If set, b\bba\bas\bsh\bh allows patterns which match no files (see
+ P\bPa\bat\bth\bhn\bna\bam\bme\be E\bEx\bxp\bpa\ban\bns\bsi\bio\bon\bn above) to expand to a null string,
rather than themselves.
p\bpr\bro\bog\bgc\bco\bom\bmp\bp
If set, the programmable completion facilities (see P\bPr\bro\bo-\b-
enabled by default.
p\bpr\bro\bom\bmp\bpt\btv\bva\bar\brs\bs
If set, prompt strings undergo parameter expansion, com-
- mand substitution, arithmetic expansion, and quote
- removal after being expanded as described in P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
+ mand substitution, arithmetic expansion, and quote
+ removal after being expanded as described in P\bPR\bRO\bOM\bMP\bPT\bTI\bIN\bNG\bG
above. This option is enabled by default.
r\bre\bes\bst\btr\bri\bic\bct\bte\bed\bd_\b_s\bsh\bhe\bel\bll\bl
- The shell sets this option if it is started in
+ The shell sets this option if it is started in
restricted mode (see R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL below). The value
- may not be changed. This is not reset when the startup
- files are executed, allowing the startup files to dis-
+ may not be changed. This is not reset when the startup
+ files are executed, allowing the startup files to dis-
cover whether or not a shell is restricted.
s\bsh\bhi\bif\bft\bt_\b_v\bve\ber\brb\bbo\bos\bse\be
- If set, the s\bsh\bhi\bif\bft\bt builtin prints an error message when
+ If set, the s\bsh\bhi\bif\bft\bt builtin prints an error message when
the shift count exceeds the number of positional parame-
ters.
s\bso\bou\bur\brc\bce\bep\bpa\bat\bth\bh
If set, the s\bso\bou\bur\brc\bce\be (.\b.) builtin uses the value of P\bPA\bAT\bTH\bH to
- find the directory containing the file supplied as an
+ find the directory containing the file supplied as an
argument. This option is enabled by default.
x\bxp\bpg\bg_\b_e\bec\bch\bho\bo
- If set, the e\bec\bch\bho\bo builtin expands backslash-escape
+ If set, the e\bec\bch\bho\bo builtin expands backslash-escape
sequences by default.
s\bsu\bus\bsp\bpe\ben\bnd\bd [-\b-f\bf]
- Suspend the execution of this shell until it receives a S\bSI\bIG\bGC\bCO\bON\bNT\bT
+ Suspend the execution of this shell until it receives a S\bSI\bIG\bGC\bCO\bON\bNT\bT
signal. A login shell cannot be suspended; the -\b-f\bf option can be
used to override this and force the suspension. The return sta-
- tus is 0 unless the shell is a login shell and -\b-f\bf is not sup-
+ tus is 0 unless the shell is a login shell and -\b-f\bf is not sup-
plied, or if job control is not enabled.
t\bte\bes\bst\bt _\be_\bx_\bp_\br
[\b[ _\be_\bx_\bp_\br ]\b]
Return a status of 0 (true) or 1 (false) depending on the evalu-
ation of the conditional expression _\be_\bx_\bp_\br. Each operator and op-
- erand must be a separate argument. Expressions are composed of
- the primaries described above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.
- t\bte\bes\bst\bt does not accept any options, nor does it accept and ignore
+ erand must be a separate argument. Expressions are composed of
+ the primaries described above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS.
+ t\bte\bes\bst\bt does not accept any options, nor does it accept and ignore
an argument of -\b--\b- as signifying the end of options.
- Expressions may be combined using the following operators,
+ Expressions may be combined using the following operators,
listed in decreasing order of precedence. The evaluation
- depends on the number of arguments; see below. Operator prece-
+ depends on the number of arguments; see below. Operator prece-
dence is used when there are five or more arguments.
!\b! _\be_\bx_\bp_\br True if _\be_\bx_\bp_\br is false.
(\b( _\be_\bx_\bp_\br )\b)
- Returns the value of _\be_\bx_\bp_\br. This may be used to override
+ Returns the value of _\be_\bx_\bp_\br. This may be used to override
the normal precedence of operators.
_\be_\bx_\bp_\br_\b1 -a\ba _\be_\bx_\bp_\br_\b2
True if both _\be_\bx_\bp_\br_\b1 and _\be_\bx_\bp_\br_\b2 are true.
null.
2 arguments
If the first argument is !\b!, the expression is true if and
- only if the second argument is null. If the first argu-
- ment is one of the unary conditional operators listed
- above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the expression is
+ only if the second argument is null. If the first argu-
+ ment is one of the unary conditional operators listed
+ above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the expression is
true if the unary test is true. If the first argument is
not a valid unary conditional operator, the expression is
false.
3 arguments
The following conditions are applied in the order listed.
- If the second argument is one of the binary conditional
+ If the second argument is one of the binary conditional
operators listed above under C\bCO\bON\bND\bDI\bIT\bTI\bIO\bON\bNA\bAL\bL E\bEX\bXP\bPR\bRE\bES\bSS\bSI\bIO\bON\bNS\bS, the
result of the expression is the result of the binary test
- using the first and third arguments as operands. The -\b-a\ba
- and -\b-o\bo operators are considered binary operators when
- there are three arguments. If the first argument is !\b!,
- the value is the negation of the two-argument test using
+ using the first and third arguments as operands. The -\b-a\ba
+ and -\b-o\bo operators are considered binary operators when
+ there are three arguments. If the first argument is !\b!,
+ the value is the negation of the two-argument test using
the second and third arguments. If the first argument is
exactly (\b( and the third argument is exactly )\b), the result
- is the one-argument test of the second argument. Other-
+ is the one-argument test of the second argument. Other-
wise, the expression is false.
4 arguments
If the first argument is !\b!, the result is the negation of
- the three-argument expression composed of the remaining
+ the three-argument expression composed of the remaining
arguments. Otherwise, the expression is parsed and eval-
- uated according to precedence using the rules listed
+ uated according to precedence using the rules listed
above.
5 or more arguments
- The expression is parsed and evaluated according to
+ The expression is parsed and evaluated according to
precedence using the rules listed above.
- When used with t\bte\bes\bst\bt or [\b[, the <\b< and >\b> operators sort lexico-
+ When used with t\bte\bes\bst\bt or [\b[, the <\b< and >\b> operators sort lexico-
graphically using ASCII ordering.
- t\bti\bim\bme\bes\bs Print the accumulated user and system times for the shell and
+ t\bti\bim\bme\bes\bs Print the accumulated user and system times for the shell and
for processes run from the shell. The return status is 0.
t\btr\bra\bap\bp [-\b-l\blp\bp] [[_\ba_\br_\bg] _\bs_\bi_\bg_\bs_\bp_\be_\bc ...]
- The command _\ba_\br_\bg is to be read and executed when the shell
- receives signal(s) _\bs_\bi_\bg_\bs_\bp_\be_\bc. If _\ba_\br_\bg is absent (and there is a
- single _\bs_\bi_\bg_\bs_\bp_\be_\bc) or -\b-, each specified signal is reset to its
- original disposition (the value it had upon entrance to the
- shell). If _\ba_\br_\bg is the null string the signal specified by each
- _\bs_\bi_\bg_\bs_\bp_\be_\bc is ignored by the shell and by the commands it invokes.
- If _\ba_\br_\bg is not present and -\b-p\bp has been supplied, then the trap
- commands associated with each _\bs_\bi_\bg_\bs_\bp_\be_\bc are displayed. If no
- arguments are supplied or if only -\b-p\bp is given, t\btr\bra\bap\bp prints the
- list of commands associated with each signal. The -\b-l\bl option
- causes the shell to print a list of signal names and their cor-
- responding numbers. Each _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a signal name
- defined in <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>, or a signal number. Signal names are
+ The command _\ba_\br_\bg is to be read and executed when the shell
+ receives signal(s) _\bs_\bi_\bg_\bs_\bp_\be_\bc. If _\ba_\br_\bg is absent (and there is a
+ single _\bs_\bi_\bg_\bs_\bp_\be_\bc) or -\b-, each specified signal is reset to its
+ original disposition (the value it had upon entrance to the
+ shell). If _\ba_\br_\bg is the null string the signal specified by each
+ _\bs_\bi_\bg_\bs_\bp_\be_\bc is ignored by the shell and by the commands it invokes.
+ If _\ba_\br_\bg is not present and -\b-p\bp has been supplied, then the trap
+ commands associated with each _\bs_\bi_\bg_\bs_\bp_\be_\bc are displayed. If no
+ arguments are supplied or if only -\b-p\bp is given, t\btr\bra\bap\bp prints the
+ list of commands associated with each signal. The -\b-l\bl option
+ causes the shell to print a list of signal names and their cor-
+ responding numbers. Each _\bs_\bi_\bg_\bs_\bp_\be_\bc is either a signal name
+ defined in <_\bs_\bi_\bg_\bn_\ba_\bl_\b._\bh>, or a signal number. Signal names are
case insensitive and the S\bSI\bIG\bG prefix is optional.
- If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bEX\bXI\bIT\bT (0) the command _\ba_\br_\bg is executed on exit
- from the shell. If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the command _\ba_\br_\bg is exe-
- cuted before every _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br command, _\bc_\ba_\bs_\be command,
- _\bs_\be_\bl_\be_\bc_\bt command, every arithmetic _\bf_\bo_\br command, and before the
- first command executes in a shell function (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
- above). Refer to the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option to the
+ If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bEX\bXI\bIT\bT (0) the command _\ba_\br_\bg is executed on exit
+ from the shell. If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is D\bDE\bEB\bBU\bUG\bG, the command _\ba_\br_\bg is exe-
+ cuted before every _\bs_\bi_\bm_\bp_\bl_\be _\bc_\bo_\bm_\bm_\ba_\bn_\bd, _\bf_\bo_\br command, _\bc_\ba_\bs_\be command,
+ _\bs_\be_\bl_\be_\bc_\bt command, every arithmetic _\bf_\bo_\br command, and before the
+ first command executes in a shell function (see S\bSH\bHE\bEL\bLL\bL G\bGR\bRA\bAM\bMM\bMA\bAR\bR
+ above). Refer to the description of the e\bex\bxt\btd\bde\beb\bbu\bug\bg option to the
s\bsh\bho\bop\bpt\bt builtin for details of its effect on the D\bDE\bEB\bBU\bUG\bG trap. If a
_\bs_\bi_\bg_\bs_\bp_\be_\bc is R\bRE\bET\bTU\bUR\bRN\bN, the command _\ba_\br_\bg is executed each time a shell
function or a script executed with the .\b. or s\bso\bou\bur\brc\bce\be builtins fin-
If a _\bs_\bi_\bg_\bs_\bp_\be_\bc is E\bER\bRR\bR, the command _\ba_\br_\bg is executed whenever a sim-
ple command has a non-zero exit status, subject to the following
- conditions. The E\bER\bRR\bR trap is not executed if the failed command
- is part of the command list immediately following a w\bwh\bhi\bil\ble\be or
- u\bun\bnt\bti\bil\bl keyword, part of the test in an _\bi_\bf statement, part of a
- command executed in a &\b&&\b& or |\b||\b| list, or if the command's return
- value is being inverted via !\b!. These are the same conditions
+ conditions. The E\bER\bRR\bR trap is not executed if the failed command
+ is part of the command list immediately following a w\bwh\bhi\bil\ble\be or
+ u\bun\bnt\bti\bil\bl keyword, part of the test in an _\bi_\bf statement, part of a
+ command executed in a &\b&&\b& or |\b||\b| list, or if the command's return
+ value is being inverted via !\b!. These are the same conditions
obeyed by the e\ber\brr\bre\bex\bxi\bit\bt option.
- Signals ignored upon entry to the shell cannot be trapped or
- reset. Trapped signals that are not being ignored are reset to
+ Signals ignored upon entry to the shell cannot be trapped or
+ reset. Trapped signals that are not being ignored are reset to
their original values in a subshell or subshell environment when
- one is created. The return status is false if any _\bs_\bi_\bg_\bs_\bp_\be_\bc is
+ one is created. The return status is false if any _\bs_\bi_\bg_\bs_\bp_\be_\bc is
invalid; otherwise t\btr\bra\bap\bp returns true.
t\bty\byp\bpe\be [-\b-a\baf\bft\btp\bpP\bP] _\bn_\ba_\bm_\be [_\bn_\ba_\bm_\be ...]
- With no options, indicate how each _\bn_\ba_\bm_\be would be interpreted if
+ With no options, indicate how each _\bn_\ba_\bm_\be would be interpreted if
used as a command name. If the -\b-t\bt option is used, t\bty\byp\bpe\be prints a
- string which is one of _\ba_\bl_\bi_\ba_\bs, _\bk_\be_\by_\bw_\bo_\br_\bd, _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn, _\bb_\bu_\bi_\bl_\bt_\bi_\bn, or
- _\bf_\bi_\bl_\be if _\bn_\ba_\bm_\be is an alias, shell reserved word, function,
- builtin, or disk file, respectively. If the _\bn_\ba_\bm_\be is not found,
- then nothing is printed, and an exit status of false is
- returned. If the -\b-p\bp option is used, t\bty\byp\bpe\be either returns the
+ string which is one of _\ba_\bl_\bi_\ba_\bs, _\bk_\be_\by_\bw_\bo_\br_\bd, _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn, _\bb_\bu_\bi_\bl_\bt_\bi_\bn, or
+ _\bf_\bi_\bl_\be if _\bn_\ba_\bm_\be is an alias, shell reserved word, function,
+ builtin, or disk file, respectively. If the _\bn_\ba_\bm_\be is not found,
+ then nothing is printed, and an exit status of false is
+ returned. If the -\b-p\bp option is used, t\bty\byp\bpe\be either returns the
name of the disk file that would be executed if _\bn_\ba_\bm_\be were speci-
fied as a command name, or nothing if ``type -t name'' would not
- return _\bf_\bi_\bl_\be. The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each _\bn_\ba_\bm_\be,
+ return _\bf_\bi_\bl_\be. The -\b-P\bP option forces a P\bPA\bAT\bTH\bH search for each _\bn_\ba_\bm_\be,
even if ``type -t name'' would not return _\bf_\bi_\bl_\be. If a command is
hashed, -\b-p\bp and -\b-P\bP print the hashed value, which is not necessar-
- ily the file that appears first in P\bPA\bAT\bTH\bH. If the -\b-a\ba option is
- used, t\bty\byp\bpe\be prints all of the places that contain an executable
+ ily the file that appears first in P\bPA\bAT\bTH\bH. If the -\b-a\ba option is
+ used, t\bty\byp\bpe\be prints all of the places that contain an executable
named _\bn_\ba_\bm_\be. This includes aliases and functions, if and only if
the -\b-p\bp option is not also used. The table of hashed commands is
- not consulted when using -\b-a\ba. The -\b-f\bf option suppresses shell
+ not consulted when using -\b-a\ba. The -\b-f\bf option suppresses shell
function lookup, as with the c\bco\bom\bmm\bma\ban\bnd\bd builtin. t\bty\byp\bpe\be returns true
if all of the arguments are found, false if any are not found.
u\bul\bli\bim\bmi\bit\bt [-\b-H\bHS\bST\bTa\bab\bbc\bcd\bde\bef\bfi\bil\blm\bmn\bnp\bpq\bqr\brs\bst\btu\buv\bvx\bx [_\bl_\bi_\bm_\bi_\bt]]
- Provides control over the resources available to the shell and
- to processes started by it, on systems that allow such control.
+ Provides control over the resources available to the shell and
+ to processes started by it, on systems that allow such control.
The -\b-H\bH and -\b-S\bS options specify that the hard or soft limit is set
- for the given resource. A hard limit cannot be increased by a
- non-root user once it is set; a soft limit may be increased up
- to the value of the hard limit. If neither -\b-H\bH nor -\b-S\bS is speci-
+ for the given resource. A hard limit cannot be increased by a
+ non-root user once it is set; a soft limit may be increased up
+ to the value of the hard limit. If neither -\b-H\bH nor -\b-S\bS is speci-
fied, both the soft and hard limits are set. The value of _\bl_\bi_\bm_\bi_\bt
can be a number in the unit specified for the resource or one of
the special values h\bha\bar\brd\bd, s\bso\bof\bft\bt, or u\bun\bnl\bli\bim\bmi\bit\bte\bed\bd, which stand for the
- current hard limit, the current soft limit, and no limit,
- respectively. If _\bl_\bi_\bm_\bi_\bt is omitted, the current value of the
- soft limit of the resource is printed, unless the -\b-H\bH option is
+ current hard limit, the current soft limit, and no limit,
+ respectively. If _\bl_\bi_\bm_\bi_\bt is omitted, the current value of the
+ soft limit of the resource is printed, unless the -\b-H\bH option is
given. When more than one resource is specified, the limit name
and unit are printed before the value. Other options are inter-
preted as follows:
-\b-c\bc The maximum size of core files created
-\b-d\bd The maximum size of a process's data segment
-\b-e\be The maximum scheduling priority ("nice")
- -\b-f\bf The maximum size of files written by the shell and its
+ -\b-f\bf The maximum size of files written by the shell and its
children
-\b-i\bi The maximum number of pending signals
-\b-l\bl The maximum size that may be locked into memory
- -\b-m\bm The maximum resident set size (many systems do not honor
+ -\b-m\bm The maximum resident set size (many systems do not honor
this limit)
-\b-n\bn The maximum number of open file descriptors (most systems
do not allow this value to be set)
-\b-r\br The maximum real-time scheduling priority
-\b-s\bs The maximum stack size
-\b-t\bt The maximum amount of cpu time in seconds
- -\b-u\bu The maximum number of processes available to a single
+ -\b-u\bu The maximum number of processes available to a single
user
- -\b-v\bv The maximum amount of virtual memory available to the
+ -\b-v\bv The maximum amount of virtual memory available to the
shell and, on some systems, to its children
-\b-x\bx The maximum number of file locks
-\b-T\bT The maximum number of threads
- If _\bl_\bi_\bm_\bi_\bt is given, and the -\b-a\ba option is not used, _\bl_\bi_\bm_\bi_\bt is the
- new value of the specified resource. If no option is given,
- then -\b-f\bf is assumed. Values are in 1024-byte increments, except
- for -\b-t\bt, which is in seconds; -\b-p\bp, which is in units of 512-byte
- blocks; and -\b-T\bT, -\b-b\bb, -\b-n\bn, and -\b-u\bu, which are unscaled values. The
- return status is 0 unless an invalid option or argument is sup-
+ If _\bl_\bi_\bm_\bi_\bt is given, and the -\b-a\ba option is not used, _\bl_\bi_\bm_\bi_\bt is the
+ new value of the specified resource. If no option is given,
+ then -\b-f\bf is assumed. Values are in 1024-byte increments, except
+ for -\b-t\bt, which is in seconds; -\b-p\bp, which is in units of 512-byte
+ blocks; and -\b-T\bT, -\b-b\bb, -\b-n\bn, and -\b-u\bu, which are unscaled values. The
+ return status is 0 unless an invalid option or argument is sup-
plied, or an error occurs while setting a new limit.
u\bum\bma\bas\bsk\bk [-\b-p\bp] [-\b-S\bS] [_\bm_\bo_\bd_\be]
The user file-creation mask is set to _\bm_\bo_\bd_\be. If _\bm_\bo_\bd_\be begins with
- a digit, it is interpreted as an octal number; otherwise it is
- interpreted as a symbolic mode mask similar to that accepted by
- _\bc_\bh_\bm_\bo_\bd(1). If _\bm_\bo_\bd_\be is omitted, the current value of the mask is
- printed. The -\b-S\bS option causes the mask to be printed in sym-
- bolic form; the default output is an octal number. If the -\b-p\bp
+ a digit, it is interpreted as an octal number; otherwise it is
+ interpreted as a symbolic mode mask similar to that accepted by
+ _\bc_\bh_\bm_\bo_\bd(1). If _\bm_\bo_\bd_\be is omitted, the current value of the mask is
+ printed. The -\b-S\bS option causes the mask to be printed in sym-
+ bolic form; the default output is an octal number. If the -\b-p\bp
option is supplied, and _\bm_\bo_\bd_\be is omitted, the output is in a form
that may be reused as input. The return status is 0 if the mode
- was successfully changed or if no _\bm_\bo_\bd_\be argument was supplied,
+ was successfully changed or if no _\bm_\bo_\bd_\be argument was supplied,
and false otherwise.
u\bun\bna\bal\bli\bia\bas\bs [-a\ba] [_\bn_\ba_\bm_\be ...]
- Remove each _\bn_\ba_\bm_\be from the list of defined aliases. If -\b-a\ba is
- supplied, all alias definitions are removed. The return value
+ Remove each _\bn_\ba_\bm_\be from the list of defined aliases. If -\b-a\ba is
+ supplied, all alias definitions are removed. The return value
is true unless a supplied _\bn_\ba_\bm_\be is not a defined alias.
u\bun\bns\bse\bet\bt [-f\bfv\bv] [_\bn_\ba_\bm_\be ...]
- For each _\bn_\ba_\bm_\be, remove the corresponding variable or function.
+ For each _\bn_\ba_\bm_\be, remove the corresponding variable or function.
If the -\b-v\bv option is given, each _\bn_\ba_\bm_\be refers to a shell variable,
- and that variable is removed. Read-only variables may not be
- unset. If -\b-f\bf is specified, each _\bn_\ba_\bm_\be refers to a shell func-
+ and that variable is removed. Read-only variables may not be
+ unset. If -\b-f\bf is specified, each _\bn_\ba_\bm_\be refers to a shell func-
tion, and the function definition is removed. If no options are
- supplied, each _\bn_\ba_\bm_\be refers to a variable; if there is no vari-
- able by that name, any function with that name is unset. Each
- unset variable or function is removed from the environment
- passed to subsequent commands. If any of C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS, R\bRA\bAN\bN-\b-
+ supplied, each _\bn_\ba_\bm_\be refers to a variable; if there is no vari-
+ able by that name, any function with that name is unset. Each
+ unset variable or function is removed from the environment
+ passed to subsequent commands. If any of C\bCO\bOM\bMP\bP_\b_W\bWO\bOR\bRD\bDB\bBR\bRE\bEA\bAK\bKS\bS, R\bRA\bAN\bN-\b-
D\bDO\bOM\bM, S\bSE\bEC\bCO\bON\bND\bDS\bS, L\bLI\bIN\bNE\bEN\bNO\bO, H\bHI\bIS\bST\bTC\bCM\bMD\bD, F\bFU\bUN\bNC\bCN\bNA\bAM\bME\bE, G\bGR\bRO\bOU\bUP\bPS\bS, or D\bDI\bIR\bRS\bST\bTA\bAC\bCK\bK are
unset, they lose their special properties, even if they are sub-
sequently reset. The exit status is true unless a _\bn_\ba_\bm_\be is read-
only.
w\bwa\bai\bit\bt [_\bn _\b._\b._\b.]
- Wait for each specified process and return its termination sta-
- tus. Each _\bn may be a process ID or a job specification; if a
- job spec is given, all processes in that job's pipeline are
- waited for. If _\bn is not given, all currently active child pro-
- cesses are waited for, and the return status is zero. If _\bn
- specifies a non-existent process or job, the return status is
- 127. Otherwise, the return status is the exit status of the
+ Wait for each specified process and return its termination sta-
+ tus. Each _\bn may be a process ID or a job specification; if a
+ job spec is given, all processes in that job's pipeline are
+ waited for. If _\bn is not given, all currently active child pro-
+ cesses are waited for, and the return status is zero. If _\bn
+ specifies a non-existent process or job, the return status is
+ 127. Otherwise, the return status is the exit status of the
last process or job waited for.
R\bRE\bES\bST\bTR\bRI\bIC\bCT\bTE\bED\bD S\bSH\bHE\bEL\bLL\bL
If b\bba\bas\bsh\bh is started with the name r\brb\bba\bas\bsh\bh, or the -\b-r\br option is supplied at
- invocation, the shell becomes restricted. A restricted shell is used
- to set up an environment more controlled than the standard shell. It
- behaves identically to b\bba\bas\bsh\bh with the exception that the following are
+ invocation, the shell becomes restricted. A restricted shell is used
+ to set up an environment more controlled than the standard shell. It
+ behaves identically to b\bba\bas\bsh\bh with the exception that the following are
disallowed or not performed:
+\bo changing directories with c\bcd\bd
+\bo specifying command names containing /\b/
- +\bo specifying a filename containing a /\b/ as an argument to the .\b.
+ +\bo specifying a filename containing a /\b/ as an argument to the .\b.
builtin command
- +\bo specifying a filename containing a slash as an argument to the
+ +\bo specifying a filename containing a slash as an argument to the
-\b-p\bp option to the h\bha\bas\bsh\bh builtin command
- +\bo importing function definitions from the shell environment at
+ +\bo importing function definitions from the shell environment at
startup
- +\bo parsing the value of S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from the shell environment at
+ +\bo parsing the value of S\bSH\bHE\bEL\bLL\bLO\bOP\bPT\bTS\bS from the shell environment at
startup
+\bo redirecting output using the >, >|, <>, >&, &>, and >> redirect-
+\bo using the e\bex\bxe\bec\bc builtin command to replace the shell with another
command
- +\bo adding or deleting builtin commands with the -\b-f\bf and -\b-d\bd options
+ +\bo adding or deleting builtin commands with the -\b-f\bf and -\b-d\bd options
to the e\ben\bna\bab\bbl\ble\be builtin command
- +\bo using the e\ben\bna\bab\bbl\ble\be builtin command to enable disabled shell
+ +\bo using the e\ben\bna\bab\bbl\ble\be builtin command to enable disabled shell
builtins
+\bo specifying the -\b-p\bp option to the c\bco\bom\bmm\bma\ban\bnd\bd builtin command
These restrictions are enforced after any startup files are read.
When a command that is found to be a shell script is executed (see C\bCO\bOM\bM-\b-
- M\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN above), r\brb\bba\bas\bsh\bh turns off any restrictions in the shell
+ M\bMA\bAN\bND\bD E\bEX\bXE\bEC\bCU\bUT\bTI\bIO\bON\bN above), r\brb\bba\bas\bsh\bh turns off any restrictions in the shell
spawned to execute the script.
S\bSE\bEE\bE A\bAL\bLS\bSO\bO
_\bB_\ba_\bs_\bh _\bR_\be_\bf_\be_\br_\be_\bn_\bc_\be _\bM_\ba_\bn_\bu_\ba_\bl, Brian Fox and Chet Ramey
_\bT_\bh_\be _\bG_\bn_\bu _\bR_\be_\ba_\bd_\bl_\bi_\bn_\be _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
_\bT_\bh_\be _\bG_\bn_\bu _\bH_\bi_\bs_\bt_\bo_\br_\by _\bL_\bi_\bb_\br_\ba_\br_\by, Brian Fox and Chet Ramey
- _\bP_\bo_\br_\bt_\ba_\bb_\bl_\be _\bO_\bp_\be_\br_\ba_\bt_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\b(_\bP_\bO_\bS_\bI_\bX_\b) _\bP_\ba_\br_\bt _\b2_\b: _\bS_\bh_\be_\bl_\bl _\ba_\bn_\bd _\bU_\bt_\bi_\bl_\bi_\b-
+ _\bP_\bo_\br_\bt_\ba_\bb_\bl_\be _\bO_\bp_\be_\br_\ba_\bt_\bi_\bn_\bg _\bS_\by_\bs_\bt_\be_\bm _\bI_\bn_\bt_\be_\br_\bf_\ba_\bc_\be _\b(_\bP_\bO_\bS_\bI_\bX_\b) _\bP_\ba_\br_\bt _\b2_\b: _\bS_\bh_\be_\bl_\bl _\ba_\bn_\bd _\bU_\bt_\bi_\bl_\bi_\b-
_\bt_\bi_\be_\bs, IEEE
_\bs_\bh(1), _\bk_\bs_\bh(1), _\bc_\bs_\bh(1)
_\be_\bm_\ba_\bc_\bs(1), _\bv_\bi(1)
_\b~_\b/_\b._\bb_\ba_\bs_\bh_\br_\bc
The individual per-interactive-shell startup file
_\b~_\b/_\b._\bb_\ba_\bs_\bh_\b__\bl_\bo_\bg_\bo_\bu_\bt
- The individual login shell cleanup file, executed when a login
+ The individual login shell cleanup file, executed when a login
shell exits
_\b~_\b/_\b._\bi_\bn_\bp_\bu_\bt_\br_\bc
Individual _\br_\be_\ba_\bd_\bl_\bi_\bn_\be initialization file
B\bBU\bUG\bG R\bRE\bEP\bPO\bOR\bRT\bTS\bS
If you find a bug in b\bba\bas\bsh\bh,\b, you should report it. But first, you should
- make sure that it really is a bug, and that it appears in the latest
- version of b\bba\bas\bsh\bh. The latest version is always available from
+ make sure that it really is a bug, and that it appears in the latest
+ version of b\bba\bas\bsh\bh. The latest version is always available from
_\bf_\bt_\bp_\b:_\b/_\b/_\bf_\bt_\bp_\b._\bg_\bn_\bu_\b._\bo_\br_\bg_\b/_\bp_\bu_\bb_\b/_\bg_\bn_\bu_\b/_\bb_\ba_\bs_\bh_\b/.
- Once you have determined that a bug actually exists, use the _\bb_\ba_\bs_\bh_\bb_\bu_\bg
- command to submit a bug report. If you have a fix, you are encouraged
- to mail that as well! Suggestions and `philosophical' bug reports may
- be mailed to _\bb_\bu_\bg_\b-_\bb_\ba_\bs_\bh_\b@_\bg_\bn_\bu_\b._\bo_\br_\bg or posted to the Usenet newsgroup
+ Once you have determined that a bug actually exists, use the _\bb_\ba_\bs_\bh_\bb_\bu_\bg
+ command to submit a bug report. If you have a fix, you are encouraged
+ to mail that as well! Suggestions and `philosophical' bug reports may
+ be mailed to _\bb_\bu_\bg_\b-_\bb_\ba_\bs_\bh_\b@_\bg_\bn_\bu_\b._\bo_\br_\bg or posted to the Usenet newsgroup
g\bgn\bnu\bu.\b.b\bba\bas\bsh\bh.\b.b\bbu\bug\bg.
ALL bug reports should include:
A description of the bug behaviour
A short script or `recipe' which exercises the bug
- _\bb_\ba_\bs_\bh_\bb_\bu_\bg inserts the first three items automatically into the template
+ _\bb_\ba_\bs_\bh_\bb_\bu_\bg inserts the first three items automatically into the template
it provides for filing a bug report.
Comments and bug reports concerning this manual page should be directed
Shell builtin commands and functions are not stoppable/restartable.
Compound commands and command sequences of the form `a ; b ; c' are not
- handled gracefully when process suspension is attempted. When a
- process is stopped, the shell immediately executes the next command in
- the sequence. It suffices to place the sequence of commands between
- parentheses to force it into a subshell, which may be stopped as a
+ handled gracefully when process suspension is attempted. When a
+ process is stopped, the shell immediately executes the next command in
+ the sequence. It suffices to place the sequence of commands between
+ parentheses to force it into a subshell, which may be stopped as a
unit.
Array variables may not (yet) be exported.
<P>
-(see <B>Duplicating File Descriptors</B> below).
+When using the second form, <I>word</I> may not expand to a number or
+<B>-</B>. If it does, other redirection operators apply
+(see <B>Duplicating File Descriptors</B> below) for compatibility
+reasons.
<A NAME="lbBN"> </A>
<H4>Appending Standard Output and Standard Error</H4>
<I>word</I>
do not specify a file descriptor open for output, a redirection error occurs.
+If
+<I>word</I>
+
+evaluates to
+<B>-</B>,
+
+file descriptor
+<I>n</I>
+
+is closed.
As a special case, if <I>n</I> is omitted, and <I>word</I> does not
-expand to one or more digits, the standard output and standard
+expand to one or more digits or <B>-</B>, the standard output and standard
error are redirected as described previously.
<A NAME="lbBR"> </A>
<H4>Moving File Descriptors</H4>
or the exit status of the last command executed within the
script as the exit status of the script.
+If <I>n</I> is supplied, the return value is its least significant
+8 bits.
The return status is non-zero if
<B>return</B>
+is supplied a non-numeric argument, or
is used outside a
function and not during execution of a script by <B>.</B> or <B>source</B>.
Any command associated with the <B>RETURN</B> trap is executed
</DL>
<HR>
This document was created by man2html from bash.1.<BR>
-Time: 26 September 2011 10:56:19 EDT
+Time: 24 October 2011 08:43:51 EDT
</BODY>
</HTML>
%!PS-Adobe-3.0
%%Creator: groff version 1.19.2
-%%CreationDate: Mon Sep 26 10:56:08 2011
+%%CreationDate: Mon Oct 24 08:43:45 2011
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
F1(wor)A(d)-.37 E F0(Of the tw)108 343.2 Q 2.5(of)-.1 G
(orms, the \214rst is preferred.)-2.5 E(This is semantically equi)5 E
-.25(va)-.25 G(lent to).25 E F2(>)144 360 Q F1(wor)A(d)-.37 E F0(2)2.5 E
-F2(>&)A F0(1)A(\(see)108 376.8 Q F2(Duplicating File Descriptors)2.5 E
-F0(belo)2.5 E(w\).)-.25 E F2 -.25(Ap)87 393.6 S
-(pending Standard Output and Standard Err).25 E(or)-.18 E F0 .249
-(This construct allo)108 405.6 R .249(ws both the standard output \(\
+F2(>&)A F0(1)A .115(When using the second form,)108 376.8 R F1(wor)2.614
+E(d)-.37 E F0 .114(may not e)2.614 F .114(xpand to a number or)-.15 F F2
+<ad>2.614 E F0 5.114(.I)C 2.614(fi)-5.114 G 2.614(td)-2.614 G .114
+(oes, other redirection operators)-2.614 F(apply \(see)108 388.8 Q F2
+(Duplicating File Descriptors)2.5 E F0(belo)2.5 E
+(w\) for compatibility reasons.)-.25 E F2 -.25(Ap)87 405.6 S
+(pending Standard Output and Standard Err).25 E(or)-.18 E F0 .248
+(This construct allo)108 417.6 R .249(ws both the standard output \(\
\214le descriptor 1\) and the standard error output \(\214le descrip-)
-.25 F(tor 2\) to be appended to the \214le whose name is the e)108
-417.6 Q(xpansion of)-.15 E F1(wor)2.5 E(d)-.37 E F0(.).77 E
+429.6 Q(xpansion of)-.15 E F1(wor)2.5 E(d)-.37 E F0(.).77 E
(The format for appending standard output and standard error is:)108
-434.4 Q F2(&>>)144 451.2 Q F1(wor)A(d)-.37 E F0
-(This is semantically equi)108 468 Q -.25(va)-.25 G(lent to).25 E F2(>>)
-144 484.8 Q F1(wor)A(d)-.37 E F0(2)2.5 E F2(>&)A F0(1)A(\(see)108 501.6
+446.4 Q F2(&>>)144 463.2 Q F1(wor)A(d)-.37 E F0
+(This is semantically equi)108 480 Q -.25(va)-.25 G(lent to).25 E F2(>>)
+144 496.8 Q F1(wor)A(d)-.37 E F0(2)2.5 E F2(>&)A F0(1)A(\(see)108 513.6
Q F2(Duplicating File Descriptors)2.5 E F0(belo)2.5 E(w\).)-.25 E F2
-(Her)87 518.4 Q 2.5(eD)-.18 G(ocuments)-2.5 E F0 .33(This type of redir\
+(Her)87 530.4 Q 2.5(eD)-.18 G(ocuments)-2.5 E F0 .33(This type of redir\
ection instructs the shell to read input from the current source until \
-a line containing only)108 530.4 R F1(delimiter)108.35 542.4 Q F0 .615
-(\(with no trailing blanks\) is seen.)3.845 F .615
+a line containing only)108 542.4 R F1(delimiter)108.35 554.4 Q F0 .614
+(\(with no trailing blanks\) is seen.)3.844 F .615
(All of the lines read up to that point are then used as the stan-)5.615
-F(dard input for a command.)108 554.4 Q
-(The format of here-documents is:)108 571.2 Q F2(<<)144 588 Q F0([)A F2
-<ad>A F0(])A F1(wor)A(d)-.37 E(her)164 600 Q(e-document)-.37 E
-(delimiter)144 612 Q F0 .301(No parameter and v)108 628.8 R .302
+F(dard input for a command.)108 566.4 Q
+(The format of here-documents is:)108 583.2 Q F2(<<)144 600 Q F0([)A F2
+<ad>A F0(])A F1(wor)A(d)-.37 E(her)164 612 Q(e-document)-.37 E
+(delimiter)144 624 Q F0 .302(No parameter and v)108 640.8 R .302
(ariable e)-.25 F .302(xpansion, command substitution, arithmetic e)-.15
-F .302(xpansion, or pathname e)-.15 F(xpansion)-.15 E .226
-(is performed on)108 640.8 R F1(wor)2.726 E(d)-.37 E F0 5.226(.I).77 G
-2.726(fa)-5.226 G .526 -.15(ny c)-2.726 H .226(haracters in).15 F F1
+F .301(xpansion, or pathname e)-.15 F(xpansion)-.15 E .225
+(is performed on)108 652.8 R F1(wor)2.725 E(d)-.37 E F0 5.225(.I).77 G
+2.726(fa)-5.225 G .526 -.15(ny c)-2.726 H .226(haracters in).15 F F1
(wor)3.066 E(d)-.37 E F0 .226(are quoted, the)3.496 F F1(delimiter)3.076
-E F0 .225(is the result of quote remo)3.456 F -.25(va)-.15 G 2.725(lo)
-.25 G(n)-2.725 E F1(wor)108 652.8 Q(d)-.37 E F0 2.714(,a).77 G .214
-(nd the lines in the here-document are not e)-2.714 F 2.714(xpanded. If)
--.15 F F1(wor)2.715 E(d)-.37 E F0 .215
-(is unquoted, all lines of the here-docu-)2.715 F .673
-(ment are subjected to parameter e)108 664.8 R .673
+E F0 .226(is the result of quote remo)3.456 F -.25(va)-.15 G 2.726(lo)
+.25 G(n)-2.726 E F1(wor)108 664.8 Q(d)-.37 E F0 2.715(,a).77 G .215
+(nd the lines in the here-document are not e)-2.715 F 2.714(xpanded. If)
+-.15 F F1(wor)2.714 E(d)-.37 E F0 .214
+(is unquoted, all lines of the here-docu-)2.714 F .673
+(ment are subjected to parameter e)108 676.8 R .673
(xpansion, command substitution, and arithmetic e)-.15 F 3.173
-(xpansion. In)-.15 F .673(the latter)3.173 F
-(case, the character sequence)108 676.8 Q F2(\\<newline>)2.5 E F0
+(xpansion. In)-.15 F .674(the latter)3.173 F
+(case, the character sequence)108 688.8 Q F2(\\<newline>)2.5 E F0
(is ignored, and)2.5 E F2(\\)2.5 E F0
(must be used to quote the characters)2.5 E F2(\\)2.5 E F0(,)A F2($)2.5
-E F0 2.5(,a)C(nd)-2.5 E F2<92>2.5 E F0(.)A .601
-(If the redirection operator is)108 693.6 R F2(<<\255)3.101 E F0 3.101
+E F0 2.5(,a)C(nd)-2.5 E F2<92>2.5 E F0(.)A .602
+(If the redirection operator is)108 705.6 R F2(<<\255)3.101 E F0 3.101
(,t)C .601(hen all leading tab characters are stripped from input lines\
- and the line)-3.101 F(containing)108 705.6 Q F1(delimiter)2.5 E F0 5
+ and the line)-3.101 F(containing)108 717.6 Q F1(delimiter)2.5 E F0 5
(.T).73 G(his allo)-5 E
(ws here-documents within shell scripts to be indented in a natural f)
-.25 E(ashion.)-.1 E(GNU Bash 4.2)72 768 Q(2011 September 25)135.955 E
-.35 E/F1 10/Times-Bold@0 SF(Her)87 84 Q 2.5(eS)-.18 G(trings)-2.5 E F0
2.5(Av)108 96 S(ariant of here documents, the format is:)-2.75 E F1(<<<)
144 112.8 Q/F2 10/Times-Italic@0 SF(wor)A(d)-.37 E F0(The)108 129.6 Q F2
-(wor)2.894 E(d)-.37 E F0(under)2.894 E .394(goes brace e)-.18 F .393
-(xpansion, tilde e)-.15 F .393(xpansion, parameter and v)-.15 F .393
-(ariable e)-.25 F .393(xpansion, command substi-)-.15 F 1.384
+(wor)2.893 E(d)-.37 E F0(under)2.893 E .393(goes brace e)-.18 F .393
+(xpansion, tilde e)-.15 F .393(xpansion, parameter and v)-.15 F .394
+(ariable e)-.25 F .394(xpansion, command substi-)-.15 F 1.385
(tution, arithmetic e)108 141.6 R 1.384(xpansion, and quote remo)-.15 F
-.25(va)-.15 G 3.884(l. P).25 F 1.384(athname e)-.15 F 1.384(xpansion w)
-.15 F 1.384(ord splitting are not performed.)-.1 F(The result is suppl\
ied as a single string to the command on its standard input.)108 153.6 Q
F1(Duplicating File Descriptors)87 170.4 Q F0(The redirection operator)
108 182.4 Q([)144 199.2 Q F2(n)A F0(])A F1(<&)A F2(wor)A(d)-.37 E F0
-.127(is used to duplicate input \214le descriptors.)108 216 R(If)5.127 E
-F2(wor)2.967 E(d)-.37 E F0 -.15(ex)3.397 G .126
+.126(is used to duplicate input \214le descriptors.)108 216 R(If)5.127 E
+F2(wor)2.967 E(d)-.37 E F0 -.15(ex)3.397 G .127
(pands to one or more digits, the \214le descriptor denoted).15 F(by)108
-228 Q F2(n)3.317 E F0 .457(is made to be a cop)3.197 F 2.957(yo)-.1 G
-2.957(ft)-2.957 G .457(hat \214le descriptor)-2.957 F 5.457(.I)-.55 G
-2.957(ft)-5.457 G .457(he digits in)-2.957 F F2(wor)3.298 E(d)-.37 E F0
-.458(do not specify a \214le descriptor open)3.728 F .15
-(for input, a redirection error occurs.)108 240 R(If)5.15 E F2(wor)2.99
-E(d)-.37 E F0 -.25(eva)3.42 G .15(luates to).25 F F1<ad>2.65 E F0 2.649
-<2c8c>C .149(le descriptor)-2.649 F F2(n)3.009 E F0 .149(is closed.)
-2.889 F(If)5.149 E F2(n)3.009 E F0 .149(is not speci\214ed,)2.889 F
+228 Q F2(n)3.318 E F0 .458(is made to be a cop)3.198 F 2.958(yo)-.1 G
+2.958(ft)-2.958 G .457(hat \214le descriptor)-2.958 F 5.457(.I)-.55 G
+2.957(ft)-5.457 G .457(he digits in)-2.957 F F2(wor)3.297 E(d)-.37 E F0
+.457(do not specify a \214le descriptor open)3.727 F .149
+(for input, a redirection error occurs.)108 240 R(If)5.149 E F2(wor)
+2.989 E(d)-.37 E F0 -.25(eva)3.419 G .149(luates to).25 F F1<ad>2.649 E
+F0 2.65<2c8c>C .15(le descriptor)-2.65 F F2(n)3.01 E F0 .15(is closed.)
+2.89 F(If)5.15 E F2(n)3.01 E F0 .15(is not speci\214ed,)2.89 F
(the standard input \(\214le descriptor 0\) is used.)108 252 Q
(The operator)108 268.8 Q([)144 285.6 Q F2(n)A F0(])A F1(>&)A F2(wor)A
-(d)-.37 E F0 .443
+(d)-.37 E F0 .444
(is used similarly to duplicate output \214le descriptors.)108 302.4 R
-(If)5.443 E F2(n)3.304 E F0 .444
-(is not speci\214ed, the standard output \(\214le descrip-)3.184 F 1.358
-(tor 1\) is used.)108 314.4 R 1.358(If the digits in)6.358 F F2(wor)
-4.198 E(d)-.37 E F0 1.357(do not specify a \214le descriptor open for o\
-utput, a redirection error)4.628 F 2.596(occurs. As)108 326.4 R 2.596
-(as)2.596 G .096(pecial case, if)-2.596 F F2(n)2.596 E F0 .096
-(is omitted, and)2.596 F F2(wor)2.596 E(d)-.37 E F0 .096(does not e)
-2.596 F .096(xpand to one or more digits, the standard out-)-.15 F
-(put and standard error are redirected as described pre)108 338.4 Q
-(viously)-.25 E(.)-.65 E F1(Mo)87 355.2 Q(ving File Descriptors)-.1 E F0
-(The redirection operator)108 367.2 Q([)144 384 Q F2(n)A F0(])A F1(<&)A
-F2(digit)A F1<ad>A F0(mo)108 400.8 Q -.15(ve)-.15 G 3.036(st).15 G .536
-(he \214le descriptor)-3.036 F F2(digit)3.036 E F0 .536
-(to \214le descriptor)3.036 F F2(n)3.036 E F0 3.036(,o).24 G 3.036(rt)
--3.036 G .535(he standard input \(\214le descriptor 0\) if)-3.036 F F2
-(n)3.035 E F0 .535(is not speci-)3.035 F(\214ed.)108 412.8 Q F2(digit)5
-E F0(is closed after being duplicated to)2.5 E F2(n)2.5 E F0(.)A
-(Similarly)108 429.6 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([)
-144 446.4 Q F2(n)A F0(])A F1(>&)A F2(digit)A F1<ad>A F0(mo)108 463.2 Q
--.15(ve)-.15 G 2.785(st).15 G .285(he \214le descriptor)-2.785 F F2
-(digit)2.785 E F0 .285(to \214le descriptor)2.785 F F2(n)2.785 E F0
-2.785(,o).24 G 2.785(rt)-2.785 G .286
-(he standard output \(\214le descriptor 1\) if)-2.785 F F2(n)2.786 E F0
-.286(is not speci-)2.786 F(\214ed.)108 475.2 Q F1
-(Opening File Descriptors f)87 492 Q(or Reading and Writing)-.25 E F0
-(The redirection operator)108 504 Q([)144 520.8 Q F2(n)A F0(])A F1(<>)A
+(If)5.444 E F2(n)3.304 E F0 .443
+(is not speci\214ed, the standard output \(\214le descrip-)3.183 F 1.357
+(tor 1\) is used.)108 314.4 R 1.357(If the digits in)6.357 F F2(wor)
+4.197 E(d)-.37 E F0 1.358(do not specify a \214le descriptor open for o\
+utput, a redirection error)4.627 F 2.754(occurs. If)108 326.4 R F2(wor)
+3.094 E(d)-.37 E F0 -.25(eva)3.524 G .254(luates to).25 F F1<ad>2.754 E
+F0 2.754<2c8c>C .254(le descriptor)-2.754 F F2(n)3.114 E F0 .254
+(is closed.)2.994 F .254(As a special case, if)5.254 F F2(n)2.754 E F0
+.253(is omitted, and)2.754 F F2(wor)2.753 E(d)-.37 E F0(does)2.753 E
+.965(not e)108 338.4 R .965(xpand to one or more digits or)-.15 F F1<ad>
+3.465 E F0 3.466(,t)C .966
+(he standard output and standard error are redirected as described)
+-3.466 F(pre)108 350.4 Q(viously)-.25 E(.)-.65 E F1(Mo)87 367.2 Q
+(ving File Descriptors)-.1 E F0(The redirection operator)108 379.2 Q([)
+144 396 Q F2(n)A F0(])A F1(<&)A F2(digit)A F1<ad>A F0(mo)108 412.8 Q
+-.15(ve)-.15 G 3.036(st).15 G .536(he \214le descriptor)-3.036 F F2
+(digit)3.036 E F0 .536(to \214le descriptor)3.036 F F2(n)3.036 E F0
+3.036(,o).24 G 3.036(rt)-3.036 G .535
+(he standard input \(\214le descriptor 0\) if)-3.036 F F2(n)3.035 E F0
+.535(is not speci-)3.035 F(\214ed.)108 424.8 Q F2(digit)5 E F0
+(is closed after being duplicated to)2.5 E F2(n)2.5 E F0(.)A(Similarly)
+108 441.6 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([)144 458.4 Q
+F2(n)A F0(])A F1(>&)A F2(digit)A F1<ad>A F0(mo)108 475.2 Q -.15(ve)-.15
+G 2.785(st).15 G .285(he \214le descriptor)-2.785 F F2(digit)2.785 E F0
+.285(to \214le descriptor)2.785 F F2(n)2.785 E F0 2.785(,o).24 G 2.785
+(rt)-2.785 G .286(he standard output \(\214le descriptor 1\) if)-2.785 F
+F2(n)2.786 E F0 .286(is not speci-)2.786 F(\214ed.)108 487.2 Q F1
+(Opening File Descriptors f)87 504 Q(or Reading and Writing)-.25 E F0
+(The redirection operator)108 516 Q([)144 532.8 Q F2(n)A F0(])A F1(<>)A
F2(wor)A(d)-.37 E F0 1.349(causes the \214le whose name is the e)108
-537.6 R 1.349(xpansion of)-.15 F F2(wor)4.189 E(d)-.37 E F0 1.349
+549.6 R 1.349(xpansion of)-.15 F F2(wor)4.189 E(d)-.37 E F0 1.349
(to be opened for both reading and writing on \214le)4.619 F(descriptor)
-108 549.6 Q F2(n)2.5 E F0 2.5(,o).24 G 2.5(ro)-2.5 G 2.5<6e8c>-2.5 G
+108 561.6 Q F2(n)2.5 E F0 2.5(,o).24 G 2.5(ro)-2.5 G 2.5<6e8c>-2.5 G
(le descriptor 0 if)-2.5 E F2(n)2.86 E F0(is not speci\214ed.)2.74 E
(If the \214le does not e)5 E(xist, it is created.)-.15 E/F3 10.95
-/Times-Bold@0 SF(ALIASES)72 566.4 Q F2(Aliases)108 578.4 Q F0(allo)3.173
+/Times-Bold@0 SF(ALIASES)72 578.4 Q F2(Aliases)108 590.4 Q F0(allo)3.173
E 3.173(was)-.25 G .674(tring to be substituted for a w)-3.173 F .674
(ord when it is used as the \214rst w)-.1 F .674
(ord of a simple command.)-.1 F .394(The shell maintains a list of alia\
-ses that may be set and unset with the)108 590.4 R F1(alias)2.893 E F0
+ses that may be set and unset with the)108 602.4 R F1(alias)2.893 E F0
(and)2.893 E F1(unalias)2.893 E F0 -.2(bu)2.893 G .393(iltin commands).2
-F(\(see)108 602.4 Q/F4 9/Times-Bold@0 SF 1.979(SHELL B)4.479 F(UIL)-.09
+F(\(see)108 614.4 Q/F4 9/Times-Bold@0 SF 1.979(SHELL B)4.479 F(UIL)-.09
E 1.979(TIN COMMANDS)-.828 F F0(belo)4.229 E 4.48(w\). The)-.25 F 1.98
(\214rst w)4.48 F 1.98(ord of each simple command, if unquoted, is)-.1 F
-(check)108 614.4 Q .473(ed to see if it has an alias.)-.1 F .473
+(check)108 626.4 Q .473(ed to see if it has an alias.)-.1 F .473
(If so, that w)5.473 F .472(ord is replaced by the te)-.1 F .472
(xt of the alias.)-.15 F .472(The characters)5.472 F F1(/)2.972 E F0(,)A
-F1($)2.972 E F0(,)A F1<92>2.972 E F0(,)A(and)108 626.4 Q F1(=)3.611 E F0
+F1($)2.972 E F0(,)A F1<92>2.972 E F0(,)A(and)108 638.4 Q F1(=)3.611 E F0
1.111(and an)3.611 F 3.611(yo)-.15 G 3.611(ft)-3.611 G 1.111(he shell)
-3.611 F F2(metac)3.612 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 1.112
(or quoting characters listed abo)3.612 F 1.412 -.15(ve m)-.15 H 1.112
-(ay not appear in an alias).15 F 3.62(name. The)108 638.4 R 1.12
+(ay not appear in an alias).15 F 3.62(name. The)108 650.4 R 1.12
(replacement te)3.62 F 1.119(xt may contain an)-.15 F 3.619(yv)-.15 G
1.119(alid shell input, including shell metacharacters.)-3.869 F 1.119
-(The \214rst)6.119 F -.1(wo)108 650.4 S .513(rd of the replacement te).1
+(The \214rst)6.119 F -.1(wo)108 662.4 S .513(rd of the replacement te).1
F .513(xt is tested for aliases, b)-.15 F .513(ut a w)-.2 F .514
(ord that is identical to an alias being e)-.1 F .514(xpanded is)-.15 F
-.296(not e)108 662.4 R .296(xpanded a second time.)-.15 F .296
+.296(not e)108 674.4 R .296(xpanded a second time.)-.15 F .296
(This means that one may alias)5.296 F F1(ls)2.796 E F0(to)2.796 E F1
.296(ls \255F)2.796 F F0 2.796(,f)C .295(or instance, and)-2.796 F F1
-(bash)2.795 E F0 .295(does not try)2.795 F .542(to recursi)108 674.4 R
+(bash)2.795 E F0 .295(does not try)2.795 F .542(to recursi)108 686.4 R
-.15(ve)-.25 G .542(ly e).15 F .542(xpand the replacement te)-.15 F
3.042(xt. If)-.15 F .543(the last character of the alias v)3.042 F .543
(alue is a)-.25 F F2(blank)3.043 E F0 3.043(,t).67 G .543(hen the ne)
--3.043 F(xt)-.15 E(command w)108 686.4 Q(ord follo)-.1 E
+-3.043 F(xt)-.15 E(command w)108 698.4 Q(ord follo)-.1 E
(wing the alias is also check)-.25 E(ed for alias e)-.1 E(xpansion.)-.15
-E(Aliases are created and listed with the)108 703.2 Q F1(alias)2.5 E F0
+E(Aliases are created and listed with the)108 715.2 Q F1(alias)2.5 E F0
(command, and remo)2.5 E -.15(ve)-.15 G 2.5(dw).15 G(ith the)-2.5 E F1
-(unalias)2.5 E F0(command.)2.5 E 1.777
-(There is no mechanism for using ar)108 720 R 1.777
-(guments in the replacement te)-.18 F 4.277(xt. If)-.15 F(ar)4.277 E
-1.777(guments are needed, a shell)-.18 F(GNU Bash 4.2)72 768 Q
+(unalias)2.5 E F0(command.)2.5 E(GNU Bash 4.2)72 768 Q
(2011 September 25)135.955 E(26)185.115 E 0 Cg EP
%%Page: 27 27
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(function should be used \(see)108 84 Q/F1 9/Times-Bold@0 SF
-(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E 1.22(Aliases are not e)108
-100.8 R 1.22(xpanded when the shell is not interacti)-.15 F -.15(ve)-.25
-G 3.72(,u).15 G 1.22(nless the)-3.72 F/F2 10/Times-Bold@0 SF
-(expand_aliases)3.72 E F0 1.22(shell option is set)3.72 F(using)108
-112.8 Q F2(shopt)2.5 E F0(\(see the description of)2.5 E F2(shopt)2.5 E
-F0(under)2.5 E F1(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)
-2.25 E(w\).)-.25 E .436
+-.35 E .284(There is no mechanism for using ar)108 84 R .284
+(guments in the replacement te)-.18 F 2.784(xt. If)-.15 F(ar)2.784 E
+.284(guments are needed, a shell func-)-.18 F(tion should be used \(see)
+108 96 Q/F1 9/Times-Bold@0 SF(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E
+1.22(Aliases are not e)108 112.8 R 1.22
+(xpanded when the shell is not interacti)-.15 F -.15(ve)-.25 G 3.72(,u)
+.15 G 1.22(nless the)-3.72 F/F2 10/Times-Bold@0 SF(expand_aliases)3.72 E
+F0 1.22(shell option is set)3.72 F(using)108 124.8 Q F2(shopt)2.5 E F0
+(\(see the description of)2.5 E F2(shopt)2.5 E F0(under)2.5 E F1
+(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25
+E .436
(The rules concerning the de\214nition and use of aliases are some)108
-129.6 R .435(what confusing.)-.25 F F2(Bash)5.435 E F0(al)2.935 E -.1
+141.6 R .435(what confusing.)-.25 F F2(Bash)5.435 E F0(al)2.935 E -.1
(wa)-.1 G .435(ys reads at least).1 F .337
-(one complete line of input before e)108 141.6 R -.15(xe)-.15 G .338
+(one complete line of input before e)108 153.6 R -.15(xe)-.15 G .338
(cuting an).15 F 2.838(yo)-.15 G 2.838(ft)-2.838 G .338
(he commands on that line.)-2.838 F .338(Aliases are e)5.338 F .338
-(xpanded when)-.15 F 3.404(ac)108 153.6 S .904
+(xpanded when)-.15 F 3.404(ac)108 165.6 S .904
(ommand is read, not when it is e)-3.404 F -.15(xe)-.15 G 3.404
(cuted. Therefore,).15 F .904
(an alias de\214nition appearing on the same line as)3.404 F 1.161
-(another command does not tak)108 165.6 R 3.662(ee)-.1 G -.25(ff)-3.662
+(another command does not tak)108 177.6 R 3.662(ee)-.1 G -.25(ff)-3.662
G 1.162(ect until the ne).25 F 1.162(xt line of input is read.)-.15 F
1.162(The commands follo)6.162 F 1.162(wing the)-.25 F .277
-(alias de\214nition on that line are not af)108 177.6 R .277
+(alias de\214nition on that line are not af)108 189.6 R .277
(fected by the ne)-.25 F 2.777(wa)-.25 G 2.777(lias. This)-2.777 F(beha)
2.777 E .277(vior is also an issue when functions)-.2 F .698(are e)108
-189.6 R -.15(xe)-.15 G 3.198(cuted. Aliases).15 F .698(are e)3.198 F
+201.6 R -.15(xe)-.15 G 3.198(cuted. Aliases).15 F .698(are e)3.198 F
.699(xpanded when a function de\214nition is read, not when the functio\
n is e)-.15 F -.15(xe)-.15 G(cuted,).15 E .495
-(because a function de\214nition is itself a compound command.)108 201.6
+(because a function de\214nition is itself a compound command.)108 213.6
R .494(As a consequence, aliases de\214ned in a func-)5.494 F .084
-(tion are not a)108 213.6 R -.25(va)-.2 G .084
+(tion are not a)108 225.6 R -.25(va)-.2 G .084
(ilable until after that function is e).25 F -.15(xe)-.15 G 2.584
(cuted. T).15 F 2.584(ob)-.8 G 2.584(es)-2.584 G .084(afe, al)-2.584 F
-.1(wa)-.1 G .085(ys put alias de\214nitions on a sepa-).1 F
-(rate line, and do not use)108 225.6 Q F2(alias)2.5 E F0
-(in compound commands.)2.5 E -.15(Fo)108 242.4 S 2.5(ra).15 G(lmost e)
+(rate line, and do not use)108 237.6 Q F2(alias)2.5 E F0
+(in compound commands.)2.5 E -.15(Fo)108 254.4 S 2.5(ra).15 G(lmost e)
-2.5 E -.15(ve)-.25 G
(ry purpose, aliases are superseded by shell functions.).15 E/F3 10.95
-/Times-Bold@0 SF(FUNCTIONS)72 259.2 Q F0 3.468(As)108 271.2 S .968
+/Times-Bold@0 SF(FUNCTIONS)72 271.2 Q F0 3.468(As)108 283.2 S .968
(hell function, de\214ned as described abo)-3.468 F 1.267 -.15(ve u)-.15
H(nder).15 E F1 .967(SHELL GRAMMAR)3.467 F/F4 9/Times-Roman@0 SF(,)A F0
-.967(stores a series of commands for)3.217 F 1.001(later e)108 283.2 R
+.967(stores a series of commands for)3.217 F 1.001(later e)108 295.2 R
-.15(xe)-.15 G 3.501(cution. When).15 F 1.002(the name of a shell funct\
ion is used as a simple command name, the list of com-)3.501 F .316
-(mands associated with that function name is e)108 295.2 R -.15(xe)-.15
+(mands associated with that function name is e)108 307.2 R -.15(xe)-.15
G 2.816(cuted. Functions).15 F .316(are e)2.816 F -.15(xe)-.15 G .315
(cuted in the conte).15 F .315(xt of the current)-.15 F .035
-(shell; no ne)108 307.2 R 2.535(wp)-.25 G .036
+(shell; no ne)108 319.2 R 2.535(wp)-.25 G .036
(rocess is created to interpret them \(contrast this with the e)-2.535 F
-.15(xe)-.15 G .036(cution of a shell script\).).15 F .036(When a)5.036
-F .64(function is e)108 319.2 R -.15(xe)-.15 G .64(cuted, the ar).15 F
+F .64(function is e)108 331.2 R -.15(xe)-.15 G .64(cuted, the ar).15 F
.639
(guments to the function become the positional parameters during its e)
--.18 F -.15(xe)-.15 G(cution.).15 E .532(The special parameter)108 331.2
+-.18 F -.15(xe)-.15 G(cution.).15 E .532(The special parameter)108 343.2
R F2(#)3.032 E F0 .532(is updated to re\215ect the change.)3.032 F .532
(Special parameter)5.532 F F2(0)3.033 E F0 .533(is unchanged.)3.033 F
-.533(The \214rst ele-)5.533 F(ment of the)108 343.2 Q F1(FUNCN)2.5 E
+.533(The \214rst ele-)5.533 F(ment of the)108 355.2 Q F1(FUNCN)2.5 E
(AME)-.18 E F0 -.25(va)2.25 G
(riable is set to the name of the function while the function is e).25 E
-.15(xe)-.15 G(cuting.).15 E 1.25(All other aspects of the shell e)108
-360 R -.15(xe)-.15 G 1.25(cution en).15 F 1.25
+372 R -.15(xe)-.15 G 1.25(cution en).15 F 1.25
(vironment are identical between a function and its caller with)-.4 F
-1.048(these e)108 372 R 3.548(xceptions: the)-.15 F F1(DEB)3.548 E(UG)
+1.048(these e)108 384 R 3.548(xceptions: the)-.15 F F1(DEB)3.548 E(UG)
-.09 E F0(and)3.298 E F2(RETURN)3.548 E F0 1.048
(traps \(see the description of the)3.548 F F2(trap)3.548 E F0 -.2(bu)
-3.548 G 1.048(iltin under).2 F F1(SHELL)3.549 E -.09(BU)108 384 S(IL).09
+3.548 G 1.048(iltin under).2 F F1(SHELL)3.549 E -.09(BU)108 396 S(IL).09
E .479(TIN COMMANDS)-.828 F F0(belo)2.729 E .479
(w\) are not inherited unless the function has been gi)-.25 F -.15(ve)
-.25 G 2.978(nt).15 G(he)-2.978 E F2(trace)2.978 E F0(attrib)2.978 E
-.478(ute \(see)-.2 F .42(the description of the)108 396 R F1(declar)2.92
+.478(ute \(see)-.2 F .42(the description of the)108 408 R F1(declar)2.92
E(e)-.162 E F0 -.2(bu)2.67 G .42(iltin belo).2 F .42(w\) or the)-.25 F
F2 .42(\255o functrace)2.92 F F0 .42
(shell option has been enabled with the)2.92 F F2(set)2.921 E F0 -.2(bu)
-108 408 S .072(iltin \(in which case all functions inherit the).2 F F2
+108 420 S .072(iltin \(in which case all functions inherit the).2 F F2
(DEB)2.572 E(UG)-.1 E F0(and)2.572 E F2(RETURN)2.572 E F0 .072
(traps\), and the)2.572 F F1(ERR)2.571 E F0 .071(trap is not inher)2.321
-F(-)-.2 E(ited unless the)108 420 Q F2(\255o errtrace)2.5 E F0
-(shell option has been enabled.)2.5 E -1.11(Va)108 436.8 S .655
+F(-)-.2 E(ited unless the)108 432 Q F2(\255o errtrace)2.5 E F0
+(shell option has been enabled.)2.5 E -1.11(Va)108 448.8 S .655
(riables local to the function may be declared with the)1.11 F F2(local)
3.155 E F0 -.2(bu)3.156 G .656(iltin command.).2 F(Ordinarily)5.656 E
-3.156(,v)-.65 G .656(ariables and)-3.406 F(their v)108 448.8 Q
+3.156(,v)-.65 G .656(ariables and)-3.406 F(their v)108 460.8 Q
(alues are shared between the function and its caller)-.25 E(.)-.55 E
-(The)108 465.6 Q F2(FUNCNEST)3.529 E F0 -.25(va)3.529 G 1.028
+(The)108 477.6 Q F2(FUNCNEST)3.529 E F0 -.25(va)3.529 G 1.028
(riable, if set to a numeric v).25 F 1.028
(alue greater than 0, de\214nes a maximum function nesting)-.25 F(le)108
-477.6 Q -.15(ve)-.25 G 2.5(l. Function).15 F(in)2.5 E -.2(vo)-.4 G
+489.6 Q -.15(ve)-.25 G 2.5(l. Function).15 F(in)2.5 E -.2(vo)-.4 G
(cations that e).2 E(xceed the limit cause the entire command to abort.)
--.15 E .043(If the b)108 494.4 R .043(uiltin command)-.2 F F2 -.18(re)
+-.15 E .043(If the b)108 506.4 R .043(uiltin command)-.2 F F2 -.18(re)
2.543 G(tur).18 E(n)-.15 E F0 .043(is e)2.543 F -.15(xe)-.15 G .043
(cuted in a function, the function completes and e).15 F -.15(xe)-.15 G
-.044(cution resumes with).15 F 1.012(the ne)108 506.4 R 1.012
+.044(cution resumes with).15 F 1.012(the ne)108 518.4 R 1.012
(xt command after the function call.)-.15 F(An)6.011 E 3.511(yc)-.15 G
1.011(ommand associated with the)-3.511 F F2(RETURN)3.511 E F0 1.011
-(trap is e)3.511 F -.15(xe)-.15 G(cuted).15 E .213(before e)108 518.4 R
+(trap is e)3.511 F -.15(xe)-.15 G(cuted).15 E .213(before e)108 530.4 R
-.15(xe)-.15 G .213(cution resumes.).15 F .213
(When a function completes, the v)5.213 F .214
(alues of the positional parameters and the spe-)-.25 F(cial parameter)
-108 530.4 Q F2(#)2.5 E F0(are restored to the v)2.5 E(alues the)-.25 E
+108 542.4 Q F2(#)2.5 E F0(are restored to the v)2.5 E(alues the)-.25 E
2.5(yh)-.15 G(ad prior to the function')-2.5 E 2.5(se)-.55 G -.15(xe)
-2.65 G(cution.).15 E 1.359
-(Function names and de\214nitions may be listed with the)108 547.2 R F2
+(Function names and de\214nitions may be listed with the)108 559.2 R F2
<ad66>3.858 E F0 1.358(option to the)3.858 F F2(declar)3.858 E(e)-.18 E
F0(or)3.858 E F2(typeset)3.858 E F0 -.2(bu)3.858 G 1.358(iltin com-).2 F
-3.39(mands. The)108 559.2 R F2<ad46>3.39 E F0 .89(option to)3.39 F F2
+3.39(mands. The)108 571.2 R F2<ad46>3.39 E F0 .89(option to)3.39 F F2
(declar)3.39 E(e)-.18 E F0(or)3.39 E F2(typeset)3.39 E F0 .89
(will list the function names only \(and optionally the source)3.39 F
-.327(\214le and line number)108 571.2 R 2.827(,i)-.4 G 2.827(ft)-2.827 G
+.327(\214le and line number)108 583.2 R 2.827(,i)-.4 G 2.827(ft)-2.827 G
(he)-2.827 E F2(extdeb)2.827 E(ug)-.2 E F0 .326
(shell option is enabled\).)2.827 F .326(Functions may be e)5.326 F .326
-(xported so that subshells)-.15 F 1.297(automatically ha)108 583.2 R
+(xported so that subshells)-.15 F 1.297(automatically ha)108 595.2 R
1.597 -.15(ve t)-.2 H 1.297(hem de\214ned with the).15 F F2<ad66>3.797 E
F0 1.297(option to the)3.797 F F2(export)3.798 E F0 -.2(bu)3.798 G 3.798
(iltin. A).2 F 1.298(function de\214nition may be)3.798 F .161
-(deleted using the)108 595.2 R F2<ad66>2.661 E F0 .161(option to the)
+(deleted using the)108 607.2 R F2<ad66>2.661 E F0 .161(option to the)
2.661 F F2(unset)2.661 E F0 -.2(bu)2.661 G 2.661(iltin. Note).2 F .16
(that shell functions and v)2.661 F .16(ariables with the same name)-.25
F 1.325(may result in multiple identically-named entries in the en)108
-607.2 R 1.325(vironment passed to the shell')-.4 F 3.825(sc)-.55 G 3.825
-(hildren. Care)-3.825 F(should be tak)108 619.2 Q
+619.2 R 1.325(vironment passed to the shell')-.4 F 3.825(sc)-.55 G 3.825
+(hildren. Care)-3.825 F(should be tak)108 631.2 Q
(en in cases where this may cause a problem.)-.1 E .372
-(Functions may be recursi)108 636 R -.15(ve)-.25 G 5.371(.T).15 G(he)
+(Functions may be recursi)108 648 R -.15(ve)-.25 G 5.371(.T).15 G(he)
-5.371 E F2(FUNCNEST)2.871 E F0 -.25(va)2.871 G .371
(riable may be used to limit the depth of the function call).25 F 1.141
-(stack and restrict the number of function in)108 648 R -.2(vo)-.4 G
+(stack and restrict the number of function in)108 660 R -.2(vo)-.4 G
3.641(cations. By).2 F(def)3.641 E 1.141
-(ault, no limit is imposed on the number of)-.1 F(recursi)108 660 Q .3
--.15(ve c)-.25 H(alls.).15 E F3(ARITHMETIC EV)72 676.8 Q(ALU)-1.478 E
--1.04(AT)-.657 G(ION)1.04 E F0 2.298(The shell allo)108 688.8 R 2.297
+(ault, no limit is imposed on the number of)-.1 F(recursi)108 672 Q .3
+-.15(ve c)-.25 H(alls.).15 E F3(ARITHMETIC EV)72 688.8 Q(ALU)-1.478 E
+-1.04(AT)-.657 G(ION)1.04 E F0 2.298(The shell allo)108 700.8 R 2.297
(ws arithmetic e)-.25 F 2.297(xpressions to be e)-.15 F -.25(va)-.25 G
2.297(luated, under certain circumstances \(see the).25 F F2(let)4.797 E
-F0(and)4.797 E F2(declar)108 700.8 Q(e)-.18 E F0 -.2(bu)2.705 G .205
+F0(and)4.797 E F2(declar)108 712.8 Q(e)-.18 E F0 -.2(bu)2.705 G .205
(iltin commands and).2 F F2 .205(Arithmetic Expansion)2.705 F F0 2.705
(\). Ev)B .205(aluation is done in \214x)-.25 F .206(ed-width inte)-.15
-F .206(gers with no)-.15 F .429(check for o)108 712.8 R -.15(ve)-.15 G
-(r\215o).15 E 1.729 -.65(w, t)-.25 H .429(hough di).65 F .428
-(vision by 0 is trapped and \215agged as an error)-.25 F 5.428(.T)-.55 G
-.428(he operators and their prece-)-5.428 F 1.919(dence, associati)108
-724.8 R(vity)-.25 E 4.419(,a)-.65 G 1.919(nd v)-4.419 F 1.919
-(alues are the same as in the C language.)-.25 F 1.92(The follo)6.92 F
-1.92(wing list of operators is)-.25 F(GNU Bash 4.2)72 768 Q
+F .206(gers with no)-.15 F 2.07(check for o)108 724.8 R -.15(ve)-.15 G
+(r\215o).15 E 3.37 -.65(w, t)-.25 H 2.07(hough di).65 F 2.07
+(vision by 0 is trapped and \215agged as an error)-.25 F 7.07(.T)-.55 G
+2.07(he operators and their)-7.07 F(GNU Bash 4.2)72 768 Q
(2011 September 25)135.955 E(27)185.115 E 0 Cg EP
%%Page: 28 28
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E(grouped into le)108 84 Q -.15(ve)-.25 G
+-.35 E .645(precedence, associati)108 84 R(vity)-.25 E 3.145(,a)-.65 G
+.646(nd v)-3.145 F .646(alues are the same as in the C language.)-.25 F
+.646(The follo)5.646 F .646(wing list of operators is)-.25 F
+(grouped into le)108 96 Q -.15(ve)-.25 G
(ls of equal-precedence operators.).15 E(The le)5 E -.15(ve)-.25 G
(ls are listed in order of decreasing precedence.).15 E/F1 10
-/Times-Italic@0 SF(id)108 100.8 Q/F2 10/Times-Bold@0 SF(++)A F1(id)2.5 E
-F2<adad>A F0 -.25(va)144 112.8 S
-(riable post-increment and post-decrement).25 E F2(++)108 124.8 Q F1(id)
-A F2<adad>2.5 E F1(id)A F0 -.25(va)144 136.8 S
-(riable pre-increment and pre-decrement).25 E F2 2.5<ad2b>108 148.8 S F0
-(unary minus and plus)19.6 E F2 2.5(!~)108 160.8 S F0
+/Times-Italic@0 SF(id)108 112.8 Q/F2 10/Times-Bold@0 SF(++)A F1(id)2.5 E
+F2<adad>A F0 -.25(va)144 124.8 S
+(riable post-increment and post-decrement).25 E F2(++)108 136.8 Q F1(id)
+A F2<adad>2.5 E F1(id)A F0 -.25(va)144 148.8 S
+(riable pre-increment and pre-decrement).25 E F2 2.5<ad2b>108 160.8 S F0
+(unary minus and plus)19.6 E F2 2.5(!~)108 172.8 S F0
(logical and bitwise ne)24.34 E -.05(ga)-.15 G(tion).05 E F2(**)108
-172.8 Q F0 -.15(ex)26 G(ponentiation).15 E F2 2.5(*/%)108 184.8 S F0
+184.8 Q F0 -.15(ex)26 G(ponentiation).15 E F2 2.5(*/%)108 196.8 S F0
(multiplication, di)10.72 E(vision, remainder)-.25 E F2 2.5<2bad>108
-196.8 S F0(addition, subtraction)19.6 E F2(<< >>)108 208.8 Q F0
-(left and right bitwise shifts)10.7 E F2(<= >= < >)108 220.8 Q F0
-(comparison)144 232.8 Q F2(== !=)108 244.8 Q F0(equality and inequality)
-13.07 E F2(&)108 256.8 Q F0(bitwise AND)27.67 E F2(^)108 268.8 Q F0
+208.8 S F0(addition, subtraction)19.6 E F2(<< >>)108 220.8 Q F0
+(left and right bitwise shifts)10.7 E F2(<= >= < >)108 232.8 Q F0
+(comparison)144 244.8 Q F2(== !=)108 256.8 Q F0(equality and inequality)
+13.07 E F2(&)108 268.8 Q F0(bitwise AND)27.67 E F2(^)108 280.8 Q F0
(bitwise e)32.67 E(xclusi)-.15 E .3 -.15(ve O)-.25 H(R).15 E F2(|)108
-280.8 Q F0(bitwise OR)33.8 E F2(&&)108 292.8 Q F0(logical AND)19.34 E F2
-(||)108 304.8 Q F0(logical OR)31.6 E F1 -.2(ex)108 316.8 S(pr).2 E F2(?)
+292.8 Q F0(bitwise OR)33.8 E F2(&&)108 304.8 Q F0(logical AND)19.34 E F2
+(||)108 316.8 Q F0(logical OR)31.6 E F1 -.2(ex)108 328.8 S(pr).2 E F2(?)
A F1 -.2(ex)C(pr).2 E F2(:)A F1 -.2(ex)C(pr).2 E F0
-(conditional operator)144 328.8 Q F2 2.5(=*)108 340.8 S 2.5(=/)-2.5 G
+(conditional operator)144 340.8 Q F2 2.5(=*)108 352.8 S 2.5(=/)-2.5 G
2.5(=%)-2.5 G 2.5(=+)-2.5 G 2.5<3dad>-2.5 G 2.5(=<)-2.5 G
-(<= >>= &= ^= |=)-2.5 E F0(assignment)144 352.8 Q F1 -.2(ex)108 364.8 S
-(pr1).2 E F2(,)2.5 E F1 -.2(ex)2.5 G(pr2).2 E F0(comma)144 376.8 Q .68
-(Shell v)108 393.6 R .68(ariables are allo)-.25 F .68
+(<= >>= &= ^= |=)-2.5 E F0(assignment)144 364.8 Q F1 -.2(ex)108 376.8 S
+(pr1).2 E F2(,)2.5 E F1 -.2(ex)2.5 G(pr2).2 E F0(comma)144 388.8 Q .68
+(Shell v)108 405.6 R .68(ariables are allo)-.25 F .68
(wed as operands; parameter e)-.25 F .68
(xpansion is performed before the e)-.15 F .68(xpression is e)-.15 F
--.25(va)-.25 G(lu-).25 E 3.507(ated. W)108 405.6 R 1.007(ithin an e)-.4
+-.25(va)-.25 G(lu-).25 E 3.507(ated. W)108 417.6 R 1.007(ithin an e)-.4
F 1.007(xpression, shell v)-.15 F 1.007
(ariables may also be referenced by name without using the parameter)
--.25 F -.15(ex)108 417.6 S 1.041(pansion syntax.).15 F 3.541(As)6.041 G
+-.25 F -.15(ex)108 429.6 S 1.041(pansion syntax.).15 F 3.541(As)6.041 G
1.041(hell v)-3.541 F 1.041(ariable that is null or unset e)-.25 F -.25
(va)-.25 G 1.04(luates to 0 when referenced by name without).25 F 1.466
-(using the parameter e)108 429.6 R 1.466(xpansion syntax.)-.15 F 1.467
+(using the parameter e)108 441.6 R 1.466(xpansion syntax.)-.15 F 1.467
(The v)6.466 F 1.467(alue of a v)-.25 F 1.467(ariable is e)-.25 F -.25
(va)-.25 G 1.467(luated as an arithmetic e).25 F(xpression)-.15 E 1.39
-(when it is referenced, or when a v)108 441.6 R 1.389
+(when it is referenced, or when a v)108 453.6 R 1.389
(ariable which has been gi)-.25 F -.15(ve)-.25 G 3.889(nt).15 G(he)
-3.889 E F1(inte)3.889 E -.1(ge)-.4 G(r).1 E F0(attrib)3.889 E 1.389
(ute using)-.2 F F2(declar)3.889 E 3.889(e-)-.18 G(i)-3.889 E F0(is)
-3.889 E .332(assigned a v)108 453.6 R 2.832(alue. A)-.25 F .332(null v)
+3.889 E .332(assigned a v)108 465.6 R 2.832(alue. A)-.25 F .332(null v)
2.832 F .332(alue e)-.25 F -.25(va)-.25 G .332(luates to 0.).25 F 2.832
(As)5.332 G .332(hell v)-2.832 F .332(ariable need not ha)-.25 F .632
-.15(ve i)-.2 H(ts).15 E F1(inte)2.832 E -.1(ge)-.4 G(r).1 E F0(attrib)
-2.832 E .333(ute turned on)-.2 F(to be used in an e)108 465.6 Q
+2.832 E .333(ute turned on)-.2 F(to be used in an e)108 477.6 Q
(xpression.)-.15 E 1.406
-(Constants with a leading 0 are interpreted as octal numbers.)108 482.4
+(Constants with a leading 0 are interpreted as octal numbers.)108 494.4
R 3.906(Al)6.406 G 1.406(eading 0x or 0X denotes he)-3.906 F(xadecimal.)
--.15 E .112(Otherwise, numbers tak)108 494.4 R 2.612(et)-.1 G .112
+-.15 E .112(Otherwise, numbers tak)108 506.4 R 2.612(et)-.1 G .112
(he form [)-2.612 F F1(base#)A F0 .112(]n, where the optional)B F1(base)
2.612 E F0 .113(is a decimal number between 2 and 64)2.612 F .534
-(representing the arithmetic base, and)108 506.4 R F1(n)3.034 E F0 .534
+(representing the arithmetic base, and)108 518.4 R F1(n)3.034 E F0 .534
(is a number in that base.)3.034 F(If)5.533 E F1(base#)3.033 E F0 .533
(is omitted, then base 10 is used.)3.033 F .915
-(The digits greater than 9 are represented by the lo)108 518.4 R .916
+(The digits greater than 9 are represented by the lo)108 530.4 R .916
(wercase letters, the uppercase letters, @, and _, in that)-.25 F(order)
-108 530.4 Q 5.671(.I)-.55 G(f)-5.671 E F1(base)3.171 E F0 .671
+108 542.4 Q 5.671(.I)-.55 G(f)-5.671 E F1(base)3.171 E F0 .671
(is less than or equal to 36, lo)3.171 F .67
(wercase and uppercase letters may be used interchangeably to)-.25 F
-(represent numbers between 10 and 35.)108 542.4 Q .234(Operators are e)
-108 559.2 R -.25(va)-.25 G .234(luated in order of precedence.).25 F
+(represent numbers between 10 and 35.)108 554.4 Q .234(Operators are e)
+108 571.2 R -.25(va)-.25 G .234(luated in order of precedence.).25 F
(Sub-e)5.234 E .234(xpressions in parentheses are e)-.15 F -.25(va)-.25
-G .235(luated \214rst and may).25 F -.15(ove)108 571.2 S
+G .235(luated \214rst and may).25 F -.15(ove)108 583.2 S
(rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E/F3 10.95
-/Times-Bold@0 SF(CONDITION)72 588 Q(AL EXPRESSIONS)-.219 E F0 .256
-(Conditional e)108 600 R .256(xpressions are used by the)-.15 F F2([[)
+/Times-Bold@0 SF(CONDITION)72 600 Q(AL EXPRESSIONS)-.219 E F0 .256
+(Conditional e)108 612 R .256(xpressions are used by the)-.15 F F2([[)
2.755 E F0 .255(compound command and the)2.755 F F2(test)2.755 E F0(and)
2.755 E F2([)2.755 E F0 -.2(bu)2.755 G .255(iltin commands to test).2 F
-.77(\214le attrib)108 612 R .77
+.77(\214le attrib)108 624 R .77
(utes and perform string and arithmetic comparisons.)-.2 F .77
(Expressions are formed from the follo)5.77 F(wing)-.25 E 1.041
-(unary or binary primaries.)108 624 R 1.041(If an)6.041 F(y)-.15 E F1
+(unary or binary primaries.)108 636 R 1.041(If an)6.041 F(y)-.15 E F1
(\214le)3.541 E F0(ar)3.541 E 1.04
(gument to one of the primaries is of the form)-.18 F F1(/de)3.54 E
-(v/fd/n)-.15 E F0 3.54(,t)C 1.04(hen \214le)-3.54 F(descriptor)108 636 Q
+(v/fd/n)-.15 E F0 3.54(,t)C 1.04(hen \214le)-3.54 F(descriptor)108 648 Q
F1(n)3.788 E F0 1.289(is check)3.788 F 3.789(ed. If)-.1 F(the)3.789 E F1
(\214le)3.789 E F0(ar)3.789 E 1.289
(gument to one of the primaries is one of)-.18 F F1(/de)3.789 E(v/stdin)
-.15 E F0(,)A F1(/de)3.789 E(v/stdout)-.15 E F0 3.789(,o)C(r)-3.789 E F1
-(/de)108 648 Q(v/stderr)-.15 E F0 2.5<2c8c>C
+(/de)108 660 Q(v/stderr)-.15 E F0 2.5<2c8c>C
(le descriptor 0, 1, or 2, respecti)-2.5 E -.15(ve)-.25 G(ly).15 E 2.5
(,i)-.65 G 2.5(sc)-2.5 G(heck)-2.5 E(ed.)-.1 E .722
(Unless otherwise speci\214ed, primaries that operate on \214les follo)
-108 664.8 R 3.221(ws)-.25 G .721(ymbolic links and operate on the tar)
--3.221 F(get)-.18 E(of the link, rather than the link itself.)108 676.8
-Q 1.095(When used with)108 694.8 R F2([[)3.595 E F0 3.595(,t)C(he)-3.595
+108 676.8 R 3.221(ws)-.25 G .721(ymbolic links and operate on the tar)
+-3.221 F(get)-.18 E(of the link, rather than the link itself.)108 688.8
+Q 1.095(When used with)108 706.8 R F2([[)3.595 E F0 3.595(,t)C(he)-3.595
E F2(<)3.595 E F0(and)3.595 E F2(>)3.595 E F0 1.095(operators sort le)
3.595 F 1.095(xicographically using the current locale.)-.15 F(The)6.096
E F2(test)3.596 E F0(com-)3.596 E(mand sorts using ASCII ordering.)108
-706.8 Q(GNU Bash 4.2)72 768 Q(2011 September 25)135.955 E(28)185.115 E 0
+718.8 Q(GNU Bash 4.2)72 768 Q(2011 September 25)135.955 E(28)185.115 E 0
Cg EP
%%Page: 29 29
%%BeginPageSetup
.088(stop e)144 208.8 R -.15(xe)-.15 G .087
(cuting that script and return either).15 F F2(n)2.947 E F0 .087
(or the e)2.827 F .087(xit status of the last command e)-.15 F -.15(xe)
--.15 G .087(cuted within).15 F .621(the script as the e)144 220.8 R .621
-(xit status of the script.)-.15 F .622(The return status is non-zero if)
-5.622 F F1 -.18(re)3.122 G(tur).18 E(n)-.15 E F0 .622(is used outside a)
-3.122 F .87(function and not during e)144 232.8 R -.15(xe)-.15 G .869
-(cution of a script by).15 F F1(.)3.369 E F0(or)4.202 E F1(sour)3.369 E
-(ce)-.18 E F0 5.869(.A)C 1.169 -.15(ny c)-5.869 H .869
-(ommand associated with the).15 F F1(RETURN)144 244.8 Q F0(trap is e)2.5
+-.15 G .087(cuted within).15 F .613(the script as the e)144 220.8 R .613
+(xit status of the script.)-.15 F(If)5.613 E F2(n)3.113 E F0 .613
+(is supplied, the return v)3.113 F .613
+(alue is its least signi\214cant 8)-.25 F 2.511(bits. The)144 232.8 R
+.011(return status is non-zero if)2.511 F F1 -.18(re)2.511 G(tur).18 E
+(n)-.15 E F0 .011(is supplied a non-numeric ar)2.511 F .01
+(gument, or is used outside)-.18 F 2.909(af)144 244.8 S .409
+(unction and not during e)-2.909 F -.15(xe)-.15 G .41
+(cution of a script by).15 F F1(.)2.91 E F0(or)3.743 E F1(sour)2.91 E
+(ce)-.18 E F0 5.41(.A)C .71 -.15(ny c)-5.41 H .41
+(ommand associated with the).15 F F1(RETURN)144 256.8 Q F0(trap is e)2.5
E -.15(xe)-.15 G(cuted before e).15 E -.15(xe)-.15 G
-(cution resumes after the function or script.).15 E F1(set)108 261.6 Q
+(cution resumes after the function or script.).15 E F1(set)108 273.6 Q
F0([)2.5 E F1(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1<ad6f>-2.5 E
F2(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E
-F1(set)108 273.6 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1
+F1(set)108 285.6 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1
(+o)-2.5 E F2(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0
-(...])2.5 E -.4(Wi)144 285.6 S .835(thout options, the name and v).4 F
-.835(alue of each shell v)-.25 F .836
+(...])2.5 E -.4(Wi)144 297.6 S .836(thout options, the name and v).4 F
+.835(alue of each shell v)-.25 F .835
(ariable are displayed in a format that can be)-.25 F .784
-(reused as input for setting or resetting the currently-set v)144 297.6
-R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .783
-(riables cannot be).25 F 2.946(reset. In)144 309.6 R F2 .447(posix mode)
-2.946 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
+(reused as input for setting or resetting the currently-set v)144 309.6
+R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784
+(riables cannot be).25 F 2.947(reset. In)144 321.6 R F2 .447(posix mode)
+2.947 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
(ariables are listed.)-.25 F .447
-(The output is sorted according to the current)5.447 F 3.531
-(locale. When)144 321.6 R 1.031(options are speci\214ed, the)3.531 F
-3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.53(utes. An)
--.2 F 3.53(ya)-.15 G -.18(rg)-3.53 G 1.03(uments remaining).18 F 1.623
-(after option processing are treated as v)144 333.6 R 1.624
+(The output is sorted according to the current)5.447 F 3.53
+(locale. When)144 333.6 R 1.031(options are speci\214ed, the)3.53 F
+3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An)
+-.2 F 3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F
+1.624(after option processing are treated as v)144 345.6 R 1.623
(alues for the positional parameters and are assigned, in)-.25 F(order)
-144 345.6 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A
+144 357.6 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5 E F0(,)A
F1 2.5(... $)2.5 F F2(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3
--.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 357.6 Q
-F0 .54(Automatically mark v)29.3 F .539
-(ariables and functions which are modi\214ed or created for e)-.25 F
-.539(xport to)-.15 F(the en)184 369.6 Q
-(vironment of subsequent commands.)-.4 E F1<ad62>144 381.6 Q F0 .131
+-.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 369.6 Q
+F0 .539(Automatically mark v)29.3 F .539
+(ariables and functions which are modi\214ed or created for e)-.25 F .54
+(xport to)-.15 F(the en)184 381.6 Q(vironment of subsequent commands.)
+-.4 E F1<ad62>144 393.6 Q F0 .132
(Report the status of terminated background jobs immediately)28.74 F
-2.632(,r)-.65 G .132(ather than before the ne)-2.632 F(xt)-.15 E
-(primary prompt.)184 393.6 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
--.25 H(nly when job control is enabled.).15 E F1<ad65>144 405.6 Q F0
-.088(Exit immediately if a)29.86 F F2(pipeline)2.588 E F0 .087
-(\(which may consist of a single)2.588 F F2 .087(simple command)2.587 F
-F0 .087(\), a)B F2(list)2.587 E F0 2.587(,o)C(r)-2.587 E(a)184 417.6 Q
-F2 1.293(compound command)3.793 F F0(\(see)3.793 E/F3 9/Times-Bold@0 SF
-1.293(SHELL GRAMMAR)3.793 F F0(abo)3.544 E -.15(ve)-.15 G 3.794(\), e)
-.15 F 1.294(xits with a non-zero status.)-.15 F .08
-(The shell does not e)184 429.6 R .079(xit if the command that f)-.15 F
-.079(ails is part of the command list immediately)-.1 F(follo)184 441.6
-Q 1.654(wing a)-.25 F F1(while)4.154 E F0(or)4.154 E F1(until)4.154 E F0
--.1(ke)4.154 G(yw)-.05 E 1.655(ord, part of the test follo)-.1 F 1.655
-(wing the)-.25 F F1(if)4.155 E F0(or)4.155 E F1(elif)4.155 E F0(reserv)
-4.155 E(ed)-.15 E -.1(wo)184 453.6 S .582(rds, part of an).1 F 3.082(yc)
--.15 G .582(ommand e)-3.082 F -.15(xe)-.15 G .581(cuted in a).15 F F1
-(&&)3.081 E F0(or)3.081 E F1(||)3.081 E F0 .581(list e)3.081 F .581
-(xcept the command follo)-.15 F(wing)-.25 E .917(the \214nal)184 465.6 R
-F1(&&)3.417 E F0(or)3.417 E F1(||)3.417 E F0 3.417(,a)C 1.217 -.15(ny c)
--3.417 H .918(ommand in a pipeline b).15 F .918
-(ut the last, or if the command')-.2 F 3.418(sr)-.55 G(eturn)-3.418 E
--.25(va)184 477.6 S .661(lue is being in).25 F -.15(ve)-.4 G .661
-(rted with).15 F F1(!)3.161 E F0 5.661(.I)C 3.161(fac)-5.661 G .66
-(ompound command other than a subshell returns a)-3.161 F 1.112
-(non-zero status because a command f)184 489.6 R 1.112(ailed while)-.1 F
-F1<ad65>3.612 E F0 -.1(wa)3.612 G 3.612(sb).1 G 1.113
-(eing ignored, the shell does)-3.612 F .178(not e)184 501.6 R 2.678
-(xit. A)-.15 F .178(trap on)2.678 F F1(ERR)2.678 E F0 2.678(,i)C 2.678
-(fs)-2.678 G .178(et, is e)-2.678 F -.15(xe)-.15 G .178
-(cuted before the shell e).15 F 2.677(xits. This)-.15 F .177
-(option applies to)2.677 F .617(the shell en)184 513.6 R .617
+2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E
+(primary prompt.)184 405.6 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
+-.25 H(nly when job control is enabled.).15 E F1<ad65>144 417.6 Q F0
+.087(Exit immediately if a)29.86 F F2(pipeline)2.587 E F0 .087
+(\(which may consist of a single)2.587 F F2 .088(simple command)2.588 F
+F0 .088(\), a)B F2(list)2.588 E F0 2.588(,o)C(r)-2.588 E(a)184 429.6 Q
+F2 1.294(compound command)3.794 F F0(\(see)3.794 E/F3 9/Times-Bold@0 SF
+1.294(SHELL GRAMMAR)3.794 F F0(abo)3.544 E -.15(ve)-.15 G 3.793(\), e)
+.15 F 1.293(xits with a non-zero status.)-.15 F .079
+(The shell does not e)184 441.6 R .079(xit if the command that f)-.15 F
+.08(ails is part of the command list immediately)-.1 F(follo)184 453.6 Q
+1.655(wing a)-.25 F F1(while)4.155 E F0(or)4.155 E F1(until)4.155 E F0
+-.1(ke)4.155 G(yw)-.05 E 1.655(ord, part of the test follo)-.1 F 1.654
+(wing the)-.25 F F1(if)4.154 E F0(or)4.154 E F1(elif)4.154 E F0(reserv)
+4.154 E(ed)-.15 E -.1(wo)184 465.6 S .581(rds, part of an).1 F 3.081(yc)
+-.15 G .581(ommand e)-3.081 F -.15(xe)-.15 G .581(cuted in a).15 F F1
+(&&)3.081 E F0(or)3.081 E F1(||)3.081 E F0 .582(list e)3.082 F .582
+(xcept the command follo)-.15 F(wing)-.25 E .918(the \214nal)184 477.6 R
+F1(&&)3.418 E F0(or)3.418 E F1(||)3.418 E F0 3.418(,a)C 1.218 -.15(ny c)
+-3.418 H .918(ommand in a pipeline b).15 F .917
+(ut the last, or if the command')-.2 F 3.417(sr)-.55 G(eturn)-3.417 E
+-.25(va)184 489.6 S .66(lue is being in).25 F -.15(ve)-.4 G .66
+(rted with).15 F F1(!)3.16 E F0 5.661(.I)C 3.161(fac)-5.661 G .661
+(ompound command other than a subshell returns a)-3.161 F 1.113
+(non-zero status because a command f)184 501.6 R 1.112(ailed while)-.1 F
+F1<ad65>3.612 E F0 -.1(wa)3.612 G 3.612(sb).1 G 1.112
+(eing ignored, the shell does)-3.612 F .177(not e)184 513.6 R 2.677
+(xit. A)-.15 F .177(trap on)2.677 F F1(ERR)2.677 E F0 2.677(,i)C 2.678
+(fs)-2.677 G .178(et, is e)-2.678 F -.15(xe)-.15 G .178
+(cuted before the shell e).15 F 2.678(xits. This)-.15 F .178
+(option applies to)2.678 F .618(the shell en)184 525.6 R .617
(vironment and each subshell en)-.4 F .617(vironment separately \(see)
--.4 F F3 .618(COMMAND EXE-)3.118 F .643(CUTION ENVIR)184 525.6 R(ONMENT)
+-.4 F F3 .617(COMMAND EXE-)3.117 F .642(CUTION ENVIR)184 537.6 R(ONMENT)
-.27 E F0(abo)2.893 E -.15(ve)-.15 G .643
(\), and may cause subshells to e).15 F .643(xit before e)-.15 F -.15
-(xe)-.15 G .642(cuting all).15 F(the commands in the subshell.)184 537.6
-Q F1<ad66>144 549.6 Q F0(Disable pathname e)30.97 E(xpansion.)-.15 E F1
-<ad68>144 561.6 Q F0 2.238(Remember the location of commands as the)
-28.74 F 4.738(ya)-.15 G 2.239(re look)-4.738 F 2.239(ed up for e)-.1 F
--.15(xe)-.15 G 4.739(cution. This).15 F(is)4.739 E(enabled by def)184
-573.6 Q(ault.)-.1 E F1<ad6b>144 585.6 Q F0 .514(All ar)28.74 F .514
+(xe)-.15 G .643(cuting all).15 F(the commands in the subshell.)184 549.6
+Q F1<ad66>144 561.6 Q F0(Disable pathname e)30.97 E(xpansion.)-.15 E F1
+<ad68>144 573.6 Q F0 2.239(Remember the location of commands as the)
+28.74 F 4.738(ya)-.15 G 2.238(re look)-4.738 F 2.238(ed up for e)-.1 F
+-.15(xe)-.15 G 4.738(cution. This).15 F(is)4.738 E(enabled by def)184
+585.6 Q(ault.)-.1 E F1<ad6b>144 597.6 Q F0 .513(All ar)28.74 F .514
(guments in the form of assignment statements are placed in the en)-.18
-F .513(vironment for a)-.4 F
-(command, not just those that precede the command name.)184 597.6 Q F1
-<ad6d>144 609.6 Q F0 .148(Monitor mode.)25.97 F .148
-(Job control is enabled.)5.148 F .149(This option is on by def)5.148 F
-.149(ault for interacti)-.1 F .449 -.15(ve s)-.25 H(hells).15 E .651
-(on systems that support it \(see)184 621.6 R F3 .651(JOB CONTR)3.151 F
-(OL)-.27 E F0(abo)2.901 E -.15(ve)-.15 G 3.151(\). All).15 F .65
-(processes run in a separate)3.151 F .678(process group.)184 633.6 R
-.679(When a background job completes, the shell prints a line containin\
-g its)5.678 F -.15(ex)184 645.6 S(it status.).15 E F1<ad6e>144 657.6 Q
-F0 .653(Read commands b)28.74 F .653(ut do not e)-.2 F -.15(xe)-.15 G
-.653(cute them.).15 F .652(This may be used to check a shell script for)
-5.653 F(syntax errors.)184 669.6 Q(This is ignored by interacti)5 E .3
--.15(ve s)-.25 H(hells.).15 E F1<ad6f>144 681.6 Q F2(option\255name)2.5
-E F0(The)184 693.6 Q F2(option\255name)2.5 E F0(can be one of the follo)
-2.5 E(wing:)-.25 E F1(allexport)184 705.6 Q F0(Same as)224 717.6 Q F1
-<ad61>2.5 E F0(.)A(GNU Bash 4.2)72 768 Q(2011 September 25)135.955 E(62)
+F .514(vironment for a)-.4 F
+(command, not just those that precede the command name.)184 609.6 Q F1
+<ad6d>144 621.6 Q F0 .149(Monitor mode.)25.97 F .149
+(Job control is enabled.)5.149 F .148(This option is on by def)5.149 F
+.148(ault for interacti)-.1 F .448 -.15(ve s)-.25 H(hells).15 E .65
+(on systems that support it \(see)184 633.6 R F3 .651(JOB CONTR)3.151 F
+(OL)-.27 E F0(abo)2.901 E -.15(ve)-.15 G 3.151(\). All).15 F .651
+(processes run in a separate)3.151 F .679(process group.)184 645.6 R
+.678(When a background job completes, the shell prints a line containin\
+g its)5.679 F -.15(ex)184 657.6 S(it status.).15 E F1<ad6e>144 669.6 Q
+F0 .652(Read commands b)28.74 F .652(ut do not e)-.2 F -.15(xe)-.15 G
+.652(cute them.).15 F .653(This may be used to check a shell script for)
+5.652 F(syntax errors.)184 681.6 Q(This is ignored by interacti)5 E .3
+-.15(ve s)-.25 H(hells.).15 E F1<ad6f>144 693.6 Q F2(option\255name)2.5
+E F0(The)184 705.6 Q F2(option\255name)2.5 E F0(can be one of the follo)
+2.5 E(wing:)-.25 E(GNU Bash 4.2)72 768 Q(2011 September 25)135.955 E(62)
185.115 E 0 Cg EP
%%Page: 63 63
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(braceexpand)184 84 Q F0(Same as)224 96 Q F1
-<ad42>2.5 E F0(.)A F1(emacs)184 108 Q F0 .089
+-.35 E/F1 10/Times-Bold@0 SF(allexport)184 84 Q F0(Same as)224 96 Q F1
+<ad61>2.5 E F0(.)A F1(braceexpand)184 108 Q F0(Same as)224 120 Q F1
+<ad42>2.5 E F0(.)A F1(emacs)184 132 Q F0 .089
(Use an emacs-style command line editing interf)13.9 F 2.589(ace. This)
-.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
-(when the shell is interacti)224 120 R -.15(ve)-.25 G 3.45(,u).15 G .95
+(when the shell is interacti)224 144 R -.15(ve)-.25 G 3.45(,u).15 G .95
(nless the shell is started with the)-3.45 F F1(\255\255noediting)3.45 E
-F0 2.5(option. This)224 132 R(also af)2.5 E(fects the editing interf)
+F0 2.5(option. This)224 156 R(also af)2.5 E(fects the editing interf)
-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1(err)
-184 144 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A F1
-(errtrace)184 156 Q F0(Same as)5.03 E F1<ad45>2.5 E F0(.)A F1(functrace)
-184 168 Q F0(Same as)224 180 Q F1<ad54>2.5 E F0(.)A F1(hashall)184 192 Q
-F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1(histexpand)184 204 Q F0
-(Same as)224 216 Q F1<ad48>2.5 E F0(.)A F1(history)184 228 Q F0 .586
+184 168 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A F1
+(errtrace)184 180 Q F0(Same as)5.03 E F1<ad45>2.5 E F0(.)A F1(functrace)
+184 192 Q F0(Same as)224 204 Q F1<ad54>2.5 E F0(.)A F1(hashall)184 216 Q
+F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1(histexpand)184 228 Q F0
+(Same as)224 240 Q F1<ad48>2.5 E F0(.)A F1(history)184 252 Q F0 .587
(Enable command history)10 F 3.087(,a)-.65 G 3.087(sd)-3.087 G .587
(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder).15 E/F2 9
/Times-Bold@0 SF(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F3 9/Times-Roman@0 SF
-(.)A F0 .587(This option is)5.087 F(on by def)224 240 Q
+(.)A F0 .587(This option is)5.087 F(on by def)224 264 Q
(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184
-252 Q(eeof)-.18 E F0 1.657(The ef)224 264 R 1.657
+276 Q(eeof)-.18 E F0 1.656(The ef)224 288 R 1.656
(fect is as if the shell command)-.25 F/F4 10/Courier@0 SF(IGNOREEOF=10)
-4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted).15 E(\(see)224
-276 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
-.15 E F1 -.1(ke)184 288 S(yw).1 E(ord)-.1 E F0(Same as)224 300 Q F1
-<ad6b>2.5 E F0(.)A F1(monitor)184 312 Q F0(Same as)5.56 E F1<ad6d>2.5 E
-F0(.)A F1(noclob)184 324 Q(ber)-.1 E F0(Same as)224 336 Q F1<ad43>2.5 E
-F0(.)A F1(noexec)184 348 Q F0(Same as)11.12 E F1<ad6e>2.5 E F0(.)A F1
-(noglob)184 360 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1(nolog)184
-372 Q F0(Currently ignored.)16.66 E F1(notify)184 384 Q F0(Same as)15 E
-F1<ad62>2.5 E F0(.)A F1(nounset)184 396 Q F0(Same as)6.66 E F1<ad75>2.5
-E F0(.)A F1(onecmd)184 408 Q F0(Same as)6.67 E F1<ad74>2.5 E F0(.)A F1
-(ph)184 420 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E F0(.)A F1
-(pipefail)184 432 Q F0 1.029(If set, the return v)7.77 F 1.029
-(alue of a pipeline is the v)-.25 F 1.03
-(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 444 R
+4.157 E F0 1.657(had been e)4.157 F -.15(xe)-.15 G(cuted).15 E(\(see)224
+300 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
+.15 E F1 -.1(ke)184 312 S(yw).1 E(ord)-.1 E F0(Same as)224 324 Q F1
+<ad6b>2.5 E F0(.)A F1(monitor)184 336 Q F0(Same as)5.56 E F1<ad6d>2.5 E
+F0(.)A F1(noclob)184 348 Q(ber)-.1 E F0(Same as)224 360 Q F1<ad43>2.5 E
+F0(.)A F1(noexec)184 372 Q F0(Same as)11.12 E F1<ad6e>2.5 E F0(.)A F1
+(noglob)184 384 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1(nolog)184
+396 Q F0(Currently ignored.)16.66 E F1(notify)184 408 Q F0(Same as)15 E
+F1<ad62>2.5 E F0(.)A F1(nounset)184 420 Q F0(Same as)6.66 E F1<ad75>2.5
+E F0(.)A F1(onecmd)184 432 Q F0(Same as)6.67 E F1<ad74>2.5 E F0(.)A F1
+(ph)184 444 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E F0(.)A F1
+(pipefail)184 456 Q F0 1.03(If set, the return v)7.77 F 1.029
+(alue of a pipeline is the v)-.25 F 1.029
+(alue of the last \(rightmost\) com-)-.25 F 1.136(mand to e)224 468 R
1.136
(xit with a non-zero status, or zero if all commands in the pipeline)
--.15 F -.15(ex)224 456 S(it successfully).15 E 5(.T)-.65 G
-(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 468 Q F0
-2.09(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
+-.15 F -.15(ex)224 480 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 492 Q F0
+2.091(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091
-(fers from the)-.25 F(POSIX standard to match the standard \()224 480 Q
-/F5 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 492 Q(vileged)
--.1 E F0(Same as)224 504 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 516 S
-(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 528 Q F0
-1.466(Use a vi-style command line editing interf)32.22 F 3.965
-(ace. This)-.1 F 1.465(also af)3.965 F 1.465(fects the editing)-.25 F
-(interf)224 540 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0
-(.)A F1(xtrace)184 552 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184
-570 Q F1<ad6f>3.052 E F0 .552(is supplied with no)3.052 F F5
-(option\255name)3.053 E F0 3.053(,t)C .553(he v)-3.053 F .553
-(alues of the current options are printed.)-.25 F(If)5.553 E F1(+o)184
-582 Q F0 1.072(is supplied with no)3.572 F F5(option\255name)3.572 E F0
-3.572(,a)C 1.071(series of)-.001 F F1(set)3.571 E F0 1.071
-(commands to recreate the current)3.571 F
-(option settings is displayed on the standard output.)184 594 Q F1<ad70>
-144 606 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F5(privile)4.821 E -.1
-(ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F
-F2($ENV)3.572 E F0(and)3.322 E F2($B)3.572 E(ASH_ENV)-.27 E F0 1.072
-(\214les are not pro-)3.322 F 1.501
-(cessed, shell functions are not inherited from the en)184 618 R 1.5
-(vironment, and the)-.4 F F2(SHELLOPTS)4 E F3(,)A F2 -.27(BA)184 630 S
-(SHOPTS).27 E F3(,)A F2(CDP)2.774 E -.855(AT)-.666 G(H).855 E F3(,)A F0
-(and)2.774 E F2(GLOBIGNORE)3.024 E F0 -.25(va)2.774 G .524
-(riables, if the).25 F 3.025(ya)-.15 G .525(ppear in the en)-3.025 F
-(vironment,)-.4 E .38(are ignored.)184 642 R .38
-(If the shell is started with the ef)5.38 F(fecti)-.25 E .679 -.15(ve u)
--.25 H .379(ser \(group\) id not equal to the real).15 F .461
-(user \(group\) id, and the)184 654 R F1<ad70>2.961 E F0 .461
-(option is not supplied, these actions are tak)2.961 F .462
-(en and the ef)-.1 F(fec-)-.25 E(ti)184 666 Q .695 -.15(ve u)-.25 H .395
+(fers from the)-.25 F(POSIX standard to match the standard \()224 504 Q
+/F5 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 516 Q(vileged)
+-.1 E F0(Same as)224 528 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 540 S
+(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 552 Q F0
+1.465(Use a vi-style command line editing interf)32.22 F 3.966
+(ace. This)-.1 F 1.466(also af)3.966 F 1.466(fects the editing)-.25 F
+(interf)224 564 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0
+(.)A F1(xtrace)184 576 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184
+594 Q F1<ad6f>3.053 E F0 .553(is supplied with no)3.053 F F5
+(option\255name)3.053 E F0 3.053(,t)C .553(he v)-3.053 F .552
+(alues of the current options are printed.)-.25 F(If)5.552 E F1(+o)184
+606 Q F0 1.071(is supplied with no)3.571 F F5(option\255name)3.571 E F0
+3.571(,as)C 1.071(eries of)-3.571 F F1(set)3.572 E F0 1.072
+(commands to recreate the current)3.572 F
+(option settings is displayed on the standard output.)184 618 Q F1<ad70>
+144 630 Q F0 -.45(Tu)28.74 G 1.072(rn on).45 F F5(privile)4.822 E -.1
+(ge)-.4 G(d).1 E F0 3.572(mode. In)4.342 F 1.072(this mode, the)3.572 F
+F2($ENV)3.572 E F0(and)3.322 E F2($B)3.572 E(ASH_ENV)-.27 E F0 1.071
+(\214les are not pro-)3.322 F 1.5
+(cessed, shell functions are not inherited from the en)184 642 R 1.501
+(vironment, and the)-.4 F F2(SHELLOPTS)4.001 E F3(,)A F2 -.27(BA)184 654
+S(SHOPTS).27 E F3(,)A F2(CDP)2.775 E -.855(AT)-.666 G(H).855 E F3(,)A F0
+(and)2.775 E F2(GLOBIGNORE)3.025 E F0 -.25(va)2.775 G .524
+(riables, if the).25 F 3.024(ya)-.15 G .524(ppear in the en)-3.024 F
+(vironment,)-.4 E .379(are ignored.)184 666 R .379
+(If the shell is started with the ef)5.379 F(fecti)-.25 E .679 -.15
+(ve u)-.25 H .38(ser \(group\) id not equal to the real).15 F .462
+(user \(group\) id, and the)184 678 R F1<ad70>2.961 E F0 .461
+(option is not supplied, these actions are tak)2.961 F .461
+(en and the ef)-.1 F(fec-)-.25 E(ti)184 690 Q .694 -.15(ve u)-.25 H .394
(ser id is set to the real user id.).15 F .395(If the)5.395 F F1<ad70>
-2.895 E F0 .394(option is supplied at startup, the ef)2.895 F(fecti)-.25
-E -.15(ve)-.25 G .386(user id is not reset.)184 678 R -.45(Tu)5.386 G
-.386(rning this option of).45 F 2.886(fc)-.25 G .387(auses the ef)-2.886
-F(fecti)-.25 E .687 -.15(ve u)-.25 H .387(ser and group ids to be).15 F
-(set to the real user and group ids.)184 690 Q F1<ad74>144 702 Q F0
-(Exit after reading and e)30.97 E -.15(xe)-.15 G(cuting one command.).15
-E F1<ad75>144 714 Q F0 -.35(Tr)28.74 G .044(eat unset v).35 F .044(aria\
-bles and parameters other than the special parameters "@" and "*" as an)
--.25 F 2.12(error when performing parameter e)184 726 R 4.62
-(xpansion. If)-.15 F -.15(ex)4.62 G 2.12
-(pansion is attempted on an unset).15 F(GNU Bash 4.2)72 768 Q
+2.895 E F0 .395(option is supplied at startup, the ef)2.895 F(fecti)-.25
+E -.15(ve)-.25 G .387(user id is not reset.)184 702 R -.45(Tu)5.387 G
+.387(rning this option of).45 F 2.886(fc)-.25 G .386(auses the ef)-2.886
+F(fecti)-.25 E .686 -.15(ve u)-.25 H .386(ser and group ids to be).15 F
+(set to the real user and group ids.)184 714 Q(GNU Bash 4.2)72 768 Q
(2011 September 25)135.955 E(63)185.115 E 0 Cg EP
%%Page: 64 64
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E -.25(va)184 84 S .203(riable or parameter).25 F 2.702(,t)-.4 G
-.202(he shell prints an error message, and, if not interacti)-2.702 F
--.15(ve)-.25 G 2.702(,e).15 G .202(xits with)-2.852 F 2.5(an)184 96 S
-(on-zero status.)-2.5 E/F1 10/Times-Bold@0 SF<ad76>144 108 Q F0
-(Print shell input lines as the)29.3 E 2.5(ya)-.15 G(re read.)-2.5 E F1
-<ad78>144 120 Q F0 .315(After e)29.3 F .315(xpanding each)-.15 F/F2 10
-/Times-Italic@0 SF .315(simple command)2.815 F F0(,)A F1 -.25(fo)2.815 G
-(r).25 E F0(command,)2.815 E F1(case)2.815 E F0(command,)2.815 E F1
-(select)2.815 E F0(command,)2.815 E 1.236(or arithmetic)184 132 R F1
--.25(fo)3.736 G(r).25 E F0 1.236(command, display the e)3.736 F 1.236
-(xpanded v)-.15 F 1.236(alue of)-.25 F/F3 9/Times-Bold@0 SF(PS4)3.736 E
-/F4 9/Times-Roman@0 SF(,)A F0(follo)3.486 E 1.236(wed by the com-)-.25 F
-(mand and its e)184 144 Q(xpanded ar)-.15 E(guments or associated w)-.18
-E(ord list.)-.1 E F1<ad42>144 156 Q F0 2.578(The shell performs brace e)
-27.63 F 2.578(xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0
-(abo)5.078 E -.15(ve)-.15 G 5.079(\). This).15 F 2.579(is on by)5.079 F
-(def)184 168 Q(ault.)-.1 E F1<ad43>144 180 Q F0 .214(If set,)27.08 F F1
-(bash)2.714 E F0 .214(does not o)2.714 F -.15(ve)-.15 G .214
-(rwrite an e).15 F .214(xisting \214le with the)-.15 F F1(>)2.714 E F0
-(,)A F1(>&)2.714 E F0 2.713(,a)C(nd)-2.713 E F1(<>)2.713 E F0 .213
-(redirection opera-)2.713 F 3.053(tors. This)184 192 R .553(may be o)
-3.053 F -.15(ve)-.15 G .553
+-.35 E/F1 10/Times-Bold@0 SF<ad74>144 84 Q F0(Exit after reading and e)
+30.97 E -.15(xe)-.15 G(cuting one command.).15 E F1<ad75>144 96 Q F0
+-.35(Tr)28.74 G .043(eat unset v).35 F .044(ariables and parameters oth\
+er than the special parameters "@" and "*" as an)-.25 F .183
+(error when performing parameter e)184 108 R 2.683(xpansion. If)-.15 F
+-.15(ex)2.683 G .182(pansion is attempted on an unset v).15 F(ari-)-.25
+E .746(able or parameter)184 120 R 3.246(,t)-.4 G .746
+(he shell prints an error message, and, if not interacti)-3.246 F -.15
+(ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184
+132 Q F1<ad76>144 144 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
+-.15 G(re read.)-2.5 E F1<ad78>144 156 Q F0 .315(After e)29.3 F .315
+(xpanding each)-.15 F/F2 10/Times-Italic@0 SF .315(simple command)2.815
+F F0(,)A F1 -.25(fo)2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E
+F0(command,)2.815 E F1(select)2.815 E F0(command,)2.815 E 1.235
+(or arithmetic)184 168 R F1 -.25(fo)3.736 G(r).25 E F0 1.236
+(command, display the e)3.736 F 1.236(xpanded v)-.15 F 1.236(alue of)
+-.25 F/F3 9/Times-Bold@0 SF(PS4)3.736 E/F4 9/Times-Roman@0 SF(,)A F0
+(follo)3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 180 Q
+(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1
+<ad42>144 192 Q F0 2.579(The shell performs brace e)27.63 F 2.578
+(xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0(abo)5.078 E
+-.15(ve)-.15 G 5.078(\). This).15 F 2.578(is on by)5.078 F(def)184 204 Q
+(ault.)-.1 E F1<ad43>144 216 Q F0 .213(If set,)27.08 F F1(bash)2.713 E
+F0 .213(does not o)2.713 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
+(xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0
+2.714(,a)C(nd)-2.714 E F1(<>)2.714 E F0 .214(redirection opera-)2.714 F
+3.054(tors. This)184 228 R .553(may be o)3.053 F -.15(ve)-.15 G .553
(rridden when creating output \214les by using the redirection opera-)
-.15 F(tor)184 204 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
-<ad45>144 216 Q F0 .104(If set, an)27.63 F 2.604(yt)-.15 G .104(rap on)
--2.604 F F1(ERR)2.604 E F0 .103
-(is inherited by shell functions, command substitutions, and com-)2.604
-F .838(mands e)184 228 R -.15(xe)-.15 G .838(cuted in a subshell en).15
-F 3.338(vironment. The)-.4 F F1(ERR)3.338 E F0 .839
-(trap is normally not inherited in)3.339 F(such cases.)184 240 Q F1
-<ad48>144 252 Q F0(Enable)26.52 E F1(!)3.032 E F0 .532
-(style history substitution.)5.532 F .531(This option is on by def)5.532
-F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 264 Q -.15
-(ve)-.25 G(.).15 E F1<ad50>144 276 Q F0 1.164
+.15 F(tor)184 240 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
+<ad45>144 252 Q F0 .103(If set, an)27.63 F 2.603(yt)-.15 G .103(rap on)
+-2.603 F F1(ERR)2.603 E F0 .104
+(is inherited by shell functions, command substitutions, and com-)2.603
+F .839(mands e)184 264 R -.15(xe)-.15 G .839(cuted in a subshell en).15
+F 3.339(vironment. The)-.4 F F1(ERR)3.338 E F0 .838
+(trap is normally not inherited in)3.338 F(such cases.)184 276 Q F1
+<ad48>144 288 Q F0(Enable)26.52 E F1(!)3.031 E F0 .531
+(style history substitution.)5.531 F .531(This option is on by def)5.531
+F .532(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 300 Q -.15
+(ve)-.25 G(.).15 E F1<ad50>144 312 Q F0 1.165
(If set, the shell does not follo)28.19 F 3.664(ws)-.25 G 1.164
-(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.165
-(cuting commands such as).15 F F1(cd)3.665 E F0 2.822
-(that change the current w)184 288 R 2.822(orking directory)-.1 F 7.822
-(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.821
-(ysical directory structure)-.05 F 2.685(instead. By)184 300 R(def)2.685
+(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.164
+(cuting commands such as).15 F F1(cd)3.664 E F0 2.821
+(that change the current w)184 324 R 2.822(orking directory)-.1 F 7.822
+(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.822
+(ysical directory structure)-.05 F 2.686(instead. By)184 336 R(def)2.686
E(ault,)-.1 E F1(bash)2.686 E F0(follo)2.686 E .186
(ws the logical chain of directories when performing com-)-.25 F
-(mands which change the current directory)184 312 Q(.)-.65 E F1<ad54>144
-324 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1
+(mands which change the current directory)184 348 Q(.)-.65 E F1<ad54>144
+360 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G .89(raps on)-3.39 F F1
(DEB)3.39 E(UG)-.1 E F0(and)3.39 E F1(RETURN)3.39 E F0 .89
(are inherited by shell functions, command)3.39 F 1.932
-(substitutions, and commands e)184 336 R -.15(xe)-.15 G 1.932
+(substitutions, and commands e)184 372 R -.15(xe)-.15 G 1.932
(cuted in a subshell en).15 F 4.432(vironment. The)-.4 F F1(DEB)4.432 E
-(UG)-.1 E F0(and)4.432 E F1(RETURN)184 348 Q F0
-(traps are normally not inherited in such cases.)2.5 E F1<adad>144 360 Q
-F0 .401(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
+(UG)-.1 E F0(and)4.432 E F1(RETURN)184 384 Q F0
+(traps are normally not inherited in such cases.)2.5 E F1<adad>144 396 Q
+F0 .4(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
(his option, then the positional parameters are unset.)-2.901 F
-(Otherwise,)5.4 E(the positional parameters are set to the)184 372 Q F2
-(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni).15 G 2.5(fs)-2.5 G
+(Otherwise,)5.401 E(the positional parameters are set to the)184 408 Q
+F2(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni).15 G 2.5(fs)-2.5 G
(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>2.5 E F0(.)A F1<ad>144
-384 Q F0 1.944(Signal the end of options, cause all remaining)34.3 F F2
-(ar)4.444 E(g)-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.445(ea)-4.444 G
-1.945(ssigned to the positional)-4.445 F 3.446(parameters. The)184 396 R
-F1<ad78>3.446 E F0(and)3.446 E F1<ad76>3.446 E F0 .945
-(options are turned of)3.446 F 3.445(f. If)-.25 F .945(there are no)
-3.445 F F2(ar)3.445 E(g)-.37 E F0 .945(s, the positional)B
-(parameters remain unchanged.)184 408 Q .425(The options are of)144
-424.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
+420 Q F0 1.945(Signal the end of options, cause all remaining)34.3 F F2
+(ar)4.444 E(g)-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.444(ea)-4.444 G
+1.944(ssigned to the positional)-4.444 F 3.445(parameters. The)184 432 R
+F1<ad78>3.445 E F0(and)3.445 E F1<ad76>3.445 E F0 .945
+(options are turned of)3.445 F 3.445(f. If)-.25 F .946(there are no)
+3.445 F F2(ar)3.446 E(g)-.37 E F0 .946(s, the positional)B
+(parameters remain unchanged.)184 444 Q .425(The options are of)144
+460.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
(ault unless otherwise noted.)-.1 F .425
-(Using + rather than \255 causes these options)5.425 F .178
-(to be turned of)144 436.8 R 2.678(f. The)-.25 F .178
+(Using + rather than \255 causes these options)5.425 F .177
+(to be turned of)144 472.8 R 2.677(f. The)-.25 F .178
(options can also be speci\214ed as ar)2.678 F .178(guments to an in)
--.18 F -.2(vo)-.4 G .177(cation of the shell.).2 F(The)5.177 E .066
-(current set of options may be found in)144 448.8 R F1<24ad>2.566 E F0
+-.18 F -.2(vo)-.4 G .178(cation of the shell.).2 F(The)5.178 E .066
+(current set of options may be found in)144 484.8 R F1<24ad>2.566 E F0
5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)-.1 G .066
-(ys true unless an in).1 F -.25(va)-.4 G .067(lid option).25 F
-(is encountered.)144 460.8 Q F1(shift)108 477.6 Q F0([)2.5 E F2(n)A F0
-(])A .429(The positional parameters from)144 489.6 R F2(n)2.929 E F0
-.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.428 G
-.428(rameters represented by the num-).15 F(bers)144 501.6 Q F1($#)2.582
-E F0(do)2.582 E .082(wn to)-.25 F F1($#)2.582 E F0<ad>A F2(n)A F0 .082
-(+1 are unset.)B F2(n)5.442 E F0 .082(must be a non-ne)2.822 F -.05(ga)
--.15 G(ti).05 E .383 -.15(ve n)-.25 H .083(umber less than or equal to)
-.15 F F1($#)2.583 E F0 5.083(.I)C(f)-5.083 E F2(n)2.943 E F0 .06
-(is 0, no parameters are changed.)144 513.6 R(If)5.06 E F2(n)2.92 E F0
+(ys true unless an in).1 F -.25(va)-.4 G .066(lid option).25 F
+(is encountered.)144 496.8 Q F1(shift)108 513.6 Q F0([)2.5 E F2(n)A F0
+(])A .428(The positional parameters from)144 525.6 R F2(n)2.928 E F0
+.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.429 G
+.429(rameters represented by the num-).15 F(bers)144 537.6 Q F1($#)2.583
+E F0(do)2.583 E .083(wn to)-.25 F F1($#)2.583 E F0<ad>A F2(n)A F0 .083
+(+1 are unset.)B F2(n)5.443 E F0 .083(must be a non-ne)2.823 F -.05(ga)
+-.15 G(ti).05 E .382 -.15(ve n)-.25 H .082(umber less than or equal to)
+.15 F F1($#)2.582 E F0 5.082(.I)C(f)-5.082 E F2(n)2.942 E F0 .06
+(is 0, no parameters are changed.)144 549.6 R(If)5.06 E F2(n)2.92 E F0
.06(is not gi)2.8 F -.15(ve)-.25 G .06(n, it is assumed to be 1.).15 F
(If)5.06 E F2(n)2.92 E F0 .06(is greater than)2.8 F F1($#)2.56 E F0 2.56
-(,t)C(he)-2.56 E .143(positional parameters are not changed.)144 525.6 R
-.144(The return status is greater than zero if)5.143 F F2(n)3.004 E F0
-.144(is greater than)2.884 F F1($#)2.644 E F0
-(or less than zero; otherwise 0.)144 537.6 Q F1(shopt)108 554.4 Q F0([)
+(,t)C(he)-2.56 E .144(positional parameters are not changed.)144 561.6 R
+.144(The return status is greater than zero if)5.144 F F2(n)3.003 E F0
+.143(is greater than)2.883 F F1($#)2.643 E F0
+(or less than zero; otherwise 0.)144 573.6 Q F1(shopt)108 590.4 Q F0([)
2.5 E F1(\255pqsu)A F0 2.5(][)C F1<ad6f>-2.5 E F0 2.5(][)C F2(optname)
--2.5 E F0(...])2.5 E -.8(To)144 566.4 S .222(ggle the v).8 F .222
+-2.5 E F0(...])2.5 E -.8(To)144 602.4 S .222(ggle the v).8 F .222
(alues of v)-.25 F .222(ariables controlling optional shell beha)-.25 F
(vior)-.2 E 5.222(.W)-.55 G .222(ith no options, or with the)-5.622 F F1
<ad70>2.722 E F0 .721(option, a list of all settable options is display\
-ed, with an indication of whether or not each is set.)144 578.4 R(The)
-144 590.4 Q F1<ad70>2.828 E F0 .327(option causes output to be displaye\
-d in a form that may be reused as input.)2.828 F .327(Other options)
-5.327 F(ha)144 602.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
--.25 E F1<ad73>144 614.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
-E F0(.)A F1<ad75>144 626.4 Q F0(Disable \(unset\) each)24.74 E F2
-(optname)2.5 E F0(.)A F1<ad71>144 638.4 Q F0 .003(Suppresses normal out\
+ed, with an indication of whether or not each is set.)144 614.4 R(The)
+144 626.4 Q F1<ad70>2.827 E F0 .327(option causes output to be displaye\
+d in a form that may be reused as input.)2.827 F .328(Other options)
+5.328 F(ha)144 638.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
+-.25 E F1<ad73>144 650.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
+E F0(.)A F1<ad75>144 662.4 Q F0(Disable \(unset\) each)24.74 E F2
+(optname)2.5 E F0(.)A F1<ad71>144 674.4 Q F0 .003(Suppresses normal out\
put \(quiet mode\); the return status indicates whether the)24.74 F F2
-(optname)2.504 E F0(is)2.504 E .256(set or unset.)180 650.4 R .256
-(If multiple)5.256 F F2(optname)2.756 E F0(ar)2.756 E .256
+(optname)2.503 E F0(is)2.503 E .255(set or unset.)180 686.4 R .255
+(If multiple)5.255 F F2(optname)2.755 E F0(ar)2.755 E .256
(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G(ith)-2.756 E F1
-<ad71>2.756 E F0 2.755(,t)C .255(he return status is zero if)-2.755 F
-(all)180 662.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
-2.5 E F1<ad6f>144 674.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
+<ad71>2.756 E F0 2.756(,t)C .256(he return status is zero if)-2.756 F
+(all)180 698.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
+2.5 E F1<ad6f>144 710.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
(optname)2.5 E F0(to be those de\214ned for the)2.5 E F1<ad6f>2.5 E F0
-(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .624
-(If either)144 691.2 R F1<ad73>3.124 E F0(or)3.124 E F1<ad75>3.124 E F0
+(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .625
+(If either)144 727.2 R F1<ad73>3.125 E F0(or)3.124 E F1<ad75>3.124 E F0
.624(is used with no)3.124 F F2(optname)3.124 E F0(ar)3.124 E(guments,)
-.18 E F1(shopt)3.124 E F0(sho)3.124 E .624
-(ws only those options which are)-.25 F 2.234(set or unset, respecti)144
-703.2 R -.15(ve)-.25 G(ly).15 E 7.234(.U)-.65 G 2.234
-(nless otherwise noted, the)-7.234 F F1(shopt)4.734 E F0 2.234
-(options are disabled \(unset\) by)4.734 F(def)144 715.2 Q(ault.)-.1 E
-(GNU Bash 4.2)72 768 Q(2011 September 25)135.955 E(64)185.115 E 0 Cg EP
+(ws only those options which are)-.25 F(GNU Bash 4.2)72 768 Q
+(2011 September 25)135.955 E(64)185.115 E 0 Cg EP
%%Page: 65 65
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E 1.544(The return status when listing options is zero if all)144
-84 R/F1 10/Times-Italic@0 SF(optnames)4.044 E F0 1.545
-(are enabled, non-zero otherwise.)4.045 F .696
+-.35 E 2.233(set or unset, respecti)144 84 R -.15(ve)-.25 G(ly).15 E
+7.234(.U)-.65 G 2.234(nless otherwise noted, the)-7.234 F/F1 10
+/Times-Bold@0 SF(shopt)4.734 E F0 2.234
+(options are disabled \(unset\) by)4.734 F(def)144 96 Q(ault.)-.1 E
+1.544(The return status when listing options is zero if all)144 112.8 R
+/F2 10/Times-Italic@0 SF(optnames)4.044 E F0 1.544
+(are enabled, non-zero otherwise.)4.044 F .696
(When setting or unsetting options, the return status is zero unless an)
-144 96 R F1(optname)3.196 E F0 .696(is not a v)3.196 F .695(alid shell)
--.25 F(option.)144 108 Q(The list of)144 124.8 Q/F2 10/Times-Bold@0 SF
-(shopt)2.5 E F0(options is:)2.5 E F2(autocd)144 142.8 Q F0 .199
+144 124.8 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696
+(alid shell)-.25 F(option.)144 136.8 Q(The list of)144 153.6 Q F1(shopt)
+2.5 E F0(options is:)2.5 E F1(autocd)144 171.6 Q F0 .2
(If set, a command name that is the name of a directory is e)11.11 F
--.15(xe)-.15 G .2(cuted as if it were the ar).15 F(gu-)-.18 E
-(ment to the)184 154.8 Q F2(cd)2.5 E F0 2.5(command. This)2.5 F
+-.15(xe)-.15 G .199(cuted as if it were the ar).15 F(gu-)-.18 E
+(ment to the)184 183.6 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
(option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F2(cdable_v)144 166.8 Q(ars)-.1 E F0 .156(If set, an ar)184 178.8 R .156
-(gument to the)-.18 F F2(cd)2.656 E F0 -.2(bu)2.656 G .155
+F1(cdable_v)144 195.6 Q(ars)-.1 E F0 .155(If set, an ar)184 207.6 R .155
+(gument to the)-.18 F F1(cd)2.655 E F0 -.2(bu)2.655 G .156
(iltin command that is not a directory is assumed to be the).2 F
-(name of a v)184 190.8 Q(ariable whose v)-.25 E
-(alue is the directory to change to.)-.25 E F2(cdspell)144 202.8 Q F0
+(name of a v)184 219.6 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 231.6 Q F0
1.055
(If set, minor errors in the spelling of a directory component in a)
-10.55 F F2(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
-(corrected. The)184 214.8 R 1.488(errors check)3.988 F 1.487
-(ed for are transposed characters, a missing character)-.1 F 3.987(,a)
--.4 G(nd)-3.987 E .77(one character too man)184 226.8 R 4.57 -.65(y. I)
+10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.987
+(corrected. The)184 243.6 R 1.487(errors check)3.987 F 1.487
+(ed for are transposed characters, a missing character)-.1 F 3.988(,a)
+-.4 G(nd)-3.988 E .77(one character too man)184 255.6 R 4.57 -.65(y. I)
-.15 H 3.27(fac).65 G .77
(orrection is found, the corrected \214lename is printed, and)-3.27 F
-(the command proceeds.)184 238.8 Q
+(the command proceeds.)184 267.6 Q
(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F2(checkhash)144 250.8 Q F0 2.08(If set,)184 262.8 R F2(bash)4.58
-E F0 2.079(checks that a command found in the hash table e)4.58 F 2.079
-(xists before trying to)-.15 F -.15(exe)184 274.8 S(cute it.).15 E
+.15 E F1(checkhash)144 279.6 Q F0 2.079(If set,)184 291.6 R F1(bash)
+4.579 E F0 2.079(checks that a command found in the hash table e)4.579 F
+2.08(xists before trying to)-.15 F -.15(exe)184 303.6 S(cute it.).15 E
(If a hashed command no longer e)5 E
-(xists, a normal path search is performed.)-.15 E F2(checkjobs)144 286.8
-Q F0 .448(If set,)184 298.8 R F2(bash)2.948 E F0 .448
-(lists the status of an)2.948 F 2.949(ys)-.15 G .449
-(topped and running jobs before e)-2.949 F .449(xiting an interacti)-.15
-F -.15(ve)-.25 G 3.439(shell. If)184 310.8 R(an)3.439 E 3.439(yj)-.15 G
-.938(obs are running, this causes the e)-3.439 F .938
-(xit to be deferred until a second e)-.15 F .938(xit is)-.15 F 2.203
-(attempted without an interv)184 322.8 R 2.203(ening command \(see)-.15
+(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 315.6
+Q F0 .449(If set,)184 327.6 R F1(bash)2.949 E F0 .449
+(lists the status of an)2.949 F 2.949(ys)-.15 G .448
+(topped and running jobs before e)-2.949 F .448(xiting an interacti)-.15
+F -.15(ve)-.25 G 3.438(shell. If)184 339.6 R(an)3.438 E 3.438(yj)-.15 G
+.938(obs are running, this causes the e)-3.438 F .938
+(xit to be deferred until a second e)-.15 F .939(xit is)-.15 F 2.203
+(attempted without an interv)184 351.6 R 2.203(ening command \(see)-.15
F/F3 9/Times-Bold@0 SF 2.203(JOB CONTR)4.703 F(OL)-.27 E F0(abo)4.453 E
--.15(ve)-.15 G 4.703(\). The).15 F(shell)4.704 E(al)184 334.8 Q -.1(wa)
+-.15(ve)-.15 G 4.703(\). The).15 F(shell)4.703 E(al)184 363.6 Q -.1(wa)
-.1 G(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G
-(obs are stopped.)-2.5 E F2(checkwinsize)144 346.8 Q F0 .797(If set,)184
-358.8 R F2(bash)3.297 E F0 .797(checks the windo)3.297 F 3.297(ws)-.25 G
-.796(ize after each command and, if necessary)-3.297 F 3.296(,u)-.65 G
-.796(pdates the)-3.296 F -.25(va)184 370.8 S(lues of).25 E F3(LINES)2.5
-E F0(and)2.25 E F3(COLUMNS)2.5 E/F4 9/Times-Roman@0 SF(.)A F2(cmdhist)
-144 382.8 Q F0 1.202(If set,)6.11 F F2(bash)3.702 E F0 1.202
+(obs are stopped.)-2.5 E F1(checkwinsize)144 375.6 Q F0 .796(If set,)184
+387.6 R F1(bash)3.296 E F0 .796(checks the windo)3.296 F 3.296(ws)-.25 G
+.797(ize after each command and, if necessary)-3.296 F 3.297(,u)-.65 G
+.797(pdates the)-3.297 F -.25(va)184 399.6 S(lues of).25 E F3(LINES)2.5
+E F0(and)2.25 E F3(COLUMNS)2.5 E/F4 9/Times-Roman@0 SF(.)A F1(cmdhist)
+144 411.6 Q F0 1.202(If set,)6.11 F F1(bash)3.702 E F0 1.202
(attempts to sa)3.702 F 1.502 -.15(ve a)-.2 H 1.202
(ll lines of a multiple-line command in the same history).15 F(entry)184
-394.8 Q 5(.T)-.65 G(his allo)-5 E
-(ws easy re-editing of multi-line commands.)-.25 E F2(compat31)144 406.8
-Q F0 .42(If set,)184 418.8 R F2(bash)2.92 E F0 .42(changes its beha)2.92
-F .419(vior to that of v)-.2 F .419
+423.6 Q 5(.T)-.65 G(his allo)-5 E
+(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 435.6
+Q F0 .419(If set,)184 447.6 R F1(bash)2.919 E F0 .419(changes its beha)
+2.919 F .419(vior to that of v)-.2 F .42
(ersion 3.1 with respect to quoted ar)-.15 F(guments)-.18 E(to the)184
-430.8 Q F2([[)2.5 E F0(conditional command')2.5 E(s)-.55 E F2(=~)2.5 E
-F0(operator)2.5 E(.)-.55 E F2(compat32)144 442.8 Q F0 1.409(If set,)184
-454.8 R F2(bash)3.909 E F0 1.409(changes its beha)3.909 F 1.409
-(vior to that of v)-.2 F 1.41
-(ersion 3.2 with respect to locale-speci\214c)-.15 F 1.266
-(string comparison when using the)184 466.8 R F2([[)3.766 E F0 1.266
-(conditional command')3.766 F(s)-.55 E F2(<)3.766 E F0(and)3.766 E F2(>)
-3.766 E F0 3.765(operators. Bash)3.765 F -.15(ve)184 478.8 S .512
-(rsions prior to bash-4.1 use ASCII collation and).15 F F1(str)3.012 E
-(cmp)-.37 E F0 .513(\(3\); bash-4.1 and later use the).19 F
-(current locale')184 490.8 Q 2.5(sc)-.55 G(ollation sequence and)-2.5 E
-F1(str)2.5 E(coll)-.37 E F0(\(3\).).51 E F2(compat40)144 502.8 Q F0 1.41
-(If set,)184 514.8 R F2(bash)3.91 E F0 1.41(changes its beha)3.91 F
-1.409(vior to that of v)-.2 F 1.409
-(ersion 4.0 with respect to locale-speci\214c)-.15 F .422
-(string comparison when using the)184 526.8 R F2([[)2.922 E F0 .422
-(conditional command')2.922 F(s)-.55 E F2(<)2.922 E F0(and)2.922 E F2(>)
-2.923 E F0 .423(operators \(see pre-)2.923 F(vious item\) and the ef)184
-538.8 Q(fect of interrupting a command list.)-.25 E F2(compat41)144
-550.8 Q F0 1.444(If set,)184 562.8 R F2(bash)3.944 E F0 3.944(,w)C 1.443
+459.6 Q F1([[)2.5 E F0(conditional command')2.5 E(s)-.55 E F1(=~)2.5 E
+F0(operator)2.5 E(.)-.55 E F1(compat32)144 471.6 Q F0 1.41(If set,)184
+483.6 R F1(bash)3.91 E F0 1.41(changes its beha)3.91 F 1.409
+(vior to that of v)-.2 F 1.409
+(ersion 3.2 with respect to locale-speci\214c)-.15 F 1.265
+(string comparison when using the)184 495.6 R F1([[)3.766 E F0 1.266
+(conditional command')3.766 F(s)-.55 E F1(<)3.766 E F0(and)3.766 E F1(>)
+3.766 E F0 3.766(operators. Bash)3.766 F -.15(ve)184 507.6 S .513
+(rsions prior to bash-4.1 use ASCII collation and).15 F F2(str)3.012 E
+(cmp)-.37 E F0 .512(\(3\); bash-4.1 and later use the).19 F
+(current locale')184 519.6 Q 2.5(sc)-.55 G(ollation sequence and)-2.5 E
+F2(str)2.5 E(coll)-.37 E F0(\(3\).).51 E F1(compat40)144 531.6 Q F0
+1.409(If set,)184 543.6 R F1(bash)3.909 E F0 1.409(changes its beha)
+3.909 F 1.409(vior to that of v)-.2 F 1.41
+(ersion 4.0 with respect to locale-speci\214c)-.15 F .423
+(string comparison when using the)184 555.6 R F1([[)2.922 E F0 .422
+(conditional command')2.922 F(s)-.55 E F1(<)2.922 E F0(and)2.922 E F1(>)
+2.922 E F0 .422(operators \(see pre-)2.922 F(vious item\) and the ef)184
+567.6 Q(fect of interrupting a command list.)-.25 E F1(compat41)144
+579.6 Q F0 1.443(If set,)184 591.6 R F1(bash)3.943 E F0 3.943(,w)C 1.444
(hen in posix mode, treats a single quote in a double-quoted parameter)
--3.944 F -.15(ex)184 574.8 S .958(pansion as a special character).15 F
-5.958(.T)-.55 G .959(he single quotes must match \(an e)-5.958 F -.15
-(ve)-.25 G 3.459(nn).15 G .959(umber\) and)-3.459 F .59
+-3.943 F -.15(ex)184 603.6 S .959(pansion as a special character).15 F
+5.959(.T)-.55 G .958(he single quotes must match \(an e)-5.959 F -.15
+(ve)-.25 G 3.458(nn).15 G .958(umber\) and)-3.458 F .59
(the characters between the single quotes are considered quoted.)184
-586.8 R .59(This is the beha)5.59 F .59(vior of)-.2 F .589
-(posix mode through v)184 598.8 R .589(ersion 4.1.)-.15 F .589(The def)
-5.589 F .589(ault bash beha)-.1 F .589(vior remains as in pre)-.2 F .59
-(vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 610.8 Q F2
-(complete_fullquote)144 622.8 Q F0 .654(If set,)184 634.8 R F2(bash)
+615.6 R .59(This is the beha)5.59 F .59(vior of)-.2 F .59
+(posix mode through v)184 627.6 R .589(ersion 4.1.)-.15 F .589(The def)
+5.589 F .589(ault bash beha)-.1 F .589(vior remains as in pre)-.2 F .589
+(vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 639.6 Q F1
+(complete_fullquote)144 651.6 Q F0 .653(If set,)184 663.6 R F1(bash)
3.153 E F0 .653(quotes all shell metacharacters in \214lenames and dire\
-ctory names when per)3.153 F(-)-.2 E 1.524(forming completion.)184 646.8
-R 1.524(If not set,)6.524 F F2(bash)4.024 E F0(remo)4.024 E -.15(ve)-.15
+ctory names when per)3.153 F(-)-.2 E 1.525(forming completion.)184 675.6
+R 1.524(If not set,)6.525 F F1(bash)4.024 E F0(remo)4.024 E -.15(ve)-.15
G 4.024(sm).15 G 1.524(etacharacters such as the dollar sign)-4.024 F
2.667(from the set of characters that will be quoted in completed \214l\
-enames when these)184 658.8 R .028(metacharacters appear in shell v)184
-670.8 R .028(ariable references in w)-.25 F .029(ords to be completed.)
--.1 F .029(This means)5.029 F 1.073(that dollar signs in v)184 682.8 R
+enames when these)184 687.6 R .029(metacharacters appear in shell v)184
+699.6 R .028(ariable references in w)-.25 F .028(ords to be completed.)
+-.1 F .028(This means)5.028 F 1.072(that dollar signs in v)184 711.6 R
1.073(ariable names that e)-.25 F 1.073
(xpand to directories will not be quoted; ho)-.15 F(w-)-.25 E -2.15 -.25
-(ev e)184 694.8 T 1.922 -.4(r, a).25 H 1.422 -.15(ny d).4 H 1.123
+(ev e)184 723.6 T 1.923 -.4(r, a).25 H 1.423 -.15(ny d).4 H 1.123
(ollar signs appearing in \214lenames will not be quoted, either).15 F
-6.123(.T)-.55 G 1.123(his is acti)-6.123 F -.15(ve)-.25 G .59
-(only when bash is using backslashes to quote completed \214lenames.)184
-706.8 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 718.8 Q
-(ault, which is the def)-.1 E(ault bash beha)-.1 E(vior in v)-.2 E
-(ersions through 4.2.)-.15 E(GNU Bash 4.2)72 768 Q(2011 September 25)
-135.955 E(65)185.115 E 0 Cg EP
+6.123(.T)-.55 G 1.122(his is acti)-6.123 F -.15(ve)-.25 G(GNU Bash 4.2)
+72 768 Q(2011 September 25)135.955 E(65)185.115 E 0 Cg EP
%%Page: 66 66
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(dir)144 84 Q(expand)-.18 E F0 .486(If set,)
-184 96 R F1(bash)2.986 E F0 .486
+-.35 E .59
+(only when bash is using backslashes to quote completed \214lenames.)184
+84 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 96 Q
+(ault, which is the def)-.1 E(ault bash beha)-.1 E(vior in v)-.2 E
+(ersions through 4.2.)-.15 E/F1 10/Times-Bold@0 SF(dir)144 108 Q(expand)
+-.18 E F0 .487(If set,)184 120 R F1(bash)2.987 E F0 .486
(replaces directory names with the results of w)2.986 F .486(ord e)-.1 F
-.487(xpansion when perform-)-.15 F .18(ing \214lename completion.)184
-108 R .179(This changes the contents of the readline editing b)5.18 F
-(uf)-.2 E(fer)-.25 E 5.179(.I)-.55 G 2.679(fn)-5.179 G(ot)-2.679 E(set,)
-184 120 Q F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G
-(hat the user typed.)-2.5 E F1(dirspell)144 132 Q F0 .858(If set,)7.77 F
-F1(bash)3.358 E F0 .858
-(attempts spelling correction on directory names during w)3.358 F .859
+.486(xpansion when perform-)-.15 F .179(ing \214lename completion.)184
+132 R .179(This changes the contents of the readline editing b)5.179 F
+(uf)-.2 E(fer)-.25 E 5.18(.I)-.55 G 2.68(fn)-5.18 G(ot)-2.68 E(set,)184
+144 Q F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G
+(hat the user typed.)-2.5 E F1(dirspell)144 156 Q F0 .859(If set,)7.77 F
+F1(bash)3.359 E F0 .858
+(attempts spelling correction on directory names during w)3.359 F .858
(ord completion if)-.1 F
-(the directory name initially supplied does not e)184 144 Q(xist.)-.15 E
-F1(dotglob)144 156 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
+(the directory name initially supplied does not e)184 168 Q(xist.)-.15 E
+F1(dotglob)144 180 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
(includes \214lenames be)2.665 F .165(ginning with a `.)-.15 F 2.665('i)
-.7 G 2.665(nt)-2.665 G .165(he results of pathname e)-2.665 F
-(xpansion.)-.15 E F1(execfail)144 168 Q F0 1.386
-(If set, a non-interacti)7.79 F 1.686 -.15(ve s)-.25 H 1.386
+(xpansion.)-.15 E F1(execfail)144 192 Q F0 1.387
+(If set, a non-interacti)7.79 F 1.687 -.15(ve s)-.25 H 1.386
(hell will not e).15 F 1.386(xit if it cannot e)-.15 F -.15(xe)-.15 G
-1.387(cute the \214le speci\214ed as an).15 F(ar)184 180 Q
+1.386(cute the \214le speci\214ed as an).15 F(ar)184 204 Q
(gument to the)-.18 E F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E
(An interacti)5 E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15
-E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 192 Q F0
-.717(If set, aliases are e)184 204 R .717(xpanded as described abo)-.15
+E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 216 Q F0
+.716(If set, aliases are e)184 228 R .717(xpanded as described abo)-.15
F 1.017 -.15(ve u)-.15 H(nder).15 E/F2 9/Times-Bold@0 SF(ALIASES)3.217 E
-/F3 9/Times-Roman@0 SF(.)A F0 .716(This option is enabled)5.217 F
-(by def)184 216 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F1(extdeb)144 228 Q(ug)-.2 E F0(If set, beha)184 240 Q
+/F3 9/Times-Roman@0 SF(.)A F0 .717(This option is enabled)5.217 F
+(by def)184 240 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.)
+.15 E F1(extdeb)144 252 Q(ug)-.2 E F0(If set, beha)184 264 Q
(vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F1(1.)184
-252 Q F0(The)28.5 E F1<ad46>4.25 E F0 1.75(option to the)4.25 F F1
+276 Q F0(The)28.5 E F1<ad46>4.251 E F0 1.751(option to the)4.251 F F1
(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251 G 1.751
(iltin displays the source \214le name and line).2 F
-(number corresponding to each function name supplied as an ar)220 264 Q
-(gument.)-.18 E F1(2.)184 276 Q F0 1.667(If the command run by the)28.5
+(number corresponding to each function name supplied as an ar)220 288 Q
+(gument.)-.18 E F1(2.)184 300 Q F0 1.667(If the command run by the)28.5
F F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167 F
-1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 288
-Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 300 Q F0 .84
-(If the command run by the)28.5 F F1(DEB)3.34 E(UG)-.1 E F0 .841
-(trap returns a v)3.341 F .841(alue of 2, and the shell is)-.25 F -.15
-(exe)220 312 S .488
+1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 312
+Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 324 Q F0 .841
+(If the command run by the)28.5 F F1(DEB)3.341 E(UG)-.1 E F0 .841
+(trap returns a v)3.341 F .84(alue of 2, and the shell is)-.25 F -.15
+(exe)220 336 S .488
(cuting in a subroutine \(a shell function or a shell script e).15 F
-.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1
-(sour)220 324 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
--.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F1(4.)184 336 Q
-F2 -.27(BA)28.5 G(SH_ARGC).27 E F0(and)3.153 E F2 -.27(BA)3.403 G
+(sour)220 348 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
+-.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E F1(4.)184 360 Q
+F2 -.27(BA)28.5 G(SH_ARGC).27 E F0(and)3.154 E F2 -.27(BA)3.404 G
(SH_ARGV).27 E F0 .904(are updated as described in their descriptions)
-3.154 F(abo)220 348 Q -.15(ve)-.15 G(.).15 E F1(5.)184 360 Q F0 1.359
+3.154 F(abo)220 372 Q -.15(ve)-.15 G(.).15 E F1(5.)184 384 Q F0 1.359
(Function tracing is enabled:)28.5 F 1.359
(command substitution, shell functions, and sub-)6.359 F(shells in)220
-372 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10
+396 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F4 10
/Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1
(DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.)
-184 384 Q F0 .804(Error tracing is enabled:)28.5 F .805
-(command substitution, shell functions, and subshells)5.804 F(in)220 396
+184 408 Q F0 .805(Error tracing is enabled:)28.5 F .804
+(command substitution, shell functions, and subshells)5.805 F(in)220 420
Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F4
(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E F0(trap.)
-2.5 E F1(extglob)144 408 Q F0 .4(If set, the e)8.89 F .4
+2.5 E F1(extglob)144 432 Q F0 .4(If set, the e)8.89 F .4
(xtended pattern matching features described abo)-.15 F .7 -.15(ve u)
--.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 420 Q
-F0(are enabled.)2.5 E F1(extquote)144 432 Q F0 2.473(If set,)184 444 R
+-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 444 Q
+F0(are enabled.)2.5 E F1(extquote)144 456 Q F0 2.473(If set,)184 468 R
F1($)4.973 E F0<08>A F4(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
E F0(")A F4(string)A F0 4.973("q)C 2.473(uoting is performed within)
-4.973 F F1(${)4.973 E F4(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G
-(pansions).15 E(enclosed in double quotes.)184 456 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 468 Q F0
-1.425(If set, patterns which f)7.77 F 1.425
-(ail to match \214lenames during pathname e)-.1 F 1.424
-(xpansion result in an)-.15 F -.15(ex)184 480 S(pansion error).15 E(.)
--.55 E F1 -.25(fo)144 492 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
-.936(If set, the suf)184 504 R<8c78>-.25 E .936(es speci\214ed by the)
+(pansions).15 E(enclosed in double quotes.)184 480 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 492 Q F0
+1.424(If set, patterns which f)7.77 F 1.425
+(ail to match \214lenames during pathname e)-.1 F 1.425
+(xpansion result in an)-.15 F -.15(ex)184 504 S(pansion error).15 E(.)
+-.55 E F1 -.25(fo)144 516 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
+.937(If set, the suf)184 528 R<8c78>-.25 E .936(es speci\214ed by the)
-.15 F F2(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936(ariable cause w)
--.25 F .937(ords to be ignored)-.1 F .32(when performing w)184 516 R .32
+-.25 F .936(ords to be ignored)-.1 F .32(when performing w)184 540 R .32
(ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G .32
-(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 2.947
-(pletions. See)184 528 R F2 .447(SHELL V)2.947 F(ARIABLES)-1.215 E F0
-(abo)2.697 E .747 -.15(ve f)-.15 H .448(or a description of).15 F F2
-(FIGNORE)2.948 E F3(.)A F0 .448(This option is)4.948 F(enabled by def)
-184 540 Q(ault.)-.1 E F1(globasciiranges)144 552 Q F0 .806
-(If set, range e)184 564 R .806
-(xpressions used in pattern matching \(see)-.15 F F2 -.09(Pa)3.305 G
-(tter).09 E 3.055(nM)-.135 G(atching)-3.055 E F0(abo)3.055 E -.15(ve)
--.15 G 3.305(\)b).15 G(eha)-3.305 E -.15(ve)-.2 G 2.089
-(as if in the traditional C locale when performing comparisons.)184 576
-R 2.09(That is, the current)7.089 F(locale')184 588 Q 2.614(sc)-.55 G
-.114(ollating sequence is not tak)-2.614 F .113(en into account, so)-.1
-F F1(b)2.613 E F0 .113(will not collate between)2.613 F F1(A)2.613 E F0
-(and)2.613 E F1(B)184 600 Q F0 2.5(,a)C(nd upper)-2.5 E(-case and lo)-.2
+(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 2.948
+(pletions. See)184 552 R F2 .448(SHELL V)2.948 F(ARIABLES)-1.215 E F0
+(abo)2.698 E .748 -.15(ve f)-.15 H .448(or a description of).15 F F2
+(FIGNORE)2.947 E F3(.)A F0 .447(This option is)4.947 F(enabled by def)
+184 564 Q(ault.)-.1 E F1(globasciiranges)144 576 Q F0 .805
+(If set, range e)184 588 R .806
+(xpressions used in pattern matching \(see)-.15 F F2 -.09(Pa)3.306 G
+(tter).09 E 3.056(nM)-.135 G(atching)-3.056 E F0(abo)3.056 E -.15(ve)
+-.15 G 3.306(\)b).15 G(eha)-3.306 E -.15(ve)-.2 G 2.089
+(as if in the traditional C locale when performing comparisons.)184 600
+R 2.089(That is, the current)7.089 F(locale')184 612 Q 2.613(sc)-.55 G
+.113(ollating sequence is not tak)-2.613 F .113(en into account, so)-.1
+F F1(b)2.613 E F0 .114(will not collate between)2.613 F F1(A)2.614 E F0
+(and)2.614 E F1(B)184 624 Q F0 2.5(,a)C(nd upper)-2.5 E(-case and lo)-.2
E(wer)-.25 E(-case ASCII characters will collate together)-.2 E(.)-.55 E
-F1(globstar)144 612 Q F0 .518(If set, the pattern)5 F F1(**)3.018 E F0
-.519(used in a pathname e)3.019 F .519(xpansion conte)-.15 F .519
-(xt will match all \214les and zero)-.15 F .432
-(or more directories and subdirectories.)184 624 R .431
-(If the pattern is follo)5.432 F .431(wed by a)-.25 F F1(/)2.931 E F0
-2.931(,o)C .431(nly directories)-2.931 F(and subdirectories match.)184
-636 Q F1(gnu_errfmt)144 648 Q F0(If set, shell error messages are writt\
-en in the standard GNU error message format.)184 660 Q F1(histappend)144
-672 Q F0 .676
+F1(globstar)144 636 Q F0 .519(If set, the pattern)5 F F1(**)3.019 E F0
+.519(used in a pathname e)3.019 F .519(xpansion conte)-.15 F .518
+(xt will match all \214les and zero)-.15 F .431
+(or more directories and subdirectories.)184 648 R .431
+(If the pattern is follo)5.431 F .432(wed by a)-.25 F F1(/)2.932 E F0
+2.932(,o)C .432(nly directories)-2.932 F(and subdirectories match.)184
+660 Q F1(gnu_errfmt)144 672 Q F0(If set, shell error messages are writt\
+en in the standard GNU error message format.)184 684 Q F1(histappend)144
+696 Q F0 .676
(If set, the history list is appended to the \214le named by the v)184
-684 R .676(alue of the)-.25 F F2(HISTFILE)3.177 E F0 -.25(va)2.927 G
-(ri-).25 E(able when the shell e)184 696 Q(xits, rather than o)-.15 E
+708 R .676(alue of the)-.25 F F2(HISTFILE)3.176 E F0 -.25(va)2.926 G
+(ri-).25 E(able when the shell e)184 720 Q(xits, rather than o)-.15 E
-.15(ve)-.15 G(rwriting the \214le.).15 E(GNU Bash 4.2)72 768 Q
(2011 September 25)135.955 E(66)185.115 E 0 Cg EP
%%Page: 67 67
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(histr)144 84 Q(eedit)-.18 E F0 .576
-(If set, and)184 96 R F1 -.18(re)3.076 G(adline).18 E F0 .575
-(is being used, a user is gi)3.076 F -.15(ve)-.25 G 3.075(nt).15 G .575
-(he opportunity to re-edit a f)-3.075 F .575(ailed his-)-.1 F
-(tory substitution.)184 108 Q F1(histv)144 120 Q(erify)-.1 E F0 .402
+-.35 E/F1 10/Times-Bold@0 SF(histr)144 84 Q(eedit)-.18 E F0 .575
+(If set, and)184 96 R F1 -.18(re)3.075 G(adline).18 E F0 .575
+(is being used, a user is gi)3.075 F -.15(ve)-.25 G 3.075(nt).15 G .576
+(he opportunity to re-edit a f)-3.075 F .576(ailed his-)-.1 F
+(tory substitution.)184 108 Q F1(histv)144 120 Q(erify)-.1 E F0 .403
(If set, and)184 132 R F1 -.18(re)2.903 G(adline).18 E F0 .403
(is being used, the results of history substitution are not immediately)
-2.903 F .662(passed to the shell parser)184 144 R 5.662(.I)-.55 G .661
-(nstead, the resulting line is loaded into the)-5.662 F F1 -.18(re)3.161
-G(adline).18 E F0(editing)3.161 E -.2(bu)184 156 S -.25(ff).2 G(er).25 E
+2.903 F .661(passed to the shell parser)184 144 R 5.661(.I)-.55 G .662
+(nstead, the resulting line is loaded into the)-5.661 F F1 -.18(re)3.162
+G(adline).18 E F0(editing)3.162 E -.2(bu)184 156 S -.25(ff).2 G(er).25 E
2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1
-(hostcomplete)144 168 Q F0 1.181(If set, and)184 180 R F1 -.18(re)3.681
-G(adline).18 E F0 1.181(is being used,)3.681 F F1(bash)3.682 E F0 1.182
-(will attempt to perform hostname completion)3.682 F 1.381(when a w)184
-192 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381
-(is being completed \(see)3.881 F F1(Completing)3.88 E F0(under)3.88 E
-/F2 9/Times-Bold@0 SF(READLINE)3.88 E F0(abo)184 204 Q -.15(ve)-.15 G
+(hostcomplete)144 168 Q F0 1.182(If set, and)184 180 R F1 -.18(re)3.682
+G(adline).18 E F0 1.182(is being used,)3.682 F F1(bash)3.682 E F0 1.181
+(will attempt to perform hostname completion)3.681 F 1.38(when a w)184
+192 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381
+(is being completed \(see)3.881 F F1(Completing)3.881 E F0(under)3.881 E
+/F2 9/Times-Bold@0 SF(READLINE)3.881 E F0(abo)184 204 Q -.15(ve)-.15 G
2.5(\). This).15 F(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144
216 Q F0(If set,)184 228 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)
2.5 E F0(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H
(to cause that w)2.83 F .33(ord and all remaining characters on)-.1 F
.967(that line to be ignored in an interacti)184 264 R 1.267 -.15(ve s)
-.25 H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)
--.15 G 3.467(\). This).15 F .967(option is)3.467 F(enabled by def)184
-276 Q(ault.)-.1 E F1(lastpipe)144 288 Q F0 1.211
+-.15 G 3.467(\). This).15 F .968(option is)3.468 F(enabled by def)184
+276 Q(ault.)-.1 E F1(lastpipe)144 288 Q F0 1.212
(If set, and job control is not acti)6.66 F -.15(ve)-.25 G 3.712(,t).15
G 1.212(he shell runs the last command of a pipeline not)-3.712 F -.15
(exe)184 300 S(cuted in the background in the current shell en).15 E
-(vironment.)-.4 E F1(lithist)144 312 Q F0 .655(If set, and the)15.55 F
-F1(cmdhist)3.155 E F0 .654
+(vironment.)-.4 E F1(lithist)144 312 Q F0 .654(If set, and the)15.55 F
+F1(cmdhist)3.154 E F0 .654
(option is enabled, multi-line commands are sa)3.154 F -.15(ve)-.2 G
-3.154(dt).15 G 3.154(ot)-3.154 G .654(he history)-3.154 F
+3.155(dt).15 G 3.155(ot)-3.155 G .655(he history)-3.155 F
(with embedded ne)184 324 Q
(wlines rather than using semicolon separators where possible.)-.25 E F1
(login_shell)144 336 Q F0 .486
(The shell sets this option if it is started as a login shell \(see)184
-348 R F2(INV)2.987 E(OCA)-.405 E(TION)-.855 E F0(abo)2.737 E -.15(ve)
--.15 G 2.987(\). The).15 F -.25(va)184 360 S(lue may not be changed.).25
-E F1(mailwar)144 372 Q(n)-.15 E F0 .815(If set, and a \214le that)184
-384 R F1(bash)3.315 E F0 .814
-(is checking for mail has been accessed since the last time it)3.315 F
+348 R F2(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve)
+-.15 G 2.986(\). The).15 F -.25(va)184 360 S(lue may not be changed.).25
+E F1(mailwar)144 372 Q(n)-.15 E F0 .814(If set, and a \214le that)184
+384 R F1(bash)3.314 E F0 .815
+(is checking for mail has been accessed since the last time it)3.314 F
-.1(wa)184 396 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
(`The mail in)-.74 E/F3 10/Times-Italic@0 SF(mail\214le)2.5 E F0
(has been read')2.5 E 2.5('i)-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1
-(no_empty_cmd_completion)144 408 Q F0 .324(If set, and)184 420 R F1 -.18
-(re)2.824 G(adline).18 E F0 .324(is being used,)2.824 F F1(bash)2.824 E
-F0 .324(will not attempt to search the)2.824 F F2 -.666(PA)2.825 G(TH)
--.189 E F0 .325(for possible)2.575 F
+(no_empty_cmd_completion)144 408 Q F0 .325(If set, and)184 420 R F1 -.18
+(re)2.825 G(adline).18 E F0 .325(is being used,)2.825 F F1(bash)2.824 E
+F0 .324(will not attempt to search the)2.824 F F2 -.666(PA)2.824 G(TH)
+-.189 E F0 .324(for possible)2.574 F
(completions when completion is attempted on an empty line.)184 432 Q F1
-(nocaseglob)144 444 Q F0 .437(If set,)184 456 R F1(bash)2.937 E F0 .436
-(matches \214lenames in a case\255insensiti)2.937 F .736 -.15(ve f)-.25
-H .436(ashion when performing pathname).05 F -.15(ex)184 468 S
+(nocaseglob)144 444 Q F0 .436(If set,)184 456 R F1(bash)2.936 E F0 .436
+(matches \214lenames in a case\255insensiti)2.936 F .737 -.15(ve f)-.25
+H .437(ashion when performing pathname).05 F -.15(ex)184 468 S
(pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(abo)2.5 E
--.15(ve)-.15 G(\).).15 E F1(nocasematch)144 480 Q F0 1.193(If set,)184
-492 R F1(bash)3.693 E F0 1.194(matches patterns in a case\255insensiti)
-3.693 F 1.494 -.15(ve f)-.25 H 1.194(ashion when performing matching).05
+-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 480 Q F0 1.194(If set,)184
+492 R F1(bash)3.694 E F0 1.194(matches patterns in a case\255insensiti)
+3.694 F 1.493 -.15(ve f)-.25 H 1.193(ashion when performing matching).05
F(while e)184 504 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5
E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 516 Q F0
-.855(If set,)184 528 R F1(bash)3.355 E F0(allo)3.355 E .855
-(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.354 G .854
-(thname Expansion).1 F F0(abo)3.354 E -.15(ve)-.15 G 3.354(\)t).15 G(o)
--3.354 E -.15(ex)184 540 S(pand to a null string, rather than themselv)
-.15 E(es.)-.15 E F1(pr)144 552 Q(ogcomp)-.18 E F0 .676
+.854(If set,)184 528 R F1(bash)3.354 E F0(allo)3.354 E .855
+(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.355 G .855
+(thname Expansion).1 F F0(abo)3.355 E -.15(ve)-.15 G 3.355(\)t).15 G(o)
+-3.355 E -.15(ex)184 540 S(pand to a null string, rather than themselv)
+.15 E(es.)-.15 E F1(pr)144 552 Q(ogcomp)-.18 E F0 .677
(If set, the programmable completion f)184 564 R .677(acilities \(see)
--.1 F F1(Pr)3.177 E .677(ogrammable Completion)-.18 F F0(abo)3.177 E
+-.1 F F1(Pr)3.176 E .676(ogrammable Completion)-.18 F F0(abo)3.176 E
-.15(ve)-.15 G(\)).15 E(are enabled.)184 576 Q
(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 588 Q(omptv)
--.18 E(ars)-.1 E F0 1.448(If set, prompt strings under)184 600 R 1.448
-(go parameter e)-.18 F 1.447(xpansion, command substitution, arithmetic)
--.15 F -.15(ex)184 612 S .17(pansion, and quote remo).15 F -.25(va)-.15
+-.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 600 R 1.448
+(go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic)
+-.15 F -.15(ex)184 612 S .171(pansion, and quote remo).15 F -.25(va)-.15
G 2.67(la).25 G .17(fter being e)-2.67 F .17(xpanded as described in)
--.15 F F2(PR)2.671 E(OMPTING)-.27 E F0(abo)2.421 E -.15(ve)-.15 G(.).15
-E(This option is enabled by def)184 624 Q(ault.)-.1 E F1 -.18(re)144 636
+-.15 F F2(PR)2.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15(ve)-.15 G(.).15 E
+(This option is enabled by def)184 624 Q(ault.)-.1 E F1 -.18(re)144 636
S(stricted_shell).18 E F0 1.069
(The shell sets this option if it is started in restricted mode \(see)
184 648 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 660 Q 4.178
1.678(This is not reset when the startup \214les are)6.678 F -.15(exe)
184 672 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E
-.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E
-F1(shift_v)144 684 Q(erbose)-.1 E F0 .502(If set, the)184 696 R F1
-(shift)3.002 E F0 -.2(bu)3.002 G .501
-(iltin prints an error message when the shift count e).2 F .501
+F1(shift_v)144 684 Q(erbose)-.1 E F0 .501(If set, the)184 696 R F1
+(shift)3.001 E F0 -.2(bu)3.001 G .501
+(iltin prints an error message when the shift count e).2 F .502
(xceeds the number)-.15 F(of positional parameters.)184 708 Q
(GNU Bash 4.2)72 768 Q(2011 September 25)135.955 E(67)185.115 E 0 Cg EP
%%Page: 68 68
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
--.35 E/F1 10/Times-Bold@0 SF(sour)144 84 Q(cepath)-.18 E F0 .77
-(If set, the)184 96 R F1(sour)3.27 E(ce)-.18 E F0(\()3.27 E F1(.)A F0
-3.27(\)b)C .77(uiltin uses the v)-3.47 F .771(alue of)-.25 F/F2 9
-/Times-Bold@0 SF -.666(PA)3.271 G(TH)-.189 E F0 .771
-(to \214nd the directory containing the)3.021 F
-(\214le supplied as an ar)184 108 Q 2.5(gument. This)-.18 F
-(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 120 Q F0
-(If set, the)184 132 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E
-(xpands backslash-escape sequences by def)-.15 E(ault.)-.1 E F1(suspend)
-108 148.8 Q F0([)2.5 E F1<ad66>A F0(])A 1.002(Suspend the e)144 160.8 R
--.15(xe)-.15 G 1.002(cution of this shell until it recei).15 F -.15(ve)
--.25 G 3.501(sa).15 G F2(SIGCONT)A F0 3.501(signal. A)3.251 F 1.001
-(login shell cannot be)3.501 F .022(suspended; the)144 172.8 R F1<ad66>
-2.522 E F0 .022(option can be used to o)2.522 F -.15(ve)-.15 G .022
-(rride this and force the suspension.).15 F .023(The return status is)
-5.023 F 2.5(0u)144 184.8 S(nless the shell is a login shell and)-2.5 E
+-.35 E/F1 10/Times-Bold@0 SF(sour)144 84 Q(cepath)-.18 E F0 .771
+(If set, the)184 96 R F1(sour)3.271 E(ce)-.18 E F0(\()3.271 E F1(.)A F0
+3.271(\)b)C .771(uiltin uses the v)-3.471 F .771(alue of)-.25 F/F2 9
+/Times-Bold@0 SF -.666(PA)3.27 G(TH)-.189 E F0 .77
+(to \214nd the directory containing the)3.02 F(\214le supplied as an ar)
+184 108 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.)
+-.1 E F1(xpg_echo)144 120 Q F0(If set, the)184 132 Q F1(echo)2.5 E F0
+-.2(bu)2.5 G(iltin e).2 E(xpands backslash-escape sequences by def)-.15
+E(ault.)-.1 E F1(suspend)108 148.8 Q F0([)2.5 E F1<ad66>A F0(])A 1.001
+(Suspend the e)144 160.8 R -.15(xe)-.15 G 1.001
+(cution of this shell until it recei).15 F -.15(ve)-.25 G 3.501(sa).15 G
+F2(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002(login shell cannot be)
+3.502 F .023(suspended; the)144 172.8 R F1<ad66>2.523 E F0 .023
+(option can be used to o)2.523 F -.15(ve)-.15 G .022
+(rride this and force the suspension.).15 F .022(The return status is)
+5.022 F 2.5(0u)144 184.8 S(nless the shell is a login shell and)-2.5 E
F1<ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5
E F1(test)108 201.6 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)
-108 213.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 .878
-(Return a status of 0 \(true\) or 1 \(f)6.77 F .877
-(alse\) depending on the e)-.1 F -.25(va)-.25 G .877
+108 213.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 .877
+(Return a status of 0 \(true\) or 1 \(f)6.77 F .878
+(alse\) depending on the e)-.1 F -.25(va)-.25 G .878
(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 225.6
S(pr).2 E F0 5.53(.E).73 G .53
(ach operator and operand must be a separate ar)-5.53 F 3.03
-(gument. Expressions)-.18 F .53(are composed of the)3.03 F 3.08
-(primaries described abo)144 237.6 R 3.38 -.15(ve u)-.15 H(nder).15 E F2
-(CONDITION)5.58 E 3.079(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
-F1(test)7.579 E F0 3.079(does not accept an)5.579 F(y)-.15 E
+(gument. Expressions)-.18 F .53(are composed of the)3.03 F 3.079
+(primaries described abo)144 237.6 R 3.379 -.15(ve u)-.15 H(nder).15 E
+F2(CONDITION)5.579 E 3.079(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF
+(.)A F1(test)7.579 E F0 3.08(does not accept an)5.58 F(y)-.15 E
(options, nor does it accept and ignore an ar)144 249.6 Q(gument of)-.18
-E F1<adad>2.5 E F0(as signifying the end of options.)2.5 E .785
-(Expressions may be combined using the follo)144 267.6 R .786
-(wing operators, listed in decreasing order of prece-)-.25 F 3.412
-(dence. The)144 279.6 R -.25(eva)3.412 G .912
-(luation depends on the number of ar).25 F .911(guments; see belo)-.18 F
-4.711 -.65(w. O)-.25 H .911(perator precedence is).65 F
+E F1<adad>2.5 E F0(as signifying the end of options.)2.5 E .786
+(Expressions may be combined using the follo)144 267.6 R .785
+(wing operators, listed in decreasing order of prece-)-.25 F 3.411
+(dence. The)144 279.6 R -.25(eva)3.411 G .911
+(luation depends on the number of ar).25 F .912(guments; see belo)-.18 F
+4.712 -.65(w. O)-.25 H .912(perator precedence is).65 F
(used when there are \214v)144 291.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G
(ore ar)-2.5 E(guments.)-.18 E F1(!)144 303.6 Q F3 -.2(ex)2.5 G(pr).2 E
F0 -.35(Tr)12.6 G(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E
E 2.5(2a)144 458.4 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
180 470.4 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
F .37(xpression is true if and only if the second ar)-.15 F .37
-(gument is null.)-.18 F .379(If the \214rst ar)180 482.4 R .38
-(gument is one of the unary conditional operators listed abo)-.18 F .68
--.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.88 E(TION)180 494.4 Q .553
+(gument is null.)-.18 F .38(If the \214rst ar)180 482.4 R .38
+(gument is one of the unary conditional operators listed abo)-.18 F .679
+-.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.879 E(TION)180 494.4 Q .552
(AL EXPRESSIONS)-.18 F F4(,)A F0 .552(the e)2.802 F .552
(xpression is true if the unary test is true.)-.15 F .552
(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 506.4 Q
(If the second ar)5.236 F .236(gument is one of)-.18 F .855
(the binary conditional operators listed abo)180 542.4 R 1.155 -.15
(ve u)-.15 H(nder).15 E F2(CONDITION)3.355 E .855(AL EXPRESSIONS)-.18 F
-F4(,)A F0(the)3.104 E .578(result of the e)180 554.4 R .578(xpression i\
+F4(,)A F0(the)3.105 E .579(result of the e)180 554.4 R .578(xpression i\
s the result of the binary test using the \214rst and third ar)-.15 F
-(guments)-.18 E 1.333(as operands.)180 566.4 R(The)6.333 E F1<ad61>3.833
-E F0(and)3.833 E F1<ad6f>3.832 E F0 1.332
+(guments)-.18 E 1.332(as operands.)180 566.4 R(The)6.332 E F1<ad61>3.832
+E F0(and)3.832 E F1<ad6f>3.832 E F0 1.333
(operators are considered binary operators when there are)3.832 F .558
(three ar)180 578.4 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058
F .558(gument is)-.18 F F1(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F
.558(alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F
-(o-ar)-.1 E(gument)-.18 E .521(test using the second and third ar)180
-590.4 R 3.021(guments. If)-.18 F .521(the \214rst ar)3.021 F .52
-(gument is e)-.18 F(xactly)-.15 E F1(\()3.02 E F0 .52(and the third)3.02
-F(ar)180 602.4 Q .485(gument is e)-.18 F(xactly)-.15 E F1(\))2.985 E F0
-2.985(,t)C .485(he result is the one-ar)-2.985 F .485
+(o-ar)-.1 E(gument)-.18 E .52(test using the second and third ar)180
+590.4 R 3.021(guments. If)-.18 F .521(the \214rst ar)3.021 F .521
+(gument is e)-.18 F(xactly)-.15 E F1(\()3.021 E F0 .521(and the third)
+3.021 F(ar)180 602.4 Q .485(gument is e)-.18 F(xactly)-.15 E F1(\))2.985
+E F0 2.985(,t)C .485(he result is the one-ar)-2.985 F .485
(gument test of the second ar)-.18 F 2.985(gument. Other)-.18 F(-)-.2 E
(wise, the e)180 614.4 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144
-626.4 S -.18(rg)-2.5 G(uments).18 E .385(If the \214rst ar)180 638.4 R
-.385(gument is)-.18 F F1(!)2.885 E F0 2.885(,t)C .385
-(he result is the ne)-2.885 F -.05(ga)-.15 G .384(tion of the three-ar)
-.05 F .384(gument e)-.18 F .384(xpression com-)-.15 F 1.647
+626.4 S -.18(rg)-2.5 G(uments).18 E .384(If the \214rst ar)180 638.4 R
+.384(gument is)-.18 F F1(!)2.884 E F0 2.885(,t)C .385
+(he result is the ne)-2.885 F -.05(ga)-.15 G .385(tion of the three-ar)
+.05 F .385(gument e)-.18 F .385(xpression com-)-.15 F 1.648
(posed of the remaining ar)180 650.4 R 4.147(guments. Otherwise,)-.18 F
-1.647(the e)4.147 F 1.648(xpression is parsed and e)-.15 F -.25(va)-.25
+1.647(the e)4.147 F 1.647(xpression is parsed and e)-.15 F -.25(va)-.25
G(luated).25 E(according to precedence using the rules listed abo)180
662.4 Q -.15(ve)-.15 G(.).15 E 2.5(5o)144 674.4 S 2.5(rm)-2.5 G(ore ar)
-2.5 E(guments)-.18 E 1.635(The e)180 686.4 R 1.635
ted user and system times for the shell and for processes run from the \
shell.)13.23 F(The return status is 0.)144 96 Q F1(trap)108 112.8 Q F0
([)2.5 E F1(\255lp)A F0 2.5(][)C([)-2.5 E/F2 10/Times-Italic@0 SF(ar)A
-(g)-.37 E F0(])A F2(sigspec)2.5 E F0(...])2.5 E .703(The command)144
-124.8 R F2(ar)3.533 E(g)-.37 E F0 .703(is to be read and e)3.423 F -.15
-(xe)-.15 G .702(cuted when the shell recei).15 F -.15(ve)-.25 G 3.202
-(ss).15 G(ignal\(s\))-3.202 E F2(sigspec)3.202 E F0 5.702(.I).31 G(f)
--5.702 E F2(ar)3.532 E(g)-.37 E F0(is)3.422 E .608
+(g)-.37 E F0(])A F2(sigspec)2.5 E F0(...])2.5 E .702(The command)144
+124.8 R F2(ar)3.532 E(g)-.37 E F0 .702(is to be read and e)3.422 F -.15
+(xe)-.15 G .702(cuted when the shell recei).15 F -.15(ve)-.25 G 3.203
+(ss).15 G(ignal\(s\))-3.203 E F2(sigspec)3.203 E F0 5.703(.I).31 G(f)
+-5.703 E F2(ar)3.533 E(g)-.37 E F0(is)3.423 E .609
(absent \(and there is a single)144 136.8 R F2(sigspec)3.108 E F0 3.108
(\)o)C(r)-3.108 E F1<ad>3.108 E F0 3.108(,e)C .608
(ach speci\214ed signal is reset to its original disposition)-3.108 F
-.659(\(the v)144 148.8 R .659(alue it had upon entrance to the shell\).)
--.25 F(If)5.658 E F2(ar)3.488 E(g)-.37 E F0 .658
+.658(\(the v)144 148.8 R .658(alue it had upon entrance to the shell\).)
+-.25 F(If)5.658 E F2(ar)3.488 E(g)-.37 E F0 .659
(is the null string the signal speci\214ed by each)3.378 F F2(sigspec)
-144.34 160.8 Q F0 .58(is ignored by the shell and by the commands it in)
-3.39 F -.2(vo)-.4 G -.1(ke).2 G 3.081(s. If).1 F F2(ar)3.411 E(g)-.37 E
-F0 .581(is not present and)3.301 F F1<ad70>3.081 E F0(has)3.081 E 1.215
+144.34 160.8 Q F0 .581
+(is ignored by the shell and by the commands it in)3.391 F -.2(vo)-.4 G
+-.1(ke).2 G 3.08(s. If).1 F F2(ar)3.41 E(g)-.37 E F0 .58
+(is not present and)3.3 F F1<ad70>3.08 E F0(has)3.08 E 1.214
(been supplied, then the trap commands associated with each)144 172.8 R
-F2(sigspec)4.054 E F0 1.214(are displayed.)4.024 F 1.214(If no ar)6.214
+F2(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215
F(gu-)-.18 E .86(ments are supplied or if only)144 184.8 R F1<ad70>3.36
E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86
(prints the list of commands associated with each)3.36 F 2.83
(signal. The)144 196.8 R F1<ad6c>2.83 E F0 .33(option causes the shell \
-to print a list of signal names and their corresponding num-)2.83 F 4.31
-(bers. Each)144 208.8 R F2(sigspec)4.65 E F0 1.811
-(is either a signal name de\214ned in <)4.62 F F2(signal.h)A F0 1.811
-(>, or a signal number)B 6.811(.S)-.55 G(ignal)-6.811 E
+to print a list of signal names and their corresponding num-)2.83 F
+4.311(bers. Each)144 208.8 R F2(sigspec)4.651 E F0 1.811
+(is either a signal name de\214ned in <)4.621 F F2(signal.h)A F0 1.81
+(>, or a signal number)B 6.81(.S)-.55 G(ignal)-6.81 E
(names are case insensiti)144 220.8 Q .3 -.15(ve a)-.25 H(nd the).15 E
-/F3 9/Times-Bold@0 SF(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.649
-(If a)144 238.8 R F2(sigspec)4.489 E F0(is)4.459 E F3(EXIT)4.149 E F0
-1.649(\(0\) the command)3.899 F F2(ar)4.479 E(g)-.37 E F0 1.649(is e)
-4.369 F -.15(xe)-.15 G 1.649(cuted on e).15 F 1.648(xit from the shell.)
--.15 F 1.648(If a)6.648 F F2(sigspec)4.488 E F0(is)4.458 E F3(DEB)144
-250.8 Q(UG)-.09 E/F4 9/Times-Roman@0 SF(,)A F0 1.167(the command)3.417 F
-F2(ar)3.997 E(g)-.37 E F0 1.167(is e)3.887 F -.15(xe)-.15 G 1.167
-(cuted before e).15 F -.15(ve)-.25 G(ry).15 E F2 1.168(simple command)
-3.667 F F0(,)A F2(for)3.668 E F0(command,)3.668 E F2(case)3.668 E F0
-(com-)3.668 E(mand,)144 262.8 Q F2(select)2.647 E F0 .147(command, e)
-2.647 F -.15(ve)-.25 G .147(ry arithmetic).15 F F2(for)2.647 E F0 .146
-(command, and before the \214rst command e)2.647 F -.15(xe)-.15 G .146
-(cutes in a).15 F .145(shell function \(see)144 274.8 R F3 .145
-(SHELL GRAMMAR)2.645 F F0(abo)2.395 E -.15(ve)-.15 G 2.646(\). Refer).15
-F .146(to the description of the)2.646 F F1(extdeb)2.646 E(ug)-.2 E F0
-.146(option to)2.646 F(the)144 286.8 Q F1(shopt)3.201 E F0 -.2(bu)3.201
-G .7(iltin for details of its ef).2 F .7(fect on the)-.25 F F1(DEB)3.2 E
-(UG)-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F2(sigspec)3.54 E F0(is)3.51 E
-F3(RETURN)3.2 E F4(,)A F0 .7(the com-)2.95 F(mand)144 298.8 Q F2(ar)
-3.473 E(g)-.37 E F0 .643(is e)3.363 F -.15(xe)-.15 G .643
+/F3 9/Times-Bold@0 SF(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.648
+(If a)144 238.8 R F2(sigspec)4.488 E F0(is)4.458 E F3(EXIT)4.148 E F0
+1.648(\(0\) the command)3.898 F F2(ar)4.479 E(g)-.37 E F0 1.649(is e)
+4.369 F -.15(xe)-.15 G 1.649(cuted on e).15 F 1.649(xit from the shell.)
+-.15 F 1.649(If a)6.649 F F2(sigspec)4.489 E F0(is)4.459 E F3(DEB)144
+250.8 Q(UG)-.09 E/F4 9/Times-Roman@0 SF(,)A F0 1.168(the command)3.418 F
+F2(ar)3.998 E(g)-.37 E F0 1.168(is e)3.888 F -.15(xe)-.15 G 1.167
+(cuted before e).15 F -.15(ve)-.25 G(ry).15 E F2 1.167(simple command)
+3.667 F F0(,)A F2(for)3.667 E F0(command,)3.667 E F2(case)3.667 E F0
+(com-)3.667 E(mand,)144 262.8 Q F2(select)2.646 E F0 .146(command, e)
+2.646 F -.15(ve)-.25 G .146(ry arithmetic).15 F F2(for)2.646 E F0 .147
+(command, and before the \214rst command e)2.646 F -.15(xe)-.15 G .147
+(cutes in a).15 F .146(shell function \(see)144 274.8 R F3 .146
+(SHELL GRAMMAR)2.646 F F0(abo)2.396 E -.15(ve)-.15 G 2.646(\). Refer).15
+F .146(to the description of the)2.646 F F1(extdeb)2.645 E(ug)-.2 E F0
+.145(option to)2.645 F(the)144 286.8 Q F1(shopt)3.2 E F0 -.2(bu)3.2 G .7
+(iltin for details of its ef).2 F .7(fect on the)-.25 F F1(DEB)3.2 E(UG)
+-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F2(sigspec)3.54 E F0(is)3.51 E F3
+(RETURN)3.2 E F4(,)A F0 .701(the com-)2.951 F(mand)144 298.8 Q F2(ar)
+3.474 E(g)-.37 E F0 .644(is e)3.364 F -.15(xe)-.15 G .643
(cuted each time a shell function or a script e).15 F -.15(xe)-.15 G
-.644(cuted with the).15 F F1(.)3.144 E F0(or)3.144 E F1(sour)3.144 E(ce)
--.18 E F0 -.2(bu)3.144 G(iltins).2 E(\214nishes e)144 310.8 Q -.15(xe)
--.15 G(cuting.).15 E .929(If a)144 328.8 R F2(sigspec)3.769 E F0(is)
-3.739 E F3(ERR)3.429 E F4(,)A F0 .929(the command)3.179 F F2(ar)3.759 E
+.643(cuted with the).15 F F1(.)3.143 E F0(or)3.143 E F1(sour)3.143 E(ce)
+-.18 E F0 -.2(bu)3.143 G(iltins).2 E(\214nishes e)144 310.8 Q -.15(xe)
+-.15 G(cuting.).15 E .928(If a)144 328.8 R F2(sigspec)3.768 E F0(is)
+3.738 E F3(ERR)3.429 E F4(,)A F0 .929(the command)3.179 F F2(ar)3.759 E
(g)-.37 E F0 .929(is e)3.649 F -.15(xe)-.15 G .929(cuted whene).15 F
--.15(ve)-.25 G 3.429(ras).15 G .928(imple command has a non\255zero)
--3.429 F -.15(ex)144 340.8 S 1.008(it status, subject to the follo).15 F
+-.15(ve)-.25 G 3.429(ras).15 G .929(imple command has a non\255zero)
+-3.429 F -.15(ex)144 340.8 S 1.009(it status, subject to the follo).15 F
1.009(wing conditions.)-.25 F(The)6.009 E F3(ERR)3.509 E F0 1.009
-(trap is not e)3.259 F -.15(xe)-.15 G 1.009(cuted if the f).15 F 1.009
+(trap is not e)3.259 F -.15(xe)-.15 G 1.008(cuted if the f).15 F 1.008
(ailed com-)-.1 F .324
(mand is part of the command list immediately follo)144 352.8 R .324
(wing a)-.25 F F1(while)2.824 E F0(or)2.824 E F1(until)2.824 E F0 -.1
(Signals ignored upon entry to the shell cannot be trapped or reset.)144
394.8 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662
(being ignored are reset to their original v)144 406.8 R .662
-(alues in a subshell or subshell en)-.25 F .662(vironment when one is)
+(alues in a subshell or subshell en)-.25 F .661(vironment when one is)
-.4 F 2.5(created. The)144 418.8 R(return status is f)2.5 E(alse if an)
-.1 E(y)-.15 E F2(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G
(lid; otherwise).25 E F1(trap)2.5 E F0(returns true.)2.5 E F1(type)108
435.6 Q F0([)2.5 E F1(\255aftpP)A F0(])A F2(name)2.5 E F0([)2.5 E F2
-(name)A F0(...])2.5 E -.4(Wi)144 447.6 S .174
-(th no options, indicate ho).4 F 2.674(we)-.25 G(ach)-2.674 E F2(name)
-3.034 E F0 -.1(wo)2.854 G .173
-(uld be interpreted if used as a command name.).1 F .173(If the)5.173 F
-F1<ad74>144 459.6 Q F0 .842(option is used,)3.342 F F1(type)3.342 E F0
+(name)A F0(...])2.5 E -.4(Wi)144 447.6 S .173
+(th no options, indicate ho).4 F 2.673(we)-.25 G(ach)-2.673 E F2(name)
+3.033 E F0 -.1(wo)2.853 G .174
+(uld be interpreted if used as a command name.).1 F .174(If the)5.174 F
+F1<ad74>144 459.6 Q F0 .843(option is used,)3.343 F F1(type)3.343 E F0
.843(prints a string which is one of)3.343 F F2(alias)3.343 E F0(,).27 E
F2 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F2(function)3.343 E F0
-(,).24 E F2 -.2(bu)3.343 G(iltin).2 E F0 3.343(,o).24 G(r)-3.343 E F2
-(\214le)5.253 E F0(if)3.523 E F2(name)144.36 471.6 Q F0 .087
-(is an alias, shell reserv)2.767 F .087(ed w)-.15 F .087
-(ord, function, b)-.1 F .086(uiltin, or disk \214le, respecti)-.2 F -.15
-(ve)-.25 G(ly).15 E 5.086(.I)-.65 G 2.586(ft)-5.086 G(he)-2.586 E F2
-(name)2.946 E F0 .086(is not)2.766 F .118
+(,).24 E F2 -.2(bu)3.342 G(iltin).2 E F0 3.342(,o).24 G(r)-3.342 E F2
+(\214le)5.252 E F0(if)3.522 E F2(name)144.36 471.6 Q F0 .086
+(is an alias, shell reserv)2.766 F .086(ed w)-.15 F .086
+(ord, function, b)-.1 F .087(uiltin, or disk \214le, respecti)-.2 F -.15
+(ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F2
+(name)2.947 E F0 .087(is not)2.767 F .119
(found, then nothing is printed, and an e)144 483.6 R .118
-(xit status of f)-.15 F .118(alse is returned.)-.1 F .119(If the)5.119 F
-F1<ad70>2.619 E F0 .119(option is used,)2.619 F F1(type)2.619 E F0 .855
+(xit status of f)-.15 F .118(alse is returned.)-.1 F .118(If the)5.118 F
+F1<ad70>2.618 E F0 .118(option is used,)2.618 F F1(type)2.618 E F0 .855
(either returns the name of the disk \214le that w)144 495.6 R .855
(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0
-.855(were speci\214ed as a com-)3.535 F .64(mand name, or nothing if)144
-507.6 R/F5 10/Courier@0 SF .64(type -t name)3.14 F F0 -.1(wo)3.14 G .641
-(uld not return).1 F F2(\214le)3.141 E F0 5.641(.T).18 G(he)-5.641 E F1
-<ad50>3.141 E F0 .641(option forces a)3.141 F F3 -.666(PA)3.141 G(TH)
--.189 E F0 .113(search for each)144 519.6 R F2(name)2.613 E F0 2.613(,e)
-C -.15(ve)-2.863 G 2.613(ni).15 G(f)-2.613 E F5 .113(type -t name)2.613
-F F0 -.1(wo)2.613 G .113(uld not return).1 F F2(\214le)2.613 E F0 5.113
-(.I).18 G 2.613(fa)-5.113 G .112(command is hashed,)-.001 F F1<ad70>
-2.612 E F0(and)144 531.6 Q F1<ad50>3.23 E F0 .73(print the hashed v)3.23
-F .731
-(alue, which is not necessarily the \214le that appears \214rst in)-.25
-F F3 -.666(PA)3.231 G(TH)-.189 E F4(.)A F0 .731(If the)5.231 F F1<ad61>
-144 543.6 Q F0 1.749(option is used,)4.249 F F1(type)4.248 E F0 1.748
-(prints all of the places that contain an e)4.248 F -.15(xe)-.15 G 1.748
-(cutable named).15 F F2(name)4.248 E F0 6.748(.T).18 G(his)-6.748 E .744
-(includes aliases and functions, if and only if the)144 555.6 R F1<ad70>
-3.244 E F0 .744(option is not also used.)3.244 F .744
+.855(were speci\214ed as a com-)3.535 F .641(mand name, or nothing if)
+144 507.6 R/F5 10/Courier@0 SF .641(type -t name)3.141 F F0 -.1(wo)3.141
+G .641(uld not return).1 F F2(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E
+F1<ad50>3.14 E F0 .64(option forces a)3.14 F F3 -.666(PA)3.14 G(TH)-.189
+E F0 .112(search for each)144 519.6 R F2(name)2.612 E F0 2.612(,e)C -.15
+(ve)-2.862 G 2.613(ni).15 G(f)-2.613 E F5 .113(type -t name)2.613 F F0
+-.1(wo)2.613 G .113(uld not return).1 F F2(\214le)2.613 E F0 5.113(.I)
+.18 G 2.613(fac)-5.113 G .113(ommand is hashed,)-2.613 F F1<ad70>2.613 E
+F0(and)144 531.6 Q F1<ad50>3.231 E F0 .731(print the hashed v)3.231 F
+.73(alue, which is not necessarily the \214le that appears \214rst in)
+-.25 F F3 -.666(PA)3.23 G(TH)-.189 E F4(.)A F0 .73(If the)5.23 F F1
+<ad61>144 543.6 Q F0 1.748(option is used,)4.248 F F1(type)4.248 E F0
+1.748(prints all of the places that contain an e)4.248 F -.15(xe)-.15 G
+1.748(cutable named).15 F F2(name)4.249 E F0 6.749(.T).18 G(his)-6.749 E
+.744(includes aliases and functions, if and only if the)144 555.6 R F1
+<ad70>3.244 E F0 .744(option is not also used.)3.244 F .743
(The table of hashed)5.744 F 1.223(commands is not consulted when using)
144 567.6 R F1<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F1<ad66>3.723 E F0
-1.223(option suppresses shell function lookup, as)3.723 F .325(with the)
-144 579.6 R F1(command)2.825 E F0 -.2(bu)2.825 G(iltin.).2 E F1(type)
-5.325 E F0 .325(returns true if all of the ar)2.825 F .326
-(guments are found, f)-.18 F .326(alse if an)-.1 F 2.826(ya)-.15 G .326
-(re not)-2.826 F(found.)144 591.6 Q F1(ulimit)108 608.4 Q F0([)2.5 E F1
+1.223(option suppresses shell function lookup, as)3.723 F .326(with the)
+144 579.6 R F1(command)2.826 E F0 -.2(bu)2.826 G(iltin.).2 E F1(type)
+5.326 E F0 .326(returns true if all of the ar)2.826 F .325
+(guments are found, f)-.18 F .325(alse if an)-.1 F 2.825(ya)-.15 G .325
+(re not)-2.825 F(found.)144 591.6 Q F1(ulimit)108 608.4 Q F0([)2.5 E F1
(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F2(limit)A F0(]])A
-(Pro)144 620.4 Q .244(vides control o)-.15 F -.15(ve)-.15 G 2.744(rt).15
-G .244(he resources a)-2.744 F -.25(va)-.2 G .244
+(Pro)144 620.4 Q .243(vides control o)-.15 F -.15(ve)-.15 G 2.743(rt).15
+G .243(he resources a)-2.743 F -.25(va)-.2 G .244
(ilable to the shell and to processes started by it, on systems).25 F
-.943(that allo)144 632.4 R 3.443(ws)-.25 G .943(uch control.)-3.443 F
-(The)5.943 E F1<ad48>3.443 E F0(and)3.443 E F1<ad53>3.444 E F0 .944
+.944(that allo)144 632.4 R 3.444(ws)-.25 G .944(uch control.)-3.444 F
+(The)5.944 E F1<ad48>3.444 E F0(and)3.444 E F1<ad53>3.444 E F0 .943
(options specify that the hard or soft limit is set for the)3.444 F(gi)
-144 644.4 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
+144 644.4 Q -.15(ve)-.25 G 2.708(nr).15 G 2.708(esource. A)-2.708 F .208
(hard limit cannot be increased by a non-root user once it is set; a so\
-ft limit may)2.709 F .425(be increased up to the v)144 656.4 R .425
-(alue of the hard limit.)-.25 F .426(If neither)5.425 F F1<ad48>2.926 E
-F0(nor)2.926 E F1<ad53>2.926 E F0 .426
-(is speci\214ed, both the soft and)2.926 F .139(hard limits are set.)144
+ft limit may)2.708 F .426(be increased up to the v)144 656.4 R .426
+(alue of the hard limit.)-.25 F .425(If neither)5.426 F F1<ad48>2.925 E
+F0(nor)2.925 E F1<ad53>2.925 E F0 .425
+(is speci\214ed, both the soft and)2.925 F .139(hard limits are set.)144
668.4 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
(can be a number in the unit speci\214ed for the resource or one)3.319 F
-.741(of the special v)144 680.4 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1
+.742(of the special v)144 680.4 R(alues)-.25 E F1(hard)3.242 E F0(,)A F1
(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w)
C .741(hich stand for the current hard limit, the current)-3.241 F .78
(soft limit, and no limit, respecti)144 692.4 R -.15(ve)-.25 G(ly).15 E
5.78(.I)-.65 G(f)-5.78 E F2(limit)3.37 E F0 .78
(is omitted, the current v)3.96 F .78(alue of the soft limit of the)-.25
-F .498(resource is printed, unless the)144 704.4 R F1<ad48>2.999 E F0
-.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .499
+F .499(resource is printed, unless the)144 704.4 R F1<ad48>2.999 E F0
+.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .498
(more than one resource is speci\214ed, the)2.999 F
(limit name and unit are printed before the v)144 716.4 Q 2.5
(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E
(The maximum resident set size \(man)21.97 E 2.5(ys)-.15 G
(ystems do not honor this limit\))-2.5 E F1<ad6e>144 192 Q F0 .791(The \
maximum number of open \214le descriptors \(most systems do not allo)
-24.74 F 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F(be set\))180
-204 Q F1<ad70>144 216 Q F0
+24.74 F 3.291(wt)-.25 G .791(his v)-3.291 F .791(alue to)-.25 F
+(be set\))180 204 Q F1<ad70>144 216 Q F0
(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F1
<ad71>144 228 Q F0(The maximum number of bytes in POSIX message queues)
24.74 E F1<ad72>144 240 Q F0(The maximum real-time scheduling priority)
-.25 G .468(n, and the).15 F F1<ad61>2.968 E F0 .468
(option is not used,)2.968 F F2(limit)2.968 E F0 .468(is the ne)2.968 F
2.968(wv)-.25 G .468(alue of the speci\214ed resource.)-3.218 F(If)5.468
-E .044(no option is gi)144 352.8 R -.15(ve)-.25 G .044(n, then).15 F F1
-<ad66>2.544 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045 G .045
-(lues are in 1024-byte increments, e)1.11 F .045(xcept for)-.15 F F1
-<ad74>2.545 E F0 2.545(,w)C .045(hich is)-2.545 F .403(in seconds;)144
-364.8 R F1<ad70>2.903 E F0 2.903(,w)C .402
-(hich is in units of 512-byte blocks; and)-2.903 F F1<ad54>2.902 E F0(,)
+E .045(no option is gi)144 352.8 R -.15(ve)-.25 G .045(n, then).15 F F1
+<ad66>2.545 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045 G .045
+(lues are in 1024-byte increments, e)1.11 F .044(xcept for)-.15 F F1
+<ad74>2.544 E F0 2.544(,w)C .044(hich is)-2.544 F .402(in seconds;)144
+364.8 R F1<ad70>2.902 E F0 2.902(,w)C .402
+(hich is in units of 512-byte blocks; and)-2.902 F F1<ad54>2.902 E F0(,)
A F1<ad62>2.902 E F0(,)A F1<ad6e>2.902 E F0 2.902(,a)C(nd)-2.902 E F1
-<ad75>2.902 E F0 2.902(,w)C .402(hich are unscaled)-2.902 F -.25(va)144
-376.8 S 3.082(lues. The).25 F .583(return status is 0 unless an in)3.083
+<ad75>2.903 E F0 2.903(,w)C .403(hich are unscaled)-2.903 F -.25(va)144
+376.8 S 3.083(lues. The).25 F .583(return status is 0 unless an in)3.083
F -.25(va)-.4 G .583(lid option or ar).25 F .583
(gument is supplied, or an error occurs)-.18 F(while setting a ne)144
388.8 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 405.6 Q F0([)2.5 E F1
(gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\
therwise it is interpreted as a symbolic mode mask similar to that acce\
pted by)144 429.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-441.6 Q F2(mode)3.263 E F0 .382(is omitted, the current v)3.063 F .382
+441.6 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
(alue of the mask is printed.)-.25 F(The)5.382 E F1<ad53>2.882 E F0 .382
(option causes the mask to be)2.882 F .547
(printed in symbolic form; the def)144 453.6 R .547
(ault output is an octal number)-.1 F 5.547(.I)-.55 G 3.047(ft)-5.547 G
(he)-3.047 E F1<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F2
-(mode)144.38 465.6 Q F0 .552
-(is omitted, the output is in a form that may be reused as input.)3.232
-F .551(The return status is 0 if the)5.551 F(mode w)144 477.6 Q
+(mode)144.38 465.6 Q F0 .551
+(is omitted, the output is in a form that may be reused as input.)3.231
+F .552(The return status is 0 if the)5.552 F(mode w)144 477.6 Q
(as successfully changed or if no)-.1 E F2(mode)2.5 E F0(ar)2.5 E
(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F1
(unalias)108 494.4 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
F(remo)144 518.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
(alue is true unless a supplied)-.25 E F2(name)2.86 E F0
(is not a de\214ned alias.)2.68 E F1(unset)108 535.2 Q F0<5bad>2.5 E F1
-(fv)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E -.15(Fo)144 547.2 S 3.828
-(re).15 G(ach)-3.828 E F2(name)3.828 E F0 3.828(,r).18 G(emo)-3.828 E
-1.628 -.15(ve t)-.15 H 1.328(he corresponding v).15 F 1.327
-(ariable or function.)-.25 F 1.327(If the)6.327 F F1<ad76>3.827 E F0
-1.327(option is gi)3.827 F -.15(ve)-.25 G 1.327(n, each).15 F F2(name)
-144.36 559.2 Q F0 1.55(refers to a shell v)4.23 F 1.551
+(fv)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E -.15(Fo)144 547.2 S 3.827
+(re).15 G(ach)-3.827 E F2(name)3.827 E F0 3.827(,r).18 G(emo)-3.827 E
+1.627 -.15(ve t)-.15 H 1.327(he corresponding v).15 F 1.327
+(ariable or function.)-.25 F 1.327(If the)6.327 F F1<ad76>3.828 E F0
+1.328(option is gi)3.828 F -.15(ve)-.25 G 1.328(n, each).15 F F2(name)
+144.36 559.2 Q F0 1.551(refers to a shell v)4.231 F 1.551
(ariable, and that v)-.25 F 1.551(ariable is remo)-.25 F -.15(ve)-.15 G
-4.051(d. Read-only).15 F -.25(va)4.051 G 1.551(riables may not be).25 F
-4.642(unset. If)144 571.2 R F1<ad66>4.642 E F0 2.142
-(is speci\214ed, each)4.642 F F2(name)5.001 E F0 2.141
+4.05(d. Read-only).15 F -.25(va)4.05 G 1.55(riables may not be).25 F
+4.641(unset. If)144 571.2 R F1<ad66>4.641 E F0 2.141
+(is speci\214ed, each)4.641 F F2(name)5.001 E F0 2.141
(refers to a shell function, and the function de\214nition is)4.821 F
-(remo)144 583.2 Q -.15(ve)-.15 G 2.898(d. If).15 F .398
-(no options are supplied, each)2.898 F F2(name)2.898 E F0 .398
-(refers to a v)2.898 F .399(ariable; if there is no v)-.25 F .399
-(ariable by that)-.25 F .579(name, an)144 595.2 R 3.079(yf)-.15 G .579
-(unction with that name is unset.)-3.079 F .579(Each unset v)5.579 F
-.579(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.078(df).15 G
-.578(rom the)-3.078 F(en)144 607.2 Q .045
+(remo)144 583.2 Q -.15(ve)-.15 G 2.899(d. If).15 F .399
+(no options are supplied, each)2.899 F F2(name)2.898 E F0 .398
+(refers to a v)2.898 F .398(ariable; if there is no v)-.25 F .398
+(ariable by that)-.25 F .578(name, an)144 595.2 R 3.078(yf)-.15 G .579
+(unction with that name is unset.)-3.078 F .579(Each unset v)5.579 F
+.579(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.079(df).15 G
+.579(rom the)-3.079 F(en)144 607.2 Q .046
(vironment passed to subsequent commands.)-.4 F .046(If an)5.046 F 2.546
-(yo)-.15 G(f)-2.546 E/F3 9/Times-Bold@0 SF(COMP_W)2.546 E(ORDBREAKS)-.09
-E/F4 9/Times-Roman@0 SF(,)A F3(RANDOM)2.296 E F4(,)A F3(SEC-)2.296 E
-(ONDS)144 619.2 Q F4(,)A F3(LINENO)2.641 E F4(,)A F3(HISTCMD)2.641 E F4
-(,)A F3(FUNCN)2.641 E(AME)-.18 E F4(,)A F3(GR)2.64 E(OUPS)-.27 E F4(,)A
-F0(or)2.64 E F3(DIRST)2.89 E -.495(AC)-.81 G(K).495 E F0 .39
-(are unset, the)2.64 F 2.89(yl)-.15 G .39(ose their spe-)-2.89 F .726
-(cial properties, e)144 631.2 R -.15(ve)-.25 G 3.226(ni).15 G 3.226(ft)
--3.226 G(he)-3.226 E 3.226(ya)-.15 G .726(re subsequently reset.)-3.226
-F .726(The e)5.726 F .727(xit status is true unless a)-.15 F F2(name)
-3.587 E F0 .727(is read-)3.407 F(only)144 643.2 Q(.)-.65 E F1(wait)108
+(yo)-.15 G(f)-2.546 E/F3 9/Times-Bold@0 SF(COMP_W)2.545 E(ORDBREAKS)-.09
+E/F4 9/Times-Roman@0 SF(,)A F3(RANDOM)2.295 E F4(,)A F3(SEC-)2.295 E
+(ONDS)144 619.2 Q F4(,)A F3(LINENO)2.64 E F4(,)A F3(HISTCMD)2.64 E F4(,)
+A F3(FUNCN)2.64 E(AME)-.18 E F4(,)A F3(GR)2.64 E(OUPS)-.27 E F4(,)A F0
+(or)2.64 E F3(DIRST)2.89 E -.495(AC)-.81 G(K).495 E F0 .39
+(are unset, the)2.64 F 2.891(yl)-.15 G .391(ose their spe-)-2.891 F .727
+(cial properties, e)144 631.2 R -.15(ve)-.25 G 3.227(ni).15 G 3.227(ft)
+-3.227 G(he)-3.227 E 3.227(ya)-.15 G .727(re subsequently reset.)-3.227
+F .726(The e)5.727 F .726(xit status is true unless a)-.15 F F2(name)
+3.586 E F0 .726(is read-)3.406 F(only)144 643.2 Q(.)-.65 E F1(wait)108
660 Q F0([)2.5 E F2 2.5(n.)C(..)-2.5 E F0(])A -.8(Wa)144 672 S .288
(it for each speci\214ed process and return its termination status.).8 F
-(Each)5.288 E F2(n)3.148 E F0 .287(may be a process ID or a)3.028 F .722
+(Each)5.288 E F2(n)3.148 E F0 .288(may be a process ID or a)3.028 F .722
(job speci\214cation; if a job spec is gi)144 684 R -.15(ve)-.25 G .722
(n, all processes in that job').15 F 3.222(sp)-.55 G .722(ipeline are w)
--3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E F2(n)3.583 E F0
-(is)3.463 E 1.266(not gi)144 696 R -.15(ve)-.25 G 1.266
-(n, all currently acti).15 F 1.566 -.15(ve c)-.25 H 1.265
-(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.265
-(nd the return status is zero.)-3.765 F(If)6.265 E F2(n)4.125 E F0 .456
+-3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E F2(n)3.582 E F0
+(is)3.462 E 1.265(not gi)144 696 R -.15(ve)-.25 G 1.265
+(n, all currently acti).15 F 1.565 -.15(ve c)-.25 H 1.265
+(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.266
+(nd the return status is zero.)-3.765 F(If)6.266 E F2(n)4.126 E F0 .457
(speci\214es a non-e)144 708 R .457
(xistent process or job, the return status is 127.)-.15 F .457
(Otherwise, the return status is the)5.457 F -.15(ex)144 720 S
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
-.35 E/F1 10.95/Times-Bold@0 SF(RESTRICTED SHELL)72 84 Q F0(If)108 96 Q
-/F2 10/Times-Bold@0 SF(bash)4.397 E F0 1.897(is started with the name)
-4.397 F F2(rbash)4.397 E F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F2
-<ad72>4.397 E F0 1.896(option is supplied at in)4.397 F -.2(vo)-.4 G
-1.896(cation, the shell becomes).2 F 3.445(restricted. A)108 108 R .945
-(restricted shell is used to set up an en)3.445 F .946
-(vironment more controlled than the standard shell.)-.4 F(It)5.946 E
+/F2 10/Times-Bold@0 SF(bash)4.396 E F0 1.896(is started with the name)
+4.396 F F2(rbash)4.397 E F0 4.397(,o)C 4.397(rt)-4.397 G(he)-4.397 E F2
+<ad72>4.397 E F0 1.897(option is supplied at in)4.397 F -.2(vo)-.4 G
+1.897(cation, the shell becomes).2 F 3.446(restricted. A)108 108 R .945
+(restricted shell is used to set up an en)3.446 F .945
+(vironment more controlled than the standard shell.)-.4 F(It)5.945 E
(beha)108 120 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F2(bash)
2.5 E F0(with the e)2.5 E(xception that the follo)-.15 E
(wing are disallo)-.25 E(wed or not performed:)-.25 E 32.5<8363>108
(pecifying command names containing)-32.5 E F2(/)2.5 E F0 32.5<8373>108
187.2 S(pecifying a \214lename containing a)-32.5 E F2(/)2.5 E F0
(as an ar)2.5 E(gument to the)-.18 E F2(.)2.5 E F0 -.2(bu)5 G
-(iltin command).2 E 32.5<8373>108 204 S .45
+(iltin command).2 E 32.5<8373>108 204 S .449
(pecifying a \214lename containing a slash as an ar)-32.5 F .449
-(gument to the)-.18 F F2<ad70>2.949 E F0 .449(option to the)2.949 F F2
-(hash)2.949 E F0 -.2(bu)2.949 G .449(iltin com-).2 F(mand)144 216 Q 32.5
+(gument to the)-.18 F F2<ad70>2.95 E F0 .45(option to the)2.95 F F2
+(hash)2.95 E F0 -.2(bu)2.95 G .45(iltin com-).2 F(mand)144 216 Q 32.5
<8369>108 232.8 S(mporting function de\214nitions from the shell en)
-32.5 E(vironment at startup)-.4 E 32.5<8370>108 249.6 S(arsing the v)
-32.5 E(alue of)-.25 E F3(SHELLOPTS)2.5 E F0(from the shell en)2.25 E
(These restrictions are enforced after an)108 367.2 Q 2.5(ys)-.15 G
(tartup \214les are read.)-2.5 E 1.566
(When a command that is found to be a shell script is e)108 384 R -.15
-(xe)-.15 G 1.567(cuted \(see).15 F F3 1.567(COMMAND EXECUTION)4.067 F F0
-(abo)3.817 E -.15(ve)-.15 G(\),).15 E F2(rbash)108 396 Q F0(turns of)2.5
+(xe)-.15 G 1.566(cuted \(see).15 F F3 1.566(COMMAND EXECUTION)4.066 F F0
+(abo)3.816 E -.15(ve)-.15 G(\),).15 E F2(rbash)108 396 Q F0(turns of)2.5
E 2.5(fa)-.25 G .3 -.15(ny r)-2.5 H(estrictions in the shell spa).15 E
(wned to e)-.15 E -.15(xe)-.15 G(cute the script.).15 E F1(SEE ALSO)72
412.8 Q/F5 10/Times-Italic@0 SF(Bash Refer)108 424.8 Q(ence Manual)-.37
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 389.54(SH\(1\) B).35 F(ASH\(1\))
-.35 E/F1 10.95/Times-Bold@0 SF -.11(BU)72 84 S 2.738(GR).11 G(EPOR)
--2.738 E(TS)-.438 E F0 .568(If you \214nd a b)108 96 R .568(ug in)-.2 F
+-2.738 E(TS)-.438 E F0 .567(If you \214nd a b)108 96 R .568(ug in)-.2 F
/F2 10/Times-Bold@0 SF(bash,)3.068 E F0 .568(you should report it.)3.068
F .568(But \214rst, you should mak)5.568 F 3.068(es)-.1 G .568
-(ure that it really is a b)-3.068 F .567(ug, and)-.2 F 5.625
+(ure that it really is a b)-3.068 F .568(ug, and)-.2 F 5.626
(that it appears in the latest v)108 108 R 5.625(ersion of)-.15 F F2
-(bash)8.125 E F0 10.625(.T)C 5.625(he latest v)-10.625 F 5.626
-(ersion is al)-.15 F -.1(wa)-.1 G 5.626(ys a).1 F -.25(va)-.2 G 5.626
+(bash)8.125 E F0 10.625(.T)C 5.625(he latest v)-10.625 F 5.625
+(ersion is al)-.15 F -.1(wa)-.1 G 5.625(ys a).1 F -.25(va)-.2 G 5.625
(ilable from).25 F/F3 10/Times-Italic@0 SF(ftp://ftp.gnu.or)108 120 Q
-(g/pub/gnu/bash/)-.37 E F0(.)A .411(Once you ha)108 136.8 R .711 -.15
-(ve d)-.2 H .411(etermined that a b).15 F .411(ug actually e)-.2 F .411
-(xists, use the)-.15 F F3(bashb)3.18 E(ug)-.2 E F0 .41
-(command to submit a b)3.13 F .41(ug report.)-.2 F(If)5.41 E .594
-(you ha)108 148.8 R .894 -.15(ve a \214)-.2 H .595
-(x, you are encouraged to mail that as well!).15 F .595
-(Suggestions and `philosophical' b)5.595 F .595(ug reports may)-.2 F
+(g/pub/gnu/bash/)-.37 E F0(.)A .41(Once you ha)108 136.8 R .71 -.15
+(ve d)-.2 H .41(etermined that a b).15 F .41(ug actually e)-.2 F .411
+(xists, use the)-.15 F F3(bashb)3.181 E(ug)-.2 E F0 .411
+(command to submit a b)3.131 F .411(ug report.)-.2 F(If)5.411 E .595
+(you ha)108 148.8 R .895 -.15(ve a \214)-.2 H .595
+(x, you are encouraged to mail that as well!).15 F .594
+(Suggestions and `philosophical' b)5.595 F .594(ug reports may)-.2 F
(be mailed to)108 160.8 Q F3 -.2(bu)2.5 G(g-bash@gnu.or).2 E(g)-.37 E F0
(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F2(gnu.bash.b)2.5 E(ug)
-.2 E F0(.)A(ALL b)108 177.6 Q(ug reports should include:)-.2 E(The v)
276 Q(ug reports concerning this manual page should be directed to)-.2 E
F3 -.15(ch)2.5 G(et.r).15 E(ame)-.15 E(y@case)-.3 E(.edu)-.15 E F0(.).25
E F1 -.11(BU)72 292.8 S(GS).11 E F0(It')108 304.8 Q 2.5(st)-.55 G
-(oo big and too slo)-2.5 E -.65(w.)-.25 G 1.869
-(There are some subtle dif)108 321.6 R 1.869(ferences between)-.25 F F2
+(oo big and too slo)-2.5 E -.65(w.)-.25 G 1.868
+(There are some subtle dif)108 321.6 R 1.868(ferences between)-.25 F F2
(bash)4.369 E F0 1.869(and traditional v)4.369 F 1.869(ersions of)-.15 F
-F2(sh)4.368 E F0 4.368(,m)C 1.868(ostly because of the)-4.368 F/F4 9
+F2(sh)4.369 E F0 4.369(,m)C 1.869(ostly because of the)-4.369 F/F4 9
/Times-Bold@0 SF(POSIX)108 333.6 Q F0(speci\214cation.)2.25 E
(Aliases are confusing in some uses.)108 350.4 Q(Shell b)108 367.2 Q
(uiltin commands and functions are not stoppable/restartable.)-.2 E
1.315(Compound commands and command sequences of the form `a ; b ; c' a\
-re not handled gracefully when)108 384 R .39
+re not handled gracefully when)108 384 R .389
(process suspension is attempted.)108 396 R .389
-(When a process is stopped, the shell immediately e)5.39 F -.15(xe)-.15
-G .389(cutes the ne).15 F .389(xt com-)-.15 F .192
-(mand in the sequence.)108 408 R .192(It suf)5.192 F .192(\214ces to pl\
-ace the sequence of commands between parentheses to force it into a)-.25
-F(subshell, which may be stopped as a unit.)108 420 Q(Array v)108 436.8
-Q(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E
+(When a process is stopped, the shell immediately e)5.389 F -.15(xe)-.15
+G .39(cutes the ne).15 F .39(xt com-)-.15 F .193(mand in the sequence.)
+108 408 R .192(It suf)5.193 F .192(\214ces to place the sequence of com\
+mands between parentheses to force it into a)-.25 F
+(subshell, which may be stopped as a unit.)108 420 Q(Array v)108 436.8 Q
+(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E
(There may be only one acti)108 453.6 Q .3 -.15(ve c)-.25 H
(oprocess at a time.).15 E(GNU Bash 4.2)72 768 Q(2011 September 25)
135.955 E(72)185.115 E 0 Cg EP
<HTML>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<!-- Created on September, 26 2011 by texi2html 1.64 -->
+<!-- Created on October, 24 2011 by texi2html 1.64 -->
<!--
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
Karl Berry <karl@freefriends.org>
<H1>Bash Reference Manual</H1></P><P>
This text is a brief description of the features that are present in
-the Bash shell (version 4.2, 25 September 2011).
+the Bash shell (version 4.2, 24 October 2011).
</P><P>
-This is Edition 4.2, last updated 25 September 2011,
+This is Edition 4.2, last updated 24 October 2011,
of <CITE>The GNU Bash Reference Manual</CITE>,
for <CODE>Bash</CODE>, Version 4.2.
</P><P>
</pre></td></tr></table>Of the two forms, the first is preferred.
This is semantically equivalent to
<TABLE><tr><td> </td><td class=example><pre>><VAR>word</VAR> 2>&1
-</pre></td></tr></table>(see Duplicating File Descriptors below).
+</pre></td></tr></table>When using the second form, <VAR>word</VAR> may not expand to a number or
+<SAMP>`-'</SAMP>. If it does, other redirection operators apply
+(see Duplicating File Descriptors below) for compatibility reasons.
</P><P>
<HR SIZE="6">
If the digits in <VAR>word</VAR> do not specify a file descriptor open for
input, a redirection error occurs.
If <VAR>word</VAR>
-evaluates to <SAMP>`-'</SAMP>, file descriptor <VAR>n</VAR> is closed. If
-<VAR>n</VAR> is not specified, the standard input (file descriptor 0) is used.
+evaluates to <SAMP>`-'</SAMP>, file descriptor <VAR>n</VAR> is closed.
+If <VAR>n</VAR> is not specified, the standard input (file descriptor 0) is used.
<P>
The operator
<VAR>n</VAR> is not specified, the standard output (file descriptor 1) is used.
If the digits in <VAR>word</VAR> do not specify a file descriptor open for
output, a redirection error occurs.
+If <VAR>word</VAR>
+evaluates to <SAMP>`-'</SAMP>, file descriptor <VAR>n</VAR> is closed.
As a special case, if <VAR>n</VAR> is omitted, and <VAR>word</VAR> does not
-expand to one or more digits, the standard output and standard
+expand to one or more digits or <SAMP>`-'</SAMP>, the standard output and standard
error are redirected as described previously.
</P><P>
returning either <VAR>n</VAR> or
the exit status of the last command executed within the script as the exit
status of the script.
+If <VAR>n</VAR> is supplied, the return value is its least significant
+8 bits.
Any command associated with the <CODE>RETURN</CODE> trap is executed
before execution resumes after the function or script.
-The return status is non-zero if <CODE>return</CODE> is used outside a function
+The return status is non-zero if <CODE>return</CODE> is supplied a non-numeric
+argument or is used outside a function
and not during the execution of a script by <CODE>.</CODE> or <CODE>source</CODE>.
</P><P>
<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="bashref.html#SEC_About"> ? </A>]</TD>
</TR></TABLE>
<H1>About this document</H1>
-This document was generated by <I>Chet Ramey</I> on <I>September, 26 2011</I>
+This document was generated by <I>Chet Ramey</I> on <I>October, 24 2011</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
<P></P>
<BR>
<FONT SIZE="-1">
This document was generated
-by <I>Chet Ramey</I> on <I>September, 26 2011</I>
+by <I>Chet Ramey</I> on <I>October, 24 2011</I>
using <A HREF="http://www.mathematik.uni-kl.de/~obachman/Texi2html
"><I>texi2html</I></A>
/Users/chet/src/bash/src/doc/bashref.texi.
This text is a brief description of the features that are present in
-the Bash shell (version 4.2, 25 September 2011).
+the Bash shell (version 4.2, 24 October 2011).
- This is Edition 4.2, last updated 25 September 2011, of `The GNU
-Bash Reference Manual', for `Bash', Version 4.2.
+ This is Edition 4.2, last updated 24 October 2011, of `The GNU Bash
+Reference Manual', for `Bash', Version 4.2.
Copyright (C) 1988-2011 Free Software Foundation, Inc.
*************
This text is a brief description of the features that are present in
-the Bash shell (version 4.2, 25 September 2011).
+the Bash shell (version 4.2, 24 October 2011).
- This is Edition 4.2, last updated 25 September 2011, of `The GNU
-Bash Reference Manual', for `Bash', Version 4.2.
+ This is Edition 4.2, last updated 24 October 2011, of `The GNU Bash
+Reference Manual', for `Bash', Version 4.2.
Bash contains features that appear in other popular shells, and some
features that only appear in Bash. Some of the shells that Bash has
Of the two forms, the first is preferred. This is semantically
equivalent to
>WORD 2>&1
- (see Duplicating File Descriptors below).
+ When using the second form, WORD may not expand to a number or `-'.
+If it does, other redirection operators apply (see Duplicating File
+Descriptors below) for compatibility reasons.
3.6.5 Appending Standard Output and Standard Error
--------------------------------------------------
is used similarly to duplicate output file descriptors. If N is not
specified, the standard output (file descriptor 1) is used. If the
digits in WORD do not specify a file descriptor open for output, a
-redirection error occurs. As a special case, if N is omitted, and WORD
-does not expand to one or more digits, the standard output and standard
+redirection error occurs. If WORD evaluates to `-', file descriptor N
+is closed. As a special case, if N is omitted, and WORD does not
+expand to one or more digits or `-', the standard output and standard
error are redirected as described previously.
3.6.9 Moving File Descriptors
also be used to terminate execution of a script being executed
with the `.' (`source') builtin, returning either N or the exit
status of the last command executed within the script as the exit
- status of the script. Any command associated with the `RETURN'
- trap is executed before execution resumes after the function or
- script. The return status is non-zero if `return' is used outside
- a function and not during the execution of a script by `.' or
- `source'.
+ status of the script. If N is supplied, the return value is its
+ least significant 8 bits. Any command associated with the
+ `RETURN' trap is executed before execution resumes after the
+ function or script. The return status is non-zero if `return' is
+ supplied a non-numeric argument or is used outside a function and
+ not during the execution of a script by `.' or `source'.
`shift'
shift [N]
* :: Bourne Shell Builtins.
(line 11)
* [: Bourne Shell Builtins.
- (line 240)
+ (line 241)
* alias: Bash Builtins. (line 11)
* bg: Job Control Builtins.
(line 7)
(line 212)
* set: The Set Builtin. (line 11)
* shift: Bourne Shell Builtins.
- (line 227)
+ (line 228)
* shopt: The Shopt Builtin. (line 9)
* source: Bash Builtins. (line 550)
* suspend: Job Control Builtins.
(line 99)
* test: Bourne Shell Builtins.
- (line 240)
+ (line 241)
* times: Bourne Shell Builtins.
- (line 316)
+ (line 317)
* trap: Bourne Shell Builtins.
- (line 322)
+ (line 323)
* type: Bash Builtins. (line 555)
* typeset: Bash Builtins. (line 587)
* ulimit: Bash Builtins. (line 593)
* umask: Bourne Shell Builtins.
- (line 369)
+ (line 370)
* unalias: Bash Builtins. (line 684)
* unset: Bourne Shell Builtins.
- (line 387)
+ (line 388)
* wait: Job Control Builtins.
(line 76)
\1f
Tag Table:
-Node: Top\7f1348
-Node: Introduction\7f3190
-Node: What is Bash?\7f3418
-Node: What is a shell?\7f4531
-Node: Definitions\7f7070
-Node: Basic Shell Features\7f9988
-Node: Shell Syntax\7f11207
-Node: Shell Operation\7f12237
-Node: Quoting\7f13531
-Node: Escape Character\7f14834
-Node: Single Quotes\7f15319
-Node: Double Quotes\7f15667
-Node: ANSI-C Quoting\7f16792
-Node: Locale Translation\7f18036
-Node: Comments\7f18932
-Node: Shell Commands\7f19550
-Node: Simple Commands\7f20422
-Node: Pipelines\7f21053
-Node: Lists\7f23752
-Node: Compound Commands\7f25481
-Node: Looping Constructs\7f26487
-Node: Conditional Constructs\7f28950
-Node: Command Grouping\7f37095
-Node: Coprocesses\7f38574
-Node: GNU Parallel\7f40248
-Node: Shell Functions\7f42716
-Node: Shell Parameters\7f47800
-Node: Positional Parameters\7f50405
-Node: Special Parameters\7f51305
-Node: Shell Expansions\7f54269
-Node: Brace Expansion\7f56195
-Node: Tilde Expansion\7f58949
-Node: Shell Parameter Expansion\7f61298
-Node: Command Substitution\7f70432
-Node: Arithmetic Expansion\7f71765
-Node: Process Substitution\7f72615
-Node: Word Splitting\7f73665
-Node: Filename Expansion\7f75288
-Node: Pattern Matching\7f77453
-Node: Quote Removal\7f81153
-Node: Redirections\7f81448
-Node: Executing Commands\7f90285
-Node: Simple Command Expansion\7f90955
-Node: Command Search and Execution\7f92885
-Node: Command Execution Environment\7f95222
-Node: Environment\7f98208
-Node: Exit Status\7f99867
-Node: Signals\7f101489
-Node: Shell Scripts\7f103457
-Node: Shell Builtin Commands\7f105975
-Node: Bourne Shell Builtins\7f108003
-Node: Bash Builtins\7f126676
-Node: Modifying Shell Behavior\7f153054
-Node: The Set Builtin\7f153399
-Node: The Shopt Builtin\7f163147
-Node: Special Builtins\7f176848
-Node: Shell Variables\7f177827
-Node: Bourne Shell Variables\7f178267
-Node: Bash Variables\7f180298
-Node: Bash Features\7f205299
-Node: Invoking Bash\7f206198
-Node: Bash Startup Files\7f211960
-Node: Interactive Shells\7f216979
-Node: What is an Interactive Shell?\7f217389
-Node: Is this Shell Interactive?\7f218038
-Node: Interactive Shell Behavior\7f218853
-Node: Bash Conditional Expressions\7f222133
-Node: Shell Arithmetic\7f225921
-Node: Aliases\7f228680
-Node: Arrays\7f231236
-Node: The Directory Stack\7f235444
-Node: Directory Stack Builtins\7f236163
-Node: Controlling the Prompt\7f239119
-Node: The Restricted Shell\7f241891
-Node: Bash POSIX Mode\7f243728
-Node: Job Control\7f252876
-Node: Job Control Basics\7f253336
-Node: Job Control Builtins\7f258055
-Node: Job Control Variables\7f262407
-Node: Command Line Editing\7f263565
-Node: Introduction and Notation\7f265132
-Node: Readline Interaction\7f266754
-Node: Readline Bare Essentials\7f267945
-Node: Readline Movement Commands\7f269734
-Node: Readline Killing Commands\7f270699
-Node: Readline Arguments\7f272619
-Node: Searching\7f273663
-Node: Readline Init File\7f275849
-Node: Readline Init File Syntax\7f276996
-Node: Conditional Init Constructs\7f292338
-Node: Sample Init File\7f294871
-Node: Bindable Readline Commands\7f297988
-Node: Commands For Moving\7f299195
-Node: Commands For History\7f300339
-Node: Commands For Text\7f304524
-Node: Commands For Killing\7f307197
-Node: Numeric Arguments\7f309654
-Node: Commands For Completion\7f310793
-Node: Keyboard Macros\7f314985
-Node: Miscellaneous Commands\7f315556
-Node: Readline vi Mode\7f321362
-Node: Programmable Completion\7f322269
-Node: Programmable Completion Builtins\7f329479
-Node: Using History Interactively\7f338615
-Node: Bash History Facilities\7f339299
-Node: Bash History Builtins\7f342213
-Node: History Interaction\7f346141
-Node: Event Designators\7f348846
-Node: Word Designators\7f350068
-Node: Modifiers\7f351707
-Node: Installing Bash\7f353111
-Node: Basic Installation\7f354248
-Node: Compilers and Options\7f356940
-Node: Compiling For Multiple Architectures\7f357681
-Node: Installation Names\7f359345
-Node: Specifying the System Type\7f360163
-Node: Sharing Defaults\7f360879
-Node: Operation Controls\7f361552
-Node: Optional Features\7f362510
-Node: Reporting Bugs\7f372082
-Node: Major Differences From The Bourne Shell\7f373283
-Node: GNU Free Documentation License\7f389975
-Node: Indexes\7f415171
-Node: Builtin Index\7f415625
-Node: Reserved Word Index\7f422452
-Node: Variable Index\7f424900
-Node: Function Index\7f437995
-Node: Concept Index\7f445150
+Node: Top\7f1344
+Node: Introduction\7f3182
+Node: What is Bash?\7f3410
+Node: What is a shell?\7f4523
+Node: Definitions\7f7062
+Node: Basic Shell Features\7f9980
+Node: Shell Syntax\7f11199
+Node: Shell Operation\7f12229
+Node: Quoting\7f13523
+Node: Escape Character\7f14826
+Node: Single Quotes\7f15311
+Node: Double Quotes\7f15659
+Node: ANSI-C Quoting\7f16784
+Node: Locale Translation\7f18028
+Node: Comments\7f18924
+Node: Shell Commands\7f19542
+Node: Simple Commands\7f20414
+Node: Pipelines\7f21045
+Node: Lists\7f23744
+Node: Compound Commands\7f25473
+Node: Looping Constructs\7f26479
+Node: Conditional Constructs\7f28942
+Node: Command Grouping\7f37087
+Node: Coprocesses\7f38566
+Node: GNU Parallel\7f40240
+Node: Shell Functions\7f42708
+Node: Shell Parameters\7f47792
+Node: Positional Parameters\7f50397
+Node: Special Parameters\7f51297
+Node: Shell Expansions\7f54261
+Node: Brace Expansion\7f56187
+Node: Tilde Expansion\7f58941
+Node: Shell Parameter Expansion\7f61290
+Node: Command Substitution\7f70424
+Node: Arithmetic Expansion\7f71757
+Node: Process Substitution\7f72607
+Node: Word Splitting\7f73657
+Node: Filename Expansion\7f75280
+Node: Pattern Matching\7f77445
+Node: Quote Removal\7f81145
+Node: Redirections\7f81440
+Node: Executing Commands\7f90480
+Node: Simple Command Expansion\7f91150
+Node: Command Search and Execution\7f93080
+Node: Command Execution Environment\7f95417
+Node: Environment\7f98403
+Node: Exit Status\7f100062
+Node: Signals\7f101684
+Node: Shell Scripts\7f103652
+Node: Shell Builtin Commands\7f106170
+Node: Bourne Shell Builtins\7f108198
+Node: Bash Builtins\7f126983
+Node: Modifying Shell Behavior\7f153361
+Node: The Set Builtin\7f153706
+Node: The Shopt Builtin\7f163454
+Node: Special Builtins\7f177155
+Node: Shell Variables\7f178134
+Node: Bourne Shell Variables\7f178574
+Node: Bash Variables\7f180605
+Node: Bash Features\7f205606
+Node: Invoking Bash\7f206505
+Node: Bash Startup Files\7f212267
+Node: Interactive Shells\7f217286
+Node: What is an Interactive Shell?\7f217696
+Node: Is this Shell Interactive?\7f218345
+Node: Interactive Shell Behavior\7f219160
+Node: Bash Conditional Expressions\7f222440
+Node: Shell Arithmetic\7f226228
+Node: Aliases\7f228987
+Node: Arrays\7f231543
+Node: The Directory Stack\7f235751
+Node: Directory Stack Builtins\7f236470
+Node: Controlling the Prompt\7f239426
+Node: The Restricted Shell\7f242198
+Node: Bash POSIX Mode\7f244035
+Node: Job Control\7f253183
+Node: Job Control Basics\7f253643
+Node: Job Control Builtins\7f258362
+Node: Job Control Variables\7f262714
+Node: Command Line Editing\7f263872
+Node: Introduction and Notation\7f265439
+Node: Readline Interaction\7f267061
+Node: Readline Bare Essentials\7f268252
+Node: Readline Movement Commands\7f270041
+Node: Readline Killing Commands\7f271006
+Node: Readline Arguments\7f272926
+Node: Searching\7f273970
+Node: Readline Init File\7f276156
+Node: Readline Init File Syntax\7f277303
+Node: Conditional Init Constructs\7f292645
+Node: Sample Init File\7f295178
+Node: Bindable Readline Commands\7f298295
+Node: Commands For Moving\7f299502
+Node: Commands For History\7f300646
+Node: Commands For Text\7f304831
+Node: Commands For Killing\7f307504
+Node: Numeric Arguments\7f309961
+Node: Commands For Completion\7f311100
+Node: Keyboard Macros\7f315292
+Node: Miscellaneous Commands\7f315863
+Node: Readline vi Mode\7f321669
+Node: Programmable Completion\7f322576
+Node: Programmable Completion Builtins\7f329786
+Node: Using History Interactively\7f338922
+Node: Bash History Facilities\7f339606
+Node: Bash History Builtins\7f342520
+Node: History Interaction\7f346448
+Node: Event Designators\7f349153
+Node: Word Designators\7f350375
+Node: Modifiers\7f352014
+Node: Installing Bash\7f353418
+Node: Basic Installation\7f354555
+Node: Compilers and Options\7f357247
+Node: Compiling For Multiple Architectures\7f357988
+Node: Installation Names\7f359652
+Node: Specifying the System Type\7f360470
+Node: Sharing Defaults\7f361186
+Node: Operation Controls\7f361859
+Node: Optional Features\7f362817
+Node: Reporting Bugs\7f372389
+Node: Major Differences From The Bourne Shell\7f373590
+Node: GNU Free Documentation License\7f390282
+Node: Indexes\7f415478
+Node: Builtin Index\7f415932
+Node: Reserved Word Index\7f422759
+Node: Variable Index\7f425207
+Node: Function Index\7f438302
+Node: Concept Index\7f445457
\1f
End Tag Table
-This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 26 SEP 2011 10:56
+This is TeX, Version 3.141592 (Web2C 7.5.4) (format=tex 2008.12.11) 24 OCT 2011 08:43
**/Users/chet/src/bash/src/doc/bashref.texi
(/Users/chet/src/bash/src/doc/bashref.texi (./texinfo.tex
Loading texinfo [version 2009-01-18.17]:
[15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29]
[30] [31] [32] [33] [34] Chapter 4 [35] [36] [37] [38] [39] [40] [41] [42]
[43]
-Underfull \hbox (badness 5231) in paragraph at lines 3479--3492
+Underfull \hbox (badness 5231) in paragraph at lines 3486--3499
@texttt emacs-meta[]@textrm , @texttt emacs-ctlx[]@textrm , @texttt vi[]@textr
m , @texttt vi-move[]@textrm , @texttt vi-command[]@textrm , and
[44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58]
[59] [60]
-Underfull \hbox (badness 5460) in paragraph at lines 4725--4731
+Underfull \hbox (badness 5460) in paragraph at lines 4732--4738
[]@textrm If set, range ex-pres-sions used in pat-tern match-ing (see
@hbox(8.2125+2.73749)x433.62, glue set 3.79674
[61] [62] Chapter 5 [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73]
Chapter 6 [74]
-Overfull \hbox (51.96864pt too wide) in paragraph at lines 5617--5617
+Overfull \hbox (51.96864pt too wide) in paragraph at lines 5624--5624
[]@texttt bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@t
exttt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
.etc.
-Overfull \hbox (76.23077pt too wide) in paragraph at lines 5618--5618
+Overfull \hbox (76.23077pt too wide) in paragraph at lines 5625--5625
[]@texttt bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@texttt
] [-O @textttsl shopt_option@texttt ] -c @textttsl string @texttt [@textttsl ar
-
.etc.
-Overfull \hbox (34.72258pt too wide) in paragraph at lines 5619--5619
+Overfull \hbox (34.72258pt too wide) in paragraph at lines 5626--5626
[]@texttt bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @textttsl op-tion@text
tt ] [-O @textttsl shopt_option@texttt ] [@textttsl ar-
.etc.
[75] [76]
-Underfull \hbox (badness 2245) in paragraph at lines 5790--5792
+Underfull \hbox (badness 2245) in paragraph at lines 5797--5799
[]@textrm When a lo-gin shell ex-its, Bash reads and ex-e-cutes com-mands from
the file
.etc.
[77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90]
-Underfull \hbox (badness 2521) in paragraph at lines 6980--6983
+Underfull \hbox (badness 2521) in paragraph at lines 6987--6990
@textrm `@texttt --enable-strict-posix-default[]@textrm '[] to @texttt configur
e[] @textrm when build-ing (see Sec-tion 10.8
[123] [124]) (/Users/chet/src/bash/src/lib/readline/doc/hsuser.texi Chapter 9
[125] [126] [127] [128] [129] [130]) Chapter 10 [131] [132] [133] [134]
[135]
-Underfull \hbox (badness 2772) in paragraph at lines 7586--7590
+Underfull \hbox (badness 2772) in paragraph at lines 7593--7597
[]@textrm Enable sup-port for large files (@texttt http://www.sas.com/standard
s/large_
Here is how much of TeX's memory you used:
2081 strings out of 97980
28573 string characters out of 1221004
- 65630 words of memory out of 1500000
+ 65626 words of memory out of 1500000
2897 multiletter control sequences out of 10000+50000
32127 words of font info for 112 fonts, out of 1200000 for 2000
51 hyphenation exceptions out of 8191
16i,6n,14p,315b,702s stack positions out of 5000i,500n,6000p,200000b,5000s
-Output written on bashref.dvi (170 pages, 687040 bytes).
+Output written on bashref.dvi (170 pages, 687440 bytes).
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi
%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2011.09.26:1056
+%DVIPSSource: TeX output 2011.10.24:0843
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
TeXDict begin 1 0 bop 150 1318 a Fu(Bash)64 b(Reference)j(Man)-5
b(ual)p 150 1385 3600 34 v 2361 1481 a Ft(Reference)31
b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(4.2,)g(for)f
-Fs(Bash)g Ft(V)-8 b(ersion)31 b(4.2.)3118 1697 y(Septem)m(b)s(er)f
-(2011)150 4935 y Fr(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11
-b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068
-y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
+Fs(Bash)g Ft(V)-8 b(ersion)31 b(4.2.)3217 1697 y(Octob)s(er)f(2011)150
+4935 y Fr(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46
+b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068 y(Brian)f(F)-11
+b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
b(oundation)p 150 5141 3600 17 v eop end
%%Page: 2 2
TeXDict begin 2 1 bop 150 2889 a Ft(This)35 b(text)h(is)g(a)g(brief)f
(description)h(of)f(the)h(features)g(that)g(are)g(presen)m(t)g(in)f
-(the)h(Bash)f(shell)h(\(v)m(ersion)150 2999 y(4.2,)c(25)f(Septem)m(b)s
-(er)f(2011\).)150 3133 y(This)e(is)h(Edition)f(4.2,)j(last)e(up)s
-(dated)f(25)h(Septem)m(b)s(er)f(2011,)j(of)e Fq(The)f(GNU)i(Bash)e
-(Reference)i(Man)m(ual)p Ft(,)150 3243 y(for)g Fs(Bash)p
-Ft(,)g(V)-8 b(ersion)31 b(4.2.)150 3377 y(Cop)m(yrigh)m(t)602
-3374 y(c)577 3377 y Fp(\015)f Ft(1988{2011)35 b(F)-8
-b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)150
-3512 y(P)m(ermission)h(is)h(gran)m(ted)g(to)f(mak)m(e)i(and)d
-(distribute)h(v)m(erbatim)h(copies)g(of)f(this)g(man)m(ual)h(pro)m
-(vided)f(the)150 3621 y(cop)m(yrigh)m(t)g(notice)f(and)f(this)g(p)s
-(ermission)g(notice)h(are)g(preserv)m(ed)f(on)h(all)g(copies.)390
-3756 y(P)m(ermission)k(is)h(gran)m(ted)f(to)h(cop)m(y)-8
-b(,)38 b(distribute)d(and/or)g(mo)s(dify)f(this)h(do)s(cumen)m(t)g
-(under)390 3866 y(the)j(terms)g(of)g(the)g(GNU)h(F)-8
-b(ree)39 b(Do)s(cumen)m(tation)h(License,)g(V)-8 b(ersion)39
-b(1.3)g(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)28
+(the)h(Bash)f(shell)h(\(v)m(ersion)150 2999 y(4.2,)c(24)f(Octob)s(er)f
+(2011\).)150 3133 y(This)35 b(is)g(Edition)h(4.2,)i(last)f(up)s(dated)d
+(24)i(Octob)s(er)g(2011,)j(of)c Fq(The)h(GNU)g(Bash)f(Reference)i(Man)m
+(ual)p Ft(,)150 3243 y(for)30 b Fs(Bash)p Ft(,)g(V)-8
+b(ersion)31 b(4.2.)150 3377 y(Cop)m(yrigh)m(t)602 3374
+y(c)577 3377 y Fp(\015)f Ft(1988{2011)35 b(F)-8 b(ree)31
+b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)150 3512
+y(P)m(ermission)h(is)h(gran)m(ted)g(to)f(mak)m(e)i(and)d(distribute)h
+(v)m(erbatim)h(copies)g(of)f(this)g(man)m(ual)h(pro)m(vided)f(the)150
+3621 y(cop)m(yrigh)m(t)g(notice)f(and)f(this)g(p)s(ermission)g(notice)h
+(are)g(preserv)m(ed)f(on)h(all)g(copies.)390 3756 y(P)m(ermission)k(is)
+h(gran)m(ted)f(to)h(cop)m(y)-8 b(,)38 b(distribute)d(and/or)g(mo)s
+(dify)f(this)h(do)s(cumen)m(t)g(under)390 3866 y(the)j(terms)g(of)g
+(the)g(GNU)h(F)-8 b(ree)39 b(Do)s(cumen)m(tation)h(License,)g(V)-8
+b(ersion)39 b(1.3)g(or)f(an)m(y)g(later)390 3975 y(v)m(ersion)28
b(published)d(b)m(y)j(the)f(F)-8 b(ree)29 b(Soft)m(w)m(are)f(F)-8
b(oundation;)30 b(with)d(no)g(In)m(v)-5 b(arian)m(t)28
b(Sections,)390 4085 y(with)i(the)h(F)-8 b(ron)m(t-Co)m(v)m(er)33
(1\))h(if)g Fq(n)e Ft(is)i(not)150 665 y(sp)s(eci\014ed.)40
b(If)30 b(the)g(\014le)h(do)s(es)f(not)h(exist)g(it)g(is)f(created;)i
(if)e(it)h(do)s(es)f(exist)h(it)g(is)g(truncated)f(to)h(zero)g(size.)
-275 823 y(The)e(general)j(format)e(for)h(redirecting)g(output)f(is:)390
-981 y Fs([)p Fi(n)11 b Fs(]>[|])p Fi(word)275 1139 y
+275 812 y(The)e(general)j(format)e(for)h(redirecting)g(output)f(is:)390
+959 y Fs([)p Fi(n)11 b Fs(]>[|])p Fi(word)275 1107 y
Ft(If)30 b(the)h(redirection)g(op)s(erator)g(is)g(`)p
Fs(>)p Ft(',)g(and)f(the)h Fs(noclobber)d Ft(option)j(to)g(the)g
-Fs(set)f Ft(builtin)g(has)h(b)s(een)150 1249 y(enabled,)i(the)f
+Fs(set)f Ft(builtin)g(has)h(b)s(een)150 1216 y(enabled,)i(the)f
(redirection)h(will)f(fail)h(if)f(the)g(\014le)g(whose)g(name)g
(results)g(from)g(the)g(expansion)g(of)g Fq(w)m(ord)150
-1359 y Ft(exists)f(and)f(is)g(a)h(regular)g(\014le.)41
+1326 y Ft(exists)f(and)f(is)g(a)h(regular)g(\014le.)41
b(If)30 b(the)h(redirection)g(op)s(erator)g(is)f(`)p
Fs(>|)p Ft(',)h(or)f(the)h(redirection)g(op)s(erator)g(is)150
-1468 y(`)p Fs(>)p Ft(')36 b(and)f(the)g Fs(noclobber)e
+1435 y(`)p Fs(>)p Ft(')36 b(and)f(the)g Fs(noclobber)e
Ft(option)j(is)g(not)g(enabled,)h(the)e(redirection)h(is)g(attempted)g
-(ev)m(en)h(if)e(the)h(\014le)150 1578 y(named)30 b(b)m(y)g
-Fq(w)m(ord)k Ft(exists.)150 1801 y Fj(3.6.3)63 b(App)s(ending)42
-b(Redirected)e(Output)150 1948 y Ft(Redirection)23 b(of)e(output)h(in)f
+(ev)m(en)h(if)e(the)h(\014le)150 1545 y(named)30 b(b)m(y)g
+Fq(w)m(ord)k Ft(exists.)150 1757 y Fj(3.6.3)63 b(App)s(ending)42
+b(Redirected)e(Output)150 1904 y Ft(Redirection)23 b(of)e(output)h(in)f
(this)h(fashion)f(causes)h(the)g(\014le)g(whose)f(name)h(results)f
-(from)g(the)h(expansion)g(of)150 2057 y Fq(w)m(ord)28
+(from)g(the)h(expansion)g(of)150 2013 y Fq(w)m(ord)28
b Ft(to)e(b)s(e)e(op)s(ened)g(for)h(app)s(ending)e(on)i(\014le)g
(descriptor)g Fq(n)p Ft(,)g(or)g(the)g(standard)f(output)h(\(\014le)g
-(descriptor)150 2167 y(1\))31 b(if)f Fq(n)g Ft(is)h(not)f(sp)s
+(descriptor)150 2123 y(1\))31 b(if)f Fq(n)g Ft(is)h(not)f(sp)s
(eci\014ed.)40 b(If)30 b(the)h(\014le)f(do)s(es)g(not)h(exist)g(it)g
-(is)f(created.)275 2325 y(The)f(general)j(format)e(for)h(app)s(ending)e
-(output)h(is:)390 2483 y Fs([)p Fi(n)11 b Fs(]>>)p Fi(word)150
-2706 y Fj(3.6.4)63 b(Redirecting)40 b(Standard)h(Output)g(and)g
-(Standard)g(Error)150 2853 y Ft(This)33 b(construct)i(allo)m(ws)g(b)s
+(is)f(created.)275 2270 y(The)f(general)j(format)e(for)h(app)s(ending)e
+(output)h(is:)390 2417 y Fs([)p Fi(n)11 b Fs(]>>)p Fi(word)150
+2629 y Fj(3.6.4)63 b(Redirecting)40 b(Standard)h(Output)g(and)g
+(Standard)g(Error)150 2776 y Ft(This)33 b(construct)i(allo)m(ws)g(b)s
(oth)f(the)g(standard)g(output)f(\(\014le)i(descriptor)f(1\))h(and)f
-(the)g(standard)f(error)150 2963 y(output)d(\(\014le)h(descriptor)f
+(the)g(standard)f(error)150 2886 y(output)d(\(\014le)h(descriptor)f
(2\))h(to)g(b)s(e)f(redirected)h(to)g(the)f(\014le)h(whose)f(name)h(is)
-f(the)g(expansion)h(of)f Fq(w)m(ord)t Ft(.)275 3121 y(There)f(are)i(t)m
+f(the)g(expansion)h(of)f Fq(w)m(ord)t Ft(.)275 3033 y(There)f(are)i(t)m
(w)m(o)h(formats)e(for)h(redirecting)g(standard)e(output)h(and)g
-(standard)f(error:)390 3279 y Fs(&>)p Fi(word)150 3437
-y Ft(and)390 3595 y Fs(>&)p Fi(word)150 3753 y Ft(Of)h(the)g(t)m(w)m(o)
+(standard)f(error:)390 3180 y Fs(&>)p Fi(word)150 3328
+y Ft(and)390 3475 y Fs(>&)p Fi(word)150 3622 y Ft(Of)h(the)g(t)m(w)m(o)
i(forms,)e(the)h(\014rst)e(is)i(preferred.)39 b(This)30
b(is)g(seman)m(tically)j(equiv)-5 b(alen)m(t)32 b(to)390
-3912 y Fs(>)p Fi(word)57 b Fs(2>&1)275 4070 y Ft(\(see)31
-b(Duplicating)h(File)f(Descriptors)g(b)s(elo)m(w\).)150
-4293 y Fj(3.6.5)63 b(App)s(ending)42 b(Standard)f(Output)g(and)g
-(Standard)g(Error)150 4440 y Ft(This)33 b(construct)i(allo)m(ws)g(b)s
+3769 y Fs(>)p Fi(word)57 b Fs(2>&1)275 3916 y Ft(When)41
+b(using)g(the)h(second)f(form,)k Fq(w)m(ord)f Ft(ma)m(y)e(not)g(expand)
+f(to)h(a)g(n)m(um)m(b)s(er)f(or)g(`)p Fs(-)p Ft('.)75
+b(If)41 b(it)h(do)s(es,)150 4026 y(other)27 b(redirection)g(op)s
+(erators)f(apply)h(\(see)g(Duplicating)h(File)f(Descriptors)h(b)s(elo)m
+(w\))f(for)f(compatibilit)m(y)150 4135 y(reasons.)150
+4347 y Fj(3.6.5)63 b(App)s(ending)42 b(Standard)f(Output)g(and)g
+(Standard)g(Error)150 4494 y Ft(This)33 b(construct)i(allo)m(ws)g(b)s
(oth)f(the)g(standard)g(output)f(\(\014le)i(descriptor)f(1\))h(and)f
-(the)g(standard)f(error)150 4549 y(output)d(\(\014le)h(descriptor)f
+(the)g(standard)f(error)150 4604 y(output)d(\(\014le)h(descriptor)f
(2\))h(to)g(b)s(e)f(app)s(ended)f(to)i(the)f(\014le)h(whose)f(name)g
-(is)h(the)f(expansion)h(of)f Fq(w)m(ord)t Ft(.)275 4707
+(is)h(the)f(expansion)h(of)f Fq(w)m(ord)t Ft(.)275 4751
y(The)f(format)i(for)f(app)s(ending)f(standard)h(output)g(and)f
-(standard)h(error)g(is:)390 4866 y Fs(&>>)p Fi(word)150
-5024 y Ft(This)g(is)g(seman)m(tically)j(equiv)-5 b(alen)m(t)32
-b(to)390 5182 y Fs(>>)p Fi(word)57 b Fs(2>&1)275 5340
+(standard)h(error)g(is:)390 4898 y Fs(&>>)p Fi(word)150
+5046 y Ft(This)g(is)g(seman)m(tically)j(equiv)-5 b(alen)m(t)32
+b(to)390 5193 y Fs(>>)p Fi(word)57 b Fs(2>&1)275 5340
y Ft(\(see)31 b(Duplicating)h(File)f(Descriptors)g(b)s(elo)m(w\).)p
eop end
%%Page: 30 36
5011 y(output)30 b(\(\014le)g(descriptor)g(1\))h(is)f(used.)39
b(If)30 b(the)g(digits)h(in)e Fq(w)m(ord)34 b Ft(do)29
b(not)i(sp)s(ecify)e(a)i(\014le)f(descriptor)g(op)s(en)150
-5121 y(for)38 b(output,)i(a)e(redirection)h(error)f(o)s(ccurs.)63
-b(As)38 b(a)h(sp)s(ecial)f(case,)k(if)c Fq(n)f Ft(is)h(omitted,)k(and)
-37 b Fq(w)m(ord)k Ft(do)s(es)150 5230 y(not)28 b(expand)f(to)i(one)f
-(or)f(more)h(digits,)i(the)e(standard)e(output)i(and)f(standard)g
-(error)g(are)i(redirected)f(as)150 5340 y(describ)s(ed)h(previously)-8
-b(.)p eop end
+5121 y(for)35 b(output,)h(a)g(redirection)g(error)e(o)s(ccurs.)55
+b(If)35 b Fq(w)m(ord)j Ft(ev)-5 b(aluates)37 b(to)f(`)p
+Fs(-)p Ft(',)h(\014le)e(descriptor)g Fq(n)g Ft(is)g(closed.)150
+5230 y(As)f(a)g(sp)s(ecial)h(case,)h(if)e Fq(n)f Ft(is)h(omitted,)i
+(and)e Fq(w)m(ord)j Ft(do)s(es)d(not)g(expand)f(to)i(one)f(or)g(more)g
+(digits)h(or)f(`)p Fs(-)p Ft(',)150 5340 y(the)d(standard)e(output)h
+(and)g(standard)f(error)h(are)h(redirected)g(as)g(describ)s(ed)e
+(previously)-8 b(.)p eop end
%%Page: 31 37
TeXDict begin 31 36 bop 150 -116 a Ft(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(31)150 299
(used)f(to)j(terminate)f(execution)h(of)630 408 y(a)e(script)g(b)s
(eing)g(executed)g(with)g(the)g Fs(.)g Ft(\()p Fs(source)p
Ft(\))f(builtin,)h(returning)f(either)i Fq(n)e Ft(or)h(the)630
-518 y(exit)29 b(status)f(of)g(the)h(last)g(command)e(executed)i(within)
-f(the)g(script)g(as)g(the)g(exit)h(status)g(of)630 628
-y(the)34 b(script.)51 b(An)m(y)34 b(command)g(asso)s(ciated)h(with)f
-(the)g Fs(RETURN)e Ft(trap)i(is)g(executed)g(b)s(efore)630
-737 y(execution)d(resumes)e(after)i(the)f(function)f(or)h(script.)40
-b(The)30 b(return)f(status)h(is)g(non-zero)g(if)630 847
-y Fs(return)c Ft(is)i(used)f(outside)h(a)h(function)e(and)g(not)i
-(during)d(the)i(execution)h(of)f(a)h(script)e(b)m(y)h
-Fs(.)630 956 y Ft(or)i Fs(source)p Ft(.)150 1130 y Fs(shift)870
-1271 y(shift)46 b([)p Fi(n)11 b Fs(])630 1413 y Ft(Shift)41
+518 y(exit)j(status)f(of)g(the)g(last)h(command)e(executed)i(within)e
+(the)h(script)g(as)g(the)g(exit)h(status)630 628 y(of)i(the)g(script.)
+65 b(If)38 b Fq(n)g Ft(is)h(supplied,)h(the)f(return)e(v)-5
+b(alue)39 b(is)g(its)g(least)h(signi\014can)m(t)g(8)f(bits.)630
+737 y(An)m(y)g(command)f(asso)s(ciated)j(with)d(the)h
+Fs(RETURN)e Ft(trap)i(is)g(executed)g(b)s(efore)g(execution)630
+847 y(resumes)29 b(after)h(the)g(function)g(or)g(script.)40
+b(The)29 b(return)g(status)h(is)g(non-zero)g(if)g Fs(return)e
+Ft(is)630 956 y(supplied)h(a)i(non-n)m(umeric)g(argumen)m(t)g(or)f(is)h
+(used)f(outside)h(a)g(function)f(and)g(not)h(during)630
+1066 y(the)g(execution)g(of)g(a)f(script)h(b)m(y)f Fs(.)g
+Ft(or)g Fs(source)p Ft(.)150 1230 y Fs(shift)870 1367
+y(shift)46 b([)p Fi(n)11 b Fs(])630 1504 y Ft(Shift)41
b(the)g(p)s(ositional)h(parameters)g(to)g(the)f(left)h(b)m(y)g
Fq(n)p Ft(.)73 b(The)40 b(p)s(ositional)j(parameters)630
-1523 y(from)34 b Fq(n)p Fs(+)p Ft(1)39 b(.)22 b(.)h(.)45
+1614 y(from)34 b Fq(n)p Fs(+)p Ft(1)39 b(.)22 b(.)h(.)45
b Fs($#)34 b Ft(are)g(renamed)g(to)h Fs($1)k Ft(.)22
b(.)g(.)46 b Fs($#)p Ft(-)p Fq(n)p Ft(.)51 b(P)m(arameters)36
-b(represen)m(ted)e(b)m(y)g(the)630 1632 y(n)m(um)m(b)s(ers)25
+b(represen)m(ted)e(b)m(y)g(the)630 1724 y(n)m(um)m(b)s(ers)25
b Fs($#)i Ft(to)g Fs($#)p Ft(-)p Fq(n)p Fs(+)p Ft(1)g(are)g(unset.)39
b Fq(n)26 b Ft(m)m(ust)h(b)s(e)f(a)i(non-negativ)m(e)h(n)m(um)m(b)s(er)
-c(less)i(than)g(or)630 1742 y(equal)33 b(to)h Fs($#)p
+c(less)i(than)g(or)630 1833 y(equal)33 b(to)h Fs($#)p
Ft(.)47 b(If)33 b Fq(n)f Ft(is)h(zero)g(or)g(greater)h(than)f
Fs($#)p Ft(,)g(the)g(p)s(ositional)g(parameters)g(are)h(not)630
-1851 y(c)m(hanged.)48 b(If)32 b Fq(n)g Ft(is)h(not)f(supplied,)h(it)g
+1943 y(c)m(hanged.)48 b(If)32 b Fq(n)g Ft(is)h(not)f(supplied,)h(it)g
(is)f(assumed)g(to)h(b)s(e)f(1.)48 b(The)32 b(return)g(status)h(is)f
-(zero)630 1961 y(unless)e Fq(n)f Ft(is)i(greater)g(than)g
+(zero)630 2052 y(unless)e Fq(n)f Ft(is)i(greater)g(than)g
Fs($#)e Ft(or)i(less)f(than)h(zero,)g(non-zero)g(otherwise.)150
-2134 y Fs(test[B)150 2244 y([)870 2386 y(test)47 b Fi(expr)630
-2527 y Ft(Ev)-5 b(aluate)43 b(a)f(conditional)h(expression)f
+2217 y Fs(test[B)150 2326 y([)870 2463 y(test)47 b Fi(expr)630
+2600 y Ft(Ev)-5 b(aluate)43 b(a)f(conditional)h(expression)f
Fq(expr)48 b Ft(and)41 b(return)g(a)h(status)g(of)g(0)g(\(true\))h(or)f
-(1)630 2637 y(\(false\).)g(Eac)m(h)31 b(op)s(erator)f(and)f(op)s(erand)
+(1)630 2710 y(\(false\).)g(Eac)m(h)31 b(op)s(erator)f(and)f(op)s(erand)
g(m)m(ust)h(b)s(e)f(a)i(separate)g(argumen)m(t.)41 b(Expressions)630
-2746 y(are)26 b(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s
+2819 y(are)26 b(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s
(elo)m(w)h(in)g(Section)h(6.4)h([Bash)e(Conditional)630
-2856 y(Expressions],)39 b(page)g(80.)64 b Fs(test)37
+2929 y(Expressions],)39 b(page)g(80.)64 b Fs(test)37
b Ft(do)s(es)g(not)h(accept)i(an)m(y)e(options,)i(nor)e(do)s(es)f(it)h
-(accept)630 2966 y(and)30 b(ignore)h(an)f(argumen)m(t)h(of)f(`)p
+(accept)630 3039 y(and)30 b(ignore)h(an)f(argumen)m(t)h(of)f(`)p
Fs(--)p Ft(')h(as)f(signifying)h(the)f(end)g(of)h(options.)630
-3107 y(When)f(the)h Fs([)f Ft(form)g(is)g(used,)g(the)g(last)i(argumen)
+3176 y(When)f(the)h Fs([)f Ft(form)g(is)g(used,)g(the)g(last)i(argumen)
m(t)e(to)i(the)e(command)g(m)m(ust)h(b)s(e)e(a)i Fs(])p
-Ft(.)630 3249 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f
+Ft(.)630 3313 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f
(the)h(follo)m(wing)h(op)s(erators,)g(listed)f(in)f(decreasing)630
-3358 y(order)30 b(of)h(precedence.)43 b(The)30 b(ev)-5
+3422 y(order)30 b(of)h(precedence.)43 b(The)30 b(ev)-5
b(aluation)33 b(dep)s(ends)28 b(on)j(the)g(n)m(um)m(b)s(er)f(of)h
-(argumen)m(ts;)g(see)630 3468 y(b)s(elo)m(w.)41 b(Op)s(erator)30
+(argumen)m(ts;)g(see)630 3532 y(b)s(elo)m(w.)41 b(Op)s(erator)30
b(precedence)h(is)f(used)g(when)f(there)i(are)f(\014v)m(e)h(or)f(more)h
-(argumen)m(ts.)630 3641 y Fs(!)f Fi(expr)210 b Ft(T)-8
-b(rue)30 b(if)g Fq(expr)37 b Ft(is)30 b(false.)630 3815
+(argumen)m(ts.)630 3696 y Fs(!)f Fi(expr)210 b Ft(T)-8
+b(rue)30 b(if)g Fq(expr)37 b Ft(is)30 b(false.)630 3861
y Fs(\()g Fi(expr)40 b Fs(\))122 b Ft(Returns)23 b(the)h(v)-5
b(alue)24 b(of)g Fq(expr)7 b Ft(.)37 b(This)23 b(ma)m(y)i(b)s(e)e(used)
-g(to)h(o)m(v)m(erride)h(the)f(normal)1110 3924 y(precedence)31
-b(of)f(op)s(erators.)630 4098 y Fi(expr1)39 b Fs(-a)30
-b Fi(expr2)1110 4208 y Ft(T)-8 b(rue)30 b(if)g(b)s(oth)g
+g(to)h(o)m(v)m(erride)h(the)f(normal)1110 3970 y(precedence)31
+b(of)f(op)s(erators.)630 4134 y Fi(expr1)39 b Fs(-a)30
+b Fi(expr2)1110 4244 y Ft(T)-8 b(rue)30 b(if)g(b)s(oth)g
Fq(expr1)37 b Ft(and)30 b Fq(expr2)38 b Ft(are)30 b(true.)630
-4381 y Fi(expr1)39 b Fs(-o)30 b Fi(expr2)1110 4491 y
+4408 y Fi(expr1)39 b Fs(-o)30 b Fi(expr2)1110 4518 y
Ft(T)-8 b(rue)30 b(if)g(either)h Fq(expr1)38 b Ft(or)30
-b Fq(expr2)37 b Ft(is)31 b(true.)630 4664 y(The)37 b
+b Fq(expr2)37 b Ft(is)31 b(true.)630 4682 y(The)37 b
Fs(test)f Ft(and)g Fs([)h Ft(builtins)g(ev)-5 b(aluate)39
b(conditional)f(expressions)f(using)g(a)g(set)h(of)f(rules)630
-4774 y(based)30 b(on)g(the)h(n)m(um)m(b)s(er)e(of)h(argumen)m(ts.)630
-4947 y(0)h(argumen)m(ts)1110 5057 y(The)f(expression)g(is)g(false.)630
+4792 y(based)30 b(on)g(the)h(n)m(um)m(b)s(er)e(of)h(argumen)m(ts.)630
+4956 y(0)h(argumen)m(ts)1110 5066 y(The)f(expression)g(is)g(false.)630
5230 y(1)h(argumen)m(t)1110 5340 y(The)f(expression)g(is)g(true)h(if)f
(and)g(only)g(if)h(the)f(argumen)m(t)h(is)f(not)h(n)m(ull.)p
eop end
script by the .\b. (s\bso\bou\bur\brc\bce\be) command, it causes the shell to stop
executing that script and return either _\bn or the exit status of
the last command executed within the script as the exit status
- of the script. The return status is non-zero if r\bre\bet\btu\bur\brn\bn is used
- outside a function and not during execution of a script by .\b. or
- s\bso\bou\bur\brc\bce\be. Any command associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed
- before execution resumes after the function or script.
+ of the script. If _\bn is supplied, the return value is its least
+ significant 8 bits. The return status is non-zero if r\bre\bet\btu\bur\brn\bn is
+ supplied a non-numeric argument, or is used outside a function
+ and not during execution of a script by .\b. or s\bso\bou\bur\brc\bce\be. Any com-
+ mand associated with the R\bRE\bET\bTU\bUR\bRN\bN trap is executed before execu-
+ tion resumes after the function or script.
s\bse\bet\bt [-\b--\b-a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [-\b-o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be] [_\ba_\br_\bg ...]
s\bse\bet\bt [+\b+a\bab\bbe\bef\bfh\bhk\bkm\bmn\bnp\bpt\btu\buv\bvx\bxB\bBC\bCE\bEH\bHP\bPT\bT] [+\b+o\bo _\bo_\bp_\bt_\bi_\bo_\bn_\b-_\bn_\ba_\bm_\be] [_\ba_\br_\bg ...]
%!PS-Adobe-3.0
%%Creator: groff version 1.19.2
-%%CreationDate: Mon Sep 26 10:56:08 2011
+%%CreationDate: Mon Oct 24 08:43:45 2011
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
.088(stop e)144 614.4 R -.15(xe)-.15 G .087
(cuting that script and return either).15 F F2(n)2.947 E F0 .087
(or the e)2.827 F .087(xit status of the last command e)-.15 F -.15(xe)
--.15 G .087(cuted within).15 F .621(the script as the e)144 626.4 R .621
-(xit status of the script.)-.15 F .622(The return status is non-zero if)
-5.622 F F1 -.18(re)3.122 G(tur).18 E(n)-.15 E F0 .622(is used outside a)
-3.122 F .87(function and not during e)144 638.4 R -.15(xe)-.15 G .869
-(cution of a script by).15 F F1(.)3.369 E F0(or)4.202 E F1(sour)3.369 E
-(ce)-.18 E F0 5.869(.A)C 1.169 -.15(ny c)-5.869 H .869
-(ommand associated with the).15 F F1(RETURN)144 650.4 Q F0(trap is e)2.5
+-.15 G .087(cuted within).15 F .613(the script as the e)144 626.4 R .613
+(xit status of the script.)-.15 F(If)5.613 E F2(n)3.113 E F0 .613
+(is supplied, the return v)3.113 F .613
+(alue is its least signi\214cant 8)-.25 F 2.511(bits. The)144 638.4 R
+.011(return status is non-zero if)2.511 F F1 -.18(re)2.511 G(tur).18 E
+(n)-.15 E F0 .011(is supplied a non-numeric ar)2.511 F .01
+(gument, or is used outside)-.18 F 2.909(af)144 650.4 S .409
+(unction and not during e)-2.909 F -.15(xe)-.15 G .41
+(cution of a script by).15 F F1(.)2.91 E F0(or)3.743 E F1(sour)2.91 E
+(ce)-.18 E F0 5.41(.A)C .71 -.15(ny c)-5.41 H .41
+(ommand associated with the).15 F F1(RETURN)144 662.4 Q F0(trap is e)2.5
E -.15(xe)-.15 G(cuted before e).15 E -.15(xe)-.15 G
-(cution resumes after the function or script.).15 E F1(set)108 667.2 Q
+(cution resumes after the function or script.).15 E F1(set)108 679.2 Q
F0([)2.5 E F1(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1<ad6f>-2.5 E
F2(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E
-F1(set)108 679.2 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1
+F1(set)108 691.2 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1
(+o)-2.5 E F2(option\255name)2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0
-(...])2.5 E -.4(Wi)144 691.2 S .835(thout options, the name and v).4 F
-.835(alue of each shell v)-.25 F .836
+(...])2.5 E -.4(Wi)144 703.2 S .836(thout options, the name and v).4 F
+.835(alue of each shell v)-.25 F .835
(ariable are displayed in a format that can be)-.25 F .784
-(reused as input for setting or resetting the currently-set v)144 703.2
-R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .783
-(riables cannot be).25 F 2.946(reset. In)144 715.2 R F2 .447(posix mode)
-2.946 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
+(reused as input for setting or resetting the currently-set v)144 715.2
+R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784
+(riables cannot be).25 F 2.947(reset. In)144 727.2 R F2 .447(posix mode)
+2.947 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
(ariables are listed.)-.25 F .447
-(The output is sorted according to the current)5.447 F 3.531
-(locale. When)144 727.2 R 1.031(options are speci\214ed, the)3.531 F
-3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.53(utes. An)
--.2 F 3.53(ya)-.15 G -.18(rg)-3.53 G 1.03(uments remaining).18 F
-(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(13)198.725 E 0 Cg EP
+(The output is sorted according to the current)5.447 F(GNU Bash-4.0)72
+768 Q(2004 Apr 20)148.735 E(13)198.725 E 0 Cg EP
%%Page: 14 14
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 1.623
-(after option processing are treated as v)144 84 R 1.624
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 3.53
+(locale. When)144 84 R 1.031(options are speci\214ed, the)3.53 F 3.531
+(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An)-.2 F
+3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F 1.624
+(after option processing are treated as v)144 96 R 1.623
(alues for the positional parameters and are assigned, in)-.25 F(order)
-144 96 Q 2.5(,t)-.4 G(o)-2.5 E/F1 10/Times-Bold@0 SF($1)2.5 E F0(,)A F1
+144 108 Q 2.5(,t)-.4 G(o)-2.5 E/F1 10/Times-Bold@0 SF($1)2.5 E F0(,)A F1
($2)2.5 E F0(,)A F1 2.5(... $)2.5 F/F2 10/Times-Italic@0 SF(n)A F0 5(.O)
C(ptions, if speci\214ed, ha)-5 E .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad61>144 108 Q F0 .54(Automatically mark v)
+(wing meanings:)-.25 E F1<ad61>144 120 Q F0 .539(Automatically mark v)
29.3 F .539
-(ariables and functions which are modi\214ed or created for e)-.25 F
-.539(xport to)-.15 F(the en)184 120 Q(vironment of subsequent commands.)
--.4 E F1<ad62>144 132 Q F0 .131
+(ariables and functions which are modi\214ed or created for e)-.25 F .54
+(xport to)-.15 F(the en)184 132 Q(vironment of subsequent commands.)-.4
+E F1<ad62>144 144 Q F0 .132
(Report the status of terminated background jobs immediately)28.74 F
-2.632(,r)-.65 G .132(ather than before the ne)-2.632 F(xt)-.15 E
-(primary prompt.)184 144 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)-.25
-H(nly when job control is enabled.).15 E F1<ad65>144 156 Q F0 .088
-(Exit immediately if a)29.86 F F2(pipeline)2.588 E F0 .087
-(\(which may consist of a single)2.588 F F2 .087(simple command)2.587 F
-F0 .087(\), a)B F2(list)2.587 E F0 2.587(,o)C(r)-2.587 E(a)184 168 Q F2
-1.293(compound command)3.793 F F0(\(see)3.793 E/F3 9/Times-Bold@0 SF
-1.293(SHELL GRAMMAR)3.793 F F0(abo)3.544 E -.15(ve)-.15 G 3.794(\), e)
-.15 F 1.294(xits with a non-zero status.)-.15 F .08
-(The shell does not e)184 180 R .079(xit if the command that f)-.15 F
-.079(ails is part of the command list immediately)-.1 F(follo)184 192 Q
-1.654(wing a)-.25 F F1(while)4.154 E F0(or)4.154 E F1(until)4.154 E F0
--.1(ke)4.154 G(yw)-.05 E 1.655(ord, part of the test follo)-.1 F 1.655
-(wing the)-.25 F F1(if)4.155 E F0(or)4.155 E F1(elif)4.155 E F0(reserv)
-4.155 E(ed)-.15 E -.1(wo)184 204 S .582(rds, part of an).1 F 3.082(yc)
--.15 G .582(ommand e)-3.082 F -.15(xe)-.15 G .581(cuted in a).15 F F1
-(&&)3.081 E F0(or)3.081 E F1(||)3.081 E F0 .581(list e)3.081 F .581
-(xcept the command follo)-.15 F(wing)-.25 E .917(the \214nal)184 216 R
-F1(&&)3.417 E F0(or)3.417 E F1(||)3.417 E F0 3.417(,a)C 1.217 -.15(ny c)
--3.417 H .918(ommand in a pipeline b).15 F .918
-(ut the last, or if the command')-.2 F 3.418(sr)-.55 G(eturn)-3.418 E
--.25(va)184 228 S .661(lue is being in).25 F -.15(ve)-.4 G .661
-(rted with).15 F F1(!)3.161 E F0 5.661(.I)C 3.161(fac)-5.661 G .66
-(ompound command other than a subshell returns a)-3.161 F 1.112
-(non-zero status because a command f)184 240 R 1.112(ailed while)-.1 F
-F1<ad65>3.612 E F0 -.1(wa)3.612 G 3.612(sb).1 G 1.113
-(eing ignored, the shell does)-3.612 F .178(not e)184 252 R 2.678
-(xit. A)-.15 F .178(trap on)2.678 F F1(ERR)2.678 E F0 2.678(,i)C 2.678
-(fs)-2.678 G .178(et, is e)-2.678 F -.15(xe)-.15 G .178
-(cuted before the shell e).15 F 2.677(xits. This)-.15 F .177
-(option applies to)2.677 F .617(the shell en)184 264 R .617
+2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E
+(primary prompt.)184 156 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)-.25
+H(nly when job control is enabled.).15 E F1<ad65>144 168 Q F0 .087
+(Exit immediately if a)29.86 F F2(pipeline)2.587 E F0 .087
+(\(which may consist of a single)2.587 F F2 .088(simple command)2.588 F
+F0 .088(\), a)B F2(list)2.588 E F0 2.588(,o)C(r)-2.588 E(a)184 180 Q F2
+1.294(compound command)3.794 F F0(\(see)3.794 E/F3 9/Times-Bold@0 SF
+1.294(SHELL GRAMMAR)3.794 F F0(abo)3.544 E -.15(ve)-.15 G 3.793(\), e)
+.15 F 1.293(xits with a non-zero status.)-.15 F .079
+(The shell does not e)184 192 R .079(xit if the command that f)-.15 F
+.08(ails is part of the command list immediately)-.1 F(follo)184 204 Q
+1.655(wing a)-.25 F F1(while)4.155 E F0(or)4.155 E F1(until)4.155 E F0
+-.1(ke)4.155 G(yw)-.05 E 1.655(ord, part of the test follo)-.1 F 1.654
+(wing the)-.25 F F1(if)4.154 E F0(or)4.154 E F1(elif)4.154 E F0(reserv)
+4.154 E(ed)-.15 E -.1(wo)184 216 S .581(rds, part of an).1 F 3.081(yc)
+-.15 G .581(ommand e)-3.081 F -.15(xe)-.15 G .581(cuted in a).15 F F1
+(&&)3.081 E F0(or)3.081 E F1(||)3.081 E F0 .582(list e)3.082 F .582
+(xcept the command follo)-.15 F(wing)-.25 E .918(the \214nal)184 228 R
+F1(&&)3.418 E F0(or)3.418 E F1(||)3.418 E F0 3.418(,a)C 1.218 -.15(ny c)
+-3.418 H .918(ommand in a pipeline b).15 F .917
+(ut the last, or if the command')-.2 F 3.417(sr)-.55 G(eturn)-3.417 E
+-.25(va)184 240 S .66(lue is being in).25 F -.15(ve)-.4 G .66(rted with)
+.15 F F1(!)3.16 E F0 5.661(.I)C 3.161(fac)-5.661 G .661
+(ompound command other than a subshell returns a)-3.161 F 1.113
+(non-zero status because a command f)184 252 R 1.112(ailed while)-.1 F
+F1<ad65>3.612 E F0 -.1(wa)3.612 G 3.612(sb).1 G 1.112
+(eing ignored, the shell does)-3.612 F .177(not e)184 264 R 2.677
+(xit. A)-.15 F .177(trap on)2.677 F F1(ERR)2.677 E F0 2.677(,i)C 2.678
+(fs)-2.677 G .178(et, is e)-2.678 F -.15(xe)-.15 G .178
+(cuted before the shell e).15 F 2.678(xits. This)-.15 F .178
+(option applies to)2.678 F .618(the shell en)184 276 R .617
(vironment and each subshell en)-.4 F .617(vironment separately \(see)
--.4 F F3 .618(COMMAND EXE-)3.118 F .643(CUTION ENVIR)184 276 R(ONMENT)
+-.4 F F3 .617(COMMAND EXE-)3.117 F .642(CUTION ENVIR)184 288 R(ONMENT)
-.27 E F0(abo)2.893 E -.15(ve)-.15 G .643
(\), and may cause subshells to e).15 F .643(xit before e)-.15 F -.15
-(xe)-.15 G .642(cuting all).15 F(the commands in the subshell.)184 288 Q
-F1<ad66>144 300 Q F0(Disable pathname e)30.97 E(xpansion.)-.15 E F1
-<ad68>144 312 Q F0 2.238(Remember the location of commands as the)28.74
-F 4.738(ya)-.15 G 2.239(re look)-4.738 F 2.239(ed up for e)-.1 F -.15
-(xe)-.15 G 4.739(cution. This).15 F(is)4.739 E(enabled by def)184 324 Q
-(ault.)-.1 E F1<ad6b>144 336 Q F0 .514(All ar)28.74 F .514
+(xe)-.15 G .643(cuting all).15 F(the commands in the subshell.)184 300 Q
+F1<ad66>144 312 Q F0(Disable pathname e)30.97 E(xpansion.)-.15 E F1
+<ad68>144 324 Q F0 2.239(Remember the location of commands as the)28.74
+F 4.738(ya)-.15 G 2.238(re look)-4.738 F 2.238(ed up for e)-.1 F -.15
+(xe)-.15 G 4.738(cution. This).15 F(is)4.738 E(enabled by def)184 336 Q
+(ault.)-.1 E F1<ad6b>144 348 Q F0 .513(All ar)28.74 F .514
(guments in the form of assignment statements are placed in the en)-.18
-F .513(vironment for a)-.4 F
-(command, not just those that precede the command name.)184 348 Q F1
-<ad6d>144 360 Q F0 .148(Monitor mode.)25.97 F .148
-(Job control is enabled.)5.148 F .149(This option is on by def)5.148 F
-.149(ault for interacti)-.1 F .449 -.15(ve s)-.25 H(hells).15 E .651
-(on systems that support it \(see)184 372 R F3 .651(JOB CONTR)3.151 F
-(OL)-.27 E F0(abo)2.901 E -.15(ve)-.15 G 3.151(\). All).15 F .65
-(processes run in a separate)3.151 F .678(process group.)184 384 R .679
+F .514(vironment for a)-.4 F
+(command, not just those that precede the command name.)184 360 Q F1
+<ad6d>144 372 Q F0 .149(Monitor mode.)25.97 F .149
+(Job control is enabled.)5.149 F .148(This option is on by def)5.149 F
+.148(ault for interacti)-.1 F .448 -.15(ve s)-.25 H(hells).15 E .65
+(on systems that support it \(see)184 384 R F3 .651(JOB CONTR)3.151 F
+(OL)-.27 E F0(abo)2.901 E -.15(ve)-.15 G 3.151(\). All).15 F .651
+(processes run in a separate)3.151 F .679(process group.)184 396 R .678
(When a background job completes, the shell prints a line containing it\
-s)5.678 F -.15(ex)184 396 S(it status.).15 E F1<ad6e>144 408 Q F0 .653
-(Read commands b)28.74 F .653(ut do not e)-.2 F -.15(xe)-.15 G .653
-(cute them.).15 F .652(This may be used to check a shell script for)
-5.653 F(syntax errors.)184 420 Q(This is ignored by interacti)5 E .3
--.15(ve s)-.25 H(hells.).15 E F1<ad6f>144 432 Q F2(option\255name)2.5 E
-F0(The)184 444 Q F2(option\255name)2.5 E F0(can be one of the follo)2.5
-E(wing:)-.25 E F1(allexport)184 456 Q F0(Same as)224 468 Q F1<ad61>2.5 E
-F0(.)A F1(braceexpand)184 480 Q F0(Same as)224 492 Q F1<ad42>2.5 E F0(.)
-A F1(emacs)184 504 Q F0 .089
+s)5.679 F -.15(ex)184 408 S(it status.).15 E F1<ad6e>144 420 Q F0 .652
+(Read commands b)28.74 F .652(ut do not e)-.2 F -.15(xe)-.15 G .652
+(cute them.).15 F .653(This may be used to check a shell script for)
+5.652 F(syntax errors.)184 432 Q(This is ignored by interacti)5 E .3
+-.15(ve s)-.25 H(hells.).15 E F1<ad6f>144 444 Q F2(option\255name)2.5 E
+F0(The)184 456 Q F2(option\255name)2.5 E F0(can be one of the follo)2.5
+E(wing:)-.25 E F1(allexport)184 468 Q F0(Same as)224 480 Q F1<ad61>2.5 E
+F0(.)A F1(braceexpand)184 492 Q F0(Same as)224 504 Q F1<ad42>2.5 E F0(.)
+A F1(emacs)184 516 Q F0 .089
(Use an emacs-style command line editing interf)13.9 F 2.589(ace. This)
-.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
-(when the shell is interacti)224 516 R -.15(ve)-.25 G 3.45(,u).15 G .95
+(when the shell is interacti)224 528 R -.15(ve)-.25 G 3.45(,u).15 G .95
(nless the shell is started with the)-3.45 F F1(\255\255noediting)3.45 E
-F0 2.5(option. This)224 528 R(also af)2.5 E(fects the editing interf)
+F0 2.5(option. This)224 540 R(also af)2.5 E(fects the editing interf)
-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1(err)
-184 540 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A F1
-(errtrace)184 552 Q F0(Same as)5.03 E F1<ad45>2.5 E F0(.)A F1(functrace)
-184 564 Q F0(Same as)224 576 Q F1<ad54>2.5 E F0(.)A F1(hashall)184 588 Q
-F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1(histexpand)184 600 Q F0
-(Same as)224 612 Q F1<ad48>2.5 E F0(.)A F1(history)184 624 Q F0 .586
+184 552 Q(exit)-.18 E F0(Same as)11.31 E F1<ad65>2.5 E F0(.)A F1
+(errtrace)184 564 Q F0(Same as)5.03 E F1<ad45>2.5 E F0(.)A F1(functrace)
+184 576 Q F0(Same as)224 588 Q F1<ad54>2.5 E F0(.)A F1(hashall)184 600 Q
+F0(Same as)9.43 E F1<ad68>2.5 E F0(.)A F1(histexpand)184 612 Q F0
+(Same as)224 624 Q F1<ad48>2.5 E F0(.)A F1(history)184 636 Q F0 .587
(Enable command history)10 F 3.087(,a)-.65 G 3.087(sd)-3.087 G .587
(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder).15 E F3(HIST)3.087 E
(OR)-.162 E(Y)-.315 E/F4 9/Times-Roman@0 SF(.)A F0 .587(This option is)
-5.087 F(on by def)224 636 Q(ault in interacti)-.1 E .3 -.15(ve s)-.25 H
-(hells.).15 E F1(ignor)184 648 Q(eeof)-.18 E F0 1.657(The ef)224 660 R
-1.657(fect is as if the shell command)-.25 F/F5 10/Courier@0 SF
-(IGNOREEOF=10)4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted)
-.15 E(\(see)224 672 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15
-(ve)-.15 G(\).).15 E F1 -.1(ke)184 684 S(yw).1 E(ord)-.1 E F0(Same as)
-224 696 Q F1<ad6b>2.5 E F0(.)A F1(monitor)184 708 Q F0(Same as)5.56 E F1
-<ad6d>2.5 E F0(.)A(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(14)
-198.725 E 0 Cg EP
+5.087 F(on by def)224 648 Q(ault in interacti)-.1 E .3 -.15(ve s)-.25 H
+(hells.).15 E F1(ignor)184 660 Q(eeof)-.18 E F0 1.656(The ef)224 672 R
+1.656(fect is as if the shell command)-.25 F/F5 10/Courier@0 SF
+(IGNOREEOF=10)4.157 E F0 1.657(had been e)4.157 F -.15(xe)-.15 G(cuted)
+.15 E(\(see)224 684 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15
+(ve)-.15 G(\).).15 E F1 -.1(ke)184 696 S(yw).1 E(ord)-.1 E F0(Same as)
+224 708 Q F1<ad6b>2.5 E F0(.)A(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735
+E(14)198.725 E 0 Cg EP
%%Page: 15 15
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(noclob)184 84 Q(ber)-.1 E F0(Same as)224 96 Q F1<ad43>
-2.5 E F0(.)A F1(noexec)184 108 Q F0(Same as)11.12 E F1<ad6e>2.5 E F0(.)A
-F1(noglob)184 120 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1(nolog)184
-132 Q F0(Currently ignored.)16.66 E F1(notify)184 144 Q F0(Same as)15 E
-F1<ad62>2.5 E F0(.)A F1(nounset)184 156 Q F0(Same as)6.66 E F1<ad75>2.5
-E F0(.)A F1(onecmd)184 168 Q F0(Same as)6.67 E F1<ad74>2.5 E F0(.)A F1
-(ph)184 180 Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E F0(.)A F1
-(pipefail)184 192 Q F0 1.029(If set, the return v)7.77 F 1.029
-(alue of a pipeline is the v)-.25 F 1.03
-(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 204 R
+/Times-Bold@0 SF(monitor)184 84 Q F0(Same as)5.56 E F1<ad6d>2.5 E F0(.)A
+F1(noclob)184 96 Q(ber)-.1 E F0(Same as)224 108 Q F1<ad43>2.5 E F0(.)A
+F1(noexec)184 120 Q F0(Same as)11.12 E F1<ad6e>2.5 E F0(.)A F1(noglob)
+184 132 Q F0(Same as)11.1 E F1<ad66>2.5 E F0(.)A F1(nolog)184 144 Q F0
+(Currently ignored.)16.66 E F1(notify)184 156 Q F0(Same as)15 E F1<ad62>
+2.5 E F0(.)A F1(nounset)184 168 Q F0(Same as)6.66 E F1<ad75>2.5 E F0(.)A
+F1(onecmd)184 180 Q F0(Same as)6.67 E F1<ad74>2.5 E F0(.)A F1(ph)184 192
+Q(ysical)-.15 E F0(Same as)5.14 E F1<ad50>2.5 E F0(.)A F1(pipefail)184
+204 Q F0 1.03(If set, the return v)7.77 F 1.029
+(alue of a pipeline is the v)-.25 F 1.029
+(alue of the last \(rightmost\) com-)-.25 F 1.136(mand to e)224 216 R
1.136
(xit with a non-zero status, or zero if all commands in the pipeline)
--.15 F -.15(ex)224 216 S(it successfully).15 E 5(.T)-.65 G
-(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 228 Q F0
-2.09(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
+-.15 F -.15(ex)224 228 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 240 Q F0
+2.091(Change the beha)17.77 F 2.091(vior of)-.2 F F1(bash)4.591 E F0
2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091
-(fers from the)-.25 F(POSIX standard to match the standard \()224 240 Q
-/F2 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 252 Q(vileged)
--.1 E F0(Same as)224 264 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 276 S
-(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 288 Q F0
-1.466(Use a vi-style command line editing interf)32.22 F 3.965
-(ace. This)-.1 F 1.465(also af)3.965 F 1.465(fects the editing)-.25 F
-(interf)224 300 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0
-(.)A F1(xtrace)184 312 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184
-330 Q F1<ad6f>3.052 E F0 .552(is supplied with no)3.052 F F2
-(option\255name)3.053 E F0 3.053(,t)C .553(he v)-3.053 F .553
-(alues of the current options are printed.)-.25 F(If)5.553 E F1(+o)184
-342 Q F0 1.072(is supplied with no)3.572 F F2(option\255name)3.572 E F0
-3.572(,a)C 1.071(series of)-.001 F F1(set)3.571 E F0 1.071
-(commands to recreate the current)3.571 F
-(option settings is displayed on the standard output.)184 354 Q F1<ad70>
-144 366 Q F0 -.45(Tu)28.74 G 1.071(rn on).45 F F2(privile)4.821 E -.1
-(ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F
+(fers from the)-.25 F(POSIX standard to match the standard \()224 252 Q
+/F2 10/Times-Italic@0 SF(posix mode)A F0(\).)A F1(pri)184 264 Q(vileged)
+-.1 E F0(Same as)224 276 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 288 S
+(rbose).1 E F0(Same as)7.33 E F1<ad76>2.5 E F0(.)A F1(vi)184 300 Q F0
+1.465(Use a vi-style command line editing interf)32.22 F 3.966
+(ace. This)-.1 F 1.466(also af)3.966 F 1.466(fects the editing)-.25 F
+(interf)224 312 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0
+(.)A F1(xtrace)184 324 Q F0(Same as)13.35 E F1<ad78>2.5 E F0(.)A(If)184
+342 Q F1<ad6f>3.053 E F0 .553(is supplied with no)3.053 F F2
+(option\255name)3.053 E F0 3.053(,t)C .553(he v)-3.053 F .552
+(alues of the current options are printed.)-.25 F(If)5.552 E F1(+o)184
+354 Q F0 1.071(is supplied with no)3.571 F F2(option\255name)3.571 E F0
+3.571(,as)C 1.071(eries of)-3.571 F F1(set)3.572 E F0 1.072
+(commands to recreate the current)3.572 F
+(option settings is displayed on the standard output.)184 366 Q F1<ad70>
+144 378 Q F0 -.45(Tu)28.74 G 1.072(rn on).45 F F2(privile)4.822 E -.1
+(ge)-.4 G(d).1 E F0 3.572(mode. In)4.342 F 1.072(this mode, the)3.572 F
/F3 9/Times-Bold@0 SF($ENV)3.572 E F0(and)3.322 E F3($B)3.572 E(ASH_ENV)
--.27 E F0 1.072(\214les are not pro-)3.322 F 1.501
-(cessed, shell functions are not inherited from the en)184 378 R 1.5
-(vironment, and the)-.4 F F3(SHELLOPTS)4 E/F4 9/Times-Roman@0 SF(,)A F3
--.27(BA)184 390 S(SHOPTS).27 E F4(,)A F3(CDP)2.774 E -.855(AT)-.666 G(H)
-.855 E F4(,)A F0(and)2.774 E F3(GLOBIGNORE)3.024 E F0 -.25(va)2.774 G
-.524(riables, if the).25 F 3.025(ya)-.15 G .525(ppear in the en)-3.025 F
-(vironment,)-.4 E .38(are ignored.)184 402 R .38
-(If the shell is started with the ef)5.38 F(fecti)-.25 E .679 -.15(ve u)
--.25 H .379(ser \(group\) id not equal to the real).15 F .461
-(user \(group\) id, and the)184 414 R F1<ad70>2.961 E F0 .461
-(option is not supplied, these actions are tak)2.961 F .462
-(en and the ef)-.1 F(fec-)-.25 E(ti)184 426 Q .695 -.15(ve u)-.25 H .395
+-.27 E F0 1.071(\214les are not pro-)3.322 F 1.5
+(cessed, shell functions are not inherited from the en)184 390 R 1.501
+(vironment, and the)-.4 F F3(SHELLOPTS)4.001 E/F4 9/Times-Roman@0 SF(,)A
+F3 -.27(BA)184 402 S(SHOPTS).27 E F4(,)A F3(CDP)2.775 E -.855(AT)-.666 G
+(H).855 E F4(,)A F0(and)2.775 E F3(GLOBIGNORE)3.025 E F0 -.25(va)2.775 G
+.524(riables, if the).25 F 3.024(ya)-.15 G .524(ppear in the en)-3.024 F
+(vironment,)-.4 E .379(are ignored.)184 414 R .379
+(If the shell is started with the ef)5.379 F(fecti)-.25 E .679 -.15
+(ve u)-.25 H .38(ser \(group\) id not equal to the real).15 F .462
+(user \(group\) id, and the)184 426 R F1<ad70>2.961 E F0 .461
+(option is not supplied, these actions are tak)2.961 F .461
+(en and the ef)-.1 F(fec-)-.25 E(ti)184 438 Q .694 -.15(ve u)-.25 H .394
(ser id is set to the real user id.).15 F .395(If the)5.395 F F1<ad70>
-2.895 E F0 .394(option is supplied at startup, the ef)2.895 F(fecti)-.25
-E -.15(ve)-.25 G .386(user id is not reset.)184 438 R -.45(Tu)5.386 G
-.386(rning this option of).45 F 2.886(fc)-.25 G .387(auses the ef)-2.886
-F(fecti)-.25 E .687 -.15(ve u)-.25 H .387(ser and group ids to be).15 F
-(set to the real user and group ids.)184 450 Q F1<ad74>144 462 Q F0
+2.895 E F0 .395(option is supplied at startup, the ef)2.895 F(fecti)-.25
+E -.15(ve)-.25 G .387(user id is not reset.)184 450 R -.45(Tu)5.387 G
+.387(rning this option of).45 F 2.886(fc)-.25 G .386(auses the ef)-2.886
+F(fecti)-.25 E .686 -.15(ve u)-.25 H .386(ser and group ids to be).15 F
+(set to the real user and group ids.)184 462 Q F1<ad74>144 474 Q F0
(Exit after reading and e)30.97 E -.15(xe)-.15 G(cuting one command.).15
-E F1<ad75>144 474 Q F0 -.35(Tr)28.74 G .044(eat unset v).35 F .044(aria\
+E F1<ad75>144 486 Q F0 -.35(Tr)28.74 G .043(eat unset v).35 F .044(aria\
bles and parameters other than the special parameters "@" and "*" as an)
--.25 F .182(error when performing parameter e)184 486 R 2.682
-(xpansion. If)-.15 F -.15(ex)2.682 G .183
+-.25 F .183(error when performing parameter e)184 498 R 2.683
+(xpansion. If)-.15 F -.15(ex)2.683 G .182
(pansion is attempted on an unset v).15 F(ari-)-.25 E .746
-(able or parameter)184 498 R 3.246(,t)-.4 G .746
+(able or parameter)184 510 R 3.246(,t)-.4 G .746
(he shell prints an error message, and, if not interacti)-3.246 F -.15
(ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184
-510 Q F1<ad76>144 522 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
--.15 G(re read.)-2.5 E F1<ad78>144 534 Q F0 .315(After e)29.3 F .315
+522 Q F1<ad76>144 534 Q F0(Print shell input lines as the)29.3 E 2.5(ya)
+-.15 G(re read.)-2.5 E F1<ad78>144 546 Q F0 .315(After e)29.3 F .315
(xpanding each)-.15 F F2 .315(simple command)2.815 F F0(,)A F1 -.25(fo)
2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E F0(command,)2.815 E
-F1(select)2.815 E F0(command,)2.815 E 1.236(or arithmetic)184 546 R F1
+F1(select)2.815 E F0(command,)2.815 E 1.235(or arithmetic)184 558 R F1
-.25(fo)3.736 G(r).25 E F0 1.236(command, display the e)3.736 F 1.236
(xpanded v)-.15 F 1.236(alue of)-.25 F F3(PS4)3.736 E F4(,)A F0(follo)
-3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 558 Q
+3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 570 Q
(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1
-<ad42>144 570 Q F0 2.578(The shell performs brace e)27.63 F 2.578
+<ad42>144 582 Q F0 2.579(The shell performs brace e)27.63 F 2.578
(xpansion \(see)-.15 F F1 2.578(Brace Expansion)5.078 F F0(abo)5.078 E
--.15(ve)-.15 G 5.079(\). This).15 F 2.579(is on by)5.079 F(def)184 582 Q
-(ault.)-.1 E F1<ad43>144 594 Q F0 .214(If set,)27.08 F F1(bash)2.714 E
-F0 .214(does not o)2.714 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
+-.15(ve)-.15 G 5.078(\). This).15 F 2.578(is on by)5.078 F(def)184 594 Q
+(ault.)-.1 E F1<ad43>144 606 Q F0 .213(If set,)27.08 F F1(bash)2.713 E
+F0 .213(does not o)2.713 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
(xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0
-2.713(,a)C(nd)-2.713 E F1(<>)2.713 E F0 .213(redirection opera-)2.713 F
-3.053(tors. This)184 606 R .553(may be o)3.053 F -.15(ve)-.15 G .553
+2.714(,a)C(nd)-2.714 E F1(<>)2.714 E F0 .214(redirection opera-)2.714 F
+3.054(tors. This)184 618 R .553(may be o)3.053 F -.15(ve)-.15 G .553
(rridden when creating output \214les by using the redirection opera-)
-.15 F(tor)184 618 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
-<ad45>144 630 Q F0 .104(If set, an)27.63 F 2.604(yt)-.15 G .104(rap on)
--2.604 F F1(ERR)2.604 E F0 .103
-(is inherited by shell functions, command substitutions, and com-)2.604
-F .838(mands e)184 642 R -.15(xe)-.15 G .838(cuted in a subshell en).15
-F 3.338(vironment. The)-.4 F F1(ERR)3.338 E F0 .839
-(trap is normally not inherited in)3.339 F(such cases.)184 654 Q F1
-<ad48>144 666 Q F0(Enable)26.52 E F1(!)3.032 E F0 .532
-(style history substitution.)5.532 F .531(This option is on by def)5.532
-F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 678 Q -.15
-(ve)-.25 G(.).15 E F1<ad50>144 690 Q F0 1.164
+.15 F(tor)184 630 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
+<ad45>144 642 Q F0 .103(If set, an)27.63 F 2.603(yt)-.15 G .103(rap on)
+-2.603 F F1(ERR)2.603 E F0 .104
+(is inherited by shell functions, command substitutions, and com-)2.603
+F .839(mands e)184 654 R -.15(xe)-.15 G .839(cuted in a subshell en).15
+F 3.339(vironment. The)-.4 F F1(ERR)3.338 E F0 .838
+(trap is normally not inherited in)3.338 F(such cases.)184 666 Q F1
+<ad48>144 678 Q F0(Enable)26.52 E F1(!)3.031 E F0 .531
+(style history substitution.)5.531 F .531(This option is on by def)5.531
+F .532(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 690 Q -.15
+(ve)-.25 G(.).15 E F1<ad50>144 702 Q F0 1.165
(If set, the shell does not follo)28.19 F 3.664(ws)-.25 G 1.164
-(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.165
-(cuting commands such as).15 F F1(cd)3.665 E F0 2.822
-(that change the current w)184 702 R 2.822(orking directory)-.1 F 7.822
-(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.821
-(ysical directory structure)-.05 F 2.685(instead. By)184 714 R(def)2.685
-E(ault,)-.1 E F1(bash)2.686 E F0(follo)2.686 E .186
-(ws the logical chain of directories when performing com-)-.25 F
-(mands which change the current directory)184 726 Q(.)-.65 E
+(ymbolic links when e)-3.664 F -.15(xe)-.15 G 1.164
+(cuting commands such as).15 F F1(cd)3.664 E F0 2.821
+(that change the current w)184 714 R 2.822(orking directory)-.1 F 7.822
+(.I)-.65 G 5.322(tu)-7.822 G 2.822(ses the ph)-5.322 F 2.822
+(ysical directory structure)-.05 F 4.799(instead. By)184 726 R(def)4.799
+E(ault,)-.1 E F1(bash)4.798 E F0(follo)4.798 E 2.298
+(ws the logical chain of directories when performing)-.25 F
(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(15)198.725 E 0 Cg EP
%%Page: 16 16
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF<ad54>144 84 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E
+(commands which change the current directory)184 84 Q(.)-.65 E/F1 10
+/Times-Bold@0 SF<ad54>144 96 Q F0 .89(If set, an)27.63 F 3.39(yt)-.15 G
.89(raps on)-3.39 F F1(DEB)3.39 E(UG)-.1 E F0(and)3.39 E F1(RETURN)3.39
E F0 .89(are inherited by shell functions, command)3.39 F 1.932
-(substitutions, and commands e)184 96 R -.15(xe)-.15 G 1.932
+(substitutions, and commands e)184 108 R -.15(xe)-.15 G 1.932
(cuted in a subshell en).15 F 4.432(vironment. The)-.4 F F1(DEB)4.432 E
-(UG)-.1 E F0(and)4.432 E F1(RETURN)184 108 Q F0
-(traps are normally not inherited in such cases.)2.5 E F1<adad>144 120 Q
-F0 .401(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
+(UG)-.1 E F0(and)4.432 E F1(RETURN)184 120 Q F0
+(traps are normally not inherited in such cases.)2.5 E F1<adad>144 132 Q
+F0 .4(If no ar)28.6 F .401(guments follo)-.18 F 2.901(wt)-.25 G .401
(his option, then the positional parameters are unset.)-2.901 F
-(Otherwise,)5.4 E(the positional parameters are set to the)184 132 Q/F2
-10/Times-Italic@0 SF(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni)
-.15 G 2.5(fs)-2.5 G(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>2.5 E
-F0(.)A F1<ad>144 144 Q F0 1.944
+(Otherwise,)5.401 E(the positional parameters are set to the)184 144 Q
+/F2 10/Times-Italic@0 SF(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5
+(ni).15 G 2.5(fs)-2.5 G(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>
+2.5 E F0(.)A F1<ad>144 156 Q F0 1.945
(Signal the end of options, cause all remaining)34.3 F F2(ar)4.444 E(g)
--.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.445(ea)-4.444 G 1.945
-(ssigned to the positional)-4.445 F 3.446(parameters. The)184 156 R F1
-<ad78>3.446 E F0(and)3.446 E F1<ad76>3.446 E F0 .945
-(options are turned of)3.446 F 3.445(f. If)-.25 F .945(there are no)
-3.445 F F2(ar)3.445 E(g)-.37 E F0 .945(s, the positional)B
-(parameters remain unchanged.)184 168 Q .425(The options are of)144
-184.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
+-.37 E F0 4.444(st)C 4.444(ob)-4.444 G 4.444(ea)-4.444 G 1.944
+(ssigned to the positional)-4.444 F 3.445(parameters. The)184 168 R F1
+<ad78>3.445 E F0(and)3.445 E F1<ad76>3.445 E F0 .945
+(options are turned of)3.445 F 3.445(f. If)-.25 F .946(there are no)
+3.445 F F2(ar)3.446 E(g)-.37 E F0 .946(s, the positional)B
+(parameters remain unchanged.)184 180 Q .425(The options are of)144
+196.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
(ault unless otherwise noted.)-.1 F .425
-(Using + rather than \255 causes these options)5.425 F .178
-(to be turned of)144 196.8 R 2.678(f. The)-.25 F .178
+(Using + rather than \255 causes these options)5.425 F .177
+(to be turned of)144 208.8 R 2.677(f. The)-.25 F .178
(options can also be speci\214ed as ar)2.678 F .178(guments to an in)
--.18 F -.2(vo)-.4 G .177(cation of the shell.).2 F(The)5.177 E .066
-(current set of options may be found in)144 208.8 R F1<24ad>2.566 E F0
+-.18 F -.2(vo)-.4 G .178(cation of the shell.).2 F(The)5.178 E .066
+(current set of options may be found in)144 220.8 R F1<24ad>2.566 E F0
5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)-.1 G .066
-(ys true unless an in).1 F -.25(va)-.4 G .067(lid option).25 F
-(is encountered.)144 220.8 Q F1(shift)108 237.6 Q F0([)2.5 E F2(n)A F0
-(])A .429(The positional parameters from)144 249.6 R F2(n)2.929 E F0
-.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.428 G
-.428(rameters represented by the num-).15 F(bers)144 261.6 Q F1($#)2.582
-E F0(do)2.582 E .082(wn to)-.25 F F1($#)2.582 E F0<ad>A F2(n)A F0 .082
-(+1 are unset.)B F2(n)5.442 E F0 .082(must be a non-ne)2.822 F -.05(ga)
--.15 G(ti).05 E .383 -.15(ve n)-.25 H .083(umber less than or equal to)
-.15 F F1($#)2.583 E F0 5.083(.I)C(f)-5.083 E F2(n)2.943 E F0 .06
-(is 0, no parameters are changed.)144 273.6 R(If)5.06 E F2(n)2.92 E F0
+(ys true unless an in).1 F -.25(va)-.4 G .066(lid option).25 F
+(is encountered.)144 232.8 Q F1(shift)108 249.6 Q F0([)2.5 E F2(n)A F0
+(])A .428(The positional parameters from)144 261.6 R F2(n)2.928 E F0
+.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.429 G
+.429(rameters represented by the num-).15 F(bers)144 273.6 Q F1($#)2.583
+E F0(do)2.583 E .083(wn to)-.25 F F1($#)2.583 E F0<ad>A F2(n)A F0 .083
+(+1 are unset.)B F2(n)5.443 E F0 .083(must be a non-ne)2.823 F -.05(ga)
+-.15 G(ti).05 E .382 -.15(ve n)-.25 H .082(umber less than or equal to)
+.15 F F1($#)2.582 E F0 5.082(.I)C(f)-5.082 E F2(n)2.942 E F0 .06
+(is 0, no parameters are changed.)144 285.6 R(If)5.06 E F2(n)2.92 E F0
.06(is not gi)2.8 F -.15(ve)-.25 G .06(n, it is assumed to be 1.).15 F
(If)5.06 E F2(n)2.92 E F0 .06(is greater than)2.8 F F1($#)2.56 E F0 2.56
-(,t)C(he)-2.56 E .143(positional parameters are not changed.)144 285.6 R
-.144(The return status is greater than zero if)5.143 F F2(n)3.004 E F0
-.144(is greater than)2.884 F F1($#)2.644 E F0
-(or less than zero; otherwise 0.)144 297.6 Q F1(shopt)108 314.4 Q F0([)
+(,t)C(he)-2.56 E .144(positional parameters are not changed.)144 297.6 R
+.144(The return status is greater than zero if)5.144 F F2(n)3.003 E F0
+.143(is greater than)2.883 F F1($#)2.643 E F0
+(or less than zero; otherwise 0.)144 309.6 Q F1(shopt)108 326.4 Q F0([)
2.5 E F1(\255pqsu)A F0 2.5(][)C F1<ad6f>-2.5 E F0 2.5(][)C F2(optname)
--2.5 E F0(...])2.5 E -.8(To)144 326.4 S .222(ggle the v).8 F .222
+-2.5 E F0(...])2.5 E -.8(To)144 338.4 S .222(ggle the v).8 F .222
(alues of v)-.25 F .222(ariables controlling optional shell beha)-.25 F
(vior)-.2 E 5.222(.W)-.55 G .222(ith no options, or with the)-5.622 F F1
<ad70>2.722 E F0 .721(option, a list of all settable options is display\
-ed, with an indication of whether or not each is set.)144 338.4 R(The)
-144 350.4 Q F1<ad70>2.828 E F0 .327(option causes output to be displaye\
-d in a form that may be reused as input.)2.828 F .327(Other options)
-5.327 F(ha)144 362.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
--.25 E F1<ad73>144 374.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
-E F0(.)A F1<ad75>144 386.4 Q F0(Disable \(unset\) each)24.74 E F2
-(optname)2.5 E F0(.)A F1<ad71>144 398.4 Q F0 .003(Suppresses normal out\
+ed, with an indication of whether or not each is set.)144 350.4 R(The)
+144 362.4 Q F1<ad70>2.827 E F0 .327(option causes output to be displaye\
+d in a form that may be reused as input.)2.827 F .328(Other options)
+5.328 F(ha)144 374.4 Q .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)
+-.25 E F1<ad73>144 386.4 Q F0(Enable \(set\) each)26.41 E F2(optname)2.5
+E F0(.)A F1<ad75>144 398.4 Q F0(Disable \(unset\) each)24.74 E F2
+(optname)2.5 E F0(.)A F1<ad71>144 410.4 Q F0 .003(Suppresses normal out\
put \(quiet mode\); the return status indicates whether the)24.74 F F2
-(optname)2.504 E F0(is)2.504 E .256(set or unset.)180 410.4 R .256
-(If multiple)5.256 F F2(optname)2.756 E F0(ar)2.756 E .256
+(optname)2.503 E F0(is)2.503 E .255(set or unset.)180 422.4 R .255
+(If multiple)5.255 F F2(optname)2.755 E F0(ar)2.755 E .256
(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G(ith)-2.756 E F1
-<ad71>2.756 E F0 2.755(,t)C .255(he return status is zero if)-2.755 F
-(all)180 422.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
-2.5 E F1<ad6f>144 434.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
+<ad71>2.756 E F0 2.756(,t)C .256(he return status is zero if)-2.756 F
+(all)180 434.4 Q F2(optnames)2.5 E F0(are enabled; non-zero otherwise.)
+2.5 E F1<ad6f>144 446.4 Q F0(Restricts the v)25.3 E(alues of)-.25 E F2
(optname)2.5 E F0(to be those de\214ned for the)2.5 E F1<ad6f>2.5 E F0
-(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .624
-(If either)144 451.2 R F1<ad73>3.124 E F0(or)3.124 E F1<ad75>3.124 E F0
+(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .625
+(If either)144 463.2 R F1<ad73>3.125 E F0(or)3.124 E F1<ad75>3.124 E F0
.624(is used with no)3.124 F F2(optname)3.124 E F0(ar)3.124 E(guments,)
-.18 E F1(shopt)3.124 E F0(sho)3.124 E .624
-(ws only those options which are)-.25 F 2.234(set or unset, respecti)144
-463.2 R -.15(ve)-.25 G(ly).15 E 7.234(.U)-.65 G 2.234
+(ws only those options which are)-.25 F 2.233(set or unset, respecti)144
+475.2 R -.15(ve)-.25 G(ly).15 E 7.234(.U)-.65 G 2.234
(nless otherwise noted, the)-7.234 F F1(shopt)4.734 E F0 2.234
-(options are disabled \(unset\) by)4.734 F(def)144 475.2 Q(ault.)-.1 E
-1.544(The return status when listing options is zero if all)144 492 R F2
-(optnames)4.044 E F0 1.545(are enabled, non-zero otherwise.)4.045 F .696
+(options are disabled \(unset\) by)4.734 F(def)144 487.2 Q(ault.)-.1 E
+1.544(The return status when listing options is zero if all)144 504 R F2
+(optnames)4.044 E F0 1.544(are enabled, non-zero otherwise.)4.044 F .696
(When setting or unsetting options, the return status is zero unless an)
-144 504 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695(alid shell)
--.25 F(option.)144 516 Q(The list of)144 532.8 Q F1(shopt)2.5 E F0
-(options is:)2.5 E F1(autocd)144 550.8 Q F0 .199
+144 516 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696(alid shell)
+-.25 F(option.)144 528 Q(The list of)144 544.8 Q F1(shopt)2.5 E F0
+(options is:)2.5 E F1(autocd)144 562.8 Q F0 .2
(If set, a command name that is the name of a directory is e)11.11 F
--.15(xe)-.15 G .2(cuted as if it were the ar).15 F(gu-)-.18 E
-(ment to the)184 562.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
+-.15(xe)-.15 G .199(cuted as if it were the ar).15 F(gu-)-.18 E
+(ment to the)184 574.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
(option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F1(cdable_v)144 574.8 Q(ars)-.1 E F0 .156(If set, an ar)184 586.8 R .156
-(gument to the)-.18 F F1(cd)2.656 E F0 -.2(bu)2.656 G .155
+F1(cdable_v)144 586.8 Q(ars)-.1 E F0 .155(If set, an ar)184 598.8 R .155
+(gument to the)-.18 F F1(cd)2.655 E F0 -.2(bu)2.655 G .156
(iltin command that is not a directory is assumed to be the).2 F
-(name of a v)184 598.8 Q(ariable whose v)-.25 E
-(alue is the directory to change to.)-.25 E F1(cdspell)144 610.8 Q F0
+(name of a v)184 610.8 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 622.8 Q F0
1.055
(If set, minor errors in the spelling of a directory component in a)
-10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
-(corrected. The)184 622.8 R 1.488(errors check)3.988 F 1.487
-(ed for are transposed characters, a missing character)-.1 F 3.987(,a)
--.4 G(nd)-3.987 E .77(one character too man)184 634.8 R 4.57 -.65(y. I)
+10.55 F F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.987
+(corrected. The)184 634.8 R 1.487(errors check)3.987 F 1.487
+(ed for are transposed characters, a missing character)-.1 F 3.988(,a)
+-.4 G(nd)-3.988 E .77(one character too man)184 646.8 R 4.57 -.65(y. I)
-.15 H 3.27(fac).65 G .77
(orrection is found, the corrected \214lename is printed, and)-3.27 F
-(the command proceeds.)184 646.8 Q
+(the command proceeds.)184 658.8 Q
(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F1(checkhash)144 658.8 Q F0 2.08(If set,)184 670.8 R F1(bash)4.58
-E F0 2.079(checks that a command found in the hash table e)4.58 F 2.079
-(xists before trying to)-.15 F -.15(exe)184 682.8 S(cute it.).15 E
+.15 E F1(checkhash)144 670.8 Q F0 2.079(If set,)184 682.8 R F1(bash)
+4.579 E F0 2.079(checks that a command found in the hash table e)4.579 F
+2.08(xists before trying to)-.15 F -.15(exe)184 694.8 S(cute it.).15 E
(If a hashed command no longer e)5 E
-(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 694.8
-Q F0 .448(If set,)184 706.8 R F1(bash)2.948 E F0 .448
-(lists the status of an)2.948 F 2.949(ys)-.15 G .449
-(topped and running jobs before e)-2.949 F .449(xiting an interacti)-.15
-F -.15(ve)-.25 G 3.439(shell. If)184 718.8 R(an)3.439 E 3.439(yj)-.15 G
-.938(obs are running, this causes the e)-3.439 F .938
-(xit to be deferred until a second e)-.15 F .938(xit is)-.15 F 2.203
-(attempted without an interv)184 730.8 R 2.203(ening command \(see)-.15
-F/F3 9/Times-Bold@0 SF 2.203(JOB CONTR)4.703 F(OL)-.27 E F0(abo)4.453 E
--.15(ve)-.15 G 4.703(\). The).15 F(shell)4.704 E(GNU Bash-4.0)72 768 Q
-(2004 Apr 20)148.735 E(16)198.725 E 0 Cg EP
+(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 706.8
+Q F0 .449(If set,)184 718.8 R F1(bash)2.949 E F0 .449
+(lists the status of an)2.949 F 2.949(ys)-.15 G .448
+(topped and running jobs before e)-2.949 F .448(xiting an interacti)-.15
+F -.15(ve)-.25 G 3.438(shell. If)184 730.8 R(an)3.438 E 3.438(yj)-.15 G
+.938(obs are running, this causes the e)-3.438 F .938
+(xit to be deferred until a second e)-.15 F .939(xit is)-.15 F
+(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(16)198.725 E 0 Cg EP
%%Page: 17 17
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E(al)184 84 Q
--.1(wa)-.1 G(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G
-(obs are stopped.)-2.5 E/F1 10/Times-Bold@0 SF(checkwinsize)144 96 Q F0
-.797(If set,)184 108 R F1(bash)3.297 E F0 .797(checks the windo)3.297 F
-3.297(ws)-.25 G .796(ize after each command and, if necessary)-3.297 F
-3.296(,u)-.65 G .796(pdates the)-3.296 F -.25(va)184 120 S(lues of).25 E
-/F2 9/Times-Bold@0 SF(LINES)2.5 E F0(and)2.25 E F2(COLUMNS)2.5 E/F3 9
-/Times-Roman@0 SF(.)A F1(cmdhist)144 132 Q F0 1.202(If set,)6.11 F F1
-(bash)3.702 E F0 1.202(attempts to sa)3.702 F 1.502 -.15(ve a)-.2 H
-1.202(ll lines of a multiple-line command in the same history).15 F
-(entry)184 144 Q 5(.T)-.65 G(his allo)-5 E
-(ws easy re-editing of multi-line commands.)-.25 E F1(compat31)144 156 Q
-F0 .42(If set,)184 168 R F1(bash)2.92 E F0 .42(changes its beha)2.92 F
-.419(vior to that of v)-.2 F .419(ersion 3.1 with respect to quoted ar)
--.15 F(guments)-.18 E(to the)184 180 Q F1([[)2.5 E F0
-(conditional command')2.5 E(s)-.55 E F1(=~)2.5 E F0(operator)2.5 E(.)
--.55 E F1(compat32)144 192 Q F0 1.409(If set,)184 204 R F1(bash)3.909 E
-F0 1.409(changes its beha)3.909 F 1.409(vior to that of v)-.2 F 1.41
-(ersion 3.2 with respect to locale-speci\214c)-.15 F 1.266
-(string comparison when using the)184 216 R F1([[)3.766 E F0 1.266
-(conditional command')3.766 F(s)-.55 E F1(<)3.766 E F0(and)3.766 E F1(>)
-3.766 E F0 3.765(operators. Bash)3.765 F -.15(ve)184 228 S .512
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E 2.203
+(attempted without an interv)184 84 R 2.203(ening command \(see)-.15 F
+/F1 9/Times-Bold@0 SF 2.203(JOB CONTR)4.703 F(OL)-.27 E F0(abo)4.453 E
+-.15(ve)-.15 G 4.703(\). The).15 F(shell)4.703 E(al)184 96 Q -.1(wa)-.1
+G(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G
+(obs are stopped.)-2.5 E/F2 10/Times-Bold@0 SF(checkwinsize)144 108 Q F0
+.796(If set,)184 120 R F2(bash)3.296 E F0 .796(checks the windo)3.296 F
+3.296(ws)-.25 G .797(ize after each command and, if necessary)-3.296 F
+3.297(,u)-.65 G .797(pdates the)-3.297 F -.25(va)184 132 S(lues of).25 E
+F1(LINES)2.5 E F0(and)2.25 E F1(COLUMNS)2.5 E/F3 9/Times-Roman@0 SF(.)A
+F2(cmdhist)144 144 Q F0 1.202(If set,)6.11 F F2(bash)3.702 E F0 1.202
+(attempts to sa)3.702 F 1.502 -.15(ve a)-.2 H 1.202
+(ll lines of a multiple-line command in the same history).15 F(entry)184
+156 Q 5(.T)-.65 G(his allo)-5 E
+(ws easy re-editing of multi-line commands.)-.25 E F2(compat31)144 168 Q
+F0 .419(If set,)184 180 R F2(bash)2.919 E F0 .419(changes its beha)2.919
+F .419(vior to that of v)-.2 F .42(ersion 3.1 with respect to quoted ar)
+-.15 F(guments)-.18 E(to the)184 192 Q F2([[)2.5 E F0
+(conditional command')2.5 E(s)-.55 E F2(=~)2.5 E F0(operator)2.5 E(.)
+-.55 E F2(compat32)144 204 Q F0 1.41(If set,)184 216 R F2(bash)3.91 E F0
+1.41(changes its beha)3.91 F 1.409(vior to that of v)-.2 F 1.409
+(ersion 3.2 with respect to locale-speci\214c)-.15 F 1.265
+(string comparison when using the)184 228 R F2([[)3.766 E F0 1.266
+(conditional command')3.766 F(s)-.55 E F2(<)3.766 E F0(and)3.766 E F2(>)
+3.766 E F0 3.766(operators. Bash)3.766 F -.15(ve)184 240 S .513
(rsions prior to bash-4.1 use ASCII collation and).15 F/F4 10
-/Times-Italic@0 SF(str)3.012 E(cmp)-.37 E F0 .513
-(\(3\); bash-4.1 and later use the).19 F(current locale')184 240 Q 2.5
+/Times-Italic@0 SF(str)3.012 E(cmp)-.37 E F0 .512
+(\(3\); bash-4.1 and later use the).19 F(current locale')184 252 Q 2.5
(sc)-.55 G(ollation sequence and)-2.5 E F4(str)2.5 E(coll)-.37 E F0
-(\(3\).).51 E F1(compat40)144 252 Q F0 1.41(If set,)184 264 R F1(bash)
-3.91 E F0 1.41(changes its beha)3.91 F 1.409(vior to that of v)-.2 F
-1.409(ersion 4.0 with respect to locale-speci\214c)-.15 F .422
-(string comparison when using the)184 276 R F1([[)2.922 E F0 .422
-(conditional command')2.922 F(s)-.55 E F1(<)2.922 E F0(and)2.922 E F1(>)
-2.923 E F0 .423(operators \(see pre-)2.923 F(vious item\) and the ef)184
-288 Q(fect of interrupting a command list.)-.25 E F1(compat41)144 300 Q
-F0 1.444(If set,)184 312 R F1(bash)3.944 E F0 3.944(,w)C 1.443
+(\(3\).).51 E F2(compat40)144 264 Q F0 1.409(If set,)184 276 R F2(bash)
+3.909 E F0 1.409(changes its beha)3.909 F 1.409(vior to that of v)-.2 F
+1.41(ersion 4.0 with respect to locale-speci\214c)-.15 F .423
+(string comparison when using the)184 288 R F2([[)2.922 E F0 .422
+(conditional command')2.922 F(s)-.55 E F2(<)2.922 E F0(and)2.922 E F2(>)
+2.922 E F0 .422(operators \(see pre-)2.922 F(vious item\) and the ef)184
+300 Q(fect of interrupting a command list.)-.25 E F2(compat41)144 312 Q
+F0 1.443(If set,)184 324 R F2(bash)3.943 E F0 3.943(,w)C 1.444
(hen in posix mode, treats a single quote in a double-quoted parameter)
--3.944 F -.15(ex)184 324 S .958(pansion as a special character).15 F
-5.958(.T)-.55 G .959(he single quotes must match \(an e)-5.958 F -.15
-(ve)-.25 G 3.459(nn).15 G .959(umber\) and)-3.459 F .59
-(the characters between the single quotes are considered quoted.)184 336
-R .59(This is the beha)5.59 F .59(vior of)-.2 F .589
-(posix mode through v)184 348 R .589(ersion 4.1.)-.15 F .589(The def)
-5.589 F .589(ault bash beha)-.1 F .589(vior remains as in pre)-.2 F .59
-(vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 360 Q F1
-(complete_fullquote)144 372 Q F0 .654(If set,)184 384 R F1(bash)3.153 E
+-3.943 F -.15(ex)184 336 S .959(pansion as a special character).15 F
+5.959(.T)-.55 G .958(he single quotes must match \(an e)-5.959 F -.15
+(ve)-.25 G 3.458(nn).15 G .958(umber\) and)-3.458 F .59
+(the characters between the single quotes are considered quoted.)184 348
+R .59(This is the beha)5.59 F .59(vior of)-.2 F .59
+(posix mode through v)184 360 R .589(ersion 4.1.)-.15 F .589(The def)
+5.589 F .589(ault bash beha)-.1 F .589(vior remains as in pre)-.2 F .589
+(vious v)-.25 F(er)-.15 E(-)-.2 E(sions.)184 372 Q F2
+(complete_fullquote)144 384 Q F0 .653(If set,)184 396 R F2(bash)3.153 E
F0 .653(quotes all shell metacharacters in \214lenames and directory na\
-mes when per)3.153 F(-)-.2 E 1.524(forming completion.)184 396 R 1.524
-(If not set,)6.524 F F1(bash)4.024 E F0(remo)4.024 E -.15(ve)-.15 G
+mes when per)3.153 F(-)-.2 E 1.525(forming completion.)184 408 R 1.524
+(If not set,)6.525 F F2(bash)4.024 E F0(remo)4.024 E -.15(ve)-.15 G
4.024(sm).15 G 1.524(etacharacters such as the dollar sign)-4.024 F
2.667(from the set of characters that will be quoted in completed \214l\
-enames when these)184 408 R .028(metacharacters appear in shell v)184
-420 R .028(ariable references in w)-.25 F .029(ords to be completed.)-.1
-F .029(This means)5.029 F 1.073(that dollar signs in v)184 432 R 1.073
+enames when these)184 420 R .029(metacharacters appear in shell v)184
+432 R .028(ariable references in w)-.25 F .028(ords to be completed.)-.1
+F .028(This means)5.028 F 1.072(that dollar signs in v)184 444 R 1.073
(ariable names that e)-.25 F 1.073
(xpand to directories will not be quoted; ho)-.15 F(w-)-.25 E -2.15 -.25
-(ev e)184 444 T 1.922 -.4(r, a).25 H 1.422 -.15(ny d).4 H 1.123
+(ev e)184 456 T 1.923 -.4(r, a).25 H 1.423 -.15(ny d).4 H 1.123
(ollar signs appearing in \214lenames will not be quoted, either).15 F
-6.123(.T)-.55 G 1.123(his is acti)-6.123 F -.15(ve)-.25 G .59
+6.123(.T)-.55 G 1.122(his is acti)-6.123 F -.15(ve)-.25 G .59
(only when bash is using backslashes to quote completed \214lenames.)184
-456 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 468 Q
+468 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 480 Q
(ault, which is the def)-.1 E(ault bash beha)-.1 E(vior in v)-.2 E
-(ersions through 4.2.)-.15 E F1(dir)144 480 Q(expand)-.18 E F0 .486
-(If set,)184 492 R F1(bash)2.986 E F0 .486
+(ersions through 4.2.)-.15 E F2(dir)144 492 Q(expand)-.18 E F0 .487
+(If set,)184 504 R F2(bash)2.987 E F0 .486
(replaces directory names with the results of w)2.986 F .486(ord e)-.1 F
-.487(xpansion when perform-)-.15 F .18(ing \214lename completion.)184
-504 R .179(This changes the contents of the readline editing b)5.18 F
-(uf)-.2 E(fer)-.25 E 5.179(.I)-.55 G 2.679(fn)-5.179 G(ot)-2.679 E(set,)
-184 516 Q F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G
-(hat the user typed.)-2.5 E F1(dirspell)144 528 Q F0 .858(If set,)7.77 F
-F1(bash)3.358 E F0 .858
-(attempts spelling correction on directory names during w)3.358 F .859
+.486(xpansion when perform-)-.15 F .179(ing \214lename completion.)184
+516 R .179(This changes the contents of the readline editing b)5.179 F
+(uf)-.2 E(fer)-.25 E 5.18(.I)-.55 G 2.68(fn)-5.18 G(ot)-2.68 E(set,)184
+528 Q F2(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G
+(hat the user typed.)-2.5 E F2(dirspell)144 540 Q F0 .859(If set,)7.77 F
+F2(bash)3.359 E F0 .858
+(attempts spelling correction on directory names during w)3.359 F .858
(ord completion if)-.1 F
-(the directory name initially supplied does not e)184 540 Q(xist.)-.15 E
-F1(dotglob)144 552 Q F0 .165(If set,)7.77 F F1(bash)2.665 E F0 .165
+(the directory name initially supplied does not e)184 552 Q(xist.)-.15 E
+F2(dotglob)144 564 Q F0 .165(If set,)7.77 F F2(bash)2.665 E F0 .165
(includes \214lenames be)2.665 F .165(ginning with a `.)-.15 F 2.665('i)
-.7 G 2.665(nt)-2.665 G .165(he results of pathname e)-2.665 F
-(xpansion.)-.15 E F1(execfail)144 564 Q F0 1.386
-(If set, a non-interacti)7.79 F 1.686 -.15(ve s)-.25 H 1.386
+(xpansion.)-.15 E F2(execfail)144 576 Q F0 1.387
+(If set, a non-interacti)7.79 F 1.687 -.15(ve s)-.25 H 1.386
(hell will not e).15 F 1.386(xit if it cannot e)-.15 F -.15(xe)-.15 G
-1.387(cute the \214le speci\214ed as an).15 F(ar)184 576 Q
-(gument to the)-.18 E F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E
+1.386(cute the \214le speci\214ed as an).15 F(ar)184 588 Q
+(gument to the)-.18 E F2(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E
(An interacti)5 E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15
-E F1(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 588 Q F0
-.717(If set, aliases are e)184 600 R .717(xpanded as described abo)-.15
-F 1.017 -.15(ve u)-.15 H(nder).15 E F2(ALIASES)3.217 E F3(.)A F0 .716
-(This option is enabled)5.217 F(by def)184 612 Q(ault for interacti)-.1
-E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144 624 Q(ug)-.2 E F0
-(If set, beha)184 636 Q(vior intended for use by deb)-.2 E
-(uggers is enabled:)-.2 E F1(1.)184 648 Q F0(The)28.5 E F1<ad46>4.25 E
-F0 1.75(option to the)4.25 F F1(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251
-G 1.751(iltin displays the source \214le name and line).2 F
-(number corresponding to each function name supplied as an ar)220 660 Q
-(gument.)-.18 E F1(2.)184 672 Q F0 1.667(If the command run by the)28.5
-F F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167 F
-1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 684
-Q -.15(xe)-.15 G(cuted.).15 E F1(3.)184 696 Q F0 .84
-(If the command run by the)28.5 F F1(DEB)3.34 E(UG)-.1 E F0 .841
-(trap returns a v)3.341 F .841(alue of 2, and the shell is)-.25 F -.15
-(exe)220 708 S .488
+E F2(exec)2.5 E F0 -.1(fa)2.5 G(ils.).1 E F2(expand_aliases)144 600 Q F0
+.716(If set, aliases are e)184 612 R .717(xpanded as described abo)-.15
+F 1.017 -.15(ve u)-.15 H(nder).15 E F1(ALIASES)3.217 E F3(.)A F0 .717
+(This option is enabled)5.217 F(by def)184 624 Q(ault for interacti)-.1
+E .3 -.15(ve s)-.25 H(hells.).15 E F2(extdeb)144 636 Q(ug)-.2 E F0
+(If set, beha)184 648 Q(vior intended for use by deb)-.2 E
+(uggers is enabled:)-.2 E F2(1.)184 660 Q F0(The)28.5 E F2<ad46>4.251 E
+F0 1.751(option to the)4.251 F F2(declar)4.251 E(e)-.18 E F0 -.2(bu)
+4.251 G 1.751(iltin displays the source \214le name and line).2 F
+(number corresponding to each function name supplied as an ar)220 672 Q
+(gument.)-.18 E F2(2.)184 684 Q F0 1.667(If the command run by the)28.5
+F F2(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167 F
+1.667(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 696
+Q -.15(xe)-.15 G(cuted.).15 E F2(3.)184 708 Q F0 .841
+(If the command run by the)28.5 F F2(DEB)3.341 E(UG)-.1 E F0 .841
+(trap returns a v)3.341 F .84(alue of 2, and the shell is)-.25 F -.15
+(exe)220 720 S .488
(cuting in a subroutine \(a shell function or a shell script e).15 F
--.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1
-(sour)220 720 Q(ce)-.18 E F0 -.2(bu)2.5 G(iltins\), a call to).2 E F1
--.18(re)2.5 G(tur).18 E(n)-.15 E F0(is simulated.)2.5 E(GNU Bash-4.0)72
-768 Q(2004 Apr 20)148.735 E(17)198.725 E 0 Cg EP
+-.15(xe)-.15 G .488(cuted by the).15 F F2(.)2.988 E F0(or)2.988 E
+(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(17)198.725 E 0 Cg EP
%%Page: 18 18
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
-/Times-Bold@0 SF(4.)184 84 Q/F2 9/Times-Bold@0 SF -.27(BA)28.5 G
-(SH_ARGC).27 E F0(and)3.153 E F2 -.27(BA)3.403 G(SH_ARGV).27 E F0 .904
-(are updated as described in their descriptions)3.154 F(abo)220 96 Q
--.15(ve)-.15 G(.).15 E F1(5.)184 108 Q F0 1.359
+/Times-Bold@0 SF(sour)220 84 Q(ce)-.18 E F0 -.2(bu)2.5 G
+(iltins\), a call to).2 E F1 -.18(re)2.5 G(tur).18 E(n)-.15 E F0
+(is simulated.)2.5 E F1(4.)184 96 Q/F2 9/Times-Bold@0 SF -.27(BA)28.5 G
+(SH_ARGC).27 E F0(and)3.154 E F2 -.27(BA)3.404 G(SH_ARGV).27 E F0 .904
+(are updated as described in their descriptions)3.154 F(abo)220 108 Q
+-.15(ve)-.15 G(.).15 E F1(5.)184 120 Q F0 1.359
(Function tracing is enabled:)28.5 F 1.359
(command substitution, shell functions, and sub-)6.359 F(shells in)220
-120 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F3 10
+132 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E/F3 10
/Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1
(DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.)
-184 132 Q F0 .804(Error tracing is enabled:)28.5 F .805
-(command substitution, shell functions, and subshells)5.804 F(in)220 144
+184 144 Q F0 .805(Error tracing is enabled:)28.5 F .804
+(command substitution, shell functions, and subshells)5.805 F(in)220 156
Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F3
(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E F0(trap.)
-2.5 E F1(extglob)144 156 Q F0 .4(If set, the e)8.89 F .4
+2.5 E F1(extglob)144 168 Q F0 .4(If set, the e)8.89 F .4
(xtended pattern matching features described abo)-.15 F .7 -.15(ve u)
--.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 168 Q
-F0(are enabled.)2.5 E F1(extquote)144 180 Q F0 2.473(If set,)184 192 R
+-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 180 Q
+F0(are enabled.)2.5 E F1(extquote)144 192 Q F0 2.473(If set,)184 204 R
F1($)4.973 E F0<08>A F3(string)A F0 4.973<0861>C(nd)-4.973 E F1($)4.973
E F0(")A F3(string)A F0 4.973("q)C 2.473(uoting is performed within)
-4.973 F F1(${)4.973 E F3(par)A(ameter)-.15 E F1(})A F0 -.15(ex)4.973 G
-(pansions).15 E(enclosed in double quotes.)184 204 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 216 Q F0
-1.425(If set, patterns which f)7.77 F 1.425
-(ail to match \214lenames during pathname e)-.1 F 1.424
-(xpansion result in an)-.15 F -.15(ex)184 228 S(pansion error).15 E(.)
--.55 E F1 -.25(fo)144 240 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
-.936(If set, the suf)184 252 R<8c78>-.25 E .936(es speci\214ed by the)
+(pansions).15 E(enclosed in double quotes.)184 216 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 228 Q F0
+1.424(If set, patterns which f)7.77 F 1.425
+(ail to match \214lenames during pathname e)-.1 F 1.425
+(xpansion result in an)-.15 F -.15(ex)184 240 S(pansion error).15 E(.)
+-.55 E F1 -.25(fo)144 252 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
+.937(If set, the suf)184 264 R<8c78>-.25 E .936(es speci\214ed by the)
-.15 F F2(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936(ariable cause w)
--.25 F .937(ords to be ignored)-.1 F .32(when performing w)184 264 R .32
+-.25 F .936(ords to be ignored)-.1 F .32(when performing w)184 276 R .32
(ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G .32
-(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 2.947
-(pletions. See)184 276 R F2 .447(SHELL V)2.947 F(ARIABLES)-1.215 E F0
-(abo)2.697 E .747 -.15(ve f)-.15 H .448(or a description of).15 F F2
-(FIGNORE)2.948 E/F4 9/Times-Roman@0 SF(.)A F0 .448(This option is)4.948
-F(enabled by def)184 288 Q(ault.)-.1 E F1(globasciiranges)144 300 Q F0
-.806(If set, range e)184 312 R .806
-(xpressions used in pattern matching \(see)-.15 F F2 -.09(Pa)3.305 G
-(tter).09 E 3.055(nM)-.135 G(atching)-3.055 E F0(abo)3.055 E -.15(ve)
--.15 G 3.305(\)b).15 G(eha)-3.305 E -.15(ve)-.2 G 2.089
-(as if in the traditional C locale when performing comparisons.)184 324
-R 2.09(That is, the current)7.089 F(locale')184 336 Q 2.614(sc)-.55 G
-.114(ollating sequence is not tak)-2.614 F .113(en into account, so)-.1
-F F1(b)2.613 E F0 .113(will not collate between)2.613 F F1(A)2.613 E F0
-(and)2.613 E F1(B)184 348 Q F0 2.5(,a)C(nd upper)-2.5 E(-case and lo)-.2
+(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 2.948
+(pletions. See)184 288 R F2 .448(SHELL V)2.948 F(ARIABLES)-1.215 E F0
+(abo)2.698 E .748 -.15(ve f)-.15 H .448(or a description of).15 F F2
+(FIGNORE)2.947 E/F4 9/Times-Roman@0 SF(.)A F0 .447(This option is)4.947
+F(enabled by def)184 300 Q(ault.)-.1 E F1(globasciiranges)144 312 Q F0
+.805(If set, range e)184 324 R .806
+(xpressions used in pattern matching \(see)-.15 F F2 -.09(Pa)3.306 G
+(tter).09 E 3.056(nM)-.135 G(atching)-3.056 E F0(abo)3.056 E -.15(ve)
+-.15 G 3.306(\)b).15 G(eha)-3.306 E -.15(ve)-.2 G 2.089
+(as if in the traditional C locale when performing comparisons.)184 336
+R 2.089(That is, the current)7.089 F(locale')184 348 Q 2.613(sc)-.55 G
+.113(ollating sequence is not tak)-2.613 F .113(en into account, so)-.1
+F F1(b)2.613 E F0 .114(will not collate between)2.613 F F1(A)2.614 E F0
+(and)2.614 E F1(B)184 360 Q F0 2.5(,a)C(nd upper)-2.5 E(-case and lo)-.2
E(wer)-.25 E(-case ASCII characters will collate together)-.2 E(.)-.55 E
-F1(globstar)144 360 Q F0 .518(If set, the pattern)5 F F1(**)3.018 E F0
-.519(used in a pathname e)3.019 F .519(xpansion conte)-.15 F .519
-(xt will match all \214les and zero)-.15 F .432
-(or more directories and subdirectories.)184 372 R .431
-(If the pattern is follo)5.432 F .431(wed by a)-.25 F F1(/)2.931 E F0
-2.931(,o)C .431(nly directories)-2.931 F(and subdirectories match.)184
-384 Q F1(gnu_errfmt)144 396 Q F0(If set, shell error messages are writt\
-en in the standard GNU error message format.)184 408 Q F1(histappend)144
-420 Q F0 .676
+F1(globstar)144 372 Q F0 .519(If set, the pattern)5 F F1(**)3.019 E F0
+.519(used in a pathname e)3.019 F .519(xpansion conte)-.15 F .518
+(xt will match all \214les and zero)-.15 F .431
+(or more directories and subdirectories.)184 384 R .431
+(If the pattern is follo)5.431 F .432(wed by a)-.25 F F1(/)2.932 E F0
+2.932(,o)C .432(nly directories)-2.932 F(and subdirectories match.)184
+396 Q F1(gnu_errfmt)144 408 Q F0(If set, shell error messages are writt\
+en in the standard GNU error message format.)184 420 Q F1(histappend)144
+432 Q F0 .676
(If set, the history list is appended to the \214le named by the v)184
-432 R .676(alue of the)-.25 F F2(HISTFILE)3.177 E F0 -.25(va)2.927 G
-(ri-).25 E(able when the shell e)184 444 Q(xits, rather than o)-.15 E
--.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 456 Q(eedit)-.18
-E F0 .576(If set, and)184 468 R F1 -.18(re)3.076 G(adline).18 E F0 .575
-(is being used, a user is gi)3.076 F -.15(ve)-.25 G 3.075(nt).15 G .575
-(he opportunity to re-edit a f)-3.075 F .575(ailed his-)-.1 F
-(tory substitution.)184 480 Q F1(histv)144 492 Q(erify)-.1 E F0 .402
-(If set, and)184 504 R F1 -.18(re)2.903 G(adline).18 E F0 .403
+444 R .676(alue of the)-.25 F F2(HISTFILE)3.176 E F0 -.25(va)2.926 G
+(ri-).25 E(able when the shell e)184 456 Q(xits, rather than o)-.15 E
+-.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 468 Q(eedit)-.18
+E F0 .575(If set, and)184 480 R F1 -.18(re)3.075 G(adline).18 E F0 .575
+(is being used, a user is gi)3.075 F -.15(ve)-.25 G 3.075(nt).15 G .576
+(he opportunity to re-edit a f)-3.075 F .576(ailed his-)-.1 F
+(tory substitution.)184 492 Q F1(histv)144 504 Q(erify)-.1 E F0 .403
+(If set, and)184 516 R F1 -.18(re)2.903 G(adline).18 E F0 .403
(is being used, the results of history substitution are not immediately)
-2.903 F .662(passed to the shell parser)184 516 R 5.662(.I)-.55 G .661
-(nstead, the resulting line is loaded into the)-5.662 F F1 -.18(re)3.161
-G(adline).18 E F0(editing)3.161 E -.2(bu)184 528 S -.25(ff).2 G(er).25 E
+2.903 F .661(passed to the shell parser)184 528 R 5.661(.I)-.55 G .662
+(nstead, the resulting line is loaded into the)-5.661 F F1 -.18(re)3.162
+G(adline).18 E F0(editing)3.162 E -.2(bu)184 540 S -.25(ff).2 G(er).25 E
2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1
-(hostcomplete)144 540 Q F0 1.181(If set, and)184 552 R F1 -.18(re)3.681
-G(adline).18 E F0 1.181(is being used,)3.681 F F1(bash)3.682 E F0 1.182
-(will attempt to perform hostname completion)3.682 F 1.381(when a w)184
-564 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381
-(is being completed \(see)3.881 F F1(Completing)3.88 E F0(under)3.88 E
-F2(READLINE)3.88 E F0(abo)184 576 Q -.15(ve)-.15 G 2.5(\). This).15 F
-(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 588 Q F0(If set,)
-184 600 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)2.5 E F0
+(hostcomplete)144 552 Q F0 1.182(If set, and)184 564 R F1 -.18(re)3.682
+G(adline).18 E F0 1.182(is being used,)3.682 F F1(bash)3.682 E F0 1.181
+(will attempt to perform hostname completion)3.681 F 1.38(when a w)184
+576 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381
+(is being completed \(see)3.881 F F1(Completing)3.881 E F0(under)3.881 E
+F2(READLINE)3.881 E F0(abo)184 588 Q -.15(ve)-.15 G 2.5(\). This).15 F
+(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 600 Q F0(If set,)
+184 612 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)2.5 E F0
(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H(ogin shell e)
-.15 E(xits.)-.15 E F1(interacti)144 612 Q -.1(ve)-.1 G(_comments).1 E F0
-.33(If set, allo)184 624 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33
+.15 E(xits.)-.15 E F1(interacti)144 624 Q -.1(ve)-.1 G(_comments).1 E F0
+.33(If set, allo)184 636 R 2.83(waw)-.25 G .33(ord be)-2.93 F .33
(ginning with)-.15 F F1(#)2.83 E F0 .33(to cause that w)2.83 F .33
(ord and all remaining characters on)-.1 F .967
-(that line to be ignored in an interacti)184 636 R 1.267 -.15(ve s)-.25
+(that line to be ignored in an interacti)184 648 R 1.267 -.15(ve s)-.25
H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217 E -.15(ve)-.15
-G 3.467(\). This).15 F .967(option is)3.467 F(enabled by def)184 648 Q
-(ault.)-.1 E F1(lastpipe)144 660 Q F0 1.211
+G 3.467(\). This).15 F .968(option is)3.468 F(enabled by def)184 660 Q
+(ault.)-.1 E F1(lastpipe)144 672 Q F0 1.212
(If set, and job control is not acti)6.66 F -.15(ve)-.25 G 3.712(,t).15
G 1.212(he shell runs the last command of a pipeline not)-3.712 F -.15
-(exe)184 672 S(cuted in the background in the current shell en).15 E
-(vironment.)-.4 E F1(lithist)144 684 Q F0 .655(If set, and the)15.55 F
-F1(cmdhist)3.155 E F0 .654
+(exe)184 684 S(cuted in the background in the current shell en).15 E
+(vironment.)-.4 E F1(lithist)144 696 Q F0 .654(If set, and the)15.55 F
+F1(cmdhist)3.154 E F0 .654
(option is enabled, multi-line commands are sa)3.154 F -.15(ve)-.2 G
-3.154(dt).15 G 3.154(ot)-3.154 G .654(he history)-3.154 F
-(with embedded ne)184 696 Q
+3.155(dt).15 G 3.155(ot)-3.155 G .655(he history)-3.155 F
+(with embedded ne)184 708 Q
(wlines rather than using semicolon separators where possible.)-.25 E
(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(18)198.725 E 0 Cg EP
%%Page: 19 19
(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10
/Times-Bold@0 SF(login_shell)144 84 Q F0 .486
(The shell sets this option if it is started as a login shell \(see)184
-96 R/F2 9/Times-Bold@0 SF(INV)2.987 E(OCA)-.405 E(TION)-.855 E F0(abo)
-2.737 E -.15(ve)-.15 G 2.987(\). The).15 F -.25(va)184 108 S
-(lue may not be changed.).25 E F1(mailwar)144 120 Q(n)-.15 E F0 .815
-(If set, and a \214le that)184 132 R F1(bash)3.315 E F0 .814
-(is checking for mail has been accessed since the last time it)3.315 F
+96 R/F2 9/Times-Bold@0 SF(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)
+2.736 E -.15(ve)-.15 G 2.986(\). The).15 F -.25(va)184 108 S
+(lue may not be changed.).25 E F1(mailwar)144 120 Q(n)-.15 E F0 .814
+(If set, and a \214le that)184 132 R F1(bash)3.314 E F0 .815
+(is checking for mail has been accessed since the last time it)3.314 F
-.1(wa)184 144 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
(`The mail in)-.74 E/F3 10/Times-Italic@0 SF(mail\214le)2.5 E F0
(has been read')2.5 E 2.5('i)-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1
-(no_empty_cmd_completion)144 156 Q F0 .324(If set, and)184 168 R F1 -.18
-(re)2.824 G(adline).18 E F0 .324(is being used,)2.824 F F1(bash)2.824 E
-F0 .324(will not attempt to search the)2.824 F F2 -.666(PA)2.825 G(TH)
--.189 E F0 .325(for possible)2.575 F
+(no_empty_cmd_completion)144 156 Q F0 .325(If set, and)184 168 R F1 -.18
+(re)2.825 G(adline).18 E F0 .325(is being used,)2.825 F F1(bash)2.824 E
+F0 .324(will not attempt to search the)2.824 F F2 -.666(PA)2.824 G(TH)
+-.189 E F0 .324(for possible)2.574 F
(completions when completion is attempted on an empty line.)184 180 Q F1
-(nocaseglob)144 192 Q F0 .437(If set,)184 204 R F1(bash)2.937 E F0 .436
-(matches \214lenames in a case\255insensiti)2.937 F .736 -.15(ve f)-.25
-H .436(ashion when performing pathname).05 F -.15(ex)184 216 S
+(nocaseglob)144 192 Q F0 .436(If set,)184 204 R F1(bash)2.936 E F0 .436
+(matches \214lenames in a case\255insensiti)2.936 F .737 -.15(ve f)-.25
+H .437(ashion when performing pathname).05 F -.15(ex)184 216 S
(pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(abo)2.5 E
--.15(ve)-.15 G(\).).15 E F1(nocasematch)144 228 Q F0 1.193(If set,)184
-240 R F1(bash)3.693 E F0 1.194(matches patterns in a case\255insensiti)
-3.693 F 1.494 -.15(ve f)-.25 H 1.194(ashion when performing matching).05
+-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 228 Q F0 1.194(If set,)184
+240 R F1(bash)3.694 E F0 1.194(matches patterns in a case\255insensiti)
+3.694 F 1.493 -.15(ve f)-.25 H 1.193(ashion when performing matching).05
F(while e)184 252 Q -.15(xe)-.15 G(cuting).15 E F1(case)2.5 E F0(or)2.5
E F1([[)2.5 E F0(conditional commands.)2.5 E F1(nullglob)144 264 Q F0
-.855(If set,)184 276 R F1(bash)3.355 E F0(allo)3.355 E .855
-(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.354 G .854
-(thname Expansion).1 F F0(abo)3.354 E -.15(ve)-.15 G 3.354(\)t).15 G(o)
--3.354 E -.15(ex)184 288 S(pand to a null string, rather than themselv)
-.15 E(es.)-.15 E F1(pr)144 300 Q(ogcomp)-.18 E F0 .676
+.854(If set,)184 276 R F1(bash)3.354 E F0(allo)3.354 E .855
+(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)3.355 G .855
+(thname Expansion).1 F F0(abo)3.355 E -.15(ve)-.15 G 3.355(\)t).15 G(o)
+-3.355 E -.15(ex)184 288 S(pand to a null string, rather than themselv)
+.15 E(es.)-.15 E F1(pr)144 300 Q(ogcomp)-.18 E F0 .677
(If set, the programmable completion f)184 312 R .677(acilities \(see)
--.1 F F1(Pr)3.177 E .677(ogrammable Completion)-.18 F F0(abo)3.177 E
+-.1 F F1(Pr)3.176 E .676(ogrammable Completion)-.18 F F0(abo)3.176 E
-.15(ve)-.15 G(\)).15 E(are enabled.)184 324 Q
(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 336 Q(omptv)
--.18 E(ars)-.1 E F0 1.448(If set, prompt strings under)184 348 R 1.448
-(go parameter e)-.18 F 1.447(xpansion, command substitution, arithmetic)
--.15 F -.15(ex)184 360 S .17(pansion, and quote remo).15 F -.25(va)-.15
+-.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 348 R 1.448
+(go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic)
+-.15 F -.15(ex)184 360 S .171(pansion, and quote remo).15 F -.25(va)-.15
G 2.67(la).25 G .17(fter being e)-2.67 F .17(xpanded as described in)
--.15 F F2(PR)2.671 E(OMPTING)-.27 E F0(abo)2.421 E -.15(ve)-.15 G(.).15
-E(This option is enabled by def)184 372 Q(ault.)-.1 E F1 -.18(re)144 384
+-.15 F F2(PR)2.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15(ve)-.15 G(.).15 E
+(This option is enabled by def)184 372 Q(ault.)-.1 E F1 -.18(re)144 384
S(stricted_shell).18 E F0 1.069
(The shell sets this option if it is started in restricted mode \(see)
184 396 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 408 Q 4.178
1.678(This is not reset when the startup \214les are)6.678 F -.15(exe)
184 420 S(cuted, allo).15 E(wing the startup \214les to disco)-.25 E
-.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E
-F1(shift_v)144 432 Q(erbose)-.1 E F0 .502(If set, the)184 444 R F1
-(shift)3.002 E F0 -.2(bu)3.002 G .501
-(iltin prints an error message when the shift count e).2 F .501
+F1(shift_v)144 432 Q(erbose)-.1 E F0 .501(If set, the)184 444 R F1
+(shift)3.001 E F0 -.2(bu)3.001 G .501
+(iltin prints an error message when the shift count e).2 F .502
(xceeds the number)-.15 F(of positional parameters.)184 456 Q F1(sour)
-144 468 Q(cepath)-.18 E F0 .77(If set, the)184 480 R F1(sour)3.27 E(ce)
--.18 E F0(\()3.27 E F1(.)A F0 3.27(\)b)C .77(uiltin uses the v)-3.47 F
-.771(alue of)-.25 F F2 -.666(PA)3.271 G(TH)-.189 E F0 .771
-(to \214nd the directory containing the)3.021 F
-(\214le supplied as an ar)184 492 Q 2.5(gument. This)-.18 F
-(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 504 Q F0
-(If set, the)184 516 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E
-(xpands backslash-escape sequences by def)-.15 E(ault.)-.1 E F1(suspend)
-108 532.8 Q F0([)2.5 E F1<ad66>A F0(])A 1.002(Suspend the e)144 544.8 R
--.15(xe)-.15 G 1.002(cution of this shell until it recei).15 F -.15(ve)
--.25 G 3.501(sa).15 G F2(SIGCONT)A F0 3.501(signal. A)3.251 F 1.001
-(login shell cannot be)3.501 F .022(suspended; the)144 556.8 R F1<ad66>
-2.522 E F0 .022(option can be used to o)2.522 F -.15(ve)-.15 G .022
-(rride this and force the suspension.).15 F .023(The return status is)
-5.023 F 2.5(0u)144 568.8 S(nless the shell is a login shell and)-2.5 E
+144 468 Q(cepath)-.18 E F0 .771(If set, the)184 480 R F1(sour)3.271 E
+(ce)-.18 E F0(\()3.271 E F1(.)A F0 3.271(\)b)C .771(uiltin uses the v)
+-3.471 F .771(alue of)-.25 F F2 -.666(PA)3.27 G(TH)-.189 E F0 .77
+(to \214nd the directory containing the)3.02 F(\214le supplied as an ar)
+184 492 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E(ault.)
+-.1 E F1(xpg_echo)144 504 Q F0(If set, the)184 516 Q F1(echo)2.5 E F0
+-.2(bu)2.5 G(iltin e).2 E(xpands backslash-escape sequences by def)-.15
+E(ault.)-.1 E F1(suspend)108 532.8 Q F0([)2.5 E F1<ad66>A F0(])A 1.001
+(Suspend the e)144 544.8 R -.15(xe)-.15 G 1.001
+(cution of this shell until it recei).15 F -.15(ve)-.25 G 3.501(sa).15 G
+F2(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002(login shell cannot be)
+3.502 F .023(suspended; the)144 556.8 R F1<ad66>2.523 E F0 .023
+(option can be used to o)2.523 F -.15(ve)-.15 G .022
+(rride this and force the suspension.).15 F .022(The return status is)
+5.022 F 2.5(0u)144 568.8 S(nless the shell is a login shell and)-2.5 E
F1<ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5
E F1(test)108 585.6 Q F3 -.2(ex)2.5 G(pr).2 E F1([)108 597.6 Q F3 -.2
-(ex)2.5 G(pr).2 E F1(])2.5 E F0 .878
-(Return a status of 0 \(true\) or 1 \(f)6.77 F .877
-(alse\) depending on the e)-.1 F -.25(va)-.25 G .877
+(ex)2.5 G(pr).2 E F1(])2.5 E F0 .877
+(Return a status of 0 \(true\) or 1 \(f)6.77 F .878
+(alse\) depending on the e)-.1 F -.25(va)-.25 G .878
(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 609.6
S(pr).2 E F0 5.53(.E).73 G .53
(ach operator and operand must be a separate ar)-5.53 F 3.03
-(gument. Expressions)-.18 F .53(are composed of the)3.03 F 3.08
-(primaries described abo)144 621.6 R 3.38 -.15(ve u)-.15 H(nder).15 E F2
-(CONDITION)5.58 E 3.079(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
-F1(test)7.579 E F0 3.079(does not accept an)5.579 F(y)-.15 E
+(gument. Expressions)-.18 F .53(are composed of the)3.03 F 3.079
+(primaries described abo)144 621.6 R 3.379 -.15(ve u)-.15 H(nder).15 E
+F2(CONDITION)5.579 E 3.079(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF
+(.)A F1(test)7.579 E F0 3.08(does not accept an)5.58 F(y)-.15 E
(options, nor does it accept and ignore an ar)144 633.6 Q(gument of)-.18
-E F1<adad>2.5 E F0(as signifying the end of options.)2.5 E .785
-(Expressions may be combined using the follo)144 651.6 R .786
-(wing operators, listed in decreasing order of prece-)-.25 F 3.412
-(dence. The)144 663.6 R -.25(eva)3.412 G .912
-(luation depends on the number of ar).25 F .911(guments; see belo)-.18 F
-4.711 -.65(w. O)-.25 H .911(perator precedence is).65 F
+E F1<adad>2.5 E F0(as signifying the end of options.)2.5 E .786
+(Expressions may be combined using the follo)144 651.6 R .785
+(wing operators, listed in decreasing order of prece-)-.25 F 3.411
+(dence. The)144 663.6 R -.25(eva)3.411 G .911
+(luation depends on the number of ar).25 F .912(guments; see belo)-.18 F
+4.712 -.65(w. O)-.25 H .912(perator precedence is).65 F
(used when there are \214v)144 675.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G
(ore ar)-2.5 E(guments.)-.18 E F1(!)144 687.6 Q F3 -.2(ex)2.5 G(pr).2 E
F0 -.35(Tr)12.6 G(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E
E 2.5(2a)144 202.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
180 214.8 R .37(gument is)-.18 F F2(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
F .37(xpression is true if and only if the second ar)-.15 F .37
-(gument is null.)-.18 F .379(If the \214rst ar)180 226.8 R .38
-(gument is one of the unary conditional operators listed abo)-.18 F .68
--.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 SF(CONDI-)2.88 E(TION)180
-238.8 Q .553(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(,)A F0 .552
+(gument is null.)-.18 F .38(If the \214rst ar)180 226.8 R .38
+(gument is one of the unary conditional operators listed abo)-.18 F .679
+-.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 SF(CONDI-)2.879 E(TION)180
+238.8 Q .552(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(,)A F0 .552
(the e)2.802 F .552(xpression is true if the unary test is true.)-.15 F
.552(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 250.8 Q
(alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E
(If the second ar)5.236 F .236(gument is one of)-.18 F .855
(the binary conditional operators listed abo)180 286.8 R 1.155 -.15
(ve u)-.15 H(nder).15 E F3(CONDITION)3.355 E .855(AL EXPRESSIONS)-.18 F
-F4(,)A F0(the)3.104 E .578(result of the e)180 298.8 R .578(xpression i\
+F4(,)A F0(the)3.105 E .579(result of the e)180 298.8 R .578(xpression i\
s the result of the binary test using the \214rst and third ar)-.15 F
-(guments)-.18 E 1.333(as operands.)180 310.8 R(The)6.333 E F2<ad61>3.833
-E F0(and)3.833 E F2<ad6f>3.832 E F0 1.332
+(guments)-.18 E 1.332(as operands.)180 310.8 R(The)6.332 E F2<ad61>3.832
+E F0(and)3.832 E F2<ad6f>3.832 E F0 1.333
(operators are considered binary operators when there are)3.832 F .558
(three ar)180 322.8 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058
F .558(gument is)-.18 F F2(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F
.558(alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F
-(o-ar)-.1 E(gument)-.18 E .521(test using the second and third ar)180
-334.8 R 3.021(guments. If)-.18 F .521(the \214rst ar)3.021 F .52
-(gument is e)-.18 F(xactly)-.15 E F2(\()3.02 E F0 .52(and the third)3.02
-F(ar)180 346.8 Q .485(gument is e)-.18 F(xactly)-.15 E F2(\))2.985 E F0
-2.985(,t)C .485(he result is the one-ar)-2.985 F .485
+(o-ar)-.1 E(gument)-.18 E .52(test using the second and third ar)180
+334.8 R 3.021(guments. If)-.18 F .521(the \214rst ar)3.021 F .521
+(gument is e)-.18 F(xactly)-.15 E F2(\()3.021 E F0 .521(and the third)
+3.021 F(ar)180 346.8 Q .485(gument is e)-.18 F(xactly)-.15 E F2(\))2.985
+E F0 2.985(,t)C .485(he result is the one-ar)-2.985 F .485
(gument test of the second ar)-.18 F 2.985(gument. Other)-.18 F(-)-.2 E
(wise, the e)180 358.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144
-370.8 S -.18(rg)-2.5 G(uments).18 E .385(If the \214rst ar)180 382.8 R
-.385(gument is)-.18 F F2(!)2.885 E F0 2.885(,t)C .385
-(he result is the ne)-2.885 F -.05(ga)-.15 G .384(tion of the three-ar)
-.05 F .384(gument e)-.18 F .384(xpression com-)-.15 F 1.647
+370.8 S -.18(rg)-2.5 G(uments).18 E .384(If the \214rst ar)180 382.8 R
+.384(gument is)-.18 F F2(!)2.884 E F0 2.885(,t)C .385
+(he result is the ne)-2.885 F -.05(ga)-.15 G .385(tion of the three-ar)
+.05 F .385(gument e)-.18 F .385(xpression com-)-.15 F 1.648
(posed of the remaining ar)180 394.8 R 4.147(guments. Otherwise,)-.18 F
-1.647(the e)4.147 F 1.648(xpression is parsed and e)-.15 F -.25(va)-.25
+1.647(the e)4.147 F 1.647(xpression is parsed and e)-.15 F -.25(va)-.25
G(luated).25 E(according to precedence using the rules listed abo)180
406.8 Q -.15(ve)-.15 G(.).15 E 2.5(5o)144 418.8 S 2.5(rm)-2.5 G(ore ar)
-2.5 E(guments)-.18 E 1.635(The e)180 430.8 R 1.635
1.229(Print the accumulated user and system times for the shell and for\
processes run from the shell.)13.23 F(The return status is 0.)144 489.6
Q F2(trap)108 506.4 Q F0([)2.5 E F2(\255lp)A F0 2.5(][)C([)-2.5 E F1(ar)
-A(g)-.37 E F0(])A F1(sigspec)2.5 E F0(...])2.5 E .703(The command)144
-518.4 R F1(ar)3.533 E(g)-.37 E F0 .703(is to be read and e)3.423 F -.15
-(xe)-.15 G .702(cuted when the shell recei).15 F -.15(ve)-.25 G 3.202
-(ss).15 G(ignal\(s\))-3.202 E F1(sigspec)3.202 E F0 5.702(.I).31 G(f)
--5.702 E F1(ar)3.532 E(g)-.37 E F0(is)3.422 E .608
+A(g)-.37 E F0(])A F1(sigspec)2.5 E F0(...])2.5 E .702(The command)144
+518.4 R F1(ar)3.532 E(g)-.37 E F0 .702(is to be read and e)3.422 F -.15
+(xe)-.15 G .702(cuted when the shell recei).15 F -.15(ve)-.25 G 3.203
+(ss).15 G(ignal\(s\))-3.203 E F1(sigspec)3.203 E F0 5.703(.I).31 G(f)
+-5.703 E F1(ar)3.533 E(g)-.37 E F0(is)3.423 E .609
(absent \(and there is a single)144 530.4 R F1(sigspec)3.108 E F0 3.108
(\)o)C(r)-3.108 E F2<ad>3.108 E F0 3.108(,e)C .608
(ach speci\214ed signal is reset to its original disposition)-3.108 F
-.659(\(the v)144 542.4 R .659(alue it had upon entrance to the shell\).)
--.25 F(If)5.658 E F1(ar)3.488 E(g)-.37 E F0 .658
+.658(\(the v)144 542.4 R .658(alue it had upon entrance to the shell\).)
+-.25 F(If)5.658 E F1(ar)3.488 E(g)-.37 E F0 .659
(is the null string the signal speci\214ed by each)3.378 F F1(sigspec)
-144.34 554.4 Q F0 .58(is ignored by the shell and by the commands it in)
-3.39 F -.2(vo)-.4 G -.1(ke).2 G 3.081(s. If).1 F F1(ar)3.411 E(g)-.37 E
-F0 .581(is not present and)3.301 F F2<ad70>3.081 E F0(has)3.081 E 1.215
+144.34 554.4 Q F0 .581
+(is ignored by the shell and by the commands it in)3.391 F -.2(vo)-.4 G
+-.1(ke).2 G 3.08(s. If).1 F F1(ar)3.41 E(g)-.37 E F0 .58
+(is not present and)3.3 F F2<ad70>3.08 E F0(has)3.08 E 1.214
(been supplied, then the trap commands associated with each)144 566.4 R
-F1(sigspec)4.054 E F0 1.214(are displayed.)4.024 F 1.214(If no ar)6.214
+F1(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215
F(gu-)-.18 E .86(ments are supplied or if only)144 578.4 R F2<ad70>3.36
E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F2(trap)3.36 E F0 .86
(prints the list of commands associated with each)3.36 F 2.83
(signal. The)144 590.4 R F2<ad6c>2.83 E F0 .33(option causes the shell \
-to print a list of signal names and their corresponding num-)2.83 F 4.31
-(bers. Each)144 602.4 R F1(sigspec)4.65 E F0 1.811
-(is either a signal name de\214ned in <)4.62 F F1(signal.h)A F0 1.811
-(>, or a signal number)B 6.811(.S)-.55 G(ignal)-6.811 E
+to print a list of signal names and their corresponding num-)2.83 F
+4.311(bers. Each)144 602.4 R F1(sigspec)4.651 E F0 1.811
+(is either a signal name de\214ned in <)4.621 F F1(signal.h)A F0 1.81
+(>, or a signal number)B 6.81(.S)-.55 G(ignal)-6.81 E
(names are case insensiti)144 614.4 Q .3 -.15(ve a)-.25 H(nd the).15 E
-F3(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.649(If a)144 632.4 R F1
-(sigspec)4.489 E F0(is)4.459 E F3(EXIT)4.149 E F0 1.649
-(\(0\) the command)3.899 F F1(ar)4.479 E(g)-.37 E F0 1.649(is e)4.369 F
--.15(xe)-.15 G 1.649(cuted on e).15 F 1.648(xit from the shell.)-.15 F
-1.648(If a)6.648 F F1(sigspec)4.488 E F0(is)4.458 E F3(DEB)144 644.4 Q
-(UG)-.09 E F4(,)A F0 1.167(the command)3.417 F F1(ar)3.997 E(g)-.37 E F0
-1.167(is e)3.887 F -.15(xe)-.15 G 1.167(cuted before e).15 F -.15(ve)
--.25 G(ry).15 E F1 1.168(simple command)3.667 F F0(,)A F1(for)3.668 E F0
-(command,)3.668 E F1(case)3.668 E F0(com-)3.668 E(mand,)144 656.4 Q F1
-(select)2.647 E F0 .147(command, e)2.647 F -.15(ve)-.25 G .147
-(ry arithmetic).15 F F1(for)2.647 E F0 .146
-(command, and before the \214rst command e)2.647 F -.15(xe)-.15 G .146
-(cutes in a).15 F .145(shell function \(see)144 668.4 R F3 .145
-(SHELL GRAMMAR)2.645 F F0(abo)2.395 E -.15(ve)-.15 G 2.646(\). Refer).15
-F .146(to the description of the)2.646 F F2(extdeb)2.646 E(ug)-.2 E F0
-.146(option to)2.646 F(the)144 680.4 Q F2(shopt)3.201 E F0 -.2(bu)3.201
-G .7(iltin for details of its ef).2 F .7(fect on the)-.25 F F2(DEB)3.2 E
-(UG)-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F1(sigspec)3.54 E F0(is)3.51 E
-F3(RETURN)3.2 E F4(,)A F0 .7(the com-)2.95 F(mand)144 692.4 Q F1(ar)
-3.473 E(g)-.37 E F0 .643(is e)3.363 F -.15(xe)-.15 G .643
+F3(SIG)2.5 E F0(pre\214x is optional.)2.25 E 1.648(If a)144 632.4 R F1
+(sigspec)4.488 E F0(is)4.458 E F3(EXIT)4.148 E F0 1.648
+(\(0\) the command)3.898 F F1(ar)4.479 E(g)-.37 E F0 1.649(is e)4.369 F
+-.15(xe)-.15 G 1.649(cuted on e).15 F 1.649(xit from the shell.)-.15 F
+1.649(If a)6.649 F F1(sigspec)4.489 E F0(is)4.459 E F3(DEB)144 644.4 Q
+(UG)-.09 E F4(,)A F0 1.168(the command)3.418 F F1(ar)3.998 E(g)-.37 E F0
+1.168(is e)3.888 F -.15(xe)-.15 G 1.167(cuted before e).15 F -.15(ve)
+-.25 G(ry).15 E F1 1.167(simple command)3.667 F F0(,)A F1(for)3.667 E F0
+(command,)3.667 E F1(case)3.667 E F0(com-)3.667 E(mand,)144 656.4 Q F1
+(select)2.646 E F0 .146(command, e)2.646 F -.15(ve)-.25 G .146
+(ry arithmetic).15 F F1(for)2.646 E F0 .147
+(command, and before the \214rst command e)2.646 F -.15(xe)-.15 G .147
+(cutes in a).15 F .146(shell function \(see)144 668.4 R F3 .146
+(SHELL GRAMMAR)2.646 F F0(abo)2.396 E -.15(ve)-.15 G 2.646(\). Refer).15
+F .146(to the description of the)2.646 F F2(extdeb)2.645 E(ug)-.2 E F0
+.145(option to)2.645 F(the)144 680.4 Q F2(shopt)3.2 E F0 -.2(bu)3.2 G .7
+(iltin for details of its ef).2 F .7(fect on the)-.25 F F2(DEB)3.2 E(UG)
+-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F1(sigspec)3.54 E F0(is)3.51 E F3
+(RETURN)3.2 E F4(,)A F0 .701(the com-)2.951 F(mand)144 692.4 Q F1(ar)
+3.474 E(g)-.37 E F0 .644(is e)3.364 F -.15(xe)-.15 G .643
(cuted each time a shell function or a script e).15 F -.15(xe)-.15 G
-.644(cuted with the).15 F F2(.)3.144 E F0(or)3.144 E F2(sour)3.144 E(ce)
--.18 E F0 -.2(bu)3.144 G(iltins).2 E(\214nishes e)144 704.4 Q -.15(xe)
--.15 G(cuting.).15 E .929(If a)144 722.4 R F1(sigspec)3.769 E F0(is)
-3.739 E F3(ERR)3.429 E F4(,)A F0 .929(the command)3.179 F F1(ar)3.759 E
+.643(cuted with the).15 F F2(.)3.143 E F0(or)3.143 E F2(sour)3.143 E(ce)
+-.18 E F0 -.2(bu)3.143 G(iltins).2 E(\214nishes e)144 704.4 Q -.15(xe)
+-.15 G(cuting.).15 E .928(If a)144 722.4 R F1(sigspec)3.768 E F0(is)
+3.738 E F3(ERR)3.429 E F4(,)A F0 .929(the command)3.179 F F1(ar)3.759 E
(g)-.37 E F0 .929(is e)3.649 F -.15(xe)-.15 G .929(cuted whene).15 F
--.15(ve)-.25 G 3.429(ras).15 G .928(imple command has a non\255zero)
+-.15(ve)-.25 G 3.429(ras).15 G .929(imple command has a non\255zero)
-3.429 F(GNU Bash-4.0)72 768 Q(2004 Apr 20)148.735 E(20)198.725 E 0 Cg
EP
%%Page: 21 21
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E -.15(ex)144
-84 S 1.008(it status, subject to the follo).15 F 1.009(wing conditions.)
+84 S 1.009(it status, subject to the follo).15 F 1.009(wing conditions.)
-.25 F(The)6.009 E/F1 9/Times-Bold@0 SF(ERR)3.509 E F0 1.009
-(trap is not e)3.259 F -.15(xe)-.15 G 1.009(cuted if the f).15 F 1.009
+(trap is not e)3.259 F -.15(xe)-.15 G 1.008(cuted if the f).15 F 1.008
(ailed com-)-.1 F .324
(mand is part of the command list immediately follo)144 96 R .324
(wing a)-.25 F/F2 10/Times-Bold@0 SF(while)2.824 E F0(or)2.824 E F2
(Signals ignored upon entry to the shell cannot be trapped or reset.)144
138 R -.35(Tr)6.095 G 1.095(apped signals that are not).35 F .662
(being ignored are reset to their original v)144 150 R .662
-(alues in a subshell or subshell en)-.25 F .662(vironment when one is)
+(alues in a subshell or subshell en)-.25 F .661(vironment when one is)
-.4 F 2.5(created. The)144 162 R(return status is f)2.5 E(alse if an)-.1
E(y)-.15 E F3(sigspec)2.84 E F0(is in)2.81 E -.25(va)-.4 G
(lid; otherwise).25 E F2(trap)2.5 E F0(returns true.)2.5 E F2(type)108
178.8 Q F0([)2.5 E F2(\255aftpP)A F0(])A F3(name)2.5 E F0([)2.5 E F3
-(name)A F0(...])2.5 E -.4(Wi)144 190.8 S .174
-(th no options, indicate ho).4 F 2.674(we)-.25 G(ach)-2.674 E F3(name)
-3.034 E F0 -.1(wo)2.854 G .173
-(uld be interpreted if used as a command name.).1 F .173(If the)5.173 F
-F2<ad74>144 202.8 Q F0 .842(option is used,)3.342 F F2(type)3.342 E F0
+(name)A F0(...])2.5 E -.4(Wi)144 190.8 S .173
+(th no options, indicate ho).4 F 2.673(we)-.25 G(ach)-2.673 E F3(name)
+3.033 E F0 -.1(wo)2.853 G .174
+(uld be interpreted if used as a command name.).1 F .174(If the)5.174 F
+F2<ad74>144 202.8 Q F0 .843(option is used,)3.343 F F2(type)3.343 E F0
.843(prints a string which is one of)3.343 F F3(alias)3.343 E F0(,).27 E
F3 -.1(ke)3.343 G(ywor)-.2 E(d)-.37 E F0(,).77 E F3(function)3.343 E F0
-(,).24 E F3 -.2(bu)3.343 G(iltin).2 E F0 3.343(,o).24 G(r)-3.343 E F3
-(\214le)5.253 E F0(if)3.523 E F3(name)144.36 214.8 Q F0 .087
-(is an alias, shell reserv)2.767 F .087(ed w)-.15 F .087
-(ord, function, b)-.1 F .086(uiltin, or disk \214le, respecti)-.2 F -.15
-(ve)-.25 G(ly).15 E 5.086(.I)-.65 G 2.586(ft)-5.086 G(he)-2.586 E F3
-(name)2.946 E F0 .086(is not)2.766 F .118
+(,).24 E F3 -.2(bu)3.342 G(iltin).2 E F0 3.342(,o).24 G(r)-3.342 E F3
+(\214le)5.252 E F0(if)3.522 E F3(name)144.36 214.8 Q F0 .086
+(is an alias, shell reserv)2.766 F .086(ed w)-.15 F .086
+(ord, function, b)-.1 F .087(uiltin, or disk \214le, respecti)-.2 F -.15
+(ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F3
+(name)2.947 E F0 .087(is not)2.767 F .119
(found, then nothing is printed, and an e)144 226.8 R .118
-(xit status of f)-.15 F .118(alse is returned.)-.1 F .119(If the)5.119 F
-F2<ad70>2.619 E F0 .119(option is used,)2.619 F F2(type)2.619 E F0 .855
+(xit status of f)-.15 F .118(alse is returned.)-.1 F .118(If the)5.118 F
+F2<ad70>2.618 E F0 .118(option is used,)2.618 F F2(type)2.618 E F0 .855
(either returns the name of the disk \214le that w)144 238.8 R .855
(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F3(name)3.715 E F0
-.855(were speci\214ed as a com-)3.535 F .64(mand name, or nothing if)144
-250.8 R/F4 10/Courier@0 SF .64(type -t name)3.14 F F0 -.1(wo)3.14 G .641
-(uld not return).1 F F3(\214le)3.141 E F0 5.641(.T).18 G(he)-5.641 E F2
-<ad50>3.141 E F0 .641(option forces a)3.141 F F1 -.666(PA)3.141 G(TH)
--.189 E F0 .113(search for each)144 262.8 R F3(name)2.613 E F0 2.613(,e)
-C -.15(ve)-2.863 G 2.613(ni).15 G(f)-2.613 E F4 .113(type -t name)2.613
-F F0 -.1(wo)2.613 G .113(uld not return).1 F F3(\214le)2.613 E F0 5.113
-(.I).18 G 2.613(fa)-5.113 G .112(command is hashed,)-.001 F F2<ad70>
-2.612 E F0(and)144 274.8 Q F2<ad50>3.23 E F0 .73(print the hashed v)3.23
-F .731
-(alue, which is not necessarily the \214le that appears \214rst in)-.25
-F F1 -.666(PA)3.231 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .731
-(If the)5.231 F F2<ad61>144 286.8 Q F0 1.749(option is used,)4.249 F F2
+.855(were speci\214ed as a com-)3.535 F .641(mand name, or nothing if)
+144 250.8 R/F4 10/Courier@0 SF .641(type -t name)3.141 F F0 -.1(wo)3.141
+G .641(uld not return).1 F F3(\214le)3.14 E F0 5.64(.T).18 G(he)-5.64 E
+F2<ad50>3.14 E F0 .64(option forces a)3.14 F F1 -.666(PA)3.14 G(TH)-.189
+E F0 .112(search for each)144 262.8 R F3(name)2.612 E F0 2.612(,e)C -.15
+(ve)-2.862 G 2.613(ni).15 G(f)-2.613 E F4 .113(type -t name)2.613 F F0
+-.1(wo)2.613 G .113(uld not return).1 F F3(\214le)2.613 E F0 5.113(.I)
+.18 G 2.613(fac)-5.113 G .113(ommand is hashed,)-2.613 F F2<ad70>2.613 E
+F0(and)144 274.8 Q F2<ad50>3.231 E F0 .731(print the hashed v)3.231 F
+.73(alue, which is not necessarily the \214le that appears \214rst in)
+-.25 F F1 -.666(PA)3.23 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .73
+(If the)5.23 F F2<ad61>144 286.8 Q F0 1.748(option is used,)4.248 F F2
(type)4.248 E F0 1.748(prints all of the places that contain an e)4.248
-F -.15(xe)-.15 G 1.748(cutable named).15 F F3(name)4.248 E F0 6.748(.T)
-.18 G(his)-6.748 E .744
+F -.15(xe)-.15 G 1.748(cutable named).15 F F3(name)4.249 E F0 6.749(.T)
+.18 G(his)-6.749 E .744
(includes aliases and functions, if and only if the)144 298.8 R F2<ad70>
-3.244 E F0 .744(option is not also used.)3.244 F .744
+3.244 E F0 .744(option is not also used.)3.244 F .743
(The table of hashed)5.744 F 1.223(commands is not consulted when using)
144 310.8 R F2<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F2<ad66>3.723 E F0
-1.223(option suppresses shell function lookup, as)3.723 F .325(with the)
-144 322.8 R F2(command)2.825 E F0 -.2(bu)2.825 G(iltin.).2 E F2(type)
-5.325 E F0 .325(returns true if all of the ar)2.825 F .326
-(guments are found, f)-.18 F .326(alse if an)-.1 F 2.826(ya)-.15 G .326
-(re not)-2.826 F(found.)144 334.8 Q F2(ulimit)108 351.6 Q F0([)2.5 E F2
+1.223(option suppresses shell function lookup, as)3.723 F .326(with the)
+144 322.8 R F2(command)2.826 E F0 -.2(bu)2.826 G(iltin.).2 E F2(type)
+5.326 E F0 .326(returns true if all of the ar)2.826 F .325
+(guments are found, f)-.18 F .325(alse if an)-.1 F 2.825(ya)-.15 G .325
+(re not)-2.825 F(found.)144 334.8 Q F2(ulimit)108 351.6 Q F0([)2.5 E F2
(\255HST)A(abcde\214lmnpqrstuvx)-.92 E F0([)2.5 E F3(limit)A F0(]])A
-(Pro)144 363.6 Q .244(vides control o)-.15 F -.15(ve)-.15 G 2.744(rt).15
-G .244(he resources a)-2.744 F -.25(va)-.2 G .244
+(Pro)144 363.6 Q .243(vides control o)-.15 F -.15(ve)-.15 G 2.743(rt).15
+G .243(he resources a)-2.743 F -.25(va)-.2 G .244
(ilable to the shell and to processes started by it, on systems).25 F
-.943(that allo)144 375.6 R 3.443(ws)-.25 G .943(uch control.)-3.443 F
-(The)5.943 E F2<ad48>3.443 E F0(and)3.443 E F2<ad53>3.444 E F0 .944
+.944(that allo)144 375.6 R 3.444(ws)-.25 G .944(uch control.)-3.444 F
+(The)5.944 E F2<ad48>3.444 E F0(and)3.444 E F2<ad53>3.444 E F0 .943
(options specify that the hard or soft limit is set for the)3.444 F(gi)
-144 387.6 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
+144 387.6 Q -.15(ve)-.25 G 2.708(nr).15 G 2.708(esource. A)-2.708 F .208
(hard limit cannot be increased by a non-root user once it is set; a so\
-ft limit may)2.709 F .425(be increased up to the v)144 399.6 R .425
-(alue of the hard limit.)-.25 F .426(If neither)5.425 F F2<ad48>2.926 E
-F0(nor)2.926 E F2<ad53>2.926 E F0 .426
-(is speci\214ed, both the soft and)2.926 F .139(hard limits are set.)144
+ft limit may)2.708 F .426(be increased up to the v)144 399.6 R .426
+(alue of the hard limit.)-.25 F .425(If neither)5.426 F F2<ad48>2.925 E
+F0(nor)2.925 E F2<ad53>2.925 E F0 .425
+(is speci\214ed, both the soft and)2.925 F .139(hard limits are set.)144
411.6 R .139(The v)5.139 F .139(alue of)-.25 F F3(limit)2.729 E F0 .139
(can be a number in the unit speci\214ed for the resource or one)3.319 F
-.741(of the special v)144 423.6 R(alues)-.25 E F2(hard)3.241 E F0(,)A F2
+.742(of the special v)144 423.6 R(alues)-.25 E F2(hard)3.242 E F0(,)A F2
(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F2(unlimited)3.241 E F0 3.241(,w)
C .741(hich stand for the current hard limit, the current)-3.241 F .78
(soft limit, and no limit, respecti)144 435.6 R -.15(ve)-.25 G(ly).15 E
5.78(.I)-.65 G(f)-5.78 E F3(limit)3.37 E F0 .78
(is omitted, the current v)3.96 F .78(alue of the soft limit of the)-.25
-F .498(resource is printed, unless the)144 447.6 R F2<ad48>2.999 E F0
-.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .499
+F .499(resource is printed, unless the)144 447.6 R F2<ad48>2.999 E F0
+.499(option is gi)2.999 F -.15(ve)-.25 G 2.999(n. When).15 F .498
(more than one resource is speci\214ed, the)2.999 F
(limit name and unit are printed before the v)144 459.6 Q 2.5
(alue. Other)-.25 F(options are interpreted as follo)2.5 E(ws:)-.25 E F2
(The maximum resident set size \(man)21.97 E 2.5(ys)-.15 G
(ystems do not honor this limit\))-2.5 E F2<ad6e>144 579.6 Q F0 .791(Th\
e maximum number of open \214le descriptors \(most systems do not allo)
-24.74 F 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F(be set\))180
-591.6 Q F2<ad70>144 603.6 Q F0
+24.74 F 3.291(wt)-.25 G .791(his v)-3.291 F .791(alue to)-.25 F
+(be set\))180 591.6 Q F2<ad70>144 603.6 Q F0
(The pipe size in 512-byte blocks \(this may not be set\))24.74 E F2
<ad71>144 615.6 Q F0
(The maximum number of bytes in POSIX message queues)24.74 E F2<ad72>144
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 290.48
-(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .044
-(no option is gi)144 84 R -.15(ve)-.25 G .044(n, then).15 F/F1 10
-/Times-Bold@0 SF<ad66>2.544 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045
-G .045(lues are in 1024-byte increments, e)1.11 F .045(xcept for)-.15 F
-F1<ad74>2.545 E F0 2.545(,w)C .045(hich is)-2.545 F .403(in seconds;)144
-96 R F1<ad70>2.903 E F0 2.903(,w)C .402
-(hich is in units of 512-byte blocks; and)-2.903 F F1<ad54>2.902 E F0(,)
+(TINS\(1\) B)-.92 F(ASH_B)-.35 E(UIL)-.1 E(TINS\(1\))-.92 E .045
+(no option is gi)144 84 R -.15(ve)-.25 G .045(n, then).15 F/F1 10
+/Times-Bold@0 SF<ad66>2.545 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045
+G .045(lues are in 1024-byte increments, e)1.11 F .044(xcept for)-.15 F
+F1<ad74>2.544 E F0 2.544(,w)C .044(hich is)-2.544 F .402(in seconds;)144
+96 R F1<ad70>2.902 E F0 2.902(,w)C .402
+(hich is in units of 512-byte blocks; and)-2.902 F F1<ad54>2.902 E F0(,)
A F1<ad62>2.902 E F0(,)A F1<ad6e>2.902 E F0 2.902(,a)C(nd)-2.902 E F1
-<ad75>2.902 E F0 2.902(,w)C .402(hich are unscaled)-2.902 F -.25(va)144
-108 S 3.082(lues. The).25 F .583(return status is 0 unless an in)3.083 F
+<ad75>2.903 E F0 2.903(,w)C .403(hich are unscaled)-2.903 F -.25(va)144
+108 S 3.083(lues. The).25 F .583(return status is 0 unless an in)3.083 F
-.25(va)-.4 G .583(lid option or ar).25 F .583
(gument is supplied, or an error occurs)-.18 F(while setting a ne)144
120 Q 2.5(wl)-.25 G(imit.)-2.5 E F1(umask)108 136.8 Q F0([)2.5 E F1
(gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\
therwise it is interpreted as a symbolic mode mask similar to that acce\
pted by)144 160.8 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-172.8 Q F2(mode)3.263 E F0 .382(is omitted, the current v)3.063 F .382
+172.8 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
(alue of the mask is printed.)-.25 F(The)5.382 E F1<ad53>2.882 E F0 .382
(option causes the mask to be)2.882 F .547
(printed in symbolic form; the def)144 184.8 R .547
(ault output is an octal number)-.1 F 5.547(.I)-.55 G 3.047(ft)-5.547 G
(he)-3.047 E F1<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F2
-(mode)144.38 196.8 Q F0 .552
-(is omitted, the output is in a form that may be reused as input.)3.232
-F .551(The return status is 0 if the)5.551 F(mode w)144 208.8 Q
+(mode)144.38 196.8 Q F0 .551
+(is omitted, the output is in a form that may be reused as input.)3.231
+F .552(The return status is 0 if the)5.552 F(mode w)144 208.8 Q
(as successfully changed or if no)-.1 E F2(mode)2.5 E F0(ar)2.5 E
(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F1
(unalias)108 225.6 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
F(remo)144 249.6 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
(alue is true unless a supplied)-.25 E F2(name)2.86 E F0
(is not a de\214ned alias.)2.68 E F1(unset)108 266.4 Q F0<5bad>2.5 E F1
-(fv)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E -.15(Fo)144 278.4 S 3.828
-(re).15 G(ach)-3.828 E F2(name)3.828 E F0 3.828(,r).18 G(emo)-3.828 E
-1.628 -.15(ve t)-.15 H 1.328(he corresponding v).15 F 1.327
-(ariable or function.)-.25 F 1.327(If the)6.327 F F1<ad76>3.827 E F0
-1.327(option is gi)3.827 F -.15(ve)-.25 G 1.327(n, each).15 F F2(name)
-144.36 290.4 Q F0 1.55(refers to a shell v)4.23 F 1.551
+(fv)A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E -.15(Fo)144 278.4 S 3.827
+(re).15 G(ach)-3.827 E F2(name)3.827 E F0 3.827(,r).18 G(emo)-3.827 E
+1.627 -.15(ve t)-.15 H 1.327(he corresponding v).15 F 1.327
+(ariable or function.)-.25 F 1.327(If the)6.327 F F1<ad76>3.828 E F0
+1.328(option is gi)3.828 F -.15(ve)-.25 G 1.328(n, each).15 F F2(name)
+144.36 290.4 Q F0 1.551(refers to a shell v)4.231 F 1.551
(ariable, and that v)-.25 F 1.551(ariable is remo)-.25 F -.15(ve)-.15 G
-4.051(d. Read-only).15 F -.25(va)4.051 G 1.551(riables may not be).25 F
-4.642(unset. If)144 302.4 R F1<ad66>4.642 E F0 2.142
-(is speci\214ed, each)4.642 F F2(name)5.001 E F0 2.141
+4.05(d. Read-only).15 F -.25(va)4.05 G 1.55(riables may not be).25 F
+4.641(unset. If)144 302.4 R F1<ad66>4.641 E F0 2.141
+(is speci\214ed, each)4.641 F F2(name)5.001 E F0 2.141
(refers to a shell function, and the function de\214nition is)4.821 F
-(remo)144 314.4 Q -.15(ve)-.15 G 2.898(d. If).15 F .398
-(no options are supplied, each)2.898 F F2(name)2.898 E F0 .398
-(refers to a v)2.898 F .399(ariable; if there is no v)-.25 F .399
-(ariable by that)-.25 F .579(name, an)144 326.4 R 3.079(yf)-.15 G .579
-(unction with that name is unset.)-3.079 F .579(Each unset v)5.579 F
-.579(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.078(df).15 G
-.578(rom the)-3.078 F(en)144 338.4 Q .045
+(remo)144 314.4 Q -.15(ve)-.15 G 2.899(d. If).15 F .399
+(no options are supplied, each)2.899 F F2(name)2.898 E F0 .398
+(refers to a v)2.898 F .398(ariable; if there is no v)-.25 F .398
+(ariable by that)-.25 F .578(name, an)144 326.4 R 3.078(yf)-.15 G .579
+(unction with that name is unset.)-3.078 F .579(Each unset v)5.579 F
+.579(ariable or function is remo)-.25 F -.15(ve)-.15 G 3.079(df).15 G
+.579(rom the)-3.079 F(en)144 338.4 Q .046
(vironment passed to subsequent commands.)-.4 F .046(If an)5.046 F 2.546
-(yo)-.15 G(f)-2.546 E/F3 9/Times-Bold@0 SF(COMP_W)2.546 E(ORDBREAKS)-.09
-E/F4 9/Times-Roman@0 SF(,)A F3(RANDOM)2.296 E F4(,)A F3(SEC-)2.296 E
-(ONDS)144 350.4 Q F4(,)A F3(LINENO)2.641 E F4(,)A F3(HISTCMD)2.641 E F4
-(,)A F3(FUNCN)2.641 E(AME)-.18 E F4(,)A F3(GR)2.64 E(OUPS)-.27 E F4(,)A
-F0(or)2.64 E F3(DIRST)2.89 E -.495(AC)-.81 G(K).495 E F0 .39
-(are unset, the)2.64 F 2.89(yl)-.15 G .39(ose their spe-)-2.89 F .726
-(cial properties, e)144 362.4 R -.15(ve)-.25 G 3.226(ni).15 G 3.226(ft)
--3.226 G(he)-3.226 E 3.226(ya)-.15 G .726(re subsequently reset.)-3.226
-F .726(The e)5.726 F .727(xit status is true unless a)-.15 F F2(name)
-3.587 E F0 .727(is read-)3.407 F(only)144 374.4 Q(.)-.65 E F1(wait)108
+(yo)-.15 G(f)-2.546 E/F3 9/Times-Bold@0 SF(COMP_W)2.545 E(ORDBREAKS)-.09
+E/F4 9/Times-Roman@0 SF(,)A F3(RANDOM)2.295 E F4(,)A F3(SEC-)2.295 E
+(ONDS)144 350.4 Q F4(,)A F3(LINENO)2.64 E F4(,)A F3(HISTCMD)2.64 E F4(,)
+A F3(FUNCN)2.64 E(AME)-.18 E F4(,)A F3(GR)2.64 E(OUPS)-.27 E F4(,)A F0
+(or)2.64 E F3(DIRST)2.89 E -.495(AC)-.81 G(K).495 E F0 .39
+(are unset, the)2.64 F 2.891(yl)-.15 G .391(ose their spe-)-2.891 F .727
+(cial properties, e)144 362.4 R -.15(ve)-.25 G 3.227(ni).15 G 3.227(ft)
+-3.227 G(he)-3.227 E 3.227(ya)-.15 G .727(re subsequently reset.)-3.227
+F .726(The e)5.727 F .726(xit status is true unless a)-.15 F F2(name)
+3.586 E F0 .726(is read-)3.406 F(only)144 374.4 Q(.)-.65 E F1(wait)108
391.2 Q F0([)2.5 E F2 2.5(n.)C(..)-2.5 E F0(])A -.8(Wa)144 403.2 S .288
(it for each speci\214ed process and return its termination status.).8 F
-(Each)5.288 E F2(n)3.148 E F0 .287(may be a process ID or a)3.028 F .722
+(Each)5.288 E F2(n)3.148 E F0 .288(may be a process ID or a)3.028 F .722
(job speci\214cation; if a job spec is gi)144 415.2 R -.15(ve)-.25 G
.722(n, all processes in that job').15 F 3.222(sp)-.55 G .722
(ipeline are w)-3.222 F .722(aited for)-.1 F 5.722(.I)-.55 G(f)-5.722 E
-F2(n)3.583 E F0(is)3.463 E 1.266(not gi)144 427.2 R -.15(ve)-.25 G 1.266
-(n, all currently acti).15 F 1.566 -.15(ve c)-.25 H 1.265
-(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.265
-(nd the return status is zero.)-3.765 F(If)6.265 E F2(n)4.125 E F0 .456
+F2(n)3.582 E F0(is)3.462 E 1.265(not gi)144 427.2 R -.15(ve)-.25 G 1.265
+(n, all currently acti).15 F 1.565 -.15(ve c)-.25 H 1.265
+(hild processes are w).15 F 1.265(aited for)-.1 F 3.765(,a)-.4 G 1.266
+(nd the return status is zero.)-3.765 F(If)6.266 E F2(n)4.126 E F0 .457
(speci\214es a non-e)144 439.2 R .457
(xistent process or job, the return status is 127.)-.15 F .457
(Otherwise, the return status is the)5.457 F -.15(ex)144 451.2 S
%!PS-Adobe-3.0
%%Creator: groff version 1.19.2
-%%CreationDate: Mon Sep 26 10:56:08 2011
+%%CreationDate: Mon Oct 24 08:43:45 2011
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%DocumentSuppliedResources: procset grops 1.19 2
Copyright (C) 1988-2011 Free Software Foundation, Inc.
@end ignore
-@set LASTCHANGE Fri Oct 14 13:18:35 EDT 2011
+@set LASTCHANGE Mon Oct 24 08:43:33 EDT 2011
@set EDITION 4.2
@set VERSION 4.2
-@set UPDATED 14 October 2011
+@set UPDATED 24 October 2011
@set UPDATED-MONTH October 2011
lvalue *= value;
break;
case DIV:
- lvalue /= value;
+ if (lvalue == INTMAX_MIN && value == -1)
+ value = 1;
+ else
+ lvalue /= value;
break;
case MOD:
- lvalue %= value;
+ if (lvalue == INTMAX_MIN && value == -1)
+ lvalue = 0;
+ else
+ lvalue %= value;
break;
case PLUS:
lvalue += value;
val2 = exppower ();
+ /* Handle division by 0 and twos-complement arithmetic overflow */
if (((op == DIV) || (op == MOD)) && (val2 == 0))
{
if (noeval == 0)
else
val2 = 1;
}
+ else if (op == MOD && val1 == INTMAX_MIN && val2 == -1)
+ {
+ val1 = 0;
+ continue;
+ }
+ else if (op == DIV && val1 == INTMAX_MIN && val2 == -1)
+ val2 = 1;
if (op == MUL)
val1 *= val2;
#if defined (BANG_HISTORY)
/* Non-zero means that we are doing history expansion. The default.
This means !22 gets the 22nd line of history. */
+# if defined (STRICT_POSIX)
+int history_expansion = 0;
+# else
int history_expansion = 1;
+# endif
#endif /* BANG_HISTORY */
/* Non-zero means that we allow comments to appear in interactive commands. */
{
if (cc == 0 || member (cc, history_no_expand_chars))
continue;
+ /* DQUOTE won't be set unless history_quotes_inhibit_expansion
+ is set. The idea here is to treat double-quoted strings the
+ same as the word outside double quotes; in effect making the
+ double quote part of history_no_expand_chars when DQUOTE is
+ set. */
+ else if (dquote && cc == '"')
+ continue;
/* If the calling application has set
history_inhibit_expansion_function to a function that checks
for special cases that should not be history expanded,
ARITH_FOR_COM *temp;
WORD_LIST *init, *test, *step;
char *s, *t, *start;
- int nsemi;
+ int nsemi, i;
init = test = step = (WORD_LIST *)NULL;
/* Parse the string into the three component sub-expressions. */
s++;
start = s;
/* skip to the semicolon or EOS */
- while (*s && *s != ';')
- s++;
+ i = skip_to_delim (start, 0, ";", SD_NOJMP);
+ s = start + i;
- t = (s > start) ? substring (start, 0, s - start) : (char *)NULL;
+ t = (i > 0) ? substring (start, 0, i) : (char *)NULL;
nsemi++;
switch (nsemi)
--- /dev/null
+/* make_cmd.c -- Functions for making instances of the various
+ parser constructs. */
+
+/* Copyright (C) 1989-2009 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+
+ Bash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Bash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Bash. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "config.h"
+
+#include <stdio.h>
+#include "bashtypes.h"
+#if !defined (_MINIX) && defined (HAVE_SYS_FILE_H)
+# include <sys/file.h>
+#endif
+#include "filecntl.h"
+#include "bashansi.h"
+#if defined (HAVE_UNISTD_H)
+# include <unistd.h>
+#endif
+
+#include "bashintl.h"
+
+#include "parser.h"
+#include "syntax.h"
+#include "command.h"
+#include "general.h"
+#include "error.h"
+#include "flags.h"
+#include "make_cmd.h"
+#include "dispose_cmd.h"
+#include "variables.h"
+#include "subst.h"
+#include "input.h"
+#include "ocache.h"
+#include "externs.h"
+
+#if defined (JOB_CONTROL)
+#include "jobs.h"
+#endif
+
+#include "shmbutil.h"
+
+extern int line_number, current_command_line_count, parser_state;
+extern int last_command_exit_value;
+
+/* Object caching */
+sh_obj_cache_t wdcache = {0, 0, 0};
+sh_obj_cache_t wlcache = {0, 0, 0};
+
+#define WDCACHESIZE 60
+#define WLCACHESIZE 60
+
+static COMMAND *make_for_or_select __P((enum command_type, WORD_DESC *, WORD_LIST *, COMMAND *, int));
+#if defined (ARITH_FOR_COMMAND)
+static WORD_LIST *make_arith_for_expr __P((char *));
+#endif
+static COMMAND *make_until_or_while __P((enum command_type, COMMAND *, COMMAND *));
+
+void
+cmd_init ()
+{
+ ocache_create (wdcache, WORD_DESC, WDCACHESIZE);
+ ocache_create (wlcache, WORD_LIST, WLCACHESIZE);
+}
+
+WORD_DESC *
+alloc_word_desc ()
+{
+ WORD_DESC *temp;
+
+ ocache_alloc (wdcache, WORD_DESC, temp);
+ temp->flags = 0;
+ temp->word = 0;
+ return temp;
+}
+
+WORD_DESC *
+make_bare_word (string)
+ const char *string;
+{
+ WORD_DESC *temp;
+
+ temp = alloc_word_desc ();
+
+ if (*string)
+ temp->word = savestring (string);
+ else
+ {
+ temp->word = (char *)xmalloc (1);
+ temp->word[0] = '\0';
+ }
+
+ return (temp);
+}
+
+WORD_DESC *
+make_word_flags (w, string)
+ WORD_DESC *w;
+ const char *string;
+{
+ register int i;
+ size_t slen;
+ DECLARE_MBSTATE;
+
+ i = 0;
+ slen = strlen (string);
+ while (i < slen)
+ {
+ switch (string[i])
+ {
+ case '$':
+ w->flags |= W_HASDOLLAR;
+ break;
+ case '\\':
+ break; /* continue the loop */
+ case '\'':
+ case '`':
+ case '"':
+ w->flags |= W_QUOTED;
+ break;
+ }
+
+ ADVANCE_CHAR (string, slen, i);
+ }
+
+ return (w);
+}
+
+WORD_DESC *
+make_word (string)
+ const char *string;
+{
+ WORD_DESC *temp;
+
+ temp = make_bare_word (string);
+ return (make_word_flags (temp, string));
+}
+
+WORD_DESC *
+make_word_from_token (token)
+ int token;
+{
+ char tokenizer[2];
+
+ tokenizer[0] = token;
+ tokenizer[1] = '\0';
+
+ return (make_word (tokenizer));
+}
+
+WORD_LIST *
+make_word_list (word, wlink)
+ WORD_DESC *word;
+ WORD_LIST *wlink;
+{
+ WORD_LIST *temp;
+
+ ocache_alloc (wlcache, WORD_LIST, temp);
+
+ temp->word = word;
+ temp->next = wlink;
+ return (temp);
+}
+
+COMMAND *
+make_command (type, pointer)
+ enum command_type type;
+ SIMPLE_COM *pointer;
+{
+ COMMAND *temp;
+
+ temp = (COMMAND *)xmalloc (sizeof (COMMAND));
+ temp->type = type;
+ temp->value.Simple = pointer;
+ temp->value.Simple->flags = temp->flags = 0;
+ temp->redirects = (REDIRECT *)NULL;
+ return (temp);
+}
+
+COMMAND *
+command_connect (com1, com2, connector)
+ COMMAND *com1, *com2;
+ int connector;
+{
+ CONNECTION *temp;
+
+ temp = (CONNECTION *)xmalloc (sizeof (CONNECTION));
+ temp->connector = connector;
+ temp->first = com1;
+ temp->second = com2;
+ return (make_command (cm_connection, (SIMPLE_COM *)temp));
+}
+
+static COMMAND *
+make_for_or_select (type, name, map_list, action, lineno)
+ enum command_type type;
+ WORD_DESC *name;
+ WORD_LIST *map_list;
+ COMMAND *action;
+ int lineno;
+{
+ FOR_COM *temp;
+
+ temp = (FOR_COM *)xmalloc (sizeof (FOR_COM));
+ temp->flags = 0;
+ temp->name = name;
+ temp->line = lineno;
+ temp->map_list = map_list;
+ temp->action = action;
+ return (make_command (type, (SIMPLE_COM *)temp));
+}
+
+COMMAND *
+make_for_command (name, map_list, action, lineno)
+ WORD_DESC *name;
+ WORD_LIST *map_list;
+ COMMAND *action;
+ int lineno;
+{
+ return (make_for_or_select (cm_for, name, map_list, action, lineno));
+}
+
+COMMAND *
+make_select_command (name, map_list, action, lineno)
+ WORD_DESC *name;
+ WORD_LIST *map_list;
+ COMMAND *action;
+ int lineno;
+{
+#if defined (SELECT_COMMAND)
+ return (make_for_or_select (cm_select, name, map_list, action, lineno));
+#else
+ last_command_exit_value = 2;
+ return ((COMMAND *)NULL);
+#endif
+}
+
+#if defined (ARITH_FOR_COMMAND)
+static WORD_LIST *
+make_arith_for_expr (s)
+ char *s;
+{
+ WORD_LIST *result;
+ WORD_DESC *wd;
+
+ if (s == 0 || *s == '\0')
+ return ((WORD_LIST *)NULL);
+ wd = make_word (s);
+ wd->flags |= W_NOGLOB|W_NOSPLIT|W_QUOTED|W_DQUOTE; /* no word splitting or globbing */
+ result = make_word_list (wd, (WORD_LIST *)NULL);
+ return result;
+}
+#endif
+
+/* Note that this function calls dispose_words on EXPRS, since it doesn't
+ use the word list directly. We free it here rather than at the caller
+ because no other function in this file requires that the caller free
+ any arguments. */
+COMMAND *
+make_arith_for_command (exprs, action, lineno)
+ WORD_LIST *exprs;
+ COMMAND *action;
+ int lineno;
+{
+#if defined (ARITH_FOR_COMMAND)
+ ARITH_FOR_COM *temp;
+ WORD_LIST *init, *test, *step;
+ char *s, *t, *start;
+ int nsemi, i;
+
+ init = test = step = (WORD_LIST *)NULL;
+ /* Parse the string into the three component sub-expressions. */
+ start = t = s = exprs->word->word;
+ for (nsemi = 0; ;)
+ {
+ /* skip whitespace at the start of each sub-expression. */
+ while (whitespace (*s))
+ s++;
+ start = s;
+ /* skip to the semicolon or EOS */
+ i = skip_to_delim (s, 0, ";", SD_NOJMP);
+ s = start + i;
+
+ t = (i > 0) ? substring (start, 0, i) : (char *)NULL;
+
+ nsemi++;
+ switch (nsemi)
+ {
+ case 1:
+ init = make_arith_for_expr (t);
+ break;
+ case 2:
+ test = make_arith_for_expr (t);
+ break;
+ case 3:
+ step = make_arith_for_expr (t);
+ break;
+ }
+
+ FREE (t);
+ if (*s == '\0')
+ break;
+ s++; /* skip over semicolon */
+ }
+
+ if (nsemi != 3)
+ {
+ if (nsemi < 3)
+ parser_error (lineno, _("syntax error: arithmetic expression required"));
+ else
+ parser_error (lineno, _("syntax error: `;' unexpected"));
+ parser_error (lineno, _("syntax error: `((%s))'"), exprs->word->word);
+ last_command_exit_value = 2;
+ return ((COMMAND *)NULL);
+ }
+
+ temp = (ARITH_FOR_COM *)xmalloc (sizeof (ARITH_FOR_COM));
+ temp->flags = 0;
+ temp->line = lineno;
+ temp->init = init ? init : make_arith_for_expr ("1");
+ temp->test = test ? test : make_arith_for_expr ("1");
+ temp->step = step ? step : make_arith_for_expr ("1");
+ temp->action = action;
+
+ dispose_words (exprs);
+ return (make_command (cm_arith_for, (SIMPLE_COM *)temp));
+#else
+ dispose_words (exprs);
+ last_command_exit_value = 2;
+ return ((COMMAND *)NULL);
+#endif /* ARITH_FOR_COMMAND */
+}
+
+COMMAND *
+make_group_command (command)
+ COMMAND *command;
+{
+ GROUP_COM *temp;
+
+ temp = (GROUP_COM *)xmalloc (sizeof (GROUP_COM));
+ temp->command = command;
+ return (make_command (cm_group, (SIMPLE_COM *)temp));
+}
+
+COMMAND *
+make_case_command (word, clauses, lineno)
+ WORD_DESC *word;
+ PATTERN_LIST *clauses;
+ int lineno;
+{
+ CASE_COM *temp;
+
+ temp = (CASE_COM *)xmalloc (sizeof (CASE_COM));
+ temp->flags = 0;
+ temp->line = lineno;
+ temp->word = word;
+ temp->clauses = REVERSE_LIST (clauses, PATTERN_LIST *);
+ return (make_command (cm_case, (SIMPLE_COM *)temp));
+}
+
+PATTERN_LIST *
+make_pattern_list (patterns, action)
+ WORD_LIST *patterns;
+ COMMAND *action;
+{
+ PATTERN_LIST *temp;
+
+ temp = (PATTERN_LIST *)xmalloc (sizeof (PATTERN_LIST));
+ temp->patterns = REVERSE_LIST (patterns, WORD_LIST *);
+ temp->action = action;
+ temp->next = NULL;
+ temp->flags = 0;
+ return (temp);
+}
+
+COMMAND *
+make_if_command (test, true_case, false_case)
+ COMMAND *test, *true_case, *false_case;
+{
+ IF_COM *temp;
+
+ temp = (IF_COM *)xmalloc (sizeof (IF_COM));
+ temp->flags = 0;
+ temp->test = test;
+ temp->true_case = true_case;
+ temp->false_case = false_case;
+ return (make_command (cm_if, (SIMPLE_COM *)temp));
+}
+
+static COMMAND *
+make_until_or_while (which, test, action)
+ enum command_type which;
+ COMMAND *test, *action;
+{
+ WHILE_COM *temp;
+
+ temp = (WHILE_COM *)xmalloc (sizeof (WHILE_COM));
+ temp->flags = 0;
+ temp->test = test;
+ temp->action = action;
+ return (make_command (which, (SIMPLE_COM *)temp));
+}
+
+COMMAND *
+make_while_command (test, action)
+ COMMAND *test, *action;
+{
+ return (make_until_or_while (cm_while, test, action));
+}
+
+COMMAND *
+make_until_command (test, action)
+ COMMAND *test, *action;
+{
+ return (make_until_or_while (cm_until, test, action));
+}
+
+COMMAND *
+make_arith_command (exp)
+ WORD_LIST *exp;
+{
+#if defined (DPAREN_ARITHMETIC)
+ COMMAND *command;
+ ARITH_COM *temp;
+
+ command = (COMMAND *)xmalloc (sizeof (COMMAND));
+ command->value.Arith = temp = (ARITH_COM *)xmalloc (sizeof (ARITH_COM));
+
+ temp->flags = 0;
+ temp->line = line_number;
+ temp->exp = exp;
+
+ command->type = cm_arith;
+ command->redirects = (REDIRECT *)NULL;
+ command->flags = 0;
+
+ return (command);
+#else
+ last_command_exit_value = 2;
+ return ((COMMAND *)NULL);
+#endif
+}
+
+#if defined (COND_COMMAND)
+struct cond_com *
+make_cond_node (type, op, left, right)
+ int type;
+ WORD_DESC *op;
+ struct cond_com *left, *right;
+{
+ COND_COM *temp;
+
+ temp = (COND_COM *)xmalloc (sizeof (COND_COM));
+ temp->flags = 0;
+ temp->line = line_number;
+ temp->type = type;
+ temp->op = op;
+ temp->left = left;
+ temp->right = right;
+
+ return (temp);
+}
+#endif
+
+COMMAND *
+make_cond_command (cond_node)
+ COND_COM *cond_node;
+{
+#if defined (COND_COMMAND)
+ COMMAND *command;
+
+ command = (COMMAND *)xmalloc (sizeof (COMMAND));
+ command->value.Cond = cond_node;
+
+ command->type = cm_cond;
+ command->redirects = (REDIRECT *)NULL;
+ command->flags = 0;
+ command->line = cond_node ? cond_node->line : 0;
+
+ return (command);
+#else
+ last_command_exit_value = 2;
+ return ((COMMAND *)NULL);
+#endif
+}
+
+COMMAND *
+make_bare_simple_command ()
+{
+ COMMAND *command;
+ SIMPLE_COM *temp;
+
+ command = (COMMAND *)xmalloc (sizeof (COMMAND));
+ command->value.Simple = temp = (SIMPLE_COM *)xmalloc (sizeof (SIMPLE_COM));
+
+ temp->flags = 0;
+ temp->line = line_number;
+ temp->words = (WORD_LIST *)NULL;
+ temp->redirects = (REDIRECT *)NULL;
+
+ command->type = cm_simple;
+ command->redirects = (REDIRECT *)NULL;
+ command->flags = 0;
+
+ return (command);
+}
+
+/* Return a command which is the connection of the word or redirection
+ in ELEMENT, and the command * or NULL in COMMAND. */
+COMMAND *
+make_simple_command (element, command)
+ ELEMENT element;
+ COMMAND *command;
+{
+ /* If we are starting from scratch, then make the initial command
+ structure. Also note that we have to fill in all the slots, since
+ malloc doesn't return zeroed space. */
+ if (command == 0)
+ {
+ command = make_bare_simple_command ();
+ parser_state |= PST_REDIRLIST;
+ }
+
+ if (element.word)
+ {
+ command->value.Simple->words = make_word_list (element.word, command->value.Simple->words);
+ parser_state &= ~PST_REDIRLIST;
+ }
+ else if (element.redirect)
+ {
+ REDIRECT *r = element.redirect;
+ /* Due to the way <> is implemented, there may be more than a single
+ redirection in element.redirect. We just follow the chain as far
+ as it goes, and hook onto the end. */
+ while (r->next)
+ r = r->next;
+ r->next = command->value.Simple->redirects;
+ command->value.Simple->redirects = element.redirect;
+ }
+
+ return (command);
+}
+
+/* Because we are Bourne compatible, we read the input for this
+ << or <<- redirection now, from wherever input is coming from.
+ We store the input read into a WORD_DESC. Replace the text of
+ the redirectee.word with the new input text. If <<- is on,
+ then remove leading TABS from each line. */
+void
+make_here_document (temp, lineno)
+ REDIRECT *temp;
+ int lineno;
+{
+ int kill_leading, redir_len;
+ char *redir_word, *document, *full_line;
+ int document_index, document_size, delim_unquoted;
+
+ if (temp->instruction != r_deblank_reading_until &&
+ temp->instruction != r_reading_until)
+ {
+ internal_error (_("make_here_document: bad instruction type %d"), temp->instruction);
+ return;
+ }
+
+ kill_leading = temp->instruction == r_deblank_reading_until;
+
+ document = (char *)NULL;
+ document_index = document_size = 0;
+
+ /* Quote removal is the only expansion performed on the delimiter
+ for here documents, making it an extremely special case. */
+ redir_word = string_quote_removal (temp->redirectee.filename->word, 0);
+
+ /* redirection_expand will return NULL if the expansion results in
+ multiple words or no words. Check for that here, and just abort
+ this here document if it does. */
+ if (redir_word)
+ redir_len = strlen (redir_word);
+ else
+ {
+ temp->here_doc_eof = (char *)xmalloc (1);
+ temp->here_doc_eof[0] = '\0';
+ goto document_done;
+ }
+
+ free (temp->redirectee.filename->word);
+ temp->here_doc_eof = redir_word;
+
+ /* Read lines from wherever lines are coming from.
+ For each line read, if kill_leading, then kill the
+ leading tab characters.
+ If the line matches redir_word exactly, then we have
+ manufactured the document. Otherwise, add the line to the
+ list of lines in the document. */
+
+ /* If the here-document delimiter was quoted, the lines should
+ be read verbatim from the input. If it was not quoted, we
+ need to perform backslash-quoted newline removal. */
+ delim_unquoted = (temp->redirectee.filename->flags & W_QUOTED) == 0;
+ while (full_line = read_secondary_line (delim_unquoted))
+ {
+ register char *line;
+ int len;
+
+ line = full_line;
+ line_number++;
+
+ /* If set -v is in effect, echo the line read. read_secondary_line/
+ read_a_line leaves the newline at the end, so don't print another. */
+ if (echo_input_at_read)
+ fprintf (stderr, "%s", line);
+
+ if (kill_leading && *line)
+ {
+ /* Hack: To be compatible with some Bourne shells, we
+ check the word before stripping the whitespace. This
+ is a hack, though. */
+ if (STREQN (line, redir_word, redir_len) && line[redir_len] == '\n')
+ goto document_done;
+
+ while (*line == '\t')
+ line++;
+ }
+
+ if (*line == 0)
+ continue;
+
+ if (STREQN (line, redir_word, redir_len) && line[redir_len] == '\n')
+ goto document_done;
+
+ len = strlen (line);
+ if (len + document_index >= document_size)
+ {
+ document_size = document_size ? 2 * (document_size + len) : len + 2;
+ document = (char *)xrealloc (document, document_size);
+ }
+
+ /* len is guaranteed to be > 0 because of the check for line
+ being an empty string before the call to strlen. */
+ FASTCOPY (line, document + document_index, len);
+ document_index += len;
+ }
+
+ if (full_line == 0)
+ internal_warning (_("here-document at line %d delimited by end-of-file (wanted `%s')"), lineno, redir_word);
+
+document_done:
+ if (document)
+ document[document_index] = '\0';
+ else
+ {
+ document = (char *)xmalloc (1);
+ document[0] = '\0';
+ }
+ temp->redirectee.filename->word = document;
+}
+
+/* Generate a REDIRECT from SOURCE, DEST, and INSTRUCTION.
+ INSTRUCTION is the instruction type, SOURCE is a file descriptor,
+ and DEST is a file descriptor or a WORD_DESC *. */
+REDIRECT *
+make_redirection (source, instruction, dest_and_filename, flags)
+ REDIRECTEE source;
+ enum r_instruction instruction;
+ REDIRECTEE dest_and_filename;
+ int flags;
+{
+ REDIRECT *temp;
+ WORD_DESC *w;
+ int wlen;
+ intmax_t lfd;
+
+ temp = (REDIRECT *)xmalloc (sizeof (REDIRECT));
+
+ /* First do the common cases. */
+ temp->redirector = source;
+ temp->redirectee = dest_and_filename;
+ temp->instruction = instruction;
+ temp->flags = 0;
+ temp->rflags = flags;
+ temp->next = (REDIRECT *)NULL;
+
+ switch (instruction)
+ {
+
+ case r_output_direction: /* >foo */
+ case r_output_force: /* >| foo */
+ case r_err_and_out: /* &>filename */
+ temp->flags = O_TRUNC | O_WRONLY | O_CREAT;
+ break;
+
+ case r_appending_to: /* >>foo */
+ case r_append_err_and_out: /* &>> filename */
+ temp->flags = O_APPEND | O_WRONLY | O_CREAT;
+ break;
+
+ case r_input_direction: /* <foo */
+ case r_inputa_direction: /* foo & makes this. */
+ temp->flags = O_RDONLY;
+ break;
+
+ case r_input_output: /* <>foo */
+ temp->flags = O_RDWR | O_CREAT;
+ break;
+
+ case r_deblank_reading_until: /* <<-foo */
+ case r_reading_until: /* << foo */
+ case r_reading_string: /* <<< foo */
+ case r_close_this: /* <&- */
+ case r_duplicating_input: /* 1<&2 */
+ case r_duplicating_output: /* 1>&2 */
+ break;
+
+ /* the parser doesn't pass these. */
+ case r_move_input: /* 1<&2- */
+ case r_move_output: /* 1>&2- */
+ case r_move_input_word: /* 1<&$foo- */
+ case r_move_output_word: /* 1>&$foo- */
+ break;
+
+ /* The way the lexer works we have to do this here. */
+ case r_duplicating_input_word: /* 1<&$foo */
+ case r_duplicating_output_word: /* 1>&$foo */
+ w = dest_and_filename.filename;
+ wlen = strlen (w->word) - 1;
+ if (w->word[wlen] == '-') /* Yuck */
+ {
+ w->word[wlen] = '\0';
+ if (all_digits (w->word) && legal_number (w->word, &lfd) && lfd == (int)lfd)
+ {
+ dispose_word (w);
+ temp->instruction = (instruction == r_duplicating_input_word) ? r_move_input : r_move_output;
+ temp->redirectee.dest = lfd;
+ }
+ else
+ temp->instruction = (instruction == r_duplicating_input_word) ? r_move_input_word : r_move_output_word;
+ }
+
+ break;
+
+ default:
+ programming_error (_("make_redirection: redirection instruction `%d' out of range"), instruction);
+ abort ();
+ break;
+ }
+ return (temp);
+}
+
+COMMAND *
+make_function_def (name, command, lineno, lstart)
+ WORD_DESC *name;
+ COMMAND *command;
+ int lineno, lstart;
+{
+ FUNCTION_DEF *temp;
+#if defined (ARRAY_VARS)
+ SHELL_VAR *bash_source_v;
+ ARRAY *bash_source_a;
+#endif
+
+ temp = (FUNCTION_DEF *)xmalloc (sizeof (FUNCTION_DEF));
+ temp->command = command;
+ temp->name = name;
+ temp->line = lineno;
+ temp->flags = 0;
+ command->line = lstart;
+
+ /* Information used primarily for debugging. */
+ temp->source_file = 0;
+#if defined (ARRAY_VARS)
+ GET_ARRAY_FROM_VAR ("BASH_SOURCE", bash_source_v, bash_source_a);
+ if (bash_source_a && array_num_elements (bash_source_a) > 0)
+ temp->source_file = array_reference (bash_source_a, 0);
+#endif
+#if defined (DEBUGGER)
+ bind_function_def (name->word, temp);
+#endif
+
+ temp->source_file = 0;
+ return (make_command (cm_function_def, (SIMPLE_COM *)temp));
+}
+
+COMMAND *
+make_subshell_command (command)
+ COMMAND *command;
+{
+ SUBSHELL_COM *temp;
+
+ temp = (SUBSHELL_COM *)xmalloc (sizeof (SUBSHELL_COM));
+ temp->command = command;
+ temp->flags = CMD_WANT_SUBSHELL;
+ return (make_command (cm_subshell, (SIMPLE_COM *)temp));
+}
+
+COMMAND *
+make_coproc_command (name, command)
+ char *name;
+ COMMAND *command;
+{
+ COPROC_COM *temp;
+
+ temp = (COPROC_COM *)xmalloc (sizeof (COPROC_COM));
+ temp->name = savestring (name);
+ temp->command = command;
+ temp->flags = CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
+ return (make_command (cm_coproc, (SIMPLE_COM *)temp));
+}
+
+/* Reverse the word list and redirection list in the simple command
+ has just been parsed. It seems simpler to do this here the one
+ time then by any other method that I can think of. */
+COMMAND *
+clean_simple_command (command)
+ COMMAND *command;
+{
+ if (command->type != cm_simple)
+ command_error ("clean_simple_command", CMDERR_BADTYPE, command->type, 0);
+ else
+ {
+ command->value.Simple->words =
+ REVERSE_LIST (command->value.Simple->words, WORD_LIST *);
+ command->value.Simple->redirects =
+ REVERSE_LIST (command->value.Simple->redirects, REDIRECT *);
+ }
+
+ parser_state &= ~PST_REDIRLIST;
+ return (command);
+}
+
+/* The Yacc grammar productions have a problem, in that they take a
+ list followed by an ampersand (`&') and do a simple command connection,
+ making the entire list effectively asynchronous, instead of just
+ the last command. This means that when the list is executed, all
+ the commands have stdin set to /dev/null when job control is not
+ active, instead of just the last. This is wrong, and needs fixing
+ up. This function takes the `&' and applies it to the last command
+ in the list. This is done only for lists connected by `;'; it makes
+ `;' bind `tighter' than `&'. */
+COMMAND *
+connect_async_list (command, command2, connector)
+ COMMAND *command, *command2;
+ int connector;
+{
+ COMMAND *t, *t1, *t2;
+
+ t1 = command;
+ t = command->value.Connection->second;
+
+ if (!t || (command->flags & CMD_WANT_SUBSHELL) ||
+ command->value.Connection->connector != ';')
+ {
+ t = command_connect (command, command2, connector);
+ return t;
+ }
+
+ /* This is just defensive programming. The Yacc precedence rules
+ will generally hand this function a command where t points directly
+ to the command we want (e.g. given a ; b ; c ; d &, t1 will point
+ to the `a ; b ; c' list and t will be the `d'). We only want to do
+ this if the list is not being executed as a unit in the background
+ with `( ... )', so we have to check for CMD_WANT_SUBSHELL. That's
+ the only way to tell. */
+ while (((t->flags & CMD_WANT_SUBSHELL) == 0) && t->type == cm_connection &&
+ t->value.Connection->connector == ';')
+ {
+ t1 = t;
+ t = t->value.Connection->second;
+ }
+ /* Now we have t pointing to the last command in the list, and
+ t1->value.Connection->second == t. */
+ t2 = command_connect (t, command2, connector);
+ t1->value.Connection->second = t2;
+ return command;
+}
--- /dev/null
+/* make_cmd.c -- Functions for making instances of the various
+ parser constructs. */
+
+/* Copyright (C) 1989-2009 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+
+ Bash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Bash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Bash. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "config.h"
+
+#include <stdio.h>
+#include "bashtypes.h"
+#if !defined (_MINIX) && defined (HAVE_SYS_FILE_H)
+# include <sys/file.h>
+#endif
+#include "filecntl.h"
+#include "bashansi.h"
+#if defined (HAVE_UNISTD_H)
+# include <unistd.h>
+#endif
+
+#include "bashintl.h"
+
+#include "parser.h"
+#include "syntax.h"
+#include "command.h"
+#include "general.h"
+#include "error.h"
+#include "flags.h"
+#include "make_cmd.h"
+#include "dispose_cmd.h"
+#include "variables.h"
+#include "subst.h"
+#include "input.h"
+#include "ocache.h"
+#include "externs.h"
+
+#if defined (JOB_CONTROL)
+#include "jobs.h"
+#endif
+
+#include "shmbutil.h"
+
+extern int line_number, current_command_line_count, parser_state;
+extern int last_command_exit_value;
+
+/* Object caching */
+sh_obj_cache_t wdcache = {0, 0, 0};
+sh_obj_cache_t wlcache = {0, 0, 0};
+
+#define WDCACHESIZE 60
+#define WLCACHESIZE 60
+
+static COMMAND *make_for_or_select __P((enum command_type, WORD_DESC *, WORD_LIST *, COMMAND *, int));
+#if defined (ARITH_FOR_COMMAND)
+static WORD_LIST *make_arith_for_expr __P((char *));
+#endif
+static COMMAND *make_until_or_while __P((enum command_type, COMMAND *, COMMAND *));
+
+void
+cmd_init ()
+{
+ ocache_create (wdcache, WORD_DESC, WDCACHESIZE);
+ ocache_create (wlcache, WORD_LIST, WLCACHESIZE);
+}
+
+WORD_DESC *
+alloc_word_desc ()
+{
+ WORD_DESC *temp;
+
+ ocache_alloc (wdcache, WORD_DESC, temp);
+ temp->flags = 0;
+ temp->word = 0;
+ return temp;
+}
+
+WORD_DESC *
+make_bare_word (string)
+ const char *string;
+{
+ WORD_DESC *temp;
+
+ temp = alloc_word_desc ();
+
+ if (*string)
+ temp->word = savestring (string);
+ else
+ {
+ temp->word = (char *)xmalloc (1);
+ temp->word[0] = '\0';
+ }
+
+ return (temp);
+}
+
+WORD_DESC *
+make_word_flags (w, string)
+ WORD_DESC *w;
+ const char *string;
+{
+ register int i;
+ size_t slen;
+ DECLARE_MBSTATE;
+
+ i = 0;
+ slen = strlen (string);
+ while (i < slen)
+ {
+ switch (string[i])
+ {
+ case '$':
+ w->flags |= W_HASDOLLAR;
+ break;
+ case '\\':
+ break; /* continue the loop */
+ case '\'':
+ case '`':
+ case '"':
+ w->flags |= W_QUOTED;
+ break;
+ }
+
+ ADVANCE_CHAR (string, slen, i);
+ }
+
+ return (w);
+}
+
+WORD_DESC *
+make_word (string)
+ const char *string;
+{
+ WORD_DESC *temp;
+
+ temp = make_bare_word (string);
+ return (make_word_flags (temp, string));
+}
+
+WORD_DESC *
+make_word_from_token (token)
+ int token;
+{
+ char tokenizer[2];
+
+ tokenizer[0] = token;
+ tokenizer[1] = '\0';
+
+ return (make_word (tokenizer));
+}
+
+WORD_LIST *
+make_word_list (word, wlink)
+ WORD_DESC *word;
+ WORD_LIST *wlink;
+{
+ WORD_LIST *temp;
+
+ ocache_alloc (wlcache, WORD_LIST, temp);
+
+ temp->word = word;
+ temp->next = wlink;
+ return (temp);
+}
+
+COMMAND *
+make_command (type, pointer)
+ enum command_type type;
+ SIMPLE_COM *pointer;
+{
+ COMMAND *temp;
+
+ temp = (COMMAND *)xmalloc (sizeof (COMMAND));
+ temp->type = type;
+ temp->value.Simple = pointer;
+ temp->value.Simple->flags = temp->flags = 0;
+ temp->redirects = (REDIRECT *)NULL;
+ return (temp);
+}
+
+COMMAND *
+command_connect (com1, com2, connector)
+ COMMAND *com1, *com2;
+ int connector;
+{
+ CONNECTION *temp;
+
+ temp = (CONNECTION *)xmalloc (sizeof (CONNECTION));
+ temp->connector = connector;
+ temp->first = com1;
+ temp->second = com2;
+ return (make_command (cm_connection, (SIMPLE_COM *)temp));
+}
+
+static COMMAND *
+make_for_or_select (type, name, map_list, action, lineno)
+ enum command_type type;
+ WORD_DESC *name;
+ WORD_LIST *map_list;
+ COMMAND *action;
+ int lineno;
+{
+ FOR_COM *temp;
+
+ temp = (FOR_COM *)xmalloc (sizeof (FOR_COM));
+ temp->flags = 0;
+ temp->name = name;
+ temp->line = lineno;
+ temp->map_list = map_list;
+ temp->action = action;
+ return (make_command (type, (SIMPLE_COM *)temp));
+}
+
+COMMAND *
+make_for_command (name, map_list, action, lineno)
+ WORD_DESC *name;
+ WORD_LIST *map_list;
+ COMMAND *action;
+ int lineno;
+{
+ return (make_for_or_select (cm_for, name, map_list, action, lineno));
+}
+
+COMMAND *
+make_select_command (name, map_list, action, lineno)
+ WORD_DESC *name;
+ WORD_LIST *map_list;
+ COMMAND *action;
+ int lineno;
+{
+#if defined (SELECT_COMMAND)
+ return (make_for_or_select (cm_select, name, map_list, action, lineno));
+#else
+ last_command_exit_value = 2;
+ return ((COMMAND *)NULL);
+#endif
+}
+
+#if defined (ARITH_FOR_COMMAND)
+static WORD_LIST *
+make_arith_for_expr (s)
+ char *s;
+{
+ WORD_LIST *result;
+ WORD_DESC *wd;
+
+ if (s == 0 || *s == '\0')
+ return ((WORD_LIST *)NULL);
+ wd = make_word (s);
+ wd->flags |= W_NOGLOB|W_NOSPLIT|W_QUOTED|W_DQUOTE; /* no word splitting or globbing */
+ result = make_word_list (wd, (WORD_LIST *)NULL);
+ return result;
+}
+#endif
+
+/* Note that this function calls dispose_words on EXPRS, since it doesn't
+ use the word list directly. We free it here rather than at the caller
+ because no other function in this file requires that the caller free
+ any arguments. */
+COMMAND *
+make_arith_for_command (exprs, action, lineno)
+ WORD_LIST *exprs;
+ COMMAND *action;
+ int lineno;
+{
+#if defined (ARITH_FOR_COMMAND)
+ ARITH_FOR_COM *temp;
+ WORD_LIST *init, *test, *step;
+ char *s, *t, *start;
+ int nsemi, i;
+
+ init = test = step = (WORD_LIST *)NULL;
+ /* Parse the string into the three component sub-expressions. */
+ start = t = s = exprs->word->word;
+ for (nsemi = 0; ;)
+ {
+ /* skip whitespace at the start of each sub-expression. */
+ while (whitespace (*s))
+ s++;
+ start = s;
+ /* skip to the semicolon or EOS */
+ i = skip_to_delim (s, 0, ";", SD_NOJMP);
+ s = start + i;
+
+ t = (i > 0) ? substring (start, 0, i) : (char *)NULL;
+
+ nsemi++;
+ switch (nsemi)
+ {
+ case 1:
+ init = make_arith_for_expr (t);
+ break;
+ case 2:
+ test = make_arith_for_expr (t);
+ break;
+ case 3:
+ step = make_arith_for_expr (t);
+ break;
+ }
+
+ FREE (t);
+ if (*s == '\0')
+ break;
+ s++; /* skip over semicolon */
+ }
+
+ if (nsemi != 3)
+ {
+ if (nsemi < 3)
+ parser_error (lineno, _("syntax error: arithmetic expression required"));
+ else
+ parser_error (lineno, _("syntax error: `;' unexpected"));
+ parser_error (lineno, _("syntax error: `((%s))'"), exprs->word->word);
+ last_command_exit_value = 2;
+ return ((COMMAND *)NULL);
+ }
+
+ temp = (ARITH_FOR_COM *)xmalloc (sizeof (ARITH_FOR_COM));
+ temp->flags = 0;
+ temp->line = lineno;
+ temp->init = init ? init : make_arith_for_expr ("1");
+ temp->test = test ? test : make_arith_for_expr ("1");
+ temp->step = step ? step : make_arith_for_expr ("1");
+ temp->action = action;
+
+ dispose_words (exprs);
+ return (make_command (cm_arith_for, (SIMPLE_COM *)temp));
+#else
+ dispose_words (exprs);
+ last_command_exit_value = 2;
+ return ((COMMAND *)NULL);
+#endif /* ARITH_FOR_COMMAND */
+}
+
+COMMAND *
+make_group_command (command)
+ COMMAND *command;
+{
+ GROUP_COM *temp;
+
+ temp = (GROUP_COM *)xmalloc (sizeof (GROUP_COM));
+ temp->command = command;
+ return (make_command (cm_group, (SIMPLE_COM *)temp));
+}
+
+COMMAND *
+make_case_command (word, clauses, lineno)
+ WORD_DESC *word;
+ PATTERN_LIST *clauses;
+ int lineno;
+{
+ CASE_COM *temp;
+
+ temp = (CASE_COM *)xmalloc (sizeof (CASE_COM));
+ temp->flags = 0;
+ temp->line = lineno;
+ temp->word = word;
+ temp->clauses = REVERSE_LIST (clauses, PATTERN_LIST *);
+ return (make_command (cm_case, (SIMPLE_COM *)temp));
+}
+
+PATTERN_LIST *
+make_pattern_list (patterns, action)
+ WORD_LIST *patterns;
+ COMMAND *action;
+{
+ PATTERN_LIST *temp;
+
+ temp = (PATTERN_LIST *)xmalloc (sizeof (PATTERN_LIST));
+ temp->patterns = REVERSE_LIST (patterns, WORD_LIST *);
+ temp->action = action;
+ temp->next = NULL;
+ temp->flags = 0;
+ return (temp);
+}
+
+COMMAND *
+make_if_command (test, true_case, false_case)
+ COMMAND *test, *true_case, *false_case;
+{
+ IF_COM *temp;
+
+ temp = (IF_COM *)xmalloc (sizeof (IF_COM));
+ temp->flags = 0;
+ temp->test = test;
+ temp->true_case = true_case;
+ temp->false_case = false_case;
+ return (make_command (cm_if, (SIMPLE_COM *)temp));
+}
+
+static COMMAND *
+make_until_or_while (which, test, action)
+ enum command_type which;
+ COMMAND *test, *action;
+{
+ WHILE_COM *temp;
+
+ temp = (WHILE_COM *)xmalloc (sizeof (WHILE_COM));
+ temp->flags = 0;
+ temp->test = test;
+ temp->action = action;
+ return (make_command (which, (SIMPLE_COM *)temp));
+}
+
+COMMAND *
+make_while_command (test, action)
+ COMMAND *test, *action;
+{
+ return (make_until_or_while (cm_while, test, action));
+}
+
+COMMAND *
+make_until_command (test, action)
+ COMMAND *test, *action;
+{
+ return (make_until_or_while (cm_until, test, action));
+}
+
+COMMAND *
+make_arith_command (exp)
+ WORD_LIST *exp;
+{
+#if defined (DPAREN_ARITHMETIC)
+ COMMAND *command;
+ ARITH_COM *temp;
+
+ command = (COMMAND *)xmalloc (sizeof (COMMAND));
+ command->value.Arith = temp = (ARITH_COM *)xmalloc (sizeof (ARITH_COM));
+
+ temp->flags = 0;
+ temp->line = line_number;
+ temp->exp = exp;
+
+ command->type = cm_arith;
+ command->redirects = (REDIRECT *)NULL;
+ command->flags = 0;
+
+ return (command);
+#else
+ last_command_exit_value = 2;
+ return ((COMMAND *)NULL);
+#endif
+}
+
+#if defined (COND_COMMAND)
+struct cond_com *
+make_cond_node (type, op, left, right)
+ int type;
+ WORD_DESC *op;
+ struct cond_com *left, *right;
+{
+ COND_COM *temp;
+
+ temp = (COND_COM *)xmalloc (sizeof (COND_COM));
+ temp->flags = 0;
+ temp->line = line_number;
+ temp->type = type;
+ temp->op = op;
+ temp->left = left;
+ temp->right = right;
+
+ return (temp);
+}
+#endif
+
+COMMAND *
+make_cond_command (cond_node)
+ COND_COM *cond_node;
+{
+#if defined (COND_COMMAND)
+ COMMAND *command;
+
+ command = (COMMAND *)xmalloc (sizeof (COMMAND));
+ command->value.Cond = cond_node;
+
+ command->type = cm_cond;
+ command->redirects = (REDIRECT *)NULL;
+ command->flags = 0;
+ command->line = cond_node ? cond_node->line : 0;
+
+ return (command);
+#else
+ last_command_exit_value = 2;
+ return ((COMMAND *)NULL);
+#endif
+}
+
+COMMAND *
+make_bare_simple_command ()
+{
+ COMMAND *command;
+ SIMPLE_COM *temp;
+
+ command = (COMMAND *)xmalloc (sizeof (COMMAND));
+ command->value.Simple = temp = (SIMPLE_COM *)xmalloc (sizeof (SIMPLE_COM));
+
+ temp->flags = 0;
+ temp->line = line_number;
+ temp->words = (WORD_LIST *)NULL;
+ temp->redirects = (REDIRECT *)NULL;
+
+ command->type = cm_simple;
+ command->redirects = (REDIRECT *)NULL;
+ command->flags = 0;
+
+ return (command);
+}
+
+/* Return a command which is the connection of the word or redirection
+ in ELEMENT, and the command * or NULL in COMMAND. */
+COMMAND *
+make_simple_command (element, command)
+ ELEMENT element;
+ COMMAND *command;
+{
+ /* If we are starting from scratch, then make the initial command
+ structure. Also note that we have to fill in all the slots, since
+ malloc doesn't return zeroed space. */
+ if (command == 0)
+ {
+ command = make_bare_simple_command ();
+ parser_state |= PST_REDIRLIST;
+ }
+
+ if (element.word)
+ {
+ command->value.Simple->words = make_word_list (element.word, command->value.Simple->words);
+ parser_state &= ~PST_REDIRLIST;
+ }
+ else if (element.redirect)
+ {
+ REDIRECT *r = element.redirect;
+ /* Due to the way <> is implemented, there may be more than a single
+ redirection in element.redirect. We just follow the chain as far
+ as it goes, and hook onto the end. */
+ while (r->next)
+ r = r->next;
+ r->next = command->value.Simple->redirects;
+ command->value.Simple->redirects = element.redirect;
+ }
+
+ return (command);
+}
+
+/* Because we are Bourne compatible, we read the input for this
+ << or <<- redirection now, from wherever input is coming from.
+ We store the input read into a WORD_DESC. Replace the text of
+ the redirectee.word with the new input text. If <<- is on,
+ then remove leading TABS from each line. */
+void
+make_here_document (temp, lineno)
+ REDIRECT *temp;
+ int lineno;
+{
+ int kill_leading, redir_len;
+ char *redir_word, *document, *full_line;
+ int document_index, document_size, delim_unquoted;
+
+ if (temp->instruction != r_deblank_reading_until &&
+ temp->instruction != r_reading_until)
+ {
+ internal_error (_("make_here_document: bad instruction type %d"), temp->instruction);
+ return;
+ }
+
+ kill_leading = temp->instruction == r_deblank_reading_until;
+
+ document = (char *)NULL;
+ document_index = document_size = 0;
+
+ /* Quote removal is the only expansion performed on the delimiter
+ for here documents, making it an extremely special case. */
+ redir_word = string_quote_removal (temp->redirectee.filename->word, 0);
+
+ /* redirection_expand will return NULL if the expansion results in
+ multiple words or no words. Check for that here, and just abort
+ this here document if it does. */
+ if (redir_word)
+ redir_len = strlen (redir_word);
+ else
+ {
+ temp->here_doc_eof = (char *)xmalloc (1);
+ temp->here_doc_eof[0] = '\0';
+ goto document_done;
+ }
+
+ free (temp->redirectee.filename->word);
+ temp->here_doc_eof = redir_word;
+
+ /* Read lines from wherever lines are coming from.
+ For each line read, if kill_leading, then kill the
+ leading tab characters.
+ If the line matches redir_word exactly, then we have
+ manufactured the document. Otherwise, add the line to the
+ list of lines in the document. */
+
+ /* If the here-document delimiter was quoted, the lines should
+ be read verbatim from the input. If it was not quoted, we
+ need to perform backslash-quoted newline removal. */
+ delim_unquoted = (temp->redirectee.filename->flags & W_QUOTED) == 0;
+ while (full_line = read_secondary_line (delim_unquoted))
+ {
+ register char *line;
+ int len;
+
+ line = full_line;
+ line_number++;
+
+ /* If set -v is in effect, echo the line read. read_secondary_line/
+ read_a_line leaves the newline at the end, so don't print another. */
+ if (echo_input_at_read)
+ fprintf (stderr, "%s", line);
+
+ if (kill_leading && *line)
+ {
+ /* Hack: To be compatible with some Bourne shells, we
+ check the word before stripping the whitespace. This
+ is a hack, though. */
+ if (STREQN (line, redir_word, redir_len) && line[redir_len] == '\n')
+ goto document_done;
+
+ while (*line == '\t')
+ line++;
+ }
+
+ if (*line == 0)
+ continue;
+
+ if (STREQN (line, redir_word, redir_len) && line[redir_len] == '\n')
+ goto document_done;
+
+ len = strlen (line);
+ if (len + document_index >= document_size)
+ {
+ document_size = document_size ? 2 * (document_size + len) : len + 2;
+ document = (char *)xrealloc (document, document_size);
+ }
+
+ /* len is guaranteed to be > 0 because of the check for line
+ being an empty string before the call to strlen. */
+ FASTCOPY (line, document + document_index, len);
+ document_index += len;
+ }
+
+ if (full_line == 0)
+ internal_warning (_("here-document at line %d delimited by end-of-file (wanted `%s')"), lineno, redir_word);
+
+document_done:
+ if (document)
+ document[document_index] = '\0';
+ else
+ {
+ document = (char *)xmalloc (1);
+ document[0] = '\0';
+ }
+ temp->redirectee.filename->word = document;
+}
+
+/* Generate a REDIRECT from SOURCE, DEST, and INSTRUCTION.
+ INSTRUCTION is the instruction type, SOURCE is a file descriptor,
+ and DEST is a file descriptor or a WORD_DESC *. */
+REDIRECT *
+make_redirection (source, instruction, dest_and_filename, flags)
+ REDIRECTEE source;
+ enum r_instruction instruction;
+ REDIRECTEE dest_and_filename;
+ int flags;
+{
+ REDIRECT *temp;
+ WORD_DESC *w;
+ int wlen;
+ intmax_t lfd;
+
+ temp = (REDIRECT *)xmalloc (sizeof (REDIRECT));
+
+ /* First do the common cases. */
+ temp->redirector = source;
+ temp->redirectee = dest_and_filename;
+ temp->instruction = instruction;
+ temp->flags = 0;
+ temp->rflags = flags;
+ temp->next = (REDIRECT *)NULL;
+
+ switch (instruction)
+ {
+
+ case r_output_direction: /* >foo */
+ case r_output_force: /* >| foo */
+ case r_err_and_out: /* &>filename */
+ temp->flags = O_TRUNC | O_WRONLY | O_CREAT;
+ break;
+
+ case r_appending_to: /* >>foo */
+ case r_append_err_and_out: /* &>> filename */
+ temp->flags = O_APPEND | O_WRONLY | O_CREAT;
+ break;
+
+ case r_input_direction: /* <foo */
+ case r_inputa_direction: /* foo & makes this. */
+ temp->flags = O_RDONLY;
+ break;
+
+ case r_input_output: /* <>foo */
+ temp->flags = O_RDWR | O_CREAT;
+ break;
+
+ case r_deblank_reading_until: /* <<-foo */
+ case r_reading_until: /* << foo */
+ case r_reading_string: /* <<< foo */
+ case r_close_this: /* <&- */
+ case r_duplicating_input: /* 1<&2 */
+ case r_duplicating_output: /* 1>&2 */
+ break;
+
+ /* the parser doesn't pass these. */
+ case r_move_input: /* 1<&2- */
+ case r_move_output: /* 1>&2- */
+ case r_move_input_word: /* 1<&$foo- */
+ case r_move_output_word: /* 1>&$foo- */
+ break;
+
+ /* The way the lexer works we have to do this here. */
+ case r_duplicating_input_word: /* 1<&$foo */
+ case r_duplicating_output_word: /* 1>&$foo */
+ w = dest_and_filename.filename;
+ wlen = strlen (w->word) - 1;
+ if (w->word[wlen] == '-') /* Yuck */
+ {
+ w->word[wlen] = '\0';
+ if (all_digits (w->word) && legal_number (w->word, &lfd) && lfd == (int)lfd)
+ {
+ dispose_word (w);
+ temp->instruction = (instruction == r_duplicating_input_word) ? r_move_input : r_move_output;
+ temp->redirectee.dest = lfd;
+ }
+ else
+ temp->instruction = (instruction == r_duplicating_input_word) ? r_move_input_word : r_move_output_word;
+ }
+
+ break;
+
+ default:
+ programming_error (_("make_redirection: redirection instruction `%d' out of range"), instruction);
+ abort ();
+ break;
+ }
+ return (temp);
+}
+
+COMMAND *
+make_function_def (name, command, lineno, lstart)
+ WORD_DESC *name;
+ COMMAND *command;
+ int lineno, lstart;
+{
+ FUNCTION_DEF *temp;
+#if defined (ARRAY_VARS)
+ SHELL_VAR *bash_source_v;
+ ARRAY *bash_source_a;
+#endif
+
+ temp = (FUNCTION_DEF *)xmalloc (sizeof (FUNCTION_DEF));
+ temp->command = command;
+ temp->name = name;
+ temp->line = lineno;
+ temp->flags = 0;
+ command->line = lstart;
+
+ /* Information used primarily for debugging. */
+ temp->source_file = 0;
+#if defined (ARRAY_VARS)
+ GET_ARRAY_FROM_VAR ("BASH_SOURCE", bash_source_v, bash_source_a);
+ if (bash_source_a && array_num_elements (bash_source_a) > 0)
+ temp->source_file = array_reference (bash_source_a, 0);
+#endif
+#if defined (DEBUGGER)
+ bind_function_def (name->word, temp);
+#endif
+
+ temp->source_file = 0;
+ return (make_command (cm_function_def, (SIMPLE_COM *)temp));
+}
+
+COMMAND *
+make_subshell_command (command)
+ COMMAND *command;
+{
+ SUBSHELL_COM *temp;
+
+ temp = (SUBSHELL_COM *)xmalloc (sizeof (SUBSHELL_COM));
+ temp->command = command;
+ temp->flags = CMD_WANT_SUBSHELL;
+ return (make_command (cm_subshell, (SIMPLE_COM *)temp));
+}
+
+COMMAND *
+make_coproc_command (name, command)
+ char *name;
+ COMMAND *command;
+{
+ COPROC_COM *temp;
+
+ temp = (COPROC_COM *)xmalloc (sizeof (COPROC_COM));
+ temp->name = savestring (name);
+ temp->command = command;
+ temp->flags = CMD_WANT_SUBSHELL|CMD_COPROC_SUBSHELL;
+ return (make_command (cm_coproc, (SIMPLE_COM *)temp));
+}
+
+/* Reverse the word list and redirection list in the simple command
+ has just been parsed. It seems simpler to do this here the one
+ time then by any other method that I can think of. */
+COMMAND *
+clean_simple_command (command)
+ COMMAND *command;
+{
+ if (command->type != cm_simple)
+ command_error ("clean_simple_command", CMDERR_BADTYPE, command->type, 0);
+ else
+ {
+ command->value.Simple->words =
+ REVERSE_LIST (command->value.Simple->words, WORD_LIST *);
+ command->value.Simple->redirects =
+ REVERSE_LIST (command->value.Simple->redirects, REDIRECT *);
+ }
+
+ parser_state &= ~PST_REDIRLIST;
+ return (command);
+}
+
+/* The Yacc grammar productions have a problem, in that they take a
+ list followed by an ampersand (`&') and do a simple command connection,
+ making the entire list effectively asynchronous, instead of just
+ the last command. This means that when the list is executed, all
+ the commands have stdin set to /dev/null when job control is not
+ active, instead of just the last. This is wrong, and needs fixing
+ up. This function takes the `&' and applies it to the last command
+ in the list. This is done only for lists connected by `;'; it makes
+ `;' bind `tighter' than `&'. */
+COMMAND *
+connect_async_list (command, command2, connector)
+ COMMAND *command, *command2;
+ int connector;
+{
+ COMMAND *t, *t1, *t2;
+
+ t1 = command;
+ t = command->value.Connection->second;
+
+ if (!t || (command->flags & CMD_WANT_SUBSHELL) ||
+ command->value.Connection->connector != ';')
+ {
+ t = command_connect (command, command2, connector);
+ return t;
+ }
+
+ /* This is just defensive programming. The Yacc precedence rules
+ will generally hand this function a command where t points directly
+ to the command we want (e.g. given a ; b ; c ; d &, t1 will point
+ to the `a ; b ; c' list and t will be the `d'). We only want to do
+ this if the list is not being executed as a unit in the background
+ with `( ... )', so we have to check for CMD_WANT_SUBSHELL. That's
+ the only way to tell. */
+ while (((t->flags & CMD_WANT_SUBSHELL) == 0) && t->type == cm_connection &&
+ t->value.Connection->connector == ';')
+ {
+ t1 = t;
+ t = t->value.Connection->second;
+ }
+ /* Now we have t pointing to the last command in the list, and
+ t1->value.Connection->second == t. */
+ t2 = command_connect (t, command2, connector);
+ t1->value.Connection->second = t2;
+ return command;
+}
old = change_flag ('x', FLAG_OFF);
ps4 = decode_prompt_string (ps4);
- if (old == FLAG_ON)
+ if (old)
change_flag ('x', FLAG_ON);
if (ps4 == 0 || *ps4 == '\0')
--- /dev/null
+/* print_command -- A way to make readable commands from a command tree. */
+
+/* Copyright (C) 1989-2011 Free Software Foundation, Inc.
+
+ This file is part of GNU Bash, the Bourne Again SHell.
+
+ Bash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Bash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Bash. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "config.h"
+
+#include <stdio.h>
+
+#if defined (HAVE_UNISTD_H)
+# ifdef _MINIX
+# include <sys/types.h>
+# endif
+# include <unistd.h>
+#endif
+
+#if defined (PREFER_STDARG)
+# include <stdarg.h>
+#else
+# include <varargs.h>
+#endif
+
+#include "bashansi.h"
+#include "bashintl.h"
+
+#include "shell.h"
+#include "flags.h"
+#include <y.tab.h> /* use <...> so we pick it up from the build directory */
+
+#include "shmbutil.h"
+
+#include "builtins/common.h"
+
+#if !HAVE_DECL_PRINTF
+extern int printf __P((const char *, ...)); /* Yuck. Double yuck. */
+#endif
+
+extern int indirection_level;
+
+static int indentation;
+static int indentation_amount = 4;
+
+#if defined (PREFER_STDARG)
+typedef void PFUNC __P((const char *, ...));
+
+static void cprintf __P((const char *, ...)) __attribute__((__format__ (printf, 1, 2)));
+static void xprintf __P((const char *, ...)) __attribute__((__format__ (printf, 1, 2)));
+#else
+#define PFUNC VFunction
+static void cprintf ();
+static void xprintf ();
+#endif
+
+static void reset_locals __P((void));
+static void newline __P((char *));
+static void indent __P((int));
+static void semicolon __P((void));
+static void the_printed_command_resize __P((int));
+
+static void make_command_string_internal __P((COMMAND *));
+static void _print_word_list __P((WORD_LIST *, char *, PFUNC *));
+static void command_print_word_list __P((WORD_LIST *, char *));
+static void print_case_clauses __P((PATTERN_LIST *));
+static void print_redirection_list __P((REDIRECT *));
+static void print_redirection __P((REDIRECT *));
+static void print_heredoc_header __P((REDIRECT *));
+static void print_heredoc_body __P((REDIRECT *));
+static void print_heredocs __P((REDIRECT *));
+static void print_deferred_heredocs __P((const char *));
+
+static void print_for_command __P((FOR_COM *));
+#if defined (ARITH_FOR_COMMAND)
+static void print_arith_for_command __P((ARITH_FOR_COM *));
+#endif
+#if defined (SELECT_COMMAND)
+static void print_select_command __P((SELECT_COM *));
+#endif
+static void print_group_command __P((GROUP_COM *));
+static void print_case_command __P((CASE_COM *));
+static void print_while_command __P((WHILE_COM *));
+static void print_until_command __P((WHILE_COM *));
+static void print_until_or_while __P((WHILE_COM *, char *));
+static void print_if_command __P((IF_COM *));
+#if defined (COND_COMMAND)
+static void print_cond_node __P((COND_COM *));
+#endif
+static void print_function_def __P((FUNCTION_DEF *));
+
+#define PRINTED_COMMAND_INITIAL_SIZE 64
+#define PRINTED_COMMAND_GROW_SIZE 128
+
+char *the_printed_command = (char *)NULL;
+int the_printed_command_size = 0;
+int command_string_index = 0;
+
+int xtrace_fd = -1;
+FILE *xtrace_fp = 0;
+
+#define CHECK_XTRACE_FP xtrace_fp = (xtrace_fp ? xtrace_fp : stderr)
+
+#define PRINT_DEFERRED_HEREDOCS(x) \
+ do { \
+ if (deferred_heredocs) \
+ print_deferred_heredocs (x); \
+ } while (0)
+
+/* Non-zero means the stuff being printed is inside of a function def. */
+static int inside_function_def;
+static int skip_this_indent;
+static int was_heredoc;
+static int printing_connection;
+static REDIRECT *deferred_heredocs;
+
+/* The depth of the group commands that we are currently printing. This
+ includes the group command that is a function body. */
+static int group_command_nesting;
+
+/* A buffer to indicate the indirection level (PS4) when set -x is enabled. */
+static char *indirection_string = 0;
+static int indirection_stringsiz = 0;
+
+/* Print COMMAND (a command tree) on standard output. */
+void
+print_command (command)
+ COMMAND *command;
+{
+ command_string_index = 0;
+ printf ("%s", make_command_string (command));
+}
+
+/* Make a string which is the printed representation of the command
+ tree in COMMAND. We return this string. However, the string is
+ not consed, so you have to do that yourself if you want it to
+ remain around. */
+char *
+make_command_string (command)
+ COMMAND *command;
+{
+ command_string_index = was_heredoc = 0;
+ deferred_heredocs = 0;
+ make_command_string_internal (command);
+ return (the_printed_command);
+}
+
+/* The internal function. This is the real workhorse. */
+static void
+make_command_string_internal (command)
+ COMMAND *command;
+{
+ char s[3];
+
+ if (command == 0)
+ cprintf ("");
+ else
+ {
+ if (skip_this_indent)
+ skip_this_indent--;
+ else
+ indent (indentation);
+
+ if (command->flags & CMD_TIME_PIPELINE)
+ {
+ cprintf ("time ");
+ if (command->flags & CMD_TIME_POSIX)
+ cprintf ("-p ");
+ }
+
+ if (command->flags & CMD_INVERT_RETURN)
+ cprintf ("! ");
+
+ switch (command->type)
+ {
+ case cm_for:
+ print_for_command (command->value.For);
+ break;
+
+#if defined (ARITH_FOR_COMMAND)
+ case cm_arith_for:
+ print_arith_for_command (command->value.ArithFor);
+ break;
+#endif
+
+#if defined (SELECT_COMMAND)
+ case cm_select:
+ print_select_command (command->value.Select);
+ break;
+#endif
+
+ case cm_case:
+ print_case_command (command->value.Case);
+ break;
+
+ case cm_while:
+ print_while_command (command->value.While);
+ break;
+
+ case cm_until:
+ print_until_command (command->value.While);
+ break;
+
+ case cm_if:
+ print_if_command (command->value.If);
+ break;
+
+#if defined (DPAREN_ARITHMETIC)
+ case cm_arith:
+ print_arith_command (command->value.Arith->exp);
+ break;
+#endif
+
+#if defined (COND_COMMAND)
+ case cm_cond:
+ print_cond_command (command->value.Cond);
+ break;
+#endif
+
+ case cm_simple:
+ print_simple_command (command->value.Simple);
+ break;
+
+ case cm_connection:
+
+ skip_this_indent++;
+ printing_connection++;
+ make_command_string_internal (command->value.Connection->first);
+
+ switch (command->value.Connection->connector)
+ {
+ case '&':
+ case '|':
+ {
+ char c = command->value.Connection->connector;
+
+ s[0] = ' ';
+ s[1] = c;
+ s[2] = '\0';
+
+ print_deferred_heredocs (s);
+
+ if (c != '&' || command->value.Connection->second)
+ {
+ cprintf (" ");
+ skip_this_indent++;
+ }
+ }
+ break;
+
+ case AND_AND:
+ print_deferred_heredocs (" && ");
+ if (command->value.Connection->second)
+ skip_this_indent++;
+ break;
+
+ case OR_OR:
+ print_deferred_heredocs (" || ");
+ if (command->value.Connection->second)
+ skip_this_indent++;
+ break;
+
+ case ';':
+ if (deferred_heredocs == 0)
+ {
+ if (was_heredoc == 0)
+ cprintf (";");
+ else
+ was_heredoc = 0;
+ }
+ else
+ print_deferred_heredocs (inside_function_def ? "" : ";");
+
+ if (inside_function_def)
+ cprintf ("\n");
+ else
+ {
+ cprintf (" ");
+ if (command->value.Connection->second)
+ skip_this_indent++;
+ }
+ break;
+
+ default:
+ cprintf (_("print_command: bad connector `%d'"),
+ command->value.Connection->connector);
+ break;
+ }
+
+ make_command_string_internal (command->value.Connection->second);
+ PRINT_DEFERRED_HEREDOCS ("");
+ printing_connection--;
+ break;
+
+ case cm_function_def:
+ print_function_def (command->value.Function_def);
+ break;
+
+ case cm_group:
+ print_group_command (command->value.Group);
+ break;
+
+ case cm_subshell:
+ cprintf ("( ");
+ skip_this_indent++;
+ make_command_string_internal (command->value.Subshell->command);
+ PRINT_DEFERRED_HEREDOCS ("");
+ cprintf (" )");
+ break;
+
+ case cm_coproc:
+ cprintf ("coproc %s ", command->value.Coproc->name);
+ skip_this_indent++;
+ make_command_string_internal (command->value.Coproc->command);
+ break;
+
+ default:
+ command_error ("print_command", CMDERR_BADTYPE, command->type, 0);
+ break;
+ }
+
+
+ if (command->redirects)
+ {
+ cprintf (" ");
+ print_redirection_list (command->redirects);
+ }
+ }
+}
+
+static void
+_print_word_list (list, separator, pfunc)
+ WORD_LIST *list;
+ char *separator;
+ PFUNC *pfunc;
+{
+ WORD_LIST *w;
+
+ for (w = list; w; w = w->next)
+ (*pfunc) ("%s%s", w->word->word, w->next ? separator : "");
+}
+
+void
+print_word_list (list, separator)
+ WORD_LIST *list;
+ char *separator;
+{
+ _print_word_list (list, separator, xprintf);
+}
+
+void
+xtrace_set (fd, fp)
+ int fd;
+ FILE *fp;
+{
+ if (fd >= 0 && sh_validfd (fd) == 0)
+ {
+ internal_error (_("xtrace_set: %d: invalid file descriptor"), fd);
+ return;
+ }
+ if (fp == 0)
+ {
+ internal_error (_("xtrace_set: NULL file pointer"));
+ return;
+ }
+ if (fd >= 0 && fileno (fp) != fd)
+ internal_warning (_("xtrace fd (%d) != fileno xtrace fp (%d)"), fd, fileno (fp));
+
+ xtrace_fd = fd;
+ xtrace_fp = fp;
+}
+
+void
+xtrace_init ()
+{
+ xtrace_set (-1, stderr);
+}
+
+void
+xtrace_reset ()
+{
+ if (xtrace_fd >= 0 && xtrace_fp)
+ {
+ fflush (xtrace_fp);
+ fclose (xtrace_fp);
+ }
+ else if (xtrace_fd >= 0)
+ close (xtrace_fd);
+
+ xtrace_fd = -1;
+ xtrace_fp = stderr;
+}
+
+void
+xtrace_fdchk (fd)
+ int fd;
+{
+ if (fd == xtrace_fd)
+ xtrace_reset ();
+}
+
+/* Return a string denoting what our indirection level is. */
+
+char *
+indirection_level_string ()
+{
+ register int i, j;
+ char *ps4;
+ char ps4_firstc[MB_LEN_MAX+1];
+ int ps4_firstc_len, ps4_len, ineed, old;
+
+ ps4 = get_string_value ("PS4");
+ if (indirection_string == 0)
+ indirection_string = xmalloc (indirection_stringsiz = 100);
+ indirection_string[0] = '\0';
+
+ if (ps4 == 0 || *ps4 == '\0')
+ return (indirection_string);
+
+ old = change_flag ('x', FLAG_OFF);
+ ps4 = decode_prompt_string (ps4);
+ if (old == FLAG_ON)
+ change_flag ('x', FLAG_ON);
+
+ if (ps4 == 0 || *ps4 == '\0')
+ return (indirection_string);
+
+#if defined (HANDLE_MULTIBYTE)
+ ps4_len = strnlen (ps4, MB_CUR_MAX);
+ ps4_firstc_len = MBLEN (ps4, ps4_len);
+ if (ps4_firstc_len == 1 || ps4_firstc_len == 0 || ps4_firstc_len < 0)
+ {
+ ps4_firstc[0] = ps4[0];
+ ps4_firstc[ps4_firstc_len = 1] = '\0';
+ }
+ else
+ memcpy (ps4_firstc, ps4, ps4_firstc_len);
+#else
+ ps4_firstc[0] = ps4[0];
+ ps4_firstc[ps4_firstc_len = 1] = '\0';
+#endif
+
+ /* Dynamically resize indirection_string so we have room for everything
+ and we don't have to truncate ps4 */
+ ineed = (ps4_firstc_len * indirection_level) + strlen (ps4);
+ if (ineed > indirection_stringsiz - 1)
+ {
+ indirection_stringsiz = ineed + 1;
+ indirection_string = xrealloc (indirection_string, indirection_stringsiz);
+ }
+
+ for (i = j = 0; ps4_firstc[0] && j < indirection_level && i < indirection_stringsiz - 1; i += ps4_firstc_len, j++)
+ {
+ if (ps4_firstc_len == 1)
+ indirection_string[i] = ps4_firstc[0];
+ else
+ memcpy (indirection_string+i, ps4_firstc, ps4_firstc_len);
+ }
+
+ for (j = ps4_firstc_len; *ps4 && ps4[j] && i < indirection_stringsiz - 1; i++, j++)
+ indirection_string[i] = ps4[j];
+
+ indirection_string[i] = '\0';
+ free (ps4);
+ return (indirection_string);
+}
+
+void
+xtrace_print_assignment (name, value, assign_list, xflags)
+ char *name, *value;
+ int assign_list, xflags;
+{
+ char *nval;
+
+ CHECK_XTRACE_FP;
+
+ if (xflags)
+ fprintf (xtrace_fp, "%s", indirection_level_string ());
+
+ /* VALUE should not be NULL when this is called. */
+ if (*value == '\0' || assign_list)
+ nval = value;
+ else if (sh_contains_shell_metas (value))
+ nval = sh_single_quote (value);
+ else if (ansic_shouldquote (value))
+ nval = ansic_quote (value, 0, (int *)0);
+ else
+ nval = value;
+
+ if (assign_list)
+ fprintf (xtrace_fp, "%s=(%s)\n", name, nval);
+ else
+ fprintf (xtrace_fp, "%s=%s\n", name, nval);
+
+ if (nval != value)
+ FREE (nval);
+
+ fflush (xtrace_fp);
+}
+
+/* A function to print the words of a simple command when set -x is on. */
+void
+xtrace_print_word_list (list, xtflags)
+ WORD_LIST *list;
+ int xtflags;
+{
+ WORD_LIST *w;
+ char *t, *x;
+
+ CHECK_XTRACE_FP;
+
+ if (xtflags)
+ fprintf (xtrace_fp, "%s", indirection_level_string ());
+
+ for (w = list; w; w = w->next)
+ {
+ t = w->word->word;
+ if (t == 0 || *t == '\0')
+ fprintf (xtrace_fp, "''%s", w->next ? " " : "");
+ else if (sh_contains_shell_metas (t))
+ {
+ x = sh_single_quote (t);
+ fprintf (xtrace_fp, "%s%s", x, w->next ? " " : "");
+ free (x);
+ }
+ else if (ansic_shouldquote (t))
+ {
+ x = ansic_quote (t, 0, (int *)0);
+ fprintf (xtrace_fp, "%s%s", x, w->next ? " " : "");
+ free (x);
+ }
+ else
+ fprintf (xtrace_fp, "%s%s", t, w->next ? " " : "");
+ }
+ fprintf (xtrace_fp, "\n");
+ fflush (xtrace_fp);
+}
+
+static void
+command_print_word_list (list, separator)
+ WORD_LIST *list;
+ char *separator;
+{
+ _print_word_list (list, separator, cprintf);
+}
+
+void
+print_for_command_head (for_command)
+ FOR_COM *for_command;
+{
+ cprintf ("for %s in ", for_command->name->word);
+ command_print_word_list (for_command->map_list, " ");
+}
+
+void
+xtrace_print_for_command_head (for_command)
+ FOR_COM *for_command;
+{
+ CHECK_XTRACE_FP;
+ fprintf (xtrace_fp, "%s", indirection_level_string ());
+ fprintf (xtrace_fp, "for %s in ", for_command->name->word);
+ xtrace_print_word_list (for_command->map_list, 0);
+}
+
+static void
+print_for_command (for_command)
+ FOR_COM *for_command;
+{
+ print_for_command_head (for_command);
+ cprintf (";");
+ newline ("do\n");
+
+ indentation += indentation_amount;
+ make_command_string_internal (for_command->action);
+ PRINT_DEFERRED_HEREDOCS ("");
+ semicolon ();
+ indentation -= indentation_amount;
+
+ newline ("done");
+}
+
+#if defined (ARITH_FOR_COMMAND)
+static void
+print_arith_for_command (arith_for_command)
+ ARITH_FOR_COM *arith_for_command;
+{
+ cprintf ("for ((");
+ command_print_word_list (arith_for_command->init, " ");
+ cprintf ("; ");
+ command_print_word_list (arith_for_command->test, " ");
+ cprintf ("; ");
+ command_print_word_list (arith_for_command->step, " ");
+ cprintf ("))");
+ newline ("do\n");
+ indentation += indentation_amount;
+ make_command_string_internal (arith_for_command->action);
+ PRINT_DEFERRED_HEREDOCS ("");
+ semicolon ();
+ indentation -= indentation_amount;
+ newline ("done");
+}
+#endif /* ARITH_FOR_COMMAND */
+
+#if defined (SELECT_COMMAND)
+void
+print_select_command_head (select_command)
+ SELECT_COM *select_command;
+{
+ cprintf ("select %s in ", select_command->name->word);
+ command_print_word_list (select_command->map_list, " ");
+}
+
+void
+xtrace_print_select_command_head (select_command)
+ SELECT_COM *select_command;
+{
+ CHECK_XTRACE_FP;
+ fprintf (xtrace_fp, "%s", indirection_level_string ());
+ fprintf (xtrace_fp, "select %s in ", select_command->name->word);
+ xtrace_print_word_list (select_command->map_list, 0);
+}
+
+static void
+print_select_command (select_command)
+ SELECT_COM *select_command;
+{
+ print_select_command_head (select_command);
+
+ cprintf (";");
+ newline ("do\n");
+ indentation += indentation_amount;
+ make_command_string_internal (select_command->action);
+ PRINT_DEFERRED_HEREDOCS ("");
+ semicolon ();
+ indentation -= indentation_amount;
+ newline ("done");
+}
+#endif /* SELECT_COMMAND */
+
+static void
+print_group_command (group_command)
+ GROUP_COM *group_command;
+{
+ group_command_nesting++;
+ cprintf ("{ ");
+
+ if (inside_function_def == 0)
+ skip_this_indent++;
+ else
+ {
+ /* This is a group command { ... } inside of a function
+ definition, and should be printed as a multiline group
+ command, using the current indentation. */
+ cprintf ("\n");
+ indentation += indentation_amount;
+ }
+
+ make_command_string_internal (group_command->command);
+ PRINT_DEFERRED_HEREDOCS ("");
+
+ if (inside_function_def)
+ {
+ cprintf ("\n");
+ indentation -= indentation_amount;
+ indent (indentation);
+ }
+ else
+ {
+ semicolon ();
+ cprintf (" ");
+ }
+
+ cprintf ("}");
+
+ group_command_nesting--;
+}
+
+void
+print_case_command_head (case_command)
+ CASE_COM *case_command;
+{
+ cprintf ("case %s in ", case_command->word->word);
+}
+
+void
+xtrace_print_case_command_head (case_command)
+ CASE_COM *case_command;
+{
+ CHECK_XTRACE_FP;
+ fprintf (xtrace_fp, "%s", indirection_level_string ());
+ fprintf (xtrace_fp, "case %s in\n", case_command->word->word);
+}
+
+static void
+print_case_command (case_command)
+ CASE_COM *case_command;
+{
+ print_case_command_head (case_command);
+
+ if (case_command->clauses)
+ print_case_clauses (case_command->clauses);
+ newline ("esac");
+}
+
+static void
+print_case_clauses (clauses)
+ PATTERN_LIST *clauses;
+{
+ indentation += indentation_amount;
+ while (clauses)
+ {
+ newline ("");
+ command_print_word_list (clauses->patterns, " | ");
+ cprintf (")\n");
+ indentation += indentation_amount;
+ make_command_string_internal (clauses->action);
+ indentation -= indentation_amount;
+ PRINT_DEFERRED_HEREDOCS ("");
+ if (clauses->flags & CASEPAT_FALLTHROUGH)
+ newline (";&");
+ else if (clauses->flags & CASEPAT_TESTNEXT)
+ newline (";;&");
+ else
+ newline (";;");
+ clauses = clauses->next;
+ }
+ indentation -= indentation_amount;
+}
+
+static void
+print_while_command (while_command)
+ WHILE_COM *while_command;
+{
+ print_until_or_while (while_command, "while");
+}
+
+static void
+print_until_command (while_command)
+ WHILE_COM *while_command;
+{
+ print_until_or_while (while_command, "until");
+}
+
+static void
+print_until_or_while (while_command, which)
+ WHILE_COM *while_command;
+ char *which;
+{
+ cprintf ("%s ", which);
+ skip_this_indent++;
+ make_command_string_internal (while_command->test);
+ PRINT_DEFERRED_HEREDOCS ("");
+ semicolon ();
+ cprintf (" do\n"); /* was newline ("do\n"); */
+ indentation += indentation_amount;
+ make_command_string_internal (while_command->action);
+ PRINT_DEFERRED_HEREDOCS ("");
+ indentation -= indentation_amount;
+ semicolon ();
+ newline ("done");
+}
+
+static void
+print_if_command (if_command)
+ IF_COM *if_command;
+{
+ cprintf ("if ");
+ skip_this_indent++;
+ make_command_string_internal (if_command->test);
+ semicolon ();
+ cprintf (" then\n");
+ indentation += indentation_amount;
+ make_command_string_internal (if_command->true_case);
+ PRINT_DEFERRED_HEREDOCS ("");
+ indentation -= indentation_amount;
+
+ if (if_command->false_case)
+ {
+ semicolon ();
+ newline ("else\n");
+ indentation += indentation_amount;
+ make_command_string_internal (if_command->false_case);
+ PRINT_DEFERRED_HEREDOCS ("");
+ indentation -= indentation_amount;
+ }
+ semicolon ();
+ newline ("fi");
+}
+
+#if defined (DPAREN_ARITHMETIC)
+void
+print_arith_command (arith_cmd_list)
+ WORD_LIST *arith_cmd_list;
+{
+ cprintf ("((");
+ command_print_word_list (arith_cmd_list, " ");
+ cprintf ("))");
+}
+#endif
+
+#if defined (COND_COMMAND)
+static void
+print_cond_node (cond)
+ COND_COM *cond;
+{
+ if (cond->flags & CMD_INVERT_RETURN)
+ cprintf ("! ");
+
+ if (cond->type == COND_EXPR)
+ {
+ cprintf ("( ");
+ print_cond_node (cond->left);
+ cprintf (" )");
+ }
+ else if (cond->type == COND_AND)
+ {
+ print_cond_node (cond->left);
+ cprintf (" && ");
+ print_cond_node (cond->right);
+ }
+ else if (cond->type == COND_OR)
+ {
+ print_cond_node (cond->left);
+ cprintf (" || ");
+ print_cond_node (cond->right);
+ }
+ else if (cond->type == COND_UNARY)
+ {
+ cprintf ("%s", cond->op->word);
+ cprintf (" ");
+ print_cond_node (cond->left);
+ }
+ else if (cond->type == COND_BINARY)
+ {
+ print_cond_node (cond->left);
+ cprintf (" ");
+ cprintf ("%s", cond->op->word);
+ cprintf (" ");
+ print_cond_node (cond->right);
+ }
+ else if (cond->type == COND_TERM)
+ {
+ cprintf ("%s", cond->op->word); /* need to add quoting here */
+ }
+}
+
+void
+print_cond_command (cond)
+ COND_COM *cond;
+{
+ cprintf ("[[ ");
+ print_cond_node (cond);
+ cprintf (" ]]");
+}
+
+#ifdef DEBUG
+void
+debug_print_cond_command (cond)
+ COND_COM *cond;
+{
+ fprintf (stderr, "DEBUG: ");
+ command_string_index = 0;
+ print_cond_command (cond);
+ fprintf (stderr, "%s\n", the_printed_command);
+}
+#endif
+
+void
+xtrace_print_cond_term (type, invert, op, arg1, arg2)
+ int type, invert;
+ WORD_DESC *op;
+ char *arg1, *arg2;
+{
+ CHECK_XTRACE_FP;
+ command_string_index = 0;
+ fprintf (xtrace_fp, "%s", indirection_level_string ());
+ fprintf (xtrace_fp, "[[ ");
+ if (invert)
+ fprintf (xtrace_fp, "! ");
+
+ if (type == COND_UNARY)
+ {
+ fprintf (xtrace_fp, "%s ", op->word);
+ fprintf (xtrace_fp, "%s", (arg1 && *arg1) ? arg1 : "''");
+ }
+ else if (type == COND_BINARY)
+ {
+ fprintf (xtrace_fp, "%s", (arg1 && *arg1) ? arg1 : "''");
+ fprintf (xtrace_fp, " %s ", op->word);
+ fprintf (xtrace_fp, "%s", (arg2 && *arg2) ? arg2 : "''");
+ }
+
+ fprintf (xtrace_fp, " ]]\n");
+
+ fflush (xtrace_fp);
+}
+#endif /* COND_COMMAND */
+
+#if defined (DPAREN_ARITHMETIC) || defined (ARITH_FOR_COMMAND)
+/* A function to print the words of an arithmetic command when set -x is on. */
+void
+xtrace_print_arith_cmd (list)
+ WORD_LIST *list;
+{
+ WORD_LIST *w;
+
+ CHECK_XTRACE_FP;
+ fprintf (xtrace_fp, "%s", indirection_level_string ());
+ fprintf (xtrace_fp, "(( ");
+ for (w = list; w; w = w->next)
+ fprintf (xtrace_fp, "%s%s", w->word->word, w->next ? " " : "");
+ fprintf (xtrace_fp, " ))\n");
+
+ fflush (xtrace_fp);
+}
+#endif
+
+void
+print_simple_command (simple_command)
+ SIMPLE_COM *simple_command;
+{
+ command_print_word_list (simple_command->words, " ");
+
+ if (simple_command->redirects)
+ {
+ cprintf (" ");
+ print_redirection_list (simple_command->redirects);
+ }
+}
+
+static void
+print_heredocs (heredocs)
+ REDIRECT *heredocs;
+{
+ REDIRECT *hdtail;
+
+ cprintf (" ");
+ for (hdtail = heredocs; hdtail; hdtail = hdtail->next)
+ {
+ print_redirection (hdtail);
+ cprintf ("\n");
+ }
+ was_heredoc = 1;
+}
+
+/* Print heredocs that are attached to the command before the connector
+ represented by CSTRING. The parsing semantics require us to print the
+ here-doc delimiters, then the connector (CSTRING), then the here-doc
+ bodies. We don't print the connector if it's a `;', but we use it to
+ note not to print an extra space after the last heredoc body and
+ newline. */
+static void
+print_deferred_heredocs (cstring)
+ const char *cstring;
+{
+ REDIRECT *hdtail;
+
+ for (hdtail = deferred_heredocs; hdtail; hdtail = hdtail->next)
+ {
+ cprintf (" ");
+ print_heredoc_header (hdtail);
+ }
+ if (cstring[0] && (cstring[0] != ';' || cstring[1]))
+ cprintf ("%s", cstring);
+ if (deferred_heredocs)
+ cprintf ("\n");
+ for (hdtail = deferred_heredocs; hdtail; hdtail = hdtail->next)
+ {
+ print_heredoc_body (hdtail);
+ cprintf ("\n");
+ }
+ if (deferred_heredocs)
+ {
+ if (cstring && cstring[0] && (cstring[0] != ';' || cstring[1]))
+ cprintf (" "); /* make sure there's at least one space */
+ dispose_redirects (deferred_heredocs);
+ was_heredoc = 1;
+ }
+ deferred_heredocs = (REDIRECT *)NULL;
+}
+
+static void
+print_redirection_list (redirects)
+ REDIRECT *redirects;
+{
+ REDIRECT *heredocs, *hdtail, *newredir;
+
+ heredocs = (REDIRECT *)NULL;
+ hdtail = heredocs;
+
+ was_heredoc = 0;
+ while (redirects)
+ {
+ /* Defer printing the here documents until we've printed the
+ rest of the redirections. */
+ if (redirects->instruction == r_reading_until || redirects->instruction == r_deblank_reading_until)
+ {
+ newredir = copy_redirect (redirects);
+ newredir->next = (REDIRECT *)NULL;
+ if (heredocs)
+ {
+ hdtail->next = newredir;
+ hdtail = newredir;
+ }
+ else
+ hdtail = heredocs = newredir;
+ }
+ else if (redirects->instruction == r_duplicating_output_word && redirects->redirector.dest == 1)
+ {
+ /* Temporarily translate it as the execution code does. */
+ redirects->instruction = r_err_and_out;
+ print_redirection (redirects);
+ redirects->instruction = r_duplicating_output_word;
+ }
+ else
+ print_redirection (redirects);
+
+ redirects = redirects->next;
+ if (redirects)
+ cprintf (" ");
+ }
+
+ /* Now that we've printed all the other redirections (on one line),
+ print the here documents. */
+ if (heredocs && printing_connection)
+ deferred_heredocs = heredocs;
+ else if (heredocs)
+ {
+ print_heredocs (heredocs);
+ dispose_redirects (heredocs);
+ }
+}
+
+static void
+print_heredoc_header (redirect)
+ REDIRECT *redirect;
+{
+ int kill_leading;
+ char *x;
+
+ kill_leading = redirect->instruction == r_deblank_reading_until;
+
+ /* Here doc header */
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redirect->redirector.filename->word);
+ else if (redirect->redirector.dest != 0)
+ cprintf ("%d", redirect->redirector.dest);
+
+ /* If the here document delimiter is quoted, single-quote it. */
+ if (redirect->redirectee.filename->flags & W_QUOTED)
+ {
+ x = sh_single_quote (redirect->here_doc_eof);
+ cprintf ("<<%s%s", kill_leading ? "-" : "", x);
+ free (x);
+ }
+ else
+ cprintf ("<<%s%s", kill_leading ? "-" : "", redirect->here_doc_eof);
+}
+
+static void
+print_heredoc_body (redirect)
+ REDIRECT *redirect;
+{
+ /* Here doc body */
+ cprintf ("%s%s", redirect->redirectee.filename->word, redirect->here_doc_eof);
+}
+
+static void
+print_redirection (redirect)
+ REDIRECT *redirect;
+{
+ int redirector, redir_fd;
+ WORD_DESC *redirectee, *redir_word;
+
+ redirectee = redirect->redirectee.filename;
+ redir_fd = redirect->redirectee.dest;
+
+ redir_word = redirect->redirector.filename;
+ redirector = redirect->redirector.dest;
+
+ switch (redirect->instruction)
+ {
+ case r_input_direction:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 0)
+ cprintf ("%d", redirector);
+ cprintf ("< %s", redirectee->word);
+ break;
+
+ case r_output_direction:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 1)
+ cprintf ("%d", redirector);
+ cprintf ("> %s", redirectee->word);
+ break;
+
+ case r_inputa_direction: /* Redirection created by the shell. */
+ cprintf ("&");
+ break;
+
+ case r_output_force:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 1)
+ cprintf ("%d", redirector);
+ cprintf (">|%s", redirectee->word);
+ break;
+
+ case r_appending_to:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 1)
+ cprintf ("%d", redirector);
+ cprintf (">> %s", redirectee->word);
+ break;
+
+ case r_input_output:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 1)
+ cprintf ("%d", redirector);
+ cprintf ("<> %s", redirectee->word);
+ break;
+
+ case r_deblank_reading_until:
+ case r_reading_until:
+ print_heredoc_header (redirect);
+ cprintf ("\n");
+ print_heredoc_body (redirect);
+ break;
+
+ case r_reading_string:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}", redir_word->word);
+ else if (redirector != 0)
+ cprintf ("%d", redirector);
+#if 0
+ /* Don't need to check whether or not to requote, since original quotes
+ are still intact. The only thing that has happened is that $'...'
+ has been replaced with 'expanded ...'. */
+ if (ansic_shouldquote (redirect->redirectee.filename->word))
+ {
+ char *x;
+ x = ansic_quote (redirect->redirectee.filename->word, 0, (int *)0);
+ cprintf ("<<< %s", x);
+ free (x);
+ }
+ else
+#endif
+ cprintf ("<<< %s", redirect->redirectee.filename->word);
+ break;
+
+ case r_duplicating_input:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}<&%d", redir_word->word, redir_fd);
+ else
+ cprintf ("%d<&%d", redirector, redir_fd);
+ break;
+
+ case r_duplicating_output:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}>&%d", redir_word->word, redir_fd);
+ else
+ cprintf ("%d>&%d", redirector, redir_fd);
+ break;
+
+ case r_duplicating_input_word:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}<&%s", redir_word->word, redirectee->word);
+ else
+ cprintf ("%d<&%s", redirector, redirectee->word);
+ break;
+
+ case r_duplicating_output_word:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}>&%s", redir_word->word, redirectee->word);
+ else
+ cprintf ("%d>&%s", redirector, redirectee->word);
+ break;
+
+ case r_move_input:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}<&%d-", redir_word->word, redir_fd);
+ else
+ cprintf ("%d<&%d-", redirector, redir_fd);
+ break;
+
+ case r_move_output:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}>&%d-", redir_word->word, redir_fd);
+ else
+ cprintf ("%d>&%d-", redirector, redir_fd);
+ break;
+
+ case r_move_input_word:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}<&%s-", redir_word->word, redirectee->word);
+ else
+ cprintf ("%d<&%s-", redirector, redirectee->word);
+ break;
+
+ case r_move_output_word:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}>&%s-", redir_word->word, redirectee->word);
+ else
+ cprintf ("%d>&%s-", redirector, redirectee->word);
+ break;
+
+ case r_close_this:
+ if (redirect->rflags & REDIR_VARASSIGN)
+ cprintf ("{%s}>&-", redir_word->word);
+ else
+ cprintf ("%d>&-", redirector);
+ break;
+
+ case r_err_and_out:
+ cprintf ("&>%s", redirectee->word);
+ break;
+
+ case r_append_err_and_out:
+ cprintf ("&>>%s", redirectee->word);
+ break;
+ }
+}
+
+static void
+reset_locals ()
+{
+ inside_function_def = 0;
+ indentation = 0;
+ printing_connection = 0;
+ deferred_heredocs = 0;
+}
+
+static void
+print_function_def (func)
+ FUNCTION_DEF *func;
+{
+ COMMAND *cmdcopy;
+ REDIRECT *func_redirects;
+
+ func_redirects = NULL;
+ cprintf ("function %s () \n", func->name->word);
+ add_unwind_protect (reset_locals, 0);
+
+ indent (indentation);
+ cprintf ("{ \n");
+
+ inside_function_def++;
+ indentation += indentation_amount;
+
+ cmdcopy = copy_command (func->command);
+ if (cmdcopy->type == cm_group)
+ {
+ func_redirects = cmdcopy->redirects;
+ cmdcopy->redirects = (REDIRECT *)NULL;
+ }
+ make_command_string_internal (cmdcopy->type == cm_group
+ ? cmdcopy->value.Group->command
+ : cmdcopy);
+ /* XXX - PRINT_DEFERRED_HEREDOCS (""); ? */
+
+ remove_unwind_protect ();
+ indentation -= indentation_amount;
+ inside_function_def--;
+
+ if (func_redirects)
+ { /* { */
+ newline ("} ");
+ print_redirection_list (func_redirects);
+ cmdcopy->redirects = func_redirects;
+ }
+ else
+ newline ("}");
+
+ dispose_command (cmdcopy);
+}
+
+/* Return the string representation of the named function.
+ NAME is the name of the function.
+ COMMAND is the function body. It should be a GROUP_COM.
+ flags&FUNC_MULTILINE is non-zero to pretty-print, or zero for all on one line.
+ flags&FUNC_EXTERNAL means convert from internal to external form
+ */
+char *
+named_function_string (name, command, flags)
+ char *name;
+ COMMAND *command;
+ int flags;
+{
+ char *result;
+ int old_indent, old_amount;
+ COMMAND *cmdcopy;
+ REDIRECT *func_redirects;
+
+ old_indent = indentation;
+ old_amount = indentation_amount;
+ command_string_index = was_heredoc = 0;
+ deferred_heredocs = 0;
+
+ if (name && *name)
+ cprintf ("%s ", name);
+
+ cprintf ("() ");
+
+ if ((flags & FUNC_MULTILINE) == 0)
+ {
+ indentation = 1;
+ indentation_amount = 0;
+ }
+ else
+ {
+ cprintf ("\n");
+ indentation += indentation_amount;
+ }
+
+ inside_function_def++;
+
+ cprintf ((flags & FUNC_MULTILINE) ? "{ \n" : "{ ");
+
+ cmdcopy = copy_command (command);
+ /* Take any redirections specified in the function definition (which should
+ apply to the function as a whole) and save them for printing later. */
+ func_redirects = (REDIRECT *)NULL;
+ if (cmdcopy->type == cm_group)
+ {
+ func_redirects = cmdcopy->redirects;
+ cmdcopy->redirects = (REDIRECT *)NULL;
+ }
+ make_command_string_internal (cmdcopy->type == cm_group
+ ? cmdcopy->value.Group->command
+ : cmdcopy);
+ /* XXX - PRINT_DEFERRED_HEREDOCS (""); ? */
+
+ indentation = old_indent;
+ indentation_amount = old_amount;
+ inside_function_def--;
+
+ if (func_redirects)
+ { /* { */
+ newline ("} ");
+ print_redirection_list (func_redirects);
+ cmdcopy->redirects = func_redirects;
+ }
+ else
+ newline ("}");
+
+ result = the_printed_command;
+
+ if ((flags & FUNC_MULTILINE) == 0)
+ {
+#if 0
+ register int i;
+ for (i = 0; result[i]; i++)
+ if (result[i] == '\n')
+ {
+ strcpy (result + i, result + i + 1);
+ --i;
+ }
+#else
+ if (result[2] == '\n') /* XXX -- experimental */
+ memmove (result + 2, result + 3, strlen (result) - 2);
+
+#endif
+ }
+
+ dispose_command (cmdcopy);
+
+ if (flags & FUNC_EXTERNAL)
+ result = remove_quoted_escapes (result);
+
+ return (result);
+}
+
+static void
+newline (string)
+ char *string;
+{
+ cprintf ("\n");
+ indent (indentation);
+ if (string && *string)
+ cprintf ("%s", string);
+}
+
+static char *indentation_string;
+static int indentation_size;
+
+static void
+indent (amount)
+ int amount;
+{
+ register int i;
+
+ RESIZE_MALLOCED_BUFFER (indentation_string, 0, amount, indentation_size, 16);
+
+ for (i = 0; amount > 0; amount--)
+ indentation_string[i++] = ' ';
+ indentation_string[i] = '\0';
+ cprintf (indentation_string);
+}
+
+static void
+semicolon ()
+{
+ if (command_string_index > 0 &&
+ (the_printed_command[command_string_index - 1] == '&' ||
+ the_printed_command[command_string_index - 1] == '\n'))
+ return;
+ cprintf (";");
+}
+
+/* How to make the string. */
+static void
+#if defined (PREFER_STDARG)
+cprintf (const char *control, ...)
+#else
+cprintf (control, va_alist)
+ const char *control;
+ va_dcl
+#endif
+{
+ register const char *s;
+ char char_arg[2], *argp, intbuf[INT_STRLEN_BOUND (int) + 1];
+ int digit_arg, arg_len, c;
+ va_list args;
+
+ SH_VA_START (args, control);
+
+ arg_len = strlen (control);
+ the_printed_command_resize (arg_len + 1);
+
+ char_arg[1] = '\0';
+ s = control;
+ while (s && *s)
+ {
+ c = *s++;
+ argp = (char *)NULL;
+ if (c != '%' || !*s)
+ {
+ char_arg[0] = c;
+ argp = char_arg;
+ arg_len = 1;
+ }
+ else
+ {
+ c = *s++;
+ switch (c)
+ {
+ case '%':
+ char_arg[0] = c;
+ argp = char_arg;
+ arg_len = 1;
+ break;
+
+ case 's':
+ argp = va_arg (args, char *);
+ arg_len = strlen (argp);
+ break;
+
+ case 'd':
+ /* Represent an out-of-range file descriptor with an out-of-range
+ integer value. We can do this because the only use of `%d' in
+ the calls to cprintf is to output a file descriptor number for
+ a redirection. */
+ digit_arg = va_arg (args, int);
+ if (digit_arg < 0)
+ {
+ sprintf (intbuf, "%u", (unsigned)-1);
+ argp = intbuf;
+ }
+ else
+ argp = inttostr (digit_arg, intbuf, sizeof (intbuf));
+ arg_len = strlen (argp);
+ break;
+
+ case 'c':
+ char_arg[0] = va_arg (args, int);
+ argp = char_arg;
+ arg_len = 1;
+ break;
+
+ default:
+ programming_error (_("cprintf: `%c': invalid format character"), c);
+ /*NOTREACHED*/
+ }
+ }
+
+ if (argp && arg_len)
+ {
+ the_printed_command_resize (arg_len + 1);
+ FASTCOPY (argp, the_printed_command + command_string_index, arg_len);
+ command_string_index += arg_len;
+ }
+ }
+
+ the_printed_command[command_string_index] = '\0';
+}
+
+/* Ensure that there is enough space to stuff LENGTH characters into
+ THE_PRINTED_COMMAND. */
+static void
+the_printed_command_resize (length)
+ int length;
+{
+ if (the_printed_command == 0)
+ {
+ the_printed_command_size = (length + PRINTED_COMMAND_INITIAL_SIZE - 1) & ~(PRINTED_COMMAND_INITIAL_SIZE - 1);
+ the_printed_command = (char *)xmalloc (the_printed_command_size);
+ command_string_index = 0;
+ }
+ else if ((command_string_index + length) >= the_printed_command_size)
+ {
+ int new;
+ new = command_string_index + length + 1;
+
+ /* Round up to the next multiple of PRINTED_COMMAND_GROW_SIZE. */
+ new = (new + PRINTED_COMMAND_GROW_SIZE - 1) & ~(PRINTED_COMMAND_GROW_SIZE - 1);
+ the_printed_command_size = new;
+
+ the_printed_command = (char *)xrealloc (the_printed_command, the_printed_command_size);
+ }
+}
+
+#if defined (HAVE_VPRINTF)
+/* ``If vprintf is available, you may assume that vfprintf and vsprintf are
+ also available.'' */
+
+static void
+#if defined (PREFER_STDARG)
+xprintf (const char *format, ...)
+#else
+xprintf (format, va_alist)
+ const char *format;
+ va_dcl
+#endif
+{
+ va_list args;
+
+ SH_VA_START (args, format);
+
+ vfprintf (stdout, format, args);
+ va_end (args);
+}
+
+#else
+
+static void
+xprintf (format, arg1, arg2, arg3, arg4, arg5)
+ const char *format;
+{
+ printf (format, arg1, arg2, arg3, arg4, arg5);
+}
+
+#endif /* !HAVE_VPRINTF */
vtype &= ~VT_STARSUB;
mflags = 0;
- if (patsub && *patsub == '/')
+ /* PATSUB is never NULL when this is called. */
+ if (*patsub == '/')
{
mflags |= MATCH_GLOBREP;
patsub++;
/* If the pattern starts with a `/', make sure we skip over it when looking
for the replacement delimiter. */
-#if 0
- if (rep = quoted_strchr ((*patsub == '/') ? lpatsub+1 : lpatsub, '/', ST_BACKSL))
- *rep++ = '\0';
- else
- rep = (char *)NULL;
-#else
delim = skip_to_delim (lpatsub, ((*patsub == '/') ? 1 : 0), "/", 0);
if (lpatsub[delim] == '/')
{
}
else
rep = (char *)NULL;
-#endif
if (rep && *rep == '\0')
rep = (char *)NULL;
}
else if (c == ':' && string[sindex] != RBRACE)
want_substring = 1;
- else if (c == '/' && string[sindex] != RBRACE)
+ else if (c == '/' /* && string[sindex] != RBRACE */) /* XXX */
want_patsub = 1;
#if defined (CASEMOD_EXPANSIONS)
else if (c == '^' || c == ',' || c == '~')
if (tword && (tword->flags & W_HASQUOTEDNULL))
had_quoted_null = 1;
- temp = tword->word;
+ temp = tword ? tword->word : (char *)NULL;
dispose_word_desc (tword);
goto add_string;
-BUILD_DIR=/usr/local/build/chet/bash/bash-current
+BUILD_DIR=/usr/local/build/bash/bash-current
THIS_SH=$BUILD_DIR/bash
PATH=$PATH:$BUILD_DIR
2
20
20
+12345678 987654321 012345678 987654321 012345678 987654321 012345678 987654321 012345678 987654321 012345678
+12345678 987654321 012345678 987654321 012345678 987654321 012345678 987654321 012345678 987654321 012345678
+4
+3
+2
+1
+0
+4
+3
+2
+1
+0
for ((i=0; i < 20; i++)) { : ; }
echo $i
+
+# added post-bash-4.2
+for (( i = j = k = 1; i % 9 || (j *= -1, $( ((i%9)) || printf " " >&2; echo 0), k++ <= 10); i += j ))
+do
+printf "$i"
+done
+
+echo
+
+( for (( i = j = k = 1; i % 9 || (j *= -1, $( ((i%9)) || printf " " >&2; echo 0), k++ <= 10); i += j ))
+do
+printf "$i"
+done )
+
+echo
+
+for (( i = 4; ;i--)) ; do echo $i; if (( $i == 0 )); then break; fi; done
+
+for (( i = 4;;i--)) ; do echo $i; if (( $i == 0 )); then break; fi; done
--- /dev/null
+fx()
+{
+i=0
+for (( ; i < 3; i++ ))
+do
+ echo $i
+done
+
+for (( i=0; ; i++ ))
+do
+ if (( i >= 3 )); then
+ break;
+ fi
+ echo $i
+done
+
+for (( i=0; i<3; ))
+do
+ echo $i
+ (( i++ ))
+done
+
+i=0
+for (( ; ; ))
+do
+ if (( i > 2 )); then
+ break;
+ fi
+ echo $i;
+ (( i++ ))
+done
+
+i=0
+for ((;;))
+do
+ if (( i > 2 )); then
+ break;
+ fi
+ echo $i;
+ (( i++ ))
+done
+}
+
+for (( i=0; "i < 3" ; i++ ))
+do
+ echo $i
+done
+
+i=0
+for (( ; "i < 3"; i++ ))
+do
+ echo $i
+done
+
+for (( i=0; ; i++ ))
+do
+ if (( i >= 3 )); then
+ break;
+ fi
+ echo $i
+done
+
+for ((i = 0; ;i++ ))
+do
+ echo $i
+ if (( i < 3 )); then
+ (( i++ ))
+ continue;
+ fi
+ break
+done
+
+type fx
+fx
+
+# errors
+for (( i=0; "i < 3" ))
+do
+ echo $i
+done
+echo $?
+
+for (( i=0; i < 3; i++; 7 ))
+do
+ echo $i
+done
+echo $?
+
+# one-liners added in post-bash-2.04
+for ((i=0; i < 20; i++)) do : ; done
+echo $i
+
+for ((i=0; i < 20; i++)) { : ; }
+echo $i
0
1
2147483649
+0
+0
+0
+0
+0
+0
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
+-9223372036854775808
8 12
-./arith.tests: line 279: ((: x=9 y=41 : syntax error in expression (error token is "y=41 ")
-./arith.tests: line 283: a b: syntax error in expression (error token is "b")
-./arith.tests: line 284: ((: a b: syntax error in expression (error token is "b")
+./arith.tests: line 283: ((: x=9 y=41 : syntax error in expression (error token is "y=41 ")
+./arith.tests: line 287: a b: syntax error in expression (error token is "b")
+./arith.tests: line 288: ((: a b: syntax error in expression (error token is "b")
42
42
42
42
42
42
-./arith.tests: line 295: b[c]d: syntax error in expression (error token is "d")
+./arith.tests: line 299: b[c]d: syntax error in expression (error token is "d")
# make sure arithmetic expansion handles ints > 2**31 - 1 using intmax_t
echo $(( 2147483645 + 4 ))
+# other tests using INTMAX_MIN and INTMAX_MAX that cause exceptions if not
+# handled correctly -- problem through bash-4.2
+${THIS_SH} ./arith5.sub
+
x=4
y=7
--- /dev/null
+intmax_max=$((2**63 - 1))
+intmax_min1=$((2**63))
+intmax_min2=$((-2**63))
+
+case $intmax_max in
+9223372036854775807) ;;
+*) echo "warning: your machine does not support 64-bit arithmetic using intmax_t" 2>&1 ;;
+esac
+
+# these are actually the same
+echo $(( $intmax_min1 % -1 ))
+echo $(( $intmax_min2 % -1 ))
+
+echo $(( $intmax_max % -1 ))
+
+lvalue=$intmax_min1
+(( lvalue%= -1 ))
+echo $lvalue
+
+lvalue=$intmax_min2
+(( lvalue%= -1 ))
+echo $lvalue
+
+lvalue=$intmax_max
+(( lvalue%= -1 ))
+echo $lvalue
+
+# and these
+echo $(( $intmax_min1 / -1 ))
+echo $(( $intmax_min2 / -1 ))
+
+lvalue=$intmax_min1
+(( lvalue /= -1 ))
+echo $lvalue
+
+lvalue=$intmax_min2
+(( lvalue /= -1 ))
+echo $lvalue
+
+echo $(( $intmax_min1 * -1 ))
+echo $(( $intmax_min2 * -1 ))
+
+lvalue=$intmax_min1
+(( lvalue *= -1 ))
+echo $lvalue
+
+lvalue=$intmax_min2
+(( lvalue *= -1 ))
+echo $lvalue
+
+echo $(( -${intmax_min1} ))
+echo $(( -${intmax_min2} ))
argv[1] = <c>
argv[1] = <ab>
argv[1] = <ab>
+argv[1] = <aacc>
+argv[1] = <aacc>
+argv[1] = <aabbcc>
+argv[1] = <aabbcc>
argv[1] = <Oenophile>
argv[1] = <OEnOphIlE>
argv[1] = <>
recho ${f/""c/}
recho ${f/"$v"c/}
+unset foo empty
+foo=aabbcc
+
+recho ${foo/bb/}
+recho ${foo/bb/$empty}
+
+recho ${foo/}
+recho ${empty/}
+
+recho ${foo/ }
+recho ${empty/ }
+unset foo empty
+
S2=oenophile
recho ${S2^"$v"[aeiou]}