mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-29 16:39:53 +02:00
complete initial implementation of nofork command substitution (${ command; })
This commit is contained in:
@@ -6302,3 +6302,32 @@ subst.c
|
||||
param_expand: call extract_function_subst as appropriate
|
||||
- function_substitute: like command_substitute, but for nofork command
|
||||
substitutions. Just a stub for now
|
||||
|
||||
5/11
|
||||
----
|
||||
jobs.[ch]
|
||||
- pipeline_saver: already_making_children now saved and restored as
|
||||
part of the struct; no longer need a separate variable
|
||||
- save_pipeline,restore_pipeline: save already_making_children to struct
|
||||
|
||||
parse.y
|
||||
- parse_comsub,xparse_dolparen: handle `(' as the first char of a
|
||||
funsub (ksh93 supports that)
|
||||
|
||||
subst.c
|
||||
- function_substitute: complete implementation; handle both funsubs
|
||||
and valsubs (need different terminology); dummy up a fake shell
|
||||
function so local variables and `return' work; do the right thing
|
||||
with process groups
|
||||
- executing_funsub: flag for the rest of the shell to know we're
|
||||
expanding a funsub; used by parse_and_execute
|
||||
|
||||
builtins/evalstring.c
|
||||
- parse_and_execute: check executing_funsub to do the right thing with
|
||||
alias expansion and posix mode
|
||||
|
||||
5/12
|
||||
----
|
||||
doc/bash.1,doc/bashref.texi
|
||||
- function substitution (or lambda substitution, or nofork command
|
||||
substitution): document
|
||||
|
||||
@@ -1013,6 +1013,10 @@ tests/comsub4.sub f
|
||||
tests/comsub5.sub f
|
||||
tests/comsub6.sub f
|
||||
tests/comsub7.sub f
|
||||
tests/comsub2.tests f
|
||||
tests/comsub2.right f
|
||||
tests/comsub21.sub f
|
||||
tests/comsub22.sub f
|
||||
tests/comsub-eof.tests f
|
||||
tests/comsub-eof0.sub f
|
||||
tests/comsub-eof1.sub f
|
||||
@@ -1411,6 +1415,7 @@ tests/run-case f
|
||||
tests/run-casemod f
|
||||
tests/run-complete f
|
||||
tests/run-comsub f
|
||||
tests/run-comsub2 f
|
||||
tests/run-comsub-eof f
|
||||
tests/run-comsub-posix f
|
||||
tests/run-cond f
|
||||
|
||||
@@ -531,7 +531,7 @@ parse_and_execute (char *string, const char *from_file, int flags)
|
||||
the global value of the flag (expaliases_flag) changes). */
|
||||
local_expalias = expand_aliases;
|
||||
local_alflag = expaliases_flag;
|
||||
if (subshell_environment & SUBSHELL_COMSUB)
|
||||
if ((subshell_environment & SUBSHELL_COMSUB) || executing_funsub)
|
||||
expand_aliases = expaliases_flag;
|
||||
|
||||
/* See if this is a candidate for $( <file ). */
|
||||
@@ -552,7 +552,7 @@ parse_and_execute (char *string, const char *from_file, int flags)
|
||||
discard_unwind_frame ("pe_dispose");
|
||||
|
||||
/* If the global value didn't change, we restore what we had. */
|
||||
if ((subshell_environment & SUBSHELL_COMSUB) && local_alflag == expaliases_flag)
|
||||
if (((subshell_environment & SUBSHELL_COMSUB) || executing_funsub) && local_alflag == expaliases_flag)
|
||||
expand_aliases = local_expalias;
|
||||
|
||||
if (flags & SEVAL_ONECMD)
|
||||
|
||||
+2100
-2067
File diff suppressed because it is too large
Load Diff
+50
-8
@@ -5,12 +5,12 @@
|
||||
.\" Case Western Reserve University
|
||||
.\" chet.ramey@case.edu
|
||||
.\"
|
||||
.\" Last Change: Mon Apr 17 10:35:39 EDT 2023
|
||||
.\" Last Change: Sun May 14 15:32:59 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 17" "GNU Bash 5.2"
|
||||
.TH BASH 1 "2023 May 14" "GNU Bash 5.2"
|
||||
.\"
|
||||
.\" There's some problem with having a `@'
|
||||
.\" in a tagged paragraph with the BSD man macros.
|
||||
@@ -3581,14 +3581,15 @@ expansion as described below.
|
||||
.RE
|
||||
.SS Command Substitution
|
||||
\fICommand substitution\fP allows the output of a command to replace
|
||||
the command name. There are two forms:
|
||||
the command itself.
|
||||
There are two standard forms:
|
||||
.RS
|
||||
.PP
|
||||
\fB$(\fP\fIcommand\fP\|\fB)\fP
|
||||
.RE
|
||||
or
|
||||
or (deprecated)
|
||||
.RS
|
||||
\fB\`\fP\fIcommand\fP\fB\`\fP
|
||||
\fB\`\fP\fIcommand\fP\fB\`\fP.
|
||||
.RE
|
||||
.PP
|
||||
.B Bash
|
||||
@@ -3600,7 +3601,7 @@ word splitting.
|
||||
The command substitution \fB$(cat \fIfile\fP)\fR can be replaced by
|
||||
the equivalent but faster \fB$(< \fIfile\fP)\fR.
|
||||
.PP
|
||||
When the old-style backquote form of substitution is used,
|
||||
With the old-style backquote form of substitution,
|
||||
backslash retains its literal meaning except when followed by
|
||||
.BR $ ,
|
||||
.BR \` ,
|
||||
@@ -3611,11 +3612,52 @@ command substitution.
|
||||
When using the $(\^\fIcommand\fP\|) form, all characters between the
|
||||
parentheses make up the command; none are treated specially.
|
||||
.PP
|
||||
There is an alternate form of command substitution:
|
||||
.RS
|
||||
.PP
|
||||
\fB${\fP\fIC\fP \fIcommand\fP\fB;\fP\|\fB}\fP
|
||||
.RE
|
||||
.PP
|
||||
which executes \fIcommand\fP in the current execution environment.
|
||||
This means that side effects of \fIcommand\fP take effect immediately
|
||||
in the current execution environment and persist in the current
|
||||
environment after the command completes (e.g., the \fBexit\fP builtin
|
||||
will exit the shell).
|
||||
.PP
|
||||
The character \fIC\fP following the open brace must be a space, tab,
|
||||
newline, \fB(\fP, or \fB|\fP, and the close brace must be in a position
|
||||
where a reserved word may appear (i.e., preceded by a command terminator
|
||||
such as semicolon).
|
||||
\fBBash\fP allows the close brace to be joined to the remaining characters in
|
||||
the word without being followed by a shell metacharacter as a reserved
|
||||
word would usually require.
|
||||
.PP
|
||||
This type of command substitution superficially resembles executing an
|
||||
unnamed shell function: local variables are created as when a shell
|
||||
function is executing, and the \fBreturn\fP builtin forces
|
||||
\fIcommand\fP to complete;
|
||||
however, the rest of the execution environment,
|
||||
including the positional parameters, is shared with the caller.
|
||||
.PP
|
||||
If the first character following the open brace is a \fB(\fP,
|
||||
\fIcommand\fP is executed in a subshell, and \fIcommand\fP must be
|
||||
terminated by a \fB)\fP. This is similar to the \fB(\fP compound
|
||||
command (see \fBCompound Commands\fP above).
|
||||
If the first character is a \fB|\fP, the construct expands to the
|
||||
value of the \fBREPLY\fP shell variable after \fIcommand\fP executes,
|
||||
without removing any trailing newlines,
|
||||
and the standard output of \fIcommand\fP remains the same as in the
|
||||
calling shell.
|
||||
\fBBash\fP creates \fBREPLY\fP as an initially-unset local variable when
|
||||
\fIcommand\fP executes, and restores \fBREPLY\fP to the value it had
|
||||
before the command substitution after \fIcommand\fP completes,
|
||||
as with any local variable.
|
||||
.PP
|
||||
Command substitutions may be nested. To nest when using the backquoted form,
|
||||
escape the inner backquotes with backslashes.
|
||||
.PP
|
||||
If the substitution appears within double quotes, word splitting and
|
||||
pathname expansion are not performed on the results.
|
||||
If the substitution appears within double quotes, \fBbash\fP does not perform
|
||||
word splitting and pathname expansion on the results.
|
||||
.SS Arithmetic Expansion
|
||||
Arithmetic expansion allows the evaluation of an arithmetic expression
|
||||
and the substitution of the result. The format for arithmetic expansion is:
|
||||
|
||||
+63
-12
@@ -3,7 +3,7 @@
|
||||
</HEAD>
|
||||
<BODY><TABLE WIDTH=100%>
|
||||
<TR>
|
||||
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2023 April 17<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2023 May 14<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
</TR>
|
||||
</TABLE>
|
||||
<BR><A HREF="#index">Index</A>
|
||||
@@ -2869,8 +2869,10 @@ and
|
||||
|
||||
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
|
||||
For example, a value of <I>-mtime</I> sorts the results in descending
|
||||
order by modification time (newest first).
|
||||
A sort specifier of <I>nosort</I> disables sorting completely; the results
|
||||
are returned in the order they are read from the file system,.
|
||||
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.
|
||||
@@ -4463,16 +4465,17 @@ expansion as described below.
|
||||
<H4>Command Substitution</H4>
|
||||
|
||||
<I>Command substitution</I> allows the output of a command to replace
|
||||
the command name. There are two forms:
|
||||
the command itself.
|
||||
There are two standard forms:
|
||||
<DL COMPACT><DT><DD>
|
||||
<P>
|
||||
|
||||
<B>$(</B><I>command</I><B>)</B>
|
||||
</DL>
|
||||
|
||||
or
|
||||
or (deprecated)
|
||||
<DL COMPACT><DT><DD>
|
||||
<B>`</B><I>command</I><B>`</B>
|
||||
<B>`</B><I>command</I><B>`</B>.
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
@@ -4488,7 +4491,7 @@ The command substitution <B>$(cat </B><I>file</I>) can be replaced by
|
||||
the equivalent but faster <B>$(< </B><I>file</I>).
|
||||
<P>
|
||||
|
||||
When the old-style backquote form of substitution is used,
|
||||
With the old-style backquote form of substitution,
|
||||
backslash retains its literal meaning except when followed by
|
||||
<B>$</B>,
|
||||
|
||||
@@ -4503,12 +4506,60 @@ When using the $(<I>command</I>) form, all characters between the
|
||||
parentheses make up the command; none are treated specially.
|
||||
<P>
|
||||
|
||||
There is an alternate form of command substitution:
|
||||
<DL COMPACT><DT><DD>
|
||||
<P>
|
||||
|
||||
<B>${</B><I>C</I> <I>command</I><B>;</B><B>}</B>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
|
||||
which executes <I>command</I> in the current execution environment.
|
||||
This means that side effects of <I>command</I> take effect immediately
|
||||
in the current execution environment and persist in the current
|
||||
environment after the command completes (e.g., the <B>exit</B> builtin
|
||||
will exit the shell).
|
||||
<P>
|
||||
|
||||
The character <I>C</I> following the open brace must be a space, tab,
|
||||
newline, <B>(</B>, or <B>|</B>, and the close brace must be in a position
|
||||
where a reserved word may appear (i.e., preceded by a command terminator
|
||||
such as semicolon).
|
||||
<B>Bash</B> allows the close brace to be joined to the remaining characters in
|
||||
the word without being followed by a shell metacharacter as a reserved
|
||||
word would usually require.
|
||||
<P>
|
||||
|
||||
This type of command substitution superficially resembles executing an
|
||||
unnamed shell function: local variables are created as when a shell
|
||||
function is executing, and the <B>return</B> builtin forces
|
||||
<I>command</I> to complete;
|
||||
however, the rest of the execution environment,
|
||||
including the positional parameters, is shared with the caller.
|
||||
<P>
|
||||
|
||||
If the first character following the open brace is a <B>(</B>,
|
||||
<I>command</I> is executed in a subshell, and <I>command</I> must be
|
||||
terminated by a <B>)</B>. This is similar to the <B>(</B> compound
|
||||
command (see <B>Compound Commands</B> above).
|
||||
If the first character is a <B>|</B>, the construct expands to the
|
||||
value of the <B>REPLY</B> shell variable after <I>command</I> executes,
|
||||
without removing any trailing newlines,
|
||||
and the standard output of <I>command</I> remains the same as in the
|
||||
calling shell.
|
||||
<B>Bash</B> creates <B>REPLY</B> as an initially-unset local variable when
|
||||
<I>command</I> executes, and restores <B>REPLY</B> to the value it had
|
||||
before the command substitution after <I>command</I> completes,
|
||||
as with any local variable.
|
||||
<P>
|
||||
|
||||
Command substitutions may be nested. To nest when using the backquoted form,
|
||||
escape the inner backquotes with backslashes.
|
||||
<P>
|
||||
|
||||
If the substitution appears within double quotes, word splitting and
|
||||
pathname expansion are not performed on the results.
|
||||
If the substitution appears within double quotes, <B>bash</B> does not perform
|
||||
word splitting and pathname expansion on the results.
|
||||
<A NAME="lbBD"> </A>
|
||||
<H4>Arithmetic Expansion</H4>
|
||||
|
||||
@@ -11999,7 +12050,7 @@ 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
|
||||
<B>%q</B> and <B>%Q</B> use the <B>$aqaq</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.
|
||||
@@ -14944,7 +14995,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%>2023 April 17<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
<TH ALIGN=LEFT width=33%>GNU Bash 5.2<TH ALIGN=CENTER width=33%>2023 May 14<TH ALIGN=RIGHT width=33%>BASH(1)
|
||||
</TR>
|
||||
</TABLE>
|
||||
<HR>
|
||||
@@ -15050,7 +15101,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 bash.1.<BR>
|
||||
Time: 18 April 2023 10:26:09 EDT
|
||||
This document was created by man2html from /usr/local/src/bash/bash-20230509/doc/bash.1.<BR>
|
||||
Time: 14 May 2023 15:37:14 EDT
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+194
-147
@@ -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, 20 April 2023).
|
||||
Bash shell (version 5.2, 14 May 2023).
|
||||
|
||||
This is Edition 5.2, last updated 20 April 2023, of 'The GNU Bash
|
||||
This is Edition 5.2, last updated 14 May 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, 20 April 2023). The Bash home page is
|
||||
Bash shell (version 5.2, 14 May 2023). The Bash home page is
|
||||
<http://www.gnu.org/software/bash/>.
|
||||
|
||||
This is Edition 5.2, last updated 20 April 2023, of 'The GNU Bash
|
||||
This is Edition 5.2, last updated 14 May 2023, of 'The GNU Bash
|
||||
Reference Manual', for 'Bash', Version 5.2.
|
||||
|
||||
Bash contains features that appear in other popular shells, and some
|
||||
@@ -418,8 +418,8 @@ File: bash.info, Node: ANSI-C Quoting, Next: Locale Translation, Prev: Double
|
||||
3.1.2.4 ANSI-C Quoting
|
||||
......................
|
||||
|
||||
Character sequences of the form $'STRING' are treated as a special kind
|
||||
of single quotes. The sequence expands to STRING, with
|
||||
Character sequences of the form '$'STRING'' are treated as a special
|
||||
kind of single quotes. The sequence expands to STRING, with
|
||||
backslash-escaped characters in STRING replaced as specified by the ANSI
|
||||
C standard. Backslash escape sequences, if present, are decoded as
|
||||
follows:
|
||||
@@ -2239,11 +2239,11 @@ File: bash.info, Node: Command Substitution, Next: Arithmetic Expansion, Prev
|
||||
--------------------------
|
||||
|
||||
Command substitution allows the output of a command to replace the
|
||||
command itself. Command substitution occurs when a command is enclosed
|
||||
as follows:
|
||||
command itself. The standard form of command substitution occurs when a
|
||||
command is enclosed as follows:
|
||||
$(COMMAND)
|
||||
or
|
||||
`COMMAND`
|
||||
or (deprecated)
|
||||
`COMMAND`.
|
||||
|
||||
Bash performs the expansion by executing COMMAND in a subshell
|
||||
environment and replacing the command substitution with the standard
|
||||
@@ -2252,17 +2252,64 @@ newlines are not deleted, but they may be removed during word splitting.
|
||||
The command substitution '$(cat FILE)' can be replaced by the equivalent
|
||||
but faster '$(< FILE)'.
|
||||
|
||||
When the old-style backquote form of substitution is used, backslash
|
||||
retains its literal meaning except when followed by '$', '`', or '\'.
|
||||
The first backquote not preceded by a backslash terminates the command
|
||||
With the old-style backquote form of substitution, backslash retains
|
||||
its literal meaning except when followed by '$', '`', or '\'. The first
|
||||
backquote not preceded by a backslash terminates the command
|
||||
substitution. When using the '$(COMMAND)' form, all characters between
|
||||
the parentheses make up the command; none are treated specially.
|
||||
|
||||
There is an alternate form of command substitution:
|
||||
|
||||
${C COMMAND; }
|
||||
|
||||
which executes COMMAND in the current execution environment. This means
|
||||
that side effects of COMMAND take effect immediately in the current
|
||||
execution environment and persist in the current environment after the
|
||||
command completes (e.g., the 'exit' builtin will exit the shell).
|
||||
|
||||
The character C following the open brace must be a space, tab,
|
||||
newline, '(', or '|', and the close brace must be in a position where a
|
||||
reserved word may appear (i.e., preceded by a command terminator such as
|
||||
semicolon). Bash allows the close brace to be joined to the remaining
|
||||
characters in the word without being followed by a shell metacharacter
|
||||
as a reserved word would usually require.
|
||||
|
||||
This type of command substitution superficially resembles executing
|
||||
an unnamed shell function: local variables are created as when a shell
|
||||
function is executing, and the 'return' builtin forces COMMAND to
|
||||
complete; however, the rest of the execution environment, including the
|
||||
positional parameters, is shared with the caller.
|
||||
|
||||
If the first character following the open brace is a '(', COMMAND is
|
||||
executed in a subshell, and COMMAND must be terminated by a ')'. This
|
||||
is similar to the '(' compound command (*note Command Grouping::). If
|
||||
the first character is a '|', the construct expands to the value of the
|
||||
'REPLY' shell variable after COMMAND executes, without removing any
|
||||
trailing newlines, and the standard output of COMMAND remains the same
|
||||
as in the calling shell. Bash creates 'REPLY' as an initially-unset
|
||||
local variable when COMMAND executes, and restores 'REPLY' to the value
|
||||
it had before the command substitution after COMMAND completes, as with
|
||||
any local variable.
|
||||
|
||||
For example, this construct expands to '12345', and leaves the shell
|
||||
variable 'X' unchanged in the current execution environment:
|
||||
|
||||
${ local X=12345 ; echo $X; }
|
||||
|
||||
(not declaring 'X' as local would modify its value in the current
|
||||
environment, as with normal shell function execution), while this
|
||||
construct does not require any output to expand to '12345':
|
||||
|
||||
${| REPLY=12345; }
|
||||
|
||||
and restores 'REPLY' to the value it had before the command
|
||||
substitution.
|
||||
|
||||
Command substitutions may be nested. To nest when using the
|
||||
backquoted form, escape the inner backquotes with backslashes.
|
||||
|
||||
If the substitution appears within double quotes, word splitting and
|
||||
filename expansion are not performed on the results.
|
||||
If the substitution appears within double quotes, Bash does not
|
||||
perform word splitting and filename expansion on the results.
|
||||
|
||||
|
||||
File: bash.info, Node: Arithmetic Expansion, Next: Process Substitution, Prev: Command Substitution, Up: Shell Expansions
|
||||
@@ -12706,138 +12753,138 @@ D.5 Concept Index
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top888
|
||||
Node: Introduction2799
|
||||
Node: What is Bash?3012
|
||||
Node: What is a shell?4123
|
||||
Node: Definitions6658
|
||||
Node: Basic Shell Features9606
|
||||
Node: Shell Syntax10822
|
||||
Node: Shell Operation11845
|
||||
Node: Quoting13135
|
||||
Node: Escape Character14436
|
||||
Node: Single Quotes14918
|
||||
Node: Double Quotes15263
|
||||
Node: ANSI-C Quoting16538
|
||||
Node: Locale Translation17845
|
||||
Node: Creating Internationalized Scripts19153
|
||||
Node: Comments23267
|
||||
Node: Shell Commands23882
|
||||
Node: Reserved Words24817
|
||||
Node: Simple Commands25570
|
||||
Node: Pipelines26221
|
||||
Node: Lists29217
|
||||
Node: Compound Commands31009
|
||||
Node: Looping Constructs32018
|
||||
Node: Conditional Constructs34510
|
||||
Node: Command Grouping48995
|
||||
Node: Coprocesses50470
|
||||
Node: GNU Parallel53130
|
||||
Node: Shell Functions54044
|
||||
Node: Shell Parameters61926
|
||||
Node: Positional Parameters66311
|
||||
Node: Special Parameters67210
|
||||
Node: Shell Expansions70421
|
||||
Node: Brace Expansion72545
|
||||
Node: Tilde Expansion75276
|
||||
Node: Shell Parameter Expansion77894
|
||||
Node: Command Substitution96293
|
||||
Node: Arithmetic Expansion97645
|
||||
Node: Process Substitution98610
|
||||
Node: Word Splitting99727
|
||||
Node: Filename Expansion101772
|
||||
Node: Pattern Matching104702
|
||||
Node: Quote Removal109701
|
||||
Node: Redirections109993
|
||||
Node: Executing Commands119683
|
||||
Node: Simple Command Expansion120350
|
||||
Node: Command Search and Execution122457
|
||||
Node: Command Execution Environment124841
|
||||
Node: Environment127873
|
||||
Node: Exit Status129533
|
||||
Node: Signals131314
|
||||
Node: Shell Scripts134760
|
||||
Node: Shell Builtin Commands137784
|
||||
Node: Bourne Shell Builtins139819
|
||||
Node: Bash Builtins162015
|
||||
Node: Modifying Shell Behavior194011
|
||||
Node: The Set Builtin194353
|
||||
Node: The Shopt Builtin204948
|
||||
Node: Special Builtins220857
|
||||
Node: Shell Variables221833
|
||||
Node: Bourne Shell Variables222267
|
||||
Node: Bash Variables224368
|
||||
Node: Bash Features258430
|
||||
Node: Invoking Bash259440
|
||||
Node: Bash Startup Files265450
|
||||
Node: Interactive Shells270578
|
||||
Node: What is an Interactive Shell?270986
|
||||
Node: Is this Shell Interactive?271632
|
||||
Node: Interactive Shell Behavior272444
|
||||
Node: Bash Conditional Expressions276070
|
||||
Node: Shell Arithmetic280709
|
||||
Node: Aliases283667
|
||||
Node: Arrays286558
|
||||
Node: The Directory Stack293118
|
||||
Node: Directory Stack Builtins293899
|
||||
Node: Controlling the Prompt298156
|
||||
Node: The Restricted Shell301118
|
||||
Node: Bash POSIX Mode303725
|
||||
Node: Shell Compatibility Mode319515
|
||||
Node: Job Control327756
|
||||
Node: Job Control Basics328213
|
||||
Node: Job Control Builtins333212
|
||||
Node: Job Control Variables339004
|
||||
Node: Command Line Editing340157
|
||||
Node: Introduction and Notation341825
|
||||
Node: Readline Interaction343445
|
||||
Node: Readline Bare Essentials344633
|
||||
Node: Readline Movement Commands346419
|
||||
Node: Readline Killing Commands347376
|
||||
Node: Readline Arguments349294
|
||||
Node: Searching350335
|
||||
Node: Readline Init File352518
|
||||
Node: Readline Init File Syntax353776
|
||||
Node: Conditional Init Constructs377564
|
||||
Node: Sample Init File381757
|
||||
Node: Bindable Readline Commands384878
|
||||
Node: Commands For Moving386079
|
||||
Node: Commands For History388127
|
||||
Node: Commands For Text393118
|
||||
Node: Commands For Killing396764
|
||||
Node: Numeric Arguments399794
|
||||
Node: Commands For Completion400930
|
||||
Node: Keyboard Macros405118
|
||||
Node: Miscellaneous Commands405803
|
||||
Node: Readline vi Mode411838
|
||||
Node: Programmable Completion412742
|
||||
Node: Programmable Completion Builtins420519
|
||||
Node: A Programmable Completion Example431504
|
||||
Node: Using History Interactively436749
|
||||
Node: Bash History Facilities437430
|
||||
Node: Bash History Builtins440432
|
||||
Node: History Interaction445453
|
||||
Node: Event Designators449070
|
||||
Node: Word Designators450421
|
||||
Node: Modifiers452178
|
||||
Node: Installing Bash453983
|
||||
Node: Basic Installation455117
|
||||
Node: Compilers and Options458836
|
||||
Node: Compiling For Multiple Architectures459574
|
||||
Node: Installation Names461263
|
||||
Node: Specifying the System Type463369
|
||||
Node: Sharing Defaults464083
|
||||
Node: Operation Controls464753
|
||||
Node: Optional Features465708
|
||||
Node: Reporting Bugs476924
|
||||
Node: Major Differences From The Bourne Shell478255
|
||||
Node: GNU Free Documentation License495101
|
||||
Node: Indexes520275
|
||||
Node: Builtin Index520726
|
||||
Node: Reserved Word Index527550
|
||||
Node: Variable Index529995
|
||||
Node: Function Index546980
|
||||
Node: Concept Index560761
|
||||
Node: Top884
|
||||
Node: Introduction2791
|
||||
Node: What is Bash?3004
|
||||
Node: What is a shell?4115
|
||||
Node: Definitions6650
|
||||
Node: Basic Shell Features9598
|
||||
Node: Shell Syntax10814
|
||||
Node: Shell Operation11837
|
||||
Node: Quoting13127
|
||||
Node: Escape Character14428
|
||||
Node: Single Quotes14910
|
||||
Node: Double Quotes15255
|
||||
Node: ANSI-C Quoting16530
|
||||
Node: Locale Translation17839
|
||||
Node: Creating Internationalized Scripts19147
|
||||
Node: Comments23261
|
||||
Node: Shell Commands23876
|
||||
Node: Reserved Words24811
|
||||
Node: Simple Commands25564
|
||||
Node: Pipelines26215
|
||||
Node: Lists29211
|
||||
Node: Compound Commands31003
|
||||
Node: Looping Constructs32012
|
||||
Node: Conditional Constructs34504
|
||||
Node: Command Grouping48989
|
||||
Node: Coprocesses50464
|
||||
Node: GNU Parallel53124
|
||||
Node: Shell Functions54038
|
||||
Node: Shell Parameters61920
|
||||
Node: Positional Parameters66305
|
||||
Node: Special Parameters67204
|
||||
Node: Shell Expansions70415
|
||||
Node: Brace Expansion72539
|
||||
Node: Tilde Expansion75270
|
||||
Node: Shell Parameter Expansion77888
|
||||
Node: Command Substitution96287
|
||||
Node: Arithmetic Expansion99876
|
||||
Node: Process Substitution100841
|
||||
Node: Word Splitting101958
|
||||
Node: Filename Expansion104003
|
||||
Node: Pattern Matching106933
|
||||
Node: Quote Removal111932
|
||||
Node: Redirections112224
|
||||
Node: Executing Commands121914
|
||||
Node: Simple Command Expansion122581
|
||||
Node: Command Search and Execution124688
|
||||
Node: Command Execution Environment127072
|
||||
Node: Environment130104
|
||||
Node: Exit Status131764
|
||||
Node: Signals133545
|
||||
Node: Shell Scripts136991
|
||||
Node: Shell Builtin Commands140015
|
||||
Node: Bourne Shell Builtins142050
|
||||
Node: Bash Builtins164246
|
||||
Node: Modifying Shell Behavior196242
|
||||
Node: The Set Builtin196584
|
||||
Node: The Shopt Builtin207179
|
||||
Node: Special Builtins223088
|
||||
Node: Shell Variables224064
|
||||
Node: Bourne Shell Variables224498
|
||||
Node: Bash Variables226599
|
||||
Node: Bash Features260661
|
||||
Node: Invoking Bash261671
|
||||
Node: Bash Startup Files267681
|
||||
Node: Interactive Shells272809
|
||||
Node: What is an Interactive Shell?273217
|
||||
Node: Is this Shell Interactive?273863
|
||||
Node: Interactive Shell Behavior274675
|
||||
Node: Bash Conditional Expressions278301
|
||||
Node: Shell Arithmetic282940
|
||||
Node: Aliases285898
|
||||
Node: Arrays288789
|
||||
Node: The Directory Stack295349
|
||||
Node: Directory Stack Builtins296130
|
||||
Node: Controlling the Prompt300387
|
||||
Node: The Restricted Shell303349
|
||||
Node: Bash POSIX Mode305956
|
||||
Node: Shell Compatibility Mode321746
|
||||
Node: Job Control329987
|
||||
Node: Job Control Basics330444
|
||||
Node: Job Control Builtins335443
|
||||
Node: Job Control Variables341235
|
||||
Node: Command Line Editing342388
|
||||
Node: Introduction and Notation344056
|
||||
Node: Readline Interaction345676
|
||||
Node: Readline Bare Essentials346864
|
||||
Node: Readline Movement Commands348650
|
||||
Node: Readline Killing Commands349607
|
||||
Node: Readline Arguments351525
|
||||
Node: Searching352566
|
||||
Node: Readline Init File354749
|
||||
Node: Readline Init File Syntax356007
|
||||
Node: Conditional Init Constructs379795
|
||||
Node: Sample Init File383988
|
||||
Node: Bindable Readline Commands387109
|
||||
Node: Commands For Moving388310
|
||||
Node: Commands For History390358
|
||||
Node: Commands For Text395349
|
||||
Node: Commands For Killing398995
|
||||
Node: Numeric Arguments402025
|
||||
Node: Commands For Completion403161
|
||||
Node: Keyboard Macros407349
|
||||
Node: Miscellaneous Commands408034
|
||||
Node: Readline vi Mode414069
|
||||
Node: Programmable Completion414973
|
||||
Node: Programmable Completion Builtins422750
|
||||
Node: A Programmable Completion Example433735
|
||||
Node: Using History Interactively438980
|
||||
Node: Bash History Facilities439661
|
||||
Node: Bash History Builtins442663
|
||||
Node: History Interaction447684
|
||||
Node: Event Designators451301
|
||||
Node: Word Designators452652
|
||||
Node: Modifiers454409
|
||||
Node: Installing Bash456214
|
||||
Node: Basic Installation457348
|
||||
Node: Compilers and Options461067
|
||||
Node: Compiling For Multiple Architectures461805
|
||||
Node: Installation Names463494
|
||||
Node: Specifying the System Type465600
|
||||
Node: Sharing Defaults466314
|
||||
Node: Operation Controls466984
|
||||
Node: Optional Features467939
|
||||
Node: Reporting Bugs479155
|
||||
Node: Major Differences From The Bourne Shell480486
|
||||
Node: GNU Free Documentation License497332
|
||||
Node: Indexes522506
|
||||
Node: Builtin Index522957
|
||||
Node: Reserved Word Index529781
|
||||
Node: Variable Index532226
|
||||
Node: Function Index549211
|
||||
Node: Concept Index562992
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
+97
-97
@@ -99,145 +99,145 @@
|
||||
@xrdef{Shell Parameter Expansion-pg}{26}
|
||||
@xrdef{Command Substitution-title}{Command Substitution}
|
||||
@xrdef{Command Substitution-snt}{Section@tie 3.5.4}
|
||||
@xrdef{Command Substitution-pg}{34}
|
||||
@xrdef{Arithmetic Expansion-title}{Arithmetic Expansion}
|
||||
@xrdef{Arithmetic Expansion-snt}{Section@tie 3.5.5}
|
||||
@xrdef{Command Substitution-pg}{34}
|
||||
@xrdef{Arithmetic Expansion-pg}{34}
|
||||
@xrdef{Process Substitution-title}{Process Substitution}
|
||||
@xrdef{Process Substitution-snt}{Section@tie 3.5.6}
|
||||
@xrdef{Arithmetic Expansion-pg}{35}
|
||||
@xrdef{Process Substitution-pg}{35}
|
||||
@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{Word Splitting-pg}{36}
|
||||
@xrdef{Filename Expansion-pg}{36}
|
||||
@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{Pattern Matching-pg}{37}
|
||||
@xrdef{Quote Removal-title}{Quote Removal}
|
||||
@xrdef{Quote Removal-snt}{Section@tie 3.5.9}
|
||||
@xrdef{Redirections-title}{Redirections}
|
||||
@xrdef{Redirections-snt}{Section@tie 3.6}
|
||||
@xrdef{Quote Removal-pg}{38}
|
||||
@xrdef{Redirections-pg}{38}
|
||||
@xrdef{Quote Removal-pg}{39}
|
||||
@xrdef{Redirections-pg}{39}
|
||||
@xrdef{Executing Commands-title}{Executing Commands}
|
||||
@xrdef{Executing Commands-snt}{Section@tie 3.7}
|
||||
@xrdef{Simple Command Expansion-title}{Simple Command Expansion}
|
||||
@xrdef{Simple Command Expansion-snt}{Section@tie 3.7.1}
|
||||
@xrdef{Command Search and Execution-title}{Command Search and Execution}
|
||||
@xrdef{Command Search and Execution-snt}{Section@tie 3.7.2}
|
||||
@xrdef{Executing Commands-pg}{42}
|
||||
@xrdef{Simple Command Expansion-pg}{42}
|
||||
@xrdef{Command Search and Execution-pg}{42}
|
||||
@xrdef{Executing Commands-pg}{43}
|
||||
@xrdef{Simple Command Expansion-pg}{43}
|
||||
@xrdef{Command Search and Execution-pg}{43}
|
||||
@xrdef{Command Execution Environment-title}{Command Execution Environment}
|
||||
@xrdef{Command Execution Environment-snt}{Section@tie 3.7.3}
|
||||
@xrdef{Command Execution Environment-pg}{43}
|
||||
@xrdef{Command Execution Environment-pg}{44}
|
||||
@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}{45}
|
||||
@xrdef{Exit Status-pg}{45}
|
||||
@xrdef{Signals-title}{Signals}
|
||||
@xrdef{Signals-snt}{Section@tie 3.7.6}
|
||||
@xrdef{Exit Status-pg}{45}
|
||||
@xrdef{Signals-pg}{45}
|
||||
@xrdef{Signals-pg}{46}
|
||||
@xrdef{Shell Scripts-title}{Shell Scripts}
|
||||
@xrdef{Shell Scripts-snt}{Section@tie 3.8}
|
||||
@xrdef{Shell Scripts-pg}{46}
|
||||
@xrdef{Shell Scripts-pg}{47}
|
||||
@xrdef{Shell Builtin Commands-title}{Shell Builtin Commands}
|
||||
@xrdef{Shell Builtin Commands-snt}{Chapter@tie 4}
|
||||
@xrdef{Bourne Shell Builtins-title}{Bourne Shell Builtins}
|
||||
@xrdef{Bourne Shell Builtins-snt}{Section@tie 4.1}
|
||||
@xrdef{Shell Builtin Commands-pg}{48}
|
||||
@xrdef{Bourne Shell Builtins-pg}{48}
|
||||
@xrdef{Shell Builtin Commands-pg}{49}
|
||||
@xrdef{Bourne Shell Builtins-pg}{49}
|
||||
@xrdef{Bash Builtins-title}{Bash Builtin Commands}
|
||||
@xrdef{Bash Builtins-snt}{Section@tie 4.2}
|
||||
@xrdef{Bash Builtins-pg}{56}
|
||||
@xrdef{Bash Builtins-pg}{57}
|
||||
@xrdef{Modifying Shell Behavior-title}{Modifying Shell Behavior}
|
||||
@xrdef{Modifying Shell Behavior-snt}{Section@tie 4.3}
|
||||
@xrdef{The Set Builtin-title}{The Set Builtin}
|
||||
@xrdef{The Set Builtin-snt}{Section@tie 4.3.1}
|
||||
@xrdef{Modifying Shell Behavior-pg}{67}
|
||||
@xrdef{The Set Builtin-pg}{67}
|
||||
@xrdef{Modifying Shell Behavior-pg}{68}
|
||||
@xrdef{The Set Builtin-pg}{68}
|
||||
@xrdef{The Shopt Builtin-title}{The Shopt Builtin}
|
||||
@xrdef{The Shopt Builtin-snt}{Section@tie 4.3.2}
|
||||
@xrdef{The Shopt Builtin-pg}{71}
|
||||
@xrdef{The Shopt Builtin-pg}{72}
|
||||
@xrdef{Special Builtins-title}{Special Builtins}
|
||||
@xrdef{Special Builtins-snt}{Section@tie 4.4}
|
||||
@xrdef{Special Builtins-pg}{78}
|
||||
@xrdef{Special Builtins-pg}{79}
|
||||
@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}{79}
|
||||
@xrdef{Bourne Shell Variables-pg}{79}
|
||||
@xrdef{Bash Variables-pg}{79}
|
||||
@xrdef{Shell Variables-pg}{80}
|
||||
@xrdef{Bourne Shell Variables-pg}{80}
|
||||
@xrdef{Bash Variables-pg}{80}
|
||||
@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}{92}
|
||||
@xrdef{Invoking Bash-pg}{92}
|
||||
@xrdef{Bash Features-pg}{93}
|
||||
@xrdef{Invoking Bash-pg}{93}
|
||||
@xrdef{Bash Startup Files-title}{Bash Startup Files}
|
||||
@xrdef{Bash Startup Files-snt}{Section@tie 6.2}
|
||||
@xrdef{Bash Startup Files-pg}{94}
|
||||
@xrdef{Bash Startup Files-pg}{95}
|
||||
@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}{95}
|
||||
@xrdef{Interactive Shells-pg}{96}
|
||||
@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}{96}
|
||||
@xrdef{Is this Shell Interactive?-pg}{96}
|
||||
@xrdef{Interactive Shell Behavior-pg}{96}
|
||||
@xrdef{What is an Interactive Shell?-pg}{97}
|
||||
@xrdef{Is this Shell Interactive?-pg}{97}
|
||||
@xrdef{Interactive Shell Behavior-pg}{97}
|
||||
@xrdef{Bash Conditional Expressions-title}{Bash Conditional Expressions}
|
||||
@xrdef{Bash Conditional Expressions-snt}{Section@tie 6.4}
|
||||
@xrdef{Bash Conditional Expressions-pg}{97}
|
||||
@xrdef{Bash Conditional Expressions-pg}{98}
|
||||
@xrdef{Shell Arithmetic-title}{Shell Arithmetic}
|
||||
@xrdef{Shell Arithmetic-snt}{Section@tie 6.5}
|
||||
@xrdef{Shell Arithmetic-pg}{99}
|
||||
@xrdef{Shell Arithmetic-pg}{100}
|
||||
@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}{101}
|
||||
@xrdef{Arrays-pg}{101}
|
||||
@xrdef{Aliases-pg}{102}
|
||||
@xrdef{Arrays-pg}{102}
|
||||
@xrdef{The Directory Stack-title}{The Directory Stack}
|
||||
@xrdef{The Directory Stack-snt}{Section@tie 6.8}
|
||||
@xrdef{The Directory Stack-pg}{103}
|
||||
@xrdef{The Directory Stack-pg}{104}
|
||||
@xrdef{Directory Stack Builtins-title}{Directory Stack Builtins}
|
||||
@xrdef{Directory Stack Builtins-snt}{Section@tie 6.8.1}
|
||||
@xrdef{Directory Stack Builtins-pg}{104}
|
||||
@xrdef{Directory Stack Builtins-pg}{105}
|
||||
@xrdef{Controlling the Prompt-title}{Controlling the Prompt}
|
||||
@xrdef{Controlling the Prompt-snt}{Section@tie 6.9}
|
||||
@xrdef{Controlling the Prompt-pg}{105}
|
||||
@xrdef{Controlling the Prompt-pg}{106}
|
||||
@xrdef{The Restricted Shell-title}{The Restricted Shell}
|
||||
@xrdef{The Restricted Shell-snt}{Section@tie 6.10}
|
||||
@xrdef{Bash POSIX Mode-title}{Bash and POSIX}
|
||||
@xrdef{Bash POSIX Mode-snt}{Section@tie 6.11}
|
||||
@xrdef{The Restricted Shell-pg}{107}
|
||||
@xrdef{Bash POSIX Mode-pg}{107}
|
||||
@xrdef{The Restricted Shell-pg}{108}
|
||||
@xrdef{Bash POSIX Mode-pg}{108}
|
||||
@xrdef{Shell Compatibility Mode-title}{Shell Compatibility Mode}
|
||||
@xrdef{Shell Compatibility Mode-snt}{Section@tie 6.12}
|
||||
@xrdef{Shell Compatibility Mode-pg}{112}
|
||||
@xrdef{Shell Compatibility Mode-pg}{113}
|
||||
@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}{116}
|
||||
@xrdef{Job Control Basics-pg}{116}
|
||||
@xrdef{Job Control-pg}{117}
|
||||
@xrdef{Job Control Basics-pg}{117}
|
||||
@xrdef{Job Control Builtins-title}{Job Control Builtins}
|
||||
@xrdef{Job Control Builtins-snt}{Section@tie 7.2}
|
||||
@xrdef{Job Control Builtins-pg}{117}
|
||||
@xrdef{Job Control Builtins-pg}{118}
|
||||
@xrdef{Job Control Variables-title}{Job Control Variables}
|
||||
@xrdef{Job Control Variables-snt}{Section@tie 7.3}
|
||||
@xrdef{Job Control Variables-pg}{119}
|
||||
@xrdef{Job Control Variables-pg}{120}
|
||||
@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}{120}
|
||||
@xrdef{Introduction and Notation-pg}{120}
|
||||
@xrdef{Readline Interaction-pg}{120}
|
||||
@xrdef{Command Line Editing-pg}{121}
|
||||
@xrdef{Introduction and Notation-pg}{121}
|
||||
@xrdef{Readline Interaction-pg}{121}
|
||||
@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}{121}
|
||||
@xrdef{Readline Movement Commands-pg}{121}
|
||||
@xrdef{Readline Bare Essentials-pg}{122}
|
||||
@xrdef{Readline Movement Commands-pg}{122}
|
||||
@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}{122}
|
||||
@xrdef{Readline Arguments-pg}{122}
|
||||
@xrdef{Searching-pg}{122}
|
||||
@xrdef{Readline Killing Commands-pg}{123}
|
||||
@xrdef{Readline Arguments-pg}{123}
|
||||
@xrdef{Searching-pg}{123}
|
||||
@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}{123}
|
||||
@xrdef{Readline Init File Syntax-pg}{123}
|
||||
@xrdef{Readline Init File-pg}{124}
|
||||
@xrdef{Readline Init File Syntax-pg}{124}
|
||||
@xrdef{Conditional Init Constructs-title}{Conditional Init Constructs}
|
||||
@xrdef{Conditional Init Constructs-snt}{Section@tie 8.3.2}
|
||||
@xrdef{Conditional Init Constructs-pg}{132}
|
||||
@xrdef{Conditional Init Constructs-pg}{133}
|
||||
@xrdef{Sample Init File-title}{Sample Init File}
|
||||
@xrdef{Sample Init File-snt}{Section@tie 8.3.3}
|
||||
@xrdef{Sample Init File-pg}{133}
|
||||
@xrdef{Sample Init File-pg}{134}
|
||||
@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}{136}
|
||||
@xrdef{Commands For Moving-pg}{136}
|
||||
@xrdef{Bindable Readline Commands-pg}{137}
|
||||
@xrdef{Commands For Moving-pg}{137}
|
||||
@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}{137}
|
||||
@xrdef{Commands For History-pg}{138}
|
||||
@xrdef{Commands For Text-title}{Commands For Changing Text}
|
||||
@xrdef{Commands For Text-snt}{Section@tie 8.4.3}
|
||||
@xrdef{Commands For Text-pg}{139}
|
||||
@xrdef{Commands For Text-pg}{140}
|
||||
@xrdef{Commands For Killing-title}{Killing And Yanking}
|
||||
@xrdef{Commands For Killing-snt}{Section@tie 8.4.4}
|
||||
@xrdef{Commands For Killing-pg}{140}
|
||||
@xrdef{Commands For Killing-pg}{141}
|
||||
@xrdef{Numeric Arguments-title}{Specifying Numeric Arguments}
|
||||
@xrdef{Numeric Arguments-snt}{Section@tie 8.4.5}
|
||||
@xrdef{Numeric Arguments-pg}{141}
|
||||
@xrdef{Numeric Arguments-pg}{142}
|
||||
@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}{142}
|
||||
@xrdef{Commands For Completion-pg}{143}
|
||||
@xrdef{Keyboard Macros-title}{Keyboard Macros}
|
||||
@xrdef{Keyboard Macros-snt}{Section@tie 8.4.7}
|
||||
@xrdef{Keyboard Macros-pg}{143}
|
||||
@xrdef{Keyboard Macros-pg}{144}
|
||||
@xrdef{Miscellaneous Commands-title}{Some Miscellaneous Commands}
|
||||
@xrdef{Miscellaneous Commands-snt}{Section@tie 8.4.8}
|
||||
@xrdef{Miscellaneous Commands-pg}{144}
|
||||
@xrdef{Miscellaneous Commands-pg}{145}
|
||||
@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}{146}
|
||||
@xrdef{Programmable Completion-pg}{146}
|
||||
@xrdef{Readline vi Mode-pg}{147}
|
||||
@xrdef{Programmable Completion-pg}{147}
|
||||
@xrdef{Programmable Completion Builtins-title}{Programmable Completion Builtins}
|
||||
@xrdef{Programmable Completion Builtins-snt}{Section@tie 8.7}
|
||||
@xrdef{Programmable Completion Builtins-pg}{149}
|
||||
@xrdef{Programmable Completion Builtins-pg}{150}
|
||||
@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}{153}
|
||||
@xrdef{A Programmable Completion Example-pg}{154}
|
||||
@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}{155}
|
||||
@xrdef{Bash History Facilities-pg}{155}
|
||||
@xrdef{Bash History Builtins-pg}{155}
|
||||
@xrdef{Using History Interactively-pg}{156}
|
||||
@xrdef{Bash History Facilities-pg}{156}
|
||||
@xrdef{Bash History Builtins-pg}{156}
|
||||
@xrdef{History Interaction-title}{History Expansion}
|
||||
@xrdef{History Interaction-snt}{Section@tie 9.3}
|
||||
@xrdef{History Interaction-pg}{157}
|
||||
@xrdef{History Interaction-pg}{158}
|
||||
@xrdef{Event Designators-title}{Event Designators}
|
||||
@xrdef{Event Designators-snt}{Section@tie 9.3.1}
|
||||
@xrdef{Event Designators-pg}{158}
|
||||
@xrdef{Event Designators-pg}{159}
|
||||
@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}{159}
|
||||
@xrdef{Modifiers-pg}{159}
|
||||
@xrdef{Word Designators-pg}{160}
|
||||
@xrdef{Modifiers-pg}{160}
|
||||
@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}{161}
|
||||
@xrdef{Basic Installation-pg}{161}
|
||||
@xrdef{Installing Bash-pg}{162}
|
||||
@xrdef{Basic Installation-pg}{162}
|
||||
@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}{162}
|
||||
@xrdef{Compiling For Multiple Architectures-pg}{162}
|
||||
@xrdef{Compilers and Options-pg}{163}
|
||||
@xrdef{Compiling For Multiple Architectures-pg}{163}
|
||||
@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}{163}
|
||||
@xrdef{Specifying the System Type-pg}{163}
|
||||
@xrdef{Sharing Defaults-pg}{163}
|
||||
@xrdef{Installation Names-pg}{164}
|
||||
@xrdef{Specifying the System Type-pg}{164}
|
||||
@xrdef{Sharing Defaults-pg}{164}
|
||||
@xrdef{Optional Features-title}{Optional Features}
|
||||
@xrdef{Optional Features-snt}{Section@tie 10.8}
|
||||
@xrdef{Operation Controls-pg}{164}
|
||||
@xrdef{Optional Features-pg}{164}
|
||||
@xrdef{Operation Controls-pg}{165}
|
||||
@xrdef{Optional Features-pg}{165}
|
||||
@xrdef{Reporting Bugs-title}{Reporting Bugs}
|
||||
@xrdef{Reporting Bugs-snt}{Appendix@tie @char65{}}
|
||||
@xrdef{Reporting Bugs-pg}{170}
|
||||
@xrdef{Reporting Bugs-pg}{171}
|
||||
@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}{171}
|
||||
@xrdef{Major Differences From The Bourne Shell-pg}{172}
|
||||
@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}{177}
|
||||
@xrdef{GNU Free Documentation License-pg}{178}
|
||||
@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}{185}
|
||||
@xrdef{Builtin Index-pg}{185}
|
||||
@xrdef{Indexes-pg}{186}
|
||||
@xrdef{Builtin Index-pg}{186}
|
||||
@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}{186}
|
||||
@xrdef{Variable Index-pg}{187}
|
||||
@xrdef{Reserved Word Index-pg}{187}
|
||||
@xrdef{Variable Index-pg}{188}
|
||||
@xrdef{Function Index-title}{Function Index}
|
||||
@xrdef{Function Index-snt}{Section@tie @char68.4}
|
||||
@xrdef{Function Index-pg}{189}
|
||||
@xrdef{Function Index-pg}{190}
|
||||
@xrdef{Concept Index-title}{Concept Index}
|
||||
@xrdef{Concept Index-snt}{Section@tie @char68.5}
|
||||
@xrdef{Concept Index-pg}{191}
|
||||
@xrdef{Concept Index-pg}{192}
|
||||
|
||||
+59
-59
@@ -1,59 +1,59 @@
|
||||
\entry{:}{48}{\code {:}}
|
||||
\entry{.}{48}{\code {.}}
|
||||
\entry{break}{49}{\code {break}}
|
||||
\entry{cd}{49}{\code {cd}}
|
||||
\entry{continue}{49}{\code {continue}}
|
||||
\entry{eval}{49}{\code {eval}}
|
||||
\entry{exec}{50}{\code {exec}}
|
||||
\entry{exit}{50}{\code {exit}}
|
||||
\entry{export}{50}{\code {export}}
|
||||
\entry{getopts}{50}{\code {getopts}}
|
||||
\entry{hash}{51}{\code {hash}}
|
||||
\entry{pwd}{51}{\code {pwd}}
|
||||
\entry{readonly}{52}{\code {readonly}}
|
||||
\entry{return}{52}{\code {return}}
|
||||
\entry{shift}{52}{\code {shift}}
|
||||
\entry{test}{52}{\code {test}}
|
||||
\entry{[}{52}{\code {[}}
|
||||
\entry{times}{54}{\code {times}}
|
||||
\entry{trap}{54}{\code {trap}}
|
||||
\entry{umask}{55}{\code {umask}}
|
||||
\entry{unset}{55}{\code {unset}}
|
||||
\entry{alias}{56}{\code {alias}}
|
||||
\entry{bind}{56}{\code {bind}}
|
||||
\entry{builtin}{57}{\code {builtin}}
|
||||
\entry{caller}{57}{\code {caller}}
|
||||
\entry{command}{57}{\code {command}}
|
||||
\entry{declare}{58}{\code {declare}}
|
||||
\entry{echo}{59}{\code {echo}}
|
||||
\entry{enable}{60}{\code {enable}}
|
||||
\entry{help}{61}{\code {help}}
|
||||
\entry{let}{61}{\code {let}}
|
||||
\entry{local}{61}{\code {local}}
|
||||
\entry{logout}{61}{\code {logout}}
|
||||
\entry{mapfile}{62}{\code {mapfile}}
|
||||
\entry{printf}{62}{\code {printf}}
|
||||
\entry{read}{63}{\code {read}}
|
||||
\entry{readarray}{65}{\code {readarray}}
|
||||
\entry{source}{65}{\code {source}}
|
||||
\entry{type}{65}{\code {type}}
|
||||
\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}{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}}
|
||||
\entry{:}{49}{\code {:}}
|
||||
\entry{.}{49}{\code {.}}
|
||||
\entry{break}{50}{\code {break}}
|
||||
\entry{cd}{50}{\code {cd}}
|
||||
\entry{continue}{50}{\code {continue}}
|
||||
\entry{eval}{50}{\code {eval}}
|
||||
\entry{exec}{51}{\code {exec}}
|
||||
\entry{exit}{51}{\code {exit}}
|
||||
\entry{export}{51}{\code {export}}
|
||||
\entry{getopts}{51}{\code {getopts}}
|
||||
\entry{hash}{52}{\code {hash}}
|
||||
\entry{pwd}{52}{\code {pwd}}
|
||||
\entry{readonly}{53}{\code {readonly}}
|
||||
\entry{return}{53}{\code {return}}
|
||||
\entry{shift}{53}{\code {shift}}
|
||||
\entry{test}{53}{\code {test}}
|
||||
\entry{[}{53}{\code {[}}
|
||||
\entry{times}{55}{\code {times}}
|
||||
\entry{trap}{55}{\code {trap}}
|
||||
\entry{umask}{56}{\code {umask}}
|
||||
\entry{unset}{56}{\code {unset}}
|
||||
\entry{alias}{57}{\code {alias}}
|
||||
\entry{bind}{57}{\code {bind}}
|
||||
\entry{builtin}{58}{\code {builtin}}
|
||||
\entry{caller}{58}{\code {caller}}
|
||||
\entry{command}{58}{\code {command}}
|
||||
\entry{declare}{59}{\code {declare}}
|
||||
\entry{echo}{60}{\code {echo}}
|
||||
\entry{enable}{61}{\code {enable}}
|
||||
\entry{help}{62}{\code {help}}
|
||||
\entry{let}{62}{\code {let}}
|
||||
\entry{local}{62}{\code {local}}
|
||||
\entry{logout}{62}{\code {logout}}
|
||||
\entry{mapfile}{63}{\code {mapfile}}
|
||||
\entry{printf}{63}{\code {printf}}
|
||||
\entry{read}{64}{\code {read}}
|
||||
\entry{readarray}{66}{\code {readarray}}
|
||||
\entry{source}{66}{\code {source}}
|
||||
\entry{type}{66}{\code {type}}
|
||||
\entry{typeset}{67}{\code {typeset}}
|
||||
\entry{ulimit}{67}{\code {ulimit}}
|
||||
\entry{unalias}{68}{\code {unalias}}
|
||||
\entry{set}{68}{\code {set}}
|
||||
\entry{shopt}{72}{\code {shopt}}
|
||||
\entry{dirs}{105}{\code {dirs}}
|
||||
\entry{popd}{105}{\code {popd}}
|
||||
\entry{pushd}{105}{\code {pushd}}
|
||||
\entry{bg}{118}{\code {bg}}
|
||||
\entry{fg}{118}{\code {fg}}
|
||||
\entry{jobs}{118}{\code {jobs}}
|
||||
\entry{kill}{119}{\code {kill}}
|
||||
\entry{wait}{119}{\code {wait}}
|
||||
\entry{disown}{120}{\code {disown}}
|
||||
\entry{suspend}{120}{\code {suspend}}
|
||||
\entry{compgen}{150}{\code {compgen}}
|
||||
\entry{complete}{150}{\code {complete}}
|
||||
\entry{compopt}{153}{\code {compopt}}
|
||||
\entry{fc}{157}{\code {fc}}
|
||||
\entry{history}{157}{\code {history}}
|
||||
|
||||
+59
-59
@@ -1,80 +1,80 @@
|
||||
\initial {.}
|
||||
\entry{\code {.}}{48}
|
||||
\entry{\code {.}}{49}
|
||||
\initial {:}
|
||||
\entry{\code {:}}{48}
|
||||
\entry{\code {:}}{49}
|
||||
\initial {[}
|
||||
\entry{\code {[}}{52}
|
||||
\entry{\code {[}}{53}
|
||||
\initial {A}
|
||||
\entry{\code {alias}}{56}
|
||||
\entry{\code {alias}}{57}
|
||||
\initial {B}
|
||||
\entry{\code {bg}}{117}
|
||||
\entry{\code {bind}}{56}
|
||||
\entry{\code {break}}{49}
|
||||
\entry{\code {builtin}}{57}
|
||||
\entry{\code {bg}}{118}
|
||||
\entry{\code {bind}}{57}
|
||||
\entry{\code {break}}{50}
|
||||
\entry{\code {builtin}}{58}
|
||||
\initial {C}
|
||||
\entry{\code {caller}}{57}
|
||||
\entry{\code {cd}}{49}
|
||||
\entry{\code {command}}{57}
|
||||
\entry{\code {compgen}}{149}
|
||||
\entry{\code {complete}}{149}
|
||||
\entry{\code {compopt}}{152}
|
||||
\entry{\code {continue}}{49}
|
||||
\entry{\code {caller}}{58}
|
||||
\entry{\code {cd}}{50}
|
||||
\entry{\code {command}}{58}
|
||||
\entry{\code {compgen}}{150}
|
||||
\entry{\code {complete}}{150}
|
||||
\entry{\code {compopt}}{153}
|
||||
\entry{\code {continue}}{50}
|
||||
\initial {D}
|
||||
\entry{\code {declare}}{58}
|
||||
\entry{\code {dirs}}{104}
|
||||
\entry{\code {disown}}{119}
|
||||
\entry{\code {declare}}{59}
|
||||
\entry{\code {dirs}}{105}
|
||||
\entry{\code {disown}}{120}
|
||||
\initial {E}
|
||||
\entry{\code {echo}}{59}
|
||||
\entry{\code {enable}}{60}
|
||||
\entry{\code {eval}}{49}
|
||||
\entry{\code {exec}}{50}
|
||||
\entry{\code {exit}}{50}
|
||||
\entry{\code {export}}{50}
|
||||
\entry{\code {echo}}{60}
|
||||
\entry{\code {enable}}{61}
|
||||
\entry{\code {eval}}{50}
|
||||
\entry{\code {exec}}{51}
|
||||
\entry{\code {exit}}{51}
|
||||
\entry{\code {export}}{51}
|
||||
\initial {F}
|
||||
\entry{\code {fc}}{156}
|
||||
\entry{\code {fg}}{117}
|
||||
\entry{\code {fc}}{157}
|
||||
\entry{\code {fg}}{118}
|
||||
\initial {G}
|
||||
\entry{\code {getopts}}{50}
|
||||
\entry{\code {getopts}}{51}
|
||||
\initial {H}
|
||||
\entry{\code {hash}}{51}
|
||||
\entry{\code {help}}{61}
|
||||
\entry{\code {history}}{156}
|
||||
\entry{\code {hash}}{52}
|
||||
\entry{\code {help}}{62}
|
||||
\entry{\code {history}}{157}
|
||||
\initial {J}
|
||||
\entry{\code {jobs}}{117}
|
||||
\entry{\code {jobs}}{118}
|
||||
\initial {K}
|
||||
\entry{\code {kill}}{118}
|
||||
\entry{\code {kill}}{119}
|
||||
\initial {L}
|
||||
\entry{\code {let}}{61}
|
||||
\entry{\code {local}}{61}
|
||||
\entry{\code {logout}}{61}
|
||||
\entry{\code {let}}{62}
|
||||
\entry{\code {local}}{62}
|
||||
\entry{\code {logout}}{62}
|
||||
\initial {M}
|
||||
\entry{\code {mapfile}}{62}
|
||||
\entry{\code {mapfile}}{63}
|
||||
\initial {P}
|
||||
\entry{\code {popd}}{104}
|
||||
\entry{\code {printf}}{62}
|
||||
\entry{\code {pushd}}{104}
|
||||
\entry{\code {pwd}}{51}
|
||||
\entry{\code {popd}}{105}
|
||||
\entry{\code {printf}}{63}
|
||||
\entry{\code {pushd}}{105}
|
||||
\entry{\code {pwd}}{52}
|
||||
\initial {R}
|
||||
\entry{\code {read}}{63}
|
||||
\entry{\code {readarray}}{65}
|
||||
\entry{\code {readonly}}{52}
|
||||
\entry{\code {return}}{52}
|
||||
\entry{\code {read}}{64}
|
||||
\entry{\code {readarray}}{66}
|
||||
\entry{\code {readonly}}{53}
|
||||
\entry{\code {return}}{53}
|
||||
\initial {S}
|
||||
\entry{\code {set}}{67}
|
||||
\entry{\code {shift}}{52}
|
||||
\entry{\code {shopt}}{71}
|
||||
\entry{\code {source}}{65}
|
||||
\entry{\code {suspend}}{119}
|
||||
\entry{\code {set}}{68}
|
||||
\entry{\code {shift}}{53}
|
||||
\entry{\code {shopt}}{72}
|
||||
\entry{\code {source}}{66}
|
||||
\entry{\code {suspend}}{120}
|
||||
\initial {T}
|
||||
\entry{\code {test}}{52}
|
||||
\entry{\code {times}}{54}
|
||||
\entry{\code {trap}}{54}
|
||||
\entry{\code {type}}{65}
|
||||
\entry{\code {typeset}}{66}
|
||||
\entry{\code {test}}{53}
|
||||
\entry{\code {times}}{55}
|
||||
\entry{\code {trap}}{55}
|
||||
\entry{\code {type}}{66}
|
||||
\entry{\code {typeset}}{67}
|
||||
\initial {U}
|
||||
\entry{\code {ulimit}}{66}
|
||||
\entry{\code {umask}}{55}
|
||||
\entry{\code {unalias}}{67}
|
||||
\entry{\code {unset}}{55}
|
||||
\entry{\code {ulimit}}{67}
|
||||
\entry{\code {umask}}{56}
|
||||
\entry{\code {unalias}}{68}
|
||||
\entry{\code {unset}}{56}
|
||||
\initial {W}
|
||||
\entry{\code {wait}}{118}
|
||||
\entry{\code {wait}}{119}
|
||||
|
||||
+65
-65
@@ -55,75 +55,75 @@
|
||||
\entry{parameter expansion}{26}{parameter expansion}
|
||||
\entry{expansion, parameter}{26}{expansion, parameter}
|
||||
\entry{command substitution}{34}{command substitution}
|
||||
\entry{expansion, arithmetic}{34}{expansion, arithmetic}
|
||||
\entry{arithmetic expansion}{34}{arithmetic expansion}
|
||||
\entry{expansion, arithmetic}{35}{expansion, arithmetic}
|
||||
\entry{arithmetic expansion}{35}{arithmetic expansion}
|
||||
\entry{process substitution}{35}{process substitution}
|
||||
\entry{word splitting}{35}{word splitting}
|
||||
\entry{word splitting}{36}{word splitting}
|
||||
\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}
|
||||
\entry{command expansion}{42}{command expansion}
|
||||
\entry{command execution}{42}{command execution}
|
||||
\entry{command search}{42}{command search}
|
||||
\entry{execution environment}{43}{execution environment}
|
||||
\entry{environment}{44}{environment}
|
||||
\entry{pattern matching}{37}{pattern matching}
|
||||
\entry{matching, pattern}{37}{matching, pattern}
|
||||
\entry{redirection}{39}{redirection}
|
||||
\entry{command expansion}{43}{command expansion}
|
||||
\entry{command execution}{43}{command execution}
|
||||
\entry{command search}{43}{command search}
|
||||
\entry{execution environment}{44}{execution environment}
|
||||
\entry{environment}{45}{environment}
|
||||
\entry{exit status}{45}{exit status}
|
||||
\entry{signal handling}{45}{signal handling}
|
||||
\entry{shell script}{46}{shell script}
|
||||
\entry{special builtin}{78}{special builtin}
|
||||
\entry{login shell}{94}{login shell}
|
||||
\entry{interactive shell}{94}{interactive shell}
|
||||
\entry{startup files}{94}{startup files}
|
||||
\entry{signal handling}{46}{signal handling}
|
||||
\entry{shell script}{47}{shell script}
|
||||
\entry{special builtin}{79}{special builtin}
|
||||
\entry{login shell}{95}{login shell}
|
||||
\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}
|
||||
\entry{startup files}{95}{startup files}
|
||||
\entry{interactive shell}{96}{interactive shell}
|
||||
\entry{shell, interactive}{96}{shell, interactive}
|
||||
\entry{expressions, conditional}{98}{expressions, conditional}
|
||||
\entry{arithmetic, shell}{100}{arithmetic, shell}
|
||||
\entry{shell arithmetic}{100}{shell arithmetic}
|
||||
\entry{expressions, arithmetic}{100}{expressions, arithmetic}
|
||||
\entry{evaluation, arithmetic}{100}{evaluation, arithmetic}
|
||||
\entry{arithmetic evaluation}{100}{arithmetic evaluation}
|
||||
\entry{arithmetic operators}{100}{arithmetic operators}
|
||||
\entry{unary arithmetic operators}{100}{unary arithmetic operators}
|
||||
\entry{binary arithmetic operators}{100}{binary arithmetic operators}
|
||||
\entry{conditional arithmetic operator}{100}{conditional arithmetic operator}
|
||||
\entry{bitwise arithmetic operators}{100}{bitwise arithmetic operators}
|
||||
\entry{alias expansion}{102}{alias expansion}
|
||||
\entry{arrays}{102}{arrays}
|
||||
\entry{directory stack}{104}{directory stack}
|
||||
\entry{prompting}{106}{prompting}
|
||||
\entry{restricted shell}{108}{restricted shell}
|
||||
\entry{POSIX description}{108}{POSIX description}
|
||||
\entry{POSIX Mode}{109}{POSIX Mode}
|
||||
\entry{Compatibility Level}{113}{Compatibility Level}
|
||||
\entry{Compatibility Mode}{113}{Compatibility Mode}
|
||||
\entry{job control}{117}{job control}
|
||||
\entry{foreground}{117}{foreground}
|
||||
\entry{background}{117}{background}
|
||||
\entry{suspending jobs}{117}{suspending jobs}
|
||||
\entry{Readline, how to use}{120}{Readline, how to use}
|
||||
\entry{interaction, readline}{121}{interaction, readline}
|
||||
\entry{notation, readline}{122}{notation, readline}
|
||||
\entry{command editing}{122}{command editing}
|
||||
\entry{editing command lines}{122}{editing command lines}
|
||||
\entry{killing text}{123}{killing text}
|
||||
\entry{yanking text}{123}{yanking text}
|
||||
\entry{kill ring}{123}{kill ring}
|
||||
\entry{initialization file, readline}{124}{initialization file, readline}
|
||||
\entry{variables, readline}{125}{variables, readline}
|
||||
\entry{programmable completion}{147}{programmable completion}
|
||||
\entry{completion builtins}{150}{completion builtins}
|
||||
\entry{History, how to use}{155}{History, how to use}
|
||||
\entry{command history}{156}{command history}
|
||||
\entry{history list}{156}{history list}
|
||||
\entry{history builtins}{156}{history builtins}
|
||||
\entry{history expansion}{158}{history expansion}
|
||||
\entry{event designators}{159}{event designators}
|
||||
\entry{history events}{159}{history events}
|
||||
\entry{installation}{162}{installation}
|
||||
\entry{configuration}{162}{configuration}
|
||||
\entry{Bash installation}{162}{Bash installation}
|
||||
\entry{Bash configuration}{162}{Bash configuration}
|
||||
|
||||
+65
-65
@@ -1,25 +1,25 @@
|
||||
\initial {A}
|
||||
\entry{alias expansion}{101}
|
||||
\entry{arithmetic evaluation}{99}
|
||||
\entry{arithmetic expansion}{34}
|
||||
\entry{arithmetic operators}{99}
|
||||
\entry{arithmetic, shell}{99}
|
||||
\entry{arrays}{101}
|
||||
\entry{alias expansion}{102}
|
||||
\entry{arithmetic evaluation}{100}
|
||||
\entry{arithmetic expansion}{35}
|
||||
\entry{arithmetic operators}{100}
|
||||
\entry{arithmetic, shell}{100}
|
||||
\entry{arrays}{102}
|
||||
\initial {B}
|
||||
\entry{background}{116}
|
||||
\entry{Bash configuration}{161}
|
||||
\entry{Bash installation}{161}
|
||||
\entry{binary arithmetic operators}{99}
|
||||
\entry{bitwise arithmetic operators}{99}
|
||||
\entry{background}{117}
|
||||
\entry{Bash configuration}{162}
|
||||
\entry{Bash installation}{162}
|
||||
\entry{binary arithmetic operators}{100}
|
||||
\entry{bitwise arithmetic operators}{100}
|
||||
\entry{Bourne shell}{5}
|
||||
\entry{brace expansion}{24}
|
||||
\entry{builtin}{3}
|
||||
\initial {C}
|
||||
\entry{command editing}{121}
|
||||
\entry{command execution}{42}
|
||||
\entry{command expansion}{42}
|
||||
\entry{command history}{155}
|
||||
\entry{command search}{42}
|
||||
\entry{command editing}{122}
|
||||
\entry{command execution}{43}
|
||||
\entry{command expansion}{43}
|
||||
\entry{command history}{156}
|
||||
\entry{command search}{43}
|
||||
\entry{command substitution}{34}
|
||||
\entry{command timing}{10}
|
||||
\entry{commands, compound}{11}
|
||||
@@ -31,67 +31,67 @@
|
||||
\entry{commands, shell}{9}
|
||||
\entry{commands, simple}{9}
|
||||
\entry{comments, shell}{9}
|
||||
\entry{Compatibility Level}{112}
|
||||
\entry{Compatibility Mode}{112}
|
||||
\entry{completion builtins}{149}
|
||||
\entry{conditional arithmetic operator}{99}
|
||||
\entry{configuration}{161}
|
||||
\entry{Compatibility Level}{113}
|
||||
\entry{Compatibility Mode}{113}
|
||||
\entry{completion builtins}{150}
|
||||
\entry{conditional arithmetic operator}{100}
|
||||
\entry{configuration}{162}
|
||||
\entry{control operator}{3}
|
||||
\entry{coprocess}{18}
|
||||
\initial {D}
|
||||
\entry{directory stack}{103}
|
||||
\entry{directory stack}{104}
|
||||
\initial {E}
|
||||
\entry{editing command lines}{121}
|
||||
\entry{environment}{44}
|
||||
\entry{evaluation, arithmetic}{99}
|
||||
\entry{event designators}{158}
|
||||
\entry{execution environment}{43}
|
||||
\entry{editing command lines}{122}
|
||||
\entry{environment}{45}
|
||||
\entry{evaluation, arithmetic}{100}
|
||||
\entry{event designators}{159}
|
||||
\entry{execution environment}{44}
|
||||
\entry{exit status}{3, 45}
|
||||
\entry{expansion}{24}
|
||||
\entry{expansion, arithmetic}{34}
|
||||
\entry{expansion, arithmetic}{35}
|
||||
\entry{expansion, brace}{24}
|
||||
\entry{expansion, filename}{36}
|
||||
\entry{expansion, parameter}{26}
|
||||
\entry{expansion, pathname}{36}
|
||||
\entry{expansion, tilde}{25}
|
||||
\entry{expressions, arithmetic}{99}
|
||||
\entry{expressions, conditional}{97}
|
||||
\entry{expressions, arithmetic}{100}
|
||||
\entry{expressions, conditional}{98}
|
||||
\initial {F}
|
||||
\entry{field}{3}
|
||||
\entry{filename}{3}
|
||||
\entry{filename expansion}{36}
|
||||
\entry{foreground}{116}
|
||||
\entry{foreground}{117}
|
||||
\entry{functions, shell}{19}
|
||||
\initial {H}
|
||||
\entry{history builtins}{155}
|
||||
\entry{history events}{158}
|
||||
\entry{history expansion}{157}
|
||||
\entry{history list}{155}
|
||||
\entry{History, how to use}{154}
|
||||
\entry{history builtins}{156}
|
||||
\entry{history events}{159}
|
||||
\entry{history expansion}{158}
|
||||
\entry{history list}{156}
|
||||
\entry{History, how to use}{155}
|
||||
\initial {I}
|
||||
\entry{identifier}{3}
|
||||
\entry{initialization file, readline}{123}
|
||||
\entry{installation}{161}
|
||||
\entry{interaction, readline}{120}
|
||||
\entry{interactive shell}{94, 95}
|
||||
\entry{initialization file, readline}{124}
|
||||
\entry{installation}{162}
|
||||
\entry{interaction, readline}{121}
|
||||
\entry{interactive shell}{95, 96}
|
||||
\entry{internationalization}{7}
|
||||
\entry{internationalized scripts}{7}
|
||||
\initial {J}
|
||||
\entry{job}{3}
|
||||
\entry{job control}{3, 116}
|
||||
\entry{job control}{3, 117}
|
||||
\initial {K}
|
||||
\entry{kill ring}{122}
|
||||
\entry{killing text}{122}
|
||||
\entry{kill ring}{123}
|
||||
\entry{killing text}{123}
|
||||
\initial {L}
|
||||
\entry{localization}{7}
|
||||
\entry{login shell}{94}
|
||||
\entry{login shell}{95}
|
||||
\initial {M}
|
||||
\entry{matching, pattern}{36}
|
||||
\entry{matching, pattern}{37}
|
||||
\entry{metacharacter}{3}
|
||||
\initial {N}
|
||||
\entry{name}{3}
|
||||
\entry{native languages}{7}
|
||||
\entry{notation, readline}{121}
|
||||
\entry{notation, readline}{122}
|
||||
\initial {O}
|
||||
\entry{operator, shell}{3}
|
||||
\initial {P}
|
||||
@@ -100,49 +100,49 @@
|
||||
\entry{parameters, positional}{23}
|
||||
\entry{parameters, special}{23}
|
||||
\entry{pathname expansion}{36}
|
||||
\entry{pattern matching}{36}
|
||||
\entry{pattern matching}{37}
|
||||
\entry{pipeline}{10}
|
||||
\entry{POSIX}{3}
|
||||
\entry{POSIX description}{107}
|
||||
\entry{POSIX Mode}{108}
|
||||
\entry{POSIX description}{108}
|
||||
\entry{POSIX Mode}{109}
|
||||
\entry{process group}{3}
|
||||
\entry{process group ID}{3}
|
||||
\entry{process substitution}{35}
|
||||
\entry{programmable completion}{146}
|
||||
\entry{prompting}{105}
|
||||
\entry{programmable completion}{147}
|
||||
\entry{prompting}{106}
|
||||
\initial {Q}
|
||||
\entry{quoting}{6}
|
||||
\entry{quoting, ANSI}{6}
|
||||
\initial {R}
|
||||
\entry{Readline, how to use}{119}
|
||||
\entry{redirection}{38}
|
||||
\entry{Readline, how to use}{120}
|
||||
\entry{redirection}{39}
|
||||
\entry{reserved word}{3}
|
||||
\entry{reserved words}{9}
|
||||
\entry{restricted shell}{107}
|
||||
\entry{restricted shell}{108}
|
||||
\entry{return status}{4}
|
||||
\initial {S}
|
||||
\entry{shell arithmetic}{99}
|
||||
\entry{shell arithmetic}{100}
|
||||
\entry{shell function}{19}
|
||||
\entry{shell script}{46}
|
||||
\entry{shell script}{47}
|
||||
\entry{shell variable}{21}
|
||||
\entry{shell, interactive}{95}
|
||||
\entry{shell, interactive}{96}
|
||||
\entry{signal}{4}
|
||||
\entry{signal handling}{45}
|
||||
\entry{special builtin}{4, 78}
|
||||
\entry{startup files}{94}
|
||||
\entry{signal handling}{46}
|
||||
\entry{special builtin}{4, 79}
|
||||
\entry{startup files}{95}
|
||||
\entry{string translations}{7}
|
||||
\entry{suspending jobs}{116}
|
||||
\entry{suspending jobs}{117}
|
||||
\initial {T}
|
||||
\entry{tilde expansion}{25}
|
||||
\entry{token}{4}
|
||||
\entry{translation, native languages}{7}
|
||||
\initial {U}
|
||||
\entry{unary arithmetic operators}{99}
|
||||
\entry{unary arithmetic operators}{100}
|
||||
\initial {V}
|
||||
\entry{variable, shell}{21}
|
||||
\entry{variables, readline}{124}
|
||||
\entry{variables, readline}{125}
|
||||
\initial {W}
|
||||
\entry{word}{4}
|
||||
\entry{word splitting}{35}
|
||||
\entry{word splitting}{36}
|
||||
\initial {Y}
|
||||
\entry{yanking text}{122}
|
||||
\entry{yanking text}{123}
|
||||
|
||||
Binary file not shown.
+114
-114
@@ -1,114 +1,114 @@
|
||||
\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)}}
|
||||
\entry{beginning-of-line (C-a)}{137}{\code {beginning-of-line (C-a)}}
|
||||
\entry{end-of-line (C-e)}{137}{\code {end-of-line (C-e)}}
|
||||
\entry{forward-char (C-f)}{137}{\code {forward-char (C-f)}}
|
||||
\entry{backward-char (C-b)}{137}{\code {backward-char (C-b)}}
|
||||
\entry{forward-word (M-f)}{137}{\code {forward-word (M-f)}}
|
||||
\entry{backward-word (M-b)}{137}{\code {backward-word (M-b)}}
|
||||
\entry{shell-forward-word (M-C-f)}{137}{\code {shell-forward-word (M-C-f)}}
|
||||
\entry{shell-backward-word (M-C-b)}{137}{\code {shell-backward-word (M-C-b)}}
|
||||
\entry{previous-screen-line ()}{137}{\code {previous-screen-line ()}}
|
||||
\entry{next-screen-line ()}{138}{\code {next-screen-line ()}}
|
||||
\entry{clear-display (M-C-l)}{138}{\code {clear-display (M-C-l)}}
|
||||
\entry{clear-screen (C-l)}{138}{\code {clear-screen (C-l)}}
|
||||
\entry{redraw-current-line ()}{138}{\code {redraw-current-line ()}}
|
||||
\entry{accept-line (Newline or Return)}{138}{\code {accept-line (Newline or Return)}}
|
||||
\entry{previous-history (C-p)}{138}{\code {previous-history (C-p)}}
|
||||
\entry{next-history (C-n)}{138}{\code {next-history (C-n)}}
|
||||
\entry{beginning-of-history (M-<)}{138}{\code {beginning-of-history (M-<)}}
|
||||
\entry{end-of-history (M->)}{138}{\code {end-of-history (M->)}}
|
||||
\entry{reverse-search-history (C-r)}{138}{\code {reverse-search-history (C-r)}}
|
||||
\entry{forward-search-history (C-s)}{138}{\code {forward-search-history (C-s)}}
|
||||
\entry{non-incremental-reverse-search-history (M-p)}{138}{\code {non-incremental-reverse-search-history (M-p)}}
|
||||
\entry{non-incremental-forward-search-history (M-n)}{139}{\code {non-incremental-forward-search-history (M-n)}}
|
||||
\entry{history-search-forward ()}{139}{\code {history-search-forward ()}}
|
||||
\entry{history-search-backward ()}{139}{\code {history-search-backward ()}}
|
||||
\entry{history-substring-search-forward ()}{139}{\code {history-substring-search-forward ()}}
|
||||
\entry{history-substring-search-backward ()}{139}{\code {history-substring-search-backward ()}}
|
||||
\entry{yank-nth-arg (M-C-y)}{139}{\code {yank-nth-arg (M-C-y)}}
|
||||
\entry{yank-last-arg (M-. or M-_)}{139}{\code {yank-last-arg (M-. or M-_)}}
|
||||
\entry{operate-and-get-next (C-o)}{139}{\code {operate-and-get-next (C-o)}}
|
||||
\entry{fetch-history ()}{140}{\code {fetch-history ()}}
|
||||
\entry{end-of-file (usually C-d)}{140}{\code {\i {end-of-file} (usually C-d)}}
|
||||
\entry{delete-char (C-d)}{140}{\code {delete-char (C-d)}}
|
||||
\entry{backward-delete-char (Rubout)}{140}{\code {backward-delete-char (Rubout)}}
|
||||
\entry{forward-backward-delete-char ()}{140}{\code {forward-backward-delete-char ()}}
|
||||
\entry{quoted-insert (C-q or C-v)}{140}{\code {quoted-insert (C-q or C-v)}}
|
||||
\entry{self-insert (a, b, A, 1, !, ...{})}{140}{\code {self-insert (a, b, A, 1, !, \dots {})}}
|
||||
\entry{bracketed-paste-begin ()}{140}{\code {bracketed-paste-begin ()}}
|
||||
\entry{transpose-chars (C-t)}{140}{\code {transpose-chars (C-t)}}
|
||||
\entry{transpose-words (M-t)}{141}{\code {transpose-words (M-t)}}
|
||||
\entry{upcase-word (M-u)}{141}{\code {upcase-word (M-u)}}
|
||||
\entry{downcase-word (M-l)}{141}{\code {downcase-word (M-l)}}
|
||||
\entry{capitalize-word (M-c)}{141}{\code {capitalize-word (M-c)}}
|
||||
\entry{overwrite-mode ()}{141}{\code {overwrite-mode ()}}
|
||||
\entry{kill-line (C-k)}{141}{\code {kill-line (C-k)}}
|
||||
\entry{backward-kill-line (C-x Rubout)}{141}{\code {backward-kill-line (C-x Rubout)}}
|
||||
\entry{unix-line-discard (C-u)}{141}{\code {unix-line-discard (C-u)}}
|
||||
\entry{kill-whole-line ()}{141}{\code {kill-whole-line ()}}
|
||||
\entry{kill-word (M-d)}{141}{\code {kill-word (M-d)}}
|
||||
\entry{backward-kill-word (M-DEL)}{141}{\code {backward-kill-word (M-\key {DEL})}}
|
||||
\entry{shell-kill-word (M-C-d)}{142}{\code {shell-kill-word (M-C-d)}}
|
||||
\entry{shell-backward-kill-word ()}{142}{\code {shell-backward-kill-word ()}}
|
||||
\entry{shell-transpose-words (M-C-t)}{142}{\code {shell-transpose-words (M-C-t)}}
|
||||
\entry{unix-word-rubout (C-w)}{142}{\code {unix-word-rubout (C-w)}}
|
||||
\entry{unix-filename-rubout ()}{142}{\code {unix-filename-rubout ()}}
|
||||
\entry{delete-horizontal-space ()}{142}{\code {delete-horizontal-space ()}}
|
||||
\entry{kill-region ()}{142}{\code {kill-region ()}}
|
||||
\entry{copy-region-as-kill ()}{142}{\code {copy-region-as-kill ()}}
|
||||
\entry{copy-backward-word ()}{142}{\code {copy-backward-word ()}}
|
||||
\entry{copy-forward-word ()}{142}{\code {copy-forward-word ()}}
|
||||
\entry{yank (C-y)}{142}{\code {yank (C-y)}}
|
||||
\entry{yank-pop (M-y)}{142}{\code {yank-pop (M-y)}}
|
||||
\entry{digit-argument (M-0, M-1, ...{} M--)}{142}{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}
|
||||
\entry{universal-argument ()}{143}{\code {universal-argument ()}}
|
||||
\entry{complete (TAB)}{143}{\code {complete (\key {TAB})}}
|
||||
\entry{possible-completions (M-?)}{143}{\code {possible-completions (M-?)}}
|
||||
\entry{insert-completions (M-*)}{143}{\code {insert-completions (M-*)}}
|
||||
\entry{menu-complete ()}{143}{\code {menu-complete ()}}
|
||||
\entry{menu-complete-backward ()}{143}{\code {menu-complete-backward ()}}
|
||||
\entry{delete-char-or-list ()}{143}{\code {delete-char-or-list ()}}
|
||||
\entry{complete-filename (M-/)}{143}{\code {complete-filename (M-/)}}
|
||||
\entry{possible-filename-completions (C-x /)}{144}{\code {possible-filename-completions (C-x /)}}
|
||||
\entry{complete-username (M-~)}{144}{\code {complete-username (M-~)}}
|
||||
\entry{possible-username-completions (C-x ~)}{144}{\code {possible-username-completions (C-x ~)}}
|
||||
\entry{complete-variable (M-$)}{144}{\code {complete-variable (M-$)}}
|
||||
\entry{possible-variable-completions (C-x $)}{144}{\code {possible-variable-completions (C-x $)}}
|
||||
\entry{complete-hostname (M-@)}{144}{\code {complete-hostname (M-@)}}
|
||||
\entry{possible-hostname-completions (C-x @)}{144}{\code {possible-hostname-completions (C-x @)}}
|
||||
\entry{complete-command (M-!)}{144}{\code {complete-command (M-!)}}
|
||||
\entry{possible-command-completions (C-x !)}{144}{\code {possible-command-completions (C-x !)}}
|
||||
\entry{dynamic-complete-history (M-TAB)}{144}{\code {dynamic-complete-history (M-\key {TAB})}}
|
||||
\entry{dabbrev-expand ()}{144}{\code {dabbrev-expand ()}}
|
||||
\entry{complete-into-braces (M-{\indexlbrace })}{144}{\code {complete-into-braces (M-{\tt \char 123})}}
|
||||
\entry{start-kbd-macro (C-x ()}{144}{\code {start-kbd-macro (C-x ()}}
|
||||
\entry{end-kbd-macro (C-x ))}{144}{\code {end-kbd-macro (C-x ))}}
|
||||
\entry{call-last-kbd-macro (C-x e)}{145}{\code {call-last-kbd-macro (C-x e)}}
|
||||
\entry{print-last-kbd-macro ()}{145}{\code {print-last-kbd-macro ()}}
|
||||
\entry{re-read-init-file (C-x C-r)}{145}{\code {re-read-init-file (C-x C-r)}}
|
||||
\entry{abort (C-g)}{145}{\code {abort (C-g)}}
|
||||
\entry{do-lowercase-version (M-A, M-B, M-x, ...{})}{145}{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}
|
||||
\entry{prefix-meta (ESC)}{145}{\code {prefix-meta (\key {ESC})}}
|
||||
\entry{undo (C-_ or C-x C-u)}{145}{\code {undo (C-_ or C-x C-u)}}
|
||||
\entry{revert-line (M-r)}{145}{\code {revert-line (M-r)}}
|
||||
\entry{tilde-expand (M-&)}{145}{\code {tilde-expand (M-&)}}
|
||||
\entry{set-mark (C-@)}{145}{\code {set-mark (C-@)}}
|
||||
\entry{exchange-point-and-mark (C-x C-x)}{145}{\code {exchange-point-and-mark (C-x C-x)}}
|
||||
\entry{character-search (C-])}{145}{\code {character-search (C-])}}
|
||||
\entry{character-search-backward (M-C-])}{145}{\code {character-search-backward (M-C-])}}
|
||||
\entry{skip-csi-sequence ()}{145}{\code {skip-csi-sequence ()}}
|
||||
\entry{insert-comment (M-#)}{146}{\code {insert-comment (M-#)}}
|
||||
\entry{dump-functions ()}{146}{\code {dump-functions ()}}
|
||||
\entry{dump-variables ()}{146}{\code {dump-variables ()}}
|
||||
\entry{dump-macros ()}{146}{\code {dump-macros ()}}
|
||||
\entry{spell-correct-word (C-x s)}{146}{\code {spell-correct-word (C-x s)}}
|
||||
\entry{glob-complete-word (M-g)}{146}{\code {glob-complete-word (M-g)}}
|
||||
\entry{glob-expand-word (C-x *)}{146}{\code {glob-expand-word (C-x *)}}
|
||||
\entry{glob-list-expansions (C-x g)}{146}{\code {glob-list-expansions (C-x g)}}
|
||||
\entry{display-shell-version (C-x C-v)}{147}{\code {display-shell-version (C-x C-v)}}
|
||||
\entry{shell-expand-line (M-C-e)}{147}{\code {shell-expand-line (M-C-e)}}
|
||||
\entry{history-expand-line (M-^)}{147}{\code {history-expand-line (M-^)}}
|
||||
\entry{magic-space ()}{147}{\code {magic-space ()}}
|
||||
\entry{alias-expand-line ()}{147}{\code {alias-expand-line ()}}
|
||||
\entry{history-and-alias-expand-line ()}{147}{\code {history-and-alias-expand-line ()}}
|
||||
\entry{insert-last-argument (M-. or M-_)}{147}{\code {insert-last-argument (M-. or M-_)}}
|
||||
\entry{edit-and-execute-command (C-x C-e)}{147}{\code {edit-and-execute-command (C-x C-e)}}
|
||||
|
||||
+114
-114
@@ -1,134 +1,134 @@
|
||||
\initial {A}
|
||||
\entry{\code {abort (C-g)}}{144}
|
||||
\entry{\code {accept-line (Newline or Return)}}{137}
|
||||
\entry{\code {alias-expand-line ()}}{146}
|
||||
\entry{\code {abort (C-g)}}{145}
|
||||
\entry{\code {accept-line (Newline or Return)}}{138}
|
||||
\entry{\code {alias-expand-line ()}}{147}
|
||||
\initial {B}
|
||||
\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}
|
||||
\entry{\code {backward-char (C-b)}}{137}
|
||||
\entry{\code {backward-delete-char (Rubout)}}{140}
|
||||
\entry{\code {backward-kill-line (C-x Rubout)}}{141}
|
||||
\entry{\code {backward-kill-word (M-\key {DEL})}}{141}
|
||||
\entry{\code {backward-word (M-b)}}{137}
|
||||
\entry{\code {beginning-of-history (M-<)}}{138}
|
||||
\entry{\code {beginning-of-line (C-a)}}{137}
|
||||
\entry{\code {bracketed-paste-begin ()}}{140}
|
||||
\initial {C}
|
||||
\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}
|
||||
\entry{\code {call-last-kbd-macro (C-x e)}}{145}
|
||||
\entry{\code {capitalize-word (M-c)}}{141}
|
||||
\entry{\code {character-search (C-])}}{145}
|
||||
\entry{\code {character-search-backward (M-C-])}}{145}
|
||||
\entry{\code {clear-display (M-C-l)}}{138}
|
||||
\entry{\code {clear-screen (C-l)}}{138}
|
||||
\entry{\code {complete (\key {TAB})}}{143}
|
||||
\entry{\code {complete-command (M-!)}}{144}
|
||||
\entry{\code {complete-filename (M-/)}}{143}
|
||||
\entry{\code {complete-hostname (M-@)}}{144}
|
||||
\entry{\code {complete-into-braces (M-{\tt \char 123})}}{144}
|
||||
\entry{\code {complete-username (M-~)}}{144}
|
||||
\entry{\code {complete-variable (M-$)}}{144}
|
||||
\entry{\code {copy-backward-word ()}}{142}
|
||||
\entry{\code {copy-forward-word ()}}{142}
|
||||
\entry{\code {copy-region-as-kill ()}}{142}
|
||||
\initial {D}
|
||||
\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}
|
||||
\entry{\code {dabbrev-expand ()}}{144}
|
||||
\entry{\code {delete-char (C-d)}}{140}
|
||||
\entry{\code {delete-char-or-list ()}}{143}
|
||||
\entry{\code {delete-horizontal-space ()}}{142}
|
||||
\entry{\code {digit-argument (\kbd {M-0}, \kbd {M-1}, \dots {} \kbd {M--})}}{142}
|
||||
\entry{\code {display-shell-version (C-x C-v)}}{147}
|
||||
\entry{\code {do-lowercase-version (M-A, M-B, M-\var {x}, \dots {})}}{145}
|
||||
\entry{\code {downcase-word (M-l)}}{141}
|
||||
\entry{\code {dump-functions ()}}{146}
|
||||
\entry{\code {dump-macros ()}}{146}
|
||||
\entry{\code {dump-variables ()}}{146}
|
||||
\entry{\code {dynamic-complete-history (M-\key {TAB})}}{144}
|
||||
\initial {E}
|
||||
\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}
|
||||
\entry{\code {edit-and-execute-command (C-x C-e)}}{147}
|
||||
\entry{\code {end-kbd-macro (C-x ))}}{144}
|
||||
\entry{\code {\i {end-of-file} (usually C-d)}}{140}
|
||||
\entry{\code {end-of-history (M->)}}{138}
|
||||
\entry{\code {end-of-line (C-e)}}{137}
|
||||
\entry{\code {exchange-point-and-mark (C-x C-x)}}{145}
|
||||
\initial {F}
|
||||
\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}
|
||||
\entry{\code {fetch-history ()}}{140}
|
||||
\entry{\code {forward-backward-delete-char ()}}{140}
|
||||
\entry{\code {forward-char (C-f)}}{137}
|
||||
\entry{\code {forward-search-history (C-s)}}{138}
|
||||
\entry{\code {forward-word (M-f)}}{137}
|
||||
\initial {G}
|
||||
\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}
|
||||
\entry{\code {glob-complete-word (M-g)}}{146}
|
||||
\entry{\code {glob-expand-word (C-x *)}}{146}
|
||||
\entry{\code {glob-list-expansions (C-x g)}}{146}
|
||||
\initial {H}
|
||||
\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}
|
||||
\entry{\code {history-and-alias-expand-line ()}}{147}
|
||||
\entry{\code {history-expand-line (M-^)}}{147}
|
||||
\entry{\code {history-search-backward ()}}{139}
|
||||
\entry{\code {history-search-forward ()}}{139}
|
||||
\entry{\code {history-substring-search-backward ()}}{139}
|
||||
\entry{\code {history-substring-search-forward ()}}{139}
|
||||
\initial {I}
|
||||
\entry{\code {insert-comment (M-#)}}{145}
|
||||
\entry{\code {insert-completions (M-*)}}{142}
|
||||
\entry{\code {insert-last-argument (M-. or M-_)}}{146}
|
||||
\entry{\code {insert-comment (M-#)}}{146}
|
||||
\entry{\code {insert-completions (M-*)}}{143}
|
||||
\entry{\code {insert-last-argument (M-. or M-_)}}{147}
|
||||
\initial {K}
|
||||
\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}
|
||||
\entry{\code {kill-line (C-k)}}{141}
|
||||
\entry{\code {kill-region ()}}{142}
|
||||
\entry{\code {kill-whole-line ()}}{141}
|
||||
\entry{\code {kill-word (M-d)}}{141}
|
||||
\initial {M}
|
||||
\entry{\code {magic-space ()}}{146}
|
||||
\entry{\code {menu-complete ()}}{142}
|
||||
\entry{\code {menu-complete-backward ()}}{142}
|
||||
\entry{\code {magic-space ()}}{147}
|
||||
\entry{\code {menu-complete ()}}{143}
|
||||
\entry{\code {menu-complete-backward ()}}{143}
|
||||
\initial {N}
|
||||
\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}
|
||||
\entry{\code {next-history (C-n)}}{138}
|
||||
\entry{\code {next-screen-line ()}}{138}
|
||||
\entry{\code {non-incremental-forward-search-history (M-n)}}{139}
|
||||
\entry{\code {non-incremental-reverse-search-history (M-p)}}{138}
|
||||
\initial {O}
|
||||
\entry{\code {operate-and-get-next (C-o)}}{138}
|
||||
\entry{\code {overwrite-mode ()}}{140}
|
||||
\entry{\code {operate-and-get-next (C-o)}}{139}
|
||||
\entry{\code {overwrite-mode ()}}{141}
|
||||
\initial {P}
|
||||
\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}
|
||||
\entry{\code {possible-command-completions (C-x !)}}{144}
|
||||
\entry{\code {possible-completions (M-?)}}{143}
|
||||
\entry{\code {possible-filename-completions (C-x /)}}{144}
|
||||
\entry{\code {possible-hostname-completions (C-x @)}}{144}
|
||||
\entry{\code {possible-username-completions (C-x ~)}}{144}
|
||||
\entry{\code {possible-variable-completions (C-x $)}}{144}
|
||||
\entry{\code {prefix-meta (\key {ESC})}}{145}
|
||||
\entry{\code {previous-history (C-p)}}{138}
|
||||
\entry{\code {previous-screen-line ()}}{137}
|
||||
\entry{\code {print-last-kbd-macro ()}}{145}
|
||||
\initial {Q}
|
||||
\entry{\code {quoted-insert (C-q or C-v)}}{139}
|
||||
\entry{\code {quoted-insert (C-q or C-v)}}{140}
|
||||
\initial {R}
|
||||
\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}
|
||||
\entry{\code {re-read-init-file (C-x C-r)}}{145}
|
||||
\entry{\code {redraw-current-line ()}}{138}
|
||||
\entry{\code {reverse-search-history (C-r)}}{138}
|
||||
\entry{\code {revert-line (M-r)}}{145}
|
||||
\initial {S}
|
||||
\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}
|
||||
\entry{\code {self-insert (a, b, A, 1, !, \dots {})}}{140}
|
||||
\entry{\code {set-mark (C-@)}}{145}
|
||||
\entry{\code {shell-backward-kill-word ()}}{142}
|
||||
\entry{\code {shell-backward-word (M-C-b)}}{137}
|
||||
\entry{\code {shell-expand-line (M-C-e)}}{147}
|
||||
\entry{\code {shell-forward-word (M-C-f)}}{137}
|
||||
\entry{\code {shell-kill-word (M-C-d)}}{142}
|
||||
\entry{\code {shell-transpose-words (M-C-t)}}{142}
|
||||
\entry{\code {skip-csi-sequence ()}}{145}
|
||||
\entry{\code {spell-correct-word (C-x s)}}{146}
|
||||
\entry{\code {start-kbd-macro (C-x ()}}{144}
|
||||
\initial {T}
|
||||
\entry{\code {tilde-expand (M-&)}}{144}
|
||||
\entry{\code {transpose-chars (C-t)}}{139}
|
||||
\entry{\code {transpose-words (M-t)}}{140}
|
||||
\entry{\code {tilde-expand (M-&)}}{145}
|
||||
\entry{\code {transpose-chars (C-t)}}{140}
|
||||
\entry{\code {transpose-words (M-t)}}{141}
|
||||
\initial {U}
|
||||
\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}
|
||||
\entry{\code {undo (C-_ or C-x C-u)}}{145}
|
||||
\entry{\code {universal-argument ()}}{143}
|
||||
\entry{\code {unix-filename-rubout ()}}{142}
|
||||
\entry{\code {unix-line-discard (C-u)}}{141}
|
||||
\entry{\code {unix-word-rubout (C-w)}}{142}
|
||||
\entry{\code {upcase-word (M-u)}}{141}
|
||||
\initial {Y}
|
||||
\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}
|
||||
\entry{\code {yank (C-y)}}{142}
|
||||
\entry{\code {yank-last-arg (M-. or M-_)}}{139}
|
||||
\entry{\code {yank-nth-arg (M-C-y)}}{139}
|
||||
\entry{\code {yank-pop (M-y)}}{142}
|
||||
|
||||
+78
-25
@@ -4,9 +4,9 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<!-- This text is a brief description of the features that are present in
|
||||
the Bash shell (version 5.2, 17 April 2023).
|
||||
the Bash shell (version 5.2, 14 May 2023).
|
||||
|
||||
This is Edition 5.2, last updated 17 April 2023,
|
||||
This is Edition 5.2, last updated 14 May 2023,
|
||||
of The GNU Bash Reference Manual,
|
||||
for Bash, Version 5.2.
|
||||
|
||||
@@ -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, 17 April 2023).
|
||||
the Bash shell (version 5.2, 14 May 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 17 April 2023,
|
||||
<p>This is Edition 5.2, last updated 14 May 2023,
|
||||
of <cite>The GNU Bash Reference Manual</cite>,
|
||||
for <code>Bash</code>, Version 5.2.
|
||||
</p>
|
||||
@@ -737,8 +737,8 @@ Next: <a href="#Locale-Translation" accesskey="n" rel="next">Locale-Specific Tra
|
||||
<span id="ANSI_002dC-Quoting-1"></span><h4 class="subsubsection">3.1.2.4 ANSI-C Quoting</h4>
|
||||
<span id="index-quoting_002c-ANSI"></span>
|
||||
|
||||
<p>Character sequences of the form $’<var>string</var>’ are treated as a special
|
||||
kind of single quotes.
|
||||
<p>Character sequences of the form <code>$'<var>string</var>'</code> are treated as
|
||||
a special kind of single quotes.
|
||||
The sequence expands to <var>string</var>, with backslash-escaped characters
|
||||
in <var>string</var> replaced as specified by the ANSI C standard.
|
||||
Backslash escape sequences, if present, are decoded as follows:
|
||||
@@ -3049,24 +3049,25 @@ Next: <a href="#Arithmetic-Expansion" accesskey="n" rel="next">Arithmetic Expans
|
||||
|
||||
<p>Command substitution allows the output of a command to replace
|
||||
the command itself.
|
||||
Command substitution occurs when a command is enclosed as follows:
|
||||
The standard form of command substitution occurs when a command is
|
||||
enclosed as follows:
|
||||
</p><div class="example">
|
||||
<pre class="example">$(<var>command</var>)
|
||||
</pre></div>
|
||||
<p>or
|
||||
<p>or (deprecated)
|
||||
</p><div class="example">
|
||||
<pre class="example">`<var>command</var>`
|
||||
<pre class="example">`<var>command</var>`.
|
||||
</pre></div>
|
||||
|
||||
<p>Bash performs the expansion by executing <var>command</var> in a subshell environment
|
||||
and replacing the command substitution with the standard output of the
|
||||
command, with any trailing newlines deleted.
|
||||
<p>Bash performs the expansion by executing <var>command</var> in a subshell
|
||||
environment and replacing the command substitution with the standard
|
||||
output of the command, with any trailing newlines deleted.
|
||||
Embedded newlines are not deleted, but they may be removed during
|
||||
word splitting.
|
||||
The command substitution <code>$(cat <var>file</var>)</code> can be
|
||||
replaced by the equivalent but faster <code>$(< <var>file</var>)</code>.
|
||||
</p>
|
||||
<p>When the old-style backquote form of substitution is used,
|
||||
<p>With the old-style backquote form of substitution,
|
||||
backslash retains its literal meaning except when followed by
|
||||
‘<samp>$</samp>’, ‘<samp>`</samp>’, or ‘<samp>\</samp>’.
|
||||
The first backquote not preceded by a backslash terminates the
|
||||
@@ -3074,11 +3075,70 @@ command substitution.
|
||||
When using the <code>$(<var>command</var>)</code> form, all characters between
|
||||
the parentheses make up the command; none are treated specially.
|
||||
</p>
|
||||
<p>There is an alternate form of command substitution:
|
||||
</p>
|
||||
<div class="example">
|
||||
<pre class="example">${<var>C</var> <var>command</var>; }
|
||||
</pre></div>
|
||||
|
||||
<p>which executes <var>command</var> in the current execution environment.
|
||||
This means that side effects of <var>command</var> take effect immediately
|
||||
in the current execution environment and persist in the current
|
||||
environment after the command completes (e.g., the <code>exit</code> builtin
|
||||
will exit the shell).
|
||||
</p>
|
||||
<p>The character <var>C</var> following the open brace must be a space, tab,
|
||||
newline, ‘<samp>(</samp>’, or ‘<samp>|</samp>’, and the close brace must be in a position
|
||||
where a reserved word may appear (i.e., preceded by a command terminator
|
||||
such as semicolon).
|
||||
Bash allows the close brace to be joined to the remaining characters in
|
||||
the word without being followed by a shell metacharacter as a reserved
|
||||
word would usually require.
|
||||
</p>
|
||||
<p>This type of command substitution superficially resembles executing an
|
||||
unnamed shell function: local variables are created as when a shell
|
||||
function is executing, and the <code>return</code> builtin forces
|
||||
<var>command</var> to complete;
|
||||
however, the rest of the execution environment,
|
||||
including the positional parameters, is shared with the caller.
|
||||
</p>
|
||||
<p>If the first character following the open brace is a ‘<samp>(</samp>’,
|
||||
<var>command</var> is executed in a subshell, and <var>command</var> must be
|
||||
terminated by a ‘<samp>)</samp>’. This is similar to the <code>(</code> compound
|
||||
command (see <a href="#Command-Grouping">Grouping Commands</a>).
|
||||
If the first character is a ‘<samp>|</samp>’, the construct expands to the
|
||||
value of the <code>REPLY</code> shell variable after <var>command</var> executes,
|
||||
without removing any trailing newlines,
|
||||
and the standard output of <var>command</var> remains the same as in the
|
||||
calling shell.
|
||||
Bash creates <code>REPLY</code> as an initially-unset local variable when
|
||||
<var>command</var> executes, and restores <code>REPLY</code> to the value it had
|
||||
before the command substitution after <var>command</var> completes,
|
||||
as with any local variable.
|
||||
</p>
|
||||
<p>For example, this construct expands to ‘<samp>12345</samp>’, and leaves the
|
||||
shell variable <code>X</code> unchanged in the current execution environment:
|
||||
</p>
|
||||
<div class="example">
|
||||
<pre class="example">${ local X=12345 ; echo $X; }
|
||||
</pre></div>
|
||||
|
||||
<p>(not declaring <code>X</code> as local would modify its value in the current
|
||||
environment, as with normal shell function execution),
|
||||
while this construct does not require any output to expand to
|
||||
‘<samp>12345</samp>’:
|
||||
</p>
|
||||
<div class="example">
|
||||
<pre class="example">${| REPLY=12345; }
|
||||
</pre></div>
|
||||
|
||||
<p>and restores <code>REPLY</code> to the value it had before the command substitution.
|
||||
</p>
|
||||
<p>Command substitutions may be nested. To nest when using the backquoted
|
||||
form, escape the inner backquotes with backslashes.
|
||||
</p>
|
||||
<p>If the substitution appears within double quotes, word splitting and
|
||||
filename expansion are not performed on the results.
|
||||
<p>If the substitution appears within double quotes, Bash does not perform
|
||||
word splitting and filename expansion on the results.
|
||||
</p>
|
||||
<hr>
|
||||
</div>
|
||||
@@ -7294,6 +7354,9 @@ inode change time, and number of blocks, respectively.
|
||||
<p>For example, a value of <code>-mtime</code> sorts the results in descending
|
||||
order by modification time (newest first).
|
||||
</p>
|
||||
<p>A sort specifier of ‘<samp>nosort</samp>’ disables sorting completely; the results
|
||||
are returned in the order they are read from the file system,.
|
||||
</p>
|
||||
<p>If the sort specifier is missing, it defaults to <var>name</var>,
|
||||
so a value of ‘<samp>+</samp>’ is equivalent to the null string,
|
||||
and a value of ‘<samp>-</samp>’ sorts by name in descending order.
|
||||
@@ -9655,16 +9718,6 @@ and it is required for bash-5.1 and later versions.
|
||||
has no special effect
|
||||
</li></ul>
|
||||
|
||||
</dd>
|
||||
<dt><span><code>compat32</code></span></dt>
|
||||
<dd><ul>
|
||||
<li> interrupting a command list such as "a ; b ; c" causes the execution
|
||||
of the next command in the list (in bash-4.0 and later versions,
|
||||
the shell acts as if it received the interrupt, so
|
||||
interrupting one command in a list aborts the execution of the
|
||||
entire list)
|
||||
</li></ul>
|
||||
|
||||
</dd>
|
||||
<dt><span><code>compat40</code></span></dt>
|
||||
<dd><ul>
|
||||
|
||||
+194
-147
@@ -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, 20 April 2023).
|
||||
Bash shell (version 5.2, 14 May 2023).
|
||||
|
||||
This is Edition 5.2, last updated 20 April 2023, of 'The GNU Bash
|
||||
This is Edition 5.2, last updated 14 May 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, 20 April 2023). The Bash home page is
|
||||
Bash shell (version 5.2, 14 May 2023). The Bash home page is
|
||||
<http://www.gnu.org/software/bash/>.
|
||||
|
||||
This is Edition 5.2, last updated 20 April 2023, of 'The GNU Bash
|
||||
This is Edition 5.2, last updated 14 May 2023, of 'The GNU Bash
|
||||
Reference Manual', for 'Bash', Version 5.2.
|
||||
|
||||
Bash contains features that appear in other popular shells, and some
|
||||
@@ -419,8 +419,8 @@ File: bashref.info, Node: ANSI-C Quoting, Next: Locale Translation, Prev: Dou
|
||||
3.1.2.4 ANSI-C Quoting
|
||||
......................
|
||||
|
||||
Character sequences of the form $'STRING' are treated as a special kind
|
||||
of single quotes. The sequence expands to STRING, with
|
||||
Character sequences of the form '$'STRING'' are treated as a special
|
||||
kind of single quotes. The sequence expands to STRING, with
|
||||
backslash-escaped characters in STRING replaced as specified by the ANSI
|
||||
C standard. Backslash escape sequences, if present, are decoded as
|
||||
follows:
|
||||
@@ -2240,11 +2240,11 @@ File: bashref.info, Node: Command Substitution, Next: Arithmetic Expansion, P
|
||||
--------------------------
|
||||
|
||||
Command substitution allows the output of a command to replace the
|
||||
command itself. Command substitution occurs when a command is enclosed
|
||||
as follows:
|
||||
command itself. The standard form of command substitution occurs when a
|
||||
command is enclosed as follows:
|
||||
$(COMMAND)
|
||||
or
|
||||
`COMMAND`
|
||||
or (deprecated)
|
||||
`COMMAND`.
|
||||
|
||||
Bash performs the expansion by executing COMMAND in a subshell
|
||||
environment and replacing the command substitution with the standard
|
||||
@@ -2253,17 +2253,64 @@ newlines are not deleted, but they may be removed during word splitting.
|
||||
The command substitution '$(cat FILE)' can be replaced by the equivalent
|
||||
but faster '$(< FILE)'.
|
||||
|
||||
When the old-style backquote form of substitution is used, backslash
|
||||
retains its literal meaning except when followed by '$', '`', or '\'.
|
||||
The first backquote not preceded by a backslash terminates the command
|
||||
With the old-style backquote form of substitution, backslash retains
|
||||
its literal meaning except when followed by '$', '`', or '\'. The first
|
||||
backquote not preceded by a backslash terminates the command
|
||||
substitution. When using the '$(COMMAND)' form, all characters between
|
||||
the parentheses make up the command; none are treated specially.
|
||||
|
||||
There is an alternate form of command substitution:
|
||||
|
||||
${C COMMAND; }
|
||||
|
||||
which executes COMMAND in the current execution environment. This means
|
||||
that side effects of COMMAND take effect immediately in the current
|
||||
execution environment and persist in the current environment after the
|
||||
command completes (e.g., the 'exit' builtin will exit the shell).
|
||||
|
||||
The character C following the open brace must be a space, tab,
|
||||
newline, '(', or '|', and the close brace must be in a position where a
|
||||
reserved word may appear (i.e., preceded by a command terminator such as
|
||||
semicolon). Bash allows the close brace to be joined to the remaining
|
||||
characters in the word without being followed by a shell metacharacter
|
||||
as a reserved word would usually require.
|
||||
|
||||
This type of command substitution superficially resembles executing
|
||||
an unnamed shell function: local variables are created as when a shell
|
||||
function is executing, and the 'return' builtin forces COMMAND to
|
||||
complete; however, the rest of the execution environment, including the
|
||||
positional parameters, is shared with the caller.
|
||||
|
||||
If the first character following the open brace is a '(', COMMAND is
|
||||
executed in a subshell, and COMMAND must be terminated by a ')'. This
|
||||
is similar to the '(' compound command (*note Command Grouping::). If
|
||||
the first character is a '|', the construct expands to the value of the
|
||||
'REPLY' shell variable after COMMAND executes, without removing any
|
||||
trailing newlines, and the standard output of COMMAND remains the same
|
||||
as in the calling shell. Bash creates 'REPLY' as an initially-unset
|
||||
local variable when COMMAND executes, and restores 'REPLY' to the value
|
||||
it had before the command substitution after COMMAND completes, as with
|
||||
any local variable.
|
||||
|
||||
For example, this construct expands to '12345', and leaves the shell
|
||||
variable 'X' unchanged in the current execution environment:
|
||||
|
||||
${ local X=12345 ; echo $X; }
|
||||
|
||||
(not declaring 'X' as local would modify its value in the current
|
||||
environment, as with normal shell function execution), while this
|
||||
construct does not require any output to expand to '12345':
|
||||
|
||||
${| REPLY=12345; }
|
||||
|
||||
and restores 'REPLY' to the value it had before the command
|
||||
substitution.
|
||||
|
||||
Command substitutions may be nested. To nest when using the
|
||||
backquoted form, escape the inner backquotes with backslashes.
|
||||
|
||||
If the substitution appears within double quotes, word splitting and
|
||||
filename expansion are not performed on the results.
|
||||
If the substitution appears within double quotes, Bash does not
|
||||
perform word splitting and filename expansion on the results.
|
||||
|
||||
|
||||
File: bashref.info, Node: Arithmetic Expansion, Next: Process Substitution, Prev: Command Substitution, Up: Shell Expansions
|
||||
@@ -12707,138 +12754,138 @@ D.5 Concept Index
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Top891
|
||||
Node: Introduction2805
|
||||
Node: What is Bash?3021
|
||||
Node: What is a shell?4135
|
||||
Node: Definitions6673
|
||||
Node: Basic Shell Features9624
|
||||
Node: Shell Syntax10843
|
||||
Node: Shell Operation11869
|
||||
Node: Quoting13162
|
||||
Node: Escape Character14466
|
||||
Node: Single Quotes14951
|
||||
Node: Double Quotes15299
|
||||
Node: ANSI-C Quoting16577
|
||||
Node: Locale Translation17887
|
||||
Node: Creating Internationalized Scripts19198
|
||||
Node: Comments23315
|
||||
Node: Shell Commands23933
|
||||
Node: Reserved Words24871
|
||||
Node: Simple Commands25627
|
||||
Node: Pipelines26281
|
||||
Node: Lists29280
|
||||
Node: Compound Commands31075
|
||||
Node: Looping Constructs32087
|
||||
Node: Conditional Constructs34582
|
||||
Node: Command Grouping49070
|
||||
Node: Coprocesses50548
|
||||
Node: GNU Parallel53211
|
||||
Node: Shell Functions54128
|
||||
Node: Shell Parameters62013
|
||||
Node: Positional Parameters66401
|
||||
Node: Special Parameters67303
|
||||
Node: Shell Expansions70517
|
||||
Node: Brace Expansion72644
|
||||
Node: Tilde Expansion75378
|
||||
Node: Shell Parameter Expansion77999
|
||||
Node: Command Substitution96401
|
||||
Node: Arithmetic Expansion97756
|
||||
Node: Process Substitution98724
|
||||
Node: Word Splitting99844
|
||||
Node: Filename Expansion101892
|
||||
Node: Pattern Matching104825
|
||||
Node: Quote Removal109827
|
||||
Node: Redirections110122
|
||||
Node: Executing Commands119815
|
||||
Node: Simple Command Expansion120485
|
||||
Node: Command Search and Execution122595
|
||||
Node: Command Execution Environment124982
|
||||
Node: Environment128017
|
||||
Node: Exit Status129680
|
||||
Node: Signals131464
|
||||
Node: Shell Scripts134913
|
||||
Node: Shell Builtin Commands137940
|
||||
Node: Bourne Shell Builtins139978
|
||||
Node: Bash Builtins162177
|
||||
Node: Modifying Shell Behavior194176
|
||||
Node: The Set Builtin194521
|
||||
Node: The Shopt Builtin205119
|
||||
Node: Special Builtins221031
|
||||
Node: Shell Variables222010
|
||||
Node: Bourne Shell Variables222447
|
||||
Node: Bash Variables224551
|
||||
Node: Bash Features258616
|
||||
Node: Invoking Bash259629
|
||||
Node: Bash Startup Files265642
|
||||
Node: Interactive Shells270773
|
||||
Node: What is an Interactive Shell?271184
|
||||
Node: Is this Shell Interactive?271833
|
||||
Node: Interactive Shell Behavior272648
|
||||
Node: Bash Conditional Expressions276277
|
||||
Node: Shell Arithmetic280919
|
||||
Node: Aliases283880
|
||||
Node: Arrays286774
|
||||
Node: The Directory Stack293337
|
||||
Node: Directory Stack Builtins294121
|
||||
Node: Controlling the Prompt298381
|
||||
Node: The Restricted Shell301346
|
||||
Node: Bash POSIX Mode303956
|
||||
Node: Shell Compatibility Mode319749
|
||||
Node: Job Control327993
|
||||
Node: Job Control Basics328453
|
||||
Node: Job Control Builtins333455
|
||||
Node: Job Control Variables339250
|
||||
Node: Command Line Editing340406
|
||||
Node: Introduction and Notation342077
|
||||
Node: Readline Interaction343700
|
||||
Node: Readline Bare Essentials344891
|
||||
Node: Readline Movement Commands346680
|
||||
Node: Readline Killing Commands347640
|
||||
Node: Readline Arguments349561
|
||||
Node: Searching350605
|
||||
Node: Readline Init File352791
|
||||
Node: Readline Init File Syntax354052
|
||||
Node: Conditional Init Constructs377843
|
||||
Node: Sample Init File382039
|
||||
Node: Bindable Readline Commands385163
|
||||
Node: Commands For Moving386367
|
||||
Node: Commands For History388418
|
||||
Node: Commands For Text393412
|
||||
Node: Commands For Killing397061
|
||||
Node: Numeric Arguments400094
|
||||
Node: Commands For Completion401233
|
||||
Node: Keyboard Macros405424
|
||||
Node: Miscellaneous Commands406112
|
||||
Node: Readline vi Mode412150
|
||||
Node: Programmable Completion413057
|
||||
Node: Programmable Completion Builtins420837
|
||||
Node: A Programmable Completion Example431825
|
||||
Node: Using History Interactively437073
|
||||
Node: Bash History Facilities437757
|
||||
Node: Bash History Builtins440762
|
||||
Node: History Interaction445786
|
||||
Node: Event Designators449406
|
||||
Node: Word Designators450760
|
||||
Node: Modifiers452520
|
||||
Node: Installing Bash454328
|
||||
Node: Basic Installation455465
|
||||
Node: Compilers and Options459187
|
||||
Node: Compiling For Multiple Architectures459928
|
||||
Node: Installation Names461620
|
||||
Node: Specifying the System Type463729
|
||||
Node: Sharing Defaults464446
|
||||
Node: Operation Controls465119
|
||||
Node: Optional Features466077
|
||||
Node: Reporting Bugs477296
|
||||
Node: Major Differences From The Bourne Shell478630
|
||||
Node: GNU Free Documentation License495479
|
||||
Node: Indexes520656
|
||||
Node: Builtin Index521110
|
||||
Node: Reserved Word Index527937
|
||||
Node: Variable Index530385
|
||||
Node: Function Index547373
|
||||
Node: Concept Index561157
|
||||
Node: Top887
|
||||
Node: Introduction2797
|
||||
Node: What is Bash?3013
|
||||
Node: What is a shell?4127
|
||||
Node: Definitions6665
|
||||
Node: Basic Shell Features9616
|
||||
Node: Shell Syntax10835
|
||||
Node: Shell Operation11861
|
||||
Node: Quoting13154
|
||||
Node: Escape Character14458
|
||||
Node: Single Quotes14943
|
||||
Node: Double Quotes15291
|
||||
Node: ANSI-C Quoting16569
|
||||
Node: Locale Translation17881
|
||||
Node: Creating Internationalized Scripts19192
|
||||
Node: Comments23309
|
||||
Node: Shell Commands23927
|
||||
Node: Reserved Words24865
|
||||
Node: Simple Commands25621
|
||||
Node: Pipelines26275
|
||||
Node: Lists29274
|
||||
Node: Compound Commands31069
|
||||
Node: Looping Constructs32081
|
||||
Node: Conditional Constructs34576
|
||||
Node: Command Grouping49064
|
||||
Node: Coprocesses50542
|
||||
Node: GNU Parallel53205
|
||||
Node: Shell Functions54122
|
||||
Node: Shell Parameters62007
|
||||
Node: Positional Parameters66395
|
||||
Node: Special Parameters67297
|
||||
Node: Shell Expansions70511
|
||||
Node: Brace Expansion72638
|
||||
Node: Tilde Expansion75372
|
||||
Node: Shell Parameter Expansion77993
|
||||
Node: Command Substitution96395
|
||||
Node: Arithmetic Expansion99987
|
||||
Node: Process Substitution100955
|
||||
Node: Word Splitting102075
|
||||
Node: Filename Expansion104123
|
||||
Node: Pattern Matching107056
|
||||
Node: Quote Removal112058
|
||||
Node: Redirections112353
|
||||
Node: Executing Commands122046
|
||||
Node: Simple Command Expansion122716
|
||||
Node: Command Search and Execution124826
|
||||
Node: Command Execution Environment127213
|
||||
Node: Environment130248
|
||||
Node: Exit Status131911
|
||||
Node: Signals133695
|
||||
Node: Shell Scripts137144
|
||||
Node: Shell Builtin Commands140171
|
||||
Node: Bourne Shell Builtins142209
|
||||
Node: Bash Builtins164408
|
||||
Node: Modifying Shell Behavior196407
|
||||
Node: The Set Builtin196752
|
||||
Node: The Shopt Builtin207350
|
||||
Node: Special Builtins223262
|
||||
Node: Shell Variables224241
|
||||
Node: Bourne Shell Variables224678
|
||||
Node: Bash Variables226782
|
||||
Node: Bash Features260847
|
||||
Node: Invoking Bash261860
|
||||
Node: Bash Startup Files267873
|
||||
Node: Interactive Shells273004
|
||||
Node: What is an Interactive Shell?273415
|
||||
Node: Is this Shell Interactive?274064
|
||||
Node: Interactive Shell Behavior274879
|
||||
Node: Bash Conditional Expressions278508
|
||||
Node: Shell Arithmetic283150
|
||||
Node: Aliases286111
|
||||
Node: Arrays289005
|
||||
Node: The Directory Stack295568
|
||||
Node: Directory Stack Builtins296352
|
||||
Node: Controlling the Prompt300612
|
||||
Node: The Restricted Shell303577
|
||||
Node: Bash POSIX Mode306187
|
||||
Node: Shell Compatibility Mode321980
|
||||
Node: Job Control330224
|
||||
Node: Job Control Basics330684
|
||||
Node: Job Control Builtins335686
|
||||
Node: Job Control Variables341481
|
||||
Node: Command Line Editing342637
|
||||
Node: Introduction and Notation344308
|
||||
Node: Readline Interaction345931
|
||||
Node: Readline Bare Essentials347122
|
||||
Node: Readline Movement Commands348911
|
||||
Node: Readline Killing Commands349871
|
||||
Node: Readline Arguments351792
|
||||
Node: Searching352836
|
||||
Node: Readline Init File355022
|
||||
Node: Readline Init File Syntax356283
|
||||
Node: Conditional Init Constructs380074
|
||||
Node: Sample Init File384270
|
||||
Node: Bindable Readline Commands387394
|
||||
Node: Commands For Moving388598
|
||||
Node: Commands For History390649
|
||||
Node: Commands For Text395643
|
||||
Node: Commands For Killing399292
|
||||
Node: Numeric Arguments402325
|
||||
Node: Commands For Completion403464
|
||||
Node: Keyboard Macros407655
|
||||
Node: Miscellaneous Commands408343
|
||||
Node: Readline vi Mode414381
|
||||
Node: Programmable Completion415288
|
||||
Node: Programmable Completion Builtins423068
|
||||
Node: A Programmable Completion Example434056
|
||||
Node: Using History Interactively439304
|
||||
Node: Bash History Facilities439988
|
||||
Node: Bash History Builtins442993
|
||||
Node: History Interaction448017
|
||||
Node: Event Designators451637
|
||||
Node: Word Designators452991
|
||||
Node: Modifiers454751
|
||||
Node: Installing Bash456559
|
||||
Node: Basic Installation457696
|
||||
Node: Compilers and Options461418
|
||||
Node: Compiling For Multiple Architectures462159
|
||||
Node: Installation Names463851
|
||||
Node: Specifying the System Type465960
|
||||
Node: Sharing Defaults466677
|
||||
Node: Operation Controls467350
|
||||
Node: Optional Features468308
|
||||
Node: Reporting Bugs479527
|
||||
Node: Major Differences From The Bourne Shell480861
|
||||
Node: GNU Free Documentation License497710
|
||||
Node: Indexes522887
|
||||
Node: Builtin Index523341
|
||||
Node: Reserved Word Index530168
|
||||
Node: Variable Index532616
|
||||
Node: Function Index549604
|
||||
Node: Concept Index563388
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
||||
+45
-69
@@ -1,12 +1,12 @@
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/MacPorts 2021.58693_0) (preloaded format=pdfetex 2021.8.30) 20 APR 2023 15:09
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/MacPorts 2021.58693_0) (preloaded format=etex 2021.8.30) 14 MAY 2023 15:39
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
file:line:error style messages enabled.
|
||||
%&-line parsing enabled.
|
||||
**\input /usr/local/src/bash/bash-20230420/doc/bashref.texi \input /usr/local/s
|
||||
rc/bash/bash-20230420/doc/bashref.texi
|
||||
(/usr/local/src/bash/bash-20230420/doc/bashref.texi
|
||||
(/usr/local/src/bash/bash-20230420/doc/texinfo.tex
|
||||
**\nonstopmode \input /usr/local/src/bash/bash-20230509/doc/bashref.texi \input
|
||||
/usr/local/src/bash/bash-20230509/doc/bashref.texi
|
||||
(/usr/local/src/bash/bash-20230509/doc/bashref.texi
|
||||
(/usr/local/src/bash/bash-20230509/doc/texinfo.tex
|
||||
Loading texinfo [version 2015-11-22.14]:
|
||||
\outerhsize=\dimen16
|
||||
\outervsize=\dimen17
|
||||
@@ -162,23 +162,20 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
|
||||
texinfo.tex: doing @include of version.texi
|
||||
|
||||
|
||||
(/usr/local/src/bash/bash-20230420/doc/version.texi) [1{/opt/local/var/db/texmf
|
||||
/fonts/map/pdftex/updmap/pdftex.map}] [2]
|
||||
(/usr/local/build/bash/bash-20230420/doc/bashref.toc [-1] [-2] [-3]) [-4]
|
||||
(/usr/local/build/bash/bash-20230420/doc/bashref.toc)
|
||||
(/usr/local/build/bash/bash-20230420/doc/bashref.toc) Chapter 1
|
||||
(/usr/local/src/bash/bash-20230509/doc/version.texi) [1] [2]
|
||||
(/usr/local/build/bash/bash-20230509/doc/bashref.toc [-1] [-2] [-3]) [-4]
|
||||
Chapter 1
|
||||
\openout0 = `bashref.toc'.
|
||||
|
||||
|
||||
(/usr/local/build/bash/bash-20230420/doc/bashref.aux)
|
||||
(/usr/local/build/bash/bash-20230509/doc/bashref.aux)
|
||||
\openout1 = `bashref.aux'.
|
||||
|
||||
Chapter 2 [1] [2]
|
||||
Chapter 2
|
||||
[1] [2]
|
||||
@cpindfile=@write2
|
||||
\openout2 = `bashref.cp'.
|
||||
|
||||
|
||||
[3] Chapter 3 [4] [5] [6] [7]
|
||||
[3] Chapter 3 [4] [5] [6] [7]
|
||||
@vrindfile=@write3
|
||||
\openout3 = `bashref.vr'.
|
||||
|
||||
@@ -223,13 +220,14 @@ Overfull \hbox (5.95723pt too wide) in paragraph at lines 724--725
|
||||
|
||||
[9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23]
|
||||
[24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38]
|
||||
[39] [40] [41] [42] [43] [44] [45] [46] Chapter 4 [47]
|
||||
[39] [40] [41] [42] [43] [44] [45] [46] [47] Chapter 4 [48]
|
||||
@btindfile=@write5
|
||||
\openout5 = `bashref.bt'.
|
||||
|
||||
[48] [49] [50] [51]
|
||||
[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 5279--5279
|
||||
[67]
|
||||
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5342--5342
|
||||
[]@texttt set [-abefhkmnptuvxBCEHPT] [-o @textttsl option-name@texttt ] [--] [
|
||||
-] [@textttsl ar-gu-ment []@texttt ][]
|
||||
|
||||
@@ -242,7 +240,7 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5279--5279
|
||||
.etc.
|
||||
|
||||
|
||||
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5280--5280
|
||||
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5343--5343
|
||||
[]@texttt set [+abefhkmnptuvxBCEHPT] [+o @textttsl option-name@texttt ] [--] [
|
||||
-] [@textttsl ar-gu-ment []@texttt ][]
|
||||
|
||||
@@ -254,16 +252,16 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5280--5280
|
||||
.@texttt t
|
||||
.etc.
|
||||
|
||||
[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] [112] [113] [114] Chapter 7 [115] [116] [117]
|
||||
[118]
|
||||
[68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] Chapter 5 [79] [80]
|
||||
[81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] Chapter 6 [92] [93]
|
||||
[94] [95] [96] [97] [98] [99] [100] [101] [102] [103] [104] [105] [106]
|
||||
[107] [108] [109] [110] [111] [112] [113] [114] [115] Chapter 7 [116] [117]
|
||||
[118] [119]
|
||||
texinfo.tex: doing @include of rluser.texi
|
||||
|
||||
(/usr/local/src/bash/bash-20230420/lib/readline/doc/rluser.texi
|
||||
Chapter 8 [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129]
|
||||
[130]
|
||||
(/usr/local/src/bash/bash-20230509/lib/readline/doc/rluser.texi
|
||||
Chapter 8 [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130]
|
||||
[131]
|
||||
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
|
||||
@@ -289,7 +287,7 @@ e func-tion
|
||||
.@texttt v
|
||||
.etc.
|
||||
|
||||
[131] [132] [133]
|
||||
[132] [133] [134]
|
||||
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[]
|
||||
@@ -302,19 +300,19 @@ gnored[]
|
||||
.@texttt t
|
||||
.etc.
|
||||
|
||||
[134] [135]
|
||||
[135] [136]
|
||||
@fnindfile=@write6
|
||||
\openout6 = `bashref.fn'.
|
||||
|
||||
[136] [137] [138] [139] [140] [141] [142] [143] [144] [145]
|
||||
[146] [147] [148] [149] [150] [151] [152] [153])
|
||||
[137] [138] [139] [140] [141] [142] [143] [144] [145] [146]
|
||||
[147] [148] [149] [150] [151] [152] [153] [154])
|
||||
texinfo.tex: doing @include of hsuser.texi
|
||||
|
||||
|
||||
(/usr/local/src/bash/bash-20230420/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 9556--9565
|
||||
(/usr/local/src/bash/bash-20230509/lib/readline/doc/hsuser.texi Chapter 9
|
||||
[155] [156] [157] [158] [159] [160]) Chapter 10 [161] [162] [163] [164]
|
||||
[165]
|
||||
Underfull \hbox (badness 10000) in paragraph at lines 9622--9631
|
||||
[]@textrm All of the fol-low-ing op-tions ex-cept for `@texttt alt-array-implem
|
||||
entation[]@textrm '[],
|
||||
|
||||
@@ -327,7 +325,7 @@ entation[]@textrm '[],
|
||||
.etc.
|
||||
|
||||
|
||||
Underfull \hbox (badness 10000) in paragraph at lines 9556--9565
|
||||
Underfull \hbox (badness 10000) in paragraph at lines 9622--9631
|
||||
@textrm `@texttt disabled-builtins[]@textrm '[], `@texttt direxpand-default[]@t
|
||||
extrm '[], `@texttt strict-posix-default[]@textrm '[], and
|
||||
|
||||
@@ -339,42 +337,20 @@ extrm '[], `@texttt strict-posix-default[]@textrm '[], and
|
||||
.@texttt a
|
||||
.etc.
|
||||
|
||||
[165] [166] [167] [168] Appendix A [169] Appendix B [170] [171] [172] [173]
|
||||
[174] [175] Appendix C [176]
|
||||
[166] [167] [168] [169] Appendix A [170] Appendix B [171] [172] [173] [174]
|
||||
[175] [176] Appendix C [177]
|
||||
texinfo.tex: doing @include of fdl.texi
|
||||
|
||||
(/usr/local/src/bash/bash-20230420/doc/fdl.texi
|
||||
[177] [178] [179] [180] [181] [182] [183]) Appendix D [184] [185] [186]
|
||||
[187] [188] [189] [190] [191] [192] [193] )
|
||||
(/usr/local/src/bash/bash-20230509/doc/fdl.texi
|
||||
[178] [179] [180] [181] [182] [183] [184]) Appendix D [185] [186] [187]
|
||||
[188] [189] [190] [191] [192] [193] [194] )
|
||||
Here is how much of TeX's memory you used:
|
||||
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
|
||||
3531 strings out of 497096
|
||||
40273 string characters out of 6206923
|
||||
87712 words of memory out of 5000000
|
||||
4700 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,389b,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, 804832 bytes).
|
||||
PDF statistics:
|
||||
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)
|
||||
16i,6n,16p,402b,942s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
|
||||
Output written on bashref.dvi (200 pages, 839672 bytes).
|
||||
|
||||
Binary file not shown.
+72
-9
@@ -2628,26 +2628,27 @@ expansion as described below.
|
||||
|
||||
Command substitution allows the output of a command to replace
|
||||
the command itself.
|
||||
Command substitution occurs when a command is enclosed as follows:
|
||||
The standard form of command substitution occurs when a command is
|
||||
enclosed as follows:
|
||||
@example
|
||||
$(@var{command})
|
||||
@end example
|
||||
@noindent
|
||||
or
|
||||
or (deprecated)
|
||||
@example
|
||||
`@var{command}`
|
||||
`@var{command}`.
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
Bash performs the expansion by executing @var{command} in a subshell environment
|
||||
and replacing the command substitution with the standard output of the
|
||||
command, with any trailing newlines deleted.
|
||||
Bash performs the expansion by executing @var{command} in a subshell
|
||||
environment and replacing the command substitution with the standard
|
||||
output of the command, with any trailing newlines deleted.
|
||||
Embedded newlines are not deleted, but they may be removed during
|
||||
word splitting.
|
||||
The command substitution @code{$(cat @var{file})} can be
|
||||
replaced by the equivalent but faster @code{$(< @var{file})}.
|
||||
|
||||
When the old-style backquote form of substitution is used,
|
||||
With the old-style backquote form of substitution,
|
||||
backslash retains its literal meaning except when followed by
|
||||
@samp{$}, @samp{`}, or @samp{\}.
|
||||
The first backquote not preceded by a backslash terminates the
|
||||
@@ -2655,11 +2656,73 @@ command substitution.
|
||||
When using the @code{$(@var{command})} form, all characters between
|
||||
the parentheses make up the command; none are treated specially.
|
||||
|
||||
There is an alternate form of command substitution:
|
||||
|
||||
@example
|
||||
$@{@var{C} @var{command}; @}
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
which executes @var{command} in the current execution environment.
|
||||
This means that side effects of @var{command} take effect immediately
|
||||
in the current execution environment and persist in the current
|
||||
environment after the command completes (e.g., the @code{exit} builtin
|
||||
will exit the shell).
|
||||
|
||||
The character @var{C} following the open brace must be a space, tab,
|
||||
newline, @samp{(}, or @samp{|}, and the close brace must be in a position
|
||||
where a reserved word may appear (i.e., preceded by a command terminator
|
||||
such as semicolon).
|
||||
Bash allows the close brace to be joined to the remaining characters in
|
||||
the word without being followed by a shell metacharacter as a reserved
|
||||
word would usually require.
|
||||
|
||||
This type of command substitution superficially resembles executing an
|
||||
unnamed shell function: local variables are created as when a shell
|
||||
function is executing, and the @code{return} builtin forces
|
||||
@var{command} to complete;
|
||||
however, the rest of the execution environment,
|
||||
including the positional parameters, is shared with the caller.
|
||||
|
||||
If the first character following the open brace is a @samp{(},
|
||||
@var{command} is executed in a subshell, and @var{command} must be
|
||||
terminated by a @samp{)}. This is similar to the @code{(} compound
|
||||
command (@pxref{Command Grouping}).
|
||||
If the first character is a @samp{|}, the construct expands to the
|
||||
value of the @code{REPLY} shell variable after @var{command} executes,
|
||||
without removing any trailing newlines,
|
||||
and the standard output of @var{command} remains the same as in the
|
||||
calling shell.
|
||||
Bash creates @code{REPLY} as an initially-unset local variable when
|
||||
@var{command} executes, and restores @code{REPLY} to the value it had
|
||||
before the command substitution after @var{command} completes,
|
||||
as with any local variable.
|
||||
|
||||
For example, this construct expands to @samp{12345}, and leaves the
|
||||
shell variable @code{X} unchanged in the current execution environment:
|
||||
|
||||
@example
|
||||
$@{ local X=12345 ; echo $X; @}
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
(not declaring @code{X} as local would modify its value in the current
|
||||
environment, as with normal shell function execution),
|
||||
while this construct does not require any output to expand to
|
||||
@samp{12345}:
|
||||
|
||||
@example
|
||||
$@{| REPLY=12345; @}
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
and restores @code{REPLY} to the value it had before the command substitution.
|
||||
|
||||
Command substitutions may be nested. To nest when using the backquoted
|
||||
form, escape the inner backquotes with backslashes.
|
||||
|
||||
If the substitution appears within double quotes, word splitting and
|
||||
filename expansion are not performed on the results.
|
||||
If the substitution appears within double quotes, Bash does not perform
|
||||
word splitting and filename expansion on the results.
|
||||
|
||||
@node Arithmetic Expansion
|
||||
@subsection Arithmetic Expansion
|
||||
|
||||
+104
-104
@@ -32,112 +32,112 @@
|
||||
@numsubsecentry{Tilde Expansion}{3.5.2}{Tilde Expansion}{25}
|
||||
@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{Arithmetic Expansion}{3.5.5}{Arithmetic Expansion}{35}
|
||||
@numsubsecentry{Process Substitution}{3.5.6}{Process Substitution}{35}
|
||||
@numsubsecentry{Word Splitting}{3.5.7}{Word Splitting}{35}
|
||||
@numsubsecentry{Word Splitting}{3.5.7}{Word Splitting}{36}
|
||||
@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}
|
||||
@numsubsubsecentry{Pattern Matching}{3.5.8.1}{Pattern Matching}{37}
|
||||
@numsubsecentry{Quote Removal}{3.5.9}{Quote Removal}{39}
|
||||
@numsecentry{Redirections}{3.6}{Redirections}{39}
|
||||
@numsubsecentry{Redirecting Input}{3.6.1}{}{40}
|
||||
@numsubsecentry{Redirecting Output}{3.6.2}{}{40}
|
||||
@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{Redirecting Standard Output and Standard Error}{3.6.4}{}{41}
|
||||
@numsubsecentry{Appending Standard Output and Standard Error}{3.6.5}{}{41}
|
||||
@numsubsecentry{Here Documents}{3.6.6}{}{41}
|
||||
@numsubsecentry{Here Strings}{3.6.7}{}{42}
|
||||
@numsubsecentry{Duplicating File Descriptors}{3.6.8}{}{42}
|
||||
@numsubsecentry{Moving File Descriptors}{3.6.9}{}{42}
|
||||
@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}
|
||||
@numsecentry{Executing Commands}{3.7}{Executing Commands}{43}
|
||||
@numsubsecentry{Simple Command Expansion}{3.7.1}{Simple Command Expansion}{43}
|
||||
@numsubsecentry{Command Search and Execution}{3.7.2}{Command Search and Execution}{43}
|
||||
@numsubsecentry{Command Execution Environment}{3.7.3}{Command Execution Environment}{44}
|
||||
@numsubsecentry{Environment}{3.7.4}{Environment}{45}
|
||||
@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}{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}{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}
|
||||
@numsubsecentry{Signals}{3.7.6}{Signals}{46}
|
||||
@numsecentry{Shell Scripts}{3.8}{Shell Scripts}{47}
|
||||
@numchapentry{Shell Builtin Commands}{4}{Shell Builtin Commands}{49}
|
||||
@numsecentry{Bourne Shell Builtins}{4.1}{Bourne Shell Builtins}{49}
|
||||
@numsecentry{Bash Builtin Commands}{4.2}{Bash Builtins}{57}
|
||||
@numsecentry{Modifying Shell Behavior}{4.3}{Modifying Shell Behavior}{68}
|
||||
@numsubsecentry{The Set Builtin}{4.3.1}{The Set Builtin}{68}
|
||||
@numsubsecentry{The Shopt Builtin}{4.3.2}{The Shopt Builtin}{72}
|
||||
@numsecentry{Special Builtins}{4.4}{Special Builtins}{79}
|
||||
@numchapentry{Shell Variables}{5}{Shell Variables}{80}
|
||||
@numsecentry{Bourne Shell Variables}{5.1}{Bourne Shell Variables}{80}
|
||||
@numsecentry{Bash Variables}{5.2}{Bash Variables}{80}
|
||||
@numchapentry{Bash Features}{6}{Bash Features}{93}
|
||||
@numsecentry{Invoking Bash}{6.1}{Invoking Bash}{93}
|
||||
@numsecentry{Bash Startup Files}{6.2}{Bash Startup Files}{95}
|
||||
@numsecentry{Interactive Shells}{6.3}{Interactive Shells}{96}
|
||||
@numsubsecentry{What is an Interactive Shell?}{6.3.1}{What is an Interactive Shell?}{97}
|
||||
@numsubsecentry{Is this Shell Interactive?}{6.3.2}{Is this Shell Interactive?}{97}
|
||||
@numsubsecentry{Interactive Shell Behavior}{6.3.3}{Interactive Shell Behavior}{97}
|
||||
@numsecentry{Bash Conditional Expressions}{6.4}{Bash Conditional Expressions}{98}
|
||||
@numsecentry{Shell Arithmetic}{6.5}{Shell Arithmetic}{100}
|
||||
@numsecentry{Aliases}{6.6}{Aliases}{102}
|
||||
@numsecentry{Arrays}{6.7}{Arrays}{102}
|
||||
@numsecentry{The Directory Stack}{6.8}{The Directory Stack}{104}
|
||||
@numsubsecentry{Directory Stack Builtins}{6.8.1}{Directory Stack Builtins}{105}
|
||||
@numsecentry{Controlling the Prompt}{6.9}{Controlling the Prompt}{106}
|
||||
@numsecentry{The Restricted Shell}{6.10}{The Restricted Shell}{108}
|
||||
@numsecentry{Bash and POSIX}{6.11}{Bash POSIX Mode}{108}
|
||||
@numsubsecentry{What is POSIX?}{6.11.1}{}{108}
|
||||
@numsubsecentry{Bash POSIX Mode}{6.11.2}{}{109}
|
||||
@numsecentry{Shell Compatibility Mode}{6.12}{Shell Compatibility Mode}{113}
|
||||
@numchapentry{Job Control}{7}{Job Control}{117}
|
||||
@numsecentry{Job Control Basics}{7.1}{Job Control Basics}{117}
|
||||
@numsecentry{Job Control Builtins}{7.2}{Job Control Builtins}{118}
|
||||
@numsecentry{Job Control Variables}{7.3}{Job Control Variables}{120}
|
||||
@numchapentry{Command Line Editing}{8}{Command Line Editing}{121}
|
||||
@numsecentry{Introduction to Line Editing}{8.1}{Introduction and Notation}{121}
|
||||
@numsecentry{Readline Interaction}{8.2}{Readline Interaction}{121}
|
||||
@numsubsecentry{Readline Bare Essentials}{8.2.1}{Readline Bare Essentials}{122}
|
||||
@numsubsecentry{Readline Movement Commands}{8.2.2}{Readline Movement Commands}{122}
|
||||
@numsubsecentry{Readline Killing Commands}{8.2.3}{Readline Killing Commands}{123}
|
||||
@numsubsecentry{Readline Arguments}{8.2.4}{Readline Arguments}{123}
|
||||
@numsubsecentry{Searching for Commands in the History}{8.2.5}{Searching}{123}
|
||||
@numsecentry{Readline Init File}{8.3}{Readline Init File}{124}
|
||||
@numsubsecentry{Readline Init File Syntax}{8.3.1}{Readline Init File Syntax}{124}
|
||||
@numsubsecentry{Conditional Init Constructs}{8.3.2}{Conditional Init Constructs}{133}
|
||||
@numsubsecentry{Sample Init File}{8.3.3}{Sample Init File}{134}
|
||||
@numsecentry{Bindable Readline Commands}{8.4}{Bindable Readline Commands}{137}
|
||||
@numsubsecentry{Commands For Moving}{8.4.1}{Commands For Moving}{137}
|
||||
@numsubsecentry{Commands For Manipulating The History}{8.4.2}{Commands For History}{138}
|
||||
@numsubsecentry{Commands For Changing Text}{8.4.3}{Commands For Text}{140}
|
||||
@numsubsecentry{Killing And Yanking}{8.4.4}{Commands For Killing}{141}
|
||||
@numsubsecentry{Specifying Numeric Arguments}{8.4.5}{Numeric Arguments}{142}
|
||||
@numsubsecentry{Letting Readline Type For You}{8.4.6}{Commands For Completion}{143}
|
||||
@numsubsecentry{Keyboard Macros}{8.4.7}{Keyboard Macros}{144}
|
||||
@numsubsecentry{Some Miscellaneous Commands}{8.4.8}{Miscellaneous Commands}{145}
|
||||
@numsecentry{Readline vi Mode}{8.5}{Readline vi Mode}{147}
|
||||
@numsecentry{Programmable Completion}{8.6}{Programmable Completion}{147}
|
||||
@numsecentry{Programmable Completion Builtins}{8.7}{Programmable Completion Builtins}{150}
|
||||
@numsecentry{A Programmable Completion Example}{8.8}{A Programmable Completion Example}{154}
|
||||
@numchapentry{Using History Interactively}{9}{Using History Interactively}{156}
|
||||
@numsecentry{Bash History Facilities}{9.1}{Bash History Facilities}{156}
|
||||
@numsecentry{Bash History Builtins}{9.2}{Bash History Builtins}{156}
|
||||
@numsecentry{History Expansion}{9.3}{History Interaction}{158}
|
||||
@numsubsecentry{Event Designators}{9.3.1}{Event Designators}{159}
|
||||
@numsubsecentry{Word Designators}{9.3.2}{Word Designators}{160}
|
||||
@numsubsecentry{Modifiers}{9.3.3}{Modifiers}{160}
|
||||
@numchapentry{Installing Bash}{10}{Installing Bash}{162}
|
||||
@numsecentry{Basic Installation}{10.1}{Basic Installation}{162}
|
||||
@numsecentry{Compilers and Options}{10.2}{Compilers and Options}{163}
|
||||
@numsecentry{Compiling For Multiple Architectures}{10.3}{Compiling For Multiple Architectures}{163}
|
||||
@numsecentry{Installation Names}{10.4}{Installation Names}{164}
|
||||
@numsecentry{Specifying the System Type}{10.5}{Specifying the System Type}{164}
|
||||
@numsecentry{Sharing Defaults}{10.6}{Sharing Defaults}{164}
|
||||
@numsecentry{Operation Controls}{10.7}{Operation Controls}{165}
|
||||
@numsecentry{Optional Features}{10.8}{Optional Features}{165}
|
||||
@appentry{Reporting Bugs}{A}{Reporting Bugs}{171}
|
||||
@appentry{Major Differences From The Bourne Shell}{B}{Major Differences From The Bourne Shell}{172}
|
||||
@appsecentry{Implementation Differences From The SVR4.2 Shell}{B.1}{}{176}
|
||||
@appentry{GNU Free Documentation License}{C}{GNU Free Documentation License}{178}
|
||||
@appentry{Indexes}{D}{Indexes}{186}
|
||||
@appsecentry{Index of Shell Builtin Commands}{D.1}{Builtin Index}{186}
|
||||
@appsecentry{Index of Shell Reserved Words}{D.2}{Reserved Word Index}{187}
|
||||
@appsecentry{Parameter and Variable Index}{D.3}{Variable Index}{188}
|
||||
@appsecentry{Function Index}{D.4}{Function Index}{190}
|
||||
@appsecentry{Concept Index}{D.5}{Concept Index}{192}
|
||||
|
||||
+155
-155
@@ -18,158 +18,158 @@
|
||||
\entry{$!}{24}{\code {$!}}
|
||||
\entry{0}{24}{\code {0}}
|
||||
\entry{$0}{24}{\code {$0}}
|
||||
\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}}
|
||||
\entry{CDPATH}{80}{\code {CDPATH}}
|
||||
\entry{HOME}{80}{\code {HOME}}
|
||||
\entry{IFS}{80}{\code {IFS}}
|
||||
\entry{MAIL}{80}{\code {MAIL}}
|
||||
\entry{MAILPATH}{80}{\code {MAILPATH}}
|
||||
\entry{OPTARG}{80}{\code {OPTARG}}
|
||||
\entry{OPTIND}{80}{\code {OPTIND}}
|
||||
\entry{PATH}{80}{\code {PATH}}
|
||||
\entry{PS1}{80}{\code {PS1}}
|
||||
\entry{PS2}{80}{\code {PS2}}
|
||||
\entry{_}{80}{\code {_}}
|
||||
\entry{$_}{80}{\code {$_}}
|
||||
\entry{BASH}{81}{\code {BASH}}
|
||||
\entry{BASHOPTS}{81}{\code {BASHOPTS}}
|
||||
\entry{BASHPID}{81}{\code {BASHPID}}
|
||||
\entry{BASH_ALIASES}{81}{\code {BASH_ALIASES}}
|
||||
\entry{BASH_ARGC}{81}{\code {BASH_ARGC}}
|
||||
\entry{BASH_ARGV}{81}{\code {BASH_ARGV}}
|
||||
\entry{BASH_ARGV0}{82}{\code {BASH_ARGV0}}
|
||||
\entry{BASH_CMDS}{82}{\code {BASH_CMDS}}
|
||||
\entry{BASH_COMMAND}{82}{\code {BASH_COMMAND}}
|
||||
\entry{BASH_COMPAT}{82}{\code {BASH_COMPAT}}
|
||||
\entry{BASH_ENV}{82}{\code {BASH_ENV}}
|
||||
\entry{BASH_EXECUTION_STRING}{82}{\code {BASH_EXECUTION_STRING}}
|
||||
\entry{BASH_LINENO}{82}{\code {BASH_LINENO}}
|
||||
\entry{BASH_LOADABLES_PATH}{83}{\code {BASH_LOADABLES_PATH}}
|
||||
\entry{BASH_REMATCH}{83}{\code {BASH_REMATCH}}
|
||||
\entry{BASH_SOURCE}{83}{\code {BASH_SOURCE}}
|
||||
\entry{BASH_SUBSHELL}{83}{\code {BASH_SUBSHELL}}
|
||||
\entry{BASH_VERSINFO}{83}{\code {BASH_VERSINFO}}
|
||||
\entry{BASH_VERSION}{83}{\code {BASH_VERSION}}
|
||||
\entry{BASH_XTRACEFD}{83}{\code {BASH_XTRACEFD}}
|
||||
\entry{CHILD_MAX}{84}{\code {CHILD_MAX}}
|
||||
\entry{COLUMNS}{84}{\code {COLUMNS}}
|
||||
\entry{COMP_CWORD}{84}{\code {COMP_CWORD}}
|
||||
\entry{COMP_LINE}{84}{\code {COMP_LINE}}
|
||||
\entry{COMP_POINT}{84}{\code {COMP_POINT}}
|
||||
\entry{COMP_TYPE}{84}{\code {COMP_TYPE}}
|
||||
\entry{COMP_KEY}{84}{\code {COMP_KEY}}
|
||||
\entry{COMP_WORDBREAKS}{84}{\code {COMP_WORDBREAKS}}
|
||||
\entry{COMP_WORDS}{84}{\code {COMP_WORDS}}
|
||||
\entry{COMPREPLY}{85}{\code {COMPREPLY}}
|
||||
\entry{COPROC}{85}{\code {COPROC}}
|
||||
\entry{DIRSTACK}{85}{\code {DIRSTACK}}
|
||||
\entry{EMACS}{85}{\code {EMACS}}
|
||||
\entry{ENV}{85}{\code {ENV}}
|
||||
\entry{EPOCHREALTIME}{85}{\code {EPOCHREALTIME}}
|
||||
\entry{EPOCHSECONDS}{85}{\code {EPOCHSECONDS}}
|
||||
\entry{EUID}{85}{\code {EUID}}
|
||||
\entry{EXECIGNORE}{85}{\code {EXECIGNORE}}
|
||||
\entry{FCEDIT}{86}{\code {FCEDIT}}
|
||||
\entry{FIGNORE}{86}{\code {FIGNORE}}
|
||||
\entry{FUNCNAME}{86}{\code {FUNCNAME}}
|
||||
\entry{FUNCNEST}{86}{\code {FUNCNEST}}
|
||||
\entry{GLOBIGNORE}{86}{\code {GLOBIGNORE}}
|
||||
\entry{GLOBSORT}{86}{\code {GLOBSORT}}
|
||||
\entry{GROUPS}{87}{\code {GROUPS}}
|
||||
\entry{histchars}{87}{\code {histchars}}
|
||||
\entry{HISTCMD}{87}{\code {HISTCMD}}
|
||||
\entry{HISTCONTROL}{87}{\code {HISTCONTROL}}
|
||||
\entry{HISTFILE}{87}{\code {HISTFILE}}
|
||||
\entry{HISTFILESIZE}{87}{\code {HISTFILESIZE}}
|
||||
\entry{HISTIGNORE}{87}{\code {HISTIGNORE}}
|
||||
\entry{HISTSIZE}{88}{\code {HISTSIZE}}
|
||||
\entry{HISTTIMEFORMAT}{88}{\code {HISTTIMEFORMAT}}
|
||||
\entry{HOSTFILE}{88}{\code {HOSTFILE}}
|
||||
\entry{HOSTNAME}{88}{\code {HOSTNAME}}
|
||||
\entry{HOSTTYPE}{88}{\code {HOSTTYPE}}
|
||||
\entry{IGNOREEOF}{88}{\code {IGNOREEOF}}
|
||||
\entry{INPUTRC}{88}{\code {INPUTRC}}
|
||||
\entry{INSIDE_EMACS}{88}{\code {INSIDE_EMACS}}
|
||||
\entry{LANG}{89}{\code {LANG}}
|
||||
\entry{LC_ALL}{89}{\code {LC_ALL}}
|
||||
\entry{LC_COLLATE}{89}{\code {LC_COLLATE}}
|
||||
\entry{LC_CTYPE}{89}{\code {LC_CTYPE}}
|
||||
\entry{LC_MESSAGES}{89}{\code {LC_MESSAGES}}
|
||||
\entry{LC_NUMERIC}{89}{\code {LC_NUMERIC}}
|
||||
\entry{LC_TIME}{89}{\code {LC_TIME}}
|
||||
\entry{LINENO}{89}{\code {LINENO}}
|
||||
\entry{LINES}{89}{\code {LINES}}
|
||||
\entry{MACHTYPE}{89}{\code {MACHTYPE}}
|
||||
\entry{MAILCHECK}{89}{\code {MAILCHECK}}
|
||||
\entry{MAPFILE}{89}{\code {MAPFILE}}
|
||||
\entry{OLDPWD}{89}{\code {OLDPWD}}
|
||||
\entry{OPTERR}{89}{\code {OPTERR}}
|
||||
\entry{OSTYPE}{89}{\code {OSTYPE}}
|
||||
\entry{PIPESTATUS}{89}{\code {PIPESTATUS}}
|
||||
\entry{POSIXLY_CORRECT}{90}{\code {POSIXLY_CORRECT}}
|
||||
\entry{PPID}{90}{\code {PPID}}
|
||||
\entry{PROMPT_COMMAND}{90}{\code {PROMPT_COMMAND}}
|
||||
\entry{PROMPT_DIRTRIM}{90}{\code {PROMPT_DIRTRIM}}
|
||||
\entry{PS0}{90}{\code {PS0}}
|
||||
\entry{PS3}{90}{\code {PS3}}
|
||||
\entry{PS4}{90}{\code {PS4}}
|
||||
\entry{PWD}{90}{\code {PWD}}
|
||||
\entry{RANDOM}{90}{\code {RANDOM}}
|
||||
\entry{READLINE_ARGUMENT}{90}{\code {READLINE_ARGUMENT}}
|
||||
\entry{READLINE_LINE}{90}{\code {READLINE_LINE}}
|
||||
\entry{READLINE_MARK}{90}{\code {READLINE_MARK}}
|
||||
\entry{READLINE_POINT}{91}{\code {READLINE_POINT}}
|
||||
\entry{REPLY}{91}{\code {REPLY}}
|
||||
\entry{SECONDS}{91}{\code {SECONDS}}
|
||||
\entry{SHELL}{91}{\code {SHELL}}
|
||||
\entry{SHELLOPTS}{91}{\code {SHELLOPTS}}
|
||||
\entry{SHLVL}{91}{\code {SHLVL}}
|
||||
\entry{SRANDOM}{91}{\code {SRANDOM}}
|
||||
\entry{TIMEFORMAT}{91}{\code {TIMEFORMAT}}
|
||||
\entry{TMOUT}{92}{\code {TMOUT}}
|
||||
\entry{TMPDIR}{92}{\code {TMPDIR}}
|
||||
\entry{UID}{92}{\code {UID}}
|
||||
\entry{auto_resume}{120}{\code {auto_resume}}
|
||||
\entry{active-region-start-color}{125}{\code {active-region-start-color}}
|
||||
\entry{active-region-end-color}{125}{\code {active-region-end-color}}
|
||||
\entry{bell-style}{125}{\code {bell-style}}
|
||||
\entry{bind-tty-special-chars}{125}{\code {bind-tty-special-chars}}
|
||||
\entry{blink-matching-paren}{126}{\code {blink-matching-paren}}
|
||||
\entry{colored-completion-prefix}{126}{\code {colored-completion-prefix}}
|
||||
\entry{colored-stats}{126}{\code {colored-stats}}
|
||||
\entry{comment-begin}{126}{\code {comment-begin}}
|
||||
\entry{completion-display-width}{126}{\code {completion-display-width}}
|
||||
\entry{completion-ignore-case}{126}{\code {completion-ignore-case}}
|
||||
\entry{completion-map-case}{126}{\code {completion-map-case}}
|
||||
\entry{completion-prefix-display-length}{126}{\code {completion-prefix-display-length}}
|
||||
\entry{completion-query-items}{126}{\code {completion-query-items}}
|
||||
\entry{convert-meta}{127}{\code {convert-meta}}
|
||||
\entry{disable-completion}{127}{\code {disable-completion}}
|
||||
\entry{echo-control-characters}{127}{\code {echo-control-characters}}
|
||||
\entry{editing-mode}{127}{\code {editing-mode}}
|
||||
\entry{emacs-mode-string}{127}{\code {emacs-mode-string}}
|
||||
\entry{enable-active-region}{127}{\code {enable-active-region}}
|
||||
\entry{enable-bracketed-paste}{128}{\code {enable-bracketed-paste}}
|
||||
\entry{enable-keypad}{128}{\code {enable-keypad}}
|
||||
\entry{expand-tilde}{128}{\code {expand-tilde}}
|
||||
\entry{history-preserve-point}{128}{\code {history-preserve-point}}
|
||||
\entry{history-size}{128}{\code {history-size}}
|
||||
\entry{horizontal-scroll-mode}{128}{\code {horizontal-scroll-mode}}
|
||||
\entry{input-meta}{128}{\code {input-meta}}
|
||||
\entry{meta-flag}{128}{\code {meta-flag}}
|
||||
\entry{isearch-terminators}{129}{\code {isearch-terminators}}
|
||||
\entry{keymap}{129}{\code {keymap}}
|
||||
\entry{mark-modified-lines}{129}{\code {mark-modified-lines}}
|
||||
\entry{mark-symlinked-directories}{129}{\code {mark-symlinked-directories}}
|
||||
\entry{match-hidden-files}{129}{\code {match-hidden-files}}
|
||||
\entry{menu-complete-display-prefix}{130}{\code {menu-complete-display-prefix}}
|
||||
\entry{output-meta}{130}{\code {output-meta}}
|
||||
\entry{page-completions}{130}{\code {page-completions}}
|
||||
\entry{revert-all-at-newline}{130}{\code {revert-all-at-newline}}
|
||||
\entry{search-ignore-case}{130}{\code {search-ignore-case}}
|
||||
\entry{show-all-if-ambiguous}{130}{\code {show-all-if-ambiguous}}
|
||||
\entry{show-all-if-unmodified}{130}{\code {show-all-if-unmodified}}
|
||||
\entry{show-mode-in-prompt}{130}{\code {show-mode-in-prompt}}
|
||||
\entry{skip-completed-text}{131}{\code {skip-completed-text}}
|
||||
\entry{vi-cmd-mode-string}{131}{\code {vi-cmd-mode-string}}
|
||||
\entry{vi-ins-mode-string}{131}{\code {vi-ins-mode-string}}
|
||||
\entry{visible-stats}{131}{\code {visible-stats}}
|
||||
|
||||
+155
-155
@@ -11,7 +11,7 @@
|
||||
\entry{\code {$-}}{23}
|
||||
\entry{\code {$?}}{23}
|
||||
\entry{\code {$@}}{23}
|
||||
\entry{\code {$_}}{79}
|
||||
\entry{\code {$_}}{80}
|
||||
\entry{\code {$0}}{24}
|
||||
\initial {*}
|
||||
\entry{\code {*}}{23}
|
||||
@@ -22,180 +22,180 @@
|
||||
\initial {@}
|
||||
\entry{\code {@}}{23}
|
||||
\initial {_}
|
||||
\entry{\code {_}}{79}
|
||||
\entry{\code {_}}{80}
|
||||
\initial {0}
|
||||
\entry{\code {0}}{24}
|
||||
\initial {A}
|
||||
\entry{\code {active-region-end-color}}{124}
|
||||
\entry{\code {active-region-start-color}}{124}
|
||||
\entry{\code {auto_resume}}{119}
|
||||
\entry{\code {active-region-end-color}}{125}
|
||||
\entry{\code {active-region-start-color}}{125}
|
||||
\entry{\code {auto_resume}}{120}
|
||||
\initial {B}
|
||||
\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}
|
||||
\entry{\code {BASH}}{81}
|
||||
\entry{\code {BASH_ALIASES}}{81}
|
||||
\entry{\code {BASH_ARGC}}{81}
|
||||
\entry{\code {BASH_ARGV}}{81}
|
||||
\entry{\code {BASH_ARGV0}}{82}
|
||||
\entry{\code {BASH_CMDS}}{82}
|
||||
\entry{\code {BASH_COMMAND}}{82}
|
||||
\entry{\code {BASH_COMPAT}}{82}
|
||||
\entry{\code {BASH_ENV}}{82}
|
||||
\entry{\code {BASH_EXECUTION_STRING}}{82}
|
||||
\entry{\code {BASH_LINENO}}{82}
|
||||
\entry{\code {BASH_LOADABLES_PATH}}{83}
|
||||
\entry{\code {BASH_REMATCH}}{83}
|
||||
\entry{\code {BASH_SOURCE}}{83}
|
||||
\entry{\code {BASH_SUBSHELL}}{83}
|
||||
\entry{\code {BASH_VERSINFO}}{83}
|
||||
\entry{\code {BASH_VERSION}}{83}
|
||||
\entry{\code {BASH_XTRACEFD}}{83}
|
||||
\entry{\code {BASHOPTS}}{81}
|
||||
\entry{\code {BASHPID}}{81}
|
||||
\entry{\code {bell-style}}{125}
|
||||
\entry{\code {bind-tty-special-chars}}{125}
|
||||
\entry{\code {blink-matching-paren}}{126}
|
||||
\initial {C}
|
||||
\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}
|
||||
\entry{\code {CDPATH}}{80}
|
||||
\entry{\code {CHILD_MAX}}{84}
|
||||
\entry{\code {colored-completion-prefix}}{126}
|
||||
\entry{\code {colored-stats}}{126}
|
||||
\entry{\code {COLUMNS}}{84}
|
||||
\entry{\code {comment-begin}}{126}
|
||||
\entry{\code {COMP_CWORD}}{84}
|
||||
\entry{\code {COMP_KEY}}{84}
|
||||
\entry{\code {COMP_LINE}}{84}
|
||||
\entry{\code {COMP_POINT}}{84}
|
||||
\entry{\code {COMP_TYPE}}{84}
|
||||
\entry{\code {COMP_WORDBREAKS}}{84}
|
||||
\entry{\code {COMP_WORDS}}{84}
|
||||
\entry{\code {completion-display-width}}{126}
|
||||
\entry{\code {completion-ignore-case}}{126}
|
||||
\entry{\code {completion-map-case}}{126}
|
||||
\entry{\code {completion-prefix-display-length}}{126}
|
||||
\entry{\code {completion-query-items}}{126}
|
||||
\entry{\code {COMPREPLY}}{85}
|
||||
\entry{\code {convert-meta}}{127}
|
||||
\entry{\code {COPROC}}{85}
|
||||
\initial {D}
|
||||
\entry{\code {DIRSTACK}}{84}
|
||||
\entry{\code {disable-completion}}{126}
|
||||
\entry{\code {DIRSTACK}}{85}
|
||||
\entry{\code {disable-completion}}{127}
|
||||
\initial {E}
|
||||
\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}
|
||||
\entry{\code {echo-control-characters}}{127}
|
||||
\entry{\code {editing-mode}}{127}
|
||||
\entry{\code {emacs-mode-string}}{127}
|
||||
\entry{\code {EMACS}}{85}
|
||||
\entry{\code {enable-active-region}}{127}
|
||||
\entry{\code {enable-bracketed-paste}}{128}
|
||||
\entry{\code {enable-keypad}}{128}
|
||||
\entry{\code {ENV}}{85}
|
||||
\entry{\code {EPOCHREALTIME}}{85}
|
||||
\entry{\code {EPOCHSECONDS}}{85}
|
||||
\entry{\code {EUID}}{85}
|
||||
\entry{\code {EXECIGNORE}}{85}
|
||||
\entry{\code {expand-tilde}}{128}
|
||||
\initial {F}
|
||||
\entry{\code {FCEDIT}}{85}
|
||||
\entry{\code {FIGNORE}}{85}
|
||||
\entry{\code {FUNCNAME}}{85}
|
||||
\entry{\code {FUNCNEST}}{85}
|
||||
\entry{\code {FCEDIT}}{86}
|
||||
\entry{\code {FIGNORE}}{86}
|
||||
\entry{\code {FUNCNAME}}{86}
|
||||
\entry{\code {FUNCNEST}}{86}
|
||||
\initial {G}
|
||||
\entry{\code {GLOBIGNORE}}{85}
|
||||
\entry{\code {GLOBSORT}}{85}
|
||||
\entry{\code {GROUPS}}{85}
|
||||
\entry{\code {GLOBIGNORE}}{86}
|
||||
\entry{\code {GLOBSORT}}{86}
|
||||
\entry{\code {GROUPS}}{87}
|
||||
\initial {H}
|
||||
\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}
|
||||
\entry{\code {histchars}}{87}
|
||||
\entry{\code {HISTCMD}}{87}
|
||||
\entry{\code {HISTCONTROL}}{87}
|
||||
\entry{\code {HISTFILE}}{87}
|
||||
\entry{\code {HISTFILESIZE}}{87}
|
||||
\entry{\code {HISTIGNORE}}{87}
|
||||
\entry{\code {history-preserve-point}}{128}
|
||||
\entry{\code {history-size}}{128}
|
||||
\entry{\code {HISTSIZE}}{88}
|
||||
\entry{\code {HISTTIMEFORMAT}}{88}
|
||||
\entry{\code {HOME}}{80}
|
||||
\entry{\code {horizontal-scroll-mode}}{128}
|
||||
\entry{\code {HOSTFILE}}{88}
|
||||
\entry{\code {HOSTNAME}}{88}
|
||||
\entry{\code {HOSTTYPE}}{88}
|
||||
\initial {I}
|
||||
\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}
|
||||
\entry{\code {IFS}}{80}
|
||||
\entry{\code {IGNOREEOF}}{88}
|
||||
\entry{\code {input-meta}}{128}
|
||||
\entry{\code {INPUTRC}}{88}
|
||||
\entry{\code {INSIDE_EMACS}}{88}
|
||||
\entry{\code {isearch-terminators}}{129}
|
||||
\initial {K}
|
||||
\entry{\code {keymap}}{128}
|
||||
\entry{\code {keymap}}{129}
|
||||
\initial {L}
|
||||
\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}
|
||||
\entry{\code {LANG}}{8, 89}
|
||||
\entry{\code {LC_ALL}}{89}
|
||||
\entry{\code {LC_COLLATE}}{89}
|
||||
\entry{\code {LC_CTYPE}}{89}
|
||||
\entry{\code {LC_MESSAGES}}{8, 89}
|
||||
\entry{\code {LC_NUMERIC}}{89}
|
||||
\entry{\code {LC_TIME}}{89}
|
||||
\entry{\code {LINENO}}{89}
|
||||
\entry{\code {LINES}}{89}
|
||||
\initial {M}
|
||||
\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}
|
||||
\entry{\code {MACHTYPE}}{89}
|
||||
\entry{\code {MAIL}}{80}
|
||||
\entry{\code {MAILCHECK}}{89}
|
||||
\entry{\code {MAILPATH}}{80}
|
||||
\entry{\code {MAPFILE}}{89}
|
||||
\entry{\code {mark-modified-lines}}{129}
|
||||
\entry{\code {mark-symlinked-directories}}{129}
|
||||
\entry{\code {match-hidden-files}}{129}
|
||||
\entry{\code {menu-complete-display-prefix}}{130}
|
||||
\entry{\code {meta-flag}}{128}
|
||||
\initial {O}
|
||||
\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}
|
||||
\entry{\code {OLDPWD}}{89}
|
||||
\entry{\code {OPTARG}}{80}
|
||||
\entry{\code {OPTERR}}{89}
|
||||
\entry{\code {OPTIND}}{80}
|
||||
\entry{\code {OSTYPE}}{89}
|
||||
\entry{\code {output-meta}}{130}
|
||||
\initial {P}
|
||||
\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}
|
||||
\entry{\code {page-completions}}{130}
|
||||
\entry{\code {PATH}}{80}
|
||||
\entry{\code {PIPESTATUS}}{89}
|
||||
\entry{\code {POSIXLY_CORRECT}}{90}
|
||||
\entry{\code {PPID}}{90}
|
||||
\entry{\code {PROMPT_COMMAND}}{90}
|
||||
\entry{\code {PROMPT_DIRTRIM}}{90}
|
||||
\entry{\code {PS0}}{90}
|
||||
\entry{\code {PS1}}{80}
|
||||
\entry{\code {PS2}}{80}
|
||||
\entry{\code {PS3}}{90}
|
||||
\entry{\code {PS4}}{90}
|
||||
\entry{\code {PWD}}{90}
|
||||
\initial {R}
|
||||
\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}
|
||||
\entry{\code {RANDOM}}{90}
|
||||
\entry{\code {READLINE_ARGUMENT}}{90}
|
||||
\entry{\code {READLINE_LINE}}{90}
|
||||
\entry{\code {READLINE_MARK}}{90}
|
||||
\entry{\code {READLINE_POINT}}{91}
|
||||
\entry{\code {REPLY}}{91}
|
||||
\entry{\code {revert-all-at-newline}}{130}
|
||||
\initial {S}
|
||||
\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}
|
||||
\entry{\code {search-ignore-case}}{130}
|
||||
\entry{\code {SECONDS}}{91}
|
||||
\entry{\code {SHELL}}{91}
|
||||
\entry{\code {SHELLOPTS}}{91}
|
||||
\entry{\code {SHLVL}}{91}
|
||||
\entry{\code {show-all-if-ambiguous}}{130}
|
||||
\entry{\code {show-all-if-unmodified}}{130}
|
||||
\entry{\code {show-mode-in-prompt}}{130}
|
||||
\entry{\code {skip-completed-text}}{131}
|
||||
\entry{\code {SRANDOM}}{91}
|
||||
\initial {T}
|
||||
\entry{\code {TEXTDOMAIN}}{8}
|
||||
\entry{\code {TEXTDOMAINDIR}}{8}
|
||||
\entry{\code {TIMEFORMAT}}{90}
|
||||
\entry{\code {TMOUT}}{91}
|
||||
\entry{\code {TMPDIR}}{91}
|
||||
\entry{\code {TIMEFORMAT}}{91}
|
||||
\entry{\code {TMOUT}}{92}
|
||||
\entry{\code {TMPDIR}}{92}
|
||||
\initial {U}
|
||||
\entry{\code {UID}}{91}
|
||||
\entry{\code {UID}}{92}
|
||||
\initial {V}
|
||||
\entry{\code {vi-cmd-mode-string}}{130}
|
||||
\entry{\code {vi-ins-mode-string}}{130}
|
||||
\entry{\code {visible-stats}}{130}
|
||||
\entry{\code {vi-cmd-mode-string}}{131}
|
||||
\entry{\code {vi-ins-mode-string}}{131}
|
||||
\entry{\code {visible-stats}}{131}
|
||||
|
||||
+3
-3
@@ -2,10 +2,10 @@
|
||||
Copyright (C) 1988-2023 Free Software Foundation, Inc.
|
||||
@end ignore
|
||||
|
||||
@set LASTCHANGE Thu Apr 20 15:08:33 EDT 2023
|
||||
@set LASTCHANGE Sun May 14 15:33:30 EDT 2023
|
||||
|
||||
@set EDITION 5.2
|
||||
@set VERSION 5.2
|
||||
|
||||
@set UPDATED 20 April 2023
|
||||
@set UPDATED-MONTH April 2023
|
||||
@set UPDATED 14 May 2023
|
||||
@set UPDATED-MONTH May 2023
|
||||
|
||||
+2
-1
@@ -2484,7 +2484,7 @@ uw_merge_temporary_env (void *ignore)
|
||||
}
|
||||
|
||||
/* Catch-all cleanup function for lastpipe code for unwind-protects */
|
||||
static void
|
||||
void
|
||||
uw_lastpipe_cleanup (void *s)
|
||||
{
|
||||
set_jobs_list_frozen ((intptr_t) s);
|
||||
@@ -5915,6 +5915,7 @@ initialize_subshell (void)
|
||||
variable_context = return_catch_flag = funcnest = evalnest = sourcenest = 0;
|
||||
|
||||
interrupt_execution = retain_fifos = 0; /* XXX */
|
||||
executing_funsub = 0; /* XXX */
|
||||
|
||||
/* If we're not interactive, close the file descriptor from which we're
|
||||
reading the current shell script. */
|
||||
|
||||
@@ -121,6 +121,8 @@ extern void restore_funcarray_state (struct func_array_state *);
|
||||
extern void uw_restore_funcarray_state (void *);
|
||||
#endif
|
||||
|
||||
extern void uw_lastpipe_cleanup (void *);
|
||||
|
||||
extern void bind_lastarg (char *);
|
||||
|
||||
extern void uw_dispose_fd_bitmap (void *);
|
||||
|
||||
@@ -180,7 +180,7 @@ extern void show_shell_version (int);
|
||||
go into a separate include file. */
|
||||
|
||||
/* declarations for functions defined in lib/sh/anonfile.c */
|
||||
extern int anonopen (const char *, int);
|
||||
extern int anonopen (const char *, int, char **);
|
||||
extern int anonclose (int, const char *);
|
||||
|
||||
/* declarations for functions defined in lib/sh/casemod.c */
|
||||
|
||||
@@ -337,7 +337,6 @@ static SigHandler *old_cont = (SigHandler *)SIG_DFL;
|
||||
|
||||
/* A place to temporarily save the current pipeline. */
|
||||
static struct pipeline_saver *saved_pipeline;
|
||||
static int saved_already_making_children;
|
||||
|
||||
/* Set this to non-zero whenever you don't want the jobs list to change at
|
||||
all: no jobs deleted and no status change notifications. This is used,
|
||||
@@ -470,6 +469,7 @@ alloc_pipeline_saver (void)
|
||||
|
||||
ret = (struct pipeline_saver *)xmalloc (sizeof (struct pipeline_saver));
|
||||
ret->pipeline = 0;
|
||||
ret->already_making_children = 0;
|
||||
ret->next = 0;
|
||||
return ret;
|
||||
}
|
||||
@@ -483,11 +483,11 @@ save_pipeline (int clear)
|
||||
BLOCK_CHILD (set, oset);
|
||||
saver = alloc_pipeline_saver ();
|
||||
saver->pipeline = the_pipeline;
|
||||
saver->already_making_children = already_making_children;
|
||||
saver->next = saved_pipeline;
|
||||
saved_pipeline = saver;
|
||||
if (clear)
|
||||
the_pipeline = (PROCESS *)NULL;
|
||||
saved_already_making_children = already_making_children;
|
||||
UNBLOCK_CHILD (oset);
|
||||
}
|
||||
|
||||
@@ -501,10 +501,10 @@ restore_pipeline (int discard)
|
||||
BLOCK_CHILD (set, oset);
|
||||
old_pipeline = the_pipeline;
|
||||
the_pipeline = saved_pipeline->pipeline;
|
||||
already_making_children = saved_pipeline->already_making_children;
|
||||
saver = saved_pipeline;
|
||||
saved_pipeline = saved_pipeline->next;
|
||||
free (saver);
|
||||
already_making_children = saved_already_making_children;
|
||||
UNBLOCK_CHILD (oset);
|
||||
|
||||
if (discard && old_pipeline)
|
||||
|
||||
@@ -72,6 +72,7 @@ typedef struct process {
|
||||
|
||||
struct pipeline_saver {
|
||||
struct process *pipeline;
|
||||
int already_making_children;
|
||||
struct pipeline_saver *next;
|
||||
};
|
||||
|
||||
|
||||
+2
-2
@@ -47,13 +47,13 @@ anonunlink (const char *fn)
|
||||
}
|
||||
|
||||
int
|
||||
anonopen (const char *name, int flags)
|
||||
anonopen (const char *name, int flags, char **fn)
|
||||
{
|
||||
int fd, flag;
|
||||
|
||||
/* Heuristic */
|
||||
flag = (name && *name == '/') ? MT_TEMPLATE : MT_USETMPDIR;
|
||||
fd = sh_mktmpfd (name, flag|MT_USERANDOM|MT_READWRITE|MT_UNLINK, (char **)NULL);
|
||||
fd = sh_mktmpfd (name, flag|MT_USERANDOM|MT_READWRITE|MT_UNLINK, fn);
|
||||
return fd;
|
||||
}
|
||||
|
||||
|
||||
@@ -3807,7 +3807,7 @@ parse_matched_pair (int qc, int open, int close, size_t *lenp, int flags)
|
||||
count--;
|
||||
/* handle nested ${...} specially. */
|
||||
else if MBTEST(open != close && (tflags & LEX_WASDOL) && open == '{' && ch == open) /* } */
|
||||
count++;
|
||||
count++; /* XXX */
|
||||
else if MBTEST(((flags & P_FIRSTCLOSE) == 0) && ch == open) /* nested begin */
|
||||
count++;
|
||||
|
||||
@@ -3961,10 +3961,21 @@ parse_matched_pair (int qc, int open, int close, size_t *lenp, int flags)
|
||||
FREE (nestret);
|
||||
}
|
||||
else if ((flags & (P_ARRAYSUB|P_DOLBRACE)) && (tflags & LEX_WASDOL) && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */
|
||||
/* This also handles ${ command; } */
|
||||
goto parse_dollar_word;
|
||||
else if ((flags & P_ARITH) && (tflags & LEX_WASDOL) && ch == '(') /*)*/
|
||||
/* $() inside $(( ))/$[ ] */
|
||||
goto parse_dollar_word;
|
||||
else if ((flags & P_ARITH) && (tflags & LEX_WASDOL) && ch == '{') /*)*/
|
||||
/* ${} inside $(( ))/$[ ] */
|
||||
{
|
||||
int npeek;
|
||||
npeek = shell_getc (1);
|
||||
shell_ungetc (npeek);
|
||||
if (FUNSUB_CHAR (npeek))
|
||||
goto parse_dollar_word;
|
||||
}
|
||||
|
||||
#if defined (PROCESS_SUBSTITUTION)
|
||||
/* XXX - technically this should only be recognized at the start of
|
||||
a word */
|
||||
@@ -4272,7 +4283,7 @@ static char *
|
||||
parse_comsub (int qc, int open, int close, size_t *lenp, int flags)
|
||||
{
|
||||
int peekc, r;
|
||||
int start_lineno, dolbrace_spec, local_extglob, was_extpat;
|
||||
int start_lineno, dolbrace_spec, local_extglob, was_extpat, was_word;
|
||||
char *ret, *tcmd;
|
||||
size_t retlen;
|
||||
sh_parser_state_t ps;
|
||||
@@ -4292,7 +4303,11 @@ parse_comsub (int qc, int open, int close, size_t *lenp, int flags)
|
||||
{
|
||||
peekc = shell_getc (1);
|
||||
if (FUNSUB_CHAR (peekc))
|
||||
dolbrace_spec = peekc;
|
||||
{
|
||||
dolbrace_spec = peekc;
|
||||
if (dolbrace_spec == '(') /* ksh93 compatibility ) */
|
||||
shell_ungetc (peekc);
|
||||
}
|
||||
else
|
||||
{
|
||||
shell_ungetc (peekc);
|
||||
@@ -4308,6 +4323,7 @@ parse_comsub (int qc, int open, int close, size_t *lenp, int flags)
|
||||
save_parser_state (&ps);
|
||||
|
||||
was_extpat = (parser_state & PST_EXTPAT);
|
||||
was_word = 0;
|
||||
|
||||
/* State flags we don't want to persist into command substitutions. */
|
||||
parser_state &= ~(PST_REGEXP|PST_EXTPAT|PST_CONDCMD|PST_CONDEXPR|PST_COMPASSIGN);
|
||||
@@ -4353,6 +4369,14 @@ parse_comsub (int qc, int open, int close, size_t *lenp, int flags)
|
||||
|
||||
r = yyparse ();
|
||||
|
||||
if (open == '{')
|
||||
{
|
||||
if (current_token == shell_eof_token &&
|
||||
(last_read_token == ';' || last_read_token == '\n') &&
|
||||
(token_before_that == WORD || token_before_that == ASSIGNMENT_WORD))
|
||||
was_word = 1;
|
||||
}
|
||||
|
||||
if (need_here_doc > 0)
|
||||
{
|
||||
internal_warning ("command substitution: %d unterminated here-document%s", need_here_doc, (need_here_doc == 1) ? "" : "s");
|
||||
@@ -4442,6 +4466,8 @@ INTERNAL_DEBUG(("current_token (%d) != shell_eof_token (%c)", current_token, she
|
||||
strcpy (ret + 1, tcmd); /* ( */
|
||||
if (lastc != '\n' && lastc != ';' && lastc != '&' && lastc != ')')
|
||||
ret[retlen++] = ';';
|
||||
else if (lastc == ')' && was_word) /* right paren can end a word */
|
||||
ret[retlen++] = ';';
|
||||
ret[retlen++] = ' ';
|
||||
}
|
||||
ret[retlen++] = close;
|
||||
@@ -4457,7 +4483,7 @@ INTERNAL_DEBUG(("current_token (%d) != shell_eof_token (%c)", current_token, she
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Recursively call the parser to parse a $(...) command substitution. This is
|
||||
/* Recursively call the parser to parse a command substitution. This is
|
||||
called by the word expansion code and so does not have to reset as much
|
||||
parser state before calling yyparse(). */
|
||||
char *
|
||||
@@ -4515,7 +4541,7 @@ xparse_dolparen (const char *base, char *string, int *indp, int flags)
|
||||
local_extglob = extended_glob;
|
||||
#endif
|
||||
|
||||
if (funsub && FUNSUB_CHAR (*string))
|
||||
if (funsub && FUNSUB_CHAR (*string) && *string == '|')
|
||||
string++;
|
||||
|
||||
token_to_read = funsub ? DOLBRACE : DOLPAREN; /* let's trick the parser */
|
||||
@@ -4531,7 +4557,7 @@ xparse_dolparen (const char *base, char *string, int *indp, int flags)
|
||||
/* reset_parser() clears shell_input_line and associated variables, including
|
||||
parser_state, so we want to reset things, then restore what we need. */
|
||||
restore_input_line_state (&ls);
|
||||
restore_parser_state (&ps);
|
||||
restore_parser_state (&ps); /* restores shell_eof_token */
|
||||
|
||||
#if defined (EXTENDED_GLOB)
|
||||
extended_glob = local_extglob;
|
||||
@@ -4580,7 +4606,7 @@ xparse_dolparen (const char *base, char *string, int *indp, int flags)
|
||||
{
|
||||
/*(*/
|
||||
if ((flags & SX_NOERROR) == 0)
|
||||
parser_error (start_lineno, _("unexpected EOF while looking for matching `%c'"), ')');
|
||||
parser_error (start_lineno, _("unexpected EOF while looking for matching `%c'"), closer);
|
||||
jump_to_top_level (DISCARD);
|
||||
}
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ struct dstack {
|
||||
|
||||
/* characters that can appear following ${ to introduce a function or value
|
||||
substitution (this is mksh terminology and needs to be changed). */
|
||||
#define FUNSUB_CHAR(n) ((n) == ' ' || (n) == '\t' || (n) == '\n' || (n) == '|')
|
||||
#define FUNSUB_CHAR(n) ((n) == ' ' || (n) == '\t' || (n) == '\n' || (n) == '|' || (n) == '(') /* ) */
|
||||
|
||||
/* variable declarations from parse.y */
|
||||
extern struct dstack dstack;
|
||||
|
||||
@@ -396,7 +396,7 @@ top_level_cleanup (void)
|
||||
|
||||
run_unwind_protects ();
|
||||
loop_level = continuing = breaking = funcnest = 0;
|
||||
interrupt_execution = retain_fifos = 0;
|
||||
interrupt_execution = retain_fifos = executing_funsub = 0;
|
||||
comsub_ignore_return = return_catch_flag = wait_intr_flag = 0;
|
||||
variable_context = 0; /* XXX */
|
||||
}
|
||||
@@ -464,7 +464,7 @@ throw_to_top_level (void)
|
||||
|
||||
run_unwind_protects ();
|
||||
loop_level = continuing = breaking = funcnest = 0;
|
||||
interrupt_execution = retain_fifos = 0;
|
||||
interrupt_execution = retain_fifos = executing_funsub = 0;
|
||||
comsub_ignore_return = return_catch_flag = wait_intr_flag = 0;
|
||||
variable_context = 0;
|
||||
|
||||
@@ -632,7 +632,7 @@ termsig_handler (int sig)
|
||||
|
||||
/* Reset execution context */
|
||||
loop_level = continuing = breaking = funcnest = 0;
|
||||
interrupt_execution = retain_fifos = 0;
|
||||
interrupt_execution = retain_fifos = executing_funsub = 0;
|
||||
comsub_ignore_return = return_catch_flag = wait_intr_flag = 0;
|
||||
|
||||
run_exit_trap (); /* XXX - run exit trap possibly in signal context? */
|
||||
|
||||
@@ -192,6 +192,9 @@ int fail_glob_expansion;
|
||||
pattern substitution word expansion. */
|
||||
int patsub_replacement = PATSUB_REPLACE_DEFAULT;
|
||||
|
||||
/* Are we executing a ${ command; } nofork comsub? */
|
||||
int executing_funsub = 0;
|
||||
|
||||
/* Extern functions and variables from different files. */
|
||||
extern struct fd_bitmap *current_fds_to_close;
|
||||
extern int wordexp_only;
|
||||
@@ -6745,18 +6748,89 @@ read_comsub (int fd, int quoted, int flags, int *rflag)
|
||||
return istring;
|
||||
}
|
||||
|
||||
static void
|
||||
uw_pop_var_context (void *ignore)
|
||||
{
|
||||
pop_var_context ();
|
||||
}
|
||||
|
||||
#if defined (ARRAY_VARS)
|
||||
static void
|
||||
uw_restore_pipestatus_array (void *a)
|
||||
{
|
||||
restore_pipestatus_array (a);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* If S == -1, it's a special value saying to close stdin */
|
||||
static void
|
||||
restore_stdout (int fd)
|
||||
{
|
||||
if (fd == -1)
|
||||
close (1);
|
||||
else
|
||||
{
|
||||
dup2 (fd, 1);
|
||||
close (fd);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
uw_restore_stdout (void *fd)
|
||||
{
|
||||
restore_stdout ((intptr_t) fd);
|
||||
}
|
||||
|
||||
static void
|
||||
uw_anonclose (void *fdesc)
|
||||
{
|
||||
STRING_INT_ALIST *af;
|
||||
|
||||
af = (STRING_INT_ALIST *)fdesc;
|
||||
anonclose (af->token, af->word);
|
||||
free (af->word);
|
||||
}
|
||||
|
||||
static void
|
||||
uw_unbind_variable (void *name)
|
||||
{
|
||||
unbind_variable (name);
|
||||
}
|
||||
|
||||
static void
|
||||
uw_restore_pipeline (void *discard)
|
||||
{
|
||||
restore_pipeline ((intptr_t) discard);
|
||||
}
|
||||
|
||||
static void
|
||||
uw_restore_errexit (void *eflag)
|
||||
{
|
||||
change_flag ('e', (intptr_t) eflag ? FLAG_ON : FLAG_OFF);
|
||||
set_shellopts ();
|
||||
}
|
||||
|
||||
static SHELL_VAR lambdafunc = { ".bash.lambda", 0, 0, 0, 0, 0, 0 };
|
||||
|
||||
WORD_DESC *
|
||||
function_substitute (char *string, int quoted, int flags)
|
||||
{
|
||||
pid_t old_pipeline_pgrp;
|
||||
volatile int save_return_catch_flag, function_code;
|
||||
int valsub, stdout_valid, saveout, old_frozen;
|
||||
int result, pflags, tflag, was_trap;
|
||||
char *istring, *s;
|
||||
int fd;
|
||||
int result, fildes[2], function_value, pflags, rc, tflag, fork_flags;
|
||||
int valsub;
|
||||
WORD_DESC *ret;
|
||||
SHELL_VAR *v;
|
||||
STRING_INT_ALIST anonf;
|
||||
int afd;
|
||||
char *afn;
|
||||
sigset_t set, oset;
|
||||
#if defined (ARRAY_VARS)
|
||||
ARRAY *ps;
|
||||
#endif
|
||||
|
||||
istring = (char *)NULL;
|
||||
if (valsub = (string && *string == '|'))
|
||||
string++;
|
||||
|
||||
/* In the case of no command to run, just return NULL. */
|
||||
for (s = string; s && *s && (shellblank (*s) || *s == '\n'); s++)
|
||||
@@ -6764,31 +6838,164 @@ function_substitute (char *string, int quoted, int flags)
|
||||
if (s == 0 || *s == 0)
|
||||
return ((WORD_DESC *)NULL);
|
||||
|
||||
if (valsub = (*string == '|'))
|
||||
string++;
|
||||
|
||||
istring = (char *)NULL;
|
||||
/* Flags to pass to parse_and_execute() */
|
||||
pflags = (interactive && sourcelevel == 0) ? SEVAL_RESETLINE : 0;
|
||||
pflags |= SEVAL_NONINT|SEVAL_NOHIST|SEVAL_NOFREE|SEVAL_NOOPTIMIZE; /* XXX */
|
||||
|
||||
/* Let's get an anonymous file before we really try anything else. */
|
||||
if (valsub == 0)
|
||||
{
|
||||
afd = anonopen ("sh-nfc", 0, &afn); /* don't use filename yet */
|
||||
if (afd < 0)
|
||||
{
|
||||
sys_error ("%s", _("function_substitute: cannot open anonymous file for output"));
|
||||
exp_jump_to_top_level (DISCARD); /* XXX */
|
||||
}
|
||||
}
|
||||
|
||||
begin_unwind_frame ("nofork comsub");
|
||||
|
||||
/* Save command and expansion state we need. */
|
||||
if (valsub == 0)
|
||||
{
|
||||
anonf.word = afn;
|
||||
anonf.token = afd;
|
||||
add_unwind_protect (uw_anonclose, (void *)&anonf);
|
||||
}
|
||||
unwind_protect_int (executing_funsub);
|
||||
unwind_protect_int (expand_aliases);
|
||||
unwind_protect_pointer (subst_assign_varlist);
|
||||
unwind_protect_pointer (temporary_env);
|
||||
unwind_protect_pointer (this_shell_function);
|
||||
add_unwind_protect (uw_pop_var_context, 0);
|
||||
|
||||
#if defined (ARRAY_VARS)
|
||||
ps = save_pipestatus_array ();
|
||||
add_unwind_protect (uw_restore_pipestatus_array, ps);
|
||||
#endif
|
||||
|
||||
subst_assign_varlist = 0;
|
||||
|
||||
push_context (lambdafunc.name, 1, temporary_env); /* make local variables work */
|
||||
temporary_env = 0;
|
||||
this_shell_function = &lambdafunc;
|
||||
|
||||
unwind_protect_int (verbose_flag);
|
||||
change_flag ('v', FLAG_OFF);
|
||||
|
||||
/* When inherit_errexit option is not enabled, command substitution does
|
||||
not inherit the -e flag. It is enabled when Posix mode is enabled */
|
||||
if (inherit_errexit == 0)
|
||||
{
|
||||
unwind_protect_int (builtin_ignoring_errexit);
|
||||
builtin_ignoring_errexit = 0;
|
||||
add_unwind_protect (uw_restore_errexit, (void *) (intptr_t) errexit_flag);
|
||||
change_flag ('e', FLAG_OFF);
|
||||
}
|
||||
set_shellopts ();
|
||||
|
||||
if (valsub == 0)
|
||||
{
|
||||
fflush (stdout);
|
||||
fpurge (stdout);
|
||||
|
||||
stdout_valid = sh_validfd (1);
|
||||
saveout = stdout_valid ? move_to_high_fd (1, 1, -1) : -1;
|
||||
add_unwind_protect (uw_restore_stdout, (void *) (intptr_t) saveout);
|
||||
|
||||
/* Redirect stdout to the anonymous file */
|
||||
if (dup2 (afd, 1) < 0)
|
||||
{
|
||||
sys_error ("%s", _("function_substitute: cannot duplicate anonymous file as standard output"));
|
||||
run_unwind_frame ("nofork comsub");
|
||||
exp_jump_to_top_level (DISCARD);
|
||||
}
|
||||
#ifdef __CYGWIN__
|
||||
freopen (NULL, "w", stdout);
|
||||
sh_setlinebuf (stdout);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
v = make_local_variable ("REPLY", 0); /* should be new instance */
|
||||
/* We don't check $REPLY for readonly yet, but we could */
|
||||
if (v)
|
||||
add_unwind_protect (uw_unbind_variable, "REPLY");
|
||||
}
|
||||
|
||||
old_frozen = freeze_jobs_list ();
|
||||
add_unwind_protect (uw_lastpipe_cleanup, (void *) (intptr_t) old_frozen);
|
||||
|
||||
#if defined (JOB_CONTROL)
|
||||
old_pipeline_pgrp = pipeline_pgrp;
|
||||
unwind_protect_var (pipeline_pgrp);
|
||||
/* Don't reset the pipeline pgrp if we're already a subshell in a pipeline or
|
||||
we've already forked to run a disk command (and are expanding redirections,
|
||||
for example). */
|
||||
if ((subshell_environment & (SUBSHELL_FORK|SUBSHELL_PIPE)) == 0)
|
||||
pipeline_pgrp = shell_pgrp;
|
||||
save_pipeline (1);
|
||||
add_unwind_protect (uw_restore_pipeline, (void *) (intptr_t) 1);
|
||||
stop_making_children ();
|
||||
#endif /* JOB_CONTROL */
|
||||
|
||||
last_command_exit_value = EXECUTION_FAILURE;
|
||||
report_error ("bad substitution: %s", string);
|
||||
remove_quoted_escapes (string);
|
||||
|
||||
pipeline_pgrp = old_pipeline_pgrp;
|
||||
restore_pipeline (1);
|
||||
executing_funsub++;
|
||||
if (expand_aliases)
|
||||
expand_aliases = posixly_correct == 0;
|
||||
|
||||
/* exp_jump_to_top_level (DISCARD); */
|
||||
return ((WORD_DESC *)NULL);
|
||||
/* if we are in a position to accept return, we have to save the old values */
|
||||
function_code = 0;
|
||||
if (save_return_catch_flag = return_catch_flag)
|
||||
{
|
||||
unwind_protect_int (return_catch_flag);
|
||||
unwind_protect_jmp_buf (return_catch);
|
||||
}
|
||||
|
||||
was_trap = running_trap;
|
||||
|
||||
return_catch_flag++;
|
||||
function_code = setjmp_nosigs (return_catch);
|
||||
|
||||
if (function_code)
|
||||
{
|
||||
parse_and_execute_cleanup (was_trap);
|
||||
result = return_catch_value;
|
||||
}
|
||||
else
|
||||
result = parse_and_execute (string, "nofork comsub", pflags);
|
||||
|
||||
/* rewind back to the start of the file and read the contents */
|
||||
|
||||
if (valsub == 0)
|
||||
{
|
||||
/* We call anonclose as part of the outer nofork unwind-protects */
|
||||
BLOCK_SIGNAL (SIGINT, set, oset);
|
||||
lseek (afd, 0, SEEK_SET);
|
||||
tflag = 0;
|
||||
istring = read_comsub (afd, quoted, flags, &tflag);
|
||||
UNBLOCK_SIGNAL (oset);
|
||||
}
|
||||
else
|
||||
{
|
||||
s = get_string_value ("REPLY");
|
||||
istring = s ? savestring (s) : savestring ("");
|
||||
}
|
||||
|
||||
run_unwind_frame ("nofork comsub"); /* restores stdout, job control stuff */
|
||||
|
||||
last_command_subst_status = result;
|
||||
if (posixly_correct == 0) /* POSIX interp 1150 */
|
||||
last_command_exit_value = last_command_subst_status;
|
||||
last_command_subst_pid = dollar_dollar_pid;
|
||||
expand_aliases = expaliases_flag;
|
||||
|
||||
ret = alloc_word_desc ();
|
||||
ret->word = istring;
|
||||
ret->flags = tflag;
|
||||
|
||||
return (ret);
|
||||
}
|
||||
|
||||
/* Perform command substitution on STRING. This returns a WORD_DESC * with the
|
||||
@@ -6985,10 +7192,10 @@ command_substitute (char *string, int quoted, int flags)
|
||||
/* When inherit_errexit option is not enabled, command substitution does
|
||||
not inherit the -e flag. It is enabled when Posix mode is enabled */
|
||||
if (inherit_errexit == 0)
|
||||
{
|
||||
builtin_ignoring_errexit = 0;
|
||||
{
|
||||
builtin_ignoring_errexit = 0;
|
||||
change_flag ('e', FLAG_OFF);
|
||||
}
|
||||
}
|
||||
set_shellopts ();
|
||||
|
||||
/* If we are expanding a redirection, we can dispose of any temporary
|
||||
@@ -7075,7 +7282,6 @@ command_substitute (char *string, int quoted, int flags)
|
||||
discard_unwind_frame ("read-comsub");
|
||||
UNBLOCK_SIGNAL (oset);
|
||||
|
||||
current_command_subst_pid = pid;
|
||||
last_command_subst_status = wait_for (pid, JWAIT_NOTERM);
|
||||
last_command_subst_pid = pid;
|
||||
last_made_pid = old_pid;
|
||||
|
||||
@@ -355,6 +355,7 @@ extern int inherit_errexit;
|
||||
|
||||
extern pid_t last_command_subst_pid;
|
||||
extern int last_command_subst_status;
|
||||
extern int executing_funsub;
|
||||
|
||||
/* Evaluates to 1 if C is a character in $IFS. */
|
||||
#define isifs(c) (ifs_cmap[(unsigned char)(c)] != 0)
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
aa bb cc dd
|
||||
AAaa bb cc ddBB
|
||||
aa bb cc dd
|
||||
aa bb cc dd
|
||||
DDDDDaa bb cc ddEEEEE
|
||||
aa bb cc dd
|
||||
outside: 42
|
||||
aa bb cc dd
|
||||
outside:
|
||||
assignment: 12
|
||||
abcde
|
||||
67890
|
||||
12345
|
||||
JOBaa bb cc ddCONTROL
|
||||
./comsub2.tests: line 48: p: command not found
|
||||
NOTFOUND
|
||||
./comsub2.tests: line 56: p: command not found
|
||||
./comsub2.tests: line 56: p: command not found
|
||||
expand_aliases off
|
||||
expand_aliases off
|
||||
outside:
|
||||
expand_aliases off
|
||||
1
|
||||
expand_aliases on
|
||||
2
|
||||
expand_aliases on
|
||||
outside:
|
||||
expand_aliases on
|
||||
1
|
||||
xx
|
||||
expand_aliases on
|
||||
2
|
||||
xx
|
||||
expand_aliases on
|
||||
outside:
|
||||
expand_aliases on
|
||||
inside: 12 22 42
|
||||
outside: 42 2
|
||||
newlines
|
||||
|
||||
|
||||
outside: 42
|
||||
before: 1 2
|
||||
after: 2
|
||||
before: 1 2
|
||||
after: 2
|
||||
before: 1 2
|
||||
after: 1 2
|
||||
XnestedY
|
||||
a nested b
|
||||
one two
|
||||
42
|
||||
42
|
||||
42
|
||||
123
|
||||
123
|
||||
0
|
||||
123
|
||||
123
|
||||
0
|
||||
Mon Aug 29 20:03:02 EDT 2022
|
||||
Mon Aug 29 20:03:02 EDT 2022
|
||||
Mon Aug 29 20:03:02 EDT 2022
|
||||
Mon Aug 29 20:03:02 EDT 2022
|
||||
123
|
||||
before 123
|
||||
in for 123
|
||||
outside before: value
|
||||
inside before: value
|
||||
inside after: funsub
|
||||
inside: after false xxx
|
||||
outside after: funsub
|
||||
=====posix mode=====
|
||||
outside before: value
|
||||
@@ -0,0 +1,122 @@
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
# initial set of tests for ${Ccommand; } nofork command substitution
|
||||
|
||||
# basic functionality
|
||||
|
||||
echo ${ printf '%s\n' aa bb cc dd; }
|
||||
echo AA${ printf '%s\n' aa bb cc dd; }BB
|
||||
|
||||
echo ${ printf '%s\n' aa bb cc dd; return; echo ee ff; }
|
||||
echo ${ printf '%s\n' aa bb cc dd
|
||||
}
|
||||
echo DDDDD${
|
||||
printf '%s\n' aa bb cc dd
|
||||
}EEEEE
|
||||
unset x
|
||||
echo ${ printf '%s\n' aa bb cc dd; x=42 ; return 12; echo ee ff; }
|
||||
echo outside: $x
|
||||
unset x
|
||||
echo ${ typeset x; printf '%s\n' aa bb cc dd; x=42 ; return 12; echo ee ff; }
|
||||
echo outside: $x
|
||||
xx=${ typeset x; printf '%s\n' aa bb cc dd; x=42 ; return 12; echo ee ff; }
|
||||
echo assignment: $?
|
||||
unset xx
|
||||
|
||||
echo ${( echo abcde )} # works in ksh93
|
||||
|
||||
echo ${| echo 67890; REPLY=12345; } # works in mksh
|
||||
|
||||
# basic job control
|
||||
set -m
|
||||
echo this should disappear | echo JOB${ printf '%s\n' aa bb cc dd; }CONTROL | cat
|
||||
set +m
|
||||
|
||||
# command not found should still echo error messages to stderr
|
||||
echo NOT${ p; }FOUND
|
||||
|
||||
# alias handling in command substitutions, default and posix mode
|
||||
alias p=printf
|
||||
echo "${ typeset x;
|
||||
for f in 1 2; do p '%s\n' $f ; shopt expand_aliases; done
|
||||
x=42 ; return; echo this should not be seen; }"
|
||||
echo outside: $x
|
||||
shopt expand_aliases
|
||||
|
||||
set -o posix
|
||||
echo "${ typeset x;
|
||||
for f in 1 2; do p '%s\n' $f ; shopt expand_aliases; done
|
||||
x=42 ; return; echo this should not be seen; }"
|
||||
echo outside: $x
|
||||
shopt expand_aliases
|
||||
|
||||
set +o posix
|
||||
|
||||
shopt -s expand_aliases
|
||||
|
||||
alias p=printf
|
||||
echo "${ typeset x;
|
||||
for f in 1 2; do p '%s\n' $f ; /bin/echo xx ; shopt expand_aliases; done
|
||||
x=42 ; return; echo ee ff; }"
|
||||
echo outside: $x
|
||||
shopt expand_aliases
|
||||
|
||||
# more tests for value substitutions and local variables
|
||||
a=1 b=2
|
||||
a=${| local b ; a=12 ; b=22 ; REPLY=42 ; echo inside: $a $b $REPLY; }
|
||||
echo outside: $a $b
|
||||
unset a b
|
||||
|
||||
# this form doesn't remove the trailing newlines
|
||||
REPLY=42
|
||||
a=${| REPLY=$'newlines\n\n'; }
|
||||
echo "$a"
|
||||
echo outside: $REPLY
|
||||
|
||||
# how do we handle shift with these weird ksh93 function-like semantics?
|
||||
# ksh93 doesn't reset the positional parameters here
|
||||
set -- 1 2
|
||||
echo before: "$@"
|
||||
: "${ shift;}"
|
||||
echo after: "$@"
|
||||
|
||||
set -- 1 2
|
||||
echo before: "$@"
|
||||
: "${| shift;}"
|
||||
echo after: "$@"
|
||||
|
||||
set -- 1 2
|
||||
echo before: "$@"
|
||||
: "${( shift)}"
|
||||
echo after: "$@"
|
||||
|
||||
# nested funsubs
|
||||
echo ${ echo X${ echo nested; }Y; }
|
||||
echo ${ echo a ; echo ${ echo nested; }; echo b; }
|
||||
|
||||
# nested funsubs/comsubs
|
||||
x=${
|
||||
echo ${ echo one;} $(echo two)
|
||||
}
|
||||
echo $x
|
||||
|
||||
# mixing funsubs and arithmetic expansion
|
||||
echo $(( ${ echo 24 + 18; }))
|
||||
echo $(( ${ echo 14 + 18; }+ 10))
|
||||
echo ${ echo $(( 24+18 )); }
|
||||
|
||||
# alias expansion and nested funsubs in other constructs
|
||||
${THIS_SH} ./comsub21.sub
|
||||
${THIS_SH} ./comsub22.sub
|
||||
@@ -0,0 +1,65 @@
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
# posix-mode alias expansion in nofork command substitutions within
|
||||
# other constructs
|
||||
|
||||
DATE='Mon Aug 29 20:03:02 EDT 2022'
|
||||
shopt -s expand_aliases
|
||||
|
||||
alias number="echo 123"
|
||||
|
||||
echo ${ number; }
|
||||
echo $(( ${ number; } ))
|
||||
(( ${ number; } )) ; echo $?
|
||||
|
||||
set -o posix
|
||||
echo ${ number; }
|
||||
echo $(( ${ number; } ))
|
||||
(( ${ number; } )) ; echo $?
|
||||
set +o posix
|
||||
|
||||
# have to turn it back on after leaving posix mode
|
||||
shopt -s expand_aliases
|
||||
|
||||
alias my_alias='echo $DATE'
|
||||
|
||||
echo ${ eval my_alias; }
|
||||
echo ${ my_alias; }
|
||||
|
||||
set -o posix
|
||||
echo ${ eval my_alias; }
|
||||
echo ${ my_alias; }
|
||||
set +o posix ; shopt -s expand_aliases
|
||||
|
||||
alias e=echo
|
||||
alias v='e 123'
|
||||
|
||||
set -o posix
|
||||
echo ${ v; }
|
||||
echo ${ echo before ; v; }
|
||||
echo ${ for f in 0; do
|
||||
echo in for
|
||||
done; v; }
|
||||
set +o posix ; shopt -s expand_aliases
|
||||
|
||||
alias let='let --'
|
||||
|
||||
let '1 == 1'
|
||||
: ${ let '1 == 1'; }
|
||||
|
||||
set -o posix
|
||||
let '1 == 1'
|
||||
: ${ let '1 == 1'; }
|
||||
set +o posix ; shopt -s expand_aliases
|
||||
@@ -0,0 +1,26 @@
|
||||
# tests for inheriting set -e into command substitutions
|
||||
|
||||
set -e
|
||||
var=value
|
||||
echo "outside before: $var"
|
||||
echo "${
|
||||
echo "inside before: $var"
|
||||
var=funsub
|
||||
echo "inside after: $var"
|
||||
false;
|
||||
echo inside: after false
|
||||
}" xxx
|
||||
echo "outside after: $var"
|
||||
|
||||
set -o posix
|
||||
echo =====posix mode=====
|
||||
var=value
|
||||
echo "outside before: $var"
|
||||
echo "${
|
||||
echo "inside before: $var"
|
||||
var=funsub
|
||||
echo "inside after: $var"
|
||||
false;
|
||||
echo inside: after false
|
||||
}" xxx
|
||||
echo "outside after: $var"
|
||||
@@ -5,7 +5,7 @@ exportfunc ok 2
|
||||
./exportfunc.tests: line 43: cve7169-bad2: No such file or directory
|
||||
./exportfunc1.sub: line 14: maximum here-document count exceeded
|
||||
./exportfunc.tests: line 72: HELLO_WORLD: No such file or directory
|
||||
eval ok
|
||||
./exportfunc.tests: eval: line 83: unexpected EOF while looking for matching `}'
|
||||
./exportfunc3.sub: line 23: export: foo=bar: cannot export
|
||||
status: 1
|
||||
equals-1
|
||||
|
||||
@@ -78,8 +78,7 @@ env -i BASH_FUNC_x%%='() { _; } >_[${ $() }] { id; }' ${THIS_SH} -c : 2>/dev/nul
|
||||
env BASH_FUNC_x%%=$'() { _;}>_[$($())]\n{ echo vuln;}' ${THIS_SH} -c : 2>/dev/null
|
||||
eval 'x() { _;}>_[$($())] { echo vuln;}' 2>/dev/null
|
||||
|
||||
echo this will fail now that '${ ' has syntactic meaning
|
||||
|
||||
# this fails looking for closing `}' now that `${ ' has syntactic meaning
|
||||
eval 'foo() { _; } >_[${ $() }] ;{ echo eval ok; }'
|
||||
|
||||
# other tests fixed in bash43-030 concerning function name transformation
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
${THIS_SH} ./comsub2.tests > ${BASH_TSTOUT} 2>&1
|
||||
diff ${BASH_TSTOUT} comsub2.right && rm -f ${BASH_TSTOUT}
|
||||
Reference in New Issue
Block a user