new compgen -V option to store completions in an array

This commit is contained in:
Chet Ramey
2023-04-18 10:25:47 -04:00
parent d06fefb2ba
commit a46164736e
28 changed files with 15668 additions and 16689 deletions
+13
View File
@@ -6031,3 +6031,16 @@ variables.c
doc/bash.1,doc/bashref.texi
- GLOBSORT: document variable and its effects on pathname expansion
4/17
----
builtins/complete.def
- build_actions: take an additional char ** arg VNAMEP; if it is non-
null, accept a -V VARNAME option that names an indexed array
variable in which to store the completions.
- compgen_builtin: if the -V option is supplied, store the possible
completions into VARNAME instead of printing them on stdout. From a
patch from Grisha Levit <grishalevit@gmail.com>
doc/bash.1,lib/readline/doc/rluser.texi
- compgen: document new -V option
+54 -12
View File
@@ -87,7 +87,7 @@ struct _optflags {
static int find_compact (char *);
static int find_compopt (char *);
static int build_actions (WORD_LIST *, struct _optflags *, unsigned long *, unsigned long *);
static int build_actions (WORD_LIST *, struct _optflags *, unsigned long *, unsigned long *, char **);
static int remove_cmd_completions (WORD_LIST *);
@@ -180,6 +180,8 @@ find_compopt (char *name)
bitmap of compspec options (arguments to `-o'). PP, if non-null, gets 1
if -p is supplied; RP, if non-null, gets 1 if -r is supplied.
If either is null, the corresponding option generates an error.
VNAMEP is a pointer to a string to store the name of the output variable
supplied with the -V option.
This also sets variables corresponding to options that take arguments as
a side effect; the caller should ensure that those variables are set to
NULL before calling build_actions. Return value:
@@ -189,7 +191,7 @@ find_compopt (char *name)
*/
static int
build_actions (WORD_LIST *list, struct _optflags *flagp, unsigned long *actp, unsigned long *optp)
build_actions (WORD_LIST *list, struct _optflags *flagp, unsigned long *actp, unsigned long *optp, char **vnamep)
{
int opt, ind, opt_given;
unsigned long acts, copts;
@@ -199,7 +201,7 @@ build_actions (WORD_LIST *list, struct _optflags *flagp, unsigned long *actp, un
opt_given = 0;
reset_internal_getopt ();
while ((opt = internal_getopt (list, "abcdefgjko:prsuvA:G:W:P:S:X:F:C:DEI")) != -1)
while ((opt = internal_getopt (list, "abcdefgjko:prsuvA:G:W:P:S:X:F:C:V:DEI")) != -1)
{
opt_given = 1;
switch (opt)
@@ -341,6 +343,25 @@ build_actions (WORD_LIST *list, struct _optflags *flagp, unsigned long *actp, un
case 'S':
Sarg = list_optarg;
break;
case 'V':
#if defined (ARRAY_VARS)
if (vnamep)
{
*vnamep = list_optarg;
if (legal_identifier (list_optarg) == 0)
{
sh_invalidid (list_optarg);
return (EX_USAGE);
}
}
else
#endif
{
sh_invalidopt ("-V");
builtin_usage ();
return (EX_USAGE);
}
break;
case 'W':
Warg = list_optarg;
break;
@@ -385,7 +406,7 @@ complete_builtin (WORD_LIST *list)
/* Build the actions from the arguments. Also sets the [A-Z]arg variables
as a side effect if they are supplied as options. */
rval = build_actions (list, &oflags, &acts, &copts);
rval = build_actions (list, &oflags, &acts, &copts, (char **)NULL);
if (rval == EX_USAGE)
return (rval);
opt_given = rval != EXECUTION_FAILURE;
@@ -630,12 +651,15 @@ print_cmd_completions (WORD_LIST *list)
$BUILTIN compgen
$DEPENDS_ON PROGRAMMABLE_COMPLETION
$FUNCTION compgen_builtin
$SHORT_DOC compgen [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]
$SHORT_DOC compgen [-V varname] [-abcdefgjksuv] [-o option] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [word]
Display possible completions depending on the options.
Intended to be used from within a shell function generating possible
completions. If the optional WORD argument is supplied, matches against
WORD are generated.
completions. If the optional WORD argument is present, generate matches
against WORD.
If the -V option is supplied, store the possible completions in the indexed
array VARNAME instead of printing them to the standard output.
Exit Status:
Returns success unless an invalid option is supplied or an error occurs.
@@ -651,6 +675,9 @@ compgen_builtin (WORD_LIST *list)
char *word, **matches;
char *old_line;
int old_ind, old_completion, old_quoting, old_suppress;
SHELL_VAR *var;
char *varname;
WORD_LIST *alist;
if (list == 0)
return (EXECUTION_SUCCESS);
@@ -658,10 +685,11 @@ compgen_builtin (WORD_LIST *list)
acts = copts = (unsigned long)0L;
Garg = Warg = Parg = Sarg = Xarg = Farg = Carg = (char *)NULL;
cs = (COMPSPEC *)NULL;
varname = 0;
/* Build the actions from the arguments. Also sets the [A-Z]arg variables
as a side effect if they are supplied as options. */
rval = build_actions (list, (struct _optflags *)NULL, &acts, &copts);
rval = build_actions (list, (struct _optflags *)NULL, &acts, &copts, &varname);
if (rval == EX_USAGE)
return (rval);
if (rval == EXECUTION_FAILURE)
@@ -728,15 +756,29 @@ compgen_builtin (WORD_LIST *list)
rl_filename_quoting_desired = old_quoting;
rl_completion_suppress_append = old_suppress;
if (sl)
#if defined (ARRAY_VARS)
if (varname)
{
if (sl->list && sl->list_len)
var = builtin_find_indexed_array (varname, 1);
if (var && sl && sl->list && sl->list_len)
{
alist = strlist_to_word_list (sl, 0, 0);
assign_array_var_from_word_list (var, alist, 0);
free (sl);
sl = (STRINGLIST *)NULL;
dispose_words (alist);
rval = EXECUTION_SUCCESS;
strlist_print (sl, (char *)NULL);
}
strlist_dispose (sl);
}
else
#endif
if (sl && sl->list && sl->list_len)
{
rval = EXECUTION_SUCCESS;
strlist_print (sl, (char *)NULL);
}
if (sl)
strlist_dispose (sl);
compspec_dispose (cs);
return (rval);
Vendored
+5384 -6956
View File
File diff suppressed because it is too large Load Diff
+935 -933
View File
File diff suppressed because it is too large Load Diff
+27 -9
View File
@@ -5,12 +5,12 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
.\" Last Change: Sat Apr 15 17:52:31 EDT 2023
.\" Last Change: Mon Apr 17 10:35:39 EDT 2023
.\"
.\" bash_builtins, strip all but Built-Ins section
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
.TH BASH 1 "2023 April 15" "GNU Bash 5.2"
.TH BASH 1 "2023 April 17" "GNU Bash 5.2"
.\"
.\" There's some problem with having a `@'
.\" in a tagged paragraph with the BSD man macros.
@@ -8105,12 +8105,21 @@ cannot be found, the exit status is 127. Otherwise, the exit status of the
builtin is the exit status of
.IR command .
.TP
\fBcompgen\fP [\fIoption\fP] [\fIword\fP]
\fBcompgen\fP [\fB\-V\fP \fIvarname\fP] [\fIoption\fP] [\fIword\fP]
Generate possible completion matches for \fIword\fP according to
the \fIoption\fPs, which may be any option accepted by the
.B complete
builtin with the exception of \fB\-p\fP and \fB\-r\fP, and write
the matches to the standard output.
builtin with the exceptions of
.BR \-p ,
.BR \-r ,
.BR \-D ,
.BR \-E ,
and
.BR \-I ,
and write the matches to the standard output.
If the \fB\-V\fP option is supplied, \fBcompgen\fP stores the generated
completions into the indexed array variable \fIvarname\fP instead of writing
them to the standard output.
When using the \fB\-F\fP or \fB\-C\fP options, the various shell variables
set by the programmable completion facilities, while available, will not
have useful values.
@@ -8124,9 +8133,11 @@ will be displayed.
The return value is true unless an invalid option is supplied, or no
matches were generated.
.TP
\fBcomplete\fP [\fB\-abcdefgjksuv\fP] [\fB\-o\fP \fIcomp-option\fP] [\fB\-DEI\fP] [\fB\-A\fP \fIaction\fP] [\fB\-G\fP \fIglobpat\fP] [\fB\-W\fP \fIwordlist\fP]
\fBcomplete\fP [\fB\-abcdefgjksuv\fP] [\fB\-o\fP \fIcomp-option\fP] [\fB\-DEI\fP] [\fB\-A\fP \fIaction\fP]
.br
[\fB\-F\fP \fIfunction\fP] [\fB\-C\fP \fIcommand\fP] [\fB\-X\fP \fIfilterpat\fP] [\fB\-P\fP \fIprefix\fP] [\fB\-S\fP \fIsuffix\fP] \fIname\fP [\fIname ...\fP]
[\fB\-G\fP \fIglobpat\fP] [\fB\-W\fP \fIwordlist\fP] [\fB\-F\fP \fIfunction\fP] [\fB\-C\fP \fIcommand\fP]
.br
[\fB\-X\fP \fIfilterpat\fP] [\fB\-P\fP \fIprefix\fP] [\fB\-S\fP \fIsuffix\fP] \fIname\fP [\fIname ...\fP]
.PD 0
.TP
\fBcomplete\fP \fB\-pr\fP [\fB\-DEI\fP] [\fIname\fP ...]
@@ -8345,7 +8356,14 @@ case, any completion not matching \fIfilterpat\fP is removed.
.PD
.PP
The return value is true unless an invalid option is supplied, an option
other than \fB\-p\fP or \fB\-r\fP is supplied without a \fIname\fP
other than
.BR \-p ,
.BR \-r ,
.BR \-D ,
.BR \-E ,
or
.B \-I
is supplied without a \fIname\fP
argument, an attempt is made to remove a completion specification for
a \fIname\fP for which no specification exists, or
an error occurs adding a completion specification.
@@ -9109,7 +9127,7 @@ The return status is 0 unless no command matches
.TP
\fBhistory \-d\fP \fIoffset\fP
.TP
\fBhistory \-d\fP \fIstart\fP\-\fIend\fP
\fBhistory \-d\fP \fIstart\fP-\fIend\fP
.TP
\fBhistory\fP \fB\-anrw\fP [\fIfilename\fP]
.TP
+188 -58
View File
@@ -3,7 +3,7 @@
</HEAD>
<BODY><TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2022 December 2<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2023 April 17<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<BR><A HREF="#index">Index</A>
@@ -54,7 +54,7 @@ bash - GNU Bourne-Again SHell
<H3>COPYRIGHT</H3>
Bash is Copyright &#169; 1989-2022 by the Free Software Foundation, Inc.
Bash is Copyright &#169; 1989-2023 by the Free Software Foundation, Inc.
<A NAME="lbAE">&nbsp;</A>
<H3>DESCRIPTION</H3>
@@ -2842,6 +2842,39 @@ of the patterns in
</FONT>
it is removed from the list of matches.
<DT><B>GLOBSORT</B>
<DD>
Control how the results of pathname expansion are sorted.
The value of this variable specifies the sort criteria and sort order for
the results of pathname expansion.
If this variable is unset or set to the null string, pathname expansion
uses the historial behavior of sorting by name.
If set, a valid value begins with an optional <I>+</I>, which is ignored,
or <I>-</I>, which reverses the sort order from ascending to descending,
followed by a sort specifier.
The valid sort specifiers are
<I>name</I>,
<I>size</I>,
<I>mtime</I>,
<I>atime</I>,
<I>ctime</I>,
and
<I>blocks</I>,
which sort the files on name, file size, modification time, access time,
inode change time, and number of blocks, respectively.
For example, a value of <B>-mtime</B> sorts the results in descending
order by modification time (newest first).
If the sort specifier is missing, it defaults to <I>name</I>,
so a value of <I>+</I> is equivalent to the null string,
and a value of <I>-</I> sorts by name in descending order.
Any invalid value restores the historical sorting behavior.
<DT><B>HISTCONTROL</B>
<DD>
@@ -3479,11 +3512,15 @@ Arrays are assigned to using compound assignments of the form
<I>name</I>=<B>(</B>value<I>1</I> ... value<I>n</I><B>)</B>, where each
<I>value</I> may be of the form [<I>subscript</I>]=<I>string</I>.
Indexed array assignments do not require anything but <I>string</I>.
Each <I>value</I> in the list is expanded using all the shell expansions
Each <I>value</I> in the list is expanded using the shell expansions
described below under
<FONT SIZE=-1><B>EXPANSION</B>.
<FONT SIZE=-1><B>EXPANSION</B>,
</FONT>
but <I>value</I>s that are valid variable assignments
including the brackets and subscript do not undergo
brace expansion and word splitting, as with individual
variable assignments.
When assigning to indexed arrays, if the optional brackets and subscript
are supplied, that index is assigned to;
otherwise the index of the element assigned is the last index assigned
@@ -4044,7 +4081,7 @@ If <I>parameter</I> is <B>@</B> or <B>*</B>, the result is <I>length</I>
positional parameters beginning at <I>offset</I>.
A negative <I>offset</I> is taken relative to one greater than the greatest
positional parameter, so an offset of -1 evaluates to the last positional
parameter.
parameter (or 0 if there are no positional parameters).
It is an expansion error if <I>length</I> evaluates to a number less than
zero.
<P>
@@ -4554,6 +4591,8 @@ The shell treats each character of
</FONT>
as a delimiter, and splits the results of the other
expansions into words using these characters as field terminators.
<P>
If
<FONT SIZE=-1><B>IFS</B>
@@ -4564,12 +4603,12 @@ value is exactly
the default, then
sequences of
<B>&lt;space&gt;</B>,
<B>space</B>,
<B>&lt;tab&gt;</B>,
<B>tab</B>,
and
<B>&lt;newline&gt;</B>
<B>newline</B>
at the beginning and end of the results of the previous
expansions are ignored, and
@@ -4620,11 +4659,21 @@ A sequence of
</FONT>
whitespace characters is also treated as a delimiter.
<P>
If the value of
<FONT SIZE=-1><B>IFS</B>
</FONT>
is null, no word splitting occurs.
If
<FONT SIZE=-1><B>IFS</B>
</FONT>
is unset, word splitting behaves as if it contained the default value
of
<B>&lt;space&gt;&lt;tab&gt;&lt;newline&gt;</B>.
<P>
Explicit null arguments (<B>&quot;&quot;</B> or <B>aqaq</B>) are retained
@@ -4821,6 +4870,14 @@ The pattern matching honors the setting of the <B>extglob</B> shell
option.
<P>
The
<FONT SIZE=-1><B>GLOBSORT</B>
</FONT>
variable controls how the results of pathname expansion are sorted, as
described above.
<P>
<B>Pattern Matching</B>
<P>
@@ -5348,9 +5405,8 @@ This type of redirection instructs the shell to read input from the
current source until a line containing only
<I>delimiter</I>
(with no trailing blanks)
is seen. All of
the lines read up to that point are then used as the standard
(with no trailing blanks) is seen.
All of the lines read up to that point are then used as the standard
input (or file descriptor <I>n</I> if <I>n</I> is specified) for a command.
<P>
@@ -5372,6 +5428,8 @@ No parameter and variable expansion, command substitution,
arithmetic expansion, or pathname expansion is performed on
<I>word</I>.
<P>
If any part of
<I>word</I>
@@ -5382,7 +5440,10 @@ is the result of quote removal on
<I>word</I>,
and the lines in the here-document are not expanded.
If <I>word</I> is unquoted,
If <I>word</I> is unquoted, the
<I>delimiter</I>
is <I>word</I> itself,
all lines of the here-document are subjected to
parameter expansion, command substitution, and arithmetic expansion,
the character sequence
@@ -5559,22 +5620,25 @@ is not specified. If the file does not exist, it is created.
<A NAME="lbBT">&nbsp;</A>
<H3>ALIASES</H3>
<I>Aliases</I> allow a string to be substituted for a word when it is used
as the first word of a simple command.
The shell maintains a list of aliases that may be set and unset with the
<B>alias</B>
and
<B>unalias</B>
builtin commands (see
<I>Aliases</I> allow a string to be substituted for a word that is in
a position in the input where it can be the first word of a simple
command. Aliases have names and corresponding values that are set
and unset using the <B>alias</B> and <B>unalias</B> builtin commands
(see
<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
</FONT>
below).
The first word of each simple command, if unquoted,
is checked to see if it has an
alias. If so, that word is replaced by the text of the alias.
<P>
If the shell reads an unquoted word in the right position, it checks
the word to see if it matches an alias name. If it matches, the shell
replaces the word with the alias value, and reads that value as if it
had been read instead of the word.
The shell doesn't look at any characters following the word before
attempting alias substitution.
<P>
The characters <B>/</B>, <B>$</B>, <B>`</B>, and <B>=</B> and
any of the shell <I>metacharacters</I> or quoting characters
listed above may not appear in an alias name.
@@ -5593,6 +5657,8 @@ for instance, and
<B>bash</B>
does not try to recursively expand the replacement text.
<P>
If the last character of the alias value is a
<I>blank</I>,
@@ -6256,8 +6322,8 @@ were no command substitutions, the command exits with a status of zero.
<H3>COMMAND EXECUTION</H3>
After a command has been split into words, if it results in a
simple command and an optional list of arguments, the following
actions are taken.
simple command and an optional list of arguments, the shell performs
the following actions.
<P>
If the command name contains no slashes, the shell attempts to
@@ -7915,6 +7981,11 @@ If set to <B>On</B>, readline will undo all changes to history lines
before returning when <B>accept-line</B> is executed. By default,
history lines may be modified and retain individual undo lists across
calls to <B>readline</B>.
<DT><B>search-ignore-case (Off) </B>
<DD>
If set to <B>On</B>, readline performs incremental and non-incremental
history list searches in a case-insensitive fashion.
<DT><B>show-all-if-ambiguous (Off)</B>
<DD>
@@ -8363,9 +8434,12 @@ as if the &quot;!$&quot; history expansion had been specified.
<DT><B>shell-expand-line (M-C-e)</B>
<DD>
Expand the line as the shell does. This
performs alias and history expansion as well as all of the shell
word expansions. See
Expand the line by performing shell word expansions.
This performs alias and history expansion,
<B>$</B>aq<I>string</I>aq and <B>$</B>dq<I>string</I>dq quoting,
tilde expansion, parameter and variable expansion, arithmetic expansion,
word splitting, and quote removal.
See
<FONT SIZE=-1><B>HISTORY EXPANSION</B>
</FONT>
@@ -10035,7 +10109,7 @@ current frame is frame 0.
The return value is 0 unless the shell is not executing a subroutine
call or <I>expr</I> does not correspond to a valid position in the
call stack.
<DT><B>cd</B> [<B>-L</B>|[<B>-P</B> [<B>-e</B>]] [-@]] [<I>dir</I>]<DD>
<DT><B>cd</B> [<B>-L</B>|[<B>-P</B> [<B>-e</B>]]] [-@] [<I>dir</I>]<DD>
Change the current directory to <I>dir</I>.
if <I>dir</I> is not supplied, the value of the
<FONT SIZE=-1><B>HOME</B>
@@ -10184,13 +10258,27 @@ cannot be found, the exit status is 127. Otherwise, the exit status of the
builtin is the exit status of
<I>command</I>.
<DT><B>compgen</B> [<I>option</I>] [<I>word</I>]<DD>
<DT><B>compgen</B> [<B>-V</B> <I>varname</I>] [<I>option</I>] [<I>word</I>]<DD>
Generate possible completion matches for <I>word</I> according to
the <I>option</I>s, which may be any option accepted by the
<B>complete</B>
builtin with the exception of <B>-p</B> and <B>-r</B>, and write
the matches to the standard output.
builtin with the exceptions of
<B>-p</B>,
<B>-r</B>,
<B>-D</B>,
<B>-E</B>,
and
<B>-I</B>,
and write the matches to the standard output.
If the <B>-V</B> option is supplied, <B>compgen</B> stores the generated
completions into the indexed array variable <I>varname</I> instead of writing
them to the standard output.
When using the <B>-F</B> or <B>-C</B> options, the various shell variables
set by the programmable completion facilities, while available, will not
have useful values.
@@ -10203,10 +10291,13 @@ will be displayed.
<P>
The return value is true unless an invalid option is supplied, or no
matches were generated.
<DT><B>complete</B> [<B>-abcdefgjksuv</B>] [<B>-o</B> <I>comp-option</I>] [<B>-DEI</B>] [<B>-A</B> <I>action</I>] [<B>-G</B> <I>globpat</I>] [<B>-W</B> <I>wordlist</I>]<DD>
<DT><B>complete</B> [<B>-abcdefgjksuv</B>] [<B>-o</B> <I>comp-option</I>] [<B>-DEI</B>] [<B>-A</B> <I>action</I>]<DD>
<BR>
[<B>-F</B> <I>function</I>] [<B>-C</B> <I>command</I>] [<B>-X</B> <I>filterpat</I>] [<B>-P</B> <I>prefix</I>] [<B>-S</B> <I>suffix</I>] <I>name</I> [<I>name ...</I>]
[<B>-G</B> <I>globpat</I>] [<B>-W</B> <I>wordlist</I>] [<B>-F</B> <I>function</I>] [<B>-C</B> <I>command</I>]
<BR>
[<B>-X</B> <I>filterpat</I>] [<B>-P</B> <I>prefix</I>] [<B>-S</B> <I>suffix</I>] <I>name</I> [<I>name ...</I>]
<DT><B>complete</B> <B>-pr</B> [<B>-DEI</B>] [<I>name</I> ...]<DD>
@@ -11671,7 +11762,9 @@ is used within a function, it causes the variable
to have a visible scope restricted to that function and its children.
If <I>name</I> is -, the set of shell options is made local to the function
in which <B>local</B> is invoked: shell options changed using the
<B>set</B> builtin inside the function are restored to their original values
<B>set</B> builtin inside the function
after the call to <B>local</B>
are restored to their original values
when the function returns.
The restore is effected as if a series of <B>set</B> commands were executed
to restore the values that were in place before the function.
@@ -11875,8 +11968,10 @@ plain characters, which are simply copied to standard output, character
escape sequences, which are converted and copied to the standard output, and
format specifications, each of which causes printing of the next successive
<I>argument</I>.
In addition to the standard <I>printf</I>(1) format specifications,
<B>printf</B> interprets the following extensions:
In addition to the standard <I>printf</I>(3) format characters
<B>csndiouxXeEfFgGaA</B>,
<B>printf</B> interprets the following additional format specifiers:
<DL COMPACT><DT><DD>
<DL COMPACT>
@@ -11892,6 +11987,10 @@ in the same way as <B>echo -e</B>.
<DD>
causes <B>printf</B> to output the corresponding
<I>argument</I> in a format that can be reused as shell input.
<B>%q</B> and <B>%Q</B> use the <B>$''</B> quoting style if any characters
in the argument string require it, and backslash quoting otherwise.
If the format string uses the <I>printf</I> alternate form, these two
formats quote the argument string using single quotes.
<DT><B>%Q</B>
<DD>
@@ -11912,12 +12011,21 @@ This is an exception to the usual <B>printf</B> behavior.
</DL>
<P>
The %b, %q, and %T directives all use the field width and precision
The %b, %q, and %T format specifiers all use the field width and precision
arguments from the format specification and write that many bytes from
(or use that wide a field for) the expanded argument, which usually
contains more characters than the original.
<P>
The %n format specifier accepts a corresponding argument that is treated
as a shell variable name.
<P>
The %s and %c format specifiers accept an l (long) modifier, which forces
them to convert the argument string to a wide-character string and apply
any supplied field width and precision in terms of characters, not bytes.
<P>
Arguments to non-string format specifiers are treated as C constants,
except that a leading plus or minus sign is allowed, and if the leading
character is a single or double quote, the value is the ASCII value of
@@ -11928,7 +12036,9 @@ The <I>format</I> is reused as necessary to consume all of the <I>arguments</I>.
If the <I>format</I> requires more <I>arguments</I> than are supplied, the
extra format specifications behave as if a zero value or null string, as
appropriate, had been supplied.
The return value is zero on success, non-zero on failure.
The return value is zero on success,
non-zero if an invalid option is supplied or a write or assignment error
occurs.
</DL>
<DT><B>pushd</B> [<B>-n</B>] [+<I>n</I>] [-<I>n</I>]<DD>
@@ -12676,7 +12786,7 @@ arithmetic <B>for</B> command, display the expanded value of
</FONT>
followed by the command and its expanded arguments
or associated word list.
or associated word list, to standard error.
<DT><B>-B</B>
<DD>
@@ -13681,6 +13791,18 @@ or, if none are supplied, for all trapped signals,
as a set of <B>trap</B> commands
that can be reused as shell input to
restore the current signal dispositions.
The
<B>-P</B>
option behaves similarly, but displays only the actions
associated with each <I>sigspec</I> argument.
<B>-P</B>
requires at least one <I>sigspec</I> argument.
The <B>-P</B> or <B>-p</B> options to <B>trap</B> may be used
in a subshell environment (e.g., command substitution) and, as
long as they are used before <B>trap</B> is used to change a signal's
handling, will display the state of its parent's traps.
<P>
@@ -13835,21 +13957,24 @@ or
if
<I>name</I>
is an alias, shell reserved word, function, builtin, or disk file,
is an alias, shell reserved word, function, builtin, or executable disk file,
respectively.
If the
<I>name</I>
is not found, then nothing is printed, and an exit status of false
is returned.
is not found, then nothing is printed, and <B>type</B> returns a
non-zero exit status.
If the
<B>-p</B>
option is used,
<B>type</B>
either returns the name of the disk file
that would be executed if
either returns the name of the executable file
that would be found by searching
<B>$PATH</B>
if
<I>name</I>
were specified as a command name,
@@ -13889,19 +14014,24 @@ If the
option is used,
<B>type</B>
prints all of the places that contain
an executable named
prints all of the places that contain a command named
<I>name</I>.
This includes aliases and functions,
if and only if the
<B>-p</B>
option is not also used.
The table of hashed commands is not consulted
This includes aliases, reserved words, functions, and builtins,
but the path search options (<B>-p</B> and <B>-P</B>)
can be supplied to restrict the output to executable files.
<B>type</B> does not consult the table of hashed commands
when using
<B>-a</B>.
<B>-a </B>
with
<B>-p</B>,
and only performs a
<FONT SIZE=-1><B>PATH</B>
</FONT>
search for <I>name</I>.
The
<B>-f</B>
@@ -14802,7 +14932,7 @@ There may be only one active coprocess at a time.
<HR>
<TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>GNU Bash 5.2<TH ALIGN=CENTER width=33%>2022 December 2<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>GNU Bash 5.2<TH ALIGN=CENTER width=33%>2023 April 17<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<HR>
@@ -14908,7 +15038,7 @@ There may be only one active coprocess at a time.
<DT><A HREF="#lbDI">BUGS</A><DD>
</DL>
<HR>
This document was created by man2html from /usr/local/src/bash/bash-20221202/doc/bash.1.<BR>
Time: 02 December 2022 17:01:20 EST
This document was created by man2html from /usr/local/src/bash/bash-20230416/doc/bash.1.<BR>
Time: 17 April 2023 14:27:09 EDT
</BODY>
</HTML>
+50 -44
View File
@@ -1,9 +1,9 @@
This is bash.info, produced by makeinfo version 6.8 from bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.2, 15 April 2023).
Bash shell (version 5.2, 17 April 2023).
This is Edition 5.2, last updated 15 April 2023, of 'The GNU Bash
This is Edition 5.2, last updated 17 April 2023, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Copyright (C) 1988-2023 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.2, 15 April 2023). The Bash home page is
Bash shell (version 5.2, 17 April 2023). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.2, last updated 15 April 2023, of 'The GNU Bash
This is Edition 5.2, last updated 17 April 2023, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Bash contains features that appear in other popular shells, and some
@@ -9701,14 +9701,20 @@ command are to be completed, and two to modify the completion as it is
happening.
'compgen'
compgen [OPTION] [WORD]
compgen [-V VARNAME] [OPTION] [WORD]
Generate possible completion matches for WORD according to the
OPTIONs, which may be any option accepted by the 'complete' builtin
with the exception of '-p' and '-r', and write the matches to the
standard output. When using the '-F' or '-C' options, the various
shell variables set by the programmable completion facilities,
while available, will not have useful values.
with the exceptions of '-p', '-r', '-D', '-E', and '-I', and write
the matches to the standard output.
If the '-V' option is supplied, 'compgen' stores the generated
completions into the indexed array variable VARNAME instead of
writing them to the standard output.
When using the '-F' or '-C' options, the various shell variables
set by the programmable completion facilities, while available,
will not have useful values.
The matches will be generated in the same way as if the
programmable completion code had generated them directly from a
@@ -9719,9 +9725,9 @@ happening.
no matches were generated.
'complete'
complete [-abcdefgjksuv] [-o COMP-OPTION] [-DEI] [-A ACTION] [-G GLOBPAT]
[-W WORDLIST] [-F FUNCTION] [-C COMMAND] [-X FILTERPAT]
[-P PREFIX] [-S SUFFIX] NAME [NAME ...]
complete [-abcdefgjksuv] [-o COMP-OPTION] [-DEI] [-A ACTION]
[-G GLOBPAT] [-W WORDLIST] [-F FUNCTION] [-C COMMAND]
[-X FILTERPAT] [-P PREFIX] [-S SUFFIX] NAME [NAME ...]
complete -pr [-DEI] [NAME ...]
Specify how arguments to each NAME should be completed. If the
@@ -9921,10 +9927,10 @@ happening.
not matching FILTERPAT is removed.
The return value is true unless an invalid option is supplied, an
option other than '-p' or '-r' is supplied without a NAME argument,
an attempt is made to remove a completion specification for a NAME
for which no specification exists, or an error occurs adding a
completion specification.
option other than '-p', '-r', '-D', '-E', or '-I' is supplied
without a NAME argument, an attempt is made to remove a completion
specification for a NAME for which no specification exists, or an
error occurs adding a completion specification.
'compopt'
compopt [-o OPTION] [-DEI] [+o OPTION] [NAME]
@@ -11958,9 +11964,9 @@ D.1 Index of Shell Builtin Commands
* compgen: Programmable Completion Builtins.
(line 12)
* complete: Programmable Completion Builtins.
(line 30)
(line 36)
* compopt: Programmable Completion Builtins.
(line 238)
(line 244)
* continue: Bourne Shell Builtins.
(line 90)
* declare: Bash Builtins. (line 154)
@@ -12809,32 +12815,32 @@ Node: Miscellaneous Commands405977
Node: Readline vi Mode412012
Node: Programmable Completion412916
Node: Programmable Completion Builtins420693
Node: A Programmable Completion Example431442
Node: Using History Interactively436687
Node: Bash History Facilities437368
Node: Bash History Builtins440370
Node: History Interaction445391
Node: Event Designators449008
Node: Word Designators450359
Node: Modifiers452116
Node: Installing Bash453921
Node: Basic Installation455055
Node: Compilers and Options458774
Node: Compiling For Multiple Architectures459512
Node: Installation Names461201
Node: Specifying the System Type463307
Node: Sharing Defaults464021
Node: Operation Controls464691
Node: Optional Features465646
Node: Reporting Bugs476862
Node: Major Differences From The Bourne Shell478193
Node: GNU Free Documentation License495039
Node: Indexes520213
Node: Builtin Index520664
Node: Reserved Word Index527488
Node: Variable Index529933
Node: Function Index546918
Node: Concept Index560699
Node: A Programmable Completion Example431678
Node: Using History Interactively436923
Node: Bash History Facilities437604
Node: Bash History Builtins440606
Node: History Interaction445627
Node: Event Designators449244
Node: Word Designators450595
Node: Modifiers452352
Node: Installing Bash454157
Node: Basic Installation455291
Node: Compilers and Options459010
Node: Compiling For Multiple Architectures459748
Node: Installation Names461437
Node: Specifying the System Type463543
Node: Sharing Defaults464257
Node: Operation Controls464927
Node: Optional Features465882
Node: Reporting Bugs477098
Node: Major Differences From The Bourne Shell478429
Node: GNU Free Documentation License495275
Node: Indexes520449
Node: Builtin Index520900
Node: Reserved Word Index527724
Node: Variable Index530169
Node: Function Index547154
Node: Concept Index560935

End Tag Table
BIN
View File
Binary file not shown.
+6802 -6696
View File
File diff suppressed because it is too large Load Diff
+83 -83
View File
@@ -101,19 +101,19 @@
@xrdef{Command Substitution-snt}{Section@tie 3.5.4}
@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{Command Substitution-pg}{34}
@xrdef{Arithmetic Expansion-pg}{34}
@xrdef{Process Substitution-pg}{34}
@xrdef{Process Substitution-title}{Process Substitution}
@xrdef{Process Substitution-snt}{Section@tie 3.5.6}
@xrdef{Word Splitting-title}{Word Splitting}
@xrdef{Word Splitting-snt}{Section@tie 3.5.7}
@xrdef{Filename Expansion-title}{Filename Expansion}
@xrdef{Filename Expansion-snt}{Section@tie 3.5.8}
@xrdef{Process Substitution-pg}{35}
@xrdef{Word Splitting-pg}{35}
@xrdef{Filename Expansion-pg}{35}
@xrdef{Pattern Matching-title}{Pattern Matching}
@xrdef{Pattern Matching-snt}{Section@tie 3.5.8.1}
@xrdef{Filename Expansion-pg}{36}
@xrdef{Pattern Matching-pg}{36}
@xrdef{Quote Removal-title}{Quote Removal}
@xrdef{Quote Removal-snt}{Section@tie 3.5.9}
@@ -135,12 +135,12 @@
@xrdef{Command Execution Environment-pg}{43}
@xrdef{Environment-title}{Environment}
@xrdef{Environment-snt}{Section@tie 3.7.4}
@xrdef{Environment-pg}{44}
@xrdef{Exit Status-title}{Exit Status}
@xrdef{Exit Status-snt}{Section@tie 3.7.5}
@xrdef{Environment-pg}{44}
@xrdef{Exit Status-pg}{44}
@xrdef{Signals-title}{Signals}
@xrdef{Signals-snt}{Section@tie 3.7.6}
@xrdef{Exit Status-pg}{45}
@xrdef{Signals-pg}{45}
@xrdef{Shell Scripts-title}{Shell Scripts}
@xrdef{Shell Scripts-snt}{Section@tie 3.8}
@@ -153,7 +153,7 @@
@xrdef{Bourne Shell Builtins-pg}{48}
@xrdef{Bash Builtins-title}{Bash Builtin Commands}
@xrdef{Bash Builtins-snt}{Section@tie 4.2}
@xrdef{Bash Builtins-pg}{55}
@xrdef{Bash Builtins-pg}{56}
@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}
@@ -165,79 +165,79 @@
@xrdef{The Shopt Builtin-pg}{71}
@xrdef{Special Builtins-title}{Special Builtins}
@xrdef{Special Builtins-snt}{Section@tie 4.4}
@xrdef{Special Builtins-pg}{77}
@xrdef{Special Builtins-pg}{78}
@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}{78}
@xrdef{Bourne Shell Variables-pg}{78}
@xrdef{Bash Variables-pg}{78}
@xrdef{Shell Variables-pg}{79}
@xrdef{Bourne Shell Variables-pg}{79}
@xrdef{Bash Variables-pg}{79}
@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}{91}
@xrdef{Invoking Bash-pg}{91}
@xrdef{Bash Features-pg}{92}
@xrdef{Invoking Bash-pg}{92}
@xrdef{Bash Startup Files-title}{Bash Startup Files}
@xrdef{Bash Startup Files-snt}{Section@tie 6.2}
@xrdef{Bash Startup Files-pg}{93}
@xrdef{Bash Startup Files-pg}{94}
@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?}
@xrdef{What is an Interactive Shell?-snt}{Section@tie 6.3.1}
@xrdef{Interactive Shells-pg}{94}
@xrdef{Interactive Shells-pg}{95}
@xrdef{Is this Shell Interactive?-title}{Is this Shell Interactive?}
@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{What is an Interactive Shell?-pg}{95}
@xrdef{Is this Shell Interactive?-pg}{95}
@xrdef{Interactive Shell Behavior-pg}{95}
@xrdef{What is an Interactive Shell?-pg}{96}
@xrdef{Is this Shell Interactive?-pg}{96}
@xrdef{Interactive Shell Behavior-pg}{96}
@xrdef{Bash Conditional Expressions-title}{Bash Conditional Expressions}
@xrdef{Bash Conditional Expressions-snt}{Section@tie 6.4}
@xrdef{Bash Conditional Expressions-pg}{96}
@xrdef{Bash Conditional Expressions-pg}{97}
@xrdef{Shell Arithmetic-title}{Shell Arithmetic}
@xrdef{Shell Arithmetic-snt}{Section@tie 6.5}
@xrdef{Shell Arithmetic-pg}{98}
@xrdef{Shell Arithmetic-pg}{99}
@xrdef{Aliases-title}{Aliases}
@xrdef{Aliases-snt}{Section@tie 6.6}
@xrdef{Arrays-title}{Arrays}
@xrdef{Arrays-snt}{Section@tie 6.7}
@xrdef{Aliases-pg}{100}
@xrdef{Arrays-pg}{100}
@xrdef{Aliases-pg}{101}
@xrdef{Arrays-pg}{101}
@xrdef{The Directory Stack-title}{The Directory Stack}
@xrdef{The Directory Stack-snt}{Section@tie 6.8}
@xrdef{The Directory Stack-pg}{103}
@xrdef{Directory Stack Builtins-title}{Directory Stack Builtins}
@xrdef{Directory Stack Builtins-snt}{Section@tie 6.8.1}
@xrdef{The Directory Stack-pg}{102}
@xrdef{Directory Stack Builtins-pg}{102}
@xrdef{Directory Stack Builtins-pg}{104}
@xrdef{Controlling the Prompt-title}{Controlling the Prompt}
@xrdef{Controlling the Prompt-snt}{Section@tie 6.9}
@xrdef{Controlling the Prompt-pg}{104}
@xrdef{Controlling the Prompt-pg}{105}
@xrdef{The Restricted Shell-title}{The Restricted Shell}
@xrdef{The Restricted Shell-snt}{Section@tie 6.10}
@xrdef{The Restricted Shell-pg}{105}
@xrdef{Bash POSIX Mode-title}{Bash POSIX Mode}
@xrdef{Bash POSIX Mode-title}{Bash and POSIX}
@xrdef{Bash POSIX Mode-snt}{Section@tie 6.11}
@xrdef{Bash POSIX Mode-pg}{106}
@xrdef{The Restricted Shell-pg}{107}
@xrdef{Bash POSIX Mode-pg}{107}
@xrdef{Shell Compatibility Mode-title}{Shell Compatibility Mode}
@xrdef{Shell Compatibility Mode-snt}{Section@tie 6.12}
@xrdef{Shell Compatibility Mode-pg}{110}
@xrdef{Shell Compatibility Mode-pg}{112}
@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}{113}
@xrdef{Job Control Basics-pg}{113}
@xrdef{Job Control-pg}{116}
@xrdef{Job Control Basics-pg}{116}
@xrdef{Job Control Builtins-title}{Job Control Builtins}
@xrdef{Job Control Builtins-snt}{Section@tie 7.2}
@xrdef{Job Control Builtins-pg}{114}
@xrdef{Job Control Builtins-pg}{117}
@xrdef{Job Control Variables-title}{Job Control Variables}
@xrdef{Job Control Variables-snt}{Section@tie 7.3}
@xrdef{Job Control Variables-pg}{116}
@xrdef{Job Control Variables-pg}{119}
@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}
@@ -246,145 +246,145 @@
@xrdef{Readline Interaction-snt}{Section@tie 8.2}
@xrdef{Readline Bare Essentials-title}{Readline Bare Essentials}
@xrdef{Readline Bare Essentials-snt}{Section@tie 8.2.1}
@xrdef{Command Line Editing-pg}{117}
@xrdef{Introduction and Notation-pg}{117}
@xrdef{Readline Interaction-pg}{117}
@xrdef{Command Line Editing-pg}{120}
@xrdef{Introduction and Notation-pg}{120}
@xrdef{Readline Interaction-pg}{120}
@xrdef{Readline Movement Commands-title}{Readline Movement Commands}
@xrdef{Readline Movement Commands-snt}{Section@tie 8.2.2}
@xrdef{Readline Killing Commands-title}{Readline Killing Commands}
@xrdef{Readline Killing Commands-snt}{Section@tie 8.2.3}
@xrdef{Readline Bare Essentials-pg}{118}
@xrdef{Readline Movement Commands-pg}{118}
@xrdef{Readline Bare Essentials-pg}{121}
@xrdef{Readline Movement Commands-pg}{121}
@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}{119}
@xrdef{Readline Arguments-pg}{119}
@xrdef{Searching-pg}{119}
@xrdef{Readline Killing Commands-pg}{122}
@xrdef{Readline Arguments-pg}{122}
@xrdef{Searching-pg}{122}
@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{Readline Init File-pg}{120}
@xrdef{Readline Init File Syntax-pg}{120}
@xrdef{Readline Init File-pg}{123}
@xrdef{Readline Init File Syntax-pg}{123}
@xrdef{Conditional Init Constructs-title}{Conditional Init Constructs}
@xrdef{Conditional Init Constructs-snt}{Section@tie 8.3.2}
@xrdef{Conditional Init Constructs-pg}{129}
@xrdef{Conditional Init Constructs-pg}{132}
@xrdef{Sample Init File-title}{Sample Init File}
@xrdef{Sample Init File-snt}{Section@tie 8.3.3}
@xrdef{Sample Init File-pg}{130}
@xrdef{Sample Init File-pg}{133}
@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}{133}
@xrdef{Commands For Moving-pg}{133}
@xrdef{Bindable Readline Commands-pg}{136}
@xrdef{Commands For Moving-pg}{136}
@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}{134}
@xrdef{Commands For History-pg}{137}
@xrdef{Commands For Text-title}{Commands For Changing Text}
@xrdef{Commands For Text-snt}{Section@tie 8.4.3}
@xrdef{Commands For Text-pg}{136}
@xrdef{Commands For Text-pg}{139}
@xrdef{Commands For Killing-title}{Killing And Yanking}
@xrdef{Commands For Killing-snt}{Section@tie 8.4.4}
@xrdef{Commands For Killing-pg}{137}
@xrdef{Commands For Killing-pg}{140}
@xrdef{Numeric Arguments-title}{Specifying Numeric Arguments}
@xrdef{Numeric Arguments-snt}{Section@tie 8.4.5}
@xrdef{Numeric Arguments-pg}{138}
@xrdef{Numeric Arguments-pg}{141}
@xrdef{Commands For Completion-title}{Letting Readline Type For You}
@xrdef{Commands For Completion-snt}{Section@tie 8.4.6}
@xrdef{Commands For Completion-pg}{139}
@xrdef{Commands For Completion-pg}{142}
@xrdef{Keyboard Macros-title}{Keyboard Macros}
@xrdef{Keyboard Macros-snt}{Section@tie 8.4.7}
@xrdef{Keyboard Macros-pg}{140}
@xrdef{Keyboard Macros-pg}{143}
@xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands}
@xrdef{Miscellaneous Commands-snt}{Section@tie 8.4.8}
@xrdef{Miscellaneous Commands-pg}{141}
@xrdef{Miscellaneous Commands-pg}{144}
@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}{143}
@xrdef{Programmable Completion-pg}{143}
@xrdef{Readline vi Mode-pg}{146}
@xrdef{Programmable Completion-pg}{146}
@xrdef{Programmable Completion Builtins-title}{Programmable Completion Builtins}
@xrdef{Programmable Completion Builtins-snt}{Section@tie 8.7}
@xrdef{Programmable Completion Builtins-pg}{146}
@xrdef{Programmable Completion Builtins-pg}{149}
@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}{150}
@xrdef{A Programmable Completion Example-pg}{153}
@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{Bash History Builtins-title}{Bash History Builtins}
@xrdef{Bash History Builtins-snt}{Section@tie 9.2}
@xrdef{Using History Interactively-pg}{152}
@xrdef{Bash History Facilities-pg}{152}
@xrdef{Bash History Builtins-pg}{152}
@xrdef{Using History Interactively-pg}{155}
@xrdef{Bash History Facilities-pg}{155}
@xrdef{Bash History Builtins-pg}{155}
@xrdef{History Interaction-title}{History Expansion}
@xrdef{History Interaction-snt}{Section@tie 9.3}
@xrdef{History Interaction-pg}{154}
@xrdef{History Interaction-pg}{157}
@xrdef{Event Designators-title}{Event Designators}
@xrdef{Event Designators-snt}{Section@tie 9.3.1}
@xrdef{Event Designators-pg}{155}
@xrdef{Event Designators-pg}{158}
@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}{156}
@xrdef{Modifiers-pg}{156}
@xrdef{Word Designators-pg}{159}
@xrdef{Modifiers-pg}{159}
@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}{158}
@xrdef{Basic Installation-pg}{158}
@xrdef{Installing Bash-pg}{161}
@xrdef{Basic Installation-pg}{161}
@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}{159}
@xrdef{Compiling For Multiple Architectures-pg}{159}
@xrdef{Compilers and Options-pg}{162}
@xrdef{Compiling For Multiple Architectures-pg}{162}
@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}{160}
@xrdef{Specifying the System Type-pg}{160}
@xrdef{Sharing Defaults-pg}{160}
@xrdef{Installation Names-pg}{163}
@xrdef{Specifying the System Type-pg}{163}
@xrdef{Sharing Defaults-pg}{163}
@xrdef{Optional Features-title}{Optional Features}
@xrdef{Optional Features-snt}{Section@tie 10.8}
@xrdef{Operation Controls-pg}{161}
@xrdef{Optional Features-pg}{161}
@xrdef{Operation Controls-pg}{164}
@xrdef{Optional Features-pg}{164}
@xrdef{Reporting Bugs-title}{Reporting Bugs}
@xrdef{Reporting Bugs-snt}{Appendix@tie @char65{}}
@xrdef{Reporting Bugs-pg}{167}
@xrdef{Reporting Bugs-pg}{170}
@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}{168}
@xrdef{Major Differences From The Bourne Shell-pg}{171}
@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}{174}
@xrdef{GNU Free Documentation License-pg}{177}
@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}{182}
@xrdef{Builtin Index-pg}{182}
@xrdef{Indexes-pg}{185}
@xrdef{Builtin Index-pg}{185}
@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}{183}
@xrdef{Variable Index-pg}{184}
@xrdef{Reserved Word Index-pg}{186}
@xrdef{Variable Index-pg}{187}
@xrdef{Function Index-title}{Function Index}
@xrdef{Function Index-snt}{Section@tie @char68.4}
@xrdef{Function Index-pg}{186}
@xrdef{Function Index-pg}{189}
@xrdef{Concept Index-title}{Concept Index}
@xrdef{Concept Index-snt}{Section@tie @char68.5}
@xrdef{Concept Index-pg}{188}
@xrdef{Concept Index-pg}{191}
+19 -19
View File
@@ -31,29 +31,29 @@
\entry{let}{61}{\code {let}}
\entry{local}{61}{\code {local}}
\entry{logout}{61}{\code {logout}}
\entry{mapfile}{61}{\code {mapfile}}
\entry{mapfile}{62}{\code {mapfile}}
\entry{printf}{62}{\code {printf}}
\entry{read}{63}{\code {read}}
\entry{readarray}{64}{\code {readarray}}
\entry{readarray}{65}{\code {readarray}}
\entry{source}{65}{\code {source}}
\entry{type}{65}{\code {type}}
\entry{typeset}{65}{\code {typeset}}
\entry{ulimit}{65}{\code {ulimit}}
\entry{typeset}{66}{\code {typeset}}
\entry{ulimit}{66}{\code {ulimit}}
\entry{unalias}{67}{\code {unalias}}
\entry{set}{67}{\code {set}}
\entry{shopt}{71}{\code {shopt}}
\entry{dirs}{102}{\code {dirs}}
\entry{popd}{103}{\code {popd}}
\entry{pushd}{103}{\code {pushd}}
\entry{bg}{114}{\code {bg}}
\entry{fg}{114}{\code {fg}}
\entry{jobs}{114}{\code {jobs}}
\entry{kill}{115}{\code {kill}}
\entry{wait}{115}{\code {wait}}
\entry{disown}{116}{\code {disown}}
\entry{suspend}{116}{\code {suspend}}
\entry{compgen}{146}{\code {compgen}}
\entry{complete}{146}{\code {complete}}
\entry{compopt}{149}{\code {compopt}}
\entry{fc}{153}{\code {fc}}
\entry{history}{153}{\code {history}}
\entry{dirs}{104}{\code {dirs}}
\entry{popd}{104}{\code {popd}}
\entry{pushd}{104}{\code {pushd}}
\entry{bg}{117}{\code {bg}}
\entry{fg}{117}{\code {fg}}
\entry{jobs}{117}{\code {jobs}}
\entry{kill}{118}{\code {kill}}
\entry{wait}{118}{\code {wait}}
\entry{disown}{119}{\code {disown}}
\entry{suspend}{119}{\code {suspend}}
\entry{compgen}{149}{\code {compgen}}
\entry{complete}{149}{\code {complete}}
\entry{compopt}{152}{\code {compopt}}
\entry{fc}{156}{\code {fc}}
\entry{history}{156}{\code {history}}
+19 -19
View File
@@ -7,7 +7,7 @@
\initial {A}
\entry{\code {alias}}{56}
\initial {B}
\entry{\code {bg}}{114}
\entry{\code {bg}}{117}
\entry{\code {bind}}{56}
\entry{\code {break}}{49}
\entry{\code {builtin}}{57}
@@ -15,14 +15,14 @@
\entry{\code {caller}}{57}
\entry{\code {cd}}{49}
\entry{\code {command}}{57}
\entry{\code {compgen}}{146}
\entry{\code {complete}}{146}
\entry{\code {compopt}}{149}
\entry{\code {compgen}}{149}
\entry{\code {complete}}{149}
\entry{\code {compopt}}{152}
\entry{\code {continue}}{49}
\initial {D}
\entry{\code {declare}}{58}
\entry{\code {dirs}}{102}
\entry{\code {disown}}{116}
\entry{\code {dirs}}{104}
\entry{\code {disown}}{119}
\initial {E}
\entry{\code {echo}}{59}
\entry{\code {enable}}{60}
@@ -31,32 +31,32 @@
\entry{\code {exit}}{50}
\entry{\code {export}}{50}
\initial {F}
\entry{\code {fc}}{153}
\entry{\code {fg}}{114}
\entry{\code {fc}}{156}
\entry{\code {fg}}{117}
\initial {G}
\entry{\code {getopts}}{50}
\initial {H}
\entry{\code {hash}}{51}
\entry{\code {help}}{61}
\entry{\code {history}}{153}
\entry{\code {history}}{156}
\initial {J}
\entry{\code {jobs}}{114}
\entry{\code {jobs}}{117}
\initial {K}
\entry{\code {kill}}{115}
\entry{\code {kill}}{118}
\initial {L}
\entry{\code {let}}{61}
\entry{\code {local}}{61}
\entry{\code {logout}}{61}
\initial {M}
\entry{\code {mapfile}}{61}
\entry{\code {mapfile}}{62}
\initial {P}
\entry{\code {popd}}{103}
\entry{\code {popd}}{104}
\entry{\code {printf}}{62}
\entry{\code {pushd}}{103}
\entry{\code {pushd}}{104}
\entry{\code {pwd}}{51}
\initial {R}
\entry{\code {read}}{63}
\entry{\code {readarray}}{64}
\entry{\code {readarray}}{65}
\entry{\code {readonly}}{52}
\entry{\code {return}}{52}
\initial {S}
@@ -64,17 +64,17 @@
\entry{\code {shift}}{52}
\entry{\code {shopt}}{71}
\entry{\code {source}}{65}
\entry{\code {suspend}}{116}
\entry{\code {suspend}}{119}
\initial {T}
\entry{\code {test}}{52}
\entry{\code {times}}{54}
\entry{\code {trap}}{54}
\entry{\code {type}}{65}
\entry{\code {typeset}}{65}
\entry{\code {typeset}}{66}
\initial {U}
\entry{\code {ulimit}}{65}
\entry{\code {ulimit}}{66}
\entry{\code {umask}}{55}
\entry{\code {unalias}}{67}
\entry{\code {unset}}{55}
\initial {W}
\entry{\code {wait}}{115}
\entry{\code {wait}}{118}
+58 -52
View File
@@ -57,12 +57,12 @@
\entry{command substitution}{34}{command substitution}
\entry{expansion, arithmetic}{34}{expansion, arithmetic}
\entry{arithmetic expansion}{34}{arithmetic expansion}
\entry{process substitution}{34}{process substitution}
\entry{process substitution}{35}{process substitution}
\entry{word splitting}{35}{word splitting}
\entry{expansion, filename}{35}{expansion, filename}
\entry{expansion, pathname}{35}{expansion, pathname}
\entry{filename expansion}{35}{filename expansion}
\entry{pathname expansion}{35}{pathname expansion}
\entry{expansion, filename}{36}{expansion, filename}
\entry{expansion, pathname}{36}{expansion, pathname}
\entry{filename expansion}{36}{filename expansion}
\entry{pathname expansion}{36}{pathname expansion}
\entry{pattern matching}{36}{pattern matching}
\entry{matching, pattern}{36}{matching, pattern}
\entry{redirection}{38}{redirection}
@@ -71,53 +71,59 @@
\entry{command search}{42}{command search}
\entry{execution environment}{43}{execution environment}
\entry{environment}{44}{environment}
\entry{exit status}{44}{exit status}
\entry{exit status}{45}{exit status}
\entry{signal handling}{45}{signal handling}
\entry{shell script}{46}{shell script}
\entry{special builtin}{77}{special builtin}
\entry{login shell}{93}{login shell}
\entry{interactive shell}{93}{interactive shell}
\entry{startup files}{93}{startup files}
\entry{special builtin}{78}{special builtin}
\entry{login shell}{94}{login shell}
\entry{interactive shell}{94}{interactive shell}
\entry{shell, interactive}{94}{shell, interactive}
\entry{expressions, conditional}{96}{expressions, conditional}
\entry{arithmetic, shell}{98}{arithmetic, shell}
\entry{shell arithmetic}{98}{shell arithmetic}
\entry{expressions, arithmetic}{98}{expressions, arithmetic}
\entry{evaluation, arithmetic}{98}{evaluation, arithmetic}
\entry{arithmetic evaluation}{98}{arithmetic evaluation}
\entry{alias expansion}{100}{alias expansion}
\entry{arrays}{100}{arrays}
\entry{directory stack}{102}{directory stack}
\entry{prompting}{104}{prompting}
\entry{restricted shell}{105}{restricted shell}
\entry{POSIX Mode}{106}{POSIX Mode}
\entry{Compatibility Level}{110}{Compatibility Level}
\entry{Compatibility Mode}{110}{Compatibility Mode}
\entry{job control}{113}{job control}
\entry{foreground}{113}{foreground}
\entry{background}{113}{background}
\entry{suspending jobs}{113}{suspending jobs}
\entry{Readline, how to use}{116}{Readline, how to use}
\entry{interaction, readline}{117}{interaction, readline}
\entry{notation, readline}{118}{notation, readline}
\entry{command editing}{118}{command editing}
\entry{editing command lines}{118}{editing command lines}
\entry{killing text}{119}{killing text}
\entry{yanking text}{119}{yanking text}
\entry{kill ring}{119}{kill ring}
\entry{initialization file, readline}{120}{initialization file, readline}
\entry{variables, readline}{121}{variables, readline}
\entry{programmable completion}{143}{programmable completion}
\entry{completion builtins}{146}{completion builtins}
\entry{History, how to use}{151}{History, how to use}
\entry{command history}{152}{command history}
\entry{history list}{152}{history list}
\entry{history builtins}{152}{history builtins}
\entry{history expansion}{154}{history expansion}
\entry{event designators}{155}{event designators}
\entry{history events}{155}{history events}
\entry{installation}{158}{installation}
\entry{configuration}{158}{configuration}
\entry{Bash installation}{158}{Bash installation}
\entry{Bash configuration}{158}{Bash configuration}
\entry{startup files}{94}{startup files}
\entry{interactive shell}{95}{interactive shell}
\entry{shell, interactive}{95}{shell, interactive}
\entry{expressions, conditional}{97}{expressions, conditional}
\entry{arithmetic, shell}{99}{arithmetic, shell}
\entry{shell arithmetic}{99}{shell arithmetic}
\entry{expressions, arithmetic}{99}{expressions, arithmetic}
\entry{evaluation, arithmetic}{99}{evaluation, arithmetic}
\entry{arithmetic evaluation}{99}{arithmetic evaluation}
\entry{arithmetic operators}{99}{arithmetic operators}
\entry{unary arithmetic operators}{99}{unary arithmetic operators}
\entry{binary arithmetic operators}{99}{binary arithmetic operators}
\entry{conditional arithmetic operator}{99}{conditional arithmetic operator}
\entry{bitwise arithmetic operators}{99}{bitwise arithmetic operators}
\entry{alias expansion}{101}{alias expansion}
\entry{arrays}{101}{arrays}
\entry{directory stack}{103}{directory stack}
\entry{prompting}{105}{prompting}
\entry{restricted shell}{107}{restricted shell}
\entry{POSIX description}{107}{POSIX description}
\entry{POSIX Mode}{108}{POSIX Mode}
\entry{Compatibility Level}{112}{Compatibility Level}
\entry{Compatibility Mode}{112}{Compatibility Mode}
\entry{job control}{116}{job control}
\entry{foreground}{116}{foreground}
\entry{background}{116}{background}
\entry{suspending jobs}{116}{suspending jobs}
\entry{Readline, how to use}{119}{Readline, how to use}
\entry{interaction, readline}{120}{interaction, readline}
\entry{notation, readline}{121}{notation, readline}
\entry{command editing}{121}{command editing}
\entry{editing command lines}{121}{editing command lines}
\entry{killing text}{122}{killing text}
\entry{yanking text}{122}{yanking text}
\entry{kill ring}{122}{kill ring}
\entry{initialization file, readline}{123}{initialization file, readline}
\entry{variables, readline}{124}{variables, readline}
\entry{programmable completion}{146}{programmable completion}
\entry{completion builtins}{149}{completion builtins}
\entry{History, how to use}{154}{History, how to use}
\entry{command history}{155}{command history}
\entry{history list}{155}{history list}
\entry{history builtins}{155}{history builtins}
\entry{history expansion}{157}{history expansion}
\entry{event designators}{158}{event designators}
\entry{history events}{158}{history events}
\entry{installation}{161}{installation}
\entry{configuration}{161}{configuration}
\entry{Bash installation}{161}{Bash installation}
\entry{Bash configuration}{161}{Bash configuration}
+59 -52
View File
@@ -1,21 +1,24 @@
\initial {A}
\entry{alias expansion}{100}
\entry{arithmetic evaluation}{98}
\entry{alias expansion}{101}
\entry{arithmetic evaluation}{99}
\entry{arithmetic expansion}{34}
\entry{arithmetic, shell}{98}
\entry{arrays}{100}
\entry{arithmetic operators}{99}
\entry{arithmetic, shell}{99}
\entry{arrays}{101}
\initial {B}
\entry{background}{113}
\entry{Bash configuration}{158}
\entry{Bash installation}{158}
\entry{background}{116}
\entry{Bash configuration}{161}
\entry{Bash installation}{161}
\entry{binary arithmetic operators}{99}
\entry{bitwise arithmetic operators}{99}
\entry{Bourne shell}{5}
\entry{brace expansion}{24}
\entry{builtin}{3}
\initial {C}
\entry{command editing}{118}
\entry{command editing}{121}
\entry{command execution}{42}
\entry{command expansion}{42}
\entry{command history}{152}
\entry{command history}{155}
\entry{command search}{42}
\entry{command substitution}{34}
\entry{command timing}{10}
@@ -28,66 +31,67 @@
\entry{commands, shell}{9}
\entry{commands, simple}{9}
\entry{comments, shell}{9}
\entry{Compatibility Level}{110}
\entry{Compatibility Mode}{110}
\entry{completion builtins}{146}
\entry{configuration}{158}
\entry{Compatibility Level}{112}
\entry{Compatibility Mode}{112}
\entry{completion builtins}{149}
\entry{conditional arithmetic operator}{99}
\entry{configuration}{161}
\entry{control operator}{3}
\entry{coprocess}{18}
\initial {D}
\entry{directory stack}{102}
\entry{directory stack}{103}
\initial {E}
\entry{editing command lines}{118}
\entry{editing command lines}{121}
\entry{environment}{44}
\entry{evaluation, arithmetic}{98}
\entry{event designators}{155}
\entry{evaluation, arithmetic}{99}
\entry{event designators}{158}
\entry{execution environment}{43}
\entry{exit status}{3, 44}
\entry{exit status}{3, 45}
\entry{expansion}{24}
\entry{expansion, arithmetic}{34}
\entry{expansion, brace}{24}
\entry{expansion, filename}{35}
\entry{expansion, filename}{36}
\entry{expansion, parameter}{26}
\entry{expansion, pathname}{35}
\entry{expansion, pathname}{36}
\entry{expansion, tilde}{25}
\entry{expressions, arithmetic}{98}
\entry{expressions, conditional}{96}
\entry{expressions, arithmetic}{99}
\entry{expressions, conditional}{97}
\initial {F}
\entry{field}{3}
\entry{filename}{3}
\entry{filename expansion}{35}
\entry{foreground}{113}
\entry{filename expansion}{36}
\entry{foreground}{116}
\entry{functions, shell}{19}
\initial {H}
\entry{history builtins}{152}
\entry{history events}{155}
\entry{history expansion}{154}
\entry{history list}{152}
\entry{History, how to use}{151}
\entry{history builtins}{155}
\entry{history events}{158}
\entry{history expansion}{157}
\entry{history list}{155}
\entry{History, how to use}{154}
\initial {I}
\entry{identifier}{3}
\entry{initialization file, readline}{120}
\entry{installation}{158}
\entry{interaction, readline}{117}
\entry{interactive shell}{93, 94}
\entry{initialization file, readline}{123}
\entry{installation}{161}
\entry{interaction, readline}{120}
\entry{interactive shell}{94, 95}
\entry{internationalization}{7}
\entry{internationalized scripts}{7}
\initial {J}
\entry{job}{3}
\entry{job control}{3, 113}
\entry{job control}{3, 116}
\initial {K}
\entry{kill ring}{119}
\entry{killing text}{119}
\entry{kill ring}{122}
\entry{killing text}{122}
\initial {L}
\entry{localization}{7}
\entry{login shell}{93}
\entry{login shell}{94}
\initial {M}
\entry{matching, pattern}{36}
\entry{metacharacter}{3}
\initial {N}
\entry{name}{3}
\entry{native languages}{7}
\entry{notation, readline}{118}
\entry{notation, readline}{121}
\initial {O}
\entry{operator, shell}{3}
\initial {P}
@@ -95,47 +99,50 @@
\entry{parameters}{21}
\entry{parameters, positional}{23}
\entry{parameters, special}{23}
\entry{pathname expansion}{35}
\entry{pathname expansion}{36}
\entry{pattern matching}{36}
\entry{pipeline}{10}
\entry{POSIX}{3}
\entry{POSIX Mode}{106}
\entry{POSIX description}{107}
\entry{POSIX Mode}{108}
\entry{process group}{3}
\entry{process group ID}{3}
\entry{process substitution}{34}
\entry{programmable completion}{143}
\entry{prompting}{104}
\entry{process substitution}{35}
\entry{programmable completion}{146}
\entry{prompting}{105}
\initial {Q}
\entry{quoting}{6}
\entry{quoting, ANSI}{6}
\initial {R}
\entry{Readline, how to use}{116}
\entry{Readline, how to use}{119}
\entry{redirection}{38}
\entry{reserved word}{3}
\entry{reserved words}{9}
\entry{restricted shell}{105}
\entry{restricted shell}{107}
\entry{return status}{4}
\initial {S}
\entry{shell arithmetic}{98}
\entry{shell arithmetic}{99}
\entry{shell function}{19}
\entry{shell script}{46}
\entry{shell variable}{21}
\entry{shell, interactive}{94}
\entry{shell, interactive}{95}
\entry{signal}{4}
\entry{signal handling}{45}
\entry{special builtin}{4, 77}
\entry{startup files}{93}
\entry{special builtin}{4, 78}
\entry{startup files}{94}
\entry{string translations}{7}
\entry{suspending jobs}{113}
\entry{suspending jobs}{116}
\initial {T}
\entry{tilde expansion}{25}
\entry{token}{4}
\entry{translation, native languages}{7}
\initial {U}
\entry{unary arithmetic operators}{99}
\initial {V}
\entry{variable, shell}{21}
\entry{variables, readline}{121}
\entry{variables, readline}{124}
\initial {W}
\entry{word}{4}
\entry{word splitting}{35}
\initial {Y}
\entry{yanking text}{119}
\entry{yanking text}{122}
+114 -114
View File
@@ -1,114 +1,114 @@
\entry{beginning-of-line (C-a)}{133}{\code {beginning-of-line (C-a)}}
\entry{end-of-line (C-e)}{133}{\code {end-of-line (C-e)}}
\entry{forward-char (C-f)}{133}{\code {forward-char (C-f)}}
\entry{backward-char (C-b)}{133}{\code {backward-char (C-b)}}
\entry{forward-word (M-f)}{133}{\code {forward-word (M-f)}}
\entry{backward-word (M-b)}{133}{\code {backward-word (M-b)}}
\entry{shell-forward-word (M-C-f)}{133}{\code {shell-forward-word (M-C-f)}}
\entry{shell-backward-word (M-C-b)}{133}{\code {shell-backward-word (M-C-b)}}
\entry{previous-screen-line ()}{133}{\code {previous-screen-line ()}}
\entry{next-screen-line ()}{134}{\code {next-screen-line ()}}
\entry{clear-display (M-C-l)}{134}{\code {clear-display (M-C-l)}}
\entry{clear-screen (C-l)}{134}{\code {clear-screen (C-l)}}
\entry{redraw-current-line ()}{134}{\code {redraw-current-line ()}}
\entry{accept-line (Newline or Return)}{134}{\code {accept-line (Newline or Return)}}
\entry{previous-history (C-p)}{134}{\code {previous-history (C-p)}}
\entry{next-history (C-n)}{134}{\code {next-history (C-n)}}
\entry{beginning-of-history (M-<)}{134}{\code {beginning-of-history (M-<)}}
\entry{end-of-history (M->)}{134}{\code {end-of-history (M->)}}
\entry{reverse-search-history (C-r)}{134}{\code {reverse-search-history (C-r)}}
\entry{forward-search-history (C-s)}{134}{\code {forward-search-history (C-s)}}
\entry{non-incremental-reverse-search-history (M-p)}{134}{\code {non-incremental-reverse-search-history (M-p)}}
\entry{non-incremental-forward-search-history (M-n)}{135}{\code {non-incremental-forward-search-history (M-n)}}
\entry{history-search-forward ()}{135}{\code {history-search-forward ()}}
\entry{history-search-backward ()}{135}{\code {history-search-backward ()}}
\entry{history-substring-search-forward ()}{135}{\code {history-substring-search-forward ()}}
\entry{history-substring-search-backward ()}{135}{\code {history-substring-search-backward ()}}
\entry{yank-nth-arg (M-C-y)}{135}{\code {yank-nth-arg (M-C-y)}}
\entry{yank-last-arg (M-. or M-_)}{135}{\code {yank-last-arg (M-. or M-_)}}
\entry{operate-and-get-next (C-o)}{135}{\code {operate-and-get-next (C-o)}}
\entry{fetch-history ()}{136}{\code {fetch-history ()}}
\entry{end-of-file (usually C-d)}{136}{\code {\i {end-of-file} (usually C-d)}}
\entry{delete-char (C-d)}{136}{\code {delete-char (C-d)}}
\entry{backward-delete-char (Rubout)}{136}{\code {backward-delete-char (Rubout)}}
\entry{forward-backward-delete-char ()}{136}{\code {forward-backward-delete-char ()}}
\entry{quoted-insert (C-q or C-v)}{136}{\code {quoted-insert (C-q or C-v)}}
\entry{self-insert (a, b, A, 1, !, ...{})}{136}{\code {self-insert (a, b, A, 1, !, \dots {})}}
\entry{bracketed-paste-begin ()}{136}{\code {bracketed-paste-begin ()}}
\entry{transpose-chars (C-t)}{136}{\code {transpose-chars (C-t)}}
\entry{transpose-words (M-t)}{137}{\code {transpose-words (M-t)}}
\entry{upcase-word (M-u)}{137}{\code {upcase-word (M-u)}}
\entry{downcase-word (M-l)}{137}{\code {downcase-word (M-l)}}
\entry{capitalize-word (M-c)}{137}{\code {capitalize-word (M-c)}}
\entry{overwrite-mode ()}{137}{\code {overwrite-mode ()}}
\entry{kill-line (C-k)}{137}{\code {kill-line (C-k)}}
\entry{backward-kill-line (C-x Rubout)}{137}{\code {backward-kill-line (C-x Rubout)}}
\entry{unix-line-discard (C-u)}{137}{\code {unix-line-discard (C-u)}}
\entry{kill-whole-line ()}{137}{\code {kill-whole-line ()}}
\entry{kill-word (M-d)}{137}{\code {kill-word (M-d)}}
\entry{backward-kill-word (M-DEL)}{137}{\code {backward-kill-word (M-\key {DEL})}}
\entry{shell-kill-word (M-C-d)}{138}{\code {shell-kill-word (M-C-d)}}
\entry{shell-backward-kill-word ()}{138}{\code {shell-backward-kill-word ()}}
\entry{shell-transpose-words (M-C-t)}{138}{\code {shell-transpose-words (M-C-t)}}
\entry{unix-word-rubout (C-w)}{138}{\code {unix-word-rubout (C-w)}}
\entry{unix-filename-rubout ()}{138}{\code {unix-filename-rubout ()}}
\entry{delete-horizontal-space ()}{138}{\code {delete-horizontal-space ()}}
\entry{kill-region ()}{138}{\code {kill-region ()}}
\entry{copy-region-as-kill ()}{138}{\code {copy-region-as-kill ()}}
\entry{copy-backward-word ()}{138}{\code {copy-backward-word ()}}
\entry{copy-forward-word ()}{138}{\code {copy-forward-word ()}}
\entry{yank (C-y)}{138}{\code {yank (C-y)}}
\entry{yank-pop (M-y)}{138}{\code {yank-pop (M-y)}}
\entry{digit-argument (M-0, M-1, ...{} M--)}{138}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
\entry{universal-argument ()}{139}{\code {universal-argument ()}}
\entry{complete (TAB)}{139}{\code {complete (\key {TAB})}}
\entry{possible-completions (M-?)}{139}{\code {possible-completions (M-?)}}
\entry{insert-completions (M-*)}{139}{\code {insert-completions (M-*)}}
\entry{menu-complete ()}{139}{\code {menu-complete ()}}
\entry{menu-complete-backward ()}{139}{\code {menu-complete-backward ()}}
\entry{delete-char-or-list ()}{139}{\code {delete-char-or-list ()}}
\entry{complete-filename (M-/)}{139}{\code {complete-filename (M-/)}}
\entry{possible-filename-completions (C-x /)}{140}{\code {possible-filename-completions (C-x /)}}
\entry{complete-username (M-~)}{140}{\code {complete-username (M-~)}}
\entry{possible-username-completions (C-x ~)}{140}{\code {possible-username-completions (C-x ~)}}
\entry{complete-variable (M-$)}{140}{\code {complete-variable (M-$)}}
\entry{possible-variable-completions (C-x $)}{140}{\code {possible-variable-completions (C-x $)}}
\entry{complete-hostname (M-@)}{140}{\code {complete-hostname (M-@)}}
\entry{possible-hostname-completions (C-x @)}{140}{\code {possible-hostname-completions (C-x @)}}
\entry{complete-command (M-!)}{140}{\code {complete-command (M-!)}}
\entry{possible-command-completions (C-x !)}{140}{\code {possible-command-completions (C-x !)}}
\entry{dynamic-complete-history (M-TAB)}{140}{\code {dynamic-complete-history (M-\key {TAB})}}
\entry{dabbrev-expand ()}{140}{\code {dabbrev-expand ()}}
\entry{complete-into-braces (M-{\indexlbrace })}{140}{\code {complete-into-braces (M-{\tt \char 123})}}
\entry{start-kbd-macro (C-x ()}{140}{\code {start-kbd-macro (C-x ()}}
\entry{end-kbd-macro (C-x ))}{140}{\code {end-kbd-macro (C-x ))}}
\entry{call-last-kbd-macro (C-x e)}{141}{\code {call-last-kbd-macro (C-x e)}}
\entry{print-last-kbd-macro ()}{141}{\code {print-last-kbd-macro ()}}
\entry{re-read-init-file (C-x C-r)}{141}{\code {re-read-init-file (C-x C-r)}}
\entry{abort (C-g)}{141}{\code {abort (C-g)}}
\entry{do-lowercase-version (M-A, M-B, M-x, ...{})}{141}{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}
\entry{prefix-meta (ESC)}{141}{\code {prefix-meta (\key {ESC})}}
\entry{undo (C-_ or C-x C-u)}{141}{\code {undo (C-_ or C-x C-u)}}
\entry{revert-line (M-r)}{141}{\code {revert-line (M-r)}}
\entry{tilde-expand (M-&)}{141}{\code {tilde-expand (M-&)}}
\entry{set-mark (C-@)}{141}{\code {set-mark (C-@)}}
\entry{exchange-point-and-mark (C-x C-x)}{141}{\code {exchange-point-and-mark (C-x C-x)}}
\entry{character-search (C-])}{141}{\code {character-search (C-])}}
\entry{character-search-backward (M-C-])}{141}{\code {character-search-backward (M-C-])}}
\entry{skip-csi-sequence ()}{141}{\code {skip-csi-sequence ()}}
\entry{insert-comment (M-#)}{142}{\code {insert-comment (M-#)}}
\entry{dump-functions ()}{142}{\code {dump-functions ()}}
\entry{dump-variables ()}{142}{\code {dump-variables ()}}
\entry{dump-macros ()}{142}{\code {dump-macros ()}}
\entry{spell-correct-word (C-x s)}{142}{\code {spell-correct-word (C-x s)}}
\entry{glob-complete-word (M-g)}{142}{\code {glob-complete-word (M-g)}}
\entry{glob-expand-word (C-x *)}{142}{\code {glob-expand-word (C-x *)}}
\entry{glob-list-expansions (C-x g)}{142}{\code {glob-list-expansions (C-x g)}}
\entry{display-shell-version (C-x C-v)}{143}{\code {display-shell-version (C-x C-v)}}
\entry{shell-expand-line (M-C-e)}{143}{\code {shell-expand-line (M-C-e)}}
\entry{history-expand-line (M-^)}{143}{\code {history-expand-line (M-^)}}
\entry{magic-space ()}{143}{\code {magic-space ()}}
\entry{alias-expand-line ()}{143}{\code {alias-expand-line ()}}
\entry{history-and-alias-expand-line ()}{143}{\code {history-and-alias-expand-line ()}}
\entry{insert-last-argument (M-. or M-_)}{143}{\code {insert-last-argument (M-. or M-_)}}
\entry{edit-and-execute-command (C-x C-e)}{143}{\code {edit-and-execute-command (C-x C-e)}}
\entry{beginning-of-line (C-a)}{136}{\code {beginning-of-line (C-a)}}
\entry{end-of-line (C-e)}{136}{\code {end-of-line (C-e)}}
\entry{forward-char (C-f)}{136}{\code {forward-char (C-f)}}
\entry{backward-char (C-b)}{136}{\code {backward-char (C-b)}}
\entry{forward-word (M-f)}{136}{\code {forward-word (M-f)}}
\entry{backward-word (M-b)}{136}{\code {backward-word (M-b)}}
\entry{shell-forward-word (M-C-f)}{136}{\code {shell-forward-word (M-C-f)}}
\entry{shell-backward-word (M-C-b)}{136}{\code {shell-backward-word (M-C-b)}}
\entry{previous-screen-line ()}{136}{\code {previous-screen-line ()}}
\entry{next-screen-line ()}{137}{\code {next-screen-line ()}}
\entry{clear-display (M-C-l)}{137}{\code {clear-display (M-C-l)}}
\entry{clear-screen (C-l)}{137}{\code {clear-screen (C-l)}}
\entry{redraw-current-line ()}{137}{\code {redraw-current-line ()}}
\entry{accept-line (Newline or Return)}{137}{\code {accept-line (Newline or Return)}}
\entry{previous-history (C-p)}{137}{\code {previous-history (C-p)}}
\entry{next-history (C-n)}{137}{\code {next-history (C-n)}}
\entry{beginning-of-history (M-<)}{137}{\code {beginning-of-history (M-<)}}
\entry{end-of-history (M->)}{137}{\code {end-of-history (M->)}}
\entry{reverse-search-history (C-r)}{137}{\code {reverse-search-history (C-r)}}
\entry{forward-search-history (C-s)}{137}{\code {forward-search-history (C-s)}}
\entry{non-incremental-reverse-search-history (M-p)}{137}{\code {non-incremental-reverse-search-history (M-p)}}
\entry{non-incremental-forward-search-history (M-n)}{138}{\code {non-incremental-forward-search-history (M-n)}}
\entry{history-search-forward ()}{138}{\code {history-search-forward ()}}
\entry{history-search-backward ()}{138}{\code {history-search-backward ()}}
\entry{history-substring-search-forward ()}{138}{\code {history-substring-search-forward ()}}
\entry{history-substring-search-backward ()}{138}{\code {history-substring-search-backward ()}}
\entry{yank-nth-arg (M-C-y)}{138}{\code {yank-nth-arg (M-C-y)}}
\entry{yank-last-arg (M-. or M-_)}{138}{\code {yank-last-arg (M-. or M-_)}}
\entry{operate-and-get-next (C-o)}{138}{\code {operate-and-get-next (C-o)}}
\entry{fetch-history ()}{139}{\code {fetch-history ()}}
\entry{end-of-file (usually C-d)}{139}{\code {\i {end-of-file} (usually C-d)}}
\entry{delete-char (C-d)}{139}{\code {delete-char (C-d)}}
\entry{backward-delete-char (Rubout)}{139}{\code {backward-delete-char (Rubout)}}
\entry{forward-backward-delete-char ()}{139}{\code {forward-backward-delete-char ()}}
\entry{quoted-insert (C-q or C-v)}{139}{\code {quoted-insert (C-q or C-v)}}
\entry{self-insert (a, b, A, 1, !, ...{})}{139}{\code {self-insert (a, b, A, 1, !, \dots {})}}
\entry{bracketed-paste-begin ()}{139}{\code {bracketed-paste-begin ()}}
\entry{transpose-chars (C-t)}{139}{\code {transpose-chars (C-t)}}
\entry{transpose-words (M-t)}{140}{\code {transpose-words (M-t)}}
\entry{upcase-word (M-u)}{140}{\code {upcase-word (M-u)}}
\entry{downcase-word (M-l)}{140}{\code {downcase-word (M-l)}}
\entry{capitalize-word (M-c)}{140}{\code {capitalize-word (M-c)}}
\entry{overwrite-mode ()}{140}{\code {overwrite-mode ()}}
\entry{kill-line (C-k)}{140}{\code {kill-line (C-k)}}
\entry{backward-kill-line (C-x Rubout)}{140}{\code {backward-kill-line (C-x Rubout)}}
\entry{unix-line-discard (C-u)}{140}{\code {unix-line-discard (C-u)}}
\entry{kill-whole-line ()}{140}{\code {kill-whole-line ()}}
\entry{kill-word (M-d)}{140}{\code {kill-word (M-d)}}
\entry{backward-kill-word (M-DEL)}{140}{\code {backward-kill-word (M-\key {DEL})}}
\entry{shell-kill-word (M-C-d)}{141}{\code {shell-kill-word (M-C-d)}}
\entry{shell-backward-kill-word ()}{141}{\code {shell-backward-kill-word ()}}
\entry{shell-transpose-words (M-C-t)}{141}{\code {shell-transpose-words (M-C-t)}}
\entry{unix-word-rubout (C-w)}{141}{\code {unix-word-rubout (C-w)}}
\entry{unix-filename-rubout ()}{141}{\code {unix-filename-rubout ()}}
\entry{delete-horizontal-space ()}{141}{\code {delete-horizontal-space ()}}
\entry{kill-region ()}{141}{\code {kill-region ()}}
\entry{copy-region-as-kill ()}{141}{\code {copy-region-as-kill ()}}
\entry{copy-backward-word ()}{141}{\code {copy-backward-word ()}}
\entry{copy-forward-word ()}{141}{\code {copy-forward-word ()}}
\entry{yank (C-y)}{141}{\code {yank (C-y)}}
\entry{yank-pop (M-y)}{141}{\code {yank-pop (M-y)}}
\entry{digit-argument (M-0, M-1, ...{} M--)}{141}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
\entry{universal-argument ()}{142}{\code {universal-argument ()}}
\entry{complete (TAB)}{142}{\code {complete (\key {TAB})}}
\entry{possible-completions (M-?)}{142}{\code {possible-completions (M-?)}}
\entry{insert-completions (M-*)}{142}{\code {insert-completions (M-*)}}
\entry{menu-complete ()}{142}{\code {menu-complete ()}}
\entry{menu-complete-backward ()}{142}{\code {menu-complete-backward ()}}
\entry{delete-char-or-list ()}{142}{\code {delete-char-or-list ()}}
\entry{complete-filename (M-/)}{142}{\code {complete-filename (M-/)}}
\entry{possible-filename-completions (C-x /)}{143}{\code {possible-filename-completions (C-x /)}}
\entry{complete-username (M-~)}{143}{\code {complete-username (M-~)}}
\entry{possible-username-completions (C-x ~)}{143}{\code {possible-username-completions (C-x ~)}}
\entry{complete-variable (M-$)}{143}{\code {complete-variable (M-$)}}
\entry{possible-variable-completions (C-x $)}{143}{\code {possible-variable-completions (C-x $)}}
\entry{complete-hostname (M-@)}{143}{\code {complete-hostname (M-@)}}
\entry{possible-hostname-completions (C-x @)}{143}{\code {possible-hostname-completions (C-x @)}}
\entry{complete-command (M-!)}{143}{\code {complete-command (M-!)}}
\entry{possible-command-completions (C-x !)}{143}{\code {possible-command-completions (C-x !)}}
\entry{dynamic-complete-history (M-TAB)}{143}{\code {dynamic-complete-history (M-\key {TAB})}}
\entry{dabbrev-expand ()}{143}{\code {dabbrev-expand ()}}
\entry{complete-into-braces (M-{\indexlbrace })}{143}{\code {complete-into-braces (M-{\tt \char 123})}}
\entry{start-kbd-macro (C-x ()}{143}{\code {start-kbd-macro (C-x ()}}
\entry{end-kbd-macro (C-x ))}{143}{\code {end-kbd-macro (C-x ))}}
\entry{call-last-kbd-macro (C-x e)}{144}{\code {call-last-kbd-macro (C-x e)}}
\entry{print-last-kbd-macro ()}{144}{\code {print-last-kbd-macro ()}}
\entry{re-read-init-file (C-x C-r)}{144}{\code {re-read-init-file (C-x C-r)}}
\entry{abort (C-g)}{144}{\code {abort (C-g)}}
\entry{do-lowercase-version (M-A, M-B, M-x, ...{})}{144}{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}
\entry{prefix-meta (ESC)}{144}{\code {prefix-meta (\key {ESC})}}
\entry{undo (C-_ or C-x C-u)}{144}{\code {undo (C-_ or C-x C-u)}}
\entry{revert-line (M-r)}{144}{\code {revert-line (M-r)}}
\entry{tilde-expand (M-&)}{144}{\code {tilde-expand (M-&)}}
\entry{set-mark (C-@)}{144}{\code {set-mark (C-@)}}
\entry{exchange-point-and-mark (C-x C-x)}{144}{\code {exchange-point-and-mark (C-x C-x)}}
\entry{character-search (C-])}{144}{\code {character-search (C-])}}
\entry{character-search-backward (M-C-])}{144}{\code {character-search-backward (M-C-])}}
\entry{skip-csi-sequence ()}{144}{\code {skip-csi-sequence ()}}
\entry{insert-comment (M-#)}{145}{\code {insert-comment (M-#)}}
\entry{dump-functions ()}{145}{\code {dump-functions ()}}
\entry{dump-variables ()}{145}{\code {dump-variables ()}}
\entry{dump-macros ()}{145}{\code {dump-macros ()}}
\entry{spell-correct-word (C-x s)}{145}{\code {spell-correct-word (C-x s)}}
\entry{glob-complete-word (M-g)}{145}{\code {glob-complete-word (M-g)}}
\entry{glob-expand-word (C-x *)}{145}{\code {glob-expand-word (C-x *)}}
\entry{glob-list-expansions (C-x g)}{145}{\code {glob-list-expansions (C-x g)}}
\entry{display-shell-version (C-x C-v)}{146}{\code {display-shell-version (C-x C-v)}}
\entry{shell-expand-line (M-C-e)}{146}{\code {shell-expand-line (M-C-e)}}
\entry{history-expand-line (M-^)}{146}{\code {history-expand-line (M-^)}}
\entry{magic-space ()}{146}{\code {magic-space ()}}
\entry{alias-expand-line ()}{146}{\code {alias-expand-line ()}}
\entry{history-and-alias-expand-line ()}{146}{\code {history-and-alias-expand-line ()}}
\entry{insert-last-argument (M-. or M-_)}{146}{\code {insert-last-argument (M-. or M-_)}}
\entry{edit-and-execute-command (C-x C-e)}{146}{\code {edit-and-execute-command (C-x C-e)}}
+114 -114
View File
@@ -1,134 +1,134 @@
\initial {A}
\entry{\code {abort (C-g)}}{141}
\entry{\code {accept-line (Newline or Return)}}{134}
\entry{\code {alias-expand-line ()}}{143}
\entry{\code {abort (C-g)}}{144}
\entry{\code {accept-line (Newline or Return)}}{137}
\entry{\code {alias-expand-line ()}}{146}
\initial {B}
\entry{\code {backward-char (C-b)}}{133}
\entry{\code {backward-delete-char (Rubout)}}{136}
\entry{\code {backward-kill-line (C-x Rubout)}}{137}
\entry{\code {backward-kill-word (M-\key {DEL})}}{137}
\entry{\code {backward-word (M-b)}}{133}
\entry{\code {beginning-of-history (M-<)}}{134}
\entry{\code {beginning-of-line (C-a)}}{133}
\entry{\code {bracketed-paste-begin ()}}{136}
\entry{\code {backward-char (C-b)}}{136}
\entry{\code {backward-delete-char (Rubout)}}{139}
\entry{\code {backward-kill-line (C-x Rubout)}}{140}
\entry{\code {backward-kill-word (M-\key {DEL})}}{140}
\entry{\code {backward-word (M-b)}}{136}
\entry{\code {beginning-of-history (M-<)}}{137}
\entry{\code {beginning-of-line (C-a)}}{136}
\entry{\code {bracketed-paste-begin ()}}{139}
\initial {C}
\entry{\code {call-last-kbd-macro (C-x e)}}{141}
\entry{\code {capitalize-word (M-c)}}{137}
\entry{\code {character-search (C-])}}{141}
\entry{\code {character-search-backward (M-C-])}}{141}
\entry{\code {clear-display (M-C-l)}}{134}
\entry{\code {clear-screen (C-l)}}{134}
\entry{\code {complete (\key {TAB})}}{139}
\entry{\code {complete-command (M-!)}}{140}
\entry{\code {complete-filename (M-/)}}{139}
\entry{\code {complete-hostname (M-@)}}{140}
\entry{\code {complete-into-braces (M-{\tt \char 123})}}{140}
\entry{\code {complete-username (M-~)}}{140}
\entry{\code {complete-variable (M-$)}}{140}
\entry{\code {copy-backward-word ()}}{138}
\entry{\code {copy-forward-word ()}}{138}
\entry{\code {copy-region-as-kill ()}}{138}
\entry{\code {call-last-kbd-macro (C-x e)}}{144}
\entry{\code {capitalize-word (M-c)}}{140}
\entry{\code {character-search (C-])}}{144}
\entry{\code {character-search-backward (M-C-])}}{144}
\entry{\code {clear-display (M-C-l)}}{137}
\entry{\code {clear-screen (C-l)}}{137}
\entry{\code {complete (\key {TAB})}}{142}
\entry{\code {complete-command (M-!)}}{143}
\entry{\code {complete-filename (M-/)}}{142}
\entry{\code {complete-hostname (M-@)}}{143}
\entry{\code {complete-into-braces (M-{\tt \char 123})}}{143}
\entry{\code {complete-username (M-~)}}{143}
\entry{\code {complete-variable (M-$)}}{143}
\entry{\code {copy-backward-word ()}}{141}
\entry{\code {copy-forward-word ()}}{141}
\entry{\code {copy-region-as-kill ()}}{141}
\initial {D}
\entry{\code {dabbrev-expand ()}}{140}
\entry{\code {delete-char (C-d)}}{136}
\entry{\code {delete-char-or-list ()}}{139}
\entry{\code {delete-horizontal-space ()}}{138}
\entry{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{138}
\entry{\code {display-shell-version (C-x C-v)}}{143}
\entry{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}{141}
\entry{\code {downcase-word (M-l)}}{137}
\entry{\code {dump-functions ()}}{142}
\entry{\code {dump-macros ()}}{142}
\entry{\code {dump-variables ()}}{142}
\entry{\code {dynamic-complete-history (M-\key {TAB})}}{140}
\entry{\code {dabbrev-expand ()}}{143}
\entry{\code {delete-char (C-d)}}{139}
\entry{\code {delete-char-or-list ()}}{142}
\entry{\code {delete-horizontal-space ()}}{141}
\entry{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{141}
\entry{\code {display-shell-version (C-x C-v)}}{146}
\entry{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}{144}
\entry{\code {downcase-word (M-l)}}{140}
\entry{\code {dump-functions ()}}{145}
\entry{\code {dump-macros ()}}{145}
\entry{\code {dump-variables ()}}{145}
\entry{\code {dynamic-complete-history (M-\key {TAB})}}{143}
\initial {E}
\entry{\code {edit-and-execute-command (C-x C-e)}}{143}
\entry{\code {end-kbd-macro (C-x ))}}{140}
\entry{\code {\i {end-of-file} (usually C-d)}}{136}
\entry{\code {end-of-history (M->)}}{134}
\entry{\code {end-of-line (C-e)}}{133}
\entry{\code {exchange-point-and-mark (C-x C-x)}}{141}
\entry{\code {edit-and-execute-command (C-x C-e)}}{146}
\entry{\code {end-kbd-macro (C-x ))}}{143}
\entry{\code {\i {end-of-file} (usually C-d)}}{139}
\entry{\code {end-of-history (M->)}}{137}
\entry{\code {end-of-line (C-e)}}{136}
\entry{\code {exchange-point-and-mark (C-x C-x)}}{144}
\initial {F}
\entry{\code {fetch-history ()}}{136}
\entry{\code {forward-backward-delete-char ()}}{136}
\entry{\code {forward-char (C-f)}}{133}
\entry{\code {forward-search-history (C-s)}}{134}
\entry{\code {forward-word (M-f)}}{133}
\entry{\code {fetch-history ()}}{139}
\entry{\code {forward-backward-delete-char ()}}{139}
\entry{\code {forward-char (C-f)}}{136}
\entry{\code {forward-search-history (C-s)}}{137}
\entry{\code {forward-word (M-f)}}{136}
\initial {G}
\entry{\code {glob-complete-word (M-g)}}{142}
\entry{\code {glob-expand-word (C-x *)}}{142}
\entry{\code {glob-list-expansions (C-x g)}}{142}
\entry{\code {glob-complete-word (M-g)}}{145}
\entry{\code {glob-expand-word (C-x *)}}{145}
\entry{\code {glob-list-expansions (C-x g)}}{145}
\initial {H}
\entry{\code {history-and-alias-expand-line ()}}{143}
\entry{\code {history-expand-line (M-^)}}{143}
\entry{\code {history-search-backward ()}}{135}
\entry{\code {history-search-forward ()}}{135}
\entry{\code {history-substring-search-backward ()}}{135}
\entry{\code {history-substring-search-forward ()}}{135}
\entry{\code {history-and-alias-expand-line ()}}{146}
\entry{\code {history-expand-line (M-^)}}{146}
\entry{\code {history-search-backward ()}}{138}
\entry{\code {history-search-forward ()}}{138}
\entry{\code {history-substring-search-backward ()}}{138}
\entry{\code {history-substring-search-forward ()}}{138}
\initial {I}
\entry{\code {insert-comment (M-#)}}{142}
\entry{\code {insert-completions (M-*)}}{139}
\entry{\code {insert-last-argument (M-. or M-_)}}{143}
\entry{\code {insert-comment (M-#)}}{145}
\entry{\code {insert-completions (M-*)}}{142}
\entry{\code {insert-last-argument (M-. or M-_)}}{146}
\initial {K}
\entry{\code {kill-line (C-k)}}{137}
\entry{\code {kill-region ()}}{138}
\entry{\code {kill-whole-line ()}}{137}
\entry{\code {kill-word (M-d)}}{137}
\entry{\code {kill-line (C-k)}}{140}
\entry{\code {kill-region ()}}{141}
\entry{\code {kill-whole-line ()}}{140}
\entry{\code {kill-word (M-d)}}{140}
\initial {M}
\entry{\code {magic-space ()}}{143}
\entry{\code {menu-complete ()}}{139}
\entry{\code {menu-complete-backward ()}}{139}
\entry{\code {magic-space ()}}{146}
\entry{\code {menu-complete ()}}{142}
\entry{\code {menu-complete-backward ()}}{142}
\initial {N}
\entry{\code {next-history (C-n)}}{134}
\entry{\code {next-screen-line ()}}{134}
\entry{\code {non-incremental-forward-search-history (M-n)}}{135}
\entry{\code {non-incremental-reverse-search-history (M-p)}}{134}
\entry{\code {next-history (C-n)}}{137}
\entry{\code {next-screen-line ()}}{137}
\entry{\code {non-incremental-forward-search-history (M-n)}}{138}
\entry{\code {non-incremental-reverse-search-history (M-p)}}{137}
\initial {O}
\entry{\code {operate-and-get-next (C-o)}}{135}
\entry{\code {overwrite-mode ()}}{137}
\entry{\code {operate-and-get-next (C-o)}}{138}
\entry{\code {overwrite-mode ()}}{140}
\initial {P}
\entry{\code {possible-command-completions (C-x !)}}{140}
\entry{\code {possible-completions (M-?)}}{139}
\entry{\code {possible-filename-completions (C-x /)}}{140}
\entry{\code {possible-hostname-completions (C-x @)}}{140}
\entry{\code {possible-username-completions (C-x ~)}}{140}
\entry{\code {possible-variable-completions (C-x $)}}{140}
\entry{\code {prefix-meta (\key {ESC})}}{141}
\entry{\code {previous-history (C-p)}}{134}
\entry{\code {previous-screen-line ()}}{133}
\entry{\code {print-last-kbd-macro ()}}{141}
\entry{\code {possible-command-completions (C-x !)}}{143}
\entry{\code {possible-completions (M-?)}}{142}
\entry{\code {possible-filename-completions (C-x /)}}{143}
\entry{\code {possible-hostname-completions (C-x @)}}{143}
\entry{\code {possible-username-completions (C-x ~)}}{143}
\entry{\code {possible-variable-completions (C-x $)}}{143}
\entry{\code {prefix-meta (\key {ESC})}}{144}
\entry{\code {previous-history (C-p)}}{137}
\entry{\code {previous-screen-line ()}}{136}
\entry{\code {print-last-kbd-macro ()}}{144}
\initial {Q}
\entry{\code {quoted-insert (C-q or C-v)}}{136}
\entry{\code {quoted-insert (C-q or C-v)}}{139}
\initial {R}
\entry{\code {re-read-init-file (C-x C-r)}}{141}
\entry{\code {redraw-current-line ()}}{134}
\entry{\code {reverse-search-history (C-r)}}{134}
\entry{\code {revert-line (M-r)}}{141}
\entry{\code {re-read-init-file (C-x C-r)}}{144}
\entry{\code {redraw-current-line ()}}{137}
\entry{\code {reverse-search-history (C-r)}}{137}
\entry{\code {revert-line (M-r)}}{144}
\initial {S}
\entry{\code {self-insert (a, b, A, 1, !, \dots {})}}{136}
\entry{\code {set-mark (C-@)}}{141}
\entry{\code {shell-backward-kill-word ()}}{138}
\entry{\code {shell-backward-word (M-C-b)}}{133}
\entry{\code {shell-expand-line (M-C-e)}}{143}
\entry{\code {shell-forward-word (M-C-f)}}{133}
\entry{\code {shell-kill-word (M-C-d)}}{138}
\entry{\code {shell-transpose-words (M-C-t)}}{138}
\entry{\code {skip-csi-sequence ()}}{141}
\entry{\code {spell-correct-word (C-x s)}}{142}
\entry{\code {start-kbd-macro (C-x ()}}{140}
\entry{\code {self-insert (a, b, A, 1, !, \dots {})}}{139}
\entry{\code {set-mark (C-@)}}{144}
\entry{\code {shell-backward-kill-word ()}}{141}
\entry{\code {shell-backward-word (M-C-b)}}{136}
\entry{\code {shell-expand-line (M-C-e)}}{146}
\entry{\code {shell-forward-word (M-C-f)}}{136}
\entry{\code {shell-kill-word (M-C-d)}}{141}
\entry{\code {shell-transpose-words (M-C-t)}}{141}
\entry{\code {skip-csi-sequence ()}}{144}
\entry{\code {spell-correct-word (C-x s)}}{145}
\entry{\code {start-kbd-macro (C-x ()}}{143}
\initial {T}
\entry{\code {tilde-expand (M-&)}}{141}
\entry{\code {transpose-chars (C-t)}}{136}
\entry{\code {transpose-words (M-t)}}{137}
\entry{\code {tilde-expand (M-&)}}{144}
\entry{\code {transpose-chars (C-t)}}{139}
\entry{\code {transpose-words (M-t)}}{140}
\initial {U}
\entry{\code {undo (C-_ or C-x C-u)}}{141}
\entry{\code {universal-argument ()}}{139}
\entry{\code {unix-filename-rubout ()}}{138}
\entry{\code {unix-line-discard (C-u)}}{137}
\entry{\code {unix-word-rubout (C-w)}}{138}
\entry{\code {upcase-word (M-u)}}{137}
\entry{\code {undo (C-_ or C-x C-u)}}{144}
\entry{\code {universal-argument ()}}{142}
\entry{\code {unix-filename-rubout ()}}{141}
\entry{\code {unix-line-discard (C-u)}}{140}
\entry{\code {unix-word-rubout (C-w)}}{141}
\entry{\code {upcase-word (M-u)}}{140}
\initial {Y}
\entry{\code {yank (C-y)}}{138}
\entry{\code {yank-last-arg (M-. or M-_)}}{135}
\entry{\code {yank-nth-arg (M-C-y)}}{135}
\entry{\code {yank-pop (M-y)}}{138}
\entry{\code {yank (C-y)}}{141}
\entry{\code {yank-last-arg (M-. or M-_)}}{138}
\entry{\code {yank-nth-arg (M-C-y)}}{138}
\entry{\code {yank-pop (M-y)}}{141}
+303 -90
View File
@@ -4,13 +4,13 @@
<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.2, 2 December 2022).
the Bash shell (version 5.2, 17 April 2023).
This is Edition 5.2, last updated 2 December 2022,
This is Edition 5.2, last updated 17 April 2023,
of The GNU Bash Reference Manual,
for Bash, Version 5.2.
Copyright (C) 1988-2022 Free Software Foundation, Inc.
Copyright (C) 1988-2023 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -77,10 +77,10 @@ Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previou
<span id="Bash-Features-1"></span><h1 class="top">Bash Features</h1>
<p>This text is a brief description of the features that are present in
the Bash shell (version 5.2, 2 December 2022).
the Bash shell (version 5.2, 17 April 2023).
The Bash home page is <a href="http://www.gnu.org/software/bash/">http://www.gnu.org/software/bash/</a>.
</p>
<p>This is Edition 5.2, last updated 2 December 2022,
<p>This is Edition 5.2, last updated 17 April 2023,
of <cite>The GNU Bash Reference Manual</cite>,
for <code>Bash</code>, Version 5.2.
</p>
@@ -220,7 +220,11 @@ reference on shell behavior.
</ul></li>
<li><a id="toc-Controlling-the-Prompt-1" href="#Controlling-the-Prompt">6.9 Controlling the Prompt</a></li>
<li><a id="toc-The-Restricted-Shell-1" href="#The-Restricted-Shell">6.10 The Restricted Shell</a></li>
<li><a id="toc-Bash-POSIX-Mode-1" href="#Bash-POSIX-Mode">6.11 Bash POSIX Mode</a></li>
<li><a id="toc-Bash-and-POSIX" href="#Bash-POSIX-Mode">6.11 Bash and POSIX</a>
<ul class="no-bullet">
<li><a id="toc-What-is-POSIX_003f" href="#What-is-POSIX_003f">6.11.1 What is POSIX?</a></li>
<li><a id="toc-Bash-POSIX-Mode-1" href="#Bash-POSIX-Mode-1">6.11.2 Bash POSIX Mode</a></li>
</ul></li>
<li><a id="toc-Shell-Compatibility-Mode-1" href="#Shell-Compatibility-Mode">6.12 Shell Compatibility Mode</a></li>
</ul></li>
<li><a id="toc-Job-Control-1" href="#Job-Control">7 Job Control</a>
@@ -703,7 +707,7 @@ of all characters within the quotes, with the exception of
&lsquo;<samp>$</samp>&rsquo;, &lsquo;<samp>`</samp>&rsquo;, &lsquo;<samp>\</samp>&rsquo;,
and, when history expansion is enabled, &lsquo;<samp>!</samp>&rsquo;.
When the shell is in
<small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>),
<small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash and POSIX</a>),
the &lsquo;<samp>!</samp>&rsquo; has no special meaning
within double quotes, even when history expansion is enabled.
The characters &lsquo;<samp>$</samp>&rsquo; and &lsquo;<samp>`</samp>&rsquo;
@@ -1085,7 +1089,7 @@ The statistics currently consist of elapsed (wall-clock) time and
user and system time consumed by the command&rsquo;s execution.
The <samp>-p</samp> option changes the output format to that specified
by <small>POSIX</small>.
When the shell is in <small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>),
When the shell is in <small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash and POSIX</a>),
it does not recognize <code>time</code> as a reserved word if the next
token begins with a &lsquo;<samp>-</samp>&rsquo;.
The <code>TIMEFORMAT</code> variable may be set to a format string that
@@ -1095,7 +1099,7 @@ The use of <code>time</code> as a reserved word permits the timing of
shell builtins, shell functions, and pipelines. An external
<code>time</code> command cannot time these easily.
</p>
<p>When the shell is in <small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>), <code>time</code>
<p>When the shell is in <small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash and POSIX</a>), <code>time</code>
may be followed by a newline. In this case, the shell displays the
total user and system time consumed by the shell and its children.
The <code>TIMEFORMAT</code> variable may be used to specify the format of
@@ -1886,7 +1890,7 @@ If the <code>function</code> reserved word is used, but the
parentheses are not supplied, the braces are recommended.
<var>compound-command</var> is executed whenever <var>fname</var> is specified as the
name of a simple command.
When the shell is in <small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>),
When the shell is in <small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash and POSIX</a>),
<var>fname</var> must be a valid shell name and
may not be the same as one of the special builtins
(see <a href="#Special-Builtins">Special Builtins</a>).
@@ -2091,7 +2095,7 @@ Assignment statements may also appear as arguments to the
<code>alias</code>,
<code>declare</code>, <code>typeset</code>, <code>export</code>, <code>readonly</code>,
and <code>local</code> builtin commands (<em>declaration</em> commands).
When in <small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>), these builtins may appear
When in <small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash and POSIX</a>), these builtins may appear
in a command after one or more instances of the <code>command</code> builtin
and retain these assignment statement properties.
</p>
@@ -2708,7 +2712,7 @@ bcdef
positional parameters beginning at <var>offset</var>.
A negative <var>offset</var> is taken relative to one greater than the greatest
positional parameter, so an offset of -1 evaluates to the last positional
parameter.
parameter (or 0 if there are no positional parameters).
It is an expansion error if <var>length</var> evaluates to a number less than zero.
</p>
<p>The following examples illustrate substring expansion using positional
@@ -3164,9 +3168,10 @@ word splitting.
<p>The shell treats each character of <code>$IFS</code> as a delimiter, and splits
the results of the other expansions into words using these characters
as field terminators.
If <code>IFS</code> is unset, or its value is exactly <code>&lt;space&gt;&lt;tab&gt;&lt;newline&gt;</code>,
</p>
<p>If <code>IFS</code> is unset, or its value is exactly <code>&lt;space&gt;&lt;tab&gt;&lt;newline&gt;</code>,
the default, then sequences of
<code> &lt;space&gt;</code>, <code>&lt;tab&gt;</code>, and <code>&lt;newline&gt;</code>
<code>space</code>, <code>tab</code>, and <code>newline</code>
at the beginning and end of the results of the previous
expansions are ignored, and any sequence of <code>IFS</code>
characters not at the beginning or end serves to delimit words.
@@ -3179,7 +3184,10 @@ Any character in <code>IFS</code> that is not <code>IFS</code>
whitespace, along with any adjacent <code>IFS</code>
whitespace characters, delimits a field. A sequence of <code>IFS</code>
whitespace characters is also treated as a delimiter.
If the value of <code>IFS</code> is null, no word splitting occurs.
</p>
<p>If the value of <code>IFS</code> is null, no word splitting occurs.
If <code>IFS</code> is unset, word splitting behaves as if it contained
the default value <code>&lt;space&gt;&lt;tab&gt;&lt;newline&gt;</code>.
</p>
<p>Explicit null arguments (<code>&quot;&quot;</code> or <code>''</code>) are retained
and passed to commands as empty strings.
@@ -3268,6 +3276,10 @@ To get the old behavior of ignoring filenames beginning with a
The <code>dotglob</code> option is disabled when <code>GLOBIGNORE</code>
is unset.
</p>
<p>After the pattern is expanded and matched against filenames, the value of the
<code>GLOBSORT</code> variable controls how the results are sorted, as described
below (see <a href="#Bash-Variables">Bash Variables</a>).
</p>
<ul class="section-toc">
<li><a href="#Pattern-Matching" accesskey="1">Pattern Matching</a></li>
</ul>
@@ -3487,7 +3499,7 @@ before the standard output was redirected to <var>dirlist</var>.
<p>Bash handles several filenames specially when they are used in
redirections, as described in the following table.
If the operating system on which Bash is running provides these
special files, bash will use them; otherwise it will emulate them
special files, Bash will use them; otherwise it will emulate them
internally with the behavior described below.
</p>
<dl compact="compact">
@@ -3639,9 +3651,9 @@ expansion of <var>word</var>.
<div class="subsection" id="Here-Documents">
<h4 class="subsection">3.6.6 Here Documents</h4>
<p>This type of redirection instructs the shell to read input from the
current source until a line containing only <var>word</var>
(with no trailing blanks) is seen. All of
the lines read up to that point are then used as the standard
current source until a line containing only <var>delimiter</var>
(with no trailing blanks) is seen.
All of the lines read up to that point are then used as the standard
input (or file descriptor <var>n</var> if <var>n</var> is specified) for a command.
</p>
<p>The format of here-documents is:
@@ -3653,10 +3665,13 @@ input (or file descriptor <var>n</var> if <var>n</var> is specified) for a comma
<p>No parameter and variable expansion, command substitution,
arithmetic expansion, or filename expansion is performed on
<var>word</var>. If any part of <var>word</var> is quoted, the
<var>word</var>.
</p>
<p>If any part of <var>word</var> is quoted, the
<var>delimiter</var> is the result of quote removal on <var>word</var>,
and the lines in the here-document are not expanded.
If <var>word</var> is unquoted,
<var>delimiter</var> is <var>word</var> itself,
all lines of the here-document are subjected to
parameter expansion, command substitution, and arithmetic expansion,
the character sequence <code>\newline</code> is ignored, and &lsquo;<samp>\</samp>&rsquo;
@@ -3829,8 +3844,8 @@ Next: <a href="#Command-Execution-Environment" accesskey="n" rel="next">Command
<span id="index-command-search"></span>
<p>After a command has been split into words, if it results in a
simple command and an optional list of arguments, the following
actions are taken.
simple command and an optional list of arguments, the shell performs
the following actions.
</p>
<ol>
<li> If the command name contains no slashes, the shell attempts to
@@ -4322,7 +4337,7 @@ The return status is zero unless <var>n</var> is not greater than or equal to 1.
</dd>
<dt id='index-cd'><span><code>cd</code><a href='#index-cd' class='copiable-anchor'> &para;</a></span></dt>
<dd><div class="example">
<pre class="example">cd [-L|[-P [-e]] [-@] [<var>directory</var>]
<pre class="example">cd [-L|[-P [-e]]] [-@] [<var>directory</var>]
</pre></div>
<p>Change the current working directory to <var>directory</var>.
@@ -4740,7 +4755,7 @@ The return status is zero.
</dd>
<dt id='index-trap'><span><code>trap</code><a href='#index-trap' class='copiable-anchor'> &para;</a></span></dt>
<dd><div class="example">
<pre class="example">trap [-lp] [<var>action</var>] [<var>sigspec</var> &hellip;]
<pre class="example">trap [-Plp] [<var>action</var>] [<var>sigspec</var> &hellip;]
</pre></div>
<p>The <var>action</var> is a command that is read and executed when the
@@ -4760,6 +4775,13 @@ If <var>action</var> is not present and <samp>-p</samp> has been supplied,
or, if no <var>sigspec</var>s are supplied, for all trapped signals,
as a set of <code>trap</code> commands that can be reused as shell input to
restore the current signal dispositions.
The <samp>-P</samp> option behaves similarly, but displays only the actions
associated with each <var>sigspec</var> argument.
<samp>-P</samp> requires at least one <var>sigspec</var> argument.
The <samp>-P</samp> or <samp>-p</samp> options to <code>trap</code> may be
used in a subshell environment (e.g., command substitution) and,
as long as they are used before <code>trap</code> is used to change a
signal&rsquo;s handling, will display the state of its parent&rsquo;s traps.
</p>
<p>The <samp>-l</samp> option causes <code>trap</code> to print a list of signal names
and their corresponding numbers.
@@ -5341,7 +5363,9 @@ The <var>option</var> can be any of the options accepted by <code>declare</code>
children.
If <var>name</var> is &lsquo;<samp>-</samp>&rsquo;, the set of shell options is made local to the
function in which <code>local</code> is invoked: shell options changed using
the <code>set</code> builtin inside the function are restored to their original
the <code>set</code> builtin inside the function
after the call to <code>local</code>
are restored to their original
values when the function returns.
The restore is effected as if a series of <code>set</code> commands were executed
to restore the values that were in place before the function.
@@ -5434,8 +5458,9 @@ plain characters, which are simply copied to standard output, character
escape sequences, which are converted and copied to the standard output, and
format specifications, each of which causes printing of the next successive
<var>argument</var>.
In addition to the standard <code>printf(1)</code> formats, <code>printf</code>
interprets the following extensions:
In addition to the standard <code>printf(3)</code> format characters
<code>csndiouxXeEfFgGaA</code>,
<code>printf</code> interprets the following additional format specifiers:
</p>
<dl compact="compact">
<dt><span><code>%b</code></span></dt>
@@ -5446,7 +5471,13 @@ corresponding <var>argument</var> in the same way as <code>echo -e</code>
<dt><span><code>%q</code></span></dt>
<dd><p>Causes <code>printf</code> to output the
corresponding <var>argument</var> in a format that can be reused as shell input.
</p></dd>
<code>%q</code> and <code>%Q</code>P use the ANSI-C quoting style (see <a href="#ANSI_002dC-Quoting">ANSI-C Quoting</a>)
if any characters
in the argument string require it, and backslash quoting otherwise.
If the format string uses the <code>printf</code> <var>alternate form</var>, these two
formats quote the argument string using single quotes.
</p>
</dd>
<dt><span><code>%Q</code></span></dt>
<dd><p>like <code>%q</code>, but applies any supplied precision to the <var>argument</var>
before quoting it.
@@ -5463,11 +5494,18 @@ This is an exception to the usual <code>printf</code> behavior.
</p></dd>
</dl>
<p>The %b, %q, and %T directives all use the field width and precision
<p>The %b, %q, and %T format specifiers all use the field width and precision
arguments from the format specification and write that many bytes from
(or use that wide a field for) the expanded argument, which usually
contains more characters than the original.
</p>
<p>The %n format specifier accepts a corresponding argument that is treated
as a shell variable name.
</p>
<p>The %s and %c format specifiers accept an l (long) modifier, which forces
them to convert the argument string to a wide-character string and apply
any supplied field width and precision in terms of characters, not bytes.
</p>
<p>Arguments to non-string format specifiers are treated as C language constants,
except that a leading plus or minus sign is allowed, and if the leading
character is a single or double quote, the value is the ASCII value of
@@ -5476,8 +5514,10 @@ the following character.
<p>The <var>format</var> is reused as necessary to consume all of the <var>arguments</var>.
If the <var>format</var> requires more <var>arguments</var> than are supplied, the
extra format specifications behave as if a zero value or null string, as
appropriate, had been supplied. The return value is zero on success,
non-zero on failure.
appropriate, had been supplied.
The return value is zero on success,
non-zero if an invalid option is supplied or a write or assignment error
occurs.
</p>
</dd>
<dt id='index-read'><span><code>read</code><a href='#index-read' class='copiable-anchor'> &para;</a></span></dt>
@@ -5631,27 +5671,32 @@ if the <samp>-u</samp> option is supplied.
command name.
</p>
<p>If the <samp>-t</samp> option is used, <code>type</code> prints a single word
which is one of &lsquo;<samp>alias</samp>&rsquo;, &lsquo;<samp>function</samp>&rsquo;, &lsquo;<samp>builtin</samp>&rsquo;,
&lsquo;<samp>file</samp>&rsquo; or &lsquo;<samp>keyword</samp>&rsquo;,
if <var>name</var> is an alias, shell function, shell builtin,
disk file, or shell reserved word, respectively.
which is one of &lsquo;<samp>alias</samp>&rsquo;, &lsquo;<samp>keyword</samp>&rsquo;, &lsquo;<samp>function</samp>&rsquo;,
&lsquo;<samp>builtin</samp>&rsquo;, or &lsquo;<samp>file</samp>&rsquo;,
if <var>name</var> is an alias, shell reserved word, shell function,
shell builtin, or executable disk file, respectively.
If the <var>name</var> is not found, then nothing is printed, and
<code>type</code> returns a failure status.
</p>
<p>If the <samp>-p</samp> option is used, <code>type</code> either returns the name
of the disk file that would be executed, or nothing if <samp>-t</samp>
would not return &lsquo;<samp>file</samp>&rsquo;.
of the executable file that would be found by searching <code>$PATH</code>,
or nothing if <samp>-t</samp> would not return &lsquo;<samp>file</samp>&rsquo;.
</p>
<p>The <samp>-P</samp> option forces a path search for each <var>name</var>, even if
<samp>-t</samp> would not return &lsquo;<samp>file</samp>&rsquo;.
</p>
<p>If a command is hashed, <samp>-p</samp> and <samp>-P</samp> print the hashed value,
which is not necessarily the file that appears first in <code>$PATH</code>.
<p>If a <var>name</var> is present in the table of hashed commands,
options <samp>-p</samp> and <samp>-P</samp> print the hashed value, which is not
necessarily the file that appears first in <code>$PATH</code>.
</p>
<p>If the <samp>-a</samp> option is used, <code>type</code> returns all of the places
that contain an executable named <var>file</var>.
This includes aliases and functions, if and only if the <samp>-p</samp> option
is not also used.
that contain a command named <var>name</var>.
This includes aliases, reserved words, functions, and builtins,
but the path search options (<samp>-p</samp> and <samp>-P</samp>) can be supplied
to restrict the output to executable files.
If <samp>-a</samp> is supplied with <samp>-p</samp>, <code>type</code> does not look
in the table of hashed commands, and only performs a <code>PATH</code>
search for <var>name</var>.
</p>
<p>If the <samp>-f</samp> option is used, <code>type</code> does not attempt to find
shell functions, as with the <code>command</code> builtin.
@@ -5804,7 +5849,7 @@ increments, except for
<samp>-b</samp>,
<samp>-k</samp>,
<samp>-n</samp> and <samp>-u</samp>, which are unscaled values;
and, when in <small>POSIX</small> Mode (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>),
and, when in <small>POSIX</small> Mode (see <a href="#Bash-POSIX-Mode">Bash and POSIX</a>),
<samp>-c</samp> and <samp>-f</samp>, which are in 512-byte increments.
</p>
<p>The return status is zero unless an invalid option or argument is supplied,
@@ -6036,7 +6081,7 @@ This option is disabled by default.
<dt><span><code>posix</code></span></dt>
<dd><p>Change the behavior of Bash where the default operation differs
from the <small>POSIX</small> standard to match the standard
(see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>).
(see <a href="#Bash-POSIX-Mode">Bash and POSIX</a>).
This is intended to make Bash behave as a strict superset of that
standard.
</p>
@@ -6100,9 +6145,9 @@ shell will exit.
<dt><span><code>-x</code></span></dt>
<dd><p>Print a trace of simple commands, <code>for</code> commands, <code>case</code>
commands, <code>select</code> commands, and arithmetic <code>for</code> commands
and their arguments or associated word lists after they are
expanded and before they are executed. The value of the <code>PS4</code>
variable is expanded and the resultant value is printed before
and their arguments or associated word lists to standard error
after they are expanded and before they are executed.
The shell prints the expanded value of the <code>PS4</code> variable before
the command and its expanded arguments.
</p>
</dd>
@@ -6334,7 +6379,7 @@ completed.
This means that dollar signs in variable names that expand to directories
will not be quoted;
however, any dollar signs appearing in filenames will not be quoted, either.
This is active only when bash is using backslashes to quote completed
This is active only when Bash is using backslashes to quote completed
filenames.
This variable is set by default, which is the default Bash behavior in
versions through 4.2.
@@ -6662,7 +6707,7 @@ environment after the command completes.
<p>When Bash is not executing in <small>POSIX</small> mode, these builtins behave no
differently than the rest of the Bash builtin commands.
The Bash <small>POSIX</small> mode is described in <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>.
The Bash <small>POSIX</small> mode is described in <a href="#Bash-POSIX-Mode">Bash and POSIX</a>.
</p>
<p>These are the <small>POSIX</small> special builtins:
</p><div class="example">
@@ -6834,7 +6879,7 @@ subsequently reset.
</dd>
<dt id='index-BASH_005fARGC'><span><code>BASH_ARGC</code><a href='#index-BASH_005fARGC' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable whose values are the number of parameters in each
frame of the current bash execution call stack. The number of
frame of the current Bash execution call stack. The number of
parameters to the current subroutine (shell function or script executed
with <code>.</code> or <code>source</code>) is at the top of the stack. When a
subroutine is executed, the number of parameters passed is pushed onto
@@ -6849,7 +6894,7 @@ may result in inconsistent values.
</p>
</dd>
<dt id='index-BASH_005fARGV'><span><code>BASH_ARGV</code><a href='#index-BASH_005fARGV' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable containing all of the parameters in the current bash
<dd><p>An array variable containing all of the parameters in the current Bash
execution call stack. The final parameter of the last subroutine call
is at the top of the stack; the first parameter of the initial call is
at the bottom. When a subroutine is executed, the parameters supplied
@@ -7129,7 +7174,7 @@ Emacs shell buffer and disables line editing.
<dd><p>Expanded and executed similarly to <code>BASH_ENV</code>
(see <a href="#Bash-Startup-Files">Bash Startup Files</a>)
when an interactive shell is invoked in
<small>POSIX</small> Mode (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>).
<small>POSIX</small> Mode (see <a href="#Bash-POSIX-Mode">Bash and POSIX</a>).
</p>
</dd>
<dt id='index-EPOCHREALTIME'><span><code>EPOCHREALTIME</code><a href='#index-EPOCHREALTIME' class='copiable-anchor'> &para;</a></span></dt>
@@ -7226,6 +7271,36 @@ The pattern matching honors the setting of the <code>extglob</code> shell
option.
</p>
</dd>
<dt id='index-GLOBSORT'><span><code>GLOBSORT</code><a href='#index-GLOBSORT' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Control how the results of filename expansion are sorted.
The value of this variable specifies the sort criteria and sort order for
the results of filename expansion.
If this variable is unset or set to the null string, filename expansion
uses the historial behavior of sorting by name.
If set, a valid value begins with an optional &lsquo;<samp>+</samp>&rsquo;, which is ignored,
or &lsquo;<samp>-</samp>&rsquo;, which reverses the sort order from ascending to descending,
followed by a sort specifier.
The valid sort specifiers are
&lsquo;<samp>name</samp>&rsquo;,
&lsquo;<samp>size</samp>&rsquo;,
&lsquo;<samp>mtime</samp>&rsquo;,
&lsquo;<samp>atime</samp>&rsquo;,
&lsquo;<samp>ctime</samp>&rsquo;,
and
&lsquo;<samp>blocks</samp>&rsquo;,
which sort the files on name, file size, modification time, access time,
inode change time, and number of blocks, respectively.
</p>
<p>For example, a value of <code>-mtime</code> sorts the results in descending
order by modification time (newest first).
</p>
<p>If the sort specifier is missing, it defaults to <var>name</var>,
so a value of &lsquo;<samp>+</samp>&rsquo; is equivalent to the null string,
and a value of &lsquo;<samp>-</samp>&rsquo; sorts by name in descending order.
</p>
<p>Any invalid value restores the historical sorting behavior.
</p>
</dd>
<dt id='index-GROUPS'><span><code>GROUPS</code><a href='#index-GROUPS' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable containing the list of groups of which the current
user is a member.
@@ -7477,7 +7552,7 @@ contain only a single command).
</dd>
<dt id='index-POSIXLY_005fCORRECT'><span><code>POSIXLY_CORRECT</code><a href='#index-POSIXLY_005fCORRECT' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If this variable is in the environment when Bash starts, the shell
enters <small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>) before reading the
enters <small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash and POSIX</a>) before reading the
startup files, as if the <samp>--posix</samp> invocation option had been supplied.
If it is set while the shell is running, Bash enables <small>POSIX</small> mode,
as if the command
@@ -7718,7 +7793,7 @@ Next: <a href="#Job-Control" accesskey="n" rel="next">Job Control</a>, Previous:
<li><a href="#The-Directory-Stack" accesskey="8">The Directory Stack</a></li>
<li><a href="#Controlling-the-Prompt" accesskey="9">Controlling the Prompt</a></li>
<li><a href="#The-Restricted-Shell">The Restricted Shell</a></li>
<li><a href="#Bash-POSIX-Mode">Bash POSIX Mode</a></li>
<li><a href="#Bash-POSIX-Mode">Bash and POSIX</a></li>
<li><a href="#Shell-Compatibility-Mode">Shell Compatibility Mode</a></li>
</ul>
<hr>
@@ -7799,7 +7874,7 @@ invoked as <code>sh</code>.
<dd><p>Change the behavior of Bash where the default operation differs
from the <small>POSIX</small> standard to match the standard. This
is intended to make Bash behave as a strict superset of that
standard. See <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>, for a description of the Bash
standard. See <a href="#Bash-POSIX-Mode">Bash and POSIX</a>, for a description of the Bash
<small>POSIX</small> mode.
</p>
</dd>
@@ -8181,7 +8256,7 @@ or null in <code>${<var>var</var>:?<var>word</var>}</code> expansions
shell to exit.
</li><li> When running in <small>POSIX</small> mode, a special builtin returning an error
status will not cause the shell to exit (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>).
status will not cause the shell to exit (see <a href="#Bash-POSIX-Mode">Bash and POSIX</a>).
</li><li> A failed <code>exec</code> will not cause the shell to exit
(see <a href="#Bourne-Shell-Builtins">Bourne Shell Builtins</a>).
@@ -8426,6 +8501,13 @@ equal-precedence operators.
The levels are listed in order of decreasing precedence.
</p>
<dl compact="compact">
<dd><span id="index-arithmetic-operators"></span>
<span id="index-unary-arithmetic-operators"></span>
<span id="index-binary-arithmetic-operators"></span>
<span id="index-conditional-arithmetic-operator"></span>
<span id="index-bitwise-arithmetic-operators"></span>
</dd>
<dt><span><code><var>id</var>++ <var>id</var>--</code></span></dt>
<dd><p>variable post-increment and post-decrement
</p>
@@ -8486,7 +8568,7 @@ The levels are listed in order of decreasing precedence.
<dd><p>logical OR
</p>
</dd>
<dt><span><code>expr ? expr : expr</code></span></dt>
<dt><span><code>expr ? if-true-expr : if-false-expr</code></span></dt>
<dd><p>conditional operator
</p>
</dd>
@@ -8542,15 +8624,20 @@ Next: <a href="#Arrays" accesskey="n" rel="next">Arrays</a>, Previous: <a href="
<span id="Aliases-1"></span><h3 class="section">6.6 Aliases</h3>
<span id="index-alias-expansion"></span>
<p><em>Aliases</em> allow a string to be substituted for a word when it is used
as the first word of a simple command.
The shell maintains a list of aliases that may be set and unset with
the <code>alias</code> and <code>unalias</code> builtin commands.
<p><em>Aliases</em> allow a string to be substituted for a word that is in
a position in the input where it can be the first word of a simple
command. Aliases have names and corresponding values that are set
and unset using the <code>alias</code> and <code>unalias</code> builtin commands
(see <a href="#Shell-Builtin-Commands">Shell Builtin Commands</a>).
</p>
<p>The first word of each simple command, if unquoted, is checked to see
if it has an alias.
If so, that word is replaced by the text of the alias.
The characters &lsquo;<samp>/</samp>&rsquo;, &lsquo;<samp>$</samp>&rsquo;, &lsquo;<samp>`</samp>&rsquo;, &lsquo;<samp>=</samp>&rsquo; and any of the
<p>If the shell reads an unquoted word in the right position, it checks
the word to see if it matches an alias name. If it matches, the shell
replaces the word with the alias value, and reads that value as if it
had been read instead of the word.
The shell doesn&rsquo;t look at any characters following the word before
attempting alias substitution.
</p>
<p>The characters &lsquo;<samp>/</samp>&rsquo;, &lsquo;<samp>$</samp>&rsquo;, &lsquo;<samp>`</samp>&rsquo;, &lsquo;<samp>=</samp>&rsquo; and any of the
shell metacharacters or quoting characters listed above may not appear
in an alias name.
The replacement text may contain any valid
@@ -8561,7 +8648,8 @@ is not expanded a second time.
This means that one may alias <code>ls</code> to <code>&quot;ls -F&quot;</code>,
for instance, and Bash does not try to recursively expand the
replacement text.
If the last character of the alias value is a
</p>
<p>If the last character of the alias value is a
<code>blank</code>, then the next command word following the
alias is also checked for alias expansion.
</p>
@@ -8571,7 +8659,7 @@ command, and removed with the <code>unalias</code> command.
<p>There is no mechanism for using arguments in the replacement text,
as in <code>csh</code>.
If arguments are needed, use a shell function
(see <a href="#Shell-Functions">Shell Functions</a>).
(see <a href="#Shell-Functions">Shell Functions</a>) instead.
</p>
<p>Aliases are not expanded when the shell is not interactive,
unless the <code>expand_aliases</code> shell option is set using
@@ -8660,8 +8748,12 @@ the optional subscript is supplied, that index is assigned to;
otherwise the index of the element assigned is the last index assigned
to by the statement plus one. Indexing starts at zero.
</p>
<p>Each <var>value</var> in the list undergoes all the shell expansions
described above (see <a href="#Shell-Expansions">Shell Expansions</a>).
<p>Each <var>value</var> in the list undergoes the shell expansions
described above (see <a href="#Shell-Expansions">Shell Expansions</a>),
but <var>value</var>s that are valid variable assignments
including the brackets and subscript do not undergo
brace expansion and word splitting, as with individual
variable assignments.
</p>
<p>When assigning to an associative array, the words in a compound assignment
may be either assignment statements, for which the subscript is required,
@@ -9063,7 +9155,7 @@ word expansion.
<div class="section" id="The-Restricted-Shell">
<div class="header">
<p>
Next: <a href="#Bash-POSIX-Mode" accesskey="n" rel="next">Bash POSIX Mode</a>, Previous: <a href="#Controlling-the-Prompt" accesskey="p" rel="prev">Controlling the Prompt</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
Next: <a href="#Bash-POSIX-Mode" accesskey="n" rel="next">Bash and POSIX</a>, Previous: <a href="#Controlling-the-Prompt" accesskey="p" rel="prev">Controlling the Prompt</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="The-Restricted-Shell-1"></span><h3 class="section">6.10 The Restricted Shell</h3>
<span id="index-restricted-shell"></span>
@@ -9128,9 +9220,69 @@ such as <code>jails</code>, <code>zones</code>, or <code>containers</code>.
<p>
Next: <a href="#Shell-Compatibility-Mode" accesskey="n" rel="next">Shell Compatibility Mode</a>, Previous: <a href="#The-Restricted-Shell" accesskey="p" rel="prev">The Restricted Shell</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Bash-POSIX-Mode-1"></span><h3 class="section">6.11 Bash POSIX Mode</h3>
<span id="Bash-and-POSIX"></span><h3 class="section">6.11 Bash and POSIX</h3>
<ul class="section-toc">
<li><a href="#What-is-POSIX_003f" accesskey="1">What is POSIX?</a></li>
<li><a href="#Bash-POSIX-Mode-1" accesskey="2">Bash POSIX Mode</a></li>
</ul>
<div class="subsection" id="What-is-POSIX_003f">
<h4 class="subsection">6.11.1 What is POSIX?</h4>
<span id="index-POSIX-description"></span>
<p><small>POSIX</small> is the name for a family of standards based on Unix.
A number of Unix services, tools, and functions are part of the standard,
ranging from the basic system calls and C library functions to common
applications and tools to system administration and management.
</p>
<p>The <small>POSIX</small> Shell and Utilities standard was originally developed by
IEEE Working Group 1003.2 (POSIX.2).
The first edition of the 1003.2 standard was published in 1992.
It was merged with the original IEEE 1003.1 Working Group and is
currently maintained by the Austin Group (a joint working group of the
IEEE, The Open Group and ISO/IEC SC22/WG15).
Today the Shell and Utilities are a volume within the set of documents that
make up IEEE Std 1003.1-2017, and thus the former POSIX.2 (from 1992)
is now part of the current unified <small>POSIX</small> standard.
</p>
<p>The Shell and Utilities volume concentrates on the command
interpreter interface and utility programs commonly executed from
the command line or by other programs.
The standard is freely available on the web at
<a href="https://pubs.opengroup.org/onlinepubs/9699919799/utilities/contents.html">https://pubs.opengroup.org/onlinepubs/9699919799/utilities/contents.html</a>.
</p>
<p>Bash is concerned with the aspects of the shell&rsquo;s behavior defined
by the <small>POSIX</small> Shell and Utilities volume. The shell command
language has of course been standardized, including the basic flow
control and program execution constructs, I/O redirection and
pipelines, argument handling, variable expansion, and quoting.
</p>
<p>The <i>special</i> builtins, which must be implemented as part of the
shell to provide the desired functionality, are specified as
being part of the shell; examples of these are <code>eval</code> and
<code>export</code>.
Other utilities appear in the sections of POSIX not
devoted to the shell which are commonly (and in some cases must
be) implemented as builtin commands, such as
<code>read</code> and <code>test</code>.
POSIX also specifies aspects of the shell&rsquo;s interactive
behavior, including job control and command
line editing.
Only vi-style line editing commands have been
standardized; emacs editing commands were left out due to
objections.
</p>
</div>
<div class="subsection" id="Bash-POSIX-Mode-1">
<h4 class="subsection">6.11.2 Bash POSIX Mode</h4>
<span id="index-POSIX-Mode"></span>
<p>Although Bash is an implementation of the <small>POSIX</small> shell
specification, there are areas where the Bash default behavior
differs from the specification.
The Bash <em>posix mode</em> changes the Bash
behavior in these areas so that it conforms to the standard more closely.
</p>
<p>Starting Bash with the <samp>--posix</samp> command-line option or executing
&lsquo;<samp>set -o posix</samp>&rsquo; while Bash is running will cause Bash to conform more
closely to the <small>POSIX</small> standard by changing the behavior to
@@ -9198,6 +9350,10 @@ causes a fatal syntax error in non-interactive shells.
</li><li> Function names may not be the same as one of the <small>POSIX</small> special
builtins.
</li><li> Even if a shell function whose name contains a slash was defined before
entering <small>POSIX</small> mode, the shell will not execute a function whose name
contains one or more slashes.
</li><li> <small>POSIX</small> special builtins are found before shell functions
during command lookup.
@@ -9232,6 +9388,11 @@ the <small>POSIX</small> standard, and include things like passing incorrect opt
redirection errors, variable assignment errors for assignments preceding
the command name, and so on.
</li><li> The <code>unset</code> builtin with the <samp>-v</samp> option specified returns a
fatal error if it attempts to unset a <code>readonly</code> or <code>non-unsettable</code>
variable, or encounters a variable name argument that is an invalid identifier,
which causes a non-interactive shell to exit.
</li><li> A non-interactive shell exits with an error status if a variable
assignment error occurs when no command name follows the assignment
statements.
@@ -9349,6 +9510,9 @@ indication of whether or not a history entry has been modified.
</li><li> The default editor used by <code>fc</code> is <code>ed</code>.
</li><li> If there are too many arguments supplied to <code>fc -s</code>, <code>fc</code> prints
an error message and returns failure.
</li><li> The <code>type</code> and <code>command</code> 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 <code>$PATH</code>.
@@ -9381,6 +9545,18 @@ arguments corresponding to floating point conversion specifiers, instead of
</li><li> Bash removes an exited background process&rsquo;s status from the list of such
statuses after the <code>wait</code> builtin is used to obtain it.
</li><li> A double quote character (&lsquo;<samp>&quot;</samp>&rsquo;) is treated specially when it appears
in a backquoted command substitution in the body of a here-document that
undergoes expansion.
That means, for example, that a backslash preceding a double quote
character will escape it and the backslash will be removed.
</li><li> Command substitutions don&rsquo;t set the &lsquo;<samp>?</samp>&rsquo; special parameter. The exit
status of a simple command without a command word is still the exit status
of the last command substitution that occurred while evaluating the variable
assignments and redirections in that command, but that does not happen until
after all of the assignments and redirections.
</li></ol>
<p>There is other <small>POSIX</small> behavior that Bash does not implement by
@@ -9392,6 +9568,9 @@ Specifically:
entries if <code>FCEDIT</code> is unset, rather than defaulting directly to
<code>ed</code>. <code>fc</code> uses <code>ed</code> if <code>EDITOR</code> is unset.
</li><li> A non-interactive shell does not exit if a variable assignment preceding
the <code>command</code> builtin or another non-special builtin fails.
</li><li> As noted above, Bash requires the <code>xpg_echo</code> option to be enabled for
the <code>echo</code> builtin to be fully conformant.
@@ -9403,10 +9582,11 @@ the <samp>--enable-strict-posix-default</samp> to <code>configure</code> when bu
</p>
<hr>
</div>
</div>
<div class="section" id="Shell-Compatibility-Mode">
<div class="header">
<p>
Previous: <a href="#Bash-POSIX-Mode" accesskey="p" rel="prev">Bash POSIX Mode</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
Previous: <a href="#Bash-POSIX-Mode" accesskey="p" rel="prev">Bash and POSIX</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Shell-Compatibility-Mode-1"></span><h3 class="section">6.12 Shell Compatibility Mode</h3>
<span id="index-Compatibility-Level"></span>
@@ -10729,6 +10909,12 @@ history lines may be modified and retain individual undo lists across
calls to <code>readline()</code>. The default is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
<dt id='index-search_002dignore_002dcase'><span><code>search-ignore-case</code><a href='#index-search_002dignore_002dcase' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline performs incremental and non-incremental
history list searches in a case-insensitive fashion.
The default value is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
<dt id='index-show_002dall_002dif_002dambiguous'><span><code>show-all-if-ambiguous</code><a href='#index-show_002dall_002dif_002dambiguous' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>This alters the default behavior of the completion functions. If
set to &lsquo;<samp>on</samp>&rsquo;,
@@ -11989,9 +12175,11 @@ pathname expansion.
</p>
</dd>
<dt id='index-shell_002dexpand_002dline-_0028M_002dC_002de_0029'><span><code>shell-expand-line (M-C-e)</code><a href='#index-shell_002dexpand_002dline-_0028M_002dC_002de_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Expand the line as the shell does.
This performs alias and history expansion as well as all of the shell
word expansions (see <a href="#Shell-Expansions">Shell Expansions</a>).
<dd><p>Expand the line by performing shell word expansions.
This performs alias and history expansion,
$&rsquo;<var>string</var>&rsquo; and $&quot;<var>string</var>&quot; quoting,
tilde expansion, parameter and variable expansion, arithmetic expansion,
word splitting, and quote removal.
</p>
</dd>
<dt id='index-history_002dexpand_002dline-_0028M_002d_005e_0029'><span><code>history-expand-line (M-^)</code><a href='#index-history_002dexpand_002dline-_0028M_002d_005e_0029' class='copiable-anchor'> &para;</a></span></dt>
@@ -12235,15 +12423,26 @@ be completed, and two to modify the completion as it is happening.
<dl compact="compact">
<dt id='index-compgen'><span><code>compgen</code><a href='#index-compgen' class='copiable-anchor'> &para;</a></span></dt>
<dd><div class="example">
<pre class="example"><code>compgen [<var>option</var>] [<var>word</var>]</code>
<pre class="example"><code>compgen [-V <var>varname</var>] [<var>option</var>] [<var>word</var>]</code>
</pre></div>
<p>Generate possible completion matches for <var>word</var> according to
the <var>option</var>s, which may be any option accepted by the
<code>complete</code>
builtin with the exception of <samp>-p</samp> and <samp>-r</samp>, and write
the matches to the standard output.
When using the <samp>-F</samp> or <samp>-C</samp> options, the various shell variables
builtin with the exceptions of
<samp>-p</samp>,
<samp>-r</samp>,
<samp>-D</samp>,
<samp>-E</samp>,
and
<samp>-I</samp>,
and write the matches to the standard output.
</p>
<p>If the <samp>-V</samp> option is supplied, <code>compgen</code> stores the generated
completions into the indexed array variable <var>varname</var> instead of writing
them to the standard output.
</p>
<p>When using the <samp>-F</samp> or <samp>-C</samp> options, the various shell variables
set by the programmable completion facilities, while available, will not
have useful values.
</p>
@@ -12259,9 +12458,9 @@ matches were generated.
</dd>
<dt id='index-complete'><span><code>complete</code><a href='#index-complete' class='copiable-anchor'> &para;</a></span></dt>
<dd><div class="example">
<pre class="example"><code>complete [-abcdefgjksuv] [-o <var>comp-option</var>] [-DEI] [-A <var>action</var>] [-G <var>globpat</var>]
[-W <var>wordlist</var>] [-F <var>function</var>] [-C <var>command</var>] [-X <var>filterpat</var>]
[-P <var>prefix</var>] [-S <var>suffix</var>] <var>name</var> [<var>name</var> &hellip;]</code>
<pre class="example"><code>complete [-abcdefgjksuv] [-o <var>comp-option</var>] [-DEI] [-A <var>action</var>]
[-G <var>globpat</var>] [-W <var>wordlist</var>] [-F <var>function</var>] [-C <var>command</var>]
[-X <var>filterpat</var>] [-P <var>prefix</var>] [-S <var>suffix</var>] <var>name</var> [<var>name</var> &hellip;]</code>
<code>complete -pr [-DEI] [<var>name</var> &hellip;]</code>
</pre></div>
@@ -13319,7 +13518,7 @@ may remove or edit it.
<p>If you want to build Bash in a directory separate from the source
directory &ndash; to build for multiple architectures, for example &ndash;
just use the full path to the configure script. The following commands
will build bash in a directory under <samp>/usr/local/build</samp> from
will build Bash in a directory under <samp>/usr/local/build</samp> from
the source code in <samp>/usr/local/src/bash-4.4</samp>:
</p>
<div class="example">
@@ -13438,7 +13637,7 @@ or by specifying a value for the <code>prefix</code> &lsquo;<samp>make</samp>&rs
variable when running &lsquo;<samp>make install</samp>&rsquo;
(e.g., &lsquo;<samp>make install prefix=<var>PATH</var></samp>&rsquo;).
The <code>prefix</code> variable provides a default for <code>exec_prefix</code> and
other variables used when installing bash.
other variables used when installing Bash.
</p>
<p>You can specify separate installation prefixes for
architecture-specific files and architecture-independent files.
@@ -13452,7 +13651,7 @@ you can specify these variables as arguments to <code>make</code>:
&lsquo;<samp>make install exec_prefix=/</samp>&rsquo; will install <code>bash</code> and
<code>bashbug</code> into <samp>/bin</samp> instead of the default <samp>/usr/local/bin</samp>.
</p>
<p>If you want to see the files bash will install and where it will install
<p>If you want to see the files Bash will install and where it will install
them without changing anything on your system, specify the variable
<code>DESTDIR</code> as an argument to <code>make</code>. Its value should be the
absolute directory path you&rsquo;d like to use as the root of your sample
@@ -13685,7 +13884,7 @@ builtins (see <a href="#Aliases">Aliases</a>).
</p>
</dd>
<dt><span><code>--enable-alt-array-implementation</code></span></dt>
<dd><p>This builds bash using an alternate implementation of arrays
<dd><p>This builds Bash using an alternate implementation of arrays
(see <a href="#Arrays">Arrays</a>) that provides faster access at the expense of using
more memory (sometimes many times more, depending on how sparse an array is).
</p>
@@ -13746,7 +13945,7 @@ This allows pipelines as well as shell builtins and functions to be timed.
</p>
</dd>
<dt><span><code>--enable-debugger</code></span></dt>
<dd><p>Include support for the bash debugger (distributed separately).
<dd><p>Include support for the Bash debugger (distributed separately).
</p>
</dd>
<dt><span><code>--enable-dev-fd-stat-broken</code></span></dt>
@@ -13872,7 +14071,7 @@ literals.
</p>
</dd>
<dt><span><code>--enable-strict-posix-default</code></span></dt>
<dd><p>Make Bash <small>POSIX</small>-conformant by default (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>).
<dd><p>Make Bash <small>POSIX</small>-conformant by default (see <a href="#Bash-POSIX-Mode">Bash and POSIX</a>).
</p>
</dd>
<dt><span><code>--enable-translatable-strings</code></span></dt>
@@ -13923,7 +14122,7 @@ The latest version of Bash is always available for FTP from
</p>
<p>Once you have determined that a bug actually exists, use the
<code>bashbug</code> command to submit a bug report or use the form at the
&lt;a href=&quot;https://savannah.gnu.org/projects/bash/&quot;&gt;Bash project page&lt;/a&gt;.
<a href="https://savannah.gnu.org/projects/bash/">Bash project page</a>.
If you have a fix, you are encouraged to submit that as well!
Suggestions and &lsquo;philosophical&rsquo; bug reports may be mailed
to <a href="mailto:bug-bash@gnu.org">bug-bash@gnu.org</a> or <a href="mailto:help-bash@gnu.org">help-bash@gnu.org</a>.
@@ -13966,7 +14165,7 @@ last version of the historical Bourne shell) as the baseline reference.
</p>
<ul>
<li> Bash is <small>POSIX</small>-conformant, even where the <small>POSIX</small> specification
differs from traditional <code>sh</code> behavior (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>).
differs from traditional <code>sh</code> behavior (see <a href="#Bash-POSIX-Mode">Bash and POSIX</a>).
</li><li> Bash has multi-character invocation options (see <a href="#Invoking-Bash">Invoking Bash</a>).
@@ -15340,6 +15539,7 @@ Next: <a href="#Function-Index" accesskey="n" rel="next">Function Index</a>, Pre
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Variable-Index_vr_letter-G">G</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-GLOBIGNORE"><code>GLOBIGNORE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-GLOBSORT"><code>GLOBSORT</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-GROUPS"><code>GROUPS</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Variable-Index_vr_letter-H">H</th><td></td><td></td></tr>
@@ -15428,6 +15628,7 @@ Next: <a href="#Function-Index" accesskey="n" rel="next">Function Index</a>, Pre
<tr><td></td><td valign="top"><a href="#index-revert_002dall_002dat_002dnewline"><code>revert-all-at-newline</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Readline-Init-File-Syntax">Readline Init File Syntax</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Variable-Index_vr_letter-S">S</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-search_002dignore_002dcase"><code>search-ignore-case</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Readline-Init-File-Syntax">Readline Init File Syntax</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-SECONDS"><code>SECONDS</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-SHELL"><code>SHELL</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-SHELLOPTS"><code>SHELLOPTS</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
@@ -15808,6 +16009,8 @@ Previous: <a href="#Function-Index" accesskey="p" rel="prev">Function Index</a>,
&nbsp;
<a class="summary-letter" href="#Concept-Index_cp_letter-T"><b>T</b></a>
&nbsp;
<a class="summary-letter" href="#Concept-Index_cp_letter-U"><b>U</b></a>
&nbsp;
<a class="summary-letter" href="#Concept-Index_cp_letter-V"><b>V</b></a>
&nbsp;
<a class="summary-letter" href="#Concept-Index_cp_letter-W"><b>W</b></a>
@@ -15822,6 +16025,7 @@ Previous: <a href="#Function-Index" accesskey="p" rel="prev">Function Index</a>,
<tr><td></td><td valign="top"><a href="#index-alias-expansion">alias expansion</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Aliases">Aliases</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-arithmetic-evaluation">arithmetic evaluation</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Shell-Arithmetic">Shell Arithmetic</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-arithmetic-expansion">arithmetic expansion</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Arithmetic-Expansion">Arithmetic Expansion</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-arithmetic-operators">arithmetic operators</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Shell-Arithmetic">Shell Arithmetic</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-arithmetic_002c-shell">arithmetic, shell</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Shell-Arithmetic">Shell Arithmetic</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-arrays">arrays</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Arrays">Arrays</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
@@ -15829,6 +16033,8 @@ Previous: <a href="#Function-Index" accesskey="p" rel="prev">Function Index</a>,
<tr><td></td><td valign="top"><a href="#index-background">background</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Job-Control-Basics">Job Control Basics</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Bash-configuration">Bash configuration</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Basic-Installation">Basic Installation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Bash-installation">Bash installation</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Basic-Installation">Basic Installation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-binary-arithmetic-operators">binary arithmetic operators</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Shell-Arithmetic">Shell Arithmetic</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-bitwise-arithmetic-operators">bitwise arithmetic operators</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Shell-Arithmetic">Shell Arithmetic</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Bourne-shell">Bourne shell</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Basic-Shell-Features">Basic Shell Features</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-brace-expansion">brace expansion</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Brace-Expansion">Brace Expansion</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-builtin-1">builtin</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Definitions">Definitions</a></td></tr>
@@ -15853,6 +16059,7 @@ Previous: <a href="#Function-Index" accesskey="p" rel="prev">Function Index</a>,
<tr><td></td><td valign="top"><a href="#index-Compatibility-Level">Compatibility Level</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Shell-Compatibility-Mode">Shell Compatibility Mode</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Compatibility-Mode">Compatibility Mode</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Shell-Compatibility-Mode">Shell Compatibility Mode</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-completion-builtins">completion builtins</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Programmable-Completion-Builtins">Programmable Completion Builtins</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-conditional-arithmetic-operator">conditional arithmetic operator</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Shell-Arithmetic">Shell Arithmetic</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-configuration">configuration</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Basic-Installation">Basic Installation</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-control-operator">control operator</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Definitions">Definitions</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-coprocess">coprocess</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Coprocesses">Coprocesses</a></td></tr>
@@ -15936,6 +16143,7 @@ Previous: <a href="#Function-Index" accesskey="p" rel="prev">Function Index</a>,
<tr><td></td><td valign="top"><a href="#index-pattern-matching">pattern matching</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Pattern-Matching">Pattern Matching</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-pipeline">pipeline</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Pipelines">Pipelines</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-POSIX">POSIX</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Definitions">Definitions</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-POSIX-description">POSIX description</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-POSIX-Mode">Bash POSIX Mode</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-POSIX-Mode">POSIX Mode</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-POSIX-Mode">Bash POSIX Mode</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-process-group">process group</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Definitions">Definitions</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-process-group-ID">process group ID</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Definitions">Definitions</a></td></tr>
@@ -15974,6 +16182,9 @@ Previous: <a href="#Function-Index" accesskey="p" rel="prev">Function Index</a>,
<tr><td></td><td valign="top"><a href="#index-token">token</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Definitions">Definitions</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-translation_002c-native-languages">translation, native languages</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Locale-Translation">Locale Translation</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-U">U</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-unary-arithmetic-operators">unary arithmetic operators</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Shell-Arithmetic">Shell Arithmetic</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-V">V</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-variable_002c-shell">variable, shell</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Shell-Parameters">Shell Parameters</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-variables_002c-readline">variables, readline</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Readline-Init-File-Syntax">Readline Init File Syntax</a></td></tr>
@@ -16024,6 +16235,8 @@ Previous: <a href="#Function-Index" accesskey="p" rel="prev">Function Index</a>,
&nbsp;
<a class="summary-letter" href="#Concept-Index_cp_letter-T"><b>T</b></a>
&nbsp;
<a class="summary-letter" href="#Concept-Index_cp_letter-U"><b>U</b></a>
&nbsp;
<a class="summary-letter" href="#Concept-Index_cp_letter-V"><b>V</b></a>
&nbsp;
<a class="summary-letter" href="#Concept-Index_cp_letter-W"><b>W</b></a>
+50 -44
View File
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.8 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.2, 15 April 2023).
Bash shell (version 5.2, 17 April 2023).
This is Edition 5.2, last updated 15 April 2023, of 'The GNU Bash
This is Edition 5.2, last updated 17 April 2023, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Copyright (C) 1988-2023 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.2, 15 April 2023). The Bash home page is
Bash shell (version 5.2, 17 April 2023). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.2, last updated 15 April 2023, of 'The GNU Bash
This is Edition 5.2, last updated 17 April 2023, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Bash contains features that appear in other popular shells, and some
@@ -9702,14 +9702,20 @@ command are to be completed, and two to modify the completion as it is
happening.
'compgen'
compgen [OPTION] [WORD]
compgen [-V VARNAME] [OPTION] [WORD]
Generate possible completion matches for WORD according to the
OPTIONs, which may be any option accepted by the 'complete' builtin
with the exception of '-p' and '-r', and write the matches to the
standard output. When using the '-F' or '-C' options, the various
shell variables set by the programmable completion facilities,
while available, will not have useful values.
with the exceptions of '-p', '-r', '-D', '-E', and '-I', and write
the matches to the standard output.
If the '-V' option is supplied, 'compgen' stores the generated
completions into the indexed array variable VARNAME instead of
writing them to the standard output.
When using the '-F' or '-C' options, the various shell variables
set by the programmable completion facilities, while available,
will not have useful values.
The matches will be generated in the same way as if the
programmable completion code had generated them directly from a
@@ -9720,9 +9726,9 @@ happening.
no matches were generated.
'complete'
complete [-abcdefgjksuv] [-o COMP-OPTION] [-DEI] [-A ACTION] [-G GLOBPAT]
[-W WORDLIST] [-F FUNCTION] [-C COMMAND] [-X FILTERPAT]
[-P PREFIX] [-S SUFFIX] NAME [NAME ...]
complete [-abcdefgjksuv] [-o COMP-OPTION] [-DEI] [-A ACTION]
[-G GLOBPAT] [-W WORDLIST] [-F FUNCTION] [-C COMMAND]
[-X FILTERPAT] [-P PREFIX] [-S SUFFIX] NAME [NAME ...]
complete -pr [-DEI] [NAME ...]
Specify how arguments to each NAME should be completed. If the
@@ -9922,10 +9928,10 @@ happening.
not matching FILTERPAT is removed.
The return value is true unless an invalid option is supplied, an
option other than '-p' or '-r' is supplied without a NAME argument,
an attempt is made to remove a completion specification for a NAME
for which no specification exists, or an error occurs adding a
completion specification.
option other than '-p', '-r', '-D', '-E', or '-I' is supplied
without a NAME argument, an attempt is made to remove a completion
specification for a NAME for which no specification exists, or an
error occurs adding a completion specification.
'compopt'
compopt [-o OPTION] [-DEI] [+o OPTION] [NAME]
@@ -11959,9 +11965,9 @@ D.1 Index of Shell Builtin Commands
* compgen: Programmable Completion Builtins.
(line 12)
* complete: Programmable Completion Builtins.
(line 30)
(line 36)
* compopt: Programmable Completion Builtins.
(line 238)
(line 244)
* continue: Bourne Shell Builtins.
(line 90)
* declare: Bash Builtins. (line 154)
@@ -12810,32 +12816,32 @@ Node: Miscellaneous Commands406286
Node: Readline vi Mode412324
Node: Programmable Completion413231
Node: Programmable Completion Builtins421011
Node: A Programmable Completion Example431763
Node: Using History Interactively437011
Node: Bash History Facilities437695
Node: Bash History Builtins440700
Node: History Interaction445724
Node: Event Designators449344
Node: Word Designators450698
Node: Modifiers452458
Node: Installing Bash454266
Node: Basic Installation455403
Node: Compilers and Options459125
Node: Compiling For Multiple Architectures459866
Node: Installation Names461558
Node: Specifying the System Type463667
Node: Sharing Defaults464384
Node: Operation Controls465057
Node: Optional Features466015
Node: Reporting Bugs477234
Node: Major Differences From The Bourne Shell478568
Node: GNU Free Documentation License495417
Node: Indexes520594
Node: Builtin Index521048
Node: Reserved Word Index527875
Node: Variable Index530323
Node: Function Index547311
Node: Concept Index561095
Node: A Programmable Completion Example431999
Node: Using History Interactively437247
Node: Bash History Facilities437931
Node: Bash History Builtins440936
Node: History Interaction445960
Node: Event Designators449580
Node: Word Designators450934
Node: Modifiers452694
Node: Installing Bash454502
Node: Basic Installation455639
Node: Compilers and Options459361
Node: Compiling For Multiple Architectures460102
Node: Installation Names461794
Node: Specifying the System Type463903
Node: Sharing Defaults464620
Node: Operation Controls465293
Node: Optional Features466251
Node: Reporting Bugs477470
Node: Major Differences From The Bourne Shell478804
Node: GNU Free Documentation License495653
Node: Indexes520830
Node: Builtin Index521284
Node: Reserved Word Index528111
Node: Variable Index530559
Node: Function Index547547
Node: Concept Index561331

End Tag Table
+62 -87
View File
@@ -1,11 +1,11 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/MacPorts 2021.58693_0) (preloaded format=pdfetex 2021.8.30) 2 DEC 2022 17:01
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/MacPorts 2021.58693_0) (preloaded format=pdfetex 2021.8.30) 17 APR 2023 15:24
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**\input /usr/local/src/bash/bash-20221202/doc/bashref.texi
(/usr/local/src/bash/bash-20221202/doc/bashref.texi
(/usr/local/src/bash/bash-20221202/doc/texinfo.tex
**\input /usr/local/src/bash/bash-20230416/doc/bashref.texi
(/usr/local/src/bash/bash-20230416/doc/bashref.texi
(/usr/local/src/bash/bash-20230416/doc/texinfo.tex
Loading texinfo [version 2015-11-22.14]:
\outerhsize=\dimen16
\outervsize=\dimen17
@@ -161,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-20221202/doc/version.texi) [1{/opt/local/var/db/texmf
(/usr/local/src/bash/bash-20230416/doc/version.texi) [1{/opt/local/var/db/texmf
/fonts/map/pdftex/updmap/pdftex.map}] [2]
(/usr/local/build/bash/bash-20221202/doc/bashref.toc [-1] [-2] [-3]) [-4]
(/usr/local/build/bash/bash-20221202/doc/bashref.toc)
(/usr/local/build/bash/bash-20221202/doc/bashref.toc) Chapter 1
(/usr/local/build/bash/bash-20230416/doc/bashref.toc [-1] [-2] [-3]) [-4]
(/usr/local/build/bash/bash-20230416/doc/bashref.toc)
(/usr/local/build/bash/bash-20230416/doc/bashref.toc) Chapter 1
\openout0 = `bashref.toc'.
(/usr/local/build/bash/bash-20221202/doc/bashref.aux)
(/usr/local/build/bash/bash-20230416/doc/bashref.aux)
\openout1 = `bashref.aux'.
Chapter 2 [1] [2]
@@ -228,7 +228,7 @@ Overfull \hbox (5.95723pt too wide) in paragraph at lines 724--725
[48] [49] [50] [51]
[52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66]
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5238--5238
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5279--5279
[]@texttt set [-abefhkmnptuvxBCEHPT] [-o @textttsl option-name@texttt ] [--] [
-] [@textttsl ar-gu-ment []@texttt ][]
@@ -241,7 +241,7 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5238--5238
.etc.
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5239--5239
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5280--5280
[]@texttt set [+abefhkmnptuvxBCEHPT] [+o @textttsl option-name@texttt ] [--] [
-] [@textttsl ar-gu-ment []@texttt ][]
@@ -253,16 +253,17 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5239--5239
.@texttt t
.etc.
[67] [68] [69] [70] [71] [72] [73] [74] [75] [76] Chapter 5 [77] [78] [79]
[80] [81] [82] [83] [84] [85] [86] [87] [88] [89] Chapter 6 [90] [91] [92]
[67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] Chapter 5 [78] [79]
[80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] Chapter 6 [91] [92]
[93] [94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106]
[107] [108] [109] [110] [111] Chapter 7 [112] [113] [114] [115]
[107] [108] [109] [110] [111] [112] [113] [114] Chapter 7 [115] [116] [117]
[118]
texinfo.tex: doing @include of rluser.texi
(/usr/local/src/bash/bash-20221202/lib/readline/doc/rluser.texi Chapter 8
[116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127]
Underfull \hbox (badness 7540) in paragraph at lines 868--874
(/usr/local/src/bash/bash-20230416/lib/readline/doc/rluser.texi
Chapter 8 [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129]
[130]
Underfull \hbox (badness 7540) in paragraph at lines 874--880
[]@textrm In the ex-am-ple above, @textttsl C-u[] @textrm is bound to the func
-tion
@@ -275,7 +276,7 @@ Underfull \hbox (badness 7540) in paragraph at lines 868--874
.etc.
Underfull \hbox (badness 10000) in paragraph at lines 868--874
Underfull \hbox (badness 10000) in paragraph at lines 874--880
@texttt universal-argument[]@textrm , @textttsl M-DEL[] @textrm is bound to th
e func-tion
@@ -287,8 +288,8 @@ e func-tion
.@texttt v
.etc.
[128] [129] [130]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 1102--1102
[131] [132] [133]
Overfull \hbox (26.43913pt too wide) in paragraph at lines 1108--1108
[]@texttt Meta-Control-h: backward-kill-word Text after the function name is i
gnored[]
@@ -300,32 +301,19 @@ gnored[]
.@texttt t
.etc.
[131] [132]
[134] [135]
@fnindfile=@write6
\openout6 = `bashref.fn'.
[133] [134] [135] [136] [137] [138] [139] [140] [141] [142]
[143] [144] [145]
Overfull \hbox (15.27109pt too wide) in paragraph at lines 2127--2127
[]@texttt complete [-abcdefgjksuv] [-o @textttsl comp-option@texttt ] [-DEI] [
-A @textttsl ac-tion@texttt ] [-
@hbox(7.60416+2.43333)x433.62
.@glue(@leftskip) 86.72375
.@hbox(0.0+0.0)x0.0
.@texttt c
.@texttt o
.@texttt m
.etc.
[146] [147] [148] [149] [150])
[136] [137] [138] [139] [140] [141] [142] [143] [144] [145]
[146] [147] [148] [149] [150] [151] [152] [153])
texinfo.tex: doing @include of hsuser.texi
(/usr/local/src/bash/bash-20221202/lib/readline/doc/hsuser.texi Chapter 9
[151] [152] [153] [154] [155] [156]) Chapter 10 [157] [158] [159] [160]
[161]
Underfull \hbox (badness 10000) in paragraph at lines 9395--9404
(/usr/local/src/bash/bash-20230416/lib/readline/doc/hsuser.texi Chapter 9
[154] [155] [156] [157] [158] [159]) Chapter 10 [160] [161] [162] [163]
[164]
Underfull \hbox (badness 10000) in paragraph at lines 9566--9575
[]@textrm All of the fol-low-ing op-tions ex-cept for `@texttt alt-array-implem
entation[]@textrm '[],
@@ -338,7 +326,7 @@ entation[]@textrm '[],
.etc.
Underfull \hbox (badness 10000) in paragraph at lines 9395--9404
Underfull \hbox (badness 10000) in paragraph at lines 9566--9575
@textrm `@texttt disabled-builtins[]@textrm '[], `@texttt direxpand-default[]@t
extrm '[], `@texttt strict-posix-default[]@textrm '[], and
@@ -350,55 +338,42 @@ extrm '[], `@texttt strict-posix-default[]@textrm '[], and
.@texttt a
.etc.
[162] [163] [164] [165] Appendix A [166]
Overfull \hbox (26.5845pt too wide) in paragraph at lines 9603--9609
@textrm mit a bug re-port or use the form at the @texttt <@textrm a href=@textt
t "@textrm https://savannah.gnu.org/projects/bash/@texttt ">@textrm Bash
@hbox(8.2125+2.73749)x433.62, glue set - 1.0
.@textrm m
.@textrm i
.@textrm t
.@glue 3.65 plus 1.825 minus 1.21666
.@textrm a
.etc.
Appendix B [167] [168] [169] [170] [171] [172] Appendix C [173]
[165] [166] [167] [168] Appendix A [169] Appendix B [170] [171] [172] [173]
[174] [175] Appendix C [176]
texinfo.tex: doing @include of fdl.texi
(/usr/local/src/bash/bash-20221202/doc/fdl.texi [174] [175] [176] [177]
[178] [179] [180]) Appendix D [181] [182] [183] [184] [185] [186] [187]
[188] [189] [190] )
(/usr/local/src/bash/bash-20230416/doc/fdl.texi
[177] [178] [179] [180] [181] [182] [183]) Appendix D [184] [185] [186]
[187] [188] [189] [190] [191] [192] [193] )
Here is how much of TeX's memory you used:
4095 strings out of 497086
47569 string characters out of 6206517
141518 words of memory out of 5000000
4867 multiletter control sequences out of 15000+600000
4100 strings out of 497086
47602 string characters out of 6206517
142025 words of memory out of 5000000
4869 multiletter control sequences out of 15000+600000
34315 words of font info for 116 fonts, out of 8000000 for 9000
51 hyphenation exceptions out of 8191
16i,6n,16p,331b,978s stack positions out of 5000i,500n,10000p,200000b,80000s
{/opt/local/share/texmf-texlive/fonts/enc/dvips/cm-super/cm-
super-t1.enc}</opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmb
x12.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmcsc10.
pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi10.pfb><
/opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi12.pfb></opt/
local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi9.pfb></opt/local/
share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr10.pfb></opt/local/share/
texmf-texlive/fonts/type1/public/amsfonts/cm/cmr9.pfb></opt/local/share/texmf-t
exlive/fonts/type1/public/amsfonts/cm/cmsl10.pfb></opt/local/share/texmf-texliv
e/fonts/type1/public/amsfonts/cm/cmsltt10.pfb></opt/local/share/texmf-texlive/f
onts/type1/public/amsfonts/cm/cmsy10.pfb></opt/local/share/texmf-texlive/fonts/
type1/public/amsfonts/cm/cmti10.pfb></opt/local/share/texmf-texlive/fonts/type1
/public/amsfonts/cm/cmtt10.pfb></opt/local/share/texmf-texlive/fonts/type1/publ
ic/amsfonts/cm/cmtt12.pfb></opt/local/share/texmf-texlive/fonts/type1/public/am
sfonts/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/sfrm1
440.pfb>
Output written on bashref.pdf (196 pages, 796156 bytes).
16i,6n,16p,331b,983s stack positions out of 5000i,500n,10000p,200000b,80000s
{/opt/local/share/texmf-texlive/font
s/enc/dvips/cm-super/cm-super-t1.enc}</opt/local/share/texmf-texlive/fonts/type
1/public/amsfonts/cm/cmbx12.pfb></opt/local/share/texmf-texlive/fonts/type1/pub
lic/amsfonts/cm/cmcsc10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/
amsfonts/cm/cmmi10.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfo
nts/cm/cmmi12.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/c
m/cmmi9.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr1
0.pfb></opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr9.pfb><
/opt/local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsl10.pfb></opt/
local/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsltt10.pfb></opt/loc
al/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsy10.pfb></opt/local/sh
are/texmf-texlive/fonts/type1/public/amsfonts/cm/cmti10.pfb></opt/local/share/t
exmf-texlive/fonts/type1/public/amsfonts/cm/cmtt10.pfb></opt/local/share/texmf-
texlive/fonts/type1/public/amsfonts/cm/cmtt12.pfb></opt/local/share/texmf-texli
ve/fonts/type1/public/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fon
ts/type1/public/cm-super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/typ
e1/public/cm-super/sfrm1440.pfb>
Output written on bashref.pdf (199 pages, 805186 bytes).
PDF statistics:
2756 PDF objects out of 2984 (max. 8388607)
2513 compressed objects within 26 object streams
324 named destinations out of 1000 (max. 500000)
1141 words of extra memory for PDF output out of 10000 (max. 10000000)
2794 PDF objects out of 2984 (max. 8388607)
2548 compressed objects within 26 object streams
327 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.
+84 -82
View File
@@ -33,109 +33,111 @@
@numsubsecentry{Shell Parameter Expansion}{3.5.3}{Shell Parameter Expansion}{26}
@numsubsecentry{Command Substitution}{3.5.4}{Command Substitution}{34}
@numsubsecentry{Arithmetic Expansion}{3.5.5}{Arithmetic Expansion}{34}
@numsubsecentry{Process Substitution}{3.5.6}{Process Substitution}{34}
@numsubsecentry{Process Substitution}{3.5.6}{Process Substitution}{35}
@numsubsecentry{Word Splitting}{3.5.7}{Word Splitting}{35}
@numsubsecentry{Filename Expansion}{3.5.8}{Filename Expansion}{35}
@numsubsecentry{Filename Expansion}{3.5.8}{Filename Expansion}{36}
@numsubsubsecentry{Pattern Matching}{3.5.8.1}{Pattern Matching}{36}
@numsubsecentry{Quote Removal}{3.5.9}{Quote Removal}{38}
@numsecentry{Redirections}{3.6}{Redirections}{38}
@numsubsecentry{Redirecting Input}{3.6.1}{}{39}
@numsubsecentry{Redirecting Output}{3.6.2}{}{39}
@numsubsecentry{Appending Redirected Output}{3.6.3}{}{39}
@numsubsecentry{Appending Redirected Output}{3.6.3}{}{40}
@numsubsecentry{Redirecting Standard Output and Standard Error}{3.6.4}{}{40}
@numsubsecentry{Appending Standard Output and Standard Error}{3.6.5}{}{40}
@numsubsecentry{Here Documents}{3.6.6}{}{40}
@numsubsecentry{Here Strings}{3.6.7}{}{41}
@numsubsecentry{Duplicating File Descriptors}{3.6.8}{}{41}
@numsubsecentry{Moving File Descriptors}{3.6.9}{}{41}
@numsubsecentry{Opening File Descriptors for Reading and Writing}{3.6.10}{}{41}
@numsubsecentry{Opening File Descriptors for Reading and Writing}{3.6.10}{}{42}
@numsecentry{Executing Commands}{3.7}{Executing Commands}{42}
@numsubsecentry{Simple Command Expansion}{3.7.1}{Simple Command Expansion}{42}
@numsubsecentry{Command Search and Execution}{3.7.2}{Command Search and Execution}{42}
@numsubsecentry{Command Execution Environment}{3.7.3}{Command Execution Environment}{43}
@numsubsecentry{Environment}{3.7.4}{Environment}{44}
@numsubsecentry{Exit Status}{3.7.5}{Exit Status}{44}
@numsubsecentry{Exit Status}{3.7.5}{Exit Status}{45}
@numsubsecentry{Signals}{3.7.6}{Signals}{45}
@numsecentry{Shell Scripts}{3.8}{Shell Scripts}{46}
@numchapentry{Shell Builtin Commands}{4}{Shell Builtin Commands}{48}
@numsecentry{Bourne Shell Builtins}{4.1}{Bourne Shell Builtins}{48}
@numsecentry{Bash Builtin Commands}{4.2}{Bash Builtins}{55}
@numsecentry{Bash Builtin Commands}{4.2}{Bash Builtins}{56}
@numsecentry{Modifying Shell Behavior}{4.3}{Modifying Shell Behavior}{67}
@numsubsecentry{The Set Builtin}{4.3.1}{The Set Builtin}{67}
@numsubsecentry{The Shopt Builtin}{4.3.2}{The Shopt Builtin}{71}
@numsecentry{Special Builtins}{4.4}{Special Builtins}{77}
@numchapentry{Shell Variables}{5}{Shell Variables}{78}
@numsecentry{Bourne Shell Variables}{5.1}{Bourne Shell Variables}{78}
@numsecentry{Bash Variables}{5.2}{Bash Variables}{78}
@numchapentry{Bash Features}{6}{Bash Features}{91}
@numsecentry{Invoking Bash}{6.1}{Invoking Bash}{91}
@numsecentry{Bash Startup Files}{6.2}{Bash Startup Files}{93}
@numsecentry{Interactive Shells}{6.3}{Interactive Shells}{94}
@numsubsecentry{What is an Interactive Shell?}{6.3.1}{What is an Interactive Shell?}{95}
@numsubsecentry{Is this Shell Interactive?}{6.3.2}{Is this Shell Interactive?}{95}
@numsubsecentry{Interactive Shell Behavior}{6.3.3}{Interactive Shell Behavior}{95}
@numsecentry{Bash Conditional Expressions}{6.4}{Bash Conditional Expressions}{96}
@numsecentry{Shell Arithmetic}{6.5}{Shell Arithmetic}{98}
@numsecentry{Aliases}{6.6}{Aliases}{100}
@numsecentry{Arrays}{6.7}{Arrays}{100}
@numsecentry{The Directory Stack}{6.8}{The Directory Stack}{102}
@numsubsecentry{Directory Stack Builtins}{6.8.1}{Directory Stack Builtins}{102}
@numsecentry{Controlling the Prompt}{6.9}{Controlling the Prompt}{104}
@numsecentry{The Restricted Shell}{6.10}{The Restricted Shell}{105}
@numsecentry{Bash POSIX Mode}{6.11}{Bash POSIX Mode}{106}
@numsecentry{Shell Compatibility Mode}{6.12}{Shell Compatibility Mode}{110}
@numchapentry{Job Control}{7}{Job Control}{113}
@numsecentry{Job Control Basics}{7.1}{Job Control Basics}{113}
@numsecentry{Job Control Builtins}{7.2}{Job Control Builtins}{114}
@numsecentry{Job Control Variables}{7.3}{Job Control Variables}{116}
@numchapentry{Command Line Editing}{8}{Command Line Editing}{117}
@numsecentry{Introduction to Line Editing}{8.1}{Introduction and Notation}{117}
@numsecentry{Readline Interaction}{8.2}{Readline Interaction}{117}
@numsubsecentry{Readline Bare Essentials}{8.2.1}{Readline Bare Essentials}{118}
@numsubsecentry{Readline Movement Commands}{8.2.2}{Readline Movement Commands}{118}
@numsubsecentry{Readline Killing Commands}{8.2.3}{Readline Killing Commands}{119}
@numsubsecentry{Readline Arguments}{8.2.4}{Readline Arguments}{119}
@numsubsecentry{Searching for Commands in the History}{8.2.5}{Searching}{119}
@numsecentry{Readline Init File}{8.3}{Readline Init File}{120}
@numsubsecentry{Readline Init File Syntax}{8.3.1}{Readline Init File Syntax}{120}
@numsubsecentry{Conditional Init Constructs}{8.3.2}{Conditional Init Constructs}{129}
@numsubsecentry{Sample Init File}{8.3.3}{Sample Init File}{130}
@numsecentry{Bindable Readline Commands}{8.4}{Bindable Readline Commands}{133}
@numsubsecentry{Commands For Moving}{8.4.1}{Commands For Moving}{133}
@numsubsecentry{Commands For Manipulating The History}{8.4.2}{Commands For History}{134}
@numsubsecentry{Commands For Changing Text}{8.4.3}{Commands For Text}{136}
@numsubsecentry{Killing And Yanking}{8.4.4}{Commands For Killing}{137}
@numsubsecentry{Specifying Numeric Arguments}{8.4.5}{Numeric Arguments}{138}
@numsubsecentry{Letting Readline Type For You}{8.4.6}{Commands For Completion}{139}
@numsubsecentry{Keyboard Macros}{8.4.7}{Keyboard Macros}{140}
@numsubsecentry{Some Miscellaneous Commands}{8.4.8}{Miscellaneous Commands}{141}
@numsecentry{Readline vi Mode}{8.5}{Readline vi Mode}{143}
@numsecentry{Programmable Completion}{8.6}{Programmable Completion}{143}
@numsecentry{Programmable Completion Builtins}{8.7}{Programmable Completion Builtins}{146}
@numsecentry{A Programmable Completion Example}{8.8}{A Programmable Completion Example}{150}
@numchapentry{Using History Interactively}{9}{Using History Interactively}{152}
@numsecentry{Bash History Facilities}{9.1}{Bash History Facilities}{152}
@numsecentry{Bash History Builtins}{9.2}{Bash History Builtins}{152}
@numsecentry{History Expansion}{9.3}{History Interaction}{154}
@numsubsecentry{Event Designators}{9.3.1}{Event Designators}{155}
@numsubsecentry{Word Designators}{9.3.2}{Word Designators}{156}
@numsubsecentry{Modifiers}{9.3.3}{Modifiers}{156}
@numchapentry{Installing Bash}{10}{Installing Bash}{158}
@numsecentry{Basic Installation}{10.1}{Basic Installation}{158}
@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{159}
@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{159}
@numsecentry{Installation Names}{10.4}{Installation Names}{160}
@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{160}
@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{160}
@numsecentry{Operation Controls}{10.7}{Operation Controls}{161}
@numsecentry{Optional Features}{10.8}{Optional Features}{161}
@appentry{Reporting Bugs}{A}{Reporting Bugs}{167}
@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{168}
@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{172}
@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{174}
@appentry{Indexes}{D}{Indexes}{182}
@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{182}
@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{183}
@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{184}
@appsecentry{Function Index}{D.4}{Function Index}{186}
@appsecentry{Concept Index}{D.5}{Concept Index}{188}
@numsecentry{Special Builtins}{4.4}{Special Builtins}{78}
@numchapentry{Shell Variables}{5}{Shell Variables}{79}
@numsecentry{Bourne Shell Variables}{5.1}{Bourne Shell Variables}{79}
@numsecentry{Bash Variables}{5.2}{Bash Variables}{79}
@numchapentry{Bash Features}{6}{Bash Features}{92}
@numsecentry{Invoking Bash}{6.1}{Invoking Bash}{92}
@numsecentry{Bash Startup Files}{6.2}{Bash Startup Files}{94}
@numsecentry{Interactive Shells}{6.3}{Interactive Shells}{95}
@numsubsecentry{What is an Interactive Shell?}{6.3.1}{What is an Interactive Shell?}{96}
@numsubsecentry{Is this Shell Interactive?}{6.3.2}{Is this Shell Interactive?}{96}
@numsubsecentry{Interactive Shell Behavior}{6.3.3}{Interactive Shell Behavior}{96}
@numsecentry{Bash Conditional Expressions}{6.4}{Bash Conditional Expressions}{97}
@numsecentry{Shell Arithmetic}{6.5}{Shell Arithmetic}{99}
@numsecentry{Aliases}{6.6}{Aliases}{101}
@numsecentry{Arrays}{6.7}{Arrays}{101}
@numsecentry{The Directory Stack}{6.8}{The Directory Stack}{103}
@numsubsecentry{Directory Stack Builtins}{6.8.1}{Directory Stack Builtins}{104}
@numsecentry{Controlling the Prompt}{6.9}{Controlling the Prompt}{105}
@numsecentry{The Restricted Shell}{6.10}{The Restricted Shell}{107}
@numsecentry{Bash and POSIX}{6.11}{Bash POSIX Mode}{107}
@numsubsecentry{What is POSIX?}{6.11.1}{}{107}
@numsubsecentry{Bash POSIX Mode}{6.11.2}{}{108}
@numsecentry{Shell Compatibility Mode}{6.12}{Shell Compatibility Mode}{112}
@numchapentry{Job Control}{7}{Job Control}{116}
@numsecentry{Job Control Basics}{7.1}{Job Control Basics}{116}
@numsecentry{Job Control Builtins}{7.2}{Job Control Builtins}{117}
@numsecentry{Job Control Variables}{7.3}{Job Control Variables}{119}
@numchapentry{Command Line Editing}{8}{Command Line Editing}{120}
@numsecentry{Introduction to Line Editing}{8.1}{Introduction and Notation}{120}
@numsecentry{Readline Interaction}{8.2}{Readline Interaction}{120}
@numsubsecentry{Readline Bare Essentials}{8.2.1}{Readline Bare Essentials}{121}
@numsubsecentry{Readline Movement Commands}{8.2.2}{Readline Movement Commands}{121}
@numsubsecentry{Readline Killing Commands}{8.2.3}{Readline Killing Commands}{122}
@numsubsecentry{Readline Arguments}{8.2.4}{Readline Arguments}{122}
@numsubsecentry{Searching for Commands in the History}{8.2.5}{Searching}{122}
@numsecentry{Readline Init File}{8.3}{Readline Init File}{123}
@numsubsecentry{Readline Init File Syntax}{8.3.1}{Readline Init File Syntax}{123}
@numsubsecentry{Conditional Init Constructs}{8.3.2}{Conditional Init Constructs}{132}
@numsubsecentry{Sample Init File}{8.3.3}{Sample Init File}{133}
@numsecentry{Bindable Readline Commands}{8.4}{Bindable Readline Commands}{136}
@numsubsecentry{Commands For Moving}{8.4.1}{Commands For Moving}{136}
@numsubsecentry{Commands For Manipulating The History}{8.4.2}{Commands For History}{137}
@numsubsecentry{Commands For Changing Text}{8.4.3}{Commands For Text}{139}
@numsubsecentry{Killing And Yanking}{8.4.4}{Commands For Killing}{140}
@numsubsecentry{Specifying Numeric Arguments}{8.4.5}{Numeric Arguments}{141}
@numsubsecentry{Letting Readline Type For You}{8.4.6}{Commands For Completion}{142}
@numsubsecentry{Keyboard Macros}{8.4.7}{Keyboard Macros}{143}
@numsubsecentry{Some Miscellaneous Commands}{8.4.8}{Miscellaneous Commands}{144}
@numsecentry{Readline vi Mode}{8.5}{Readline vi Mode}{146}
@numsecentry{Programmable Completion}{8.6}{Programmable Completion}{146}
@numsecentry{Programmable Completion Builtins}{8.7}{Programmable Completion Builtins}{149}
@numsecentry{A Programmable Completion Example}{8.8}{A Programmable Completion Example}{153}
@numchapentry{Using History Interactively}{9}{Using History Interactively}{155}
@numsecentry{Bash History Facilities}{9.1}{Bash History Facilities}{155}
@numsecentry{Bash History Builtins}{9.2}{Bash History Builtins}{155}
@numsecentry{History Expansion}{9.3}{History Interaction}{157}
@numsubsecentry{Event Designators}{9.3.1}{Event Designators}{158}
@numsubsecentry{Word Designators}{9.3.2}{Word Designators}{159}
@numsubsecentry{Modifiers}{9.3.3}{Modifiers}{159}
@numchapentry{Installing Bash}{10}{Installing Bash}{161}
@numsecentry{Basic Installation}{10.1}{Basic Installation}{161}
@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{162}
@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{162}
@numsecentry{Installation Names}{10.4}{Installation Names}{163}
@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{163}
@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{163}
@numsecentry{Operation Controls}{10.7}{Operation Controls}{164}
@numsecentry{Optional Features}{10.8}{Optional Features}{164}
@appentry{Reporting Bugs}{A}{Reporting Bugs}{170}
@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{171}
@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{175}
@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{177}
@appentry{Indexes}{D}{Indexes}{185}
@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{185}
@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{186}
@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{187}
@appsecentry{Function Index}{D.4}{Function Index}{189}
@appsecentry{Concept Index}{D.5}{Concept Index}{191}
+155 -153
View File
@@ -18,156 +18,158 @@
\entry{$!}{24}{\code {$!}}
\entry{0}{24}{\code {0}}
\entry{$0}{24}{\code {$0}}
\entry{CDPATH}{78}{\code {CDPATH}}
\entry{HOME}{78}{\code {HOME}}
\entry{IFS}{78}{\code {IFS}}
\entry{MAIL}{78}{\code {MAIL}}
\entry{MAILPATH}{78}{\code {MAILPATH}}
\entry{OPTARG}{78}{\code {OPTARG}}
\entry{OPTIND}{78}{\code {OPTIND}}
\entry{PATH}{78}{\code {PATH}}
\entry{PS1}{78}{\code {PS1}}
\entry{PS2}{78}{\code {PS2}}
\entry{_}{78}{\code {_}}
\entry{$_}{78}{\code {$_}}
\entry{BASH}{79}{\code {BASH}}
\entry{BASHOPTS}{79}{\code {BASHOPTS}}
\entry{BASHPID}{79}{\code {BASHPID}}
\entry{BASH_ALIASES}{79}{\code {BASH_ALIASES}}
\entry{BASH_ARGC}{79}{\code {BASH_ARGC}}
\entry{BASH_ARGV}{79}{\code {BASH_ARGV}}
\entry{BASH_ARGV0}{80}{\code {BASH_ARGV0}}
\entry{BASH_CMDS}{80}{\code {BASH_CMDS}}
\entry{BASH_COMMAND}{80}{\code {BASH_COMMAND}}
\entry{BASH_COMPAT}{80}{\code {BASH_COMPAT}}
\entry{BASH_ENV}{80}{\code {BASH_ENV}}
\entry{BASH_EXECUTION_STRING}{80}{\code {BASH_EXECUTION_STRING}}
\entry{BASH_LINENO}{80}{\code {BASH_LINENO}}
\entry{BASH_LOADABLES_PATH}{81}{\code {BASH_LOADABLES_PATH}}
\entry{BASH_REMATCH}{81}{\code {BASH_REMATCH}}
\entry{BASH_SOURCE}{81}{\code {BASH_SOURCE}}
\entry{BASH_SUBSHELL}{81}{\code {BASH_SUBSHELL}}
\entry{BASH_VERSINFO}{81}{\code {BASH_VERSINFO}}
\entry{BASH_VERSION}{81}{\code {BASH_VERSION}}
\entry{BASH_XTRACEFD}{81}{\code {BASH_XTRACEFD}}
\entry{CHILD_MAX}{82}{\code {CHILD_MAX}}
\entry{COLUMNS}{82}{\code {COLUMNS}}
\entry{COMP_CWORD}{82}{\code {COMP_CWORD}}
\entry{COMP_LINE}{82}{\code {COMP_LINE}}
\entry{COMP_POINT}{82}{\code {COMP_POINT}}
\entry{COMP_TYPE}{82}{\code {COMP_TYPE}}
\entry{COMP_KEY}{82}{\code {COMP_KEY}}
\entry{COMP_WORDBREAKS}{82}{\code {COMP_WORDBREAKS}}
\entry{COMP_WORDS}{82}{\code {COMP_WORDS}}
\entry{COMPREPLY}{83}{\code {COMPREPLY}}
\entry{COPROC}{83}{\code {COPROC}}
\entry{DIRSTACK}{83}{\code {DIRSTACK}}
\entry{EMACS}{83}{\code {EMACS}}
\entry{ENV}{83}{\code {ENV}}
\entry{EPOCHREALTIME}{83}{\code {EPOCHREALTIME}}
\entry{EPOCHSECONDS}{83}{\code {EPOCHSECONDS}}
\entry{EUID}{83}{\code {EUID}}
\entry{EXECIGNORE}{83}{\code {EXECIGNORE}}
\entry{FCEDIT}{84}{\code {FCEDIT}}
\entry{FIGNORE}{84}{\code {FIGNORE}}
\entry{FUNCNAME}{84}{\code {FUNCNAME}}
\entry{FUNCNEST}{84}{\code {FUNCNEST}}
\entry{GLOBIGNORE}{84}{\code {GLOBIGNORE}}
\entry{GROUPS}{84}{\code {GROUPS}}
\entry{histchars}{84}{\code {histchars}}
\entry{HISTCMD}{84}{\code {HISTCMD}}
\entry{HISTCONTROL}{85}{\code {HISTCONTROL}}
\entry{HISTFILE}{85}{\code {HISTFILE}}
\entry{HISTFILESIZE}{85}{\code {HISTFILESIZE}}
\entry{HISTIGNORE}{85}{\code {HISTIGNORE}}
\entry{HISTSIZE}{85}{\code {HISTSIZE}}
\entry{HISTTIMEFORMAT}{85}{\code {HISTTIMEFORMAT}}
\entry{HOSTFILE}{86}{\code {HOSTFILE}}
\entry{HOSTNAME}{86}{\code {HOSTNAME}}
\entry{HOSTTYPE}{86}{\code {HOSTTYPE}}
\entry{IGNOREEOF}{86}{\code {IGNOREEOF}}
\entry{INPUTRC}{86}{\code {INPUTRC}}
\entry{INSIDE_EMACS}{86}{\code {INSIDE_EMACS}}
\entry{LANG}{86}{\code {LANG}}
\entry{LC_ALL}{86}{\code {LC_ALL}}
\entry{LC_COLLATE}{86}{\code {LC_COLLATE}}
\entry{LC_CTYPE}{86}{\code {LC_CTYPE}}
\entry{LC_MESSAGES}{86}{\code {LC_MESSAGES}}
\entry{LC_NUMERIC}{87}{\code {LC_NUMERIC}}
\entry{LC_TIME}{87}{\code {LC_TIME}}
\entry{LINENO}{87}{\code {LINENO}}
\entry{LINES}{87}{\code {LINES}}
\entry{MACHTYPE}{87}{\code {MACHTYPE}}
\entry{MAILCHECK}{87}{\code {MAILCHECK}}
\entry{MAPFILE}{87}{\code {MAPFILE}}
\entry{OLDPWD}{87}{\code {OLDPWD}}
\entry{OPTERR}{87}{\code {OPTERR}}
\entry{OSTYPE}{87}{\code {OSTYPE}}
\entry{PIPESTATUS}{87}{\code {PIPESTATUS}}
\entry{POSIXLY_CORRECT}{87}{\code {POSIXLY_CORRECT}}
\entry{PPID}{87}{\code {PPID}}
\entry{PROMPT_COMMAND}{87}{\code {PROMPT_COMMAND}}
\entry{PROMPT_DIRTRIM}{88}{\code {PROMPT_DIRTRIM}}
\entry{PS0}{88}{\code {PS0}}
\entry{PS3}{88}{\code {PS3}}
\entry{PS4}{88}{\code {PS4}}
\entry{PWD}{88}{\code {PWD}}
\entry{RANDOM}{88}{\code {RANDOM}}
\entry{READLINE_ARGUMENT}{88}{\code {READLINE_ARGUMENT}}
\entry{READLINE_LINE}{88}{\code {READLINE_LINE}}
\entry{READLINE_MARK}{88}{\code {READLINE_MARK}}
\entry{READLINE_POINT}{88}{\code {READLINE_POINT}}
\entry{REPLY}{88}{\code {REPLY}}
\entry{SECONDS}{88}{\code {SECONDS}}
\entry{SHELL}{88}{\code {SHELL}}
\entry{SHELLOPTS}{89}{\code {SHELLOPTS}}
\entry{SHLVL}{89}{\code {SHLVL}}
\entry{SRANDOM}{89}{\code {SRANDOM}}
\entry{TIMEFORMAT}{89}{\code {TIMEFORMAT}}
\entry{TMOUT}{89}{\code {TMOUT}}
\entry{TMPDIR}{90}{\code {TMPDIR}}
\entry{UID}{90}{\code {UID}}
\entry{auto_resume}{116}{\code {auto_resume}}
\entry{active-region-start-color}{121}{\code {active-region-start-color}}
\entry{active-region-end-color}{121}{\code {active-region-end-color}}
\entry{bell-style}{121}{\code {bell-style}}
\entry{bind-tty-special-chars}{121}{\code {bind-tty-special-chars}}
\entry{blink-matching-paren}{122}{\code {blink-matching-paren}}
\entry{colored-completion-prefix}{122}{\code {colored-completion-prefix}}
\entry{colored-stats}{122}{\code {colored-stats}}
\entry{comment-begin}{122}{\code {comment-begin}}
\entry{completion-display-width}{122}{\code {completion-display-width}}
\entry{completion-ignore-case}{122}{\code {completion-ignore-case}}
\entry{completion-map-case}{122}{\code {completion-map-case}}
\entry{completion-prefix-display-length}{122}{\code {completion-prefix-display-length}}
\entry{completion-query-items}{122}{\code {completion-query-items}}
\entry{convert-meta}{123}{\code {convert-meta}}
\entry{disable-completion}{123}{\code {disable-completion}}
\entry{echo-control-characters}{123}{\code {echo-control-characters}}
\entry{editing-mode}{123}{\code {editing-mode}}
\entry{emacs-mode-string}{123}{\code {emacs-mode-string}}
\entry{enable-active-region}{123}{\code {enable-active-region}}
\entry{enable-bracketed-paste}{124}{\code {enable-bracketed-paste}}
\entry{enable-keypad}{124}{\code {enable-keypad}}
\entry{expand-tilde}{124}{\code {expand-tilde}}
\entry{history-preserve-point}{124}{\code {history-preserve-point}}
\entry{history-size}{124}{\code {history-size}}
\entry{horizontal-scroll-mode}{124}{\code {horizontal-scroll-mode}}
\entry{input-meta}{124}{\code {input-meta}}
\entry{meta-flag}{124}{\code {meta-flag}}
\entry{isearch-terminators}{125}{\code {isearch-terminators}}
\entry{keymap}{125}{\code {keymap}}
\entry{mark-modified-lines}{125}{\code {mark-modified-lines}}
\entry{mark-symlinked-directories}{125}{\code {mark-symlinked-directories}}
\entry{match-hidden-files}{125}{\code {match-hidden-files}}
\entry{menu-complete-display-prefix}{126}{\code {menu-complete-display-prefix}}
\entry{output-meta}{126}{\code {output-meta}}
\entry{page-completions}{126}{\code {page-completions}}
\entry{revert-all-at-newline}{126}{\code {revert-all-at-newline}}
\entry{show-all-if-ambiguous}{126}{\code {show-all-if-ambiguous}}
\entry{show-all-if-unmodified}{126}{\code {show-all-if-unmodified}}
\entry{show-mode-in-prompt}{126}{\code {show-mode-in-prompt}}
\entry{skip-completed-text}{127}{\code {skip-completed-text}}
\entry{vi-cmd-mode-string}{127}{\code {vi-cmd-mode-string}}
\entry{vi-ins-mode-string}{127}{\code {vi-ins-mode-string}}
\entry{visible-stats}{127}{\code {visible-stats}}
\entry{CDPATH}{79}{\code {CDPATH}}
\entry{HOME}{79}{\code {HOME}}
\entry{IFS}{79}{\code {IFS}}
\entry{MAIL}{79}{\code {MAIL}}
\entry{MAILPATH}{79}{\code {MAILPATH}}
\entry{OPTARG}{79}{\code {OPTARG}}
\entry{OPTIND}{79}{\code {OPTIND}}
\entry{PATH}{79}{\code {PATH}}
\entry{PS1}{79}{\code {PS1}}
\entry{PS2}{79}{\code {PS2}}
\entry{_}{79}{\code {_}}
\entry{$_}{79}{\code {$_}}
\entry{BASH}{80}{\code {BASH}}
\entry{BASHOPTS}{80}{\code {BASHOPTS}}
\entry{BASHPID}{80}{\code {BASHPID}}
\entry{BASH_ALIASES}{80}{\code {BASH_ALIASES}}
\entry{BASH_ARGC}{80}{\code {BASH_ARGC}}
\entry{BASH_ARGV}{80}{\code {BASH_ARGV}}
\entry{BASH_ARGV0}{81}{\code {BASH_ARGV0}}
\entry{BASH_CMDS}{81}{\code {BASH_CMDS}}
\entry{BASH_COMMAND}{81}{\code {BASH_COMMAND}}
\entry{BASH_COMPAT}{81}{\code {BASH_COMPAT}}
\entry{BASH_ENV}{81}{\code {BASH_ENV}}
\entry{BASH_EXECUTION_STRING}{81}{\code {BASH_EXECUTION_STRING}}
\entry{BASH_LINENO}{81}{\code {BASH_LINENO}}
\entry{BASH_LOADABLES_PATH}{82}{\code {BASH_LOADABLES_PATH}}
\entry{BASH_REMATCH}{82}{\code {BASH_REMATCH}}
\entry{BASH_SOURCE}{82}{\code {BASH_SOURCE}}
\entry{BASH_SUBSHELL}{82}{\code {BASH_SUBSHELL}}
\entry{BASH_VERSINFO}{82}{\code {BASH_VERSINFO}}
\entry{BASH_VERSION}{82}{\code {BASH_VERSION}}
\entry{BASH_XTRACEFD}{82}{\code {BASH_XTRACEFD}}
\entry{CHILD_MAX}{83}{\code {CHILD_MAX}}
\entry{COLUMNS}{83}{\code {COLUMNS}}
\entry{COMP_CWORD}{83}{\code {COMP_CWORD}}
\entry{COMP_LINE}{83}{\code {COMP_LINE}}
\entry{COMP_POINT}{83}{\code {COMP_POINT}}
\entry{COMP_TYPE}{83}{\code {COMP_TYPE}}
\entry{COMP_KEY}{83}{\code {COMP_KEY}}
\entry{COMP_WORDBREAKS}{83}{\code {COMP_WORDBREAKS}}
\entry{COMP_WORDS}{83}{\code {COMP_WORDS}}
\entry{COMPREPLY}{84}{\code {COMPREPLY}}
\entry{COPROC}{84}{\code {COPROC}}
\entry{DIRSTACK}{84}{\code {DIRSTACK}}
\entry{EMACS}{84}{\code {EMACS}}
\entry{ENV}{84}{\code {ENV}}
\entry{EPOCHREALTIME}{84}{\code {EPOCHREALTIME}}
\entry{EPOCHSECONDS}{84}{\code {EPOCHSECONDS}}
\entry{EUID}{84}{\code {EUID}}
\entry{EXECIGNORE}{84}{\code {EXECIGNORE}}
\entry{FCEDIT}{85}{\code {FCEDIT}}
\entry{FIGNORE}{85}{\code {FIGNORE}}
\entry{FUNCNAME}{85}{\code {FUNCNAME}}
\entry{FUNCNEST}{85}{\code {FUNCNEST}}
\entry{GLOBIGNORE}{85}{\code {GLOBIGNORE}}
\entry{GLOBSORT}{85}{\code {GLOBSORT}}
\entry{GROUPS}{85}{\code {GROUPS}}
\entry{histchars}{86}{\code {histchars}}
\entry{HISTCMD}{86}{\code {HISTCMD}}
\entry{HISTCONTROL}{86}{\code {HISTCONTROL}}
\entry{HISTFILE}{86}{\code {HISTFILE}}
\entry{HISTFILESIZE}{86}{\code {HISTFILESIZE}}
\entry{HISTIGNORE}{86}{\code {HISTIGNORE}}
\entry{HISTSIZE}{87}{\code {HISTSIZE}}
\entry{HISTTIMEFORMAT}{87}{\code {HISTTIMEFORMAT}}
\entry{HOSTFILE}{87}{\code {HOSTFILE}}
\entry{HOSTNAME}{87}{\code {HOSTNAME}}
\entry{HOSTTYPE}{87}{\code {HOSTTYPE}}
\entry{IGNOREEOF}{87}{\code {IGNOREEOF}}
\entry{INPUTRC}{87}{\code {INPUTRC}}
\entry{INSIDE_EMACS}{87}{\code {INSIDE_EMACS}}
\entry{LANG}{87}{\code {LANG}}
\entry{LC_ALL}{88}{\code {LC_ALL}}
\entry{LC_COLLATE}{88}{\code {LC_COLLATE}}
\entry{LC_CTYPE}{88}{\code {LC_CTYPE}}
\entry{LC_MESSAGES}{88}{\code {LC_MESSAGES}}
\entry{LC_NUMERIC}{88}{\code {LC_NUMERIC}}
\entry{LC_TIME}{88}{\code {LC_TIME}}
\entry{LINENO}{88}{\code {LINENO}}
\entry{LINES}{88}{\code {LINES}}
\entry{MACHTYPE}{88}{\code {MACHTYPE}}
\entry{MAILCHECK}{88}{\code {MAILCHECK}}
\entry{MAPFILE}{88}{\code {MAPFILE}}
\entry{OLDPWD}{88}{\code {OLDPWD}}
\entry{OPTERR}{88}{\code {OPTERR}}
\entry{OSTYPE}{88}{\code {OSTYPE}}
\entry{PIPESTATUS}{88}{\code {PIPESTATUS}}
\entry{POSIXLY_CORRECT}{89}{\code {POSIXLY_CORRECT}}
\entry{PPID}{89}{\code {PPID}}
\entry{PROMPT_COMMAND}{89}{\code {PROMPT_COMMAND}}
\entry{PROMPT_DIRTRIM}{89}{\code {PROMPT_DIRTRIM}}
\entry{PS0}{89}{\code {PS0}}
\entry{PS3}{89}{\code {PS3}}
\entry{PS4}{89}{\code {PS4}}
\entry{PWD}{89}{\code {PWD}}
\entry{RANDOM}{89}{\code {RANDOM}}
\entry{READLINE_ARGUMENT}{89}{\code {READLINE_ARGUMENT}}
\entry{READLINE_LINE}{89}{\code {READLINE_LINE}}
\entry{READLINE_MARK}{89}{\code {READLINE_MARK}}
\entry{READLINE_POINT}{90}{\code {READLINE_POINT}}
\entry{REPLY}{90}{\code {REPLY}}
\entry{SECONDS}{90}{\code {SECONDS}}
\entry{SHELL}{90}{\code {SHELL}}
\entry{SHELLOPTS}{90}{\code {SHELLOPTS}}
\entry{SHLVL}{90}{\code {SHLVL}}
\entry{SRANDOM}{90}{\code {SRANDOM}}
\entry{TIMEFORMAT}{90}{\code {TIMEFORMAT}}
\entry{TMOUT}{91}{\code {TMOUT}}
\entry{TMPDIR}{91}{\code {TMPDIR}}
\entry{UID}{91}{\code {UID}}
\entry{auto_resume}{119}{\code {auto_resume}}
\entry{active-region-start-color}{124}{\code {active-region-start-color}}
\entry{active-region-end-color}{124}{\code {active-region-end-color}}
\entry{bell-style}{124}{\code {bell-style}}
\entry{bind-tty-special-chars}{124}{\code {bind-tty-special-chars}}
\entry{blink-matching-paren}{125}{\code {blink-matching-paren}}
\entry{colored-completion-prefix}{125}{\code {colored-completion-prefix}}
\entry{colored-stats}{125}{\code {colored-stats}}
\entry{comment-begin}{125}{\code {comment-begin}}
\entry{completion-display-width}{125}{\code {completion-display-width}}
\entry{completion-ignore-case}{125}{\code {completion-ignore-case}}
\entry{completion-map-case}{125}{\code {completion-map-case}}
\entry{completion-prefix-display-length}{125}{\code {completion-prefix-display-length}}
\entry{completion-query-items}{125}{\code {completion-query-items}}
\entry{convert-meta}{126}{\code {convert-meta}}
\entry{disable-completion}{126}{\code {disable-completion}}
\entry{echo-control-characters}{126}{\code {echo-control-characters}}
\entry{editing-mode}{126}{\code {editing-mode}}
\entry{emacs-mode-string}{126}{\code {emacs-mode-string}}
\entry{enable-active-region}{126}{\code {enable-active-region}}
\entry{enable-bracketed-paste}{127}{\code {enable-bracketed-paste}}
\entry{enable-keypad}{127}{\code {enable-keypad}}
\entry{expand-tilde}{127}{\code {expand-tilde}}
\entry{history-preserve-point}{127}{\code {history-preserve-point}}
\entry{history-size}{127}{\code {history-size}}
\entry{horizontal-scroll-mode}{127}{\code {horizontal-scroll-mode}}
\entry{input-meta}{127}{\code {input-meta}}
\entry{meta-flag}{127}{\code {meta-flag}}
\entry{isearch-terminators}{128}{\code {isearch-terminators}}
\entry{keymap}{128}{\code {keymap}}
\entry{mark-modified-lines}{128}{\code {mark-modified-lines}}
\entry{mark-symlinked-directories}{128}{\code {mark-symlinked-directories}}
\entry{match-hidden-files}{128}{\code {match-hidden-files}}
\entry{menu-complete-display-prefix}{129}{\code {menu-complete-display-prefix}}
\entry{output-meta}{129}{\code {output-meta}}
\entry{page-completions}{129}{\code {page-completions}}
\entry{revert-all-at-newline}{129}{\code {revert-all-at-newline}}
\entry{search-ignore-case}{129}{\code {search-ignore-case}}
\entry{show-all-if-ambiguous}{129}{\code {show-all-if-ambiguous}}
\entry{show-all-if-unmodified}{129}{\code {show-all-if-unmodified}}
\entry{show-mode-in-prompt}{129}{\code {show-mode-in-prompt}}
\entry{skip-completed-text}{130}{\code {skip-completed-text}}
\entry{vi-cmd-mode-string}{130}{\code {vi-cmd-mode-string}}
\entry{vi-ins-mode-string}{130}{\code {vi-ins-mode-string}}
\entry{visible-stats}{130}{\code {visible-stats}}
+155 -153
View File
@@ -11,7 +11,7 @@
\entry{\code {$-}}{23}
\entry{\code {$?}}{23}
\entry{\code {$@}}{23}
\entry{\code {$_}}{78}
\entry{\code {$_}}{79}
\entry{\code {$0}}{24}
\initial {*}
\entry{\code {*}}{23}
@@ -22,178 +22,180 @@
\initial {@}
\entry{\code {@}}{23}
\initial {_}
\entry{\code {_}}{78}
\entry{\code {_}}{79}
\initial {0}
\entry{\code {0}}{24}
\initial {A}
\entry{\code {active-region-end-color}}{121}
\entry{\code {active-region-start-color}}{121}
\entry{\code {auto_resume}}{116}
\entry{\code {active-region-end-color}}{124}
\entry{\code {active-region-start-color}}{124}
\entry{\code {auto_resume}}{119}
\initial {B}
\entry{\code {BASH}}{79}
\entry{\code {BASH_ALIASES}}{79}
\entry{\code {BASH_ARGC}}{79}
\entry{\code {BASH_ARGV}}{79}
\entry{\code {BASH_ARGV0}}{80}
\entry{\code {BASH_CMDS}}{80}
\entry{\code {BASH_COMMAND}}{80}
\entry{\code {BASH_COMPAT}}{80}
\entry{\code {BASH_ENV}}{80}
\entry{\code {BASH_EXECUTION_STRING}}{80}
\entry{\code {BASH_LINENO}}{80}
\entry{\code {BASH_LOADABLES_PATH}}{81}
\entry{\code {BASH_REMATCH}}{81}
\entry{\code {BASH_SOURCE}}{81}
\entry{\code {BASH_SUBSHELL}}{81}
\entry{\code {BASH_VERSINFO}}{81}
\entry{\code {BASH_VERSION}}{81}
\entry{\code {BASH_XTRACEFD}}{81}
\entry{\code {BASHOPTS}}{79}
\entry{\code {BASHPID}}{79}
\entry{\code {bell-style}}{121}
\entry{\code {bind-tty-special-chars}}{121}
\entry{\code {blink-matching-paren}}{122}
\entry{\code {BASH}}{80}
\entry{\code {BASH_ALIASES}}{80}
\entry{\code {BASH_ARGC}}{80}
\entry{\code {BASH_ARGV}}{80}
\entry{\code {BASH_ARGV0}}{81}
\entry{\code {BASH_CMDS}}{81}
\entry{\code {BASH_COMMAND}}{81}
\entry{\code {BASH_COMPAT}}{81}
\entry{\code {BASH_ENV}}{81}
\entry{\code {BASH_EXECUTION_STRING}}{81}
\entry{\code {BASH_LINENO}}{81}
\entry{\code {BASH_LOADABLES_PATH}}{82}
\entry{\code {BASH_REMATCH}}{82}
\entry{\code {BASH_SOURCE}}{82}
\entry{\code {BASH_SUBSHELL}}{82}
\entry{\code {BASH_VERSINFO}}{82}
\entry{\code {BASH_VERSION}}{82}
\entry{\code {BASH_XTRACEFD}}{82}
\entry{\code {BASHOPTS}}{80}
\entry{\code {BASHPID}}{80}
\entry{\code {bell-style}}{124}
\entry{\code {bind-tty-special-chars}}{124}
\entry{\code {blink-matching-paren}}{125}
\initial {C}
\entry{\code {CDPATH}}{78}
\entry{\code {CHILD_MAX}}{82}
\entry{\code {colored-completion-prefix}}{122}
\entry{\code {colored-stats}}{122}
\entry{\code {COLUMNS}}{82}
\entry{\code {comment-begin}}{122}
\entry{\code {COMP_CWORD}}{82}
\entry{\code {COMP_KEY}}{82}
\entry{\code {COMP_LINE}}{82}
\entry{\code {COMP_POINT}}{82}
\entry{\code {COMP_TYPE}}{82}
\entry{\code {COMP_WORDBREAKS}}{82}
\entry{\code {COMP_WORDS}}{82}
\entry{\code {completion-display-width}}{122}
\entry{\code {completion-ignore-case}}{122}
\entry{\code {completion-map-case}}{122}
\entry{\code {completion-prefix-display-length}}{122}
\entry{\code {completion-query-items}}{122}
\entry{\code {COMPREPLY}}{83}
\entry{\code {convert-meta}}{123}
\entry{\code {COPROC}}{83}
\entry{\code {CDPATH}}{79}
\entry{\code {CHILD_MAX}}{83}
\entry{\code {colored-completion-prefix}}{125}
\entry{\code {colored-stats}}{125}
\entry{\code {COLUMNS}}{83}
\entry{\code {comment-begin}}{125}
\entry{\code {COMP_CWORD}}{83}
\entry{\code {COMP_KEY}}{83}
\entry{\code {COMP_LINE}}{83}
\entry{\code {COMP_POINT}}{83}
\entry{\code {COMP_TYPE}}{83}
\entry{\code {COMP_WORDBREAKS}}{83}
\entry{\code {COMP_WORDS}}{83}
\entry{\code {completion-display-width}}{125}
\entry{\code {completion-ignore-case}}{125}
\entry{\code {completion-map-case}}{125}
\entry{\code {completion-prefix-display-length}}{125}
\entry{\code {completion-query-items}}{125}
\entry{\code {COMPREPLY}}{84}
\entry{\code {convert-meta}}{126}
\entry{\code {COPROC}}{84}
\initial {D}
\entry{\code {DIRSTACK}}{83}
\entry{\code {disable-completion}}{123}
\entry{\code {DIRSTACK}}{84}
\entry{\code {disable-completion}}{126}
\initial {E}
\entry{\code {echo-control-characters}}{123}
\entry{\code {editing-mode}}{123}
\entry{\code {emacs-mode-string}}{123}
\entry{\code {EMACS}}{83}
\entry{\code {enable-active-region}}{123}
\entry{\code {enable-bracketed-paste}}{124}
\entry{\code {enable-keypad}}{124}
\entry{\code {ENV}}{83}
\entry{\code {EPOCHREALTIME}}{83}
\entry{\code {EPOCHSECONDS}}{83}
\entry{\code {EUID}}{83}
\entry{\code {EXECIGNORE}}{83}
\entry{\code {expand-tilde}}{124}
\entry{\code {echo-control-characters}}{126}
\entry{\code {editing-mode}}{126}
\entry{\code {emacs-mode-string}}{126}
\entry{\code {EMACS}}{84}
\entry{\code {enable-active-region}}{126}
\entry{\code {enable-bracketed-paste}}{127}
\entry{\code {enable-keypad}}{127}
\entry{\code {ENV}}{84}
\entry{\code {EPOCHREALTIME}}{84}
\entry{\code {EPOCHSECONDS}}{84}
\entry{\code {EUID}}{84}
\entry{\code {EXECIGNORE}}{84}
\entry{\code {expand-tilde}}{127}
\initial {F}
\entry{\code {FCEDIT}}{84}
\entry{\code {FIGNORE}}{84}
\entry{\code {FUNCNAME}}{84}
\entry{\code {FUNCNEST}}{84}
\entry{\code {FCEDIT}}{85}
\entry{\code {FIGNORE}}{85}
\entry{\code {FUNCNAME}}{85}
\entry{\code {FUNCNEST}}{85}
\initial {G}
\entry{\code {GLOBIGNORE}}{84}
\entry{\code {GROUPS}}{84}
\entry{\code {GLOBIGNORE}}{85}
\entry{\code {GLOBSORT}}{85}
\entry{\code {GROUPS}}{85}
\initial {H}
\entry{\code {histchars}}{84}
\entry{\code {HISTCMD}}{84}
\entry{\code {HISTCONTROL}}{85}
\entry{\code {HISTFILE}}{85}
\entry{\code {HISTFILESIZE}}{85}
\entry{\code {HISTIGNORE}}{85}
\entry{\code {history-preserve-point}}{124}
\entry{\code {history-size}}{124}
\entry{\code {HISTSIZE}}{85}
\entry{\code {HISTTIMEFORMAT}}{85}
\entry{\code {HOME}}{78}
\entry{\code {horizontal-scroll-mode}}{124}
\entry{\code {HOSTFILE}}{86}
\entry{\code {HOSTNAME}}{86}
\entry{\code {HOSTTYPE}}{86}
\entry{\code {histchars}}{86}
\entry{\code {HISTCMD}}{86}
\entry{\code {HISTCONTROL}}{86}
\entry{\code {HISTFILE}}{86}
\entry{\code {HISTFILESIZE}}{86}
\entry{\code {HISTIGNORE}}{86}
\entry{\code {history-preserve-point}}{127}
\entry{\code {history-size}}{127}
\entry{\code {HISTSIZE}}{87}
\entry{\code {HISTTIMEFORMAT}}{87}
\entry{\code {HOME}}{79}
\entry{\code {horizontal-scroll-mode}}{127}
\entry{\code {HOSTFILE}}{87}
\entry{\code {HOSTNAME}}{87}
\entry{\code {HOSTTYPE}}{87}
\initial {I}
\entry{\code {IFS}}{78}
\entry{\code {IGNOREEOF}}{86}
\entry{\code {input-meta}}{124}
\entry{\code {INPUTRC}}{86}
\entry{\code {INSIDE_EMACS}}{86}
\entry{\code {isearch-terminators}}{125}
\entry{\code {IFS}}{79}
\entry{\code {IGNOREEOF}}{87}
\entry{\code {input-meta}}{127}
\entry{\code {INPUTRC}}{87}
\entry{\code {INSIDE_EMACS}}{87}
\entry{\code {isearch-terminators}}{128}
\initial {K}
\entry{\code {keymap}}{125}
\entry{\code {keymap}}{128}
\initial {L}
\entry{\code {LANG}}{8, 86}
\entry{\code {LC_ALL}}{86}
\entry{\code {LC_COLLATE}}{86}
\entry{\code {LC_CTYPE}}{86}
\entry{\code {LC_MESSAGES}}{8, 86}
\entry{\code {LC_NUMERIC}}{87}
\entry{\code {LC_TIME}}{87}
\entry{\code {LINENO}}{87}
\entry{\code {LINES}}{87}
\entry{\code {LANG}}{8, 87}
\entry{\code {LC_ALL}}{88}
\entry{\code {LC_COLLATE}}{88}
\entry{\code {LC_CTYPE}}{88}
\entry{\code {LC_MESSAGES}}{8, 88}
\entry{\code {LC_NUMERIC}}{88}
\entry{\code {LC_TIME}}{88}
\entry{\code {LINENO}}{88}
\entry{\code {LINES}}{88}
\initial {M}
\entry{\code {MACHTYPE}}{87}
\entry{\code {MAIL}}{78}
\entry{\code {MAILCHECK}}{87}
\entry{\code {MAILPATH}}{78}
\entry{\code {MAPFILE}}{87}
\entry{\code {mark-modified-lines}}{125}
\entry{\code {mark-symlinked-directories}}{125}
\entry{\code {match-hidden-files}}{125}
\entry{\code {menu-complete-display-prefix}}{126}
\entry{\code {meta-flag}}{124}
\entry{\code {MACHTYPE}}{88}
\entry{\code {MAIL}}{79}
\entry{\code {MAILCHECK}}{88}
\entry{\code {MAILPATH}}{79}
\entry{\code {MAPFILE}}{88}
\entry{\code {mark-modified-lines}}{128}
\entry{\code {mark-symlinked-directories}}{128}
\entry{\code {match-hidden-files}}{128}
\entry{\code {menu-complete-display-prefix}}{129}
\entry{\code {meta-flag}}{127}
\initial {O}
\entry{\code {OLDPWD}}{87}
\entry{\code {OPTARG}}{78}
\entry{\code {OPTERR}}{87}
\entry{\code {OPTIND}}{78}
\entry{\code {OSTYPE}}{87}
\entry{\code {output-meta}}{126}
\entry{\code {OLDPWD}}{88}
\entry{\code {OPTARG}}{79}
\entry{\code {OPTERR}}{88}
\entry{\code {OPTIND}}{79}
\entry{\code {OSTYPE}}{88}
\entry{\code {output-meta}}{129}
\initial {P}
\entry{\code {page-completions}}{126}
\entry{\code {PATH}}{78}
\entry{\code {PIPESTATUS}}{87}
\entry{\code {POSIXLY_CORRECT}}{87}
\entry{\code {PPID}}{87}
\entry{\code {PROMPT_COMMAND}}{87}
\entry{\code {PROMPT_DIRTRIM}}{88}
\entry{\code {PS0}}{88}
\entry{\code {PS1}}{78}
\entry{\code {PS2}}{78}
\entry{\code {PS3}}{88}
\entry{\code {PS4}}{88}
\entry{\code {PWD}}{88}
\entry{\code {page-completions}}{129}
\entry{\code {PATH}}{79}
\entry{\code {PIPESTATUS}}{88}
\entry{\code {POSIXLY_CORRECT}}{89}
\entry{\code {PPID}}{89}
\entry{\code {PROMPT_COMMAND}}{89}
\entry{\code {PROMPT_DIRTRIM}}{89}
\entry{\code {PS0}}{89}
\entry{\code {PS1}}{79}
\entry{\code {PS2}}{79}
\entry{\code {PS3}}{89}
\entry{\code {PS4}}{89}
\entry{\code {PWD}}{89}
\initial {R}
\entry{\code {RANDOM}}{88}
\entry{\code {READLINE_ARGUMENT}}{88}
\entry{\code {READLINE_LINE}}{88}
\entry{\code {READLINE_MARK}}{88}
\entry{\code {READLINE_POINT}}{88}
\entry{\code {REPLY}}{88}
\entry{\code {revert-all-at-newline}}{126}
\entry{\code {RANDOM}}{89}
\entry{\code {READLINE_ARGUMENT}}{89}
\entry{\code {READLINE_LINE}}{89}
\entry{\code {READLINE_MARK}}{89}
\entry{\code {READLINE_POINT}}{90}
\entry{\code {REPLY}}{90}
\entry{\code {revert-all-at-newline}}{129}
\initial {S}
\entry{\code {SECONDS}}{88}
\entry{\code {SHELL}}{88}
\entry{\code {SHELLOPTS}}{89}
\entry{\code {SHLVL}}{89}
\entry{\code {show-all-if-ambiguous}}{126}
\entry{\code {show-all-if-unmodified}}{126}
\entry{\code {show-mode-in-prompt}}{126}
\entry{\code {skip-completed-text}}{127}
\entry{\code {SRANDOM}}{89}
\entry{\code {search-ignore-case}}{129}
\entry{\code {SECONDS}}{90}
\entry{\code {SHELL}}{90}
\entry{\code {SHELLOPTS}}{90}
\entry{\code {SHLVL}}{90}
\entry{\code {show-all-if-ambiguous}}{129}
\entry{\code {show-all-if-unmodified}}{129}
\entry{\code {show-mode-in-prompt}}{129}
\entry{\code {skip-completed-text}}{130}
\entry{\code {SRANDOM}}{90}
\initial {T}
\entry{\code {TEXTDOMAIN}}{8}
\entry{\code {TEXTDOMAINDIR}}{8}
\entry{\code {TIMEFORMAT}}{89}
\entry{\code {TMOUT}}{89}
\entry{\code {TMPDIR}}{90}
\entry{\code {TIMEFORMAT}}{90}
\entry{\code {TMOUT}}{91}
\entry{\code {TMPDIR}}{91}
\initial {U}
\entry{\code {UID}}{90}
\entry{\code {UID}}{91}
\initial {V}
\entry{\code {vi-cmd-mode-string}}{127}
\entry{\code {vi-ins-mode-string}}{127}
\entry{\code {visible-stats}}{127}
\entry{\code {vi-cmd-mode-string}}{130}
\entry{\code {vi-ins-mode-string}}{130}
\entry{\code {visible-stats}}{130}
+911 -909
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -2,10 +2,10 @@
Copyright (C) 1988-2023 Free Software Foundation, Inc.
@end ignore
@set LASTCHANGE Sat Apr 15 17:27:25 EDT 2023
@set LASTCHANGE Mon Apr 17 10:35:15 EDT 2023
@set EDITION 5.2
@set VERSION 5.2
@set UPDATED 15 April 2023
@set UPDATED 17 April 2023
@set UPDATED-MONTH April 2023
+1
View File
@@ -412,6 +412,7 @@ extern STRINGLIST *strlist_prefix_suffix (STRINGLIST *, const char *, const char
extern void strlist_print (STRINGLIST *, const char *);
extern void strlist_walk (STRINGLIST *, sh_strlist_map_func_t *);
extern void strlist_sort (STRINGLIST *);
extern WORD_LIST *strlist_to_word_list (STRINGLIST *, int, int);
/* declarations for functions defined in lib/sh/stringvec.c */
+1 -1
View File
@@ -7,7 +7,7 @@ This document describes the GNU Readline Library, a utility for aiding
in the consistency of user interface across discrete programs that need
to provide a command line interface.
Copyright (C) 1988--2022 Free Software Foundation, Inc.
Copyright (C) 1988--2023 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
+25 -7
View File
@@ -2106,14 +2106,25 @@ be completed, and two to modify the completion as it is happening.
@item compgen
@btindex compgen
@example
@code{compgen [@var{option}] [@var{word}]}
@code{compgen [-V @var{varname}] [@var{option}] [@var{word}]}
@end example
Generate possible completion matches for @var{word} according to
the @var{option}s, which may be any option accepted by the
@code{complete}
builtin with the exception of @option{-p} and @option{-r}, and write
the matches to the standard output.
builtin with the exceptions of
@option{-p},
@option{-r},
@option{-D},
@option{-E},
and
@option{-I},
and write the matches to the standard output.
If the @option{-V} option is supplied, @code{compgen} stores the generated
completions into the indexed array variable @var{varname} instead of writing
them to the standard output.
When using the @option{-F} or @option{-C} options, the various shell variables
set by the programmable completion facilities, while available, will not
have useful values.
@@ -2130,9 +2141,9 @@ matches were generated.
@item complete
@btindex complete
@example
@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-DEI] [-A @var{action}] [-G @var{globpat}]
[-W @var{wordlist}] [-F @var{function}] [-C @var{command}] [-X @var{filterpat}]
[-P @var{prefix}] [-S @var{suffix}] @var{name} [@var{name} @dots{}]}
@code{complete [-abcdefgjksuv] [-o @var{comp-option}] [-DEI] [-A @var{action}]
[-G @var{globpat}] [-W @var{wordlist}] [-F @var{function}] [-C @var{command}]
[-X @var{filterpat}] [-P @var{prefix}] [-S @var{suffix}] @var{name} [@var{name} @dots{}]}
@code{complete -pr [-DEI] [@var{name} @dots{}]}
@end example
@@ -2338,7 +2349,14 @@ case, any completion not matching @var{filterpat} is removed.
@end table
The return value is true unless an invalid option is supplied, an option
other than @option{-p} or @option{-r} is supplied without a @var{name}
other than
@option{-p},
@option{-r},
@option{-D},
@option{-E},
or
@option{-I}
is supplied without a @var{name}
argument, an attempt is made to remove a completion specification for
a @var{name} for which no specification exists, or
an error occurs adding a completion specification.