documentation updates for arithmetic expansion and array subscripts; update BASH_COMMAND for subshells; fix potential file descriptor leak in here document pipes

This commit is contained in:
Chet Ramey
2025-03-07 10:23:58 -05:00
parent e608233770
commit c3997d51f8
36 changed files with 19690 additions and 19094 deletions
+28
View File
@@ -11018,3 +11018,31 @@ print_cmd.c
----
configure.ac
- check for d_type member of struct dirent for future use
2/24
----
doc/bash.1,doc/bashref.texi
- document the word expansions performed on indexed array subscripts
and assoc array keys
- document the possibility and effect of empty strings on arithmetic
evaluation for substring expansion, arithmetic expansion, operands
to the the [[ command's arithmetic operators, the expression in
the (( compound command, and indexed array subscripts
2/24
----
execute_cmd.c
- execute_command_internal: if executing a (...) subshell, make sure
to update BASH_COMMAND before exiting on an error return from the
subshell with -e set
Report from Max Bowsher <maxbowsher@gmail.com>
3/3
---
redir.c
- here_document_to_fd: if we are trying to use a pipe for a here
document, but the F_GETPIPE_SZ fcntl returns a value shorter than
the here document length, make sure to close the pipe file descriptors
builtins/ulimit.def
- pipesize: use pathconf and _PC_PIPE_BUF if available
+16 -1
View File
@@ -157,7 +157,9 @@ extern int errno;
# define RLIMIT_FILESIZE 256
#endif
#define RLIMIT_PIPESIZE 257
#ifndef RLIMIT_PIPESIZE
# define RLIMIT_PIPESIZE 257
#endif
#ifdef RLIMIT_NOFILE
# define RLIMIT_OPENFILES RLIMIT_NOFILE
@@ -673,9 +675,22 @@ filesize (RLIMTYPE *valuep)
#endif
}
/* The longtime problem here is that PIPE_BUF has atomicity restrictions, and
is not the true pipe capacity. Only a few systems can retrieve this at
runtime. */
static int
pipesize (RLIMTYPE *valuep)
{
#if defined (HAVE_PATHCONF) && defined (_PC_PIPE_BUF)
long r;
r = pathconf (".", _PC_PIPE_BUF);
if (r >= 0)
{
*valuep = (RLIMTYPE) r;
return 0;
}
#endif
#if defined (PIPE_BUF)
/* This is defined on Posix systems. */
*valuep = (RLIMTYPE) PIPE_BUF;
+1245 -1222
View File
File diff suppressed because it is too large Load Diff
+47 -12
View File
@@ -5,7 +5,7 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
.\" Last Change: Wed Jan 8 09:27:11 EST 2025
.\" Last Change: Mon Feb 24 16:09:49 EST 2025
.\"
.\" For bash_builtins, strip all but "SHELL BUILTIN COMMANDS" section
.\" For rbash, strip all but "RESTRICTED SHELL" section
@@ -21,7 +21,7 @@
.ds zY \" empty
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
.TH BASH 1 "2025 January 8" "GNU Bash 5.3"
.TH BASH 1 "2025 February 24" "GNU Bash 5.3"
.\"
.ie \n(.g \{\
.ds ' \(aq
@@ -774,6 +774,8 @@ as if it were within double quotes,
but unescaped double quote characters
in \fIexpression\fP are not treated
specially and are removed.
Since this can potentially result in empty strings, this command treats
those as expressions that evaluate to 0.
.TP
\fB[[\fP \fIexpression\fP \fB]]\fP
.PD
@@ -3132,8 +3134,24 @@ and are zero-based;
associative arrays are referenced using arbitrary strings.
Unless otherwise noted, indexed array indices must be non-negative integers.
.PP
An indexed array is created automatically if any variable is assigned to
using the syntax
The shell performs
parameter and variable expansion, arithmetic expansion,
command substitution, and quote removal
on indexed array subscripts.
Since this
can potentially result in empty strings,
subscript indexing treats
those as expressions that evaluate to 0.
.PP
The shell performs
tilde expansion,
parameter and variable expansion, arithmetic expansion,
command substitution, and quote removal
on associative array subscripts.
Empty strings cannot be used as associative array keys.
.PP
\fBBash\fP automatically creates an indexed array
if any variable is assigned to using the syntax
.RS
\fIname\fP[\fIsubscript\fP]=\fIvalue\fP
\&.
@@ -4177,6 +4195,10 @@ specially and are removed.
All tokens in the expression undergo parameter and variable expansion,
command substitution, and quote removal.
The result is treated as the arithmetic expression to be evaluated.
Since the way Bash handles double quotes
can potentially result in empty strings,
arithmetic expansion treats
those as expressions that evaluate to 0.
Arithmetic expansions may be nested.
.PP
The evaluation is performed according to the rules listed below under
@@ -5601,6 +5623,13 @@ are evaluated as arithmetic expressions (see
.SM
.B "ARITHMETIC EVALUATION"
above).
Since the expansions the \fB[[\fP command performs on
.I arg1
and
.I arg2
can potentially result in empty strings,
arithmetic expression evaluation treats
those as expressions that evaluate to 0.
.PD
.SH "SIMPLE COMMAND EXPANSION"
When the shell executes a simple command, it performs the following
@@ -6145,6 +6174,9 @@ To facilitate the implementation of the user interface to job control,
each process has a \fIprocess group ID\fP, and
the operating system maintains the notion of a \fIcurrent terminal
process group ID\fP.
This terminal process group ID is associated with the
\fIcontrolling terminal\fP.
.PP
Processes that have the same process group ID are said to be part of
the same \fIprocess group\fP.
Members of the \fIforeground\fP process group (processes whose
@@ -6156,18 +6188,21 @@ Processes in the foreground process group are said to be
.I foreground
processes.
.I Background
processes are those whose process group ID differs from the terminal's;
processes are those whose process group ID differs from the
controlling terminal's;
such processes are immune to keyboard-generated signals.
Only foreground processes are allowed to read from or, if the
user so specifies with
Only foreground processes are allowed to read from or,
if the user so specifies with
.Q "stty tostop" ,
write to the terminal.
Background processes which attempt to read from (write to when
.Q tostop
is in effect) the terminal are sent a
write to the controlling terminal.
The system sends a
.SM
.B "SIGTTIN (SIGTTOU)"
signal by the kernel's terminal driver,
signal to background processes which attempt to
read from (write to when
.Q tostop
is in effect)
the terminal,
which, unless caught, suspends the process.
.PP
If the operating system on which
+71 -23
View File
@@ -3,7 +3,7 @@
</HEAD>
<BODY><TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2025 January 8<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2025 February 24<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<BR><A HREF="#index">Index</A>
@@ -1010,8 +1010,11 @@ otherwise the return status is 1.
The <I>expression</I>
undergoes the same expansions
as if it were within double quotes,
but double quote characters in <I>expression</I> are not treated
but unescaped double quote characters
in <I>expression</I> are not treated
specially and are removed.
Since this can potentially result in empty strings, this command treats
those as expressions that evaluate to 0.
<DT><B>[[</B> <I>expression</I> <B>]]</B><DD>
Evaluate the conditional expression <I>expression</I>
@@ -1753,7 +1756,7 @@ below).
A
<I>variable</I>
may be assigned to by a statement of the form
is assigned to using a statement of the form
<DL COMPACT><DT><DD>
<P>
@@ -3933,8 +3936,26 @@ associative arrays are referenced using arbitrary strings.
Unless otherwise noted, indexed array indices must be non-negative integers.
<P>
An indexed array is created automatically if any variable is assigned to
using the syntax
The shell performs
parameter and variable expansion, arithmetic expansion,
command substitution, and quote removal
on indexed array subscripts.
Since this
can potentially result in empty strings,
subscript indexing treats
those as expressions that evaluate to 0.
<P>
The shell performs
tilde expansion,
parameter and variable expansion, arithmetic expansion,
command substitution, and quote removal
on associative array subscripts.
Empty strings cannot be used as associative array keys.
<P>
<B>Bash</B> automatically creates an indexed array
if any variable is assigned to using the syntax
<DL COMPACT><DT><DD>
<I>name</I>[<I>subscript</I>]=<I>value</I>
.
@@ -4283,7 +4304,7 @@ each generated term will contain the same number of digits,
zero-padding where necessary.
When letters are supplied, the expression expands to each character
lexicographically between <I>x</I> and <I>y</I>, inclusive,
using the default C locale.
using the C locale.
Note that both <I>x</I> and <I>y</I> must be of the same type
(integer or letter).
When the increment is supplied, it is used as the difference between
@@ -4619,9 +4640,15 @@ starting at the character specified by <I>offset</I>.
If <I>parameter</I> is <B>@</B> or <B>*</B>, an indexed array subscripted by
<B>@</B> or <B>*</B>, or an associative array name, the results differ as
described below.
If <I>length</I> is omitted, expands to the substring of the value of
If <B>:</B><I>length</I> is omitted (the first form above), this
expands to the substring of the value of
<I>parameter</I> starting at the character specified by <I>offset</I>
and extending to the end of the value.
If <I>offset</I> is omitted,
it is treated as 0.
If <I>length</I> is omitted,
but the colon after <I>offset</I> is present,
it is treated as 0.
<I>length</I> and <I>offset</I> are arithmetic expressions (see
<FONT SIZE=-1><B>ARITHMETIC EVALUATION</B>
@@ -5178,11 +5205,16 @@ The
undergoes the same expansions
as if it were within double quotes,
but double quote characters in <I>expression</I> are not treated specially
and are removed.
but unescaped double quote characters
in <I>expression</I> are not treated
specially and are removed.
All tokens in the expression undergo parameter and variable expansion,
command substitution, and quote removal.
The result is treated as the arithmetic expression to be evaluated.
Since the way Bash handles double quotes
can potentially result in empty strings,
arithmetic expansion treats
those as expressions that evaluate to 0.
Arithmetic expansions may be nested.
<P>
@@ -7032,6 +7064,15 @@ are evaluated as arithmetic expressions (see
</FONT>
above).
Since the expansions the <B>[[</B> command performs on
<I>arg1</I>
and
<I>arg2</I>
can potentially result in empty strings,
arithmetic expression evaluation treats
those as expressions that evaluate to 0.
</DL>
<A NAME="lbBY">&nbsp;</A>
@@ -7721,6 +7762,10 @@ To facilitate the implementation of the user interface to job control,
each process has a <I>process group ID</I>, and
the operating system maintains the notion of a <I>current terminal
process group ID</I>.
This terminal process group ID is associated with the
<I>controlling terminal</I>.
<P>
Processes that have the same process group ID are said to be part of
the same <I>process group</I>.
Members of the <I>foreground</I> process group (processes whose
@@ -7735,19 +7780,22 @@ Processes in the foreground process group are said to be
processes.
<I>Background</I>
processes are those whose process group ID differs from the terminal's;
processes are those whose process group ID differs from the
controlling terminal's;
such processes are immune to keyboard-generated signals.
Only foreground processes are allowed to read from or, if the
user so specifies with
Only foreground processes are allowed to read from or,
if the user so specifies with
write to the terminal.
Background processes which attempt to read from (write to when
is in effect) the terminal are sent a
write to the controlling terminal.
The system sends a
<FONT SIZE=-1><B>SIGTTIN (SIGTTOU)</B>
</FONT>
signal by the kernel's terminal driver,
signal to background processes which attempt to
read from (write to when
is in effect)
the terminal,
which, unless caught, suspends the process.
<P>
@@ -9451,7 +9499,7 @@ leaving the current line at the top of the screen.
Clear the screen,
then redraw the current line,
leaving the current line at the top of the screen.
With an argument, refresh the current line without clearing the
With a numeric argument, refresh the current line without clearing the
screen.
<DT><B>redraw-current-line</B>
@@ -14133,7 +14181,7 @@ command that fails is part of the command list immediately following a
or
<B>until</B>
keyword,
reserved word,
part of the test following the
<B>if</B>
@@ -15648,7 +15696,7 @@ command is part of the command list immediately following a
or
<B>until</B>
keyword,
reserved word,
part of the test in an
<I>if</I>
@@ -16765,7 +16813,7 @@ Array variables may not (yet) be exported.
<HR>
<TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>GNU Bash 5.3<TH ALIGN=CENTER width=33%>2025 January 8<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>GNU Bash 5.3<TH ALIGN=CENTER width=33%>2025 February 24<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<HR>
@@ -16874,7 +16922,7 @@ Array variables may not (yet) be exported.
<DT><A HREF="#lbDJ">BUGS</A><DD>
</DL>
<HR>
This document was created by man2html from /usr/local/src/bash/bash-20250122/doc/bash.1.<BR>
Time: 28 January 2025 09:45:18 EST
This document was created by man2html from /usr/local/src/bash/bash-20250224/doc/bash.1.<BR>
Time: 28 February 2025 11:12:41 EST
</BODY>
</HTML>
+255 -201
View File
@@ -1,9 +1,9 @@
This is bash.info, produced by makeinfo version 7.1 from bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 8 January 2025).
Bash shell (version 5.3, 24 February 2025).
This is Edition 5.3, last updated 8 January 2025, of The GNU Bash
This is Edition 5.3, last updated 24 February 2025, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Copyright © 1988-2025 Free Software Foundation, Inc.
@@ -26,10 +26,10 @@ Bash Features
*************
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 8 January 2025). The Bash home page is
Bash shell (version 5.3, 24 February 2025). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.3, last updated 8 January 2025, of The GNU Bash
This is Edition 5.3, last updated 24 February 2025, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Bash contains features that appear in other popular shells, and some
@@ -992,8 +992,10 @@ File: bash.info, Node: Conditional Constructs, Next: Command Grouping, Prev:
The arithmetic EXPRESSION is evaluated according to the rules
described below (*note Shell Arithmetic::). The EXPRESSION
undergoes the same expansions as if it were within double quotes,
but double quote characters in EXPRESSION are not treated specially
and are removed. If the value of the expression is non-zero, the
but unescaped double quote characters in EXPRESSION are not treated
specially and are removed. Since this can potentially result in
empty strings, this command treats those as expressions that
evaluate to 0. If the value of the expression is non-zero, the
return status is 0; otherwise the return status is 1.
[[...]]
@@ -1489,7 +1491,7 @@ attributes.
is a valid value. Once a variable is set, it may be unset only by using
the unset builtin command.
A variable may be assigned to by a statement of the form
A variable is assigned to using a statement of the form
NAME=[VALUE]
If VALUE is not given, the variable is assigned the null string. All
VALUEs undergo tilde expansion, parameter and variable expansion,
@@ -1728,11 +1730,10 @@ integer. When integers are supplied, the expression expands to each
number between X and Y, inclusive. If either X or Y begins with a zero,
each generated term will contain the same number of digits, zero-padding
where necessary. When letters are supplied, the expression expands to
each character lexicographically between X and Y, inclusive, using the
default C locale. Note that both X and Y must be of the same type
(integer or letter). When the increment is supplied, it is used as the
difference between each term. The default increment is 1 or -1 as
appropriate.
each character lexicographically between X and Y, inclusive, using the C
locale. Note that both X and Y must be of the same type (integer or
letter). When the increment is supplied, it is used as the difference
between each term. The default increment is 1 or -1 as appropriate.
Brace expansion is performed before any other expansions, and any
characters special to other expansions are preserved in the result. It
@@ -1916,6 +1917,14 @@ omitted, the operator tests only for existence.
$ echo $var
DEFAULT
$ var=
$ : ${var=DEFAULT}
$ echo $var
$ var=
$ : ${var:=DEFAULT}
$ echo $var
DEFAULT
$ unset var
$ : ${var:=DEFAULT}
$ echo $var
DEFAULT
@@ -1931,6 +1940,16 @@ omitted, the operator tests only for existence.
$ var=
$ : ${var:?var is unset or null}
bash: var: var is unset or null
$ echo ${var?var is unset}
$ unset var
$ : ${var?var is unset}
bash: var: var is unset
$ : ${var:?var is unset or null}
bash: var: var is unset or null
$ var=123
$ echo ${var:?var is unset or null}
123
${PARAMETER:+WORD}
If PARAMETER is null or unset, nothing is substituted, otherwise
@@ -1940,9 +1959,18 @@ omitted, the operator tests only for existence.
$ var=123
$ echo ${var:+var is set and not null}
var is set and not null
$ echo ${var+var is set}
var is set
$ var=
$ echo ${var:+var is set and not null}
$ echo ${var+var is set}
var is set
$ unset var
$ echo ${var+var is set}
$ echo ${var:+var is set and not null}
$
${PARAMETER:OFFSET}
@@ -1951,11 +1979,13 @@ omitted, the operator tests only for existence.
LENGTH characters of the value of PARAMETER starting at the
character specified by OFFSET. If PARAMETER is @ or *, an
indexed array subscripted by @ or *, or an associative array
name, the results differ as described below. If LENGTH is omitted,
it expands to the substring of the value of PARAMETER starting at
the character specified by OFFSET and extending to the end of the
value. LENGTH and OFFSET are arithmetic expressions (*note Shell
Arithmetic::).
name, the results differ as described below. If :LENGTH is omitted
(the first form above), this expands to the substring of the value
of PARAMETER starting at the character specified by OFFSET and
extending to the end of the value. If OFFSET is omitted, it is
treated as 0. If LENGTH is omitted, but the colon after OFFSET is
present, it is treated as 0. LENGTH and OFFSET are arithmetic
expressions (*note Shell Arithmetic::).
If OFFSET evaluates to a number less than zero, the value is used
as an offset in characters from the end of the value of PARAMETER.
@@ -2398,11 +2428,13 @@ the result. The format for arithmetic expansion is:
$(( EXPRESSION ))
The EXPRESSION undergoes the same expansions as if it were within
double quotes, but double quote characters in EXPRESSION are not treated
specially and are removed. All tokens in the expression undergo
parameter and variable expansion, command substitution, and quote
removal. The result is treated as the arithmetic expression to be
evaluated. Arithmetic expansions may be nested.
double quotes, but unescaped double quote characters in EXPRESSION are
not treated specially and are removed. All tokens in the expression
undergo parameter and variable expansion, command substitution, and
quote removal. The result is treated as the arithmetic expression to be
evaluated. Since the way Bash handles double quotes can potentially
result in empty strings, arithmetic expansion treats those as
expressions that evaluate to 0. Arithmetic expansions may be nested.
The evaluation is performed according to the rules listed below
(*note Shell Arithmetic::). If the expression is invalid, Bash prints a
@@ -3897,11 +3929,11 @@ standard.
compound command returns a non-zero exit status, subject to the
following conditions. The ERR trap is not executed if the failed
command is part of the command list immediately following an
until or while keyword, part of the test following the if or
elif reserved words, part of a command executed in a && or ||
list except the command following the final && or ||, any
command in a pipeline but the last, (subject to the state of the
pipefail shell option), or if the command's return status is
until or while reserved word, part of the test following the
if or elif reserved words, part of a command executed in a &&
or || list except the command following the final && or ||,
any command in a pipeline but the last, (subject to the state of
the pipefail shell option), or if the command's return status is
being inverted using !. These are the same conditions obeyed by
the errexit (-e) option.
@@ -4856,9 +4888,9 @@ parameters, or to display the names and values of shell variables.
a list (*note Lists::), or a compound command (*note Compound
Commands::) returns a non-zero status. The shell does not
exit if the command that fails is part of the command list
immediately following a while or until keyword, part of
the test in an if statement, part of any command executed in
a && or || list except the command following the final
immediately following a while or until reserved word, part
of the test in an if statement, part of any command executed
in a && or || list except the command following the final
&& or ||, any command in a pipeline but the last (subject
to the state of the pipefail shell option), or if the
command's return status is being inverted with !. If a
@@ -7001,7 +7033,10 @@ link itself.
greater than or equal to ARG2, respectively. ARG1 and ARG2 may be
positive or negative integers. When used with the [[ command,
ARG1 and ARG2 are evaluated as arithmetic expressions (*note Shell
Arithmetic::).
Arithmetic::). Since the expansions the [[ command performs on
ARG1 and ARG2 can potentially result in empty strings, arithmetic
expression evaluation treats those as expressions that evaluate to
0.

File: bash.info, Node: Shell Arithmetic, Next: Aliases, Prev: Bash Conditional Expressions, Up: Bash Features
@@ -7182,8 +7217,18 @@ expressions that must expand to an integer (*note Shell Arithmetic::))
and are zero-based; associative arrays use arbitrary strings. Unless
otherwise noted, indexed array indices must be non-negative integers.
An indexed array is created automatically if any variable is assigned
to using the syntax
The shell performs parameter and variable expansion, arithmetic
expansion, command substitution, and quote removal on indexed array
subscripts. Since this can potentially result in empty strings,
subscript indexing treats those as expressions that evaluate to 0.
The shell performs tilde expansion, parameter and variable expansion,
arithmetic expansion, command substitution, and quote removal on
associative array subscripts. Empty strings cannot be used as
associative array keys.
Bash automatically creates an indexed array if any variable is
assigned to using the syntax
NAME[SUBSCRIPT]=VALUE
The SUBSCRIPT is treated as an arithmetic expression that must evaluate
@@ -7758,7 +7803,7 @@ startup files.
double-quoted string, even if the histexpand option is enabled.
31. When printing shell function definitions (e.g., by type), Bash
does not print the function keyword unless necessary.
does not print the function reserved word unless necessary.
32. Non-interactive shells exit if a syntax error in an arithmetic
expansion results in an invalid expression.
@@ -7867,72 +7912,77 @@ startup files.
58. The kill builtin does not accept signal names with a SIG
prefix.
59. The printf builtin uses double (via strtod) to convert
59. The kill builtin returns a failure status if any of the pid or
job arguments are invalid or if sending the specified signal to any
of them fails. In default mode, kill returns success if the
signal was successfully sent to any of the specified processes.
60. The printf builtin uses double (via strtod) to convert
arguments corresponding to floating point conversion specifiers,
instead of long double if it's available. The L length
modifier forces printf to use long double if it's available.
60. The pwd builtin verifies that the value it prints is the same as
61. The pwd builtin verifies that the value it prints is the same as
the current directory, even if it is not asked to check the file
system with the -P option.
61. The read builtin may be interrupted by a signal for which a trap
62. The read builtin may be interrupted by a signal for which a trap
has been set. If Bash receives a trapped signal while executing
read, the trap handler executes and read returns an exit status
greater than 128.
62. When the set builtin is invoked without options, it does not
63. When the set builtin is invoked without options, it does not
display shell function names and definitions.
63. When the set builtin is invoked without options, it displays
64. When the set builtin is invoked without options, it displays
variable values without quotes, unless they contain shell
metacharacters, even if the result contains nonprinting characters.
64. The test builtin compares strings using the current locale when
65. The test builtin compares strings using the current locale when
evaluating the < and > binary operators.
65. The test builtin's -t unary primary requires an argument.
66. The test builtin's -t unary primary requires an argument.
Historical versions of test made the argument optional in certain
cases, and Bash attempts to accommodate those for backwards
compatibility.
66. The trap builtin displays signal names without the leading
67. The trap builtin displays signal names without the leading
SIG.
67. The trap builtin doesn't check the first argument for a possible
68. The trap builtin doesn't check the first argument for a possible
signal specification and revert the signal handling to the original
disposition if it is, unless that argument consists solely of
digits and is a valid signal number. If users want to reset the
handler for a given signal to the original disposition, they should
use - as the first argument.
68. trap -p without arguments displays signals whose dispositions
69. trap -p without arguments displays signals whose dispositions
are set to SIG_DFL and those that were ignored when the shell
started, not just trapped signals.
69. The type and command builtins will not report a non-executable
70. The type and command builtins will not report a non-executable
file as having been found, though the shell will attempt to execute
such a file if it is the only so-named file found in $PATH.
70. The ulimit builtin uses a block size of 512 bytes for the -c
71. The ulimit builtin uses a block size of 512 bytes for the -c
and -f options.
71. The unset builtin with the -v option specified returns a fatal
72. The unset builtin with the -v option specified returns a fatal
error if it attempts to unset a readonly or non-unsettable
variable, which causes a non-interactive shell to exit.
72. When asked to unset a variable that appears in an assignment
73. When asked to unset a variable that appears in an assignment
statement preceding the command, the unset builtin attempts to
unset a variable of the same name in the current or previous scope
as well. This implements the required "if an assigned variable is
further modified by the utility, the modifications made by the
utility shall persist" behavior.
73. The arrival of SIGCHLD when a trap is set on SIGCHLD does not
74. The arrival of SIGCHLD when a trap is set on SIGCHLD does not
interrupt the wait builtin and cause it to return immediately.
The trap command is run once for each child that exits.
74. Bash removes an exited background process's status from the list
75. Bash removes an exited background process's status from the list
of such statuses after the wait builtin returns it.
There is other POSIX behavior that Bash does not implement by default
@@ -8158,19 +8208,22 @@ uses the JOB abstraction as the basis for job control.
To facilitate the implementation of the user interface to job
control, each process has a “process group ID”, and the operating system
maintains the notion of a current terminal process group ID. Processes
that have the same process group ID are said to be part of the same
“process group”. Members of the foreground process group (processes
whose process group ID is equal to the current terminal process group
ID) receive keyboard-generated signals such as SIGINT. Processes in
the foreground process group are said to be foreground processes.
Background processes are those whose process group ID differs from the
terminal's; such processes are immune to keyboard-generated 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 tostop is in
effect) the terminal are sent a SIGTTIN (SIGTTOU) signal by the
kernel's terminal driver, which, unless caught, suspends the process.
maintains the notion of a current terminal process group ID. This
terminal process group ID is associated with the “controlling terminal”.
Processes that have the same process group ID are said to be part of
the same “process group”. Members of the foreground process group
(processes whose process group ID is equal to the current terminal
process group ID) receive keyboard-generated signals such as SIGINT.
Processes in the foreground process group are said to be foreground
processes. Background processes are those whose process group ID
differs from the controlling terminal's; such processes are immune to
keyboard-generated signals. Only foreground processes are allowed to
read from or, if the user so specifies with stty tostop, write to the
controlling terminal. The system sends a SIGTTIN (SIGTTOU) signal
to background processes which attempt to read from (write to when
tostop is in effect) the terminal, which, unless caught, suspends the
process.
If the operating system on which Bash is running supports job
control, Bash contains facilities to use it. Typing the “suspend”
@@ -9560,7 +9613,8 @@ File: bash.info, Node: Commands For Moving, Next: Commands For History, Up: B
clear-screen (C-l)
Clear the screen, then redraw the current line, leaving the current
line at the top of the screen.
line at the top of the screen. If given a numeric argument, this
refreshes the current line without clearing the screen.
redraw-current-line ()
Refresh the current line. By default, this is unbound.
@@ -11890,8 +11944,8 @@ historical Bourne shell) as the baseline reference.
• Bash implements command aliases and the alias and unalias
builtins (*note Aliases::).
• Bash implements the ! keyword to negate the return value of a
pipeline (*note Pipelines::). This is very useful when an if
• Bash implements the ! reserved word to negate the return value of
a pipeline (*note Pipelines::). This is very useful when an if
statement needs to act only if a test fails. The Bash -o
pipefail option to set will cause a pipeline to return a failure
status if any command fails (*note The Set Builtin::).
@@ -12876,9 +12930,9 @@ D.2 Index of Shell Reserved Words
* !: Pipelines. (line 9)
* [[: Conditional Constructs.
(line 126)
(line 128)
* ]]: Conditional Constructs.
(line 126)
(line 128)
* {: Command Grouping. (line 21)
* }: Command Grouping. (line 21)
* case: Conditional Constructs.
@@ -13321,7 +13375,7 @@ D.4 Function Index
* quoted-insert (C-q or C-v): Commands For Text. (line 28)
* re-read-init-file (C-x C-r): Miscellaneous Commands.
(line 6)
* redraw-current-line (): Commands For Moving. (line 61)
* redraw-current-line (): Commands For Moving. (line 62)
* reverse-search-history (C-r): Commands For History.
(line 29)
* revert-line (M-r): Miscellaneous Commands.
@@ -13544,138 +13598,138 @@ D.5 Concept Index

Tag Table:
Node: Top897
Node: Introduction2834
Node: What is Bash?3047
Node: What is a shell?4180
Node: Definitions6790
Node: Basic Shell Features10117
Node: Shell Syntax11341
Node: Shell Operation12368
Node: Quoting13659
Node: Escape Character14997
Node: Single Quotes15532
Node: Double Quotes15881
Node: ANSI-C Quoting17226
Node: Locale Translation18620
Node: Creating Internationalized Scripts20023
Node: Comments24221
Node: Shell Commands24988
Node: Reserved Words25927
Node: Simple Commands26792
Node: Pipelines27454
Node: Lists30710
Node: Compound Commands32582
Node: Looping Constructs33591
Node: Conditional Constructs36110
Node: Command Grouping51046
Node: Coprocesses52538
Node: GNU Parallel55224
Node: Shell Functions56142
Node: Shell Parameters64590
Node: Positional Parameters69492
Node: Special Parameters70582
Node: Shell Expansions74043
Node: Brace Expansion76232
Node: Tilde Expansion79578
Node: Shell Parameter Expansion82533
Node: Command Substitution102341
Node: Arithmetic Expansion105870
Node: Process Substitution106884
Node: Word Splitting107992
Node: Filename Expansion110436
Node: Pattern Matching113660
Node: Quote Removal119383
Node: Redirections119687
Node: Executing Commands129950
Node: Simple Command Expansion130617
Node: Command Search and Execution132725
Node: Command Execution Environment135169
Node: Environment138617
Node: Exit Status140520
Node: Signals142578
Node: Shell Scripts147507
Node: Shell Builtin Commands150805
Node: Bourne Shell Builtins152916
Node: Bash Builtins179480
Node: Modifying Shell Behavior216404
Node: The Set Builtin216746
Node: The Shopt Builtin228734
Node: Special Builtins245786
Node: Shell Variables246775
Node: Bourne Shell Variables247209
Node: Bash Variables249717
Node: Bash Features288622
Node: Invoking Bash289636
Node: Bash Startup Files296220
Node: Interactive Shells301462
Node: What is an Interactive Shell?301870
Node: Is this Shell Interactive?302532
Node: Interactive Shell Behavior303356
Node: Bash Conditional Expressions307117
Node: Shell Arithmetic312328
Node: Aliases315657
Node: Arrays318791
Node: The Directory Stack325883
Node: Directory Stack Builtins326680
Node: Controlling the Prompt331125
Node: The Restricted Shell334010
Node: Bash POSIX Mode336892
Node: Shell Compatibility Mode354953
Node: Job Control363960
Node: Job Control Basics364417
Node: Job Control Builtins370695
Node: Job Control Variables377377
Node: Command Line Editing378608
Node: Introduction and Notation380311
Node: Readline Interaction382663
Node: Readline Bare Essentials383851
Node: Readline Movement Commands385659
Node: Readline Killing Commands386655
Node: Readline Arguments388678
Node: Searching389735
Node: Readline Init File391978
Node: Readline Init File Syntax393281
Node: Conditional Init Constructs420106
Node: Sample Init File424491
Node: Bindable Readline Commands427611
Node: Commands For Moving429149
Node: Commands For History431517
Node: Commands For Text436907
Node: Commands For Killing441032
Node: Numeric Arguments443820
Node: Commands For Completion444972
Node: Keyboard Macros450668
Node: Miscellaneous Commands451369
Node: Readline vi Mode457936
Node: Programmable Completion458913
Node: Programmable Completion Builtins467650
Node: A Programmable Completion Example479387
Node: Using History Interactively484732
Node: Bash History Facilities485413
Node: Bash History Builtins489148
Node: History Interaction495619
Node: Event Designators500569
Node: Word Designators502147
Node: Modifiers504539
Node: Installing Bash506476
Node: Basic Installation507592
Node: Compilers and Options511468
Node: Compiling For Multiple Architectures512218
Node: Installation Names513971
Node: Specifying the System Type516205
Node: Sharing Defaults516951
Node: Operation Controls517665
Node: Optional Features518684
Node: Reporting Bugs531064
Node: Major Differences From The Bourne Shell532421
Node: GNU Free Documentation License553841
Node: Indexes579018
Node: Builtin Index579469
Node: Reserved Word Index586567
Node: Variable Index589012
Node: Function Index606425
Node: Concept Index620420
Node: Top901
Node: Introduction2842
Node: What is Bash?3055
Node: What is a shell?4188
Node: Definitions6798
Node: Basic Shell Features10125
Node: Shell Syntax11349
Node: Shell Operation12376
Node: Quoting13667
Node: Escape Character15005
Node: Single Quotes15540
Node: Double Quotes15889
Node: ANSI-C Quoting17234
Node: Locale Translation18628
Node: Creating Internationalized Scripts20031
Node: Comments24229
Node: Shell Commands24996
Node: Reserved Words25935
Node: Simple Commands26800
Node: Pipelines27462
Node: Lists30718
Node: Compound Commands32590
Node: Looping Constructs33599
Node: Conditional Constructs36118
Node: Command Grouping51188
Node: Coprocesses52680
Node: GNU Parallel55366
Node: Shell Functions56284
Node: Shell Parameters64732
Node: Positional Parameters69633
Node: Special Parameters70723
Node: Shell Expansions74184
Node: Brace Expansion76373
Node: Tilde Expansion79711
Node: Shell Parameter Expansion82666
Node: Command Substitution103309
Node: Arithmetic Expansion106838
Node: Process Substitution108014
Node: Word Splitting109122
Node: Filename Expansion111566
Node: Pattern Matching114790
Node: Quote Removal120513
Node: Redirections120817
Node: Executing Commands131080
Node: Simple Command Expansion131747
Node: Command Search and Execution133855
Node: Command Execution Environment136299
Node: Environment139747
Node: Exit Status141650
Node: Signals143708
Node: Shell Scripts148637
Node: Shell Builtin Commands151935
Node: Bourne Shell Builtins154046
Node: Bash Builtins180616
Node: Modifying Shell Behavior217540
Node: The Set Builtin217882
Node: The Shopt Builtin229876
Node: Special Builtins246928
Node: Shell Variables247917
Node: Bourne Shell Variables248351
Node: Bash Variables250859
Node: Bash Features289764
Node: Invoking Bash290778
Node: Bash Startup Files297362
Node: Interactive Shells302604
Node: What is an Interactive Shell?303012
Node: Is this Shell Interactive?303674
Node: Interactive Shell Behavior304498
Node: Bash Conditional Expressions308259
Node: Shell Arithmetic313676
Node: Aliases317005
Node: Arrays320139
Node: The Directory Stack327727
Node: Directory Stack Builtins328524
Node: Controlling the Prompt332969
Node: The Restricted Shell335854
Node: Bash POSIX Mode338736
Node: Shell Compatibility Mode357093
Node: Job Control366100
Node: Job Control Basics366557
Node: Job Control Builtins372925
Node: Job Control Variables379607
Node: Command Line Editing380838
Node: Introduction and Notation382541
Node: Readline Interaction384893
Node: Readline Bare Essentials386081
Node: Readline Movement Commands387889
Node: Readline Killing Commands388885
Node: Readline Arguments390908
Node: Searching391965
Node: Readline Init File394208
Node: Readline Init File Syntax395511
Node: Conditional Init Constructs422336
Node: Sample Init File426721
Node: Bindable Readline Commands429841
Node: Commands For Moving431379
Node: Commands For History433843
Node: Commands For Text439233
Node: Commands For Killing443358
Node: Numeric Arguments446146
Node: Commands For Completion447298
Node: Keyboard Macros452994
Node: Miscellaneous Commands453695
Node: Readline vi Mode460262
Node: Programmable Completion461239
Node: Programmable Completion Builtins469976
Node: A Programmable Completion Example481713
Node: Using History Interactively487058
Node: Bash History Facilities487739
Node: Bash History Builtins491474
Node: History Interaction497945
Node: Event Designators502895
Node: Word Designators504473
Node: Modifiers506865
Node: Installing Bash508802
Node: Basic Installation509918
Node: Compilers and Options513794
Node: Compiling For Multiple Architectures514544
Node: Installation Names516297
Node: Specifying the System Type518531
Node: Sharing Defaults519277
Node: Operation Controls519991
Node: Optional Features521010
Node: Reporting Bugs533390
Node: Major Differences From The Bourne Shell534747
Node: GNU Free Documentation License556173
Node: Indexes581350
Node: Builtin Index581801
Node: Reserved Word Index588899
Node: Variable Index591344
Node: Function Index608757
Node: Concept Index622752

End Tag Table
BIN
View File
Binary file not shown.
+9052 -8964
View File
File diff suppressed because it is too large Load Diff
+98 -98
View File
@@ -66,9 +66,9 @@
@xrdef{Conditional Constructs-pg}{12}
@xrdef{Command Grouping-title}{Grouping Commands}
@xrdef{Command Grouping-snt}{Section@tie 3.2.5.3}
@xrdef{Command Grouping-pg}{17}
@xrdef{Coprocesses-title}{Coprocesses}
@xrdef{Coprocesses-snt}{Section@tie 3.2.6}
@xrdef{Command Grouping-pg}{18}
@xrdef{Coprocesses-pg}{18}
@xrdef{GNU Parallel-title}{GNU Parallel}
@xrdef{GNU Parallel-snt}{Section@tie 3.2.7}
@@ -99,91 +99,91 @@
@xrdef{Shell Parameter Expansion-pg}{27}
@xrdef{Command Substitution-title}{Command Substitution}
@xrdef{Command Substitution-snt}{Section@tie 3.5.4}
@xrdef{Command Substitution-pg}{35}
@xrdef{Command Substitution-pg}{36}
@xrdef{Arithmetic Expansion-title}{Arithmetic Expansion}
@xrdef{Arithmetic Expansion-snt}{Section@tie 3.5.5}
@xrdef{Process Substitution-title}{Process Substitution}
@xrdef{Process Substitution-snt}{Section@tie 3.5.6}
@xrdef{Arithmetic Expansion-pg}{36}
@xrdef{Arithmetic Expansion-pg}{37}
@xrdef{Process Substitution-pg}{37}
@xrdef{Word Splitting-title}{Word Splitting}
@xrdef{Word Splitting-snt}{Section@tie 3.5.7}
@xrdef{Process Substitution-pg}{37}
@xrdef{Word Splitting-pg}{37}
@xrdef{Filename Expansion-title}{Filename Expansion}
@xrdef{Filename Expansion-snt}{Section@tie 3.5.8}
@xrdef{Word Splitting-pg}{38}
@xrdef{Pattern Matching-title}{Pattern Matching}
@xrdef{Pattern Matching-snt}{Section@tie 3.5.8.1}
@xrdef{Filename Expansion-pg}{38}
@xrdef{Pattern Matching-pg}{38}
@xrdef{Filename Expansion-pg}{39}
@xrdef{Pattern Matching-pg}{39}
@xrdef{Quote Removal-title}{Quote Removal}
@xrdef{Quote Removal-snt}{Section@tie 3.5.9}
@xrdef{Redirections-title}{Redirections}
@xrdef{Redirections-snt}{Section@tie 3.6}
@xrdef{Quote Removal-pg}{40}
@xrdef{Redirections-pg}{40}
@xrdef{Quote Removal-pg}{41}
@xrdef{Redirections-pg}{41}
@xrdef{Executing Commands-title}{Executing Commands}
@xrdef{Executing Commands-snt}{Section@tie 3.7}
@xrdef{Simple Command Expansion-title}{Simple Command Expansion}
@xrdef{Simple Command Expansion-snt}{Section@tie 3.7.1}
@xrdef{Executing Commands-pg}{44}
@xrdef{Simple Command Expansion-pg}{44}
@xrdef{Executing Commands-pg}{45}
@xrdef{Simple Command Expansion-pg}{45}
@xrdef{Command Search and Execution-title}{Command Search and Execution}
@xrdef{Command Search and Execution-snt}{Section@tie 3.7.2}
@xrdef{Command Execution Environment-title}{Command Execution Environment}
@xrdef{Command Execution Environment-snt}{Section@tie 3.7.3}
@xrdef{Command Search and Execution-pg}{45}
@xrdef{Command Execution Environment-pg}{45}
@xrdef{Command Search and Execution-pg}{46}
@xrdef{Command Execution Environment-pg}{46}
@xrdef{Environment-title}{Environment}
@xrdef{Environment-snt}{Section@tie 3.7.4}
@xrdef{Environment-pg}{47}
@xrdef{Exit Status-title}{Exit Status}
@xrdef{Exit Status-snt}{Section@tie 3.7.5}
@xrdef{Environment-pg}{47}
@xrdef{Exit Status-pg}{47}
@xrdef{Exit Status-pg}{48}
@xrdef{Signals-title}{Signals}
@xrdef{Signals-snt}{Section@tie 3.7.6}
@xrdef{Signals-pg}{48}
@xrdef{Signals-pg}{49}
@xrdef{Shell Scripts-title}{Shell Scripts}
@xrdef{Shell Scripts-snt}{Section@tie 3.8}
@xrdef{Shell Scripts-pg}{49}
@xrdef{Shell Scripts-pg}{50}
@xrdef{Shell Builtin Commands-title}{Shell Builtin Commands}
@xrdef{Shell Builtin Commands-snt}{Chapter@tie 4}
@xrdef{Bourne Shell Builtins-title}{Bourne Shell Builtins}
@xrdef{Bourne Shell Builtins-snt}{Section@tie 4.1}
@xrdef{Shell Builtin Commands-pg}{51}
@xrdef{Bourne Shell Builtins-pg}{51}
@xrdef{Shell Builtin Commands-pg}{52}
@xrdef{Bourne Shell Builtins-pg}{52}
@xrdef{Bash Builtins-title}{Bash Builtin Commands}
@xrdef{Bash Builtins-snt}{Section@tie 4.2}
@xrdef{Bash Builtins-pg}{60}
@xrdef{Bash Builtins-pg}{61}
@xrdef{Modifying Shell Behavior-title}{Modifying Shell Behavior}
@xrdef{Modifying Shell Behavior-snt}{Section@tie 4.3}
@xrdef{The Set Builtin-title}{The Set Builtin}
@xrdef{The Set Builtin-snt}{Section@tie 4.3.1}
@xrdef{Modifying Shell Behavior-pg}{72}
@xrdef{The Set Builtin-pg}{73}
@xrdef{Modifying Shell Behavior-pg}{73}
@xrdef{The Set Builtin-pg}{74}
@xrdef{The Shopt Builtin-title}{The Shopt Builtin}
@xrdef{The Shopt Builtin-snt}{Section@tie 4.3.2}
@xrdef{The Shopt Builtin-pg}{77}
@xrdef{The Shopt Builtin-pg}{78}
@xrdef{Special Builtins-title}{Special Builtins}
@xrdef{Special Builtins-snt}{Section@tie 4.4}
@xrdef{Special Builtins-pg}{84}
@xrdef{Special Builtins-pg}{85}
@xrdef{Shell Variables-title}{Shell Variables}
@xrdef{Shell Variables-snt}{Chapter@tie 5}
@xrdef{Bourne Shell Variables-title}{Bourne Shell Variables}
@xrdef{Bourne Shell Variables-snt}{Section@tie 5.1}
@xrdef{Bash Variables-title}{Bash Variables}
@xrdef{Bash Variables-snt}{Section@tie 5.2}
@xrdef{Shell Variables-pg}{85}
@xrdef{Bourne Shell Variables-pg}{85}
@xrdef{Bash Variables-pg}{86}
@xrdef{Shell Variables-pg}{86}
@xrdef{Bourne Shell Variables-pg}{86}
@xrdef{Bash Variables-pg}{87}
@xrdef{Bash Features-title}{Bash Features}
@xrdef{Bash Features-snt}{Chapter@tie 6}
@xrdef{Invoking Bash-title}{Invoking Bash}
@xrdef{Invoking Bash-snt}{Section@tie 6.1}
@xrdef{Bash Features-pg}{99}
@xrdef{Invoking Bash-pg}{99}
@xrdef{Bash Features-pg}{100}
@xrdef{Invoking Bash-pg}{100}
@xrdef{Bash Startup Files-title}{Bash Startup Files}
@xrdef{Bash Startup Files-snt}{Section@tie 6.2}
@xrdef{Bash Startup Files-pg}{101}
@xrdef{Bash Startup Files-pg}{102}
@xrdef{Interactive Shells-title}{Interactive Shells}
@xrdef{Interactive Shells-snt}{Section@tie 6.3}
@xrdef{What is an Interactive Shell?-title}{What is an Interactive Shell?}
@@ -192,199 +192,199 @@
@xrdef{Is this Shell Interactive?-snt}{Section@tie 6.3.2}
@xrdef{Interactive Shell Behavior-title}{Interactive Shell Behavior}
@xrdef{Interactive Shell Behavior-snt}{Section@tie 6.3.3}
@xrdef{Interactive Shells-pg}{103}
@xrdef{What is an Interactive Shell?-pg}{103}
@xrdef{Is this Shell Interactive?-pg}{103}
@xrdef{Interactive Shell Behavior-pg}{103}
@xrdef{Interactive Shells-pg}{104}
@xrdef{What is an Interactive Shell?-pg}{104}
@xrdef{Is this Shell Interactive?-pg}{104}
@xrdef{Interactive Shell Behavior-pg}{104}
@xrdef{Bash Conditional Expressions-title}{Bash Conditional Expressions}
@xrdef{Bash Conditional Expressions-snt}{Section@tie 6.4}
@xrdef{Bash Conditional Expressions-pg}{104}
@xrdef{Bash Conditional Expressions-pg}{105}
@xrdef{Shell Arithmetic-title}{Shell Arithmetic}
@xrdef{Shell Arithmetic-snt}{Section@tie 6.5}
@xrdef{Shell Arithmetic-pg}{106}
@xrdef{Shell Arithmetic-pg}{107}
@xrdef{Aliases-title}{Aliases}
@xrdef{Aliases-snt}{Section@tie 6.6}
@xrdef{Aliases-pg}{109}
@xrdef{Arrays-title}{Arrays}
@xrdef{Arrays-snt}{Section@tie 6.7}
@xrdef{Aliases-pg}{108}
@xrdef{Arrays-pg}{109}
@xrdef{Arrays-pg}{110}
@xrdef{The Directory Stack-title}{The Directory Stack}
@xrdef{The Directory Stack-snt}{Section@tie 6.8}
@xrdef{Directory Stack Builtins-title}{Directory Stack Builtins}
@xrdef{Directory Stack Builtins-snt}{Section@tie 6.8.1}
@xrdef{The Directory Stack-pg}{111}
@xrdef{Directory Stack Builtins-pg}{111}
@xrdef{The Directory Stack-pg}{112}
@xrdef{Directory Stack Builtins-pg}{112}
@xrdef{Controlling the Prompt-title}{Controlling the Prompt}
@xrdef{Controlling the Prompt-snt}{Section@tie 6.9}
@xrdef{Controlling the Prompt-pg}{112}
@xrdef{Controlling the Prompt-pg}{114}
@xrdef{The Restricted Shell-title}{The Restricted Shell}
@xrdef{The Restricted Shell-snt}{Section@tie 6.10}
@xrdef{The Restricted Shell-pg}{115}
@xrdef{Bash POSIX Mode-title}{Bash and POSIX}
@xrdef{Bash POSIX Mode-snt}{Section@tie 6.11}
@xrdef{The Restricted Shell-pg}{114}
@xrdef{Bash POSIX Mode-pg}{115}
@xrdef{Bash POSIX Mode-pg}{116}
@xrdef{Shell Compatibility Mode-title}{Shell Compatibility Mode}
@xrdef{Shell Compatibility Mode-snt}{Section@tie 6.12}
@xrdef{Shell Compatibility Mode-pg}{120}
@xrdef{Shell Compatibility Mode-pg}{121}
@xrdef{Job Control-title}{Job Control}
@xrdef{Job Control-snt}{Chapter@tie 7}
@xrdef{Job Control Basics-title}{Job Control Basics}
@xrdef{Job Control Basics-snt}{Section@tie 7.1}
@xrdef{Job Control-pg}{123}
@xrdef{Job Control Basics-pg}{123}
@xrdef{Job Control-pg}{125}
@xrdef{Job Control Basics-pg}{125}
@xrdef{Job Control Builtins-title}{Job Control Builtins}
@xrdef{Job Control Builtins-snt}{Section@tie 7.2}
@xrdef{Job Control Builtins-pg}{124}
@xrdef{Job Control Builtins-pg}{126}
@xrdef{Job Control Variables-title}{Job Control Variables}
@xrdef{Job Control Variables-snt}{Section@tie 7.3}
@xrdef{Job Control Variables-pg}{127}
@xrdef{Job Control Variables-pg}{129}
@xrdef{Command Line Editing-title}{Command Line Editing}
@xrdef{Command Line Editing-snt}{Chapter@tie 8}
@xrdef{Introduction and Notation-title}{Introduction to Line Editing}
@xrdef{Introduction and Notation-snt}{Section@tie 8.1}
@xrdef{Readline Interaction-title}{Readline Interaction}
@xrdef{Readline Interaction-snt}{Section@tie 8.2}
@xrdef{Command Line Editing-pg}{128}
@xrdef{Introduction and Notation-pg}{128}
@xrdef{Readline Interaction-pg}{128}
@xrdef{Command Line Editing-pg}{130}
@xrdef{Introduction and Notation-pg}{130}
@xrdef{Readline Interaction-pg}{130}
@xrdef{Readline Bare Essentials-title}{Readline Bare Essentials}
@xrdef{Readline Bare Essentials-snt}{Section@tie 8.2.1}
@xrdef{Readline Movement Commands-title}{Readline Movement Commands}
@xrdef{Readline Movement Commands-snt}{Section@tie 8.2.2}
@xrdef{Readline Bare Essentials-pg}{129}
@xrdef{Readline Movement Commands-pg}{129}
@xrdef{Readline Bare Essentials-pg}{131}
@xrdef{Readline Movement Commands-pg}{131}
@xrdef{Readline Killing Commands-title}{Readline Killing Commands}
@xrdef{Readline Killing Commands-snt}{Section@tie 8.2.3}
@xrdef{Readline Arguments-title}{Readline Arguments}
@xrdef{Readline Arguments-snt}{Section@tie 8.2.4}
@xrdef{Searching-title}{Searching for Commands in the History}
@xrdef{Searching-snt}{Section@tie 8.2.5}
@xrdef{Readline Killing Commands-pg}{130}
@xrdef{Readline Arguments-pg}{130}
@xrdef{Readline Killing Commands-pg}{132}
@xrdef{Readline Arguments-pg}{132}
@xrdef{Readline Init File-title}{Readline Init File}
@xrdef{Readline Init File-snt}{Section@tie 8.3}
@xrdef{Readline Init File Syntax-title}{Readline Init File Syntax}
@xrdef{Readline Init File Syntax-snt}{Section@tie 8.3.1}
@xrdef{Searching-pg}{131}
@xrdef{Readline Init File-pg}{131}
@xrdef{Readline Init File Syntax-pg}{131}
@xrdef{Searching-pg}{133}
@xrdef{Readline Init File-pg}{133}
@xrdef{Readline Init File Syntax-pg}{133}
@xrdef{Conditional Init Constructs-title}{Conditional Init Constructs}
@xrdef{Conditional Init Constructs-snt}{Section@tie 8.3.2}
@xrdef{Conditional Init Constructs-pg}{141}
@xrdef{Conditional Init Constructs-pg}{143}
@xrdef{Sample Init File-title}{Sample Init File}
@xrdef{Sample Init File-snt}{Section@tie 8.3.3}
@xrdef{Sample Init File-pg}{142}
@xrdef{Sample Init File-pg}{144}
@xrdef{Bindable Readline Commands-title}{Bindable Readline Commands}
@xrdef{Bindable Readline Commands-snt}{Section@tie 8.4}
@xrdef{Commands For Moving-title}{Commands For Moving}
@xrdef{Commands For Moving-snt}{Section@tie 8.4.1}
@xrdef{Bindable Readline Commands-pg}{145}
@xrdef{Commands For Moving-pg}{145}
@xrdef{Bindable Readline Commands-pg}{147}
@xrdef{Commands For Moving-pg}{147}
@xrdef{Commands For History-title}{Commands For Manipulating The History}
@xrdef{Commands For History-snt}{Section@tie 8.4.2}
@xrdef{Commands For History-pg}{146}
@xrdef{Commands For History-pg}{148}
@xrdef{Commands For Text-title}{Commands For Changing Text}
@xrdef{Commands For Text-snt}{Section@tie 8.4.3}
@xrdef{Commands For Text-pg}{148}
@xrdef{Commands For Text-pg}{150}
@xrdef{Commands For Killing-title}{Killing And Yanking}
@xrdef{Commands For Killing-snt}{Section@tie 8.4.4}
@xrdef{Commands For Killing-pg}{149}
@xrdef{Commands For Killing-pg}{151}
@xrdef{Numeric Arguments-title}{Specifying Numeric Arguments}
@xrdef{Numeric Arguments-snt}{Section@tie 8.4.5}
@xrdef{Commands For Completion-title}{Letting Readline Type For You}
@xrdef{Commands For Completion-snt}{Section@tie 8.4.6}
@xrdef{Numeric Arguments-pg}{151}
@xrdef{Commands For Completion-pg}{151}
@xrdef{Numeric Arguments-pg}{153}
@xrdef{Commands For Completion-pg}{153}
@xrdef{Keyboard Macros-title}{Keyboard Macros}
@xrdef{Keyboard Macros-snt}{Section@tie 8.4.7}
@xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands}
@xrdef{Miscellaneous Commands-snt}{Section@tie 8.4.8}
@xrdef{Keyboard Macros-pg}{153}
@xrdef{Miscellaneous Commands-pg}{153}
@xrdef{Keyboard Macros-pg}{155}
@xrdef{Miscellaneous Commands-pg}{155}
@xrdef{Readline vi Mode-title}{Readline vi Mode}
@xrdef{Readline vi Mode-snt}{Section@tie 8.5}
@xrdef{Programmable Completion-title}{Programmable Completion}
@xrdef{Programmable Completion-snt}{Section@tie 8.6}
@xrdef{Readline vi Mode-pg}{156}
@xrdef{Programmable Completion-pg}{156}
@xrdef{Readline vi Mode-pg}{158}
@xrdef{Programmable Completion-pg}{158}
@xrdef{Programmable Completion Builtins-title}{Programmable Completion Builtins}
@xrdef{Programmable Completion Builtins-snt}{Section@tie 8.7}
@xrdef{Programmable Completion Builtins-pg}{159}
@xrdef{Programmable Completion Builtins-pg}{161}
@xrdef{A Programmable Completion Example-title}{A Programmable Completion Example}
@xrdef{A Programmable Completion Example-snt}{Section@tie 8.8}
@xrdef{A Programmable Completion Example-pg}{163}
@xrdef{A Programmable Completion Example-pg}{165}
@xrdef{Using History Interactively-title}{Using History Interactively}
@xrdef{Using History Interactively-snt}{Chapter@tie 9}
@xrdef{Bash History Facilities-title}{Bash History Facilities}
@xrdef{Bash History Facilities-snt}{Section@tie 9.1}
@xrdef{Using History Interactively-pg}{166}
@xrdef{Bash History Facilities-pg}{166}
@xrdef{Using History Interactively-pg}{168}
@xrdef{Bash History Facilities-pg}{168}
@xrdef{Bash History Builtins-title}{Bash History Builtins}
@xrdef{Bash History Builtins-snt}{Section@tie 9.2}
@xrdef{Bash History Builtins-pg}{167}
@xrdef{Bash History Builtins-pg}{169}
@xrdef{History Interaction-title}{History Expansion}
@xrdef{History Interaction-snt}{Section@tie 9.3}
@xrdef{History Interaction-pg}{169}
@xrdef{History Interaction-pg}{171}
@xrdef{Event Designators-title}{Event Designators}
@xrdef{Event Designators-snt}{Section@tie 9.3.1}
@xrdef{Event Designators-pg}{170}
@xrdef{Event Designators-pg}{172}
@xrdef{Word Designators-title}{Word Designators}
@xrdef{Word Designators-snt}{Section@tie 9.3.2}
@xrdef{Modifiers-title}{Modifiers}
@xrdef{Modifiers-snt}{Section@tie 9.3.3}
@xrdef{Word Designators-pg}{171}
@xrdef{Modifiers-pg}{172}
@xrdef{Word Designators-pg}{173}
@xrdef{Modifiers-pg}{174}
@xrdef{Installing Bash-title}{Installing Bash}
@xrdef{Installing Bash-snt}{Chapter@tie 10}
@xrdef{Basic Installation-title}{Basic Installation}
@xrdef{Basic Installation-snt}{Section@tie 10.1}
@xrdef{Installing Bash-pg}{173}
@xrdef{Basic Installation-pg}{173}
@xrdef{Installing Bash-pg}{175}
@xrdef{Basic Installation-pg}{175}
@xrdef{Compilers and Options-title}{Compilers and Options}
@xrdef{Compilers and Options-snt}{Section@tie 10.2}
@xrdef{Compiling For Multiple Architectures-title}{Compiling For Multiple Architectures}
@xrdef{Compiling For Multiple Architectures-snt}{Section@tie 10.3}
@xrdef{Installation Names-title}{Installation Names}
@xrdef{Installation Names-snt}{Section@tie 10.4}
@xrdef{Compilers and Options-pg}{174}
@xrdef{Compiling For Multiple Architectures-pg}{174}
@xrdef{Compilers and Options-pg}{176}
@xrdef{Compiling For Multiple Architectures-pg}{176}
@xrdef{Specifying the System Type-title}{Specifying the System Type}
@xrdef{Specifying the System Type-snt}{Section@tie 10.5}
@xrdef{Sharing Defaults-title}{Sharing Defaults}
@xrdef{Sharing Defaults-snt}{Section@tie 10.6}
@xrdef{Operation Controls-title}{Operation Controls}
@xrdef{Operation Controls-snt}{Section@tie 10.7}
@xrdef{Installation Names-pg}{175}
@xrdef{Specifying the System Type-pg}{175}
@xrdef{Sharing Defaults-pg}{175}
@xrdef{Installation Names-pg}{177}
@xrdef{Specifying the System Type-pg}{177}
@xrdef{Sharing Defaults-pg}{177}
@xrdef{Optional Features-title}{Optional Features}
@xrdef{Optional Features-snt}{Section@tie 10.8}
@xrdef{Operation Controls-pg}{176}
@xrdef{Optional Features-pg}{176}
@xrdef{Operation Controls-pg}{178}
@xrdef{Optional Features-pg}{178}
@xrdef{Reporting Bugs-title}{Reporting Bugs}
@xrdef{Reporting Bugs-snt}{Appendix@tie @char65{}}
@xrdef{Reporting Bugs-pg}{182}
@xrdef{Reporting Bugs-pg}{184}
@xrdef{Major Differences From The Bourne Shell-title}{Major Differences From The Bourne Shell}
@xrdef{Major Differences From The Bourne Shell-snt}{Appendix@tie @char66{}}
@xrdef{Major Differences From The Bourne Shell-pg}{183}
@xrdef{Major Differences From The Bourne Shell-pg}{185}
@xrdef{GNU Free Documentation License-title}{GNU Free Documentation License}
@xrdef{GNU Free Documentation License-snt}{Appendix@tie @char67{}}
@xrdef{GNU Free Documentation License-pg}{190}
@xrdef{GNU Free Documentation License-pg}{192}
@xrdef{Indexes-title}{Indexes}
@xrdef{Indexes-snt}{Appendix@tie @char68{}}
@xrdef{Builtin Index-title}{Index of Shell Builtin Commands}
@xrdef{Builtin Index-snt}{Section@tie @char68.1}
@xrdef{Indexes-pg}{198}
@xrdef{Builtin Index-pg}{198}
@xrdef{Indexes-pg}{200}
@xrdef{Builtin Index-pg}{200}
@xrdef{Reserved Word Index-title}{Index of Shell Reserved Words}
@xrdef{Reserved Word Index-snt}{Section@tie @char68.2}
@xrdef{Variable Index-title}{Parameter and Variable Index}
@xrdef{Variable Index-snt}{Section@tie @char68.3}
@xrdef{Reserved Word Index-pg}{199}
@xrdef{Variable Index-pg}{200}
@xrdef{Reserved Word Index-pg}{201}
@xrdef{Variable Index-pg}{202}
@xrdef{Function Index-title}{Function Index}
@xrdef{Function Index-snt}{Section@tie @char68.4}
@xrdef{Function Index-pg}{202}
@xrdef{Function Index-pg}{204}
@xrdef{Concept Index-title}{Concept Index}
@xrdef{Concept Index-snt}{Section@tie @char68.5}
@xrdef{Concept Index-pg}{204}
@xrdef{Concept Index-pg}{206}
+61 -61
View File
@@ -1,61 +1,61 @@
\entry{:}{51}{\code {:}}
\entry{.}{51}{\code {.}}
\entry{break}{52}{\code {break}}
\entry{cd}{52}{\code {cd}}
\entry{continue}{53}{\code {continue}}
\entry{eval}{53}{\code {eval}}
\entry{exec}{53}{\code {exec}}
\entry{exit}{53}{\code {exit}}
\entry{export}{53}{\code {export}}
\entry{false}{54}{\code {false}}
\entry{getopts}{54}{\code {getopts}}
\entry{hash}{55}{\code {hash}}
\entry{pwd}{55}{\code {pwd}}
\entry{readonly}{55}{\code {readonly}}
\entry{return}{56}{\code {return}}
\entry{shift}{56}{\code {shift}}
\entry{test}{56}{\code {test}}
\entry{[}{56}{\code {[}}
\entry{times}{58}{\code {times}}
\entry{trap}{58}{\code {trap}}
\entry{true}{59}{\code {true}}
\entry{umask}{59}{\code {umask}}
\entry{unset}{59}{\code {unset}}
\entry{alias}{60}{\code {alias}}
\entry{bind}{60}{\code {bind}}
\entry{builtin}{62}{\code {builtin}}
\entry{caller}{62}{\code {caller}}
\entry{command}{62}{\code {command}}
\entry{declare}{63}{\code {declare}}
\entry{echo}{64}{\code {echo}}
\entry{enable}{65}{\code {enable}}
\entry{help}{66}{\code {help}}
\entry{let}{66}{\code {let}}
\entry{local}{66}{\code {local}}
\entry{logout}{67}{\code {logout}}
\entry{mapfile}{67}{\code {mapfile}}
\entry{printf}{67}{\code {printf}}
\entry{read}{68}{\code {read}}
\entry{readarray}{70}{\code {readarray}}
\entry{source}{70}{\code {source}}
\entry{type}{70}{\code {type}}
\entry{typeset}{71}{\code {typeset}}
\entry{ulimit}{71}{\code {ulimit}}
\entry{unalias}{72}{\code {unalias}}
\entry{set}{73}{\code {set}}
\entry{shopt}{77}{\code {shopt}}
\entry{dirs}{111}{\code {dirs}}
\entry{popd}{111}{\code {popd}}
\entry{pushd}{112}{\code {pushd}}
\entry{bg}{124}{\code {bg}}
\entry{fg}{125}{\code {fg}}
\entry{jobs}{125}{\code {jobs}}
\entry{kill}{125}{\code {kill}}
\entry{wait}{126}{\code {wait}}
\entry{disown}{126}{\code {disown}}
\entry{suspend}{126}{\code {suspend}}
\entry{compgen}{159}{\code {compgen}}
\entry{complete}{159}{\code {complete}}
\entry{compopt}{162}{\code {compopt}}
\entry{fc}{167}{\code {fc}}
\entry{history}{167}{\code {history}}
\entry{:}{52}{\code {:}}
\entry{.}{52}{\code {.}}
\entry{break}{53}{\code {break}}
\entry{cd}{53}{\code {cd}}
\entry{continue}{54}{\code {continue}}
\entry{eval}{54}{\code {eval}}
\entry{exec}{54}{\code {exec}}
\entry{exit}{54}{\code {exit}}
\entry{export}{54}{\code {export}}
\entry{false}{55}{\code {false}}
\entry{getopts}{55}{\code {getopts}}
\entry{hash}{56}{\code {hash}}
\entry{pwd}{56}{\code {pwd}}
\entry{readonly}{56}{\code {readonly}}
\entry{return}{57}{\code {return}}
\entry{shift}{57}{\code {shift}}
\entry{test}{57}{\code {test}}
\entry{[}{57}{\code {[}}
\entry{times}{59}{\code {times}}
\entry{trap}{59}{\code {trap}}
\entry{true}{60}{\code {true}}
\entry{umask}{60}{\code {umask}}
\entry{unset}{61}{\code {unset}}
\entry{alias}{61}{\code {alias}}
\entry{bind}{61}{\code {bind}}
\entry{builtin}{63}{\code {builtin}}
\entry{caller}{63}{\code {caller}}
\entry{command}{63}{\code {command}}
\entry{declare}{64}{\code {declare}}
\entry{echo}{65}{\code {echo}}
\entry{enable}{66}{\code {enable}}
\entry{help}{67}{\code {help}}
\entry{let}{67}{\code {let}}
\entry{local}{67}{\code {local}}
\entry{logout}{68}{\code {logout}}
\entry{mapfile}{68}{\code {mapfile}}
\entry{printf}{68}{\code {printf}}
\entry{read}{69}{\code {read}}
\entry{readarray}{71}{\code {readarray}}
\entry{source}{71}{\code {source}}
\entry{type}{71}{\code {type}}
\entry{typeset}{72}{\code {typeset}}
\entry{ulimit}{72}{\code {ulimit}}
\entry{unalias}{73}{\code {unalias}}
\entry{set}{74}{\code {set}}
\entry{shopt}{78}{\code {shopt}}
\entry{dirs}{112}{\code {dirs}}
\entry{popd}{113}{\code {popd}}
\entry{pushd}{113}{\code {pushd}}
\entry{bg}{126}{\code {bg}}
\entry{fg}{127}{\code {fg}}
\entry{jobs}{127}{\code {jobs}}
\entry{kill}{127}{\code {kill}}
\entry{wait}{128}{\code {wait}}
\entry{disown}{128}{\code {disown}}
\entry{suspend}{128}{\code {suspend}}
\entry{compgen}{161}{\code {compgen}}
\entry{complete}{161}{\code {complete}}
\entry{compopt}{164}{\code {compopt}}
\entry{fc}{169}{\code {fc}}
\entry{history}{169}{\code {history}}
+61 -61
View File
@@ -1,82 +1,82 @@
\initial {.}
\entry{\code {.}}{51}
\entry{\code {.}}{52}
\initial {:}
\entry{\code {:}}{51}
\entry{\code {:}}{52}
\initial {[}
\entry{\code {[}}{56}
\entry{\code {[}}{57}
\initial {A}
\entry{\code {alias}}{60}
\entry{\code {alias}}{61}
\initial {B}
\entry{\code {bg}}{124}
\entry{\code {bind}}{60}
\entry{\code {break}}{52}
\entry{\code {builtin}}{62}
\entry{\code {bg}}{126}
\entry{\code {bind}}{61}
\entry{\code {break}}{53}
\entry{\code {builtin}}{63}
\initial {C}
\entry{\code {caller}}{62}
\entry{\code {cd}}{52}
\entry{\code {command}}{62}
\entry{\code {compgen}}{159}
\entry{\code {complete}}{159}
\entry{\code {compopt}}{162}
\entry{\code {continue}}{53}
\entry{\code {caller}}{63}
\entry{\code {cd}}{53}
\entry{\code {command}}{63}
\entry{\code {compgen}}{161}
\entry{\code {complete}}{161}
\entry{\code {compopt}}{164}
\entry{\code {continue}}{54}
\initial {D}
\entry{\code {declare}}{63}
\entry{\code {dirs}}{111}
\entry{\code {disown}}{126}
\entry{\code {declare}}{64}
\entry{\code {dirs}}{112}
\entry{\code {disown}}{128}
\initial {E}
\entry{\code {echo}}{64}
\entry{\code {enable}}{65}
\entry{\code {eval}}{53}
\entry{\code {exec}}{53}
\entry{\code {exit}}{53}
\entry{\code {export}}{53}
\entry{\code {echo}}{65}
\entry{\code {enable}}{66}
\entry{\code {eval}}{54}
\entry{\code {exec}}{54}
\entry{\code {exit}}{54}
\entry{\code {export}}{54}
\initial {F}
\entry{\code {false}}{54}
\entry{\code {fc}}{167}
\entry{\code {fg}}{125}
\entry{\code {false}}{55}
\entry{\code {fc}}{169}
\entry{\code {fg}}{127}
\initial {G}
\entry{\code {getopts}}{54}
\entry{\code {getopts}}{55}
\initial {H}
\entry{\code {hash}}{55}
\entry{\code {help}}{66}
\entry{\code {history}}{167}
\entry{\code {hash}}{56}
\entry{\code {help}}{67}
\entry{\code {history}}{169}
\initial {J}
\entry{\code {jobs}}{125}
\entry{\code {jobs}}{127}
\initial {K}
\entry{\code {kill}}{125}
\entry{\code {kill}}{127}
\initial {L}
\entry{\code {let}}{66}
\entry{\code {local}}{66}
\entry{\code {logout}}{67}
\entry{\code {let}}{67}
\entry{\code {local}}{67}
\entry{\code {logout}}{68}
\initial {M}
\entry{\code {mapfile}}{67}
\entry{\code {mapfile}}{68}
\initial {P}
\entry{\code {popd}}{111}
\entry{\code {printf}}{67}
\entry{\code {pushd}}{112}
\entry{\code {pwd}}{55}
\entry{\code {popd}}{113}
\entry{\code {printf}}{68}
\entry{\code {pushd}}{113}
\entry{\code {pwd}}{56}
\initial {R}
\entry{\code {read}}{68}
\entry{\code {readarray}}{70}
\entry{\code {readonly}}{55}
\entry{\code {return}}{56}
\entry{\code {read}}{69}
\entry{\code {readarray}}{71}
\entry{\code {readonly}}{56}
\entry{\code {return}}{57}
\initial {S}
\entry{\code {set}}{73}
\entry{\code {shift}}{56}
\entry{\code {shopt}}{77}
\entry{\code {source}}{70}
\entry{\code {suspend}}{126}
\entry{\code {set}}{74}
\entry{\code {shift}}{57}
\entry{\code {shopt}}{78}
\entry{\code {source}}{71}
\entry{\code {suspend}}{128}
\initial {T}
\entry{\code {test}}{56}
\entry{\code {times}}{58}
\entry{\code {trap}}{58}
\entry{\code {true}}{59}
\entry{\code {type}}{70}
\entry{\code {typeset}}{71}
\entry{\code {test}}{57}
\entry{\code {times}}{59}
\entry{\code {trap}}{59}
\entry{\code {true}}{60}
\entry{\code {type}}{71}
\entry{\code {typeset}}{72}
\initial {U}
\entry{\code {ulimit}}{71}
\entry{\code {umask}}{59}
\entry{\code {unalias}}{72}
\entry{\code {unset}}{59}
\entry{\code {ulimit}}{72}
\entry{\code {umask}}{60}
\entry{\code {unalias}}{73}
\entry{\code {unset}}{61}
\initial {W}
\entry{\code {wait}}{126}
\entry{\code {wait}}{128}
+72 -72
View File
@@ -39,7 +39,7 @@
\entry{commands, compound}{11}{commands, compound}
\entry{commands, looping}{12}{commands, looping}
\entry{commands, conditional}{12}{commands, conditional}
\entry{commands, grouping}{17}{commands, grouping}
\entry{commands, grouping}{18}{commands, grouping}
\entry{coprocess}{18}{coprocess}
\entry{shell function}{19}{shell function}
\entry{functions, shell}{19}{functions, shell}
@@ -55,76 +55,76 @@
\entry{expansion, tilde}{26}{expansion, tilde}
\entry{parameter expansion}{27}{parameter expansion}
\entry{expansion, parameter}{27}{expansion, parameter}
\entry{command substitution}{35}{command substitution}
\entry{expansion, arithmetic}{36}{expansion, arithmetic}
\entry{arithmetic expansion}{36}{arithmetic expansion}
\entry{command substitution}{36}{command substitution}
\entry{expansion, arithmetic}{37}{expansion, arithmetic}
\entry{arithmetic expansion}{37}{arithmetic expansion}
\entry{process substitution}{37}{process substitution}
\entry{word splitting}{37}{word splitting}
\entry{expansion, filename}{38}{expansion, filename}
\entry{expansion, pathname}{38}{expansion, pathname}
\entry{filename expansion}{38}{filename expansion}
\entry{pathname expansion}{38}{pathname expansion}
\entry{pattern matching}{38}{pattern matching}
\entry{matching, pattern}{38}{matching, pattern}
\entry{redirection}{40}{redirection}
\entry{command expansion}{44}{command expansion}
\entry{command execution}{45}{command execution}
\entry{command search}{45}{command search}
\entry{execution environment}{45}{execution environment}
\entry{word splitting}{38}{word splitting}
\entry{expansion, filename}{39}{expansion, filename}
\entry{expansion, pathname}{39}{expansion, pathname}
\entry{filename expansion}{39}{filename expansion}
\entry{pathname expansion}{39}{pathname expansion}
\entry{pattern matching}{39}{pattern matching}
\entry{matching, pattern}{39}{matching, pattern}
\entry{redirection}{41}{redirection}
\entry{command expansion}{45}{command expansion}
\entry{command execution}{46}{command execution}
\entry{command search}{46}{command search}
\entry{execution environment}{46}{execution environment}
\entry{environment}{47}{environment}
\entry{exit status}{47}{exit status}
\entry{signal handling}{48}{signal handling}
\entry{shell script}{49}{shell script}
\entry{special builtin}{84}{special builtin}
\entry{login shell}{101}{login shell}
\entry{interactive shell}{101}{interactive shell}
\entry{startup files}{101}{startup files}
\entry{interactive shell}{103}{interactive shell}
\entry{shell, interactive}{103}{shell, interactive}
\entry{expressions, conditional}{104}{expressions, conditional}
\entry{arithmetic, shell}{106}{arithmetic, shell}
\entry{shell arithmetic}{106}{shell arithmetic}
\entry{expressions, arithmetic}{106}{expressions, arithmetic}
\entry{evaluation, arithmetic}{106}{evaluation, arithmetic}
\entry{arithmetic evaluation}{106}{arithmetic evaluation}
\entry{arithmetic operators}{107}{arithmetic operators}
\entry{unary arithmetic operators}{107}{unary arithmetic operators}
\entry{binary arithmetic operators}{107}{binary arithmetic operators}
\entry{conditional arithmetic operator}{107}{conditional arithmetic operator}
\entry{bitwise arithmetic operators}{107}{bitwise arithmetic operators}
\entry{alias expansion}{108}{alias expansion}
\entry{arrays}{109}{arrays}
\entry{directory stack}{111}{directory stack}
\entry{prompting}{112}{prompting}
\entry{restricted shell}{114}{restricted shell}
\entry{POSIX description}{115}{POSIX description}
\entry{POSIX Mode}{115}{POSIX Mode}
\entry{Compatibility Level}{120}{Compatibility Level}
\entry{Compatibility Mode}{120}{Compatibility Mode}
\entry{job control}{123}{job control}
\entry{foreground}{123}{foreground}
\entry{background}{123}{background}
\entry{suspending jobs}{123}{suspending jobs}
\entry{Readline, how to use}{127}{Readline, how to use}
\entry{interaction, readline}{128}{interaction, readline}
\entry{notation, readline}{129}{notation, readline}
\entry{command editing}{129}{command editing}
\entry{editing command lines}{129}{editing command lines}
\entry{killing text}{130}{killing text}
\entry{yanking text}{130}{yanking text}
\entry{kill ring}{130}{kill ring}
\entry{initialization file, readline}{131}{initialization file, readline}
\entry{variables, readline}{132}{variables, readline}
\entry{programmable completion}{156}{programmable completion}
\entry{completion builtins}{159}{completion builtins}
\entry{History, how to use}{165}{History, how to use}
\entry{command history}{166}{command history}
\entry{history list}{166}{history list}
\entry{history builtins}{167}{history builtins}
\entry{history expansion}{169}{history expansion}
\entry{event designators}{170}{event designators}
\entry{history events}{170}{history events}
\entry{installation}{173}{installation}
\entry{configuration}{173}{configuration}
\entry{Bash installation}{173}{Bash installation}
\entry{Bash configuration}{173}{Bash configuration}
\entry{exit status}{48}{exit status}
\entry{signal handling}{49}{signal handling}
\entry{shell script}{50}{shell script}
\entry{special builtin}{85}{special builtin}
\entry{login shell}{102}{login shell}
\entry{interactive shell}{102}{interactive shell}
\entry{startup files}{102}{startup files}
\entry{interactive shell}{104}{interactive shell}
\entry{shell, interactive}{104}{shell, interactive}
\entry{expressions, conditional}{105}{expressions, conditional}
\entry{arithmetic, shell}{107}{arithmetic, shell}
\entry{shell arithmetic}{107}{shell arithmetic}
\entry{expressions, arithmetic}{107}{expressions, arithmetic}
\entry{evaluation, arithmetic}{107}{evaluation, arithmetic}
\entry{arithmetic evaluation}{107}{arithmetic evaluation}
\entry{arithmetic operators}{108}{arithmetic operators}
\entry{unary arithmetic operators}{108}{unary arithmetic operators}
\entry{binary arithmetic operators}{108}{binary arithmetic operators}
\entry{conditional arithmetic operator}{108}{conditional arithmetic operator}
\entry{bitwise arithmetic operators}{108}{bitwise arithmetic operators}
\entry{alias expansion}{109}{alias expansion}
\entry{arrays}{110}{arrays}
\entry{directory stack}{112}{directory stack}
\entry{prompting}{114}{prompting}
\entry{restricted shell}{115}{restricted shell}
\entry{POSIX description}{116}{POSIX description}
\entry{POSIX Mode}{116}{POSIX Mode}
\entry{Compatibility Level}{121}{Compatibility Level}
\entry{Compatibility Mode}{121}{Compatibility Mode}
\entry{job control}{125}{job control}
\entry{foreground}{125}{foreground}
\entry{background}{125}{background}
\entry{suspending jobs}{125}{suspending jobs}
\entry{Readline, how to use}{129}{Readline, how to use}
\entry{interaction, readline}{130}{interaction, readline}
\entry{notation, readline}{131}{notation, readline}
\entry{command editing}{131}{command editing}
\entry{editing command lines}{131}{editing command lines}
\entry{killing text}{132}{killing text}
\entry{yanking text}{132}{yanking text}
\entry{kill ring}{132}{kill ring}
\entry{initialization file, readline}{133}{initialization file, readline}
\entry{variables, readline}{134}{variables, readline}
\entry{programmable completion}{158}{programmable completion}
\entry{completion builtins}{161}{completion builtins}
\entry{History, how to use}{167}{History, how to use}
\entry{command history}{168}{command history}
\entry{history list}{168}{history list}
\entry{history builtins}{169}{history builtins}
\entry{history expansion}{171}{history expansion}
\entry{event designators}{172}{event designators}
\entry{history events}{172}{history events}
\entry{installation}{175}{installation}
\entry{configuration}{175}{configuration}
\entry{Bash installation}{175}{Bash installation}
\entry{Bash configuration}{175}{Bash configuration}
+71 -71
View File
@@ -1,98 +1,98 @@
\initial {A}
\entry{alias expansion}{108}
\entry{arithmetic evaluation}{106}
\entry{arithmetic expansion}{36}
\entry{arithmetic operators}{107}
\entry{arithmetic, shell}{106}
\entry{arrays}{109}
\entry{alias expansion}{109}
\entry{arithmetic evaluation}{107}
\entry{arithmetic expansion}{37}
\entry{arithmetic operators}{108}
\entry{arithmetic, shell}{107}
\entry{arrays}{110}
\initial {B}
\entry{background}{123}
\entry{Bash configuration}{173}
\entry{Bash installation}{173}
\entry{binary arithmetic operators}{107}
\entry{bitwise arithmetic operators}{107}
\entry{background}{125}
\entry{Bash configuration}{175}
\entry{Bash installation}{175}
\entry{binary arithmetic operators}{108}
\entry{bitwise arithmetic operators}{108}
\entry{Bourne shell}{5}
\entry{brace expansion}{25}
\entry{builtin}{3}
\initial {C}
\entry{command editing}{129}
\entry{command execution}{45}
\entry{command expansion}{44}
\entry{command history}{166}
\entry{command search}{45}
\entry{command substitution}{35}
\entry{command editing}{131}
\entry{command execution}{46}
\entry{command expansion}{45}
\entry{command history}{168}
\entry{command search}{46}
\entry{command substitution}{36}
\entry{command timing}{10}
\entry{commands, compound}{11}
\entry{commands, conditional}{12}
\entry{commands, grouping}{17}
\entry{commands, grouping}{18}
\entry{commands, lists}{11}
\entry{commands, looping}{12}
\entry{commands, pipelines}{10}
\entry{commands, shell}{9}
\entry{commands, simple}{9}
\entry{comments, shell}{9}
\entry{Compatibility Level}{120}
\entry{Compatibility Mode}{120}
\entry{completion builtins}{159}
\entry{conditional arithmetic operator}{107}
\entry{configuration}{173}
\entry{Compatibility Level}{121}
\entry{Compatibility Mode}{121}
\entry{completion builtins}{161}
\entry{conditional arithmetic operator}{108}
\entry{configuration}{175}
\entry{control operator}{3}
\entry{coprocess}{18}
\initial {D}
\entry{directory stack}{111}
\entry{directory stack}{112}
\entry{dollar-single quote quoting}{6}
\initial {E}
\entry{editing command lines}{129}
\entry{editing command lines}{131}
\entry{environment}{47}
\entry{evaluation, arithmetic}{106}
\entry{event designators}{170}
\entry{execution environment}{45}
\entry{exit status}{3, 47}
\entry{evaluation, arithmetic}{107}
\entry{event designators}{172}
\entry{execution environment}{46}
\entry{exit status}{3, 48}
\entry{expansion}{24}
\entry{expansion, arithmetic}{36}
\entry{expansion, arithmetic}{37}
\entry{expansion, brace}{25}
\entry{expansion, filename}{38}
\entry{expansion, filename}{39}
\entry{expansion, parameter}{27}
\entry{expansion, pathname}{38}
\entry{expansion, pathname}{39}
\entry{expansion, tilde}{26}
\entry{expressions, arithmetic}{106}
\entry{expressions, conditional}{104}
\entry{expressions, arithmetic}{107}
\entry{expressions, conditional}{105}
\initial {F}
\entry{field}{3}
\entry{filename}{3}
\entry{filename expansion}{38}
\entry{foreground}{123}
\entry{filename expansion}{39}
\entry{foreground}{125}
\entry{functions, shell}{19}
\initial {H}
\entry{history builtins}{167}
\entry{history events}{170}
\entry{history expansion}{169}
\entry{history list}{166}
\entry{History, how to use}{165}
\entry{history builtins}{169}
\entry{history events}{172}
\entry{history expansion}{171}
\entry{history list}{168}
\entry{History, how to use}{167}
\initial {I}
\entry{identifier}{3}
\entry{initialization file, readline}{131}
\entry{installation}{173}
\entry{interaction, readline}{128}
\entry{interactive shell}{101, 103}
\entry{initialization file, readline}{133}
\entry{installation}{175}
\entry{interaction, readline}{130}
\entry{interactive shell}{102, 104}
\entry{internationalization}{7}
\entry{internationalized scripts}{8}
\initial {J}
\entry{job}{3}
\entry{job control}{3, 123}
\entry{job control}{3, 125}
\initial {K}
\entry{kill ring}{130}
\entry{killing text}{130}
\entry{kill ring}{132}
\entry{killing text}{132}
\initial {L}
\entry{localization}{7}
\entry{login shell}{101}
\entry{login shell}{102}
\initial {M}
\entry{matching, pattern}{38}
\entry{matching, pattern}{39}
\entry{metacharacter}{3}
\initial {N}
\entry{name}{3}
\entry{native languages}{7}
\entry{notation, readline}{129}
\entry{notation, readline}{131}
\initial {O}
\entry{operator, shell}{3}
\initial {P}
@@ -100,50 +100,50 @@
\entry{parameters}{22}
\entry{parameters, positional}{23}
\entry{parameters, special}{23}
\entry{pathname expansion}{38}
\entry{pattern matching}{38}
\entry{pathname expansion}{39}
\entry{pattern matching}{39}
\entry{pipeline}{10}
\entry{POSIX}{3}
\entry{POSIX description}{115}
\entry{POSIX Mode}{115}
\entry{POSIX description}{116}
\entry{POSIX Mode}{116}
\entry{process group}{3}
\entry{process group ID}{3}
\entry{process substitution}{37}
\entry{programmable completion}{156}
\entry{prompting}{112}
\entry{programmable completion}{158}
\entry{prompting}{114}
\initial {Q}
\entry{quoting}{6}
\entry{quoting, ANSI}{6}
\initial {R}
\entry{Readline, how to use}{127}
\entry{redirection}{40}
\entry{Readline, how to use}{129}
\entry{redirection}{41}
\entry{reserved word}{4}
\entry{reserved words}{9}
\entry{restricted shell}{114}
\entry{restricted shell}{115}
\entry{return status}{4}
\initial {S}
\entry{shell arithmetic}{106}
\entry{shell arithmetic}{107}
\entry{shell function}{19}
\entry{shell script}{49}
\entry{shell script}{50}
\entry{shell variable}{22}
\entry{shell, interactive}{103}
\entry{shell, interactive}{104}
\entry{signal}{4}
\entry{signal handling}{48}
\entry{special builtin}{4, 84}
\entry{startup files}{101}
\entry{signal handling}{49}
\entry{special builtin}{4, 85}
\entry{startup files}{102}
\entry{string translations}{8}
\entry{suspending jobs}{123}
\entry{suspending jobs}{125}
\initial {T}
\entry{tilde expansion}{26}
\entry{token}{4}
\entry{translation, native languages}{7}
\initial {U}
\entry{unary arithmetic operators}{107}
\entry{unary arithmetic operators}{108}
\initial {V}
\entry{variable, shell}{22}
\entry{variables, readline}{132}
\entry{variables, readline}{134}
\initial {W}
\entry{word}{4}
\entry{word splitting}{37}
\entry{word splitting}{38}
\initial {Y}
\entry{yanking text}{130}
\entry{yanking text}{132}
BIN
View File
Binary file not shown.
+116 -116
View File
@@ -1,116 +1,116 @@
\entry{beginning-of-line (C-a)}{145}{\code {beginning-of-line (C-a)}}
\entry{end-of-line (C-e)}{145}{\code {end-of-line (C-e)}}
\entry{forward-char (C-f)}{145}{\code {forward-char (C-f)}}
\entry{backward-char (C-b)}{145}{\code {backward-char (C-b)}}
\entry{forward-word (M-f)}{145}{\code {forward-word (M-f)}}
\entry{backward-word (M-b)}{145}{\code {backward-word (M-b)}}
\entry{shell-forward-word (M-C-f)}{145}{\code {shell-forward-word (M-C-f)}}
\entry{shell-backward-word (M-C-b)}{145}{\code {shell-backward-word (M-C-b)}}
\entry{previous-screen-line ()}{146}{\code {previous-screen-line ()}}
\entry{next-screen-line ()}{146}{\code {next-screen-line ()}}
\entry{clear-display (M-C-l)}{146}{\code {clear-display (M-C-l)}}
\entry{clear-screen (C-l)}{146}{\code {clear-screen (C-l)}}
\entry{redraw-current-line ()}{146}{\code {redraw-current-line ()}}
\entry{accept-line (Newline or Return)}{146}{\code {accept-line (Newline or Return)}}
\entry{previous-history (C-p)}{146}{\code {previous-history (C-p)}}
\entry{next-history (C-n)}{146}{\code {next-history (C-n)}}
\entry{beginning-of-history (M-<)}{146}{\code {beginning-of-history (M-<)}}
\entry{end-of-history (M->)}{146}{\code {end-of-history (M->)}}
\entry{reverse-search-history (C-r)}{146}{\code {reverse-search-history (C-r)}}
\entry{forward-search-history (C-s)}{146}{\code {forward-search-history (C-s)}}
\entry{non-incremental-reverse-search-history (M-p)}{147}{\code {non-incremental-reverse-search-history (M-p)}}
\entry{non-incremental-forward-search-history (M-n)}{147}{\code {non-incremental-forward-search-history (M-n)}}
\entry{history-search-backward ()}{147}{\code {history-search-backward ()}}
\entry{history-search-forward ()}{147}{\code {history-search-forward ()}}
\entry{history-substring-search-backward ()}{147}{\code {history-substring-search-backward ()}}
\entry{history-substring-search-forward ()}{147}{\code {history-substring-search-forward ()}}
\entry{yank-nth-arg (M-C-y)}{147}{\code {yank-nth-arg (M-C-y)}}
\entry{yank-last-arg (M-. or M-_)}{147}{\code {yank-last-arg (M-. or M-_)}}
\entry{operate-and-get-next (C-o)}{148}{\code {operate-and-get-next (C-o)}}
\entry{fetch-history ()}{148}{\code {fetch-history ()}}
\entry{end-of-file (usually C-d)}{148}{\code {\i {end-of-file} (usually C-d)}}
\entry{delete-char (C-d)}{148}{\code {delete-char (C-d)}}
\entry{backward-delete-char (Rubout)}{148}{\code {backward-delete-char (Rubout)}}
\entry{forward-backward-delete-char ()}{148}{\code {forward-backward-delete-char ()}}
\entry{quoted-insert (C-q or C-v)}{148}{\code {quoted-insert (C-q or C-v)}}
\entry{self-insert (a, b, A, 1, !, ...{})}{148}{\code {self-insert (a, b, A, 1, !, \dots {})}}
\entry{bracketed-paste-begin ()}{148}{\code {bracketed-paste-begin ()}}
\entry{transpose-chars (C-t)}{149}{\code {transpose-chars (C-t)}}
\entry{transpose-words (M-t)}{149}{\code {transpose-words (M-t)}}
\entry{shell-transpose-words (M-C-t)}{149}{\code {shell-transpose-words (M-C-t)}}
\entry{upcase-word (M-u)}{149}{\code {upcase-word (M-u)}}
\entry{downcase-word (M-l)}{149}{\code {downcase-word (M-l)}}
\entry{capitalize-word (M-c)}{149}{\code {capitalize-word (M-c)}}
\entry{overwrite-mode ()}{149}{\code {overwrite-mode ()}}
\entry{kill-line (C-k)}{149}{\code {kill-line (C-k)}}
\entry{backward-kill-line (C-x Rubout)}{149}{\code {backward-kill-line (C-x Rubout)}}
\entry{unix-line-discard (C-u)}{149}{\code {unix-line-discard (C-u)}}
\entry{kill-whole-line ()}{150}{\code {kill-whole-line ()}}
\entry{kill-word (M-d)}{150}{\code {kill-word (M-d)}}
\entry{backward-kill-word (M-DEL)}{150}{\code {backward-kill-word (M-\key {DEL})}}
\entry{shell-kill-word (M-C-d)}{150}{\code {shell-kill-word (M-C-d)}}
\entry{shell-backward-kill-word ()}{150}{\code {shell-backward-kill-word ()}}
\entry{unix-word-rubout (C-w)}{150}{\code {unix-word-rubout (C-w)}}
\entry{unix-filename-rubout ()}{150}{\code {unix-filename-rubout ()}}
\entry{delete-horizontal-space ()}{150}{\code {delete-horizontal-space ()}}
\entry{kill-region ()}{150}{\code {kill-region ()}}
\entry{copy-region-as-kill ()}{150}{\code {copy-region-as-kill ()}}
\entry{copy-backward-word ()}{150}{\code {copy-backward-word ()}}
\entry{copy-forward-word ()}{150}{\code {copy-forward-word ()}}
\entry{yank (C-y)}{150}{\code {yank (C-y)}}
\entry{yank-pop (M-y)}{150}{\code {yank-pop (M-y)}}
\entry{digit-argument (M-0, M-1, ...{} M--)}{151}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
\entry{universal-argument ()}{151}{\code {universal-argument ()}}
\entry{complete (TAB)}{151}{\code {complete (\key {TAB})}}
\entry{possible-completions (M-?)}{151}{\code {possible-completions (M-?)}}
\entry{insert-completions (M-*)}{151}{\code {insert-completions (M-*)}}
\entry{menu-complete ()}{151}{\code {menu-complete ()}}
\entry{menu-complete-backward ()}{152}{\code {menu-complete-backward ()}}
\entry{export-completions ()}{152}{\code {export-completions ()}}
\entry{delete-char-or-list ()}{152}{\code {delete-char-or-list ()}}
\entry{complete-filename (M-/)}{152}{\code {complete-filename (M-/)}}
\entry{possible-filename-completions (C-x /)}{152}{\code {possible-filename-completions (C-x /)}}
\entry{complete-username (M-~)}{152}{\code {complete-username (M-~)}}
\entry{possible-username-completions (C-x ~)}{152}{\code {possible-username-completions (C-x ~)}}
\entry{complete-variable (M-$)}{152}{\code {complete-variable (M-$)}}
\entry{possible-variable-completions (C-x $)}{152}{\code {possible-variable-completions (C-x $)}}
\entry{complete-hostname (M-@)}{152}{\code {complete-hostname (M-@)}}
\entry{possible-hostname-completions (C-x @)}{153}{\code {possible-hostname-completions (C-x @)}}
\entry{complete-command (M-!)}{153}{\code {complete-command (M-!)}}
\entry{possible-command-completions (C-x !)}{153}{\code {possible-command-completions (C-x !)}}
\entry{dynamic-complete-history (M-TAB)}{153}{\code {dynamic-complete-history (M-\key {TAB})}}
\entry{dabbrev-expand ()}{153}{\code {dabbrev-expand ()}}
\entry{complete-into-braces (M-{\indexlbrace })}{153}{\code {complete-into-braces (M-{\tt \char 123})}}
\entry{start-kbd-macro (C-x ()}{153}{\code {start-kbd-macro (C-x ()}}
\entry{end-kbd-macro (C-x ))}{153}{\code {end-kbd-macro (C-x ))}}
\entry{call-last-kbd-macro (C-x e)}{153}{\code {call-last-kbd-macro (C-x e)}}
\entry{print-last-kbd-macro ()}{153}{\code {print-last-kbd-macro ()}}
\entry{re-read-init-file (C-x C-r)}{153}{\code {re-read-init-file (C-x C-r)}}
\entry{abort (C-g)}{153}{\code {abort (C-g)}}
\entry{do-lowercase-version (M-A, M-B, M-x, ...{})}{154}{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}
\entry{prefix-meta (ESC)}{154}{\code {prefix-meta (\key {ESC})}}
\entry{undo (C-_ or C-x C-u)}{154}{\code {undo (C-_ or C-x C-u)}}
\entry{revert-line (M-r)}{154}{\code {revert-line (M-r)}}
\entry{tilde-expand (M-&)}{154}{\code {tilde-expand (M-&)}}
\entry{set-mark (C-@)}{154}{\code {set-mark (C-@)}}
\entry{exchange-point-and-mark (C-x C-x)}{154}{\code {exchange-point-and-mark (C-x C-x)}}
\entry{character-search (C-])}{154}{\code {character-search (C-])}}
\entry{character-search-backward (M-C-])}{154}{\code {character-search-backward (M-C-])}}
\entry{skip-csi-sequence ()}{154}{\code {skip-csi-sequence ()}}
\entry{insert-comment (M-#)}{154}{\code {insert-comment (M-#)}}
\entry{dump-functions ()}{155}{\code {dump-functions ()}}
\entry{dump-variables ()}{155}{\code {dump-variables ()}}
\entry{dump-macros ()}{155}{\code {dump-macros ()}}
\entry{execute-named-command (M-x)}{155}{\code {execute-named-command (M-x)}}
\entry{spell-correct-word (C-x s)}{155}{\code {spell-correct-word (C-x s)}}
\entry{glob-complete-word (M-g)}{155}{\code {glob-complete-word (M-g)}}
\entry{glob-expand-word (C-x *)}{155}{\code {glob-expand-word (C-x *)}}
\entry{glob-list-expansions (C-x g)}{155}{\code {glob-list-expansions (C-x g)}}
\entry{shell-expand-line (M-C-e)}{155}{\code {shell-expand-line (M-C-e)}}
\entry{history-expand-line (M-^)}{155}{\code {history-expand-line (M-^)}}
\entry{magic-space ()}{156}{\code {magic-space ()}}
\entry{alias-expand-line ()}{156}{\code {alias-expand-line ()}}
\entry{history-and-alias-expand-line ()}{156}{\code {history-and-alias-expand-line ()}}
\entry{insert-last-argument (M-. or M-_)}{156}{\code {insert-last-argument (M-. or M-_)}}
\entry{edit-and-execute-command (C-x C-e)}{156}{\code {edit-and-execute-command (C-x C-e)}}
\entry{display-shell-version (C-x C-v)}{156}{\code {display-shell-version (C-x C-v)}}
\entry{beginning-of-line (C-a)}{147}{\code {beginning-of-line (C-a)}}
\entry{end-of-line (C-e)}{147}{\code {end-of-line (C-e)}}
\entry{forward-char (C-f)}{147}{\code {forward-char (C-f)}}
\entry{backward-char (C-b)}{147}{\code {backward-char (C-b)}}
\entry{forward-word (M-f)}{147}{\code {forward-word (M-f)}}
\entry{backward-word (M-b)}{147}{\code {backward-word (M-b)}}
\entry{shell-forward-word (M-C-f)}{147}{\code {shell-forward-word (M-C-f)}}
\entry{shell-backward-word (M-C-b)}{147}{\code {shell-backward-word (M-C-b)}}
\entry{previous-screen-line ()}{148}{\code {previous-screen-line ()}}
\entry{next-screen-line ()}{148}{\code {next-screen-line ()}}
\entry{clear-display (M-C-l)}{148}{\code {clear-display (M-C-l)}}
\entry{clear-screen (C-l)}{148}{\code {clear-screen (C-l)}}
\entry{redraw-current-line ()}{148}{\code {redraw-current-line ()}}
\entry{accept-line (Newline or Return)}{148}{\code {accept-line (Newline or Return)}}
\entry{previous-history (C-p)}{148}{\code {previous-history (C-p)}}
\entry{next-history (C-n)}{148}{\code {next-history (C-n)}}
\entry{beginning-of-history (M-<)}{148}{\code {beginning-of-history (M-<)}}
\entry{end-of-history (M->)}{148}{\code {end-of-history (M->)}}
\entry{reverse-search-history (C-r)}{148}{\code {reverse-search-history (C-r)}}
\entry{forward-search-history (C-s)}{149}{\code {forward-search-history (C-s)}}
\entry{non-incremental-reverse-search-history (M-p)}{149}{\code {non-incremental-reverse-search-history (M-p)}}
\entry{non-incremental-forward-search-history (M-n)}{149}{\code {non-incremental-forward-search-history (M-n)}}
\entry{history-search-backward ()}{149}{\code {history-search-backward ()}}
\entry{history-search-forward ()}{149}{\code {history-search-forward ()}}
\entry{history-substring-search-backward ()}{149}{\code {history-substring-search-backward ()}}
\entry{history-substring-search-forward ()}{149}{\code {history-substring-search-forward ()}}
\entry{yank-nth-arg (M-C-y)}{149}{\code {yank-nth-arg (M-C-y)}}
\entry{yank-last-arg (M-. or M-_)}{149}{\code {yank-last-arg (M-. or M-_)}}
\entry{operate-and-get-next (C-o)}{150}{\code {operate-and-get-next (C-o)}}
\entry{fetch-history ()}{150}{\code {fetch-history ()}}
\entry{end-of-file (usually C-d)}{150}{\code {\i {end-of-file} (usually C-d)}}
\entry{delete-char (C-d)}{150}{\code {delete-char (C-d)}}
\entry{backward-delete-char (Rubout)}{150}{\code {backward-delete-char (Rubout)}}
\entry{forward-backward-delete-char ()}{150}{\code {forward-backward-delete-char ()}}
\entry{quoted-insert (C-q or C-v)}{150}{\code {quoted-insert (C-q or C-v)}}
\entry{self-insert (a, b, A, 1, !, ...{})}{150}{\code {self-insert (a, b, A, 1, !, \dots {})}}
\entry{bracketed-paste-begin ()}{150}{\code {bracketed-paste-begin ()}}
\entry{transpose-chars (C-t)}{151}{\code {transpose-chars (C-t)}}
\entry{transpose-words (M-t)}{151}{\code {transpose-words (M-t)}}
\entry{shell-transpose-words (M-C-t)}{151}{\code {shell-transpose-words (M-C-t)}}
\entry{upcase-word (M-u)}{151}{\code {upcase-word (M-u)}}
\entry{downcase-word (M-l)}{151}{\code {downcase-word (M-l)}}
\entry{capitalize-word (M-c)}{151}{\code {capitalize-word (M-c)}}
\entry{overwrite-mode ()}{151}{\code {overwrite-mode ()}}
\entry{kill-line (C-k)}{151}{\code {kill-line (C-k)}}
\entry{backward-kill-line (C-x Rubout)}{152}{\code {backward-kill-line (C-x Rubout)}}
\entry{unix-line-discard (C-u)}{152}{\code {unix-line-discard (C-u)}}
\entry{kill-whole-line ()}{152}{\code {kill-whole-line ()}}
\entry{kill-word (M-d)}{152}{\code {kill-word (M-d)}}
\entry{backward-kill-word (M-DEL)}{152}{\code {backward-kill-word (M-\key {DEL})}}
\entry{shell-kill-word (M-C-d)}{152}{\code {shell-kill-word (M-C-d)}}
\entry{shell-backward-kill-word ()}{152}{\code {shell-backward-kill-word ()}}
\entry{unix-word-rubout (C-w)}{152}{\code {unix-word-rubout (C-w)}}
\entry{unix-filename-rubout ()}{152}{\code {unix-filename-rubout ()}}
\entry{delete-horizontal-space ()}{152}{\code {delete-horizontal-space ()}}
\entry{kill-region ()}{152}{\code {kill-region ()}}
\entry{copy-region-as-kill ()}{152}{\code {copy-region-as-kill ()}}
\entry{copy-backward-word ()}{152}{\code {copy-backward-word ()}}
\entry{copy-forward-word ()}{152}{\code {copy-forward-word ()}}
\entry{yank (C-y)}{152}{\code {yank (C-y)}}
\entry{yank-pop (M-y)}{153}{\code {yank-pop (M-y)}}
\entry{digit-argument (M-0, M-1, ...{} M--)}{153}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
\entry{universal-argument ()}{153}{\code {universal-argument ()}}
\entry{complete (TAB)}{153}{\code {complete (\key {TAB})}}
\entry{possible-completions (M-?)}{153}{\code {possible-completions (M-?)}}
\entry{insert-completions (M-*)}{153}{\code {insert-completions (M-*)}}
\entry{menu-complete ()}{153}{\code {menu-complete ()}}
\entry{menu-complete-backward ()}{154}{\code {menu-complete-backward ()}}
\entry{export-completions ()}{154}{\code {export-completions ()}}
\entry{delete-char-or-list ()}{154}{\code {delete-char-or-list ()}}
\entry{complete-filename (M-/)}{154}{\code {complete-filename (M-/)}}
\entry{possible-filename-completions (C-x /)}{154}{\code {possible-filename-completions (C-x /)}}
\entry{complete-username (M-~)}{154}{\code {complete-username (M-~)}}
\entry{possible-username-completions (C-x ~)}{154}{\code {possible-username-completions (C-x ~)}}
\entry{complete-variable (M-$)}{154}{\code {complete-variable (M-$)}}
\entry{possible-variable-completions (C-x $)}{154}{\code {possible-variable-completions (C-x $)}}
\entry{complete-hostname (M-@)}{154}{\code {complete-hostname (M-@)}}
\entry{possible-hostname-completions (C-x @)}{155}{\code {possible-hostname-completions (C-x @)}}
\entry{complete-command (M-!)}{155}{\code {complete-command (M-!)}}
\entry{possible-command-completions (C-x !)}{155}{\code {possible-command-completions (C-x !)}}
\entry{dynamic-complete-history (M-TAB)}{155}{\code {dynamic-complete-history (M-\key {TAB})}}
\entry{dabbrev-expand ()}{155}{\code {dabbrev-expand ()}}
\entry{complete-into-braces (M-{\indexlbrace })}{155}{\code {complete-into-braces (M-{\tt \char 123})}}
\entry{start-kbd-macro (C-x ()}{155}{\code {start-kbd-macro (C-x ()}}
\entry{end-kbd-macro (C-x ))}{155}{\code {end-kbd-macro (C-x ))}}
\entry{call-last-kbd-macro (C-x e)}{155}{\code {call-last-kbd-macro (C-x e)}}
\entry{print-last-kbd-macro ()}{155}{\code {print-last-kbd-macro ()}}
\entry{re-read-init-file (C-x C-r)}{155}{\code {re-read-init-file (C-x C-r)}}
\entry{abort (C-g)}{155}{\code {abort (C-g)}}
\entry{do-lowercase-version (M-A, M-B, M-x, ...{})}{156}{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}
\entry{prefix-meta (ESC)}{156}{\code {prefix-meta (\key {ESC})}}
\entry{undo (C-_ or C-x C-u)}{156}{\code {undo (C-_ or C-x C-u)}}
\entry{revert-line (M-r)}{156}{\code {revert-line (M-r)}}
\entry{tilde-expand (M-&)}{156}{\code {tilde-expand (M-&)}}
\entry{set-mark (C-@)}{156}{\code {set-mark (C-@)}}
\entry{exchange-point-and-mark (C-x C-x)}{156}{\code {exchange-point-and-mark (C-x C-x)}}
\entry{character-search (C-])}{156}{\code {character-search (C-])}}
\entry{character-search-backward (M-C-])}{156}{\code {character-search-backward (M-C-])}}
\entry{skip-csi-sequence ()}{156}{\code {skip-csi-sequence ()}}
\entry{insert-comment (M-#)}{156}{\code {insert-comment (M-#)}}
\entry{dump-functions ()}{157}{\code {dump-functions ()}}
\entry{dump-variables ()}{157}{\code {dump-variables ()}}
\entry{dump-macros ()}{157}{\code {dump-macros ()}}
\entry{execute-named-command (M-x)}{157}{\code {execute-named-command (M-x)}}
\entry{spell-correct-word (C-x s)}{157}{\code {spell-correct-word (C-x s)}}
\entry{glob-complete-word (M-g)}{157}{\code {glob-complete-word (M-g)}}
\entry{glob-expand-word (C-x *)}{157}{\code {glob-expand-word (C-x *)}}
\entry{glob-list-expansions (C-x g)}{157}{\code {glob-list-expansions (C-x g)}}
\entry{shell-expand-line (M-C-e)}{157}{\code {shell-expand-line (M-C-e)}}
\entry{history-expand-line (M-^)}{157}{\code {history-expand-line (M-^)}}
\entry{magic-space ()}{158}{\code {magic-space ()}}
\entry{alias-expand-line ()}{158}{\code {alias-expand-line ()}}
\entry{history-and-alias-expand-line ()}{158}{\code {history-and-alias-expand-line ()}}
\entry{insert-last-argument (M-. or M-_)}{158}{\code {insert-last-argument (M-. or M-_)}}
\entry{edit-and-execute-command (C-x C-e)}{158}{\code {edit-and-execute-command (C-x C-e)}}
\entry{display-shell-version (C-x C-v)}{158}{\code {display-shell-version (C-x C-v)}}
+116 -116
View File
@@ -1,136 +1,136 @@
\initial {A}
\entry{\code {abort (C-g)}}{153}
\entry{\code {accept-line (Newline or Return)}}{146}
\entry{\code {alias-expand-line ()}}{156}
\entry{\code {abort (C-g)}}{155}
\entry{\code {accept-line (Newline or Return)}}{148}
\entry{\code {alias-expand-line ()}}{158}
\initial {B}
\entry{\code {backward-char (C-b)}}{145}
\entry{\code {backward-delete-char (Rubout)}}{148}
\entry{\code {backward-kill-line (C-x Rubout)}}{149}
\entry{\code {backward-kill-word (M-\key {DEL})}}{150}
\entry{\code {backward-word (M-b)}}{145}
\entry{\code {beginning-of-history (M-<)}}{146}
\entry{\code {beginning-of-line (C-a)}}{145}
\entry{\code {bracketed-paste-begin ()}}{148}
\entry{\code {backward-char (C-b)}}{147}
\entry{\code {backward-delete-char (Rubout)}}{150}
\entry{\code {backward-kill-line (C-x Rubout)}}{152}
\entry{\code {backward-kill-word (M-\key {DEL})}}{152}
\entry{\code {backward-word (M-b)}}{147}
\entry{\code {beginning-of-history (M-<)}}{148}
\entry{\code {beginning-of-line (C-a)}}{147}
\entry{\code {bracketed-paste-begin ()}}{150}
\initial {C}
\entry{\code {call-last-kbd-macro (C-x e)}}{153}
\entry{\code {capitalize-word (M-c)}}{149}
\entry{\code {character-search (C-])}}{154}
\entry{\code {character-search-backward (M-C-])}}{154}
\entry{\code {clear-display (M-C-l)}}{146}
\entry{\code {clear-screen (C-l)}}{146}
\entry{\code {complete (\key {TAB})}}{151}
\entry{\code {complete-command (M-!)}}{153}
\entry{\code {complete-filename (M-/)}}{152}
\entry{\code {complete-hostname (M-@)}}{152}
\entry{\code {complete-into-braces (M-{\tt \char 123})}}{153}
\entry{\code {complete-username (M-~)}}{152}
\entry{\code {complete-variable (M-$)}}{152}
\entry{\code {copy-backward-word ()}}{150}
\entry{\code {copy-forward-word ()}}{150}
\entry{\code {copy-region-as-kill ()}}{150}
\entry{\code {call-last-kbd-macro (C-x e)}}{155}
\entry{\code {capitalize-word (M-c)}}{151}
\entry{\code {character-search (C-])}}{156}
\entry{\code {character-search-backward (M-C-])}}{156}
\entry{\code {clear-display (M-C-l)}}{148}
\entry{\code {clear-screen (C-l)}}{148}
\entry{\code {complete (\key {TAB})}}{153}
\entry{\code {complete-command (M-!)}}{155}
\entry{\code {complete-filename (M-/)}}{154}
\entry{\code {complete-hostname (M-@)}}{154}
\entry{\code {complete-into-braces (M-{\tt \char 123})}}{155}
\entry{\code {complete-username (M-~)}}{154}
\entry{\code {complete-variable (M-$)}}{154}
\entry{\code {copy-backward-word ()}}{152}
\entry{\code {copy-forward-word ()}}{152}
\entry{\code {copy-region-as-kill ()}}{152}
\initial {D}
\entry{\code {dabbrev-expand ()}}{153}
\entry{\code {delete-char (C-d)}}{148}
\entry{\code {delete-char-or-list ()}}{152}
\entry{\code {delete-horizontal-space ()}}{150}
\entry{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{151}
\entry{\code {display-shell-version (C-x C-v)}}{156}
\entry{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}{154}
\entry{\code {downcase-word (M-l)}}{149}
\entry{\code {dump-functions ()}}{155}
\entry{\code {dump-macros ()}}{155}
\entry{\code {dump-variables ()}}{155}
\entry{\code {dynamic-complete-history (M-\key {TAB})}}{153}
\entry{\code {dabbrev-expand ()}}{155}
\entry{\code {delete-char (C-d)}}{150}
\entry{\code {delete-char-or-list ()}}{154}
\entry{\code {delete-horizontal-space ()}}{152}
\entry{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{153}
\entry{\code {display-shell-version (C-x C-v)}}{158}
\entry{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}{156}
\entry{\code {downcase-word (M-l)}}{151}
\entry{\code {dump-functions ()}}{157}
\entry{\code {dump-macros ()}}{157}
\entry{\code {dump-variables ()}}{157}
\entry{\code {dynamic-complete-history (M-\key {TAB})}}{155}
\initial {E}
\entry{\code {edit-and-execute-command (C-x C-e)}}{156}
\entry{\code {end-kbd-macro (C-x ))}}{153}
\entry{\code {\i {end-of-file} (usually C-d)}}{148}
\entry{\code {end-of-history (M->)}}{146}
\entry{\code {end-of-line (C-e)}}{145}
\entry{\code {exchange-point-and-mark (C-x C-x)}}{154}
\entry{\code {execute-named-command (M-x)}}{155}
\entry{\code {export-completions ()}}{152}
\entry{\code {edit-and-execute-command (C-x C-e)}}{158}
\entry{\code {end-kbd-macro (C-x ))}}{155}
\entry{\code {\i {end-of-file} (usually C-d)}}{150}
\entry{\code {end-of-history (M->)}}{148}
\entry{\code {end-of-line (C-e)}}{147}
\entry{\code {exchange-point-and-mark (C-x C-x)}}{156}
\entry{\code {execute-named-command (M-x)}}{157}
\entry{\code {export-completions ()}}{154}
\initial {F}
\entry{\code {fetch-history ()}}{148}
\entry{\code {forward-backward-delete-char ()}}{148}
\entry{\code {forward-char (C-f)}}{145}
\entry{\code {forward-search-history (C-s)}}{146}
\entry{\code {forward-word (M-f)}}{145}
\entry{\code {fetch-history ()}}{150}
\entry{\code {forward-backward-delete-char ()}}{150}
\entry{\code {forward-char (C-f)}}{147}
\entry{\code {forward-search-history (C-s)}}{149}
\entry{\code {forward-word (M-f)}}{147}
\initial {G}
\entry{\code {glob-complete-word (M-g)}}{155}
\entry{\code {glob-expand-word (C-x *)}}{155}
\entry{\code {glob-list-expansions (C-x g)}}{155}
\entry{\code {glob-complete-word (M-g)}}{157}
\entry{\code {glob-expand-word (C-x *)}}{157}
\entry{\code {glob-list-expansions (C-x g)}}{157}
\initial {H}
\entry{\code {history-and-alias-expand-line ()}}{156}
\entry{\code {history-expand-line (M-^)}}{155}
\entry{\code {history-search-backward ()}}{147}
\entry{\code {history-search-forward ()}}{147}
\entry{\code {history-substring-search-backward ()}}{147}
\entry{\code {history-substring-search-forward ()}}{147}
\entry{\code {history-and-alias-expand-line ()}}{158}
\entry{\code {history-expand-line (M-^)}}{157}
\entry{\code {history-search-backward ()}}{149}
\entry{\code {history-search-forward ()}}{149}
\entry{\code {history-substring-search-backward ()}}{149}
\entry{\code {history-substring-search-forward ()}}{149}
\initial {I}
\entry{\code {insert-comment (M-#)}}{154}
\entry{\code {insert-completions (M-*)}}{151}
\entry{\code {insert-last-argument (M-. or M-_)}}{156}
\entry{\code {insert-comment (M-#)}}{156}
\entry{\code {insert-completions (M-*)}}{153}
\entry{\code {insert-last-argument (M-. or M-_)}}{158}
\initial {K}
\entry{\code {kill-line (C-k)}}{149}
\entry{\code {kill-region ()}}{150}
\entry{\code {kill-whole-line ()}}{150}
\entry{\code {kill-word (M-d)}}{150}
\entry{\code {kill-line (C-k)}}{151}
\entry{\code {kill-region ()}}{152}
\entry{\code {kill-whole-line ()}}{152}
\entry{\code {kill-word (M-d)}}{152}
\initial {M}
\entry{\code {magic-space ()}}{156}
\entry{\code {menu-complete ()}}{151}
\entry{\code {menu-complete-backward ()}}{152}
\entry{\code {magic-space ()}}{158}
\entry{\code {menu-complete ()}}{153}
\entry{\code {menu-complete-backward ()}}{154}
\initial {N}
\entry{\code {next-history (C-n)}}{146}
\entry{\code {next-screen-line ()}}{146}
\entry{\code {non-incremental-forward-search-history (M-n)}}{147}
\entry{\code {non-incremental-reverse-search-history (M-p)}}{147}
\entry{\code {next-history (C-n)}}{148}
\entry{\code {next-screen-line ()}}{148}
\entry{\code {non-incremental-forward-search-history (M-n)}}{149}
\entry{\code {non-incremental-reverse-search-history (M-p)}}{149}
\initial {O}
\entry{\code {operate-and-get-next (C-o)}}{148}
\entry{\code {overwrite-mode ()}}{149}
\entry{\code {operate-and-get-next (C-o)}}{150}
\entry{\code {overwrite-mode ()}}{151}
\initial {P}
\entry{\code {possible-command-completions (C-x !)}}{153}
\entry{\code {possible-completions (M-?)}}{151}
\entry{\code {possible-filename-completions (C-x /)}}{152}
\entry{\code {possible-hostname-completions (C-x @)}}{153}
\entry{\code {possible-username-completions (C-x ~)}}{152}
\entry{\code {possible-variable-completions (C-x $)}}{152}
\entry{\code {prefix-meta (\key {ESC})}}{154}
\entry{\code {previous-history (C-p)}}{146}
\entry{\code {previous-screen-line ()}}{146}
\entry{\code {print-last-kbd-macro ()}}{153}
\entry{\code {possible-command-completions (C-x !)}}{155}
\entry{\code {possible-completions (M-?)}}{153}
\entry{\code {possible-filename-completions (C-x /)}}{154}
\entry{\code {possible-hostname-completions (C-x @)}}{155}
\entry{\code {possible-username-completions (C-x ~)}}{154}
\entry{\code {possible-variable-completions (C-x $)}}{154}
\entry{\code {prefix-meta (\key {ESC})}}{156}
\entry{\code {previous-history (C-p)}}{148}
\entry{\code {previous-screen-line ()}}{148}
\entry{\code {print-last-kbd-macro ()}}{155}
\initial {Q}
\entry{\code {quoted-insert (C-q or C-v)}}{148}
\entry{\code {quoted-insert (C-q or C-v)}}{150}
\initial {R}
\entry{\code {re-read-init-file (C-x C-r)}}{153}
\entry{\code {redraw-current-line ()}}{146}
\entry{\code {reverse-search-history (C-r)}}{146}
\entry{\code {revert-line (M-r)}}{154}
\entry{\code {re-read-init-file (C-x C-r)}}{155}
\entry{\code {redraw-current-line ()}}{148}
\entry{\code {reverse-search-history (C-r)}}{148}
\entry{\code {revert-line (M-r)}}{156}
\initial {S}
\entry{\code {self-insert (a, b, A, 1, !, \dots {})}}{148}
\entry{\code {set-mark (C-@)}}{154}
\entry{\code {shell-backward-kill-word ()}}{150}
\entry{\code {shell-backward-word (M-C-b)}}{145}
\entry{\code {shell-expand-line (M-C-e)}}{155}
\entry{\code {shell-forward-word (M-C-f)}}{145}
\entry{\code {shell-kill-word (M-C-d)}}{150}
\entry{\code {shell-transpose-words (M-C-t)}}{149}
\entry{\code {skip-csi-sequence ()}}{154}
\entry{\code {spell-correct-word (C-x s)}}{155}
\entry{\code {start-kbd-macro (C-x ()}}{153}
\entry{\code {self-insert (a, b, A, 1, !, \dots {})}}{150}
\entry{\code {set-mark (C-@)}}{156}
\entry{\code {shell-backward-kill-word ()}}{152}
\entry{\code {shell-backward-word (M-C-b)}}{147}
\entry{\code {shell-expand-line (M-C-e)}}{157}
\entry{\code {shell-forward-word (M-C-f)}}{147}
\entry{\code {shell-kill-word (M-C-d)}}{152}
\entry{\code {shell-transpose-words (M-C-t)}}{151}
\entry{\code {skip-csi-sequence ()}}{156}
\entry{\code {spell-correct-word (C-x s)}}{157}
\entry{\code {start-kbd-macro (C-x ()}}{155}
\initial {T}
\entry{\code {tilde-expand (M-&)}}{154}
\entry{\code {transpose-chars (C-t)}}{149}
\entry{\code {transpose-words (M-t)}}{149}
\entry{\code {tilde-expand (M-&)}}{156}
\entry{\code {transpose-chars (C-t)}}{151}
\entry{\code {transpose-words (M-t)}}{151}
\initial {U}
\entry{\code {undo (C-_ or C-x C-u)}}{154}
\entry{\code {universal-argument ()}}{151}
\entry{\code {unix-filename-rubout ()}}{150}
\entry{\code {unix-line-discard (C-u)}}{149}
\entry{\code {unix-word-rubout (C-w)}}{150}
\entry{\code {upcase-word (M-u)}}{149}
\entry{\code {undo (C-_ or C-x C-u)}}{156}
\entry{\code {universal-argument ()}}{153}
\entry{\code {unix-filename-rubout ()}}{152}
\entry{\code {unix-line-discard (C-u)}}{152}
\entry{\code {unix-word-rubout (C-w)}}{152}
\entry{\code {upcase-word (M-u)}}{151}
\initial {Y}
\entry{\code {yank (C-y)}}{150}
\entry{\code {yank-last-arg (M-. or M-_)}}{147}
\entry{\code {yank-nth-arg (M-C-y)}}{147}
\entry{\code {yank-pop (M-y)}}{150}
\entry{\code {yank (C-y)}}{152}
\entry{\code {yank-last-arg (M-. or M-_)}}{149}
\entry{\code {yank-nth-arg (M-C-y)}}{149}
\entry{\code {yank-pop (M-y)}}{153}
+104 -25
View File
@@ -4,9 +4,9 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- This text is a brief description of the features that are present in
the Bash shell (version 5.3, 8 January 2025).
the Bash shell (version 5.3, 24 February 2025).
This is Edition 5.3, last updated 8 January 2025,
This is Edition 5.3, last updated 24 February 2025,
of The GNU Bash Reference Manual,
for Bash, Version 5.3.
@@ -77,10 +77,10 @@ Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previou
<h1 class="top" id="Bash-Features-1"><span>Bash Features<a class="copiable-link" href="#Bash-Features-1"> &para;</a></span></h1>
<p>This text is a brief description of the features that are present in
the Bash shell (version 5.3, 8 January 2025).
the Bash shell (version 5.3, 24 February 2025).
The Bash home page is <a class="url" href="http://www.gnu.org/software/bash/">http://www.gnu.org/software/bash/</a>.
</p>
<p>This is Edition 5.3, last updated 8 January 2025,
<p>This is Edition 5.3, last updated 24 February 2025,
of <cite class="cite">The GNU Bash Reference Manual</cite>,
for <code class="code">Bash</code>, Version 5.3.
</p>
@@ -1490,8 +1490,11 @@ done
described below (see <a class="pxref" href="#Shell-Arithmetic">Shell Arithmetic</a>).
The <var class="var">expression</var> undergoes the same expansions
as if it were within double quotes,
but double quote characters in <var class="var">expression</var> are not treated specially
and are removed.
but unescaped double quote characters
in <var class="var">expression</var> are not treated
specially and are removed.
Since this can potentially result in empty strings,
this command treats those as expressions that evaluate to 0.
If the value of the expression is non-zero, the return status is 0;
otherwise the return status is 1.
</p>
@@ -2124,7 +2127,7 @@ The null string is a valid value.
Once a variable is set, it may be unset only by using
the <code class="code">unset</code> builtin command.
</p>
<p>A variable may be assigned to by a statement of the form
<p>A variable is assigned to using a statement of the form
</p><div class="example">
<pre class="example-preformatted"><var class="var">name</var>=[<var class="var">value</var>]
</pre></div>
@@ -2460,7 +2463,7 @@ each generated term will contain the same number of digits,
zero-padding where necessary.
When letters are supplied, the expression expands to each character
lexicographically between <var class="var">x</var> and <var class="var">y</var>, inclusive,
using the default C locale.
using the C locale.
Note that both <var class="var">x</var> and <var class="var">y</var> must be of the same type
(integer or letter).
When the increment is supplied, it is used as the difference between
@@ -2729,6 +2732,14 @@ $ : ${var=DEFAULT}
$ echo $var
DEFAULT
$ var=
$ : ${var=DEFAULT}
$ echo $var
$ var=
$ : ${var:=DEFAULT}
$ echo $var
DEFAULT
$ unset var
$ : ${var:=DEFAULT}
$ echo $var
DEFAULT
@@ -2750,6 +2761,16 @@ Otherwise, the value of <var class="var">parameter</var> is substituted.
<pre class="example-preformatted">$ var=
$ : ${var:?var is unset or null}
bash: var: var is unset or null
$ echo ${var?var is unset}
$ unset var
$ : ${var?var is unset}
bash: var: var is unset
$ : ${var:?var is unset or null}
bash: var: var is unset or null
$ var=123
$ echo ${var:?var is unset or null}
123
</pre></div>
</dd>
@@ -2763,9 +2784,18 @@ The value of <var class="var">parameter</var> is not used.
<pre class="example-preformatted">$ var=123
$ echo ${var:+var is set and not null}
var is set and not null
$ echo ${var+var is set}
var is set
$ var=
$ echo ${var:+var is set and not null}
$ echo ${var+var is set}
var is set
$ unset var
$ echo ${var+var is set}
$ echo ${var:+var is set and not null}
$
</pre></div>
@@ -2778,9 +2808,15 @@ starting at the character specified by <var class="var">offset</var>.
If <var class="var">parameter</var> is &lsquo;<samp class="samp">@</samp>&rsquo; or &lsquo;<samp class="samp">*</samp>&rsquo;, an indexed array subscripted by
&lsquo;<samp class="samp">@</samp>&rsquo; or &lsquo;<samp class="samp">*</samp>&rsquo;, or an associative array name, the results differ as
described below.
If <var class="var">length</var> is omitted, it expands to the substring of the value of
If :<var class="var">length</var> is omitted (the first form above), this
expands to the substring of the value of
<var class="var">parameter</var> starting at the character specified by <var class="var">offset</var>
and extending to the end of the value.
If <var class="var">offset</var> is omitted,
it is treated as 0.
If <var class="var">length</var> is omitted,
but the colon after <var class="var">offset</var> is present,
it is treated as 0.
<var class="var">length</var> and <var class="var">offset</var> are arithmetic expressions
(see <a class="pxref" href="#Shell-Arithmetic">Shell Arithmetic</a>).
</p>
@@ -3320,11 +3356,16 @@ The format for arithmetic expansion is:
<p>The <var class="var">expression</var> undergoes the same expansions
as if it were within double quotes,
but double quote characters in <var class="var">expression</var> are not treated specially
and are removed.
but unescaped double quote characters
in <var class="var">expression</var> are not treated
specially and are removed.
All tokens in the expression undergo parameter and variable expansion,
command substitution, and quote removal.
The result is treated as the arithmetic expression to be evaluated.
Since the way Bash handles double quotes
can potentially result in empty strings,
arithmetic expansion treats
those as expressions that evaluate to 0.
Arithmetic expansions may be nested.
</p>
<p>The evaluation is performed according to the rules listed below
@@ -5270,7 +5311,8 @@ command), a list, or a compound command returns a
non-zero exit status,
subject to the following conditions.
The <code class="code">ERR</code> trap is not executed if the failed command is part of the
command list immediately following an <code class="code">until</code> or <code class="code">while</code> keyword,
command list immediately following an
<code class="code">until</code> or <code class="code">while</code> reserved word,
part of the test following the <code class="code">if</code> or <code class="code">elif</code> reserved words,
part of a command executed in a <code class="code">&amp;&amp;</code> or <code class="code">||</code> list
except the command following the final <code class="code">&amp;&amp;</code> or <code class="code">||</code>,
@@ -6507,7 +6549,8 @@ a list (see <a class="pxref" href="#Lists">Lists of Commands</a>),
or a compound command (see <a class="pxref" href="#Compound-Commands">Compound Commands</a>)
returns a non-zero status.
The shell does not exit if the command that fails is part of the
command list immediately following a <code class="code">while</code> or <code class="code">until</code> keyword,
command list immediately following a
<code class="code">while</code> or <code class="code">until</code> reserved word,
part of the test in an <code class="code">if</code> statement,
part of any command executed in a <code class="code">&amp;&amp;</code> or <code class="code">||</code> list except
the command following the final <code class="code">&amp;&amp;</code> or <code class="code">||</code>,
@@ -9280,6 +9323,11 @@ respectively. <var class="var">Arg1</var> and <var class="var">arg2</var>
may be positive or negative integers.
When used with the <code class="code">[[</code> command, <var class="var">arg1</var> and <var class="var">arg2</var>
are evaluated as arithmetic expressions (see <a class="pxref" href="#Shell-Arithmetic">Shell Arithmetic</a>).
Since the expansions the <code class="code">[[</code> command performs on
<var class="var">arg1</var> and <var class="var">arg2</var>
can potentially result in empty strings,
arithmetic expression evaluation treats
those as expressions that evaluate to 0.
</p></dd>
</dl>
@@ -9536,8 +9584,24 @@ and are zero-based;
associative arrays use arbitrary strings.
Unless otherwise noted, indexed array indices must be non-negative integers.
</p>
<p>An indexed array is created automatically if any variable is assigned to
using the syntax
<p>The shell performs
parameter and variable expansion, arithmetic expansion,
command substitution, and quote removal
on indexed array subscripts.
Since this
can potentially result in empty strings,
subscript indexing treats
those as expressions that evaluate to 0.
</p>
<p>The shell performs
tilde expansion,
parameter and variable expansion, arithmetic expansion,
command substitution, and quote removal
on associative array subscripts.
Empty strings cannot be used as associative array keys.
</p>
<p>Bash automatically creates an indexed array
if any variable is assigned to using the syntax
</p><div class="example">
<pre class="example-preformatted"><var class="var">name</var>[<var class="var">subscript</var>]=<var class="var">value</var>
</pre></div>
@@ -10268,7 +10332,7 @@ default value the shell assigns to <code class="env">$HISTFILE</code>).
double-quoted string, even if the <code class="code">histexpand</code> option is enabled.
</li><li> When printing shell function definitions (e.g., by <code class="code">type</code>), Bash does
not print the <code class="code">function</code> keyword unless necessary.
not print the <code class="code">function</code> reserved word unless necessary.
</li><li> Non-interactive shells exit if a syntax error in an arithmetic expansion
results in an invalid expression.
@@ -10382,6 +10446,12 @@ separated by spaces, without the &lsquo;<samp class="samp">SIG</samp>&rsquo; pre
</li><li> The <code class="code">kill</code> builtin does not accept signal names with a &lsquo;<samp class="samp">SIG</samp>&rsquo;
prefix.
</li><li> The <code class="code">kill</code> builtin returns a failure status if any of the pid or job
arguments are invalid or if sending the specified signal to any of them
fails.
In default mode, <code class="code">kill</code> returns success if the signal was
successfully sent to any of the specified processes.
</li><li> The <code class="code">printf</code> builtin uses <code class="code">double</code> (via <code class="code">strtod</code>) to convert
arguments corresponding to floating point conversion specifiers, instead of
<code class="code">long double</code> if it&rsquo;s available.
@@ -10750,7 +10820,10 @@ Bash uses the <var class="var">job</var> abstraction as the basis for job contro
each process has a <em class="dfn">process group <small class="sc">ID</small></em>, and
the operating system maintains the notion of a current terminal
process group <small class="sc">ID</small>.
Processes that have the same process group ID are said to be part of
This terminal process group <small class="sc">ID</small> is associated with the
<em class="dfn">controlling terminal</em>.
</p>
<p>Processes that have the same process group ID are said to be part of
the same <em class="dfn">process group</em>.
Members of the foreground process group (processes whose
process group <small class="sc">ID</small> is equal to the current terminal process group
@@ -10758,14 +10831,18 @@ process group <small class="sc">ID</small> is equal to the current terminal proc
Processes in the foreground process group are said to be
foreground processes.
Background processes
are those whose process group <small class="sc">ID</small> differs from the terminal&rsquo;s;
are those whose process group <small class="sc">ID</small> differs from the
controlling terminal&rsquo;s;
such processes are immune to keyboard-generated signals.
Only foreground processes are allowed to read from or, if
the user so specifies with <code class="code">stty tostop</code>, write to the terminal.
Background processes which attempt to
read from (write to when <code class="code">tostop</code> is in effect) the
terminal are sent a <code class="code">SIGTTIN</code> (<code class="code">SIGTTOU</code>)
signal by the kernel&rsquo;s terminal driver,
Only foreground processes are allowed to read from or,
if the user so specifies with
<code class="code">stty tostop</code>,
write to the controlling terminal.
The system sends a
<code class="code">SIGTTIN</code> (<code class="code">SIGTTOU</code>)
signal to background processes which attempt to
read from (write to when <code class="code">tostop</code> is in effect)
the terminal,
which, unless caught, suspends the process.
</p>
<p>If the operating system on which Bash is running supports
@@ -12578,6 +12655,8 @@ leaving the current line at the top of the screen.
<dd><p>Clear the screen,
then redraw the current line,
leaving the current line at the top of the screen.
If given a numeric argument, this refreshes the current line
without clearing the screen.
</p>
</dd>
<dt><a id="index-redraw_002dcurrent_002dline-_0028_0029"></a><span><code class="code">redraw-current-line ()</code><a class="copiable-link" href="#index-redraw_002dcurrent_002dline-_0028_0029"> &para;</a></span></dt>
@@ -15607,7 +15686,7 @@ expansion (see <a class="pxref" href="#Tilde-Expansion">Tilde Expansion</a>).
</li><li>Bash implements command aliases and the <code class="code">alias</code> and <code class="code">unalias</code>
builtins (see <a class="pxref" href="#Aliases">Aliases</a>).
</li><li>Bash implements the <code class="code">!</code> keyword to negate the return value of
</li><li>Bash implements the <code class="code">!</code> reserved word to negate the return value of
a pipeline (see <a class="pxref" href="#Pipelines">Pipelines</a>).
This is very useful when an <code class="code">if</code> statement needs to act only if a
test fails.
+255 -201
View File
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 7.1 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 8 January 2025).
Bash shell (version 5.3, 24 February 2025).
This is Edition 5.3, last updated 8 January 2025, of The GNU Bash
This is Edition 5.3, last updated 24 February 2025, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Copyright © 1988-2025 Free Software Foundation, Inc.
@@ -27,10 +27,10 @@ Bash Features
*************
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 8 January 2025). The Bash home page is
Bash shell (version 5.3, 24 February 2025). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.3, last updated 8 January 2025, of The GNU Bash
This is Edition 5.3, last updated 24 February 2025, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Bash contains features that appear in other popular shells, and some
@@ -993,8 +993,10 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
The arithmetic EXPRESSION is evaluated according to the rules
described below (*note Shell Arithmetic::). The EXPRESSION
undergoes the same expansions as if it were within double quotes,
but double quote characters in EXPRESSION are not treated specially
and are removed. If the value of the expression is non-zero, the
but unescaped double quote characters in EXPRESSION are not treated
specially and are removed. Since this can potentially result in
empty strings, this command treats those as expressions that
evaluate to 0. If the value of the expression is non-zero, the
return status is 0; otherwise the return status is 1.
[[...]]
@@ -1490,7 +1492,7 @@ attributes.
is a valid value. Once a variable is set, it may be unset only by using
the unset builtin command.
A variable may be assigned to by a statement of the form
A variable is assigned to using a statement of the form
NAME=[VALUE]
If VALUE is not given, the variable is assigned the null string. All
VALUEs undergo tilde expansion, parameter and variable expansion,
@@ -1729,11 +1731,10 @@ integer. When integers are supplied, the expression expands to each
number between X and Y, inclusive. If either X or Y begins with a zero,
each generated term will contain the same number of digits, zero-padding
where necessary. When letters are supplied, the expression expands to
each character lexicographically between X and Y, inclusive, using the
default C locale. Note that both X and Y must be of the same type
(integer or letter). When the increment is supplied, it is used as the
difference between each term. The default increment is 1 or -1 as
appropriate.
each character lexicographically between X and Y, inclusive, using the C
locale. Note that both X and Y must be of the same type (integer or
letter). When the increment is supplied, it is used as the difference
between each term. The default increment is 1 or -1 as appropriate.
Brace expansion is performed before any other expansions, and any
characters special to other expansions are preserved in the result. It
@@ -1917,6 +1918,14 @@ omitted, the operator tests only for existence.
$ echo $var
DEFAULT
$ var=
$ : ${var=DEFAULT}
$ echo $var
$ var=
$ : ${var:=DEFAULT}
$ echo $var
DEFAULT
$ unset var
$ : ${var:=DEFAULT}
$ echo $var
DEFAULT
@@ -1932,6 +1941,16 @@ omitted, the operator tests only for existence.
$ var=
$ : ${var:?var is unset or null}
bash: var: var is unset or null
$ echo ${var?var is unset}
$ unset var
$ : ${var?var is unset}
bash: var: var is unset
$ : ${var:?var is unset or null}
bash: var: var is unset or null
$ var=123
$ echo ${var:?var is unset or null}
123
${PARAMETER:+WORD}
If PARAMETER is null or unset, nothing is substituted, otherwise
@@ -1941,9 +1960,18 @@ omitted, the operator tests only for existence.
$ var=123
$ echo ${var:+var is set and not null}
var is set and not null
$ echo ${var+var is set}
var is set
$ var=
$ echo ${var:+var is set and not null}
$ echo ${var+var is set}
var is set
$ unset var
$ echo ${var+var is set}
$ echo ${var:+var is set and not null}
$
${PARAMETER:OFFSET}
@@ -1952,11 +1980,13 @@ omitted, the operator tests only for existence.
LENGTH characters of the value of PARAMETER starting at the
character specified by OFFSET. If PARAMETER is @ or *, an
indexed array subscripted by @ or *, or an associative array
name, the results differ as described below. If LENGTH is omitted,
it expands to the substring of the value of PARAMETER starting at
the character specified by OFFSET and extending to the end of the
value. LENGTH and OFFSET are arithmetic expressions (*note Shell
Arithmetic::).
name, the results differ as described below. If :LENGTH is omitted
(the first form above), this expands to the substring of the value
of PARAMETER starting at the character specified by OFFSET and
extending to the end of the value. If OFFSET is omitted, it is
treated as 0. If LENGTH is omitted, but the colon after OFFSET is
present, it is treated as 0. LENGTH and OFFSET are arithmetic
expressions (*note Shell Arithmetic::).
If OFFSET evaluates to a number less than zero, the value is used
as an offset in characters from the end of the value of PARAMETER.
@@ -2399,11 +2429,13 @@ the result. The format for arithmetic expansion is:
$(( EXPRESSION ))
The EXPRESSION undergoes the same expansions as if it were within
double quotes, but double quote characters in EXPRESSION are not treated
specially and are removed. All tokens in the expression undergo
parameter and variable expansion, command substitution, and quote
removal. The result is treated as the arithmetic expression to be
evaluated. Arithmetic expansions may be nested.
double quotes, but unescaped double quote characters in EXPRESSION are
not treated specially and are removed. All tokens in the expression
undergo parameter and variable expansion, command substitution, and
quote removal. The result is treated as the arithmetic expression to be
evaluated. Since the way Bash handles double quotes can potentially
result in empty strings, arithmetic expansion treats those as
expressions that evaluate to 0. Arithmetic expansions may be nested.
The evaluation is performed according to the rules listed below
(*note Shell Arithmetic::). If the expression is invalid, Bash prints a
@@ -3898,11 +3930,11 @@ standard.
compound command returns a non-zero exit status, subject to the
following conditions. The ERR trap is not executed if the failed
command is part of the command list immediately following an
until or while keyword, part of the test following the if or
elif reserved words, part of a command executed in a && or ||
list except the command following the final && or ||, any
command in a pipeline but the last, (subject to the state of the
pipefail shell option), or if the command's return status is
until or while reserved word, part of the test following the
if or elif reserved words, part of a command executed in a &&
or || list except the command following the final && or ||,
any command in a pipeline but the last, (subject to the state of
the pipefail shell option), or if the command's return status is
being inverted using !. These are the same conditions obeyed by
the errexit (-e) option.
@@ -4857,9 +4889,9 @@ parameters, or to display the names and values of shell variables.
a list (*note Lists::), or a compound command (*note Compound
Commands::) returns a non-zero status. The shell does not
exit if the command that fails is part of the command list
immediately following a while or until keyword, part of
the test in an if statement, part of any command executed in
a && or || list except the command following the final
immediately following a while or until reserved word, part
of the test in an if statement, part of any command executed
in a && or || list except the command following the final
&& or ||, any command in a pipeline but the last (subject
to the state of the pipefail shell option), or if the
command's return status is being inverted with !. If a
@@ -7002,7 +7034,10 @@ link itself.
greater than or equal to ARG2, respectively. ARG1 and ARG2 may be
positive or negative integers. When used with the [[ command,
ARG1 and ARG2 are evaluated as arithmetic expressions (*note Shell
Arithmetic::).
Arithmetic::). Since the expansions the [[ command performs on
ARG1 and ARG2 can potentially result in empty strings, arithmetic
expression evaluation treats those as expressions that evaluate to
0.

File: bashref.info, Node: Shell Arithmetic, Next: Aliases, Prev: Bash Conditional Expressions, Up: Bash Features
@@ -7183,8 +7218,18 @@ expressions that must expand to an integer (*note Shell Arithmetic::))
and are zero-based; associative arrays use arbitrary strings. Unless
otherwise noted, indexed array indices must be non-negative integers.
An indexed array is created automatically if any variable is assigned
to using the syntax
The shell performs parameter and variable expansion, arithmetic
expansion, command substitution, and quote removal on indexed array
subscripts. Since this can potentially result in empty strings,
subscript indexing treats those as expressions that evaluate to 0.
The shell performs tilde expansion, parameter and variable expansion,
arithmetic expansion, command substitution, and quote removal on
associative array subscripts. Empty strings cannot be used as
associative array keys.
Bash automatically creates an indexed array if any variable is
assigned to using the syntax
NAME[SUBSCRIPT]=VALUE
The SUBSCRIPT is treated as an arithmetic expression that must evaluate
@@ -7759,7 +7804,7 @@ startup files.
double-quoted string, even if the histexpand option is enabled.
31. When printing shell function definitions (e.g., by type), Bash
does not print the function keyword unless necessary.
does not print the function reserved word unless necessary.
32. Non-interactive shells exit if a syntax error in an arithmetic
expansion results in an invalid expression.
@@ -7868,72 +7913,77 @@ startup files.
58. The kill builtin does not accept signal names with a SIG
prefix.
59. The printf builtin uses double (via strtod) to convert
59. The kill builtin returns a failure status if any of the pid or
job arguments are invalid or if sending the specified signal to any
of them fails. In default mode, kill returns success if the
signal was successfully sent to any of the specified processes.
60. The printf builtin uses double (via strtod) to convert
arguments corresponding to floating point conversion specifiers,
instead of long double if it's available. The L length
modifier forces printf to use long double if it's available.
60. The pwd builtin verifies that the value it prints is the same as
61. The pwd builtin verifies that the value it prints is the same as
the current directory, even if it is not asked to check the file
system with the -P option.
61. The read builtin may be interrupted by a signal for which a trap
62. The read builtin may be interrupted by a signal for which a trap
has been set. If Bash receives a trapped signal while executing
read, the trap handler executes and read returns an exit status
greater than 128.
62. When the set builtin is invoked without options, it does not
63. When the set builtin is invoked without options, it does not
display shell function names and definitions.
63. When the set builtin is invoked without options, it displays
64. When the set builtin is invoked without options, it displays
variable values without quotes, unless they contain shell
metacharacters, even if the result contains nonprinting characters.
64. The test builtin compares strings using the current locale when
65. The test builtin compares strings using the current locale when
evaluating the < and > binary operators.
65. The test builtin's -t unary primary requires an argument.
66. The test builtin's -t unary primary requires an argument.
Historical versions of test made the argument optional in certain
cases, and Bash attempts to accommodate those for backwards
compatibility.
66. The trap builtin displays signal names without the leading
67. The trap builtin displays signal names without the leading
SIG.
67. The trap builtin doesn't check the first argument for a possible
68. The trap builtin doesn't check the first argument for a possible
signal specification and revert the signal handling to the original
disposition if it is, unless that argument consists solely of
digits and is a valid signal number. If users want to reset the
handler for a given signal to the original disposition, they should
use - as the first argument.
68. trap -p without arguments displays signals whose dispositions
69. trap -p without arguments displays signals whose dispositions
are set to SIG_DFL and those that were ignored when the shell
started, not just trapped signals.
69. The type and command builtins will not report a non-executable
70. The type and command builtins will not report a non-executable
file as having been found, though the shell will attempt to execute
such a file if it is the only so-named file found in $PATH.
70. The ulimit builtin uses a block size of 512 bytes for the -c
71. The ulimit builtin uses a block size of 512 bytes for the -c
and -f options.
71. The unset builtin with the -v option specified returns a fatal
72. The unset builtin with the -v option specified returns a fatal
error if it attempts to unset a readonly or non-unsettable
variable, which causes a non-interactive shell to exit.
72. When asked to unset a variable that appears in an assignment
73. When asked to unset a variable that appears in an assignment
statement preceding the command, the unset builtin attempts to
unset a variable of the same name in the current or previous scope
as well. This implements the required "if an assigned variable is
further modified by the utility, the modifications made by the
utility shall persist" behavior.
73. The arrival of SIGCHLD when a trap is set on SIGCHLD does not
74. The arrival of SIGCHLD when a trap is set on SIGCHLD does not
interrupt the wait builtin and cause it to return immediately.
The trap command is run once for each child that exits.
74. Bash removes an exited background process's status from the list
75. Bash removes an exited background process's status from the list
of such statuses after the wait builtin returns it.
There is other POSIX behavior that Bash does not implement by default
@@ -8159,19 +8209,22 @@ uses the JOB abstraction as the basis for job control.
To facilitate the implementation of the user interface to job
control, each process has a “process group ID”, and the operating system
maintains the notion of a current terminal process group ID. Processes
that have the same process group ID are said to be part of the same
“process group”. Members of the foreground process group (processes
whose process group ID is equal to the current terminal process group
ID) receive keyboard-generated signals such as SIGINT. Processes in
the foreground process group are said to be foreground processes.
Background processes are those whose process group ID differs from the
terminal's; such processes are immune to keyboard-generated 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 tostop is in
effect) the terminal are sent a SIGTTIN (SIGTTOU) signal by the
kernel's terminal driver, which, unless caught, suspends the process.
maintains the notion of a current terminal process group ID. This
terminal process group ID is associated with the “controlling terminal”.
Processes that have the same process group ID are said to be part of
the same “process group”. Members of the foreground process group
(processes whose process group ID is equal to the current terminal
process group ID) receive keyboard-generated signals such as SIGINT.
Processes in the foreground process group are said to be foreground
processes. Background processes are those whose process group ID
differs from the controlling terminal's; such processes are immune to
keyboard-generated signals. Only foreground processes are allowed to
read from or, if the user so specifies with stty tostop, write to the
controlling terminal. The system sends a SIGTTIN (SIGTTOU) signal
to background processes which attempt to read from (write to when
tostop is in effect) the terminal, which, unless caught, suspends the
process.
If the operating system on which Bash is running supports job
control, Bash contains facilities to use it. Typing the “suspend”
@@ -9561,7 +9614,8 @@ File: bashref.info, Node: Commands For Moving, Next: Commands For History, Up
clear-screen (C-l)
Clear the screen, then redraw the current line, leaving the current
line at the top of the screen.
line at the top of the screen. If given a numeric argument, this
refreshes the current line without clearing the screen.
redraw-current-line ()
Refresh the current line. By default, this is unbound.
@@ -11891,8 +11945,8 @@ historical Bourne shell) as the baseline reference.
• Bash implements command aliases and the alias and unalias
builtins (*note Aliases::).
• Bash implements the ! keyword to negate the return value of a
pipeline (*note Pipelines::). This is very useful when an if
• Bash implements the ! reserved word to negate the return value of
a pipeline (*note Pipelines::). This is very useful when an if
statement needs to act only if a test fails. The Bash -o
pipefail option to set will cause a pipeline to return a failure
status if any command fails (*note The Set Builtin::).
@@ -12877,9 +12931,9 @@ D.2 Index of Shell Reserved Words
* !: Pipelines. (line 9)
* [[: Conditional Constructs.
(line 126)
(line 128)
* ]]: Conditional Constructs.
(line 126)
(line 128)
* {: Command Grouping. (line 21)
* }: Command Grouping. (line 21)
* case: Conditional Constructs.
@@ -13322,7 +13376,7 @@ D.4 Function Index
* quoted-insert (C-q or C-v): Commands For Text. (line 28)
* re-read-init-file (C-x C-r): Miscellaneous Commands.
(line 6)
* redraw-current-line (): Commands For Moving. (line 61)
* redraw-current-line (): Commands For Moving. (line 62)
* reverse-search-history (C-r): Commands For History.
(line 29)
* revert-line (M-r): Miscellaneous Commands.
@@ -13545,138 +13599,138 @@ D.5 Concept Index

Tag Table:
Node: Top900
Node: Introduction2840
Node: What is Bash?3056
Node: What is a shell?4192
Node: Definitions6805
Node: Basic Shell Features10135
Node: Shell Syntax11362
Node: Shell Operation12392
Node: Quoting13686
Node: Escape Character15027
Node: Single Quotes15565
Node: Double Quotes15917
Node: ANSI-C Quoting17265
Node: Locale Translation18662
Node: Creating Internationalized Scripts20068
Node: Comments24269
Node: Shell Commands25039
Node: Reserved Words25981
Node: Simple Commands26849
Node: Pipelines27514
Node: Lists30773
Node: Compound Commands32648
Node: Looping Constructs33660
Node: Conditional Constructs36182
Node: Command Grouping51121
Node: Coprocesses52616
Node: GNU Parallel55305
Node: Shell Functions56226
Node: Shell Parameters64677
Node: Positional Parameters69582
Node: Special Parameters70675
Node: Shell Expansions74139
Node: Brace Expansion76331
Node: Tilde Expansion79680
Node: Shell Parameter Expansion82638
Node: Command Substitution102449
Node: Arithmetic Expansion105981
Node: Process Substitution106998
Node: Word Splitting108109
Node: Filename Expansion110556
Node: Pattern Matching113783
Node: Quote Removal119509
Node: Redirections119816
Node: Executing Commands130082
Node: Simple Command Expansion130752
Node: Command Search and Execution132863
Node: Command Execution Environment135310
Node: Environment138761
Node: Exit Status140667
Node: Signals142728
Node: Shell Scripts147660
Node: Shell Builtin Commands150961
Node: Bourne Shell Builtins153075
Node: Bash Builtins179642
Node: Modifying Shell Behavior216569
Node: The Set Builtin216914
Node: The Shopt Builtin228905
Node: Special Builtins245960
Node: Shell Variables246952
Node: Bourne Shell Variables247389
Node: Bash Variables249900
Node: Bash Features288808
Node: Invoking Bash289825
Node: Bash Startup Files296412
Node: Interactive Shells301657
Node: What is an Interactive Shell?302068
Node: Is this Shell Interactive?302733
Node: Interactive Shell Behavior303560
Node: Bash Conditional Expressions307324
Node: Shell Arithmetic312538
Node: Aliases315870
Node: Arrays319007
Node: The Directory Stack326102
Node: Directory Stack Builtins326902
Node: Controlling the Prompt331350
Node: The Restricted Shell334238
Node: Bash POSIX Mode337123
Node: Shell Compatibility Mode355187
Node: Job Control364197
Node: Job Control Basics364657
Node: Job Control Builtins370938
Node: Job Control Variables377623
Node: Command Line Editing378857
Node: Introduction and Notation380563
Node: Readline Interaction382918
Node: Readline Bare Essentials384109
Node: Readline Movement Commands385920
Node: Readline Killing Commands386919
Node: Readline Arguments388945
Node: Searching390005
Node: Readline Init File392251
Node: Readline Init File Syntax393557
Node: Conditional Init Constructs420385
Node: Sample Init File424773
Node: Bindable Readline Commands427896
Node: Commands For Moving429437
Node: Commands For History431808
Node: Commands For Text437201
Node: Commands For Killing441329
Node: Numeric Arguments444120
Node: Commands For Completion445275
Node: Keyboard Macros450974
Node: Miscellaneous Commands451678
Node: Readline vi Mode458248
Node: Programmable Completion459228
Node: Programmable Completion Builtins467968
Node: A Programmable Completion Example479708
Node: Using History Interactively485056
Node: Bash History Facilities485740
Node: Bash History Builtins489478
Node: History Interaction495952
Node: Event Designators500905
Node: Word Designators502486
Node: Modifiers504881
Node: Installing Bash506821
Node: Basic Installation507940
Node: Compilers and Options511819
Node: Compiling For Multiple Architectures512572
Node: Installation Names514328
Node: Specifying the System Type516565
Node: Sharing Defaults517314
Node: Operation Controls518031
Node: Optional Features519053
Node: Reporting Bugs531436
Node: Major Differences From The Bourne Shell532796
Node: GNU Free Documentation License554219
Node: Indexes579399
Node: Builtin Index579853
Node: Reserved Word Index586954
Node: Variable Index589402
Node: Function Index606818
Node: Concept Index620816
Node: Top904
Node: Introduction2848
Node: What is Bash?3064
Node: What is a shell?4200
Node: Definitions6813
Node: Basic Shell Features10143
Node: Shell Syntax11370
Node: Shell Operation12400
Node: Quoting13694
Node: Escape Character15035
Node: Single Quotes15573
Node: Double Quotes15925
Node: ANSI-C Quoting17273
Node: Locale Translation18670
Node: Creating Internationalized Scripts20076
Node: Comments24277
Node: Shell Commands25047
Node: Reserved Words25989
Node: Simple Commands26857
Node: Pipelines27522
Node: Lists30781
Node: Compound Commands32656
Node: Looping Constructs33668
Node: Conditional Constructs36190
Node: Command Grouping51263
Node: Coprocesses52758
Node: GNU Parallel55447
Node: Shell Functions56368
Node: Shell Parameters64819
Node: Positional Parameters69723
Node: Special Parameters70816
Node: Shell Expansions74280
Node: Brace Expansion76472
Node: Tilde Expansion79813
Node: Shell Parameter Expansion82771
Node: Command Substitution103417
Node: Arithmetic Expansion106949
Node: Process Substitution108128
Node: Word Splitting109239
Node: Filename Expansion111686
Node: Pattern Matching114913
Node: Quote Removal120639
Node: Redirections120946
Node: Executing Commands131212
Node: Simple Command Expansion131882
Node: Command Search and Execution133993
Node: Command Execution Environment136440
Node: Environment139891
Node: Exit Status141797
Node: Signals143858
Node: Shell Scripts148790
Node: Shell Builtin Commands152091
Node: Bourne Shell Builtins154205
Node: Bash Builtins180778
Node: Modifying Shell Behavior217705
Node: The Set Builtin218050
Node: The Shopt Builtin230047
Node: Special Builtins247102
Node: Shell Variables248094
Node: Bourne Shell Variables248531
Node: Bash Variables251042
Node: Bash Features289950
Node: Invoking Bash290967
Node: Bash Startup Files297554
Node: Interactive Shells302799
Node: What is an Interactive Shell?303210
Node: Is this Shell Interactive?303875
Node: Interactive Shell Behavior304702
Node: Bash Conditional Expressions308466
Node: Shell Arithmetic313886
Node: Aliases317218
Node: Arrays320355
Node: The Directory Stack327946
Node: Directory Stack Builtins328746
Node: Controlling the Prompt333194
Node: The Restricted Shell336082
Node: Bash POSIX Mode338967
Node: Shell Compatibility Mode357327
Node: Job Control366337
Node: Job Control Basics366797
Node: Job Control Builtins373168
Node: Job Control Variables379853
Node: Command Line Editing381087
Node: Introduction and Notation382793
Node: Readline Interaction385148
Node: Readline Bare Essentials386339
Node: Readline Movement Commands388150
Node: Readline Killing Commands389149
Node: Readline Arguments391175
Node: Searching392235
Node: Readline Init File394481
Node: Readline Init File Syntax395787
Node: Conditional Init Constructs422615
Node: Sample Init File427003
Node: Bindable Readline Commands430126
Node: Commands For Moving431667
Node: Commands For History434134
Node: Commands For Text439527
Node: Commands For Killing443655
Node: Numeric Arguments446446
Node: Commands For Completion447601
Node: Keyboard Macros453300
Node: Miscellaneous Commands454004
Node: Readline vi Mode460574
Node: Programmable Completion461554
Node: Programmable Completion Builtins470294
Node: A Programmable Completion Example482034
Node: Using History Interactively487382
Node: Bash History Facilities488066
Node: Bash History Builtins491804
Node: History Interaction498278
Node: Event Designators503231
Node: Word Designators504812
Node: Modifiers507207
Node: Installing Bash509147
Node: Basic Installation510266
Node: Compilers and Options514145
Node: Compiling For Multiple Architectures514898
Node: Installation Names516654
Node: Specifying the System Type518891
Node: Sharing Defaults519640
Node: Operation Controls520357
Node: Optional Features521379
Node: Reporting Bugs533762
Node: Major Differences From The Bourne Shell535122
Node: GNU Free Documentation License556551
Node: Indexes581731
Node: Builtin Index582185
Node: Reserved Word Index589286
Node: Variable Index591734
Node: Function Index609150
Node: Concept Index623148

End Tag Table
+45 -46
View File
@@ -1,12 +1,11 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024/MacPorts 2024.70613_0) (preloaded format=pdfetex 2024.4.9) 8 JAN 2025 09:33
This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024/MacPorts 2024.70613_1) (preloaded format=pdfetex 2024.4.9) 28 FEB 2025 11:12
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**\input /usr/local/src/bash/bash-20241227/doc/bashref.texi \input /usr/local/s
rc/bash/bash-20241227/doc/bashref.texi
(/usr/local/src/bash/bash-20241227/doc/bashref.texi
(/usr/local/src/bash/bash-20241227/doc/texinfo.tex
**\input /usr/local/src/bash/bash-20250224/doc/bashref.texi
(/usr/local/src/bash/bash-20250224/doc/bashref.texi
(/usr/local/src/bash/bash-20250224/doc/texinfo.tex
Loading texinfo [version 2015-11-22.14]:
\outerhsize=\dimen16
\outervsize=\dimen17
@@ -162,15 +161,15 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
texinfo.tex: doing @include of version.texi
(/usr/local/src/bash/bash-20241227/doc/version.texi) [1{/opt/local/var/db/texmf
(/usr/local/src/bash/bash-20250224/doc/version.texi) [1{/opt/local/var/db/texmf
/fonts/map/pdftex/updmap/pdftex.map}] [2]
(/usr/local/build/bash/bash-20241227/doc/bashref.toc [-1] [-2] [-3]) [-4]
(/usr/local/build/bash/bash-20241227/doc/bashref.toc)
(/usr/local/build/bash/bash-20241227/doc/bashref.toc) Chapter 1
(/usr/local/build/bash/bash-20250224/doc/bashref.toc [-1] [-2] [-3]) [-4]
(/usr/local/build/bash/bash-20250224/doc/bashref.toc)
(/usr/local/build/bash/bash-20250224/doc/bashref.toc) Chapter 1
\openout0 = `bashref.toc'.
(/usr/local/build/bash/bash-20241227/doc/bashref.aux)
(/usr/local/build/bash/bash-20250224/doc/bashref.aux)
\openout1 = `bashref.aux'.
[1] Chapter 2 [2]
@@ -222,17 +221,17 @@ Overfull \hbox (5.95723pt too wide) in paragraph at lines 744--745
@rwindfile=@write4
\openout4 = `bashref.rw'.
[10] [11] [12] [13] [14] [15] [16] [17] [18] [19{/opt/local/share/texmf-texliv
e/fonts/enc/dvips/cm-super/cm-super-t1.enc}] [20] [21] [22] [23] [24]
[10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20{/opt/local/share/texmf-t
exlive/fonts/enc/dvips/cm-super/cm-super-t1.enc}] [21] [22] [23] [24]
[25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39]
[40] [41] [42] [43] [44] [45] [46] [47] [48] [49] Chapter 4 [50]
[40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] Chapter 4 [51]
@btindfile=@write5
\openout5 = `bashref.bt'.
[51] [52]
[52]
[53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67]
[68] [69] [70] [71] [72]
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5845--5845
[68] [69] [70] [71] [72] [73]
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5895--5895
[]@texttt set [-abefhkmnptuvxBCEHPT] [-o @textttsl option-name@texttt ] [--] [
-] [@textttsl ar-gu-ment []@texttt ][]
@@ -245,7 +244,7 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5845--5845
.etc.
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5846--5846
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5896--5896
[]@texttt set [+abefhkmnptuvxBCEHPT] [+o @textttsl option-name@texttt ] [--] [
-] [@textttsl ar-gu-ment []@texttt ][]
@@ -257,16 +256,16 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5846--5846
.@texttt t
.etc.
[73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] Chapter 5 [84] [85]
[86] [87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] Chapter 6 [98]
[99] [100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111]
[112] [113] [114] [115] [116] [117] [118] [119] [120] [121] Chapter 7 [122]
[123] [124] [125] [126]
[74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] Chapter 5 [85] [86]
[87] [88] [89] [90] [91] [92] [93] [94] [95] [96] [97] [98] Chapter 6 [99]
[100] [101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111]
[112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123]
Chapter 7 [124] [125] [126] [127] [128]
texinfo.tex: doing @include of rluser.texi
(/usr/local/src/bash/bash-20241227/lib/readline/doc/rluser.texi Chapter 8
[127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138]
(/usr/local/src/bash/bash-20250224/lib/readline/doc/rluser.texi Chapter 8
[129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
Underfull \hbox (badness 7540) in paragraph at lines 964--970
[]@textrm In the ex-am-ple above, @textttsl C-u[] @textrm is bound to the func
-tion
@@ -292,7 +291,7 @@ e func-tion
.@texttt v
.etc.
[139] [140] [141] [142]
[141] [142] [143] [144]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 1210--1210
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[]
@@ -305,19 +304,19 @@ gnored[]
.@texttt t
.etc.
[143] [144]
[145] [146]
@fnindfile=@write6
\openout6 = `bashref.fn'.
[145] [146] [147] [148] [149] [150] [151] [152] [153] [154]
[155] [156] [157] [158] [159] [160] [161] [162] [163] [164])
[147] [148] [149] [150] [151] [152] [153] [154] [155] [156]
[157] [158] [159] [160] [161] [162] [163] [164] [165] [166])
texinfo.tex: doing @include of hsuser.texi
(/usr/local/src/bash/bash-20241227/lib/readline/doc/hsuser.texi Chapter 9
[165] [166] [167] [168] [169] [170] [171]) Chapter 10 [172] [173] [174]
[175] [176]
Underfull \hbox (badness 10000) in paragraph at lines 10581--10590
(/usr/local/src/bash/bash-20250224/lib/readline/doc/hsuser.texi Chapter 9
[167] [168] [169] [170] [171] [172] [173]) Chapter 10 [174] [175] [176]
[177] [178]
Underfull \hbox (badness 10000) in paragraph at lines 10669--10678
[]@textrm All of the fol-low-ing op-tions ex-cept for `@texttt alt-array-implem
entation[]@textrm '[],
@@ -330,7 +329,7 @@ entation[]@textrm '[],
.etc.
Underfull \hbox (badness 10000) in paragraph at lines 10581--10590
Underfull \hbox (badness 10000) in paragraph at lines 10669--10678
@textrm `@texttt disabled-builtins[]@textrm '[], `@texttt direxpand-default[]@t
extrm '[], `@texttt strict-posix-default[]@textrm '[], and
@@ -342,22 +341,22 @@ extrm '[], `@texttt strict-posix-default[]@textrm '[], and
.@texttt a
.etc.
[177] [178] [179] [180] Appendix A [181] Appendix B [182] [183] [184] [185]
[186] [187] [188] Appendix C [189]
[179] [180] [181] [182] Appendix A [183] Appendix B [184] [185] [186] [187]
[188] [189] [190] Appendix C [191]
texinfo.tex: doing @include of fdl.texi
(/usr/local/src/bash/bash-20241227/doc/fdl.texi [190] [191] [192] [193]
[194] [195] [196]) Appendix D [197] [198] [199] [200] [201] [202] [203]
[204] [205] [206] )
(/usr/local/src/bash/bash-20250224/doc/fdl.texi [192] [193] [194] [195]
[196] [197] [198]) Appendix D [199] [200] [201] [202] [203] [204] [205]
[206] [207] [208] )
Here is how much of TeX's memory you used:
4114 strings out of 495840
47656 string characters out of 6171739
145117 words of memory out of 5000000
4116 strings out of 495840
47662 string characters out of 6171739
145164 words of memory out of 5000000
5048 multiletter control sequences out of 15000+600000
34315 words of font info for 116 fonts, out of 8000000 for 9000
701 hyphenation exceptions out of 8191
16i,6n,16p,389b,983s stack positions out of 10000i,1000n,20000p,200000b,200000s
16i,6n,16p,331b,983s stack positions out of 10000i,1000n,20000p,200000b,200000s
</opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/
cm/cmbx12.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cm
csc10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi10
@@ -374,10 +373,10 @@ fonts/type1/public/amsfonts/cm/cmti10.pfb></opt/local/share/texmf-texlive/fonts
lic/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm
-super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm-super
/sfrm1440.pfb>
Output written on bashref.pdf (212 pages, 850992 bytes).
Output written on bashref.pdf (214 pages, 854783 bytes).
PDF statistics:
2938 PDF objects out of 2984 (max. 8388607)
2678 compressed objects within 27 object streams
340 named destinations out of 1000 (max. 500000)
2948 PDF objects out of 2984 (max. 8388607)
2686 compressed objects within 27 object streams
342 named destinations out of 1000 (max. 500000)
1157 words of extra memory for PDF output out of 10000 (max. 10000000)
BIN
View File
Binary file not shown.
+7303 -7180
View File
File diff suppressed because it is too large Load Diff
+43 -9
View File
@@ -1164,6 +1164,8 @@ as if it were within double quotes,
but unescaped double quote characters
in @var{expression} are not treated
specially and are removed.
Since this can potentially result in empty strings,
this command treats those as expressions that evaluate to 0.
If the value of the expression is non-zero, the return status is 0;
otherwise the return status is 1.
@@ -2935,6 +2937,10 @@ specially and are removed.
All tokens in the expression undergo parameter and variable expansion,
command substitution, and quote removal.
The result is treated as the arithmetic expression to be evaluated.
Since the way Bash handles double quotes
can potentially result in empty strings,
arithmetic expansion treats
those as expressions that evaluate to 0.
Arithmetic expansions may be nested.
The evaluation is performed according to the rules listed below
@@ -8383,6 +8389,11 @@ respectively. @var{Arg1} and @var{arg2}
may be positive or negative integers.
When used with the @code{[[} command, @var{arg1} and @var{arg2}
are evaluated as arithmetic expressions (@pxref{Shell Arithmetic}).
Since the expansions the @code{[[} command performs on
@var{arg1} and @var{arg2}
can potentially result in empty strings,
arithmetic expression evaluation treats
those as expressions that evaluate to 0.
@end table
@node Shell Arithmetic
@@ -8601,8 +8612,24 @@ and are zero-based;
associative arrays use arbitrary strings.
Unless otherwise noted, indexed array indices must be non-negative integers.
An indexed array is created automatically if any variable is assigned to
using the syntax
The shell performs
parameter and variable expansion, arithmetic expansion,
command substitution, and quote removal
on indexed array subscripts.
Since this
can potentially result in empty strings,
subscript indexing treats
those as expressions that evaluate to 0.
The shell performs
tilde expansion,
parameter and variable expansion, arithmetic expansion,
command substitution, and quote removal
on associative array subscripts.
Empty strings cannot be used as associative array keys.
Bash automatically creates an indexed array
if any variable is assigned to using the syntax
@example
@var{name}[@var{subscript}]=@var{value}
@end example
@@ -9857,6 +9884,9 @@ To facilitate the implementation of the user interface to job control,
each process has a @dfn{process group @sc{id}}, and
the operating system maintains the notion of a current terminal
process group @sc{id}.
This terminal process group @sc{id} is associated with the
@dfn{controlling terminal}.
Processes that have the same process group ID are said to be part of
the same @dfn{process group}.
Members of the foreground process group (processes whose
@@ -9865,14 +9895,18 @@ process group @sc{id} is equal to the current terminal process group
Processes in the foreground process group are said to be
foreground processes.
Background processes
are those whose process group @sc{id} differs from the terminal's;
are those whose process group @sc{id} differs from the
controlling terminal's;
such processes are immune to keyboard-generated signals.
Only foreground processes are allowed to read from or, if
the user so specifies with @code{stty tostop}, write to the terminal.
Background processes which attempt to
read from (write to when @code{tostop} is in effect) the
terminal are sent a @code{SIGTTIN} (@code{SIGTTOU})
signal by the kernel's terminal driver,
Only foreground processes are allowed to read from or,
if the user so specifies with
@code{stty tostop},
write to the controlling terminal.
The system sends a
@code{SIGTTIN} (@code{SIGTTOU})
signal to background processes which attempt to
read from (write to when @code{tostop} is in effect)
the terminal,
which, unless caught, suspends the process.
If the operating system on which Bash is running supports
+108 -108
View File
@@ -20,7 +20,7 @@
@numsubsecentry{Compound Commands}{3.2.5}{Compound Commands}{11}
@numsubsubsecentry{Looping Constructs}{3.2.5.1}{Looping Constructs}{12}
@numsubsubsecentry{Conditional Constructs}{3.2.5.2}{Conditional Constructs}{12}
@numsubsubsecentry{Grouping Commands}{3.2.5.3}{Command Grouping}{17}
@numsubsubsecentry{Grouping Commands}{3.2.5.3}{Command Grouping}{18}
@numsubsecentry{Coprocesses}{3.2.6}{Coprocesses}{18}
@numsubsecentry{GNU Parallel}{3.2.7}{GNU Parallel}{19}
@numsecentry{Shell Functions}{3.3}{Shell Functions}{19}
@@ -31,113 +31,113 @@
@numsubsecentry{Brace Expansion}{3.5.1}{Brace Expansion}{25}
@numsubsecentry{Tilde Expansion}{3.5.2}{Tilde Expansion}{26}
@numsubsecentry{Shell Parameter Expansion}{3.5.3}{Shell Parameter Expansion}{27}
@numsubsecentry{Command Substitution}{3.5.4}{Command Substitution}{35}
@numsubsecentry{Arithmetic Expansion}{3.5.5}{Arithmetic Expansion}{36}
@numsubsecentry{Command Substitution}{3.5.4}{Command Substitution}{36}
@numsubsecentry{Arithmetic Expansion}{3.5.5}{Arithmetic Expansion}{37}
@numsubsecentry{Process Substitution}{3.5.6}{Process Substitution}{37}
@numsubsecentry{Word Splitting}{3.5.7}{Word Splitting}{37}
@numsubsecentry{Filename Expansion}{3.5.8}{Filename Expansion}{38}
@numsubsubsecentry{Pattern Matching}{3.5.8.1}{Pattern Matching}{38}
@numsubsecentry{Quote Removal}{3.5.9}{Quote Removal}{40}
@numsecentry{Redirections}{3.6}{Redirections}{40}
@numsubsecentry{Word Splitting}{3.5.7}{Word Splitting}{38}
@numsubsecentry{Filename Expansion}{3.5.8}{Filename Expansion}{39}
@numsubsubsecentry{Pattern Matching}{3.5.8.1}{Pattern Matching}{39}
@numsubsecentry{Quote Removal}{3.5.9}{Quote Removal}{41}
@numsecentry{Redirections}{3.6}{Redirections}{41}
@numsubsecentry{Redirecting Input}{3.6.1}{}{42}
@numsubsecentry{Redirecting Output}{3.6.2}{}{42}
@numsubsecentry{Appending Redirected Output}{3.6.3}{}{42}
@numsubsecentry{Redirecting Standard Output and Standard Error}{3.6.4}{}{42}
@numsubsecentry{Appending Standard Output and Standard Error}{3.6.5}{}{42}
@numsubsecentry{Here Documents}{3.6.6}{}{43}
@numsubsecentry{Here Strings}{3.6.7}{}{43}
@numsubsecentry{Duplicating File Descriptors}{3.6.8}{}{43}
@numsubsecentry{Moving File Descriptors}{3.6.9}{}{44}
@numsubsecentry{Opening File Descriptors for Reading and Writing}{3.6.10}{}{44}
@numsecentry{Executing Commands}{3.7}{Executing Commands}{44}
@numsubsecentry{Simple Command Expansion}{3.7.1}{Simple Command Expansion}{44}
@numsubsecentry{Command Search and Execution}{3.7.2}{Command Search and Execution}{45}
@numsubsecentry{Command Execution Environment}{3.7.3}{Command Execution Environment}{45}
@numsubsecentry{Redirecting Output}{3.6.2}{}{43}
@numsubsecentry{Appending Redirected Output}{3.6.3}{}{43}
@numsubsecentry{Redirecting Standard Output and Standard Error}{3.6.4}{}{43}
@numsubsecentry{Appending Standard Output and Standard Error}{3.6.5}{}{43}
@numsubsecentry{Here Documents}{3.6.6}{}{44}
@numsubsecentry{Here Strings}{3.6.7}{}{44}
@numsubsecentry{Duplicating File Descriptors}{3.6.8}{}{44}
@numsubsecentry{Moving File Descriptors}{3.6.9}{}{45}
@numsubsecentry{Opening File Descriptors for Reading and Writing}{3.6.10}{}{45}
@numsecentry{Executing Commands}{3.7}{Executing Commands}{45}
@numsubsecentry{Simple Command Expansion}{3.7.1}{Simple Command Expansion}{45}
@numsubsecentry{Command Search and Execution}{3.7.2}{Command Search and Execution}{46}
@numsubsecentry{Command Execution Environment}{3.7.3}{Command Execution Environment}{46}
@numsubsecentry{Environment}{3.7.4}{Environment}{47}
@numsubsecentry{Exit Status}{3.7.5}{Exit Status}{47}
@numsubsecentry{Signals}{3.7.6}{Signals}{48}
@numsecentry{Shell Scripts}{3.8}{Shell Scripts}{49}
@numchapentry{Shell Builtin Commands}{4}{Shell Builtin Commands}{51}
@numsecentry{Bourne Shell Builtins}{4.1}{Bourne Shell Builtins}{51}
@numsecentry{Bash Builtin Commands}{4.2}{Bash Builtins}{60}
@numsecentry{Modifying Shell Behavior}{4.3}{Modifying Shell Behavior}{72}
@numsubsecentry{The Set Builtin}{4.3.1}{The Set Builtin}{73}
@numsubsecentry{The Shopt Builtin}{4.3.2}{The Shopt Builtin}{77}
@numsecentry{Special Builtins}{4.4}{Special Builtins}{84}
@numchapentry{Shell Variables}{5}{Shell Variables}{85}
@numsecentry{Bourne Shell Variables}{5.1}{Bourne Shell Variables}{85}
@numsecentry{Bash Variables}{5.2}{Bash Variables}{86}
@numchapentry{Bash Features}{6}{Bash Features}{99}
@numsecentry{Invoking Bash}{6.1}{Invoking Bash}{99}
@numsecentry{Bash Startup Files}{6.2}{Bash Startup Files}{101}
@numsecentry{Interactive Shells}{6.3}{Interactive Shells}{103}
@numsubsecentry{What is an Interactive Shell?}{6.3.1}{What is an Interactive Shell?}{103}
@numsubsecentry{Is this Shell Interactive?}{6.3.2}{Is this Shell Interactive?}{103}
@numsubsecentry{Interactive Shell Behavior}{6.3.3}{Interactive Shell Behavior}{103}
@numsecentry{Bash Conditional Expressions}{6.4}{Bash Conditional Expressions}{104}
@numsecentry{Shell Arithmetic}{6.5}{Shell Arithmetic}{106}
@numsecentry{Aliases}{6.6}{Aliases}{108}
@numsecentry{Arrays}{6.7}{Arrays}{109}
@numsecentry{The Directory Stack}{6.8}{The Directory Stack}{111}
@numsubsecentry{Directory Stack Builtins}{6.8.1}{Directory Stack Builtins}{111}
@numsecentry{Controlling the Prompt}{6.9}{Controlling the Prompt}{112}
@numsecentry{The Restricted Shell}{6.10}{The Restricted Shell}{114}
@numsecentry{Bash and POSIX}{6.11}{Bash POSIX Mode}{115}
@numsubsecentry{What is POSIX?}{6.11.1}{}{115}
@numsubsecentry{Bash POSIX Mode}{6.11.2}{}{115}
@numsecentry{Shell Compatibility Mode}{6.12}{Shell Compatibility Mode}{120}
@numchapentry{Job Control}{7}{Job Control}{123}
@numsecentry{Job Control Basics}{7.1}{Job Control Basics}{123}
@numsecentry{Job Control Builtins}{7.2}{Job Control Builtins}{124}
@numsecentry{Job Control Variables}{7.3}{Job Control Variables}{127}
@numchapentry{Command Line Editing}{8}{Command Line Editing}{128}
@numsecentry{Introduction to Line Editing}{8.1}{Introduction and Notation}{128}
@numsecentry{Readline Interaction}{8.2}{Readline Interaction}{128}
@numsubsecentry{Readline Bare Essentials}{8.2.1}{Readline Bare Essentials}{129}
@numsubsecentry{Readline Movement Commands}{8.2.2}{Readline Movement Commands}{129}
@numsubsecentry{Readline Killing Commands}{8.2.3}{Readline Killing Commands}{130}
@numsubsecentry{Readline Arguments}{8.2.4}{Readline Arguments}{130}
@numsubsecentry{Searching for Commands in the History}{8.2.5}{Searching}{131}
@numsecentry{Readline Init File}{8.3}{Readline Init File}{131}
@numsubsecentry{Readline Init File Syntax}{8.3.1}{Readline Init File Syntax}{131}
@numsubsecentry{Conditional Init Constructs}{8.3.2}{Conditional Init Constructs}{141}
@numsubsecentry{Sample Init File}{8.3.3}{Sample Init File}{142}
@numsecentry{Bindable Readline Commands}{8.4}{Bindable Readline Commands}{145}
@numsubsecentry{Commands For Moving}{8.4.1}{Commands For Moving}{145}
@numsubsecentry{Commands For Manipulating The History}{8.4.2}{Commands For History}{146}
@numsubsecentry{Commands For Changing Text}{8.4.3}{Commands For Text}{148}
@numsubsecentry{Killing And Yanking}{8.4.4}{Commands For Killing}{149}
@numsubsecentry{Specifying Numeric Arguments}{8.4.5}{Numeric Arguments}{151}
@numsubsecentry{Letting Readline Type For You}{8.4.6}{Commands For Completion}{151}
@numsubsecentry{Keyboard Macros}{8.4.7}{Keyboard Macros}{153}
@numsubsecentry{Some Miscellaneous Commands}{8.4.8}{Miscellaneous Commands}{153}
@numsecentry{Readline vi Mode}{8.5}{Readline vi Mode}{156}
@numsecentry{Programmable Completion}{8.6}{Programmable Completion}{156}
@numsecentry{Programmable Completion Builtins}{8.7}{Programmable Completion Builtins}{159}
@numsecentry{A Programmable Completion Example}{8.8}{A Programmable Completion Example}{163}
@numchapentry{Using History Interactively}{9}{Using History Interactively}{166}
@numsecentry{Bash History Facilities}{9.1}{Bash History Facilities}{166}
@numsecentry{Bash History Builtins}{9.2}{Bash History Builtins}{167}
@numsecentry{History Expansion}{9.3}{History Interaction}{169}
@numsubsecentry{Event Designators}{9.3.1}{Event Designators}{170}
@numsubsecentry{Word Designators}{9.3.2}{Word Designators}{171}
@numsubsecentry{Modifiers}{9.3.3}{Modifiers}{172}
@numchapentry{Installing Bash}{10}{Installing Bash}{173}
@numsecentry{Basic Installation}{10.1}{Basic Installation}{173}
@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{174}
@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{174}
@numsecentry{Installation Names}{10.4}{Installation Names}{175}
@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{175}
@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{175}
@numsecentry{Operation Controls}{10.7}{Operation Controls}{176}
@numsecentry{Optional Features}{10.8}{Optional Features}{176}
@appentry{Reporting Bugs}{A}{Reporting Bugs}{182}
@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{183}
@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{188}
@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{190}
@appentry{Indexes}{D}{Indexes}{198}
@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{198}
@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{199}
@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{200}
@appsecentry{Function Index}{D.4}{Function Index}{202}
@appsecentry{Concept Index}{D.5}{Concept Index}{204}
@numsubsecentry{Exit Status}{3.7.5}{Exit Status}{48}
@numsubsecentry{Signals}{3.7.6}{Signals}{49}
@numsecentry{Shell Scripts}{3.8}{Shell Scripts}{50}
@numchapentry{Shell Builtin Commands}{4}{Shell Builtin Commands}{52}
@numsecentry{Bourne Shell Builtins}{4.1}{Bourne Shell Builtins}{52}
@numsecentry{Bash Builtin Commands}{4.2}{Bash Builtins}{61}
@numsecentry{Modifying Shell Behavior}{4.3}{Modifying Shell Behavior}{73}
@numsubsecentry{The Set Builtin}{4.3.1}{The Set Builtin}{74}
@numsubsecentry{The Shopt Builtin}{4.3.2}{The Shopt Builtin}{78}
@numsecentry{Special Builtins}{4.4}{Special Builtins}{85}
@numchapentry{Shell Variables}{5}{Shell Variables}{86}
@numsecentry{Bourne Shell Variables}{5.1}{Bourne Shell Variables}{86}
@numsecentry{Bash Variables}{5.2}{Bash Variables}{87}
@numchapentry{Bash Features}{6}{Bash Features}{100}
@numsecentry{Invoking Bash}{6.1}{Invoking Bash}{100}
@numsecentry{Bash Startup Files}{6.2}{Bash Startup Files}{102}
@numsecentry{Interactive Shells}{6.3}{Interactive Shells}{104}
@numsubsecentry{What is an Interactive Shell?}{6.3.1}{What is an Interactive Shell?}{104}
@numsubsecentry{Is this Shell Interactive?}{6.3.2}{Is this Shell Interactive?}{104}
@numsubsecentry{Interactive Shell Behavior}{6.3.3}{Interactive Shell Behavior}{104}
@numsecentry{Bash Conditional Expressions}{6.4}{Bash Conditional Expressions}{105}
@numsecentry{Shell Arithmetic}{6.5}{Shell Arithmetic}{107}
@numsecentry{Aliases}{6.6}{Aliases}{109}
@numsecentry{Arrays}{6.7}{Arrays}{110}
@numsecentry{The Directory Stack}{6.8}{The Directory Stack}{112}
@numsubsecentry{Directory Stack Builtins}{6.8.1}{Directory Stack Builtins}{112}
@numsecentry{Controlling the Prompt}{6.9}{Controlling the Prompt}{114}
@numsecentry{The Restricted Shell}{6.10}{The Restricted Shell}{115}
@numsecentry{Bash and POSIX}{6.11}{Bash POSIX Mode}{116}
@numsubsecentry{What is POSIX?}{6.11.1}{}{116}
@numsubsecentry{Bash POSIX Mode}{6.11.2}{}{116}
@numsecentry{Shell Compatibility Mode}{6.12}{Shell Compatibility Mode}{121}
@numchapentry{Job Control}{7}{Job Control}{125}
@numsecentry{Job Control Basics}{7.1}{Job Control Basics}{125}
@numsecentry{Job Control Builtins}{7.2}{Job Control Builtins}{126}
@numsecentry{Job Control Variables}{7.3}{Job Control Variables}{129}
@numchapentry{Command Line Editing}{8}{Command Line Editing}{130}
@numsecentry{Introduction to Line Editing}{8.1}{Introduction and Notation}{130}
@numsecentry{Readline Interaction}{8.2}{Readline Interaction}{130}
@numsubsecentry{Readline Bare Essentials}{8.2.1}{Readline Bare Essentials}{131}
@numsubsecentry{Readline Movement Commands}{8.2.2}{Readline Movement Commands}{131}
@numsubsecentry{Readline Killing Commands}{8.2.3}{Readline Killing Commands}{132}
@numsubsecentry{Readline Arguments}{8.2.4}{Readline Arguments}{132}
@numsubsecentry{Searching for Commands in the History}{8.2.5}{Searching}{133}
@numsecentry{Readline Init File}{8.3}{Readline Init File}{133}
@numsubsecentry{Readline Init File Syntax}{8.3.1}{Readline Init File Syntax}{133}
@numsubsecentry{Conditional Init Constructs}{8.3.2}{Conditional Init Constructs}{143}
@numsubsecentry{Sample Init File}{8.3.3}{Sample Init File}{144}
@numsecentry{Bindable Readline Commands}{8.4}{Bindable Readline Commands}{147}
@numsubsecentry{Commands For Moving}{8.4.1}{Commands For Moving}{147}
@numsubsecentry{Commands For Manipulating The History}{8.4.2}{Commands For History}{148}
@numsubsecentry{Commands For Changing Text}{8.4.3}{Commands For Text}{150}
@numsubsecentry{Killing And Yanking}{8.4.4}{Commands For Killing}{151}
@numsubsecentry{Specifying Numeric Arguments}{8.4.5}{Numeric Arguments}{153}
@numsubsecentry{Letting Readline Type For You}{8.4.6}{Commands For Completion}{153}
@numsubsecentry{Keyboard Macros}{8.4.7}{Keyboard Macros}{155}
@numsubsecentry{Some Miscellaneous Commands}{8.4.8}{Miscellaneous Commands}{155}
@numsecentry{Readline vi Mode}{8.5}{Readline vi Mode}{158}
@numsecentry{Programmable Completion}{8.6}{Programmable Completion}{158}
@numsecentry{Programmable Completion Builtins}{8.7}{Programmable Completion Builtins}{161}
@numsecentry{A Programmable Completion Example}{8.8}{A Programmable Completion Example}{165}
@numchapentry{Using History Interactively}{9}{Using History Interactively}{168}
@numsecentry{Bash History Facilities}{9.1}{Bash History Facilities}{168}
@numsecentry{Bash History Builtins}{9.2}{Bash History Builtins}{169}
@numsecentry{History Expansion}{9.3}{History Interaction}{171}
@numsubsecentry{Event Designators}{9.3.1}{Event Designators}{172}
@numsubsecentry{Word Designators}{9.3.2}{Word Designators}{173}
@numsubsecentry{Modifiers}{9.3.3}{Modifiers}{174}
@numchapentry{Installing Bash}{10}{Installing Bash}{175}
@numsecentry{Basic Installation}{10.1}{Basic Installation}{175}
@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{176}
@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{176}
@numsecentry{Installation Names}{10.4}{Installation Names}{177}
@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{177}
@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{177}
@numsecentry{Operation Controls}{10.7}{Operation Controls}{178}
@numsecentry{Optional Features}{10.8}{Optional Features}{178}
@appentry{Reporting Bugs}{A}{Reporting Bugs}{184}
@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{185}
@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{190}
@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{192}
@appentry{Indexes}{D}{Indexes}{200}
@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{200}
@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{201}
@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{202}
@appsecentry{Function Index}{D.4}{Function Index}{204}
@appsecentry{Concept Index}{D.5}{Concept Index}{206}
+161 -161
View File
@@ -2,8 +2,8 @@
\entry{LC_MESSAGES}{8}{\code {LC_MESSAGES}}
\entry{TEXTDOMAIN}{8}{\code {TEXTDOMAIN}}
\entry{TEXTDOMAINDIR}{8}{\code {TEXTDOMAINDIR}}
\entry{*}{23}{\code {*}}
\entry{$*}{23}{\code {$*}}
\entry{*}{24}{\code {*}}
\entry{$*}{24}{\code {$*}}
\entry{@}{24}{\code {@}}
\entry{$@}{24}{\code {$@}}
\entry{#}{24}{\code {#}}
@@ -18,162 +18,162 @@
\entry{$!}{24}{\code {$!}}
\entry{0}{24}{\code {0}}
\entry{$0}{24}{\code {$0}}
\entry{CDPATH}{85}{\code {CDPATH}}
\entry{HOME}{85}{\code {HOME}}
\entry{IFS}{85}{\code {IFS}}
\entry{MAIL}{85}{\code {MAIL}}
\entry{MAILPATH}{85}{\code {MAILPATH}}
\entry{OPTARG}{85}{\code {OPTARG}}
\entry{OPTIND}{85}{\code {OPTIND}}
\entry{PATH}{85}{\code {PATH}}
\entry{PS1}{85}{\code {PS1}}
\entry{PS2}{85}{\code {PS2}}
\entry{_}{86}{\code {_}}
\entry{$_}{86}{\code {$_}}
\entry{BASH}{86}{\code {BASH}}
\entry{BASHOPTS}{86}{\code {BASHOPTS}}
\entry{BASHPID}{86}{\code {BASHPID}}
\entry{BASH_ALIASES}{86}{\code {BASH_ALIASES}}
\entry{BASH_ARGC}{86}{\code {BASH_ARGC}}
\entry{BASH_ARGV}{86}{\code {BASH_ARGV}}
\entry{BASH_ARGV0}{87}{\code {BASH_ARGV0}}
\entry{BASH_CMDS}{87}{\code {BASH_CMDS}}
\entry{BASH_COMMAND}{87}{\code {BASH_COMMAND}}
\entry{BASH_COMPAT}{87}{\code {BASH_COMPAT}}
\entry{BASH_ENV}{87}{\code {BASH_ENV}}
\entry{BASH_EXECUTION_STRING}{87}{\code {BASH_EXECUTION_STRING}}
\entry{BASH_LINENO}{88}{\code {BASH_LINENO}}
\entry{BASH_LOADABLES_PATH}{88}{\code {BASH_LOADABLES_PATH}}
\entry{BASH_MONOSECONDS}{88}{\code {BASH_MONOSECONDS}}
\entry{BASH_REMATCH}{88}{\code {BASH_REMATCH}}
\entry{BASH_SOURCE}{88}{\code {BASH_SOURCE}}
\entry{BASH_SUBSHELL}{88}{\code {BASH_SUBSHELL}}
\entry{BASH_TRAPSIG}{88}{\code {BASH_TRAPSIG}}
\entry{BASH_VERSINFO}{88}{\code {BASH_VERSINFO}}
\entry{BASH_VERSION}{89}{\code {BASH_VERSION}}
\entry{BASH_XTRACEFD}{89}{\code {BASH_XTRACEFD}}
\entry{CHILD_MAX}{89}{\code {CHILD_MAX}}
\entry{COLUMNS}{89}{\code {COLUMNS}}
\entry{COMP_CWORD}{89}{\code {COMP_CWORD}}
\entry{COMP_KEY}{89}{\code {COMP_KEY}}
\entry{COMP_LINE}{89}{\code {COMP_LINE}}
\entry{COMP_POINT}{90}{\code {COMP_POINT}}
\entry{COMP_TYPE}{90}{\code {COMP_TYPE}}
\entry{COMP_WORDBREAKS}{90}{\code {COMP_WORDBREAKS}}
\entry{COMP_WORDS}{90}{\code {COMP_WORDS}}
\entry{COMPREPLY}{90}{\code {COMPREPLY}}
\entry{COPROC}{90}{\code {COPROC}}
\entry{DIRSTACK}{90}{\code {DIRSTACK}}
\entry{EMACS}{90}{\code {EMACS}}
\entry{ENV}{90}{\code {ENV}}
\entry{EPOCHREALTIME}{91}{\code {EPOCHREALTIME}}
\entry{EPOCHSECONDS}{91}{\code {EPOCHSECONDS}}
\entry{EUID}{91}{\code {EUID}}
\entry{EXECIGNORE}{91}{\code {EXECIGNORE}}
\entry{FCEDIT}{91}{\code {FCEDIT}}
\entry{FIGNORE}{91}{\code {FIGNORE}}
\entry{FUNCNAME}{91}{\code {FUNCNAME}}
\entry{FUNCNEST}{91}{\code {FUNCNEST}}
\entry{GLOBIGNORE}{91}{\code {GLOBIGNORE}}
\entry{GLOBSORT}{92}{\code {GLOBSORT}}
\entry{GROUPS}{92}{\code {GROUPS}}
\entry{histchars}{92}{\code {histchars}}
\entry{HISTCMD}{92}{\code {HISTCMD}}
\entry{HISTCONTROL}{93}{\code {HISTCONTROL}}
\entry{HISTFILE}{93}{\code {HISTFILE}}
\entry{HISTFILESIZE}{93}{\code {HISTFILESIZE}}
\entry{HISTIGNORE}{93}{\code {HISTIGNORE}}
\entry{HISTSIZE}{93}{\code {HISTSIZE}}
\entry{HISTTIMEFORMAT}{94}{\code {HISTTIMEFORMAT}}
\entry{HOSTFILE}{94}{\code {HOSTFILE}}
\entry{HOSTNAME}{94}{\code {HOSTNAME}}
\entry{HOSTTYPE}{94}{\code {HOSTTYPE}}
\entry{IGNOREEOF}{94}{\code {IGNOREEOF}}
\entry{INPUTRC}{94}{\code {INPUTRC}}
\entry{INSIDE_EMACS}{94}{\code {INSIDE_EMACS}}
\entry{LANG}{94}{\code {LANG}}
\entry{LC_ALL}{94}{\code {LC_ALL}}
\entry{LC_COLLATE}{94}{\code {LC_COLLATE}}
\entry{LC_CTYPE}{95}{\code {LC_CTYPE}}
\entry{LC_MESSAGES}{95}{\code {LC_MESSAGES}}
\entry{LC_NUMERIC}{95}{\code {LC_NUMERIC}}
\entry{LC_TIME}{95}{\code {LC_TIME}}
\entry{LINENO}{95}{\code {LINENO}}
\entry{LINES}{95}{\code {LINES}}
\entry{MACHTYPE}{95}{\code {MACHTYPE}}
\entry{MAILCHECK}{95}{\code {MAILCHECK}}
\entry{MAPFILE}{95}{\code {MAPFILE}}
\entry{OLDPWD}{95}{\code {OLDPWD}}
\entry{OPTERR}{95}{\code {OPTERR}}
\entry{OSTYPE}{95}{\code {OSTYPE}}
\entry{PIPESTATUS}{95}{\code {PIPESTATUS}}
\entry{POSIXLY_CORRECT}{95}{\code {POSIXLY_CORRECT}}
\entry{PPID}{96}{\code {PPID}}
\entry{PROMPT_COMMAND}{96}{\code {PROMPT_COMMAND}}
\entry{PROMPT_DIRTRIM}{96}{\code {PROMPT_DIRTRIM}}
\entry{PS0}{96}{\code {PS0}}
\entry{PS3}{96}{\code {PS3}}
\entry{PS4}{96}{\code {PS4}}
\entry{PWD}{96}{\code {PWD}}
\entry{RANDOM}{96}{\code {RANDOM}}
\entry{READLINE_ARGUMENT}{96}{\code {READLINE_ARGUMENT}}
\entry{READLINE_LINE}{96}{\code {READLINE_LINE}}
\entry{READLINE_MARK}{96}{\code {READLINE_MARK}}
\entry{READLINE_POINT}{97}{\code {READLINE_POINT}}
\entry{REPLY}{97}{\code {REPLY}}
\entry{SECONDS}{97}{\code {SECONDS}}
\entry{SHELL}{97}{\code {SHELL}}
\entry{SHELLOPTS}{97}{\code {SHELLOPTS}}
\entry{SHLVL}{97}{\code {SHLVL}}
\entry{SRANDOM}{97}{\code {SRANDOM}}
\entry{TIMEFORMAT}{97}{\code {TIMEFORMAT}}
\entry{TMOUT}{98}{\code {TMOUT}}
\entry{TMPDIR}{98}{\code {TMPDIR}}
\entry{UID}{98}{\code {UID}}
\entry{auto_resume}{127}{\code {auto_resume}}
\entry{active-region-start-color}{132}{\code {active-region-start-color}}
\entry{active-region-end-color}{132}{\code {active-region-end-color}}
\entry{bell-style}{132}{\code {bell-style}}
\entry{bind-tty-special-chars}{133}{\code {bind-tty-special-chars}}
\entry{blink-matching-paren}{133}{\code {blink-matching-paren}}
\entry{colored-completion-prefix}{133}{\code {colored-completion-prefix}}
\entry{colored-stats}{133}{\code {colored-stats}}
\entry{comment-begin}{133}{\code {comment-begin}}
\entry{completion-display-width}{133}{\code {completion-display-width}}
\entry{completion-ignore-case}{133}{\code {completion-ignore-case}}
\entry{completion-map-case}{133}{\code {completion-map-case}}
\entry{completion-prefix-display-length}{133}{\code {completion-prefix-display-length}}
\entry{completion-query-items}{134}{\code {completion-query-items}}
\entry{convert-meta}{134}{\code {convert-meta}}
\entry{disable-completion}{134}{\code {disable-completion}}
\entry{echo-control-characters}{134}{\code {echo-control-characters}}
\entry{editing-mode}{134}{\code {editing-mode}}
\entry{emacs-mode-string}{134}{\code {emacs-mode-string}}
\entry{enable-active-region The}{135}{\code {enable-active-region The}}
\entry{enable-bracketed-paste}{135}{\code {enable-bracketed-paste}}
\entry{enable-keypad}{135}{\code {enable-keypad}}
\entry{enable-meta-key}{135}{\code {enable-meta-key}}
\entry{expand-tilde}{135}{\code {expand-tilde}}
\entry{force-meta-prefix}{135}{\code {force-meta-prefix}}
\entry{history-preserve-point}{136}{\code {history-preserve-point}}
\entry{history-size}{136}{\code {history-size}}
\entry{horizontal-scroll-mode}{136}{\code {horizontal-scroll-mode}}
\entry{input-meta}{136}{\code {input-meta}}
\entry{meta-flag}{136}{\code {meta-flag}}
\entry{isearch-terminators}{136}{\code {isearch-terminators}}
\entry{keymap}{136}{\code {keymap}}
\entry{mark-modified-lines}{137}{\code {mark-modified-lines}}
\entry{mark-symlinked-directories}{137}{\code {mark-symlinked-directories}}
\entry{match-hidden-files}{137}{\code {match-hidden-files}}
\entry{menu-complete-display-prefix}{137}{\code {menu-complete-display-prefix}}
\entry{output-meta}{137}{\code {output-meta}}
\entry{page-completions}{137}{\code {page-completions}}
\entry{revert-all-at-newline}{138}{\code {revert-all-at-newline}}
\entry{search-ignore-case}{138}{\code {search-ignore-case}}
\entry{show-all-if-ambiguous}{138}{\code {show-all-if-ambiguous}}
\entry{show-all-if-unmodified}{138}{\code {show-all-if-unmodified}}
\entry{show-mode-in-prompt}{138}{\code {show-mode-in-prompt}}
\entry{skip-completed-text}{138}{\code {skip-completed-text}}
\entry{vi-cmd-mode-string}{138}{\code {vi-cmd-mode-string}}
\entry{vi-ins-mode-string}{139}{\code {vi-ins-mode-string}}
\entry{visible-stats}{139}{\code {visible-stats}}
\entry{CDPATH}{86}{\code {CDPATH}}
\entry{HOME}{86}{\code {HOME}}
\entry{IFS}{86}{\code {IFS}}
\entry{MAIL}{86}{\code {MAIL}}
\entry{MAILPATH}{86}{\code {MAILPATH}}
\entry{OPTARG}{86}{\code {OPTARG}}
\entry{OPTIND}{86}{\code {OPTIND}}
\entry{PATH}{86}{\code {PATH}}
\entry{PS1}{86}{\code {PS1}}
\entry{PS2}{86}{\code {PS2}}
\entry{_}{87}{\code {_}}
\entry{$_}{87}{\code {$_}}
\entry{BASH}{87}{\code {BASH}}
\entry{BASHOPTS}{87}{\code {BASHOPTS}}
\entry{BASHPID}{87}{\code {BASHPID}}
\entry{BASH_ALIASES}{87}{\code {BASH_ALIASES}}
\entry{BASH_ARGC}{87}{\code {BASH_ARGC}}
\entry{BASH_ARGV}{88}{\code {BASH_ARGV}}
\entry{BASH_ARGV0}{88}{\code {BASH_ARGV0}}
\entry{BASH_CMDS}{88}{\code {BASH_CMDS}}
\entry{BASH_COMMAND}{88}{\code {BASH_COMMAND}}
\entry{BASH_COMPAT}{88}{\code {BASH_COMPAT}}
\entry{BASH_ENV}{88}{\code {BASH_ENV}}
\entry{BASH_EXECUTION_STRING}{89}{\code {BASH_EXECUTION_STRING}}
\entry{BASH_LINENO}{89}{\code {BASH_LINENO}}
\entry{BASH_LOADABLES_PATH}{89}{\code {BASH_LOADABLES_PATH}}
\entry{BASH_MONOSECONDS}{89}{\code {BASH_MONOSECONDS}}
\entry{BASH_REMATCH}{89}{\code {BASH_REMATCH}}
\entry{BASH_SOURCE}{89}{\code {BASH_SOURCE}}
\entry{BASH_SUBSHELL}{89}{\code {BASH_SUBSHELL}}
\entry{BASH_TRAPSIG}{89}{\code {BASH_TRAPSIG}}
\entry{BASH_VERSINFO}{89}{\code {BASH_VERSINFO}}
\entry{BASH_VERSION}{90}{\code {BASH_VERSION}}
\entry{BASH_XTRACEFD}{90}{\code {BASH_XTRACEFD}}
\entry{CHILD_MAX}{90}{\code {CHILD_MAX}}
\entry{COLUMNS}{90}{\code {COLUMNS}}
\entry{COMP_CWORD}{90}{\code {COMP_CWORD}}
\entry{COMP_KEY}{90}{\code {COMP_KEY}}
\entry{COMP_LINE}{91}{\code {COMP_LINE}}
\entry{COMP_POINT}{91}{\code {COMP_POINT}}
\entry{COMP_TYPE}{91}{\code {COMP_TYPE}}
\entry{COMP_WORDBREAKS}{91}{\code {COMP_WORDBREAKS}}
\entry{COMP_WORDS}{91}{\code {COMP_WORDS}}
\entry{COMPREPLY}{91}{\code {COMPREPLY}}
\entry{COPROC}{91}{\code {COPROC}}
\entry{DIRSTACK}{91}{\code {DIRSTACK}}
\entry{EMACS}{92}{\code {EMACS}}
\entry{ENV}{92}{\code {ENV}}
\entry{EPOCHREALTIME}{92}{\code {EPOCHREALTIME}}
\entry{EPOCHSECONDS}{92}{\code {EPOCHSECONDS}}
\entry{EUID}{92}{\code {EUID}}
\entry{EXECIGNORE}{92}{\code {EXECIGNORE}}
\entry{FCEDIT}{92}{\code {FCEDIT}}
\entry{FIGNORE}{92}{\code {FIGNORE}}
\entry{FUNCNAME}{92}{\code {FUNCNAME}}
\entry{FUNCNEST}{93}{\code {FUNCNEST}}
\entry{GLOBIGNORE}{93}{\code {GLOBIGNORE}}
\entry{GLOBSORT}{93}{\code {GLOBSORT}}
\entry{GROUPS}{93}{\code {GROUPS}}
\entry{histchars}{93}{\code {histchars}}
\entry{HISTCMD}{94}{\code {HISTCMD}}
\entry{HISTCONTROL}{94}{\code {HISTCONTROL}}
\entry{HISTFILE}{94}{\code {HISTFILE}}
\entry{HISTFILESIZE}{94}{\code {HISTFILESIZE}}
\entry{HISTIGNORE}{94}{\code {HISTIGNORE}}
\entry{HISTSIZE}{95}{\code {HISTSIZE}}
\entry{HISTTIMEFORMAT}{95}{\code {HISTTIMEFORMAT}}
\entry{HOSTFILE}{95}{\code {HOSTFILE}}
\entry{HOSTNAME}{95}{\code {HOSTNAME}}
\entry{HOSTTYPE}{95}{\code {HOSTTYPE}}
\entry{IGNOREEOF}{95}{\code {IGNOREEOF}}
\entry{INPUTRC}{95}{\code {INPUTRC}}
\entry{INSIDE_EMACS}{95}{\code {INSIDE_EMACS}}
\entry{LANG}{95}{\code {LANG}}
\entry{LC_ALL}{95}{\code {LC_ALL}}
\entry{LC_COLLATE}{96}{\code {LC_COLLATE}}
\entry{LC_CTYPE}{96}{\code {LC_CTYPE}}
\entry{LC_MESSAGES}{96}{\code {LC_MESSAGES}}
\entry{LC_NUMERIC}{96}{\code {LC_NUMERIC}}
\entry{LC_TIME}{96}{\code {LC_TIME}}
\entry{LINENO}{96}{\code {LINENO}}
\entry{LINES}{96}{\code {LINES}}
\entry{MACHTYPE}{96}{\code {MACHTYPE}}
\entry{MAILCHECK}{96}{\code {MAILCHECK}}
\entry{MAPFILE}{96}{\code {MAPFILE}}
\entry{OLDPWD}{96}{\code {OLDPWD}}
\entry{OPTERR}{96}{\code {OPTERR}}
\entry{OSTYPE}{96}{\code {OSTYPE}}
\entry{PIPESTATUS}{96}{\code {PIPESTATUS}}
\entry{POSIXLY_CORRECT}{97}{\code {POSIXLY_CORRECT}}
\entry{PPID}{97}{\code {PPID}}
\entry{PROMPT_COMMAND}{97}{\code {PROMPT_COMMAND}}
\entry{PROMPT_DIRTRIM}{97}{\code {PROMPT_DIRTRIM}}
\entry{PS0}{97}{\code {PS0}}
\entry{PS3}{97}{\code {PS3}}
\entry{PS4}{97}{\code {PS4}}
\entry{PWD}{97}{\code {PWD}}
\entry{RANDOM}{97}{\code {RANDOM}}
\entry{READLINE_ARGUMENT}{97}{\code {READLINE_ARGUMENT}}
\entry{READLINE_LINE}{97}{\code {READLINE_LINE}}
\entry{READLINE_MARK}{98}{\code {READLINE_MARK}}
\entry{READLINE_POINT}{98}{\code {READLINE_POINT}}
\entry{REPLY}{98}{\code {REPLY}}
\entry{SECONDS}{98}{\code {SECONDS}}
\entry{SHELL}{98}{\code {SHELL}}
\entry{SHELLOPTS}{98}{\code {SHELLOPTS}}
\entry{SHLVL}{98}{\code {SHLVL}}
\entry{SRANDOM}{98}{\code {SRANDOM}}
\entry{TIMEFORMAT}{98}{\code {TIMEFORMAT}}
\entry{TMOUT}{99}{\code {TMOUT}}
\entry{TMPDIR}{99}{\code {TMPDIR}}
\entry{UID}{99}{\code {UID}}
\entry{auto_resume}{129}{\code {auto_resume}}
\entry{active-region-start-color}{134}{\code {active-region-start-color}}
\entry{active-region-end-color}{134}{\code {active-region-end-color}}
\entry{bell-style}{134}{\code {bell-style}}
\entry{bind-tty-special-chars}{135}{\code {bind-tty-special-chars}}
\entry{blink-matching-paren}{135}{\code {blink-matching-paren}}
\entry{colored-completion-prefix}{135}{\code {colored-completion-prefix}}
\entry{colored-stats}{135}{\code {colored-stats}}
\entry{comment-begin}{135}{\code {comment-begin}}
\entry{completion-display-width}{135}{\code {completion-display-width}}
\entry{completion-ignore-case}{135}{\code {completion-ignore-case}}
\entry{completion-map-case}{135}{\code {completion-map-case}}
\entry{completion-prefix-display-length}{135}{\code {completion-prefix-display-length}}
\entry{completion-query-items}{136}{\code {completion-query-items}}
\entry{convert-meta}{136}{\code {convert-meta}}
\entry{disable-completion}{136}{\code {disable-completion}}
\entry{echo-control-characters}{136}{\code {echo-control-characters}}
\entry{editing-mode}{136}{\code {editing-mode}}
\entry{emacs-mode-string}{136}{\code {emacs-mode-string}}
\entry{enable-active-region The}{137}{\code {enable-active-region The}}
\entry{enable-bracketed-paste}{137}{\code {enable-bracketed-paste}}
\entry{enable-keypad}{137}{\code {enable-keypad}}
\entry{enable-meta-key}{137}{\code {enable-meta-key}}
\entry{expand-tilde}{137}{\code {expand-tilde}}
\entry{force-meta-prefix}{137}{\code {force-meta-prefix}}
\entry{history-preserve-point}{138}{\code {history-preserve-point}}
\entry{history-size}{138}{\code {history-size}}
\entry{horizontal-scroll-mode}{138}{\code {horizontal-scroll-mode}}
\entry{input-meta}{138}{\code {input-meta}}
\entry{meta-flag}{138}{\code {meta-flag}}
\entry{isearch-terminators}{138}{\code {isearch-terminators}}
\entry{keymap}{138}{\code {keymap}}
\entry{mark-modified-lines}{139}{\code {mark-modified-lines}}
\entry{mark-symlinked-directories}{139}{\code {mark-symlinked-directories}}
\entry{match-hidden-files}{139}{\code {match-hidden-files}}
\entry{menu-complete-display-prefix}{139}{\code {menu-complete-display-prefix}}
\entry{output-meta}{139}{\code {output-meta}}
\entry{page-completions}{139}{\code {page-completions}}
\entry{revert-all-at-newline}{140}{\code {revert-all-at-newline}}
\entry{search-ignore-case}{140}{\code {search-ignore-case}}
\entry{show-all-if-ambiguous}{140}{\code {show-all-if-ambiguous}}
\entry{show-all-if-unmodified}{140}{\code {show-all-if-unmodified}}
\entry{show-mode-in-prompt}{140}{\code {show-mode-in-prompt}}
\entry{skip-completed-text}{140}{\code {skip-completed-text}}
\entry{vi-cmd-mode-string}{140}{\code {vi-cmd-mode-string}}
\entry{vi-ins-mode-string}{141}{\code {vi-ins-mode-string}}
\entry{visible-stats}{141}{\code {visible-stats}}
+161 -161
View File
@@ -7,14 +7,14 @@
\entry{\code {$!}}{24}
\entry{\code {$#}}{24}
\entry{\code {$$}}{24}
\entry{\code {$*}}{23}
\entry{\code {$*}}{24}
\entry{\code {$-}}{24}
\entry{\code {$?}}{24}
\entry{\code {$@}}{24}
\entry{\code {$_}}{86}
\entry{\code {$_}}{87}
\entry{\code {$0}}{24}
\initial {*}
\entry{\code {*}}{23}
\entry{\code {*}}{24}
\initial {-}
\entry{\code {-}}{24}
\initial {?}
@@ -22,184 +22,184 @@
\initial {@}
\entry{\code {@}}{24}
\initial {_}
\entry{\code {_}}{86}
\entry{\code {_}}{87}
\initial {0}
\entry{\code {0}}{24}
\initial {A}
\entry{\code {active-region-end-color}}{132}
\entry{\code {active-region-start-color}}{132}
\entry{\code {auto_resume}}{127}
\entry{\code {active-region-end-color}}{134}
\entry{\code {active-region-start-color}}{134}
\entry{\code {auto_resume}}{129}
\initial {B}
\entry{\code {BASH}}{86}
\entry{\code {BASH_ALIASES}}{86}
\entry{\code {BASH_ARGC}}{86}
\entry{\code {BASH_ARGV}}{86}
\entry{\code {BASH_ARGV0}}{87}
\entry{\code {BASH_CMDS}}{87}
\entry{\code {BASH_COMMAND}}{87}
\entry{\code {BASH_COMPAT}}{87}
\entry{\code {BASH_ENV}}{87}
\entry{\code {BASH_EXECUTION_STRING}}{87}
\entry{\code {BASH_LINENO}}{88}
\entry{\code {BASH_LOADABLES_PATH}}{88}
\entry{\code {BASH_MONOSECONDS}}{88}
\entry{\code {BASH_REMATCH}}{88}
\entry{\code {BASH_SOURCE}}{88}
\entry{\code {BASH_SUBSHELL}}{88}
\entry{\code {BASH_TRAPSIG}}{88}
\entry{\code {BASH_VERSINFO}}{88}
\entry{\code {BASH_VERSION}}{89}
\entry{\code {BASH_XTRACEFD}}{89}
\entry{\code {BASHOPTS}}{86}
\entry{\code {BASHPID}}{86}
\entry{\code {bell-style}}{132}
\entry{\code {bind-tty-special-chars}}{133}
\entry{\code {blink-matching-paren}}{133}
\entry{\code {BASH}}{87}
\entry{\code {BASH_ALIASES}}{87}
\entry{\code {BASH_ARGC}}{87}
\entry{\code {BASH_ARGV}}{88}
\entry{\code {BASH_ARGV0}}{88}
\entry{\code {BASH_CMDS}}{88}
\entry{\code {BASH_COMMAND}}{88}
\entry{\code {BASH_COMPAT}}{88}
\entry{\code {BASH_ENV}}{88}
\entry{\code {BASH_EXECUTION_STRING}}{89}
\entry{\code {BASH_LINENO}}{89}
\entry{\code {BASH_LOADABLES_PATH}}{89}
\entry{\code {BASH_MONOSECONDS}}{89}
\entry{\code {BASH_REMATCH}}{89}
\entry{\code {BASH_SOURCE}}{89}
\entry{\code {BASH_SUBSHELL}}{89}
\entry{\code {BASH_TRAPSIG}}{89}
\entry{\code {BASH_VERSINFO}}{89}
\entry{\code {BASH_VERSION}}{90}
\entry{\code {BASH_XTRACEFD}}{90}
\entry{\code {BASHOPTS}}{87}
\entry{\code {BASHPID}}{87}
\entry{\code {bell-style}}{134}
\entry{\code {bind-tty-special-chars}}{135}
\entry{\code {blink-matching-paren}}{135}
\initial {C}
\entry{\code {CDPATH}}{85}
\entry{\code {CHILD_MAX}}{89}
\entry{\code {colored-completion-prefix}}{133}
\entry{\code {colored-stats}}{133}
\entry{\code {COLUMNS}}{89}
\entry{\code {comment-begin}}{133}
\entry{\code {COMP_CWORD}}{89}
\entry{\code {COMP_KEY}}{89}
\entry{\code {COMP_LINE}}{89}
\entry{\code {COMP_POINT}}{90}
\entry{\code {COMP_TYPE}}{90}
\entry{\code {COMP_WORDBREAKS}}{90}
\entry{\code {COMP_WORDS}}{90}
\entry{\code {completion-display-width}}{133}
\entry{\code {completion-ignore-case}}{133}
\entry{\code {completion-map-case}}{133}
\entry{\code {completion-prefix-display-length}}{133}
\entry{\code {completion-query-items}}{134}
\entry{\code {COMPREPLY}}{90}
\entry{\code {convert-meta}}{134}
\entry{\code {COPROC}}{90}
\entry{\code {CDPATH}}{86}
\entry{\code {CHILD_MAX}}{90}
\entry{\code {colored-completion-prefix}}{135}
\entry{\code {colored-stats}}{135}
\entry{\code {COLUMNS}}{90}
\entry{\code {comment-begin}}{135}
\entry{\code {COMP_CWORD}}{90}
\entry{\code {COMP_KEY}}{90}
\entry{\code {COMP_LINE}}{91}
\entry{\code {COMP_POINT}}{91}
\entry{\code {COMP_TYPE}}{91}
\entry{\code {COMP_WORDBREAKS}}{91}
\entry{\code {COMP_WORDS}}{91}
\entry{\code {completion-display-width}}{135}
\entry{\code {completion-ignore-case}}{135}
\entry{\code {completion-map-case}}{135}
\entry{\code {completion-prefix-display-length}}{135}
\entry{\code {completion-query-items}}{136}
\entry{\code {COMPREPLY}}{91}
\entry{\code {convert-meta}}{136}
\entry{\code {COPROC}}{91}
\initial {D}
\entry{\code {DIRSTACK}}{90}
\entry{\code {disable-completion}}{134}
\entry{\code {DIRSTACK}}{91}
\entry{\code {disable-completion}}{136}
\initial {E}
\entry{\code {echo-control-characters}}{134}
\entry{\code {editing-mode}}{134}
\entry{\code {emacs-mode-string}}{134}
\entry{\code {EMACS}}{90}
\entry{\code {enable-active-region The}}{135}
\entry{\code {enable-bracketed-paste}}{135}
\entry{\code {enable-keypad}}{135}
\entry{\code {enable-meta-key}}{135}
\entry{\code {ENV}}{90}
\entry{\code {EPOCHREALTIME}}{91}
\entry{\code {EPOCHSECONDS}}{91}
\entry{\code {EUID}}{91}
\entry{\code {EXECIGNORE}}{91}
\entry{\code {expand-tilde}}{135}
\entry{\code {echo-control-characters}}{136}
\entry{\code {editing-mode}}{136}
\entry{\code {emacs-mode-string}}{136}
\entry{\code {EMACS}}{92}
\entry{\code {enable-active-region The}}{137}
\entry{\code {enable-bracketed-paste}}{137}
\entry{\code {enable-keypad}}{137}
\entry{\code {enable-meta-key}}{137}
\entry{\code {ENV}}{92}
\entry{\code {EPOCHREALTIME}}{92}
\entry{\code {EPOCHSECONDS}}{92}
\entry{\code {EUID}}{92}
\entry{\code {EXECIGNORE}}{92}
\entry{\code {expand-tilde}}{137}
\initial {F}
\entry{\code {FCEDIT}}{91}
\entry{\code {FIGNORE}}{91}
\entry{\code {force-meta-prefix}}{135}
\entry{\code {FUNCNAME}}{91}
\entry{\code {FUNCNEST}}{91}
\entry{\code {FCEDIT}}{92}
\entry{\code {FIGNORE}}{92}
\entry{\code {force-meta-prefix}}{137}
\entry{\code {FUNCNAME}}{92}
\entry{\code {FUNCNEST}}{93}
\initial {G}
\entry{\code {GLOBIGNORE}}{91}
\entry{\code {GLOBSORT}}{92}
\entry{\code {GROUPS}}{92}
\entry{\code {GLOBIGNORE}}{93}
\entry{\code {GLOBSORT}}{93}
\entry{\code {GROUPS}}{93}
\initial {H}
\entry{\code {histchars}}{92}
\entry{\code {HISTCMD}}{92}
\entry{\code {HISTCONTROL}}{93}
\entry{\code {HISTFILE}}{93}
\entry{\code {HISTFILESIZE}}{93}
\entry{\code {HISTIGNORE}}{93}
\entry{\code {history-preserve-point}}{136}
\entry{\code {history-size}}{136}
\entry{\code {HISTSIZE}}{93}
\entry{\code {HISTTIMEFORMAT}}{94}
\entry{\code {HOME}}{85}
\entry{\code {horizontal-scroll-mode}}{136}
\entry{\code {HOSTFILE}}{94}
\entry{\code {HOSTNAME}}{94}
\entry{\code {HOSTTYPE}}{94}
\entry{\code {histchars}}{93}
\entry{\code {HISTCMD}}{94}
\entry{\code {HISTCONTROL}}{94}
\entry{\code {HISTFILE}}{94}
\entry{\code {HISTFILESIZE}}{94}
\entry{\code {HISTIGNORE}}{94}
\entry{\code {history-preserve-point}}{138}
\entry{\code {history-size}}{138}
\entry{\code {HISTSIZE}}{95}
\entry{\code {HISTTIMEFORMAT}}{95}
\entry{\code {HOME}}{86}
\entry{\code {horizontal-scroll-mode}}{138}
\entry{\code {HOSTFILE}}{95}
\entry{\code {HOSTNAME}}{95}
\entry{\code {HOSTTYPE}}{95}
\initial {I}
\entry{\code {IFS}}{85}
\entry{\code {IGNOREEOF}}{94}
\entry{\code {input-meta}}{136}
\entry{\code {INPUTRC}}{94}
\entry{\code {INSIDE_EMACS}}{94}
\entry{\code {isearch-terminators}}{136}
\entry{\code {IFS}}{86}
\entry{\code {IGNOREEOF}}{95}
\entry{\code {input-meta}}{138}
\entry{\code {INPUTRC}}{95}
\entry{\code {INSIDE_EMACS}}{95}
\entry{\code {isearch-terminators}}{138}
\initial {K}
\entry{\code {keymap}}{136}
\entry{\code {keymap}}{138}
\initial {L}
\entry{\code {LANG}}{8, 94}
\entry{\code {LC_ALL}}{94}
\entry{\code {LC_COLLATE}}{94}
\entry{\code {LC_CTYPE}}{95}
\entry{\code {LC_MESSAGES}}{8, 95}
\entry{\code {LC_NUMERIC}}{95}
\entry{\code {LC_TIME}}{95}
\entry{\code {LINENO}}{95}
\entry{\code {LINES}}{95}
\entry{\code {LANG}}{8, 95}
\entry{\code {LC_ALL}}{95}
\entry{\code {LC_COLLATE}}{96}
\entry{\code {LC_CTYPE}}{96}
\entry{\code {LC_MESSAGES}}{8, 96}
\entry{\code {LC_NUMERIC}}{96}
\entry{\code {LC_TIME}}{96}
\entry{\code {LINENO}}{96}
\entry{\code {LINES}}{96}
\initial {M}
\entry{\code {MACHTYPE}}{95}
\entry{\code {MAIL}}{85}
\entry{\code {MAILCHECK}}{95}
\entry{\code {MAILPATH}}{85}
\entry{\code {MAPFILE}}{95}
\entry{\code {mark-modified-lines}}{137}
\entry{\code {mark-symlinked-directories}}{137}
\entry{\code {match-hidden-files}}{137}
\entry{\code {menu-complete-display-prefix}}{137}
\entry{\code {meta-flag}}{136}
\entry{\code {MACHTYPE}}{96}
\entry{\code {MAIL}}{86}
\entry{\code {MAILCHECK}}{96}
\entry{\code {MAILPATH}}{86}
\entry{\code {MAPFILE}}{96}
\entry{\code {mark-modified-lines}}{139}
\entry{\code {mark-symlinked-directories}}{139}
\entry{\code {match-hidden-files}}{139}
\entry{\code {menu-complete-display-prefix}}{139}
\entry{\code {meta-flag}}{138}
\initial {O}
\entry{\code {OLDPWD}}{95}
\entry{\code {OPTARG}}{85}
\entry{\code {OPTERR}}{95}
\entry{\code {OPTIND}}{85}
\entry{\code {OSTYPE}}{95}
\entry{\code {output-meta}}{137}
\entry{\code {OLDPWD}}{96}
\entry{\code {OPTARG}}{86}
\entry{\code {OPTERR}}{96}
\entry{\code {OPTIND}}{86}
\entry{\code {OSTYPE}}{96}
\entry{\code {output-meta}}{139}
\initial {P}
\entry{\code {page-completions}}{137}
\entry{\code {PATH}}{85}
\entry{\code {PIPESTATUS}}{95}
\entry{\code {POSIXLY_CORRECT}}{95}
\entry{\code {PPID}}{96}
\entry{\code {PROMPT_COMMAND}}{96}
\entry{\code {PROMPT_DIRTRIM}}{96}
\entry{\code {PS0}}{96}
\entry{\code {PS1}}{85}
\entry{\code {PS2}}{85}
\entry{\code {PS3}}{96}
\entry{\code {PS4}}{96}
\entry{\code {PWD}}{96}
\entry{\code {page-completions}}{139}
\entry{\code {PATH}}{86}
\entry{\code {PIPESTATUS}}{96}
\entry{\code {POSIXLY_CORRECT}}{97}
\entry{\code {PPID}}{97}
\entry{\code {PROMPT_COMMAND}}{97}
\entry{\code {PROMPT_DIRTRIM}}{97}
\entry{\code {PS0}}{97}
\entry{\code {PS1}}{86}
\entry{\code {PS2}}{86}
\entry{\code {PS3}}{97}
\entry{\code {PS4}}{97}
\entry{\code {PWD}}{97}
\initial {R}
\entry{\code {RANDOM}}{96}
\entry{\code {READLINE_ARGUMENT}}{96}
\entry{\code {READLINE_LINE}}{96}
\entry{\code {READLINE_MARK}}{96}
\entry{\code {READLINE_POINT}}{97}
\entry{\code {REPLY}}{97}
\entry{\code {revert-all-at-newline}}{138}
\entry{\code {RANDOM}}{97}
\entry{\code {READLINE_ARGUMENT}}{97}
\entry{\code {READLINE_LINE}}{97}
\entry{\code {READLINE_MARK}}{98}
\entry{\code {READLINE_POINT}}{98}
\entry{\code {REPLY}}{98}
\entry{\code {revert-all-at-newline}}{140}
\initial {S}
\entry{\code {search-ignore-case}}{138}
\entry{\code {SECONDS}}{97}
\entry{\code {SHELL}}{97}
\entry{\code {SHELLOPTS}}{97}
\entry{\code {SHLVL}}{97}
\entry{\code {show-all-if-ambiguous}}{138}
\entry{\code {show-all-if-unmodified}}{138}
\entry{\code {show-mode-in-prompt}}{138}
\entry{\code {skip-completed-text}}{138}
\entry{\code {SRANDOM}}{97}
\entry{\code {search-ignore-case}}{140}
\entry{\code {SECONDS}}{98}
\entry{\code {SHELL}}{98}
\entry{\code {SHELLOPTS}}{98}
\entry{\code {SHLVL}}{98}
\entry{\code {show-all-if-ambiguous}}{140}
\entry{\code {show-all-if-unmodified}}{140}
\entry{\code {show-mode-in-prompt}}{140}
\entry{\code {skip-completed-text}}{140}
\entry{\code {SRANDOM}}{98}
\initial {T}
\entry{\code {TEXTDOMAIN}}{8}
\entry{\code {TEXTDOMAINDIR}}{8}
\entry{\code {TIMEFORMAT}}{97}
\entry{\code {TMOUT}}{98}
\entry{\code {TMPDIR}}{98}
\entry{\code {TIMEFORMAT}}{98}
\entry{\code {TMOUT}}{99}
\entry{\code {TMPDIR}}{99}
\initial {U}
\entry{\code {UID}}{98}
\entry{\code {UID}}{99}
\initial {V}
\entry{\code {vi-cmd-mode-string}}{138}
\entry{\code {vi-ins-mode-string}}{139}
\entry{\code {visible-stats}}{139}
\entry{\code {vi-cmd-mode-string}}{140}
\entry{\code {vi-ins-mode-string}}{141}
\entry{\code {visible-stats}}{141}
+176 -175
View File
@@ -1354,20 +1354,20 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
(see SSHHEELLLL GGRRAAMMMMAARR in _b_a_s_h(1)), exits with a non-zero
status. The shell does not exit if the command that
fails is part of the command list immediately following
a wwhhiillee or uunnttiill keyword, part of the test following the
iiff or eelliiff reserved words, part of any command executed
in a &&&& or |||| list except the command following the fi-
nal &&&& or ||||, any command in a pipeline but the last
(subject to the state of the ppiippeeffaaiill shell option), or
if the command's return value is being inverted with !!.
If a compound command other than a subshell returns a
non-zero status because a command failed while --ee was
being ignored, the shell does not exit. A trap on EERRRR,
if set, is executed before the shell exits. This option
applies to the shell environment and each subshell envi-
ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT in
_b_a_s_h(1)), and may cause subshells to exit before execut-
ing all the commands in the subshell.
a wwhhiillee or uunnttiill reserved word, part of the test follow-
ing the iiff or eelliiff reserved words, part of any command
executed in a &&&& or |||| list except the command following
the final &&&& or ||||, any command in a pipeline but the
last (subject to the state of the ppiippeeffaaiill shell op-
tion), or if the command's return value is being in-
verted with !!. If a compound command other than a sub-
shell returns a non-zero status because a command failed
while --ee was being ignored, the shell does not exit. A
trap on EERRRR, if set, is executed before the shell exits.
This option applies to the shell environment and each
subshell environment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN
EENNVVIIRROONNMMEENNTT in _b_a_s_h(1)), and may cause subshells to exit
before executing all the commands in the subshell.
If a compound command or shell function executes in a
context where --ee is being ignored, none of the commands
@@ -1975,18 +1975,19 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
compound command returns a non-zero exit status, subject to the
following conditions. The EERRRR trap is not executed if the
failed command is part of the command list immediately following
a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement,
part of a command executed in a &&&& or |||| list except the command
following the final &&&& or ||||, any command in a pipeline but the
last (subject to the state of the ppiippeeffaaiill shell option), or if
the command's return value is being inverted using !!. These are
the same conditions obeyed by the eerrrreexxiitt (--ee) option.
a wwhhiillee or uunnttiill reserved word, part of the test in an _i_f state-
ment, part of a command executed in a &&&& or |||| list except the
command following the final &&&& or ||||, any command in a pipeline
but the last (subject to the state of the ppiippeeffaaiill shell op-
tion), or if the command's return value is being inverted using
!!. These are the same conditions obeyed by the eerrrreexxiitt (--ee) op-
tion.
When the shell is not interactive, signals ignored upon entry to
the shell cannot be trapped or reset. Interactive shells permit
trapping signals ignored on entry. 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
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 _s_i_g_s_p_e_c is invalid; otherwise ttrraapp returns true.
ttrruuee Does nothing, returns a 0 status.
@@ -1995,61 +1996,61 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
Indicate how each _n_a_m_e would be interpreted if used as a command
name.
If the --tt option is used, ttyyppee prints a string which is one of
_a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or _f_i_l_e if _n_a_m_e is an alias,
shell reserved word, function, builtin, or executable file, re-
spectively. If the _n_a_m_e is not found, ttyyppee prints nothing and
If the --tt option is used, ttyyppee prints a string which is one of
_a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or _f_i_l_e if _n_a_m_e is an alias,
shell reserved word, function, builtin, or executable file, re-
spectively. If the _n_a_m_e is not found, ttyyppee prints nothing and
returns a non-zero exit status.
If the --pp option is used, ttyyppee either returns the pathname of
the executable file that would be found by searching $$PPAATTHH for
_n_a_m_e or nothing if would not return _f_i_l_e. The --PP option forces
a PPAATTHH search for each _n_a_m_e, even if would not return _f_i_l_e. If
If the --pp option is used, ttyyppee either returns the pathname of
the executable file that would be found by searching $$PPAATTHH for
_n_a_m_e or nothing if would not return _f_i_l_e. The --PP option forces
a PPAATTHH search for each _n_a_m_e, even if would not return _f_i_l_e. If
_n_a_m_e is present in the table of hashed commands, --pp and --PP print
the hashed value, which is not necessarily the file that appears
first in PPAATTHH.
If the --aa option is used, ttyyppee prints all of the places that
contain a command named _n_a_m_e. This includes aliases, reserved
words, functions, and builtins, but the path search options (--pp
and --PP) can be supplied to restrict the output to executable
files. ttyyppee does not consult the table of hashed commands when
If the --aa option is used, ttyyppee prints all of the places that
contain a command named _n_a_m_e. This includes aliases, reserved
words, functions, and builtins, but the path search options (--pp
and --PP) can be supplied to restrict the output to executable
files. ttyyppee does not consult the table of hashed commands when
using --aa with --pp, and only performs a PPAATTHH search for _n_a_m_e.
The --ff option suppresses shell function lookup, as with the ccoomm--
mmaanndd builtin. ttyyppee returns true if all of the arguments are
mmaanndd builtin. ttyyppee returns true if all of the arguments are
found, false if any are not found.
uulliimmiitt [--HHSS] --aa
uulliimmiitt [--HHSS] [--bbccddeeffiikkllmmnnppqqrrssttuuvvxxPPRRTT [_l_i_m_i_t]]
Provides control over the resources available to the shell and
Provides control over the resources available to the shell and
to processes it starts, on systems that allow such control.
The --HH and --SS options specify whether the hard or soft limit is
The --HH and --SS options specify whether 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 --HH nor --SS is speci-
to the value of the hard limit. If neither --HH nor --SS is speci-
fied, uulliimmiitt sets both the soft and hard limits.
The value of _l_i_m_i_t can be a number in the unit specified for the
resource or one of the special values hhaarrdd, ssoofftt, or uunnlliimmiitteedd,
which stand for the current hard limit, the current soft limit,
and no limit, respectively. If _l_i_m_i_t is omitted, uulliimmiitt prints
the current value of the soft limit of the resource, unless the
--HH option is given. When more than one resource is specified,
the limit name and unit, if appropriate, are printed before the
resource or one of the special values hhaarrdd, ssoofftt, or uunnlliimmiitteedd,
which stand for the current hard limit, the current soft limit,
and no limit, respectively. If _l_i_m_i_t is omitted, uulliimmiitt prints
the current value of the soft limit of the resource, unless the
--HH option is given. When more than one resource is specified,
the limit name and unit, if appropriate, are printed before the
value. Other options are interpreted as follows:
--aa Report all current limits; no limits are set.
--bb The maximum socket buffer size.
--cc The maximum size of core files created.
--dd The maximum size of a process's data segment.
--ee The maximum scheduling priority (
--ff The maximum size of files written by the shell and its
--ff The maximum size of files written by the shell and its
children.
--ii The maximum number of pending signals.
--kk The maximum number of kqueues that may be allocated.
--ll The maximum size that may be locked into memory.
--mm The maximum resident set size (many systems do not honor
--mm The maximum resident set size (many systems do not honor
this limit).
--nn The maximum number of open file descriptors (most systems
do not allow this value to be set).
@@ -2058,146 +2059,146 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
--rr The maximum real-time scheduling priority.
--ss The maximum stack size.
--tt The maximum amount of cpu time in seconds.
--uu The maximum number of processes available to a single
--uu The maximum number of processes available to a single
user.
--vv The maximum amount of virtual memory available to the
--vv The maximum amount of virtual memory available to the
shell and, on some systems, to its children.
--xx The maximum number of file locks.
--PP The maximum number of pseudoterminals.
--RR The maximum time a real-time process can run before
--RR The maximum time a real-time process can run before
blocking, in microseconds.
--TT The maximum number of threads.
If _l_i_m_i_t is supplied, and the --aa option is not used, _l_i_m_i_t is
the new value of the specified resource. If no option is sup-
If _l_i_m_i_t is supplied, and the --aa option is not used, _l_i_m_i_t is
the new value of the specified resource. If no option is sup-
plied, then --ff is assumed.
Values are in 1024-byte increments, except for --tt, which is in
seconds; --RR, which is in microseconds; --pp, which is in units of
512-byte blocks; --PP, --TT, --bb, --kk, --nn, and --uu, which are unscaled
values; and, when in posix mode, --cc and --ff, which are in
512-byte increments. The return status is 0 unless an invalid
Values are in 1024-byte increments, except for --tt, which is in
seconds; --RR, which is in microseconds; --pp, which is in units of
512-byte blocks; --PP, --TT, --bb, --kk, --nn, and --uu, which are unscaled
values; and, when in posix mode, --cc and --ff, which are in
512-byte increments. The return status is 0 unless an invalid
option or argument is supplied, or an error occurs while setting
a new limit.
uummaasskk [--pp] [--SS] [_m_o_d_e]
Set the user file-creation mask to _m_o_d_e. If _m_o_d_e begins with a
Set the user file-creation mask to _m_o_d_e. If _m_o_d_e begins with a
digit, it is interpreted as an octal number; otherwise it is in-
terpreted as a symbolic mode mask similar to that accepted by
terpreted as a symbolic mode mask similar to that accepted by
_c_h_m_o_d(1). If _m_o_d_e is omitted, uummaasskk prints the current value of
the mask. The --SS option without a _m_o_d_e argument prints the mask
in a symbolic format; the default output is an octal number. If
the --pp option is supplied, and _m_o_d_e is omitted, the output is in
a form that may be reused as input. The return status is zero
if the mode was successfully changed or if no _m_o_d_e argument was
a form that may be reused as input. The return status is zero
if the mode was successfully changed or if no _m_o_d_e argument was
supplied, and non-zero otherwise.
uunnaalliiaass [-aa] [_n_a_m_e ...]
Remove each _n_a_m_e from the list of defined aliases. If --aa is
supplied, remove all alias definitions. The return value is
Remove each _n_a_m_e from the list of defined aliases. If --aa is
supplied, remove all alias definitions. The return value is
true unless a supplied _n_a_m_e is not a defined alias.
uunnsseett [-ffvv] [-nn] [_n_a_m_e ...]
For each _n_a_m_e, remove the corresponding variable or function.
For each _n_a_m_e, remove the corresponding variable or function.
If the --vv option is given, each _n_a_m_e refers to a shell variable,
and that variable is removed. If --ff is specified, each _n_a_m_e
refers to a shell function, and the function definition is re-
moved. If the --nn option is supplied, and _n_a_m_e is a variable
with the _n_a_m_e_r_e_f attribute, _n_a_m_e will be unset rather than the
variable it references. --nn has no effect if the --ff option is
supplied. Read-only variables and functions may not be unset.
When variables or functions are removed, they are also removed
from the environment passed to subsequent commands. If no op-
tions are supplied, each _n_a_m_e refers to a variable; if there is
no variable by that name, a function with that name, if any, is
unset. Some shell variables may not be unset. If any of
and that variable is removed. If --ff is specified, each _n_a_m_e
refers to a shell function, and the function definition is re-
moved. If the --nn option is supplied, and _n_a_m_e is a variable
with the _n_a_m_e_r_e_f attribute, _n_a_m_e will be unset rather than the
variable it references. --nn has no effect if the --ff option is
supplied. Read-only variables and functions may not be unset.
When variables or functions are removed, they are also removed
from the environment passed to subsequent commands. If no op-
tions are supplied, each _n_a_m_e refers to a variable; if there is
no variable by that name, a function with that name, if any, is
unset. Some shell variables may not be unset. If any of
BBAASSHH__AALLIIAASSEESS, BBAASSHH__AARRGGVV00, BBAASSHH__CCMMDDSS, BBAASSHH__CCOOMMMMAANNDD, BBAASSHH__SSUUBB--
SSHHEELLLL, BBAASSHHPPIIDD, CCOOMMPP__WWOORRDDBBRREEAAKKSS, DDIIRRSSTTAACCKK, EEPPOOCCHHRREEAALLTTIIMMEE,
EEPPOOCCHHSSEECCOONNDDSS, FFUUNNCCNNAAMMEE, GGRROOUUPPSS, HHIISSTTCCMMDD, LLIINNEENNOO, RRAANNDDOOMM, SSEECC--
OONNDDSS, or SSRRAANNDDOOMM are unset, they lose their special properties,
even if they are subsequently reset. The exit status is true
SSHHEELLLL, BBAASSHHPPIIDD, CCOOMMPP__WWOORRDDBBRREEAAKKSS, DDIIRRSSTTAACCKK, EEPPOOCCHHRREEAALLTTIIMMEE,
EEPPOOCCHHSSEECCOONNDDSS, FFUUNNCCNNAAMMEE, GGRROOUUPPSS, HHIISSTTCCMMDD, LLIINNEENNOO, RRAANNDDOOMM, SSEECC--
OONNDDSS, or SSRRAANNDDOOMM are unset, they lose their special properties,
even if they are subsequently reset. The exit status is true
unless a _n_a_m_e is readonly or may not be unset.
wwaaiitt [--ffnn] [--pp _v_a_r_n_a_m_e] [_i_d ...]
Wait for each specified child process _i_d and return the termina-
tion status of the last _i_d. Each _i_d may be a process ID _p_i_d or
a job specification _j_o_b_s_p_e_c; if a jobspec is supplied, wwaaiitt
tion status of the last _i_d. Each _i_d may be a process ID _p_i_d or
a job specification _j_o_b_s_p_e_c; if a jobspec is supplied, wwaaiitt
waits for all processes in the job.
If no options or _i_ds are supplied, wwaaiitt waits for all running
background jobs and the last-executed process substitution, if
If no options or _i_ds are supplied, wwaaiitt waits for all running
background jobs and the last-executed process substitution, if
its process id is the same as $$!!, and the return status is zero.
If the --nn option is supplied, wwaaiitt waits for any one of the
If the --nn option is supplied, wwaaiitt waits for any one of the
given _i_ds or, if no _i_ds are supplied, any job or process substi-
tution, to complete and returns its exit status. If none of the
supplied _i_ds is a child of the shell, or if no _i_ds are supplied
and the shell has no unwaited-for children, the exit status is
supplied _i_ds is a child of the shell, or if no _i_ds are supplied
and the shell has no unwaited-for children, the exit status is
127.
If the --pp option is supplied, wwaaiitt assigns the process or job
identifier of the job for which the exit status is returned to
the variable _v_a_r_n_a_m_e named by the option argument. The vari-
able, which cannot be readonly, will be unset initially, before
any assignment. This is useful only when used with the --nn op-
If the --pp option is supplied, wwaaiitt assigns the process or job
identifier of the job for which the exit status is returned to
the variable _v_a_r_n_a_m_e named by the option argument. The vari-
able, which cannot be readonly, will be unset initially, before
any assignment. This is useful only when used with the --nn op-
tion.
Supplying the --ff option, when job control is enabled, forces
wwaaiitt to wait for each _i_d to terminate before returning its sta-
Supplying the --ff option, when job control is enabled, forces
wwaaiitt to wait for each _i_d to terminate before returning its sta-
tus, instead of returning when it changes status.
If none of the _i_ds specify one of the shell's active child
processes, the return status is 127. If wwaaiitt is interrupted by
a signal, any _v_a_r_n_a_m_e will remain unset, and the return status
If none of the _i_ds specify one of the shell's active child
processes, the return status is 127. If wwaaiitt is interrupted by
a signal, any _v_a_r_n_a_m_e will remain unset, and the return status
will be greater than 128, as described under SSIIGGNNAALLSS in _b_a_s_h(1).
Otherwise, the return status is the exit status of the last _i_d.
SSHHEELLLL CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE
Bash-4.0 introduced the concept of a _s_h_e_l_l _c_o_m_p_a_t_i_b_i_l_i_t_y _l_e_v_e_l, speci-
Bash-4.0 introduced the concept of a _s_h_e_l_l _c_o_m_p_a_t_i_b_i_l_i_t_y _l_e_v_e_l, speci-
fied as a set of options to the shopt builtin (ccoommppaatt3311, ccoommppaatt3322, ccoomm--
ppaatt4400, ccoommppaatt4411, and so on). There is only one current compatibility
ppaatt4400, ccoommppaatt4411, and so on). There is only one current compatibility
level -- each option is mutually exclusive. The compatibility level is
intended to allow users to select behavior from previous versions that
is incompatible with newer versions while they migrate scripts to use
current features and behavior. It's intended to be a temporary solu-
intended to allow users to select behavior from previous versions that
is incompatible with newer versions while they migrate scripts to use
current features and behavior. It's intended to be a temporary solu-
tion.
This section does not mention behavior that is standard for a particu-
lar version (e.g., setting ccoommppaatt3322 means that quoting the right hand
side of the regexp matching operator quotes special regexp characters
in the word, which is default behavior in bash-3.2 and subsequent ver-
This section does not mention behavior that is standard for a particu-
lar version (e.g., setting ccoommppaatt3322 means that quoting the right hand
side of the regexp matching operator quotes special regexp characters
in the word, which is default behavior in bash-3.2 and subsequent ver-
sions).
If a user enables, say, ccoommppaatt3322, it may affect the behavior of other
compatibility levels up to and including the current compatibility
level. The idea is that each compatibility level controls behavior
that changed in that version of bbaasshh, but that behavior may have been
present in earlier versions. For instance, the change to use locale-
based comparisons with the [[[[ command came in bash-4.1, and earlier
If a user enables, say, ccoommppaatt3322, it may affect the behavior of other
compatibility levels up to and including the current compatibility
level. The idea is that each compatibility level controls behavior
that changed in that version of bbaasshh, but that behavior may have been
present in earlier versions. For instance, the change to use locale-
based comparisons with the [[[[ command came in bash-4.1, and earlier
versions used ASCII-based comparisons, so enabling ccoommppaatt3322 will enable
ASCII-based comparisons as well. That granularity may not be suffi-
cient for all uses, and as a result users should employ compatibility
levels carefully. Read the documentation for a particular feature to
ASCII-based comparisons as well. That granularity may not be suffi-
cient for all uses, and as a result users should employ compatibility
levels carefully. Read the documentation for a particular feature to
find out the current behavior.
Bash-4.3 introduced a new shell variable: BBAASSHH__CCOOMMPPAATT. The value as-
Bash-4.3 introduced a new shell variable: BBAASSHH__CCOOMMPPAATT. The value as-
signed to this variable (a decimal version number like 4.2, or an inte-
ger corresponding to the ccoommppaatt_N_N option, like 42) determines the com-
ger corresponding to the ccoommppaatt_N_N option, like 42) determines the com-
patibility level.
Starting with bash-4.4, bbaasshh began deprecating older compatibility lev-
els. Eventually, the options will be removed in favor of BBAASSHH__CCOOMMPPAATT.
Bash-5.0 was the final version for which there was an individual shopt
option for the previous version. BBAASSHH__CCOOMMPPAATT is the only mechanism to
Bash-5.0 was the final version for which there was an individual shopt
option for the previous version. BBAASSHH__CCOOMMPPAATT is the only mechanism to
control the compatibility level in versions newer than bash-5.0.
The following table describes the behavior changes controlled by each
The following table describes the behavior changes controlled by each
compatibility level setting. The ccoommppaatt_N_N tag is used as shorthand for
setting the compatibility level to _N_N using one of the following mecha-
nisms. For versions prior to bash-5.0, the compatibility level may be
set using the corresponding ccoommppaatt_N_N shopt option. For bash-4.3 and
later versions, the BBAASSHH__CCOOMMPPAATT variable is preferred, and it is re-
nisms. For versions prior to bash-5.0, the compatibility level may be
set using the corresponding ccoommppaatt_N_N shopt option. For bash-4.3 and
later versions, the BBAASSHH__CCOOMMPPAATT variable is preferred, and it is re-
quired for bash-5.1 and later versions.
ccoommppaatt3311
@@ -2205,118 +2206,118 @@ SSHHEELLLL CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE
ator (=) has no special effect.
ccoommppaatt3322
+o The << and >> operators to the [[[[ command do not consider
+o The << and >> operators to the [[[[ command do not consider
the current locale when comparing strings; they use ASCII
ordering.
ccoommppaatt4400
+o The << and >> operators to the [[[[ command do not consider
+o The << and >> operators to the [[[[ command do not consider
the current locale when comparing strings; they use ASCII
ordering. BBaasshh versions prior to bash-4.1 use ASCII col-
lation and _s_t_r_c_m_p(3); bash-4.1 and later use the current
lation and _s_t_r_c_m_p(3); bash-4.1 and later use the current
locale's collation sequence and _s_t_r_c_o_l_l(3).
ccoommppaatt4411
+o In posix mode, ttiimmee may be followed by options and still
+o In posix mode, ttiimmee may be followed by options and still
be recognized as a reserved word (this is POSIX interpre-
tation 267).
+o In _p_o_s_i_x mode, the parser requires that an even number of
single quotes occur in the _w_o_r_d portion of a double-
quoted parameter expansion and treats them specially, so
that characters within the single quotes are considered
single quotes occur in the _w_o_r_d portion of a double-
quoted parameter expansion and treats them specially, so
that characters within the single quotes are considered
quoted (this is POSIX interpretation 221).
ccoommppaatt4422
+o The replacement string in double-quoted pattern substitu-
tion does not undergo quote removal, as it does in ver-
tion does not undergo quote removal, as it does in ver-
sions after bash-4.2.
+o In posix mode, single quotes are considered special when
expanding the _w_o_r_d portion of a double-quoted parameter
expansion and can be used to quote a closing brace or
other special character (this is part of POSIX interpre-
tation 221); in later versions, single quotes are not
+o In posix mode, single quotes are considered special when
expanding the _w_o_r_d portion of a double-quoted parameter
expansion and can be used to quote a closing brace or
other special character (this is part of POSIX interpre-
tation 221); in later versions, single quotes are not
special within double-quoted word expansions.
ccoommppaatt4433
+o Word expansion errors are considered non-fatal errors
that cause the current command to fail, even in posix
mode (the default behavior is to make them fatal errors
+o Word expansion errors are considered non-fatal errors
that cause the current command to fail, even in posix
mode (the default behavior is to make them fatal errors
that cause the shell to exit).
+o When executing a shell function, the loop state
+o When executing a shell function, the loop state
(while/until/etc.) is not reset, so bbrreeaakk or ccoonnttiinnuuee in
that function will break or continue loops in the calling
context. Bash-4.4 and later reset the loop state to pre-
vent this.
ccoommppaatt4444
+o The shell sets up the values used by BBAASSHH__AARRGGVV and
BBAASSHH__AARRGGCC so they can expand to the shell's positional
parameters even if extended debugging mode is not en-
+o The shell sets up the values used by BBAASSHH__AARRGGVV and
BBAASSHH__AARRGGCC so they can expand to the shell's positional
parameters even if extended debugging mode is not en-
abled.
+o A subshell inherits loops from its parent context, so
bbrreeaakk or ccoonnttiinnuuee will cause the subshell to exit.
Bash-5.0 and later reset the loop state to prevent the
+o A subshell inherits loops from its parent context, so
bbrreeaakk or ccoonnttiinnuuee will cause the subshell to exit.
Bash-5.0 and later reset the loop state to prevent the
exit
+o Variable assignments preceding builtins like eexxppoorrtt and
+o Variable assignments preceding builtins like eexxppoorrtt and
rreeaaddoonnllyy that set attributes continue to affect variables
with the same name in the calling environment even if the
shell is not in posix mode.
ccoommppaatt5500
+o Bash-5.1 changed the way $$RRAANNDDOOMM is generated to intro-
duce slightly more randomness. If the shell compatibil-
+o Bash-5.1 changed the way $$RRAANNDDOOMM is generated to intro-
duce slightly more randomness. If the shell compatibil-
ity level is set to 50 or lower, it reverts to the method
from bash-5.0 and previous versions, so seeding the ran-
dom number generator by assigning a value to RRAANNDDOOMM will
from bash-5.0 and previous versions, so seeding the ran-
dom number generator by assigning a value to RRAANNDDOOMM will
produce the same sequence as in bash-5.0.
+o If the command hash table is empty, bash versions prior
to bash-5.1 printed an informational message to that ef-
fect, even when producing output that can be reused as
input. Bash-5.1 suppresses that message when the --ll op-
+o If the command hash table is empty, bash versions prior
to bash-5.1 printed an informational message to that ef-
fect, even when producing output that can be reused as
input. Bash-5.1 suppresses that message when the --ll op-
tion is supplied.
ccoommppaatt5511
+o The uunnsseett builtin treats attempts to unset array sub-
scripts @@ and ** differently depending on whether the ar-
ray is indexed or associative, and differently than in
+o The uunnsseett builtin treats attempts to unset array sub-
scripts @@ and ** differently depending on whether the ar-
ray is indexed or associative, and differently than in
previous versions.
+o Arithmetic commands ( ((((...)))) ) and the expressions in an
arithmetic for statement can be expanded more than once.
+o Expressions used as arguments to arithmetic operators in
the [[[[ conditional command can be expanded more than
+o Expressions used as arguments to arithmetic operators in
the [[[[ conditional command can be expanded more than
once.
+o The expressions in substring parameter brace expansion
+o The expressions in substring parameter brace expansion
can be expanded more than once.
+o The expressions in the $$((((...)))) word expansion can be ex-
panded more than once.
+o Arithmetic expressions used as indexed array subscripts
+o Arithmetic expressions used as indexed array subscripts
can be expanded more than once.
+o tteesstt --vv, when given an argument of AA[[@@]], where AA is an
+o tteesstt --vv, when given an argument of AA[[@@]], where AA is an
existing associative array, will return true if the array
has any set elements. Bash-5.2 will look for and report
has any set elements. Bash-5.2 will look for and report
on a key named @@.
+o The ${_p_a_r_a_m_e_t_e_r[[::]]==_v_a_l_u_e} word expansion will return
_v_a_l_u_e, before any variable-specific transformations have
_v_a_l_u_e, before any variable-specific transformations have
been performed (e.g., converting to lowercase). Bash-5.2
will return the final value assigned to the variable.
+o Parsing command substitutions will behave as if extended
+o Parsing command substitutions will behave as if extended
globbing (see the description of the sshhoopptt builtin above)
is enabled, so that parsing a command substitution con-
is enabled, so that parsing a command substitution con-
taining an extglob pattern (say, as part of a shell func-
tion) will not fail. This assumes the intent is to en-
able extglob before the command is executed and word ex-
pansions are performed. It will fail at word expansion
time if extglob hasn't been enabled by the time the com-
tion) will not fail. This assumes the intent is to en-
able extglob before the command is executed and word ex-
pansions are performed. It will fail at word expansion
time if extglob hasn't been enabled by the time the com-
mand is executed.
ccoommppaatt5522
+o The tteesstt builtin uses its historical algorithm to parse
parenthesized subexpressions when given five or more ar-
+o The tteesstt builtin uses its historical algorithm to parse
parenthesized subexpressions when given five or more ar-
guments.
+o If the --pp or --PP option is supplied to the bbiinndd builtin,
+o If the --pp or --PP option is supplied to the bbiinndd builtin,
bbiinndd treats any arguments remaining after option process-
ing as bindable command names, and displays any key se-
quences bound to those commands, instead of treating the
ing as bindable command names, and displays any key se-
quences bound to those commands, instead of treating the
arguments as key sequences to bind.
SSEEEE AALLSSOO
BIN
View File
Binary file not shown.
+2 -2
View File
@@ -32,8 +32,8 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL
+o Importing function definitions from the shell environment at
startup.
+o Parsing the value of SSHHEELLLLOOPPTTSS from the shell environment at
startup.
+o Parsing the values of BBAASSHHOOPPTTSS and SSHHEELLLLOOPPTTSS from the shell en-
vironment at startup.
+o Redirecting output using the >, >|, <>, >&, &>, and >> redirec-
tion operators.
+2 -2
View File
@@ -2,10 +2,10 @@
Copyright (C) 1988-2025 Free Software Foundation, Inc.
@end ignore
@set LASTCHANGE Tue Feb 11 11:04:12 EST 2025
@set LASTCHANGE Mon Feb 24 16:09:32 EST 2025
@set EDITION 5.3
@set VERSION 5.3
@set UPDATED 11 February 2025
@set UPDATED 24 February 2025
@set UPDATED-MONTH February 2025
+8
View File
@@ -776,6 +776,14 @@ execute_command_internal (COMMAND *command, int asynchronous, int pipe_in, int p
if (user_subshell && ignore_return == 0 && invert == 0 && exit_immediately_on_error && exec_result != EXECUTION_SUCCESS)
{
/* Update BASH_COMMAND before running any traps,
including the exit trap, since we are going to exit
the shell. */
if (signal_in_progress (DEBUG_TRAP) == 0 && running_trap == 0)
{
FREE (the_printed_command_except_trap);
the_printed_command_except_trap = savestring (the_printed_command);
}
run_pending_traps ();
jump_to_top_level (ERREXIT);
}
+1 -1
View File
@@ -1,6 +1,6 @@
/* malloc.c - dynamic memory allocation for bash. */
/* Copyright (C) 1985-2022 Free Software Foundation, Inc.
/* Copyright (C) 1985-2025 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne-Again SHell.
+1 -1
View File
@@ -6,7 +6,7 @@
* gcc -g -o x x.o xmalloc.o lib/malloc/libmalloc.a
*/
/* Copyright (C) 2002-2003 Free Software Foundation, Inc.
/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
+1 -1
View File
@@ -1,6 +1,6 @@
/* table.h - definitions for tables for keeping track of allocated memory */
/* Copyright (C) 2001-2022 Free Software Foundation, Inc.
/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne-Again SHell.
+2
View File
@@ -241,6 +241,8 @@ getmaxgroups (void)
if (maxgroups > 0)
return maxgroups;
/* can also use getgroups (0, NULL) */
#if defined (HAVE_SYSCONF) && defined (_SC_NGROUPS_MAX)
maxgroups = sysconf (_SC_NGROUPS_MAX);
#else
+6 -1
View File
@@ -465,7 +465,11 @@ here_document_to_fd (WORD_DESC *redirectee, enum r_instruction ri)
#if defined (F_GETPIPE_SZ)
if (fcntl (herepipe[1], F_GETPIPE_SZ, 0) < document_len)
goto use_tempfile;
{
close (herepipe[0]);
close (herepipe[1]);
goto use_tempfile;
}
#endif
r = heredoc_write (herepipe[1], document, document_len);
@@ -484,6 +488,7 @@ here_document_to_fd (WORD_DESC *redirectee, enum r_instruction ri)
use_tempfile:
/* TAG: use anonfiles here in a future version. */
fd = sh_mktmpfd ("sh-thd", MT_USERANDOM|MT_USETMPDIR, &filename);
/* If we failed for some reason other than the file existing, abort */
+2 -2
View File
@@ -1312,14 +1312,14 @@ uidget (void)
(void) getresuid (&current_user.uid, &current_user.euid, &current_user.saveuid);
#else
current_user.uid = getuid ();
current_user.euid = geteuid ();
current_user.euid = current_user.saveuid = geteuid ();
#endif
#if HAVE_SETRESGID
(void) getresgid (&current_user.gid, &current_user.egid, &current_user.savegid);
#else
current_user.gid = getgid ();
current_user.egid = getegid ();
current_user.egid = current_user.savegid = getegid ();
#endif
if (current_user.uid != u)