parse extended glob patterns in command substitutions in compatibility mode, even if extglob is not set

This commit is contained in:
Chet Ramey
2022-08-02 11:16:48 -04:00
parent e9e3e4fea5
commit 9c317a6ae1
74 changed files with 22157 additions and 19321 deletions
+8 -1
View File
@@ -579,7 +579,14 @@ compat51 (set using BASH_COMPAT)
- the ${param[:]=value} word expansion will return VALUE, before any
variable-specific transformations have been performed (e.g.,
converting to lowercase). Bash-5.2 will return the final value
assigned to the variable, as POSIX specifies
assigned to the variable, as POSIX specifies;
- Parsing command substitutions will act as if extended glob is
enabled, so that parsing a command substitution containing an extglob
pattern (say, as part of a shell function) will not fail. This
assumes the intent is to enable extglob before the command is
executed and word expansions are performed. It will fail at word
expansion time if extglob hasn't been enabled by the time the
command is executed.
-------------------------------------------------------------------------------
+24
View File
@@ -3821,3 +3821,27 @@ subst.c
----
[bash-5.2-rc2 frozen]
7/27
----
parse.y
- reset_parser: set need_here_doc, esacs_needed_count, expecting_in_token
all to 0, since jumping back to a top-level parse needs that
- parse_comsub: make sure to reset expand_aliases and shell_eof_token
if we're not going to exit immediately out of this function
7/28
----
parse.y
- parse_comsub: if the compatibility level is <= 51, set extglob while
parsing the command substitution, so bad pattern errors can still be
caught but valid patterns are let through and can be evaluated at
runtime, when extglob may have been set. If it isn't set, it will
still be a parser error when the command substitution is executed.
Fixes report from Sam James <sam@gentoo.org> about gentoo scripts.
- reset_parser: set extended_glob from global_extglob if the parser
state includes PST_CMDSUBST
- xparse_dolparen: set global_extglob but don't modify extended_glob,
so parse errors can be caught before forking a child for command
substitution, as part of word expansion, but after extglob may have
been set by command execution (e.g., in a shell function)
+1 -1
View File
@@ -272,7 +272,7 @@ the Bash 'configure' recognizes.
'--with-libintl-prefix[=PREFIX]'
Define this to make Bash link with a locally-installed version of
the libintl library instead ofthe version in 'lib/intl'.
the libintl library instead of the version in 'lib/intl'.
'--with-libiconv-prefix[=PREFIX]'
Define this to make Bash look for libiconv in PREFIX instead of the
+3 -2
View File
@@ -176,7 +176,8 @@ GCC_LINT_FLAGS = -O -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wno-parentheses
-Wcast-align -Wstrict-prototypes -Wconversion -Wformat \
-Wformat-nonliteral -Wmissing-braces -Wuninitialized \
-Wmissing-declarations -Winline \
-Wmissing-prototypes -Wtraditional -Wredundant-decls -pedantic
-Wmissing-prototypes -Wtraditional -Wredundant-decls \
-Wformat-security -pedantic
GCC_LINT_CFLAGS = $(BASE_CCFLAGS) $(CPPFLAGS) $(GCC_LINT_FLAGS)
@@ -615,7 +616,7 @@ strip: $(Program) .made
-$(SIZE) $(Program)
lint:
${MAKE} ${MFLAGS} CFLAGS='${GCC_LINT_FLAGS}' .made
${MAKE} ${MFLAGS} ADDON_CFLAGS='${GCC_LINT_FLAGS}' .made
asan:
${MAKE} ${MFLAGS} ADDON_CFLAGS='${ASAN_XCFLAGS}' ADDON_LDFLAGS='${ASAN_XLDFLAGS}' .made
+1 -1
View File
@@ -240,7 +240,7 @@ The following list is what's changed when 'POSIX mode' is in effect:
'read', the trap handler executes and 'read' returns an exit status
greater than 128.
60. The 'printf' builting uses 'double' (via 'strtod') to convert
60. The 'printf' builtin uses 'double' (via 'strtod') to convert
arguments corresponding to floating point conversion specifiers,
instead of 'long double' if it's available. The 'L' length
modifier forces 'printf' to use 'long double' if it's available.
+4 -3
View File
@@ -25,7 +25,7 @@ version 3 of the License (or any later version). For more information,
see the file COPYING.
A number of frequently-asked questions are answered in the file
`doc/FAQ'.
`doc/FAQ'. (That file is no longer updated.)
To compile Bash, type `./configure', then `make'. Bash auto-configures
the build process, so no further intervention should be necessary. Bash
@@ -94,12 +94,13 @@ Other Packages
This distribution includes, in examples/bash-completion, a recent version
of the `bash-completion' package, which provides programmable completions
for a number of commands. It's available as a package in many distributions,
and that is the first place from which to obtain it. If it's not a package
from your vendor, you may install the included version.
and that is the first place from which to obtain it.
The latest version of bash-completion is always available from
https://github.com/scop/bash-completion.
If it's not a package from your vendor, you may install the included version.
Enjoy!
Chet Ramey
+7 -1
View File
@@ -2154,6 +2154,12 @@ EEXXPPAANNSSIIOONN
!!((_p_a_t_t_e_r_n_-_l_i_s_t))
Matches anything except one of the given patterns
Theeexxttgglloobb option changes the behavior of the parser, since the paren-
theses are normally treated as operators with syntactic meaning. To
ensure that extended matching patterns are parsed correctly, make sure
that eexxttgglloobb is enabled before parsing constructs containing the pat-
terns, including shell functions and command substitutions.
When matching filenames, the ddoottgglloobb shell option determines the set of
filenames that are tested: when ddoottgglloobb is enabled, the set of file-
names includes all files beginning with ``.'', but ``.'' and ``..''
@@ -6650,4 +6656,4 @@ BBUUGGSS
GNU Bash 5.2 2022 June 16 BASH(1)
GNU Bash 5.2 2022 July 29 BASH(1)
+8 -2
View File
@@ -5,12 +5,12 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
.\" Last Change: Thu Jun 16 17:10:54 EDT 2022
.\" Last Change: Fri Jul 29 08:59:32 EDT 2022
.\"
.\" bash_builtins, strip all but Built-Ins section
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
.TH BASH 1 "2022 June 16" "GNU Bash 5.2"
.TH BASH 1 "2022 July 29" "GNU Bash 5.2"
.\"
.\" There's some problem with having a `@'
.\" in a tagged paragraph with the BSD man macros.
@@ -3984,6 +3984,12 @@ Matches anything except one of the given patterns
.RE
.PD
.PP
The\fBextglob\fP option changes the behavior of the parser, since the
parentheses are normally treated as operators with syntactic meaning.
To ensure that extended matching patterns are parsed correctly, make sure
that \fBextglob\fP is enabled before parsing constructs containing the
patterns, including shell functions and command substitutions.
.PP
When matching filenames, the \fBdotglob\fP shell option determines
the set of filenames that are tested:
when \fBdotglob\fP is enabled, the set of filenames includes all files
+128 -40
View File
@@ -3,7 +3,7 @@
</HEAD>
<BODY><TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2022 June 3<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2022 July 29<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<BR><A HREF="#index">Index</A>
@@ -1112,24 +1112,28 @@ The return value is the exit status of the last command in <I>list</I>
that is executed, or false if any of the expressions is invalid.
<DT><B>select</B> <I>name</I> [ <B>in</B> <I>word</I> ] ; <B>do</B> <I>list</I> ; <B>done</B><DD>
The list of words following <B>in</B> is expanded, generating a list
of items. The set of expanded words is printed on the standard
of items, and the set of expanded words is printed on the standard
error, each preceded by a number. If the <B>in</B>
<I>word</I> is omitted, the positional parameters are printed (see
<FONT SIZE=-1><B>PARAMETERS</B>
</FONT>
below). The
below).
<B>select</B>
then displays the
<FONT SIZE=-1><B>PS3</B>
</FONT>
prompt is then displayed and a line read from the standard input.
prompt and reads a line from the standard input.
If the line consists of a number corresponding to one of
the displayed words, then the value of
<I>name</I>
is set to that word. If the line is empty, the words and prompt
are displayed again. If EOF is read, the command completes. Any
other value read causes
is set to that word.
If the line is empty, the words and prompt are displayed again.
If EOF is read, the <B>select</B> command completes and returns 1.
Any other value read causes
<I>name</I>
to be set to null. The line read is saved in the variable
@@ -4990,6 +4994,13 @@ Matches anything except one of the given patterns
<P>
The<B>extglob</B> option changes the behavior of the parser, since the
parentheses are normally treated as operators with syntactic meaning.
To ensure that extended matching patterns are parsed correctly, make sure
that <B>extglob</B> is enabled before parsing constructs containing the
patterns, including shell functions and command substitutions.
<P>
When matching filenames, the <B>dotglob</B> shell option determines
the set of filenames that are tested:
when <B>dotglob</B> is enabled, the set of filenames includes all files
@@ -10217,7 +10228,9 @@ If any of <B>-D</B>, <B>-E</B>, or <B>-I</B> are supplied, any other
specified by the option.
<P>
The process of applying these completion specifications when word completion
is attempted is described above under <B>Programmable Completion</B>.
is attempted is described
above under <B>Programmable Completion</B>.
<P>
Other options, if specified, have the following meanings.
The arguments to the <B>-G</B>, <B>-W</B>, and <B>-X</B> options
@@ -10388,6 +10401,7 @@ Names of all shell variables. May also be specified as <B>-v</B>.
<DT><B>-C</B> <I>command</I><DD>
<I>command</I> is executed in a subshell environment, and its output is
used as the possible completions.
Arguments are passed as with the <B>-F</B> option.
<DT><B>-F</B> <I>function</I><DD>
The shell function <I>function</I> is executed in the current shell
environment.
@@ -10556,6 +10570,7 @@ to give variables attributes:
Each <I>name</I> is an indexed array variable (see
<B>Arrays</B>
above).
<DT><B>-A</B>
@@ -10563,6 +10578,7 @@ above).
Each <I>name</I> is an associative array variable (see
<B>Arrays</B>
above).
<DT><B>-f</B>
@@ -10575,7 +10591,9 @@ The variable is treated as an integer; arithmetic evaluation (see
<FONT SIZE=-1><B>ARITHMETIC EVALUATION</B>
</FONT>
above) is performed when the variable is assigned a value.
above)
is performed when the variable is assigned a value.
<DT><B>-l</B>
<DD>
@@ -10650,7 +10668,9 @@ an attempt is made to assign a value to an array variable without
using the compound assignment syntax (see
<B>Arrays</B>
above), one of the <I>names</I> is not a valid shell variable name,
above),
one of the <I>names</I> is not a valid shell variable name,
an attempt is made to turn off readonly status for a readonly variable,
an attempt is made to turn off array status for an array variable,
or an attempt is made to display a non-existent function with <B>-f</B>.
@@ -11619,6 +11639,7 @@ is an arithmetic expression to be evaluated (see
<FONT SIZE=-1><B>ARITHMETIC EVALUATION</B>
</FONT>
above).
If the last
<I>arg</I>
@@ -11995,7 +12016,10 @@ invalid option is supplied.
<DT><B>read</B> [<B>-ers</B>] [<B>-a</B> <I>aname</I>] [<B>-d</B> <I>delim</I>] [<B>-i</B> <I>text</I>] [<B>-n</B> <I>nchars</I>] [<B>-N</B> <I>nchars</I>] [<B>-p</B> <I>prompt</I>] [<B>-t</B> <I>timeout</I>] [<B>-u</B> <I>fd</I>] [<I>name</I> ...]<DD>
One line is read from the standard input, or from the file descriptor
<I>fd</I> supplied as an argument to the <B>-u</B> option,
split into words as described above under <B>Word Splitting</B>,
split into words as described
above
under <B>Word Splitting</B>,
and the first word
is assigned to the first
<I>name</I>,
@@ -12015,7 +12039,10 @@ The characters in
</FONT>
are used to split the line into words using the same rules the shell
uses for expansion (described above under <B>Word Splitting</B>).
uses for expansion (described
above
under <B>Word Splitting</B>).
The backslash character (<B>\</B>) may be used to remove any special
meaning for the next character read and for line continuation.
Options, if supplied, have the following meanings:
@@ -12052,7 +12079,9 @@ is coming from a terminal,
<FONT SIZE=-1><B>READLINE</B>
</FONT>
above) is used to obtain the line.
above)
is used to obtain the line.
Readline uses the current (or default, if line editing was not previously
active) editing settings, but uses Readline's default filename completion.
<DT><B>-i </B><I>text</I>
@@ -12278,7 +12307,9 @@ or a <I>compound command</I>
<FONT SIZE=-1><B>SHELL GRAMMAR</B>
</FONT>
above), exits with a non-zero status.
above),
exits with a non-zero status.
The shell does not exit if the
command that fails is part of the command list immediately following a
<B>while</B>
@@ -12314,7 +12345,9 @@ separately (see
<FONT SIZE=-1><B>COMMAND EXECUTION ENVIRONMENT</B>
</FONT>
above), and may cause
above),
and may cause
subshells to exit before executing all the commands in the subshell.
<P>
@@ -12352,6 +12385,7 @@ it (see
<FONT SIZE=-1><B>JOB CONTROL</B>
</FONT>
above).
All processes run in a separate process group.
When a background job completes, the shell prints a line
@@ -12423,7 +12457,10 @@ Same as
<DT><B>history</B>
<DD>
Enable command history, as described above under
Enable command history, as described
above
under
<FONT SIZE=-1><B>HISTORY</B>.
</FONT>
@@ -12438,6 +12475,7 @@ had been executed
(see
<B>Shell Variables</B>
above).
<DT><B>keyword</B>
@@ -12516,7 +12554,9 @@ See
<FONT SIZE=-1><B>SEE ALSO</B>
</FONT>
below for a reference to a document that details how posix mode affects
below
for a reference to a document that details how posix mode affects
bash's behavior.
<DT><B>privileged</B>
@@ -12637,7 +12677,9 @@ or associated word list.
The shell performs brace expansion (see
<B>Brace Expansion</B>
above). This is on by default.
above).
This is on by default.
<DT><B>-C</B>
<DD>
@@ -12888,8 +12930,9 @@ intervening command (see
<FONT SIZE=-1><B>JOB CONTROL</B>
</FONT>
above). The shell always
postpones exiting if any jobs are stopped.
above).
The shell always postpones exiting if any jobs are stopped.
<DT><B>checkwinsize</B>
<DD>
@@ -12913,7 +12956,10 @@ attempts to save all lines of a multiple-line
command in the same history entry. This allows
easy re-editing of multi-line commands.
This option is enabled by default, but only has an effect if command
history is enabled, as described above under
history is enabled, as described
above
under
<FONT SIZE=-1><B>HISTORY</B>.
</FONT>
@@ -12948,6 +12994,7 @@ These control aspects of the shell's compatibility mode
<FONT SIZE=-1><B>SHELL COMPATIBILITY MODE</B>
</FONT>
below).
<DT><B>complete_fullquote</B>
@@ -13024,7 +13071,10 @@ fails.
<DT><B>expand_aliases</B>
<DD>
If set, aliases are expanded as described above under
If set, aliases are expanded as described
above
under
<FONT SIZE=-1><B>ALIASES</B>.
</FONT>
@@ -13067,7 +13117,9 @@ and
<FONT SIZE=-1><B>BASH_ARGV</B>
</FONT>
are updated as described in their descriptions above.
are updated as described in their descriptions
above).
<DT><B>5.</B>
<DD>
@@ -13085,7 +13137,10 @@ subshells invoked with <B>(</B> <I>command</I> <B>)</B> inherit the
<DT><B>extglob</B>
<DD>
If set, the extended pattern matching features described above under
If set, the extended pattern matching features described
above
under
<B>Pathname Expansion</B> are enabled.
<DT><B>extquote</B>
@@ -13110,7 +13165,9 @@ cause words to be ignored when performing word completion even if
the ignored words are the only possible completions.
See
<FONT SIZE=-1><B>SHELL VARIABLES</B></FONT>
above for a description of
above
for a description of
<FONT SIZE=-1><B>FIGNORE</B>.
</FONT>
@@ -13122,7 +13179,9 @@ If set, range expressions used in pattern matching bracket expressions (see
<FONT SIZE=-1><B>Pattern Matching</B>
</FONT>
above) behave as if in the traditional C locale when performing
above)
behave as if in the traditional C locale when performing
comparisons. That is, the current locale's collating sequence
is not taken into account, so
<B>b</B>
@@ -13199,6 +13258,7 @@ under
<FONT SIZE=-1><B>READLINE</B>
</FONT>
above).
This is enabled by default.
<DT><B>huponexit</B>
@@ -13226,7 +13286,9 @@ line to be ignored in an interactive shell (see
<FONT SIZE=-1><B>COMMENTS</B>
</FONT>
above). This option is enabled by default.
above).
This option is enabled by default.
<DT><B>lastpipe</B>
<DD>
@@ -13260,6 +13322,7 @@ The shell sets this option if it is started as a login shell (see
<FONT SIZE=-1><B>INVOCATION</B>
</FONT>
above).
The value may not be changed.
<DT><B>mailwarn</B>
@@ -13293,6 +13356,7 @@ matches filenames in a case-insensitive fashion when performing pathname
expansion (see
<B>Pathname Expansion</B>
above).
<DT><B>nocasematch</B>
@@ -13323,6 +13387,7 @@ allows patterns which match no
files (see
<B>Pathname Expansion</B>
above)
to expand to a null string, rather than themselves.
<DT><B>patsub_replacement</B>
@@ -13331,13 +13396,18 @@ to expand to a null string, rather than themselves.
If set, <B>bash</B>
expands occurrences of <B>&amp;</B> in the replacement string of pattern
substitution to the text matched by the pattern, as described
under <B>Parameter Expansion</B> above.
under <B>Parameter Expansion</B>
above.
This option is enabled by default.
<DT><B>progcomp</B>
<DD>
If set, the programmable completion facilities (see
<B>Programmable Completion</B> above) are enabled.
<B>Programmable Completion</B>
above)
are enabled.
This option is enabled by default.
<DT><B>progcomp_alias</B>
@@ -13355,7 +13425,9 @@ expansion, and quote removal after being expanded as described in
<FONT SIZE=-1><B>PROMPTING</B>
</FONT>
above. This option is enabled by default.
above.
This option is enabled by default.
<DT><B>restricted_shell</B>
<DD>
@@ -13364,6 +13436,7 @@ The shell sets this option if it is started in restricted mode
<FONT SIZE=-1><B>RESTRICTED SHELL</B>
</FONT>
below).
The value may not be changed.
This is not reset when the startup files are executed, allowing
@@ -13394,7 +13467,9 @@ If set, the shell automatically closes file descriptors assigned using the
<FONT SIZE=-1><B>REDIRECTION</B>
</FONT>
above) instead of leaving them open when the command completes.
above)
instead of leaving them open when the command completes.
<DT><B>xpg_echo</B>
<DD>
@@ -13428,8 +13503,10 @@ the evaluation of the conditional expression
<I>expr</I>.
Each operator and operand must be a separate argument.
Expressions are composed of the primaries described above under
Expressions are composed of the primaries described
above
under
<FONT SIZE=-1><B>CONDITIONAL EXPRESSIONS</B>.
</FONT>
@@ -13491,7 +13568,9 @@ The expression is true if and only if the argument is not null.
<DT>2 arguments<DD>
If the first argument is <B>!</B>, the expression is true if and
only if the second argument is null.
If the first argument is one of the unary conditional operators listed above
If the first argument is one of the unary conditional operators listed
above
under
<FONT SIZE=-1><B>CONDITIONAL EXPRESSIONS</B>,
@@ -13501,7 +13580,9 @@ If the first argument is not a valid unary conditional operator, the expression
is false.
<DT>3 arguments<DD>
The following conditions are applied in the order listed.
If the second argument is one of the binary conditional operators listed above
If the second argument is one of the binary conditional operators listed
above
under
<FONT SIZE=-1><B>CONDITIONAL EXPRESSIONS</B>,
@@ -13631,6 +13712,7 @@ command, and before the first command executes in a shell function (see
<FONT SIZE=-1><B>SHELL GRAMMAR</B>
</FONT>
above).
Refer to the description of the <B>extdebug</B> option to the
<B>shopt</B> builtin for details of its effect on the <B>DEBUG</B> trap.
@@ -14148,8 +14230,14 @@ its status, instead of returning when it changes status.
If
<I>id</I>
specifies a non-existent process or job, the return status is
127. Otherwise, the return status is the exit status of the last
specifies a non-existent process or job, the return status is 127.
If <B>wait</B> is interrupted by a signal, the return status will be greater
than 128, as described under
<B>SIGNALS</B>
above.
Otherwise, the return status is the exit status of the last
process or job waited for.
</DL>
<A NAME="lbDC">&nbsp;</A>
@@ -14177,7 +14265,7 @@ behavior. It's intended to be a temporary solution.
This section does not mention behavior that is standard for a particular
version (e.g., setting <B>compat32</B> means that quoting the rhs of the regexp
matching operator quotes special regexp characters in the word, which is
default behavior in bash-3.2 and above).
default behavior in bash-3.2 and subsequent versions).
<P>
If a user enables, say, <B>compat32</B>, it may affect the behavior of other
@@ -14693,7 +14781,7 @@ There may be only one active coprocess at a time.
<HR>
<TABLE WIDTH=100%>
<TR>
<TH ALIGN=LEFT width=33%>GNU Bash 5.2<TH ALIGN=CENTER width=33%>2022 June 3<TH ALIGN=RIGHT width=33%>BASH(1)
<TH ALIGN=LEFT width=33%>GNU Bash 5.2<TH ALIGN=CENTER width=33%>2022 July 29<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<HR>
@@ -14799,7 +14887,7 @@ There may be only one active coprocess at a time.
<DT><A HREF="#lbDI">BUGS</A><DD>
</DL>
<HR>
This document was created by man2html from /usr/local/src/bash/bash-20220609/doc/bash.1.<BR>
Time: 13 June 2022 11:04:39 EDT
This document was created by man2html from /usr/local/src/bash/bash-20220727/doc/bash.1.<BR>
Time: 29 July 2022 09:05:42 EDT
</BODY>
</HTML>
+153 -139
View File
@@ -1,9 +1,9 @@
This is bash.info, produced by makeinfo version 6.8 from bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.2, 3 June 2022).
Bash shell (version 5.2, 29 July 2022).
This is Edition 5.2, last updated 3 June 2022, of 'The GNU Bash
This is Edition 5.2, last updated 29 July 2022, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Copyright (C) 1988-2022 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, 3 June 2022). The Bash home page is
Bash shell (version 5.2, 29 July 2022). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.2, last updated 3 June 2022, of 'The GNU Bash
This is Edition 5.2, last updated 29 July 2022, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Bash contains features that appear in other popular shells, and some
@@ -2489,6 +2489,12 @@ the following sub-patterns:
'!(PATTERN-LIST)'
Matches anything except one of the given patterns.
The 'extglob' option changes the behavior of the parser, since the
parentheses are normally treated as operators with syntactic meaning.
To ensure that extended matching patterns are parsed correctly, make
sure that 'extglob' is enabled before parsing constructs containing the
patterns, including shell functions and command substitutions.
When matching filenames, the 'dotglob' shell option determines the
set of filenames that are tested: when 'dotglob' is enabled, the set of
filenames includes all files beginning with '.', but the filenames '.'
@@ -7254,7 +7260,7 @@ startup files.
'read', the trap handler executes and 'read' returns an exit status
greater than 128.
60. The 'printf' builting uses 'double' (via 'strtod') to convert
60. The 'printf' builtin uses 'double' (via 'strtod') to convert
arguments corresponding to floating point conversion specifiers,
instead of 'long double' if it's available. The 'L' length
modifier forces 'printf' to use 'long double' if it's available.
@@ -7430,6 +7436,14 @@ required for bash-5.1 and later versions.
before any variable-specific transformations have been
performed (e.g., converting to lowercase). Bash-5.2 will
return the final value assigned to the variable.
* Parsing command substitutions will behave as if extended glob
(*note The Shopt Builtin::) is enabled, so that parsing a
command substitution containing an extglob pattern (say, as
part of a shell function) will not fail. This assumes the
intent is to enable extglob before the command is executed and
word expansions are performed. It will fail at word expansion
time if extglob hasn't been enabled by the time the command is
executed.

File: bash.info, Node: Job Control, Next: Command Line Editing, Prev: Bash Features, Up: Top
@@ -7636,7 +7650,7 @@ File: bash.info, Node: Job Control Builtins, Next: Job Control Variables, Pre
assignment. This is useful only when the '-n' option is supplied.
Supplying the '-f' option, when job control is enabled, forces
'wait' to wait for each PID or JOBSPEC to terminate before
returning its status, intead of returning when it changes status.
returning its status, instead of returning when it changes status.
If neither JOBSPEC nor PID specifies an active child process of the
shell, the return status is 127. If 'wait' is interrupted by a
signal, the return status will be greater than 128, as described
@@ -10630,7 +10644,7 @@ the Bash 'configure' recognizes.
'--with-libintl-prefix[=PREFIX]'
Define this to make Bash link with a locally-installed version of
the libintl library instead ofthe version in 'lib/intl'.
the libintl library instead of the version in 'lib/intl'.
'--with-libiconv-prefix[=PREFIX]'
Define this to make Bash look for libiconv in PREFIX instead of the
@@ -12512,138 +12526,138 @@ D.5 Concept Index

Tag Table:
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 Translation17837
Node: Creating Internationalized Scripts19145
Node: Comments23259
Node: Shell Commands23874
Node: Reserved Words24809
Node: Simple Commands25562
Node: Pipelines26213
Node: Lists29209
Node: Compound Commands31001
Node: Looping Constructs32010
Node: Conditional Constructs34502
Node: Command Grouping48987
Node: Coprocesses50462
Node: GNU Parallel53122
Node: Shell Functions54036
Node: Shell Parameters61918
Node: Positional Parameters66303
Node: Special Parameters67202
Node: Shell Expansions70413
Node: Brace Expansion72537
Node: Tilde Expansion75268
Node: Shell Parameter Expansion77886
Node: Command Substitution96234
Node: Arithmetic Expansion97586
Node: Process Substitution98551
Node: Word Splitting99668
Node: Filename Expansion101609
Node: Pattern Matching104355
Node: Quote Removal109009
Node: Redirections109301
Node: Executing Commands118958
Node: Simple Command Expansion119625
Node: Command Search and Execution121732
Node: Command Execution Environment124107
Node: Environment127139
Node: Exit Status128799
Node: Signals130580
Node: Shell Scripts134026
Node: Shell Builtin Commands137050
Node: Bourne Shell Builtins139085
Node: Bash Builtins160543
Node: Modifying Shell Behavior191396
Node: The Set Builtin191738
Node: The Shopt Builtin202336
Node: Special Builtins218245
Node: Shell Variables219221
Node: Bourne Shell Variables219655
Node: Bash Variables221756
Node: Bash Features254569
Node: Invoking Bash255579
Node: Bash Startup Files261589
Node: Interactive Shells266717
Node: What is an Interactive Shell?267124
Node: Is this Shell Interactive?267770
Node: Interactive Shell Behavior268582
Node: Bash Conditional Expressions272208
Node: Shell Arithmetic276847
Node: Aliases279788
Node: Arrays282398
Node: The Directory Stack288786
Node: Directory Stack Builtins289567
Node: Controlling the Prompt293824
Node: The Restricted Shell296786
Node: Bash POSIX Mode299393
Node: Shell Compatibility Mode311314
Node: Job Control319354
Node: Job Control Basics319811
Node: Job Control Builtins324810
Node: Job Control Variables330601
Node: Command Line Editing331754
Node: Introduction and Notation333422
Node: Readline Interaction335042
Node: Readline Bare Essentials336230
Node: Readline Movement Commands338010
Node: Readline Killing Commands338967
Node: Readline Arguments340882
Node: Searching341923
Node: Readline Init File344106
Node: Readline Init File Syntax345364
Node: Conditional Init Constructs368560
Node: Sample Init File372753
Node: Bindable Readline Commands375874
Node: Commands For Moving377075
Node: Commands For History379123
Node: Commands For Text384114
Node: Commands For Killing387760
Node: Numeric Arguments390790
Node: Commands For Completion391926
Node: Keyboard Macros396114
Node: Miscellaneous Commands396798
Node: Readline vi Mode402734
Node: Programmable Completion403638
Node: Programmable Completion Builtins411415
Node: A Programmable Completion Example422164
Node: Using History Interactively427408
Node: Bash History Facilities428089
Node: Bash History Builtins431091
Node: History Interaction436096
Node: Event Designators439713
Node: Word Designators441064
Node: Modifiers442821
Node: Installing Bash444629
Node: Basic Installation445763
Node: Compilers and Options449482
Node: Compiling For Multiple Architectures450220
Node: Installation Names451910
Node: Specifying the System Type454016
Node: Sharing Defaults454729
Node: Operation Controls455399
Node: Optional Features456354
Node: Reporting Bugs467569
Node: Major Differences From The Bourne Shell468841
Node: GNU Free Documentation License485688
Node: Indexes510862
Node: Builtin Index511313
Node: Reserved Word Index518137
Node: Variable Index520582
Node: Function Index537353
Node: Concept Index551134
Node: Top886
Node: Introduction2795
Node: What is Bash?3008
Node: What is a shell?4119
Node: Definitions6654
Node: Basic Shell Features9602
Node: Shell Syntax10818
Node: Shell Operation11841
Node: Quoting13131
Node: Escape Character14432
Node: Single Quotes14914
Node: Double Quotes15259
Node: ANSI-C Quoting16534
Node: Locale Translation17841
Node: Creating Internationalized Scripts19149
Node: Comments23263
Node: Shell Commands23878
Node: Reserved Words24813
Node: Simple Commands25566
Node: Pipelines26217
Node: Lists29213
Node: Compound Commands31005
Node: Looping Constructs32014
Node: Conditional Constructs34506
Node: Command Grouping48991
Node: Coprocesses50466
Node: GNU Parallel53126
Node: Shell Functions54040
Node: Shell Parameters61922
Node: Positional Parameters66307
Node: Special Parameters67206
Node: Shell Expansions70417
Node: Brace Expansion72541
Node: Tilde Expansion75272
Node: Shell Parameter Expansion77890
Node: Command Substitution96238
Node: Arithmetic Expansion97590
Node: Process Substitution98555
Node: Word Splitting99672
Node: Filename Expansion101613
Node: Pattern Matching104359
Node: Quote Removal109358
Node: Redirections109650
Node: Executing Commands119307
Node: Simple Command Expansion119974
Node: Command Search and Execution122081
Node: Command Execution Environment124456
Node: Environment127488
Node: Exit Status129148
Node: Signals130929
Node: Shell Scripts134375
Node: Shell Builtin Commands137399
Node: Bourne Shell Builtins139434
Node: Bash Builtins160892
Node: Modifying Shell Behavior191745
Node: The Set Builtin192087
Node: The Shopt Builtin202685
Node: Special Builtins218594
Node: Shell Variables219570
Node: Bourne Shell Variables220004
Node: Bash Variables222105
Node: Bash Features254918
Node: Invoking Bash255928
Node: Bash Startup Files261938
Node: Interactive Shells267066
Node: What is an Interactive Shell?267473
Node: Is this Shell Interactive?268119
Node: Interactive Shell Behavior268931
Node: Bash Conditional Expressions272557
Node: Shell Arithmetic277196
Node: Aliases280137
Node: Arrays282747
Node: The Directory Stack289135
Node: Directory Stack Builtins289916
Node: Controlling the Prompt294173
Node: The Restricted Shell297135
Node: Bash POSIX Mode299742
Node: Shell Compatibility Mode311662
Node: Job Control320220
Node: Job Control Basics320677
Node: Job Control Builtins325676
Node: Job Control Variables331468
Node: Command Line Editing332621
Node: Introduction and Notation334289
Node: Readline Interaction335909
Node: Readline Bare Essentials337097
Node: Readline Movement Commands338877
Node: Readline Killing Commands339834
Node: Readline Arguments341749
Node: Searching342790
Node: Readline Init File344973
Node: Readline Init File Syntax346231
Node: Conditional Init Constructs369427
Node: Sample Init File373620
Node: Bindable Readline Commands376741
Node: Commands For Moving377942
Node: Commands For History379990
Node: Commands For Text384981
Node: Commands For Killing388627
Node: Numeric Arguments391657
Node: Commands For Completion392793
Node: Keyboard Macros396981
Node: Miscellaneous Commands397665
Node: Readline vi Mode403601
Node: Programmable Completion404505
Node: Programmable Completion Builtins412282
Node: A Programmable Completion Example423031
Node: Using History Interactively428275
Node: Bash History Facilities428956
Node: Bash History Builtins431958
Node: History Interaction436963
Node: Event Designators440580
Node: Word Designators441931
Node: Modifiers443688
Node: Installing Bash445496
Node: Basic Installation446630
Node: Compilers and Options450349
Node: Compiling For Multiple Architectures451087
Node: Installation Names452777
Node: Specifying the System Type454883
Node: Sharing Defaults455596
Node: Operation Controls456266
Node: Optional Features457221
Node: Reporting Bugs468437
Node: Major Differences From The Bourne Shell469709
Node: GNU Free Documentation License486556
Node: Indexes511730
Node: Builtin Index512181
Node: Reserved Word Index519005
Node: Variable Index521450
Node: Function Index538221
Node: Concept Index552002

End Tag Table
BIN
View File
Binary file not shown.
+3495 -3478
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+31 -12
View File
@@ -4,9 +4,9 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- This text is a brief description of the features that are present in
the Bash shell (version 5.2, 3 June 2022).
the Bash shell (version 5.2, 29 July 2022).
This is Edition 5.2, last updated 3 June 2022,
This is Edition 5.2, last updated 29 July 2022,
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, 3 June 2022).
the Bash shell (version 5.2, 29 July 2022).
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 3 June 2022,
<p>This is Edition 5.2, last updated 29 July 2022,
of <cite>The GNU Bash Reference Manual</cite>,
for <code>Bash</code>, Version 5.2.
</p>
@@ -1418,16 +1418,16 @@ It has almost the same syntax as the <code>for</code> command:
</pre></div>
<p>The list of words following <code>in</code> is expanded, generating a list
of items. The set of expanded words is printed on the standard
of items, and the set of expanded words is printed on the standard
error output stream, each preceded by a number. If the
&lsquo;<samp>in <var>words</var></samp>&rsquo; is omitted, the positional parameters are printed,
as if &lsquo;<samp>in &quot;$@&quot;</samp>&rsquo; had been specified.
The <code>PS3</code> prompt is then displayed and a line is read from the
standard input.
<code>select</code> then displays the <code>PS3</code>
prompt and reads a line from the standard input.
If the line consists of a number corresponding to one of the displayed
words, then the value of <var>name</var> is set to that word.
If the line is empty, the words and prompt are displayed again.
If <code>EOF</code> is read, the <code>select</code> command completes.
If <code>EOF</code> is read, the <code>select</code> command completes and returns 1.
Any other value read causes <var>name</var> to be set to null.
The line read is saved in the variable <code>REPLY</code>.
</p>
@@ -3382,6 +3382,12 @@ sub-patterns:
</p></dd>
</dl>
<p>The <code>extglob</code> option changes the behavior of the parser, since the
parentheses are normally treated as operators with syntactic meaning.
To ensure that extended matching patterns are parsed correctly, make sure
that <code>extglob</code> is enabled before parsing constructs containing the
patterns, including shell functions and command substitutions.
</p>
<p>When matching filenames, the <code>dotglob</code> shell option determines
the set of filenames that are tested:
when <code>dotglob</code> is enabled, the set of filenames includes all files
@@ -9358,7 +9364,7 @@ has been set.
If Bash receives a trapped signal while executing <code>read</code>, the trap
handler executes and <code>read</code> returns an exit status greater than 128.
</li><li> The <code>printf</code> builting uses <code>double</code> (via <code>strtod</code>) to convert
</li><li> The <code>printf</code> builtin uses <code>double</code> (via <code>strtod</code>) to convert
arguments corresponding to floating point conversion specifiers, instead of
<code>long double</code> if it&rsquo;s available. The &lsquo;<samp>L</samp>&rsquo; length modifier forces
<code>printf</code> to use <code>long double</code> if it&rsquo;s available.
@@ -9414,7 +9420,7 @@ behavior. It&rsquo;s intended to be a temporary solution.
<p>This section does not mention behavior that is standard for a particular
version (e.g., setting <code>compat32</code> means that quoting the rhs of the regexp
matching operator quotes special regexp characters in the word, which is
default behavior in bash-3.2 and above).
default behavior in bash-3.2 and subsequent versions).
</p>
<p>If a user enables, say, <code>compat32</code>, it may affect the behavior of other
compatibility levels up to and including the current compatibility level.
@@ -9577,6 +9583,14 @@ Bash-5.2 will look for and report on a key named &lsquo;<samp>@</samp>&rsquo;
<var>value</var>, before any variable-specific transformations have been
performed (e.g., converting to lowercase).
Bash-5.2 will return the final value assigned to the variable.
</li><li> Parsing command substitutions will behave as if extended glob
(see <a href="#The-Shopt-Builtin">The Shopt Builtin</a>)
is enabled, so that parsing a command substitution containing an extglob
pattern (say, as part of a shell function) will not fail.
This assumes the intent is to enable extglob before the command is executed
and word expansions are performed.
It will fail at word expansion time if extglob hasn&rsquo;t been
enabled by the time the command is executed.
</li></ul>
</dd>
</dl>
@@ -9846,10 +9860,14 @@ The variable will be unset initially, before any assignment.
This is useful only when the <samp>-n</samp> option is supplied.
Supplying the <samp>-f</samp> option, when job control is enabled,
forces <code>wait</code> to wait for each <var>pid</var> or <var>jobspec</var> to
terminate before returning its status, intead of returning when it changes
terminate before returning its status, instead of returning when it changes
status.
If neither <var>jobspec</var> nor <var>pid</var> specifies an active child process
of the shell, the return status is 127.
If <code>wait</code> is interrupted by a signal, the return status will be greater
than 128, as described above (see <a href="#Signals">Signals</a>).
Otherwise, the return status is the exit status
of the last process or job waited for.
</p>
</dd>
<dt id='index-disown'><span><code>disown</code><a href='#index-disown' class='copiable-anchor'> &para;</a></span></dt>
@@ -12425,6 +12443,7 @@ completions:
<dt><span><code>-C <var>command</var></code></span></dt>
<dd><p><var>command</var> is executed in a subshell environment, and its output is
used as the possible completions.
Arguments are passed as with the <samp>-F</samp> option.
</p>
</dd>
<dt><span><code>-F <var>function</var></code></span></dt>
@@ -13588,7 +13607,7 @@ the installed version of Readline in subdirectories of that directory
</dd>
<dt><span><code>--with-libintl-prefix[=<var>PREFIX</var>]</code></span></dt>
<dd><p>Define this to make Bash link with a locally-installed version of the
libintl library instead ofthe version in <samp>lib/intl</samp>.
libintl library instead of the version in <samp>lib/intl</samp>.
</p>
</dd>
<dt><span><code>--with-libiconv-prefix[=<var>PREFIX</var>]</code></span></dt>
+153 -139
View File
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 6.8 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.2, 3 June 2022).
Bash shell (version 5.2, 29 July 2022).
This is Edition 5.2, last updated 3 June 2022, of 'The GNU Bash
This is Edition 5.2, last updated 29 July 2022, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Copyright (C) 1988-2022 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, 3 June 2022). The Bash home page is
Bash shell (version 5.2, 29 July 2022). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.2, last updated 3 June 2022, of 'The GNU Bash
This is Edition 5.2, last updated 29 July 2022, of 'The GNU Bash
Reference Manual', for 'Bash', Version 5.2.
Bash contains features that appear in other popular shells, and some
@@ -2490,6 +2490,12 @@ the following sub-patterns:
'!(PATTERN-LIST)'
Matches anything except one of the given patterns.
The 'extglob' option changes the behavior of the parser, since the
parentheses are normally treated as operators with syntactic meaning.
To ensure that extended matching patterns are parsed correctly, make
sure that 'extglob' is enabled before parsing constructs containing the
patterns, including shell functions and command substitutions.
When matching filenames, the 'dotglob' shell option determines the
set of filenames that are tested: when 'dotglob' is enabled, the set of
filenames includes all files beginning with '.', but the filenames '.'
@@ -7255,7 +7261,7 @@ startup files.
'read', the trap handler executes and 'read' returns an exit status
greater than 128.
60. The 'printf' builting uses 'double' (via 'strtod') to convert
60. The 'printf' builtin uses 'double' (via 'strtod') to convert
arguments corresponding to floating point conversion specifiers,
instead of 'long double' if it's available. The 'L' length
modifier forces 'printf' to use 'long double' if it's available.
@@ -7431,6 +7437,14 @@ required for bash-5.1 and later versions.
before any variable-specific transformations have been
performed (e.g., converting to lowercase). Bash-5.2 will
return the final value assigned to the variable.
* Parsing command substitutions will behave as if extended glob
(*note The Shopt Builtin::) is enabled, so that parsing a
command substitution containing an extglob pattern (say, as
part of a shell function) will not fail. This assumes the
intent is to enable extglob before the command is executed and
word expansions are performed. It will fail at word expansion
time if extglob hasn't been enabled by the time the command is
executed.

File: bashref.info, Node: Job Control, Next: Command Line Editing, Prev: Bash Features, Up: Top
@@ -7637,7 +7651,7 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
assignment. This is useful only when the '-n' option is supplied.
Supplying the '-f' option, when job control is enabled, forces
'wait' to wait for each PID or JOBSPEC to terminate before
returning its status, intead of returning when it changes status.
returning its status, instead of returning when it changes status.
If neither JOBSPEC nor PID specifies an active child process of the
shell, the return status is 127. If 'wait' is interrupted by a
signal, the return status will be greater than 128, as described
@@ -10631,7 +10645,7 @@ the Bash 'configure' recognizes.
'--with-libintl-prefix[=PREFIX]'
Define this to make Bash link with a locally-installed version of
the libintl library instead ofthe version in 'lib/intl'.
the libintl library instead of the version in 'lib/intl'.
'--with-libiconv-prefix[=PREFIX]'
Define this to make Bash look for libiconv in PREFIX instead of the
@@ -12513,138 +12527,138 @@ D.5 Concept Index

Tag Table:
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 Translation17879
Node: Creating Internationalized Scripts19190
Node: Comments23307
Node: Shell Commands23925
Node: Reserved Words24863
Node: Simple Commands25619
Node: Pipelines26273
Node: Lists29272
Node: Compound Commands31067
Node: Looping Constructs32079
Node: Conditional Constructs34574
Node: Command Grouping49062
Node: Coprocesses50540
Node: GNU Parallel53203
Node: Shell Functions54120
Node: Shell Parameters62005
Node: Positional Parameters66393
Node: Special Parameters67295
Node: Shell Expansions70509
Node: Brace Expansion72636
Node: Tilde Expansion75370
Node: Shell Parameter Expansion77991
Node: Command Substitution96342
Node: Arithmetic Expansion97697
Node: Process Substitution98665
Node: Word Splitting99785
Node: Filename Expansion101729
Node: Pattern Matching104478
Node: Quote Removal109135
Node: Redirections109430
Node: Executing Commands119090
Node: Simple Command Expansion119760
Node: Command Search and Execution121870
Node: Command Execution Environment124248
Node: Environment127283
Node: Exit Status128946
Node: Signals130730
Node: Shell Scripts134179
Node: Shell Builtin Commands137206
Node: Bourne Shell Builtins139244
Node: Bash Builtins160705
Node: Modifying Shell Behavior191561
Node: The Set Builtin191906
Node: The Shopt Builtin202507
Node: Special Builtins218419
Node: Shell Variables219398
Node: Bourne Shell Variables219835
Node: Bash Variables221939
Node: Bash Features254755
Node: Invoking Bash255768
Node: Bash Startup Files261781
Node: Interactive Shells266912
Node: What is an Interactive Shell?267322
Node: Is this Shell Interactive?267971
Node: Interactive Shell Behavior268786
Node: Bash Conditional Expressions272415
Node: Shell Arithmetic277057
Node: Aliases280001
Node: Arrays282614
Node: The Directory Stack289005
Node: Directory Stack Builtins289789
Node: Controlling the Prompt294049
Node: The Restricted Shell297014
Node: Bash POSIX Mode299624
Node: Shell Compatibility Mode311548
Node: Job Control319591
Node: Job Control Basics320051
Node: Job Control Builtins325053
Node: Job Control Variables330847
Node: Command Line Editing332003
Node: Introduction and Notation333674
Node: Readline Interaction335297
Node: Readline Bare Essentials336488
Node: Readline Movement Commands338271
Node: Readline Killing Commands339231
Node: Readline Arguments341149
Node: Searching342193
Node: Readline Init File344379
Node: Readline Init File Syntax345640
Node: Conditional Init Constructs368839
Node: Sample Init File373035
Node: Bindable Readline Commands376159
Node: Commands For Moving377363
Node: Commands For History379414
Node: Commands For Text384408
Node: Commands For Killing388057
Node: Numeric Arguments391090
Node: Commands For Completion392229
Node: Keyboard Macros396420
Node: Miscellaneous Commands397107
Node: Readline vi Mode403046
Node: Programmable Completion403953
Node: Programmable Completion Builtins411733
Node: A Programmable Completion Example422485
Node: Using History Interactively427732
Node: Bash History Facilities428416
Node: Bash History Builtins431421
Node: History Interaction436429
Node: Event Designators440049
Node: Word Designators441403
Node: Modifiers443163
Node: Installing Bash444974
Node: Basic Installation446111
Node: Compilers and Options449833
Node: Compiling For Multiple Architectures450574
Node: Installation Names452267
Node: Specifying the System Type454376
Node: Sharing Defaults455092
Node: Operation Controls455765
Node: Optional Features456723
Node: Reporting Bugs467941
Node: Major Differences From The Bourne Shell469216
Node: GNU Free Documentation License486066
Node: Indexes511243
Node: Builtin Index511697
Node: Reserved Word Index518524
Node: Variable Index520972
Node: Function Index537746
Node: Concept Index551530
Node: Top889
Node: Introduction2801
Node: What is Bash?3017
Node: What is a shell?4131
Node: Definitions6669
Node: Basic Shell Features9620
Node: Shell Syntax10839
Node: Shell Operation11865
Node: Quoting13158
Node: Escape Character14462
Node: Single Quotes14947
Node: Double Quotes15295
Node: ANSI-C Quoting16573
Node: Locale Translation17883
Node: Creating Internationalized Scripts19194
Node: Comments23311
Node: Shell Commands23929
Node: Reserved Words24867
Node: Simple Commands25623
Node: Pipelines26277
Node: Lists29276
Node: Compound Commands31071
Node: Looping Constructs32083
Node: Conditional Constructs34578
Node: Command Grouping49066
Node: Coprocesses50544
Node: GNU Parallel53207
Node: Shell Functions54124
Node: Shell Parameters62009
Node: Positional Parameters66397
Node: Special Parameters67299
Node: Shell Expansions70513
Node: Brace Expansion72640
Node: Tilde Expansion75374
Node: Shell Parameter Expansion77995
Node: Command Substitution96346
Node: Arithmetic Expansion97701
Node: Process Substitution98669
Node: Word Splitting99789
Node: Filename Expansion101733
Node: Pattern Matching104482
Node: Quote Removal109484
Node: Redirections109779
Node: Executing Commands119439
Node: Simple Command Expansion120109
Node: Command Search and Execution122219
Node: Command Execution Environment124597
Node: Environment127632
Node: Exit Status129295
Node: Signals131079
Node: Shell Scripts134528
Node: Shell Builtin Commands137555
Node: Bourne Shell Builtins139593
Node: Bash Builtins161054
Node: Modifying Shell Behavior191910
Node: The Set Builtin192255
Node: The Shopt Builtin202856
Node: Special Builtins218768
Node: Shell Variables219747
Node: Bourne Shell Variables220184
Node: Bash Variables222288
Node: Bash Features255104
Node: Invoking Bash256117
Node: Bash Startup Files262130
Node: Interactive Shells267261
Node: What is an Interactive Shell?267671
Node: Is this Shell Interactive?268320
Node: Interactive Shell Behavior269135
Node: Bash Conditional Expressions272764
Node: Shell Arithmetic277406
Node: Aliases280350
Node: Arrays282963
Node: The Directory Stack289354
Node: Directory Stack Builtins290138
Node: Controlling the Prompt294398
Node: The Restricted Shell297363
Node: Bash POSIX Mode299973
Node: Shell Compatibility Mode311896
Node: Job Control320457
Node: Job Control Basics320917
Node: Job Control Builtins325919
Node: Job Control Variables331714
Node: Command Line Editing332870
Node: Introduction and Notation334541
Node: Readline Interaction336164
Node: Readline Bare Essentials337355
Node: Readline Movement Commands339138
Node: Readline Killing Commands340098
Node: Readline Arguments342016
Node: Searching343060
Node: Readline Init File345246
Node: Readline Init File Syntax346507
Node: Conditional Init Constructs369706
Node: Sample Init File373902
Node: Bindable Readline Commands377026
Node: Commands For Moving378230
Node: Commands For History380281
Node: Commands For Text385275
Node: Commands For Killing388924
Node: Numeric Arguments391957
Node: Commands For Completion393096
Node: Keyboard Macros397287
Node: Miscellaneous Commands397974
Node: Readline vi Mode403913
Node: Programmable Completion404820
Node: Programmable Completion Builtins412600
Node: A Programmable Completion Example423352
Node: Using History Interactively428599
Node: Bash History Facilities429283
Node: Bash History Builtins432288
Node: History Interaction437296
Node: Event Designators440916
Node: Word Designators442270
Node: Modifiers444030
Node: Installing Bash445841
Node: Basic Installation446978
Node: Compilers and Options450700
Node: Compiling For Multiple Architectures451441
Node: Installation Names453134
Node: Specifying the System Type455243
Node: Sharing Defaults455959
Node: Operation Controls456632
Node: Optional Features457590
Node: Reporting Bugs468809
Node: Major Differences From The Bourne Shell470084
Node: GNU Free Documentation License486934
Node: Indexes512111
Node: Builtin Index512565
Node: Reserved Word Index519392
Node: Variable Index521840
Node: Function Index538614
Node: Concept Index552398

End Tag Table
+21 -22
View File
@@ -1,12 +1,11 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/MacPorts 2021.58693_0) (preloaded format=pdfetex 2021.8.30) 13 JUN 2022 11:06
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2021/MacPorts 2021.58693_0) (preloaded format=pdfetex 2021.8.30) 29 JUL 2022 09:05
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**\input /usr/local/src/bash/bash-20220609/doc/bashref.texi \input /usr/local/s
rc/bash/bash-20220609/doc/bashref.texi
(/usr/local/src/bash/bash-20220609/doc/bashref.texi
(/usr/local/src/bash/bash-20220609/doc/texinfo.tex
**\input /usr/local/src/bash/bash-20220727/doc/bashref.texi
(/usr/local/src/bash/bash-20220727/doc/bashref.texi
(/usr/local/src/bash/bash-20220727/doc/texinfo.tex
Loading texinfo [version 2015-11-22.14]:
\outerhsize=\dimen16
\outervsize=\dimen17
@@ -162,15 +161,15 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
texinfo.tex: doing @include of version.texi
(/usr/local/src/bash/bash-20220609/doc/version.texi) [1{/opt/local/var/db/texmf
(/usr/local/src/bash/bash-20220727/doc/version.texi) [1{/opt/local/var/db/texmf
/fonts/map/pdftex/updmap/pdftex.map}] [2]
(/usr/local/build/bash/bash-20220609/doc/bashref.toc [-1] [-2] [-3]) [-4]
(/usr/local/build/bash/bash-20220609/doc/bashref.toc)
(/usr/local/build/bash/bash-20220609/doc/bashref.toc) Chapter 1
(/usr/local/build/bash/bash-20220727/doc/bashref.toc [-1] [-2] [-3]) [-4]
(/usr/local/build/bash/bash-20220727/doc/bashref.toc)
(/usr/local/build/bash/bash-20220727/doc/bashref.toc) Chapter 1
\openout0 = `bashref.toc'.
(/usr/local/build/bash/bash-20220609/doc/bashref.aux)
(/usr/local/build/bash/bash-20220727/doc/bashref.aux)
\openout1 = `bashref.aux'.
Chapter 2 [1] [2]
@@ -229,7 +228,7 @@ Overfull \hbox (5.95723pt too wide) in paragraph at lines 724--725
[48] [49] [50] [51]
[52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66]
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5224--5224
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5230--5230
[]@texttt set [-abefhkmnptuvxBCEHPT] [-o @textttsl option-name@texttt ] [--] [
-] [@textttsl ar-gu-ment []@texttt ][]
@@ -242,7 +241,7 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5224--5224
.etc.
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5225--5225
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5231--5231
[]@texttt set [+abefhkmnptuvxBCEHPT] [+o @textttsl option-name@texttt ] [--] [
-] [@textttsl ar-gu-ment []@texttt ][]
@@ -261,7 +260,7 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5225--5225
texinfo.tex: doing @include of rluser.texi
(/usr/local/src/bash/bash-20220609/lib/readline/doc/rluser.texi Chapter 8
(/usr/local/src/bash/bash-20220727/lib/readline/doc/rluser.texi Chapter 8
[116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127]
Underfull \hbox (badness 7540) in paragraph at lines 861--867
[]@textrm In the ex-am-ple above, @textttsl C-u[] @textrm is bound to the func
@@ -323,10 +322,10 @@ Overfull \hbox (15.27109pt too wide) in paragraph at lines 2120--2120
texinfo.tex: doing @include of hsuser.texi
(/usr/local/src/bash/bash-20220609/lib/readline/doc/hsuser.texi Chapter 9
(/usr/local/src/bash/bash-20220727/lib/readline/doc/hsuser.texi Chapter 9
[151] [152] [153] [154] [155] [156]) Chapter 10 [157] [158] [159] [160]
[161]
Underfull \hbox (badness 10000) in paragraph at lines 9367--9376
Underfull \hbox (badness 10000) in paragraph at lines 9386--9395
[]@textrm All of the fol-low-ing op-tions ex-cept for `@texttt alt-array-implem
entation[]@textrm '[],
@@ -339,7 +338,7 @@ entation[]@textrm '[],
.etc.
Underfull \hbox (badness 10000) in paragraph at lines 9367--9376
Underfull \hbox (badness 10000) in paragraph at lines 9386--9395
@textrm `@texttt disabled-builtins[]@textrm '[], `@texttt direxpand-default[]@t
extrm '[], `@texttt strict-posix-default[]@textrm '[], and
@@ -355,17 +354,17 @@ extrm '[], `@texttt strict-posix-default[]@textrm '[], and
[171] [172] Appendix C [173]
texinfo.tex: doing @include of fdl.texi
(/usr/local/src/bash/bash-20220609/doc/fdl.texi
(/usr/local/src/bash/bash-20220727/doc/fdl.texi
[174] [175] [176] [177] [178] [179] [180]) Appendix D [181] [182] [183]
[184] [185] [186] [187] [188] [189] [190] )
Here is how much of TeX's memory you used:
4095 strings out of 497086
47569 string characters out of 6206517
141496 words of memory out of 5000000
141560 words of memory out of 5000000
4867 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,978s stack positions out of 5000i,500n,10000p,200000b,80000s
16i,6n,16p,331b,978s 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
@@ -383,10 +382,10 @@ 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 (196 pages, 794339 bytes).
Output written on bashref.pdf (196 pages, 795436 bytes).
PDF statistics:
2752 PDF objects out of 2984 (max. 8388607)
2509 compressed objects within 26 object streams
2756 PDF objects out of 2984 (max. 8388607)
2513 compressed objects within 26 object streams
324 named destinations out of 1000 (max. 500000)
1141 words of extra memory for PDF output out of 10000 (max. 10000000)
BIN
View File
Binary file not shown.
+517 -488
View File
File diff suppressed because it is too large Load Diff
+15
View File
@@ -2933,6 +2933,12 @@ Matches one of the given patterns.
Matches anything except one of the given patterns.
@end table
The @code{extglob} option changes the behavior of the parser, since the
parentheses are normally treated as operators with syntactic meaning.
To ensure that extended matching patterns are parsed correctly, make sure
that @code{extglob} is enabled before parsing constructs containing the
patterns, including shell functions and command substitutions.
When matching filenames, the @code{dotglob} shell option determines
the set of filenames that are tested:
when @code{dotglob} is enabled, the set of filenames includes all files
@@ -8642,6 +8648,15 @@ the $@{@var{parameter}[:]=@var{value}@} word expansion will return
@var{value}, before any variable-specific transformations have been
performed (e.g., converting to lowercase).
Bash-5.2 will return the final value assigned to the variable.
@item
Parsing command substitutions will behave as if extended glob
(@pxref{The Shopt Builtin})
is enabled, so that parsing a command substitution containing an extglob
pattern (say, as part of a shell function) will not fail.
This assumes the intent is to enable extglob before the command is executed
and word expansions are performed.
It will fail at word expansion time if extglob hasn't been
enabled by the time the command is executed.
@end itemize
@end table
+233 -231
View File
@@ -245,53 +245,52 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
completions only apply to the case specified by the option.
The process of applying these completion specifications when
word completion is attempted is described above under PPrrooggrraamm--
mmaabbllee CCoommpplleettiioonn.
word completion is attempted is described in _b_a_s_h_(_1_).
Other options, if specified, have the following meanings. The
arguments to the --GG, --WW, and --XX options (and, if necessary, the
--PP and --SS options) should be quoted to protect them from expan-
Other options, if specified, have the following meanings. The
arguments to the --GG, --WW, and --XX options (and, if necessary, the
--PP and --SS options) should be quoted to protect them from expan-
sion before the ccoommpplleettee builtin is invoked.
--oo _c_o_m_p_-_o_p_t_i_o_n
The _c_o_m_p_-_o_p_t_i_o_n controls several aspects of the comp-
spec's behavior beyond the simple generation of comple-
The _c_o_m_p_-_o_p_t_i_o_n controls several aspects of the comp-
spec's behavior beyond the simple generation of comple-
tions. _c_o_m_p_-_o_p_t_i_o_n may be one of:
bbaasshhddeeffaauulltt
Perform the rest of the default bbaasshh completions
if the compspec generates no matches.
ddeeffaauulltt Use readline's default filename completion if
ddeeffaauulltt Use readline's default filename completion if
the compspec generates no matches.
ddiirrnnaammeess
Perform directory name completion if the comp-
Perform directory name completion if the comp-
spec generates no matches.
ffiilleennaammeess
Tell readline that the compspec generates file-
names, so it can perform any filename-specific
processing (like adding a slash to directory
names, quoting special characters, or suppress-
ing trailing spaces). Intended to be used with
Tell readline that the compspec generates file-
names, so it can perform any filename-specific
processing (like adding a slash to directory
names, quoting special characters, or suppress-
ing trailing spaces). Intended to be used with
shell functions.
nnooqquuoottee Tell readline not to quote the completed words
if they are filenames (quoting filenames is the
nnooqquuoottee Tell readline not to quote the completed words
if they are filenames (quoting filenames is the
default).
nnoossoorrtt Tell readline not to sort the list of possible
nnoossoorrtt Tell readline not to sort the list of possible
completions alphabetically.
nnoossppaaccee Tell readline not to append a space (the de-
fault) to words completed at the end of the
nnoossppaaccee Tell readline not to append a space (the de-
fault) to words completed at the end of the
line.
pplluussddiirrss
After any matches defined by the compspec are
After any matches defined by the compspec are
generated, directory name completion is at-
tempted and any matches are added to the results
of the other actions.
--AA _a_c_t_i_o_n
The _a_c_t_i_o_n may be one of the following to generate a
The _a_c_t_i_o_n may be one of the following to generate a
list of possible completions:
aalliiaass Alias names. May also be specified as --aa.
aarrrraayyvvaarr
Array variable names.
bbiinnddiinngg RReeaaddlliinnee key binding names.
bbuuiillttiinn Names of shell builtin commands. May also be
bbuuiillttiinn Names of shell builtin commands. May also be
specified as --bb.
ccoommmmaanndd Command names. May also be specified as --cc.
ddiirreeccttoorryy
@@ -299,7 +298,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
ddiissaabblleedd
Names of disabled shell builtins.
eennaabblleedd Names of enabled shell builtins.
eexxppoorrtt Names of exported shell variables. May also be
eexxppoorrtt Names of exported shell variables. May also be
specified as --ee.
ffiillee File names. May also be specified as --ff.
ffuunnccttiioonn
@@ -308,17 +307,17 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
hheellppttooppiicc
Help topics as accepted by the hheellpp builtin.
hhoossttnnaammee
Hostnames, as taken from the file specified by
Hostnames, as taken from the file specified by
the HHOOSSTTFFIILLEE shell variable.
jjoobb Job names, if job control is active. May also
jjoobb Job names, if job control is active. May also
be specified as --jj.
kkeeyywwoorrdd Shell reserved words. May also be specified as
kkeeyywwoorrdd Shell reserved words. May also be specified as
--kk.
rruunnnniinngg Names of running jobs, if job control is active.
sseerrvviiccee Service names. May also be specified as --ss.
sseettoopptt Valid arguments for the --oo option to the sseett
sseettoopptt Valid arguments for the --oo option to the sseett
builtin.
sshhoopptt Shell option names as accepted by the sshhoopptt
sshhoopptt Shell option names as accepted by the sshhoopptt
builtin.
ssiiggnnaall Signal names.
ssttooppppeedd Names of stopped jobs, if job control is active.
@@ -327,8 +326,9 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
Names of all shell variables. May also be spec-
ified as --vv.
--CC _c_o_m_m_a_n_d
_c_o_m_m_a_n_d is executed in a subshell environment, and its
output is used as the possible completions.
_c_o_m_m_a_n_d is executed in a subshell environment, and its
output is used as the possible completions. Arguments
are passed as with the --FF option.
--FF _f_u_n_c_t_i_o_n
The shell function _f_u_n_c_t_i_o_n is executed in the current
shell environment. When the function is executed, the
@@ -424,14 +424,14 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
local variable is initially unset. The following options can be
used to restrict output to variables with the specified attri-
bute or to give variables attributes:
--aa Each _n_a_m_e is an indexed array variable (see AArrrraayyss
above).
--AA Each _n_a_m_e is an associative array variable (see AArrrraayyss
above).
--aa Each _n_a_m_e is an indexed array variable (see AArrrraayyss in
_b_a_s_h_(_1_)).
--AA Each _n_a_m_e is an associative array variable (see AArrrraayyss in
_b_a_s_h_(_1_)).
--ff Use function names only.
--ii The variable is treated as an integer; arithmetic evalua-
tion (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN above) is performed when
the variable is assigned a value.
tion (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN in _b_a_s_h_(_1_)) is performed
when the variable is assigned a value.
--ll When the variable is assigned a value, all upper-case
characters are converted to lower-case. The upper-case
attribute is disabled.
@@ -466,11 +466,11 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
to define a function using ``-f foo=bar'', an attempt is made to
assign a value to a readonly variable, an attempt is made to as-
sign a value to an array variable without using the compound as-
signment syntax (see AArrrraayyss above), one of the _n_a_m_e_s is not a
valid shell variable name, an attempt is made to turn off read-
only status for a readonly variable, an attempt is made to turn
off array status for an array variable, or an attempt is made to
display a non-existent function with --ff.
signment syntax (see AArrrraayyss in _b_a_s_h_(_1_)), one of the _n_a_m_e_s is not
a valid shell variable name, an attempt is made to turn off
readonly status for a readonly variable, an attempt is made to
turn off array status for an array variable, or an attempt is
made to display a non-existent function with --ff.
ddiirrss [[--ccllppvv]] [[++_n]] [[--_n]]
Without options, displays the list of currently remembered di-
@@ -829,8 +829,8 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
lleett _a_r_g [_a_r_g ...]
Each _a_r_g is an arithmetic expression to be evaluated (see AARRIITTHH--
MMEETTIICC EEVVAALLUUAATTIIOONN above). If the last _a_r_g evaluates to 0, lleett
returns 1; 0 is returned otherwise.
MMEETTIICC EEVVAALLUUAATTIIOONN in _b_a_s_h_(_1_)). If the last _a_r_g evaluates to 0,
lleett returns 1; 0 is returned otherwise.
llooccaall [_o_p_t_i_o_n] [_n_a_m_e[=_v_a_l_u_e] ... | - ]
For each argument, a local variable named _n_a_m_e is created, and
@@ -1011,17 +1011,17 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
_p_r_o_m_p_t] [--tt _t_i_m_e_o_u_t] [--uu _f_d] [_n_a_m_e ...]
One line is read from the standard input, or from the file de-
scriptor _f_d supplied as an argument to the --uu option, split into
words as described above under WWoorrdd SSpplliittttiinngg, and the first
word is assigned to the first _n_a_m_e, the second word to the sec-
ond _n_a_m_e, and so on. If there are more words than names, the
words as described in _b_a_s_h_(_1_) under WWoorrdd SSpplliittttiinngg, and the
first word is assigned to the first _n_a_m_e, the second word to the
second _n_a_m_e, and so on. If there are more words than names, the
remaining words and their intervening delimiters are assigned to
the last _n_a_m_e. If there are fewer words read from the input
stream than names, the remaining names are assigned empty val-
ues. The characters in IIFFSS are used to split the line into
words using the same rules the shell uses for expansion (de-
scribed above under WWoorrdd SSpplliittttiinngg). The backslash character
(\\) may be used to remove any special meaning for the next char-
acter read and for line continuation. Options, if supplied,
scribed in _b_a_s_h_(_1_) under WWoorrdd SSpplliittttiinngg). The backslash charac-
ter (\\) may be used to remove any special meaning for the next
character read and for line continuation. Options, if supplied,
have the following meanings:
--aa _a_n_a_m_e
The words are assigned to sequential indices of the array
@@ -1034,10 +1034,10 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
string, rreeaadd will terminate a line when it reads a NUL
character.
--ee If the standard input is coming from a terminal, rreeaaddlliinnee
(see RREEAADDLLIINNEE above) is used to obtain the line. Read-
line uses the current (or default, if line editing was
not previously active) editing settings, but uses Read-
line's default filename completion.
(see RREEAADDLLIINNEE in _b_a_s_h_(_1_)) is used to obtain the line.
Readline uses the current (or default, if line editing
was not previously active) editing settings, but uses
Readline's default filename completion.
--ii _t_e_x_t
If rreeaaddlliinnee is being used to read the line, _t_e_x_t is
placed into the editing buffer before editing begins.
@@ -1148,22 +1148,22 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
is effective only when job control is enabled.
--ee Exit immediately if a _p_i_p_e_l_i_n_e (which may consist of a
single _s_i_m_p_l_e _c_o_m_m_a_n_d), a _l_i_s_t, or a _c_o_m_p_o_u_n_d _c_o_m_m_a_n_d
(see SSHHEELLLL GGRRAAMMMMAARR above), exits with a non-zero status.
The shell does not exit if the command that fails is
part of the command list immediately following a wwhhiillee
or uunnttiill keyword, part of the test following the iiff or
eelliiff reserved words, part of any command executed in a
&&&& or |||| list except the command following the final &&&&
or ||||, any command in a pipeline but the last, or if the
command's return value is being inverted with !!. If a
compound command other than a subshell returns a non-
zero status because a command failed while --ee was being
ignored, the shell does not exit. A trap on EERRRR, if
set, is executed before the shell exits. This option
(see SSHHEELLLL GGRRAAMMMMAARR in _b_a_s_h_(_1_)), exits with a non-zero
status. The shell does not exit if the command that
fails is part of the command list immediately following
a wwhhiillee or uunnttiill keyword, part of the test following the
iiff or eelliiff reserved words, part of any command executed
in a &&&& or |||| list except the command following the fi-
nal &&&& or ||||, any command in a pipeline but the last, or
if the command's return value is being inverted with !!.
If a compound command other than a subshell returns a
non-zero status because a command failed while --ee was
being ignored, the shell does not exit. A trap on EERRRR,
if set, is executed before the shell exits. This option
applies to the shell environment and each subshell envi-
ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT
above), and may cause subshells to exit before executing
all the commands in the subshell.
ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT in
_b_a_s_h_(_1_)), and may cause subshells to exit before execut-
ing all the commands in the subshell.
If a compound command or shell function executes in a
context where --ee is being ignored, none of the commands
@@ -1182,10 +1182,10 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
that precede the command name.
--mm Monitor mode. Job control is enabled. This option is
on by default for interactive shells on systems that
support it (see JJOOBB CCOONNTTRROOLL above). All processes run
in a separate process group. When a background job com-
pletes, the shell prints a line containing its exit sta-
tus.
support it (see JJOOBB CCOONNTTRROOLL in _b_a_s_h_(_1_)). All processes
run in a separate process group. When a background job
completes, the shell prints a line containing its exit
status.
--nn Read commands but do not execute them. This may be used
to check a shell script for syntax errors. This is ig-
nored by interactive shells.
@@ -1208,13 +1208,13 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
hhaasshhaallll Same as --hh.
hhiisstteexxppaanndd
Same as --HH.
hhiissttoorryy Enable command history, as described above under
HHIISSTTOORRYY. This option is on by default in inter-
active shells.
hhiissttoorryy Enable command history, as described in _b_a_s_h_(_1_)
under HHIISSTTOORRYY. This option is on by default in
interactive shells.
iiggnnoorreeeeooff
The effect is as if the shell command ``IG-
NOREEOF=10'' had been executed (see SShheellll VVaarrii--
aabblleess above).
aabblleess in _b_a_s_h_(_1_)).
kkeeyywwoorrdd Same as --kk.
mmoonniittoorr Same as --mm.
nnoocclloobbbbeerr
@@ -1236,8 +1236,8 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
ppoossiixx Change the behavior of bbaasshh where the default
operation differs from the POSIX standard to
match the standard (_p_o_s_i_x _m_o_d_e). See SSEEEE AALLSSOO
below for a reference to a document that details
how posix mode affects bash's behavior.
in _b_a_s_h_(_1_) for a reference to a document that
details how posix mode affects bash's behavior.
pprriivviilleeggeedd
Same as --pp.
vveerrbboossee Same as --vv.
@@ -1278,7 +1278,7 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
play the expanded value of PPSS44, followed by the command
and its expanded arguments or associated word list.
--BB The shell performs brace expansion (see BBrraaccee EExxppaannssiioonn
above). This is on by default.
in _b_a_s_h_(_1_)). This is on by default.
--CC If set, bbaasshh does not overwrite an existing file with
the >>, >>&&, and <<>> redirection operators. This may be
overridden when creating output files by using the redi-
@@ -1386,8 +1386,8 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
jobs before exiting an interactive shell. If any jobs
are running, this causes the exit to be deferred until a
second exit is attempted without an intervening command
(see JJOOBB CCOONNTTRROOLL above). The shell always postpones ex-
iting if any jobs are stopped.
(see JJOOBB CCOONNTTRROOLL in _b_a_s_h_(_1_)). The shell always post-
pones exiting if any jobs are stopped.
cchheecckkwwiinnssiizzee
If set, bbaasshh checks the window size after each external
(non-builtin) command and, if necessary, updates the
@@ -1397,7 +1397,8 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
line command in the same history entry. This allows
easy re-editing of multi-line commands. This option is
enabled by default, but only has an effect if command
history is enabled, as described above under HHIISSTTOORRYY.
history is enabled, as described in _b_a_s_h_(_1_) under HHIISS--
TTOORRYY.
ccoommppaatt3311
ccoommppaatt3322
ccoommppaatt4400
@@ -1406,122 +1407,122 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
ccoommppaatt4433
ccoommppaatt4444
ccoommppaatt5500
These control aspects of the shell's compatibility mode
(see SSHHEELLLL CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE below).
These control aspects of the shell's compatibility mode
(see SSHHEELLLL CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE in _b_a_s_h_(_1_)).
ccoommpplleettee__ffuullllqquuoottee
If set, bbaasshh quotes all shell metacharacters in file-
names and directory names when performing completion.
If set, bbaasshh quotes all shell metacharacters in file-
names and directory names when performing completion.
If not set, bbaasshh removes metacharacters such as the dol-
lar sign from the set of characters that will be quoted
in completed filenames when these metacharacters appear
in shell variable references in words to be completed.
This means that dollar signs in variable names that ex-
pand to directories will not be quoted; however, any
dollar signs appearing in filenames will not be quoted,
either. This is active only when bash is using back-
slashes to quote completed filenames. This variable is
set by default, which is the default bash behavior in
lar sign from the set of characters that will be quoted
in completed filenames when these metacharacters appear
in shell variable references in words to be completed.
This means that dollar signs in variable names that ex-
pand to directories will not be quoted; however, any
dollar signs appearing in filenames will not be quoted,
either. This is active only when bash is using back-
slashes to quote completed filenames. This variable is
set by default, which is the default bash behavior in
versions through 4.2.
ddiirreexxppaanndd
If set, bbaasshh replaces directory names with the results
of word expansion when performing filename completion.
This changes the contents of the readline editing buf-
fer. If not set, bbaasshh attempts to preserve what the
If set, bbaasshh replaces directory names with the results
of word expansion when performing filename completion.
This changes the contents of the readline editing buf-
fer. If not set, bbaasshh attempts to preserve what the
user typed.
ddiirrssppeellll
If set, bbaasshh attempts spelling correction on directory
names during word completion if the directory name ini-
If set, bbaasshh attempts spelling correction on directory
names during word completion if the directory name ini-
tially supplied does not exist.
ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
the results of pathname expansion. The filenames ````..''''
and ````....'''' must always be matched explicitly, even if
ddoottgglloobb If set, bbaasshh includes filenames beginning with a `.' in
the results of pathname expansion. The filenames ````..''''
and ````....'''' must always be matched explicitly, even if
ddoottgglloobb is set.
eexxeeccffaaiill
If set, a non-interactive shell will not exit if it can-
not execute the file specified as an argument to the
eexxeecc builtin command. An interactive shell does not
not execute the file specified as an argument to the
eexxeecc builtin command. An interactive shell does not
exit if eexxeecc fails.
eexxppaanndd__aalliiaasseess
If set, aliases are expanded as described above under
AALLIIAASSEESS. This option is enabled by default for interac-
tive shells.
If set, aliases are expanded as described in _b_a_s_h_(_1_) un-
der AALLIIAASSEESS. This option is enabled by default for in-
teractive shells.
eexxttddeebbuugg
If set at shell invocation, or in a shell startup file,
If set at shell invocation, or in a shell startup file,
arrange to execute the debugger profile before the shell
starts, identical to the ----ddeebbuuggggeerr option. If set af-
ter invocation, behavior intended for use by debuggers
starts, identical to the ----ddeebbuuggggeerr option. If set af-
ter invocation, behavior intended for use by debuggers
is enabled:
11.. The --FF option to the ddeeccllaarree builtin displays the
source file name and line number corresponding to
each function name supplied as an argument.
22.. If the command run by the DDEEBBUUGG trap returns a
non-zero value, the next command is skipped and
22.. If the command run by the DDEEBBUUGG trap returns a
non-zero value, the next command is skipped and
not executed.
33.. If the command run by the DDEEBBUUGG trap returns a
value of 2, and the shell is executing in a sub-
routine (a shell function or a shell script exe-
cuted by the .. or ssoouurrccee builtins), the shell
33.. If the command run by the DDEEBBUUGG trap returns a
value of 2, and the shell is executing in a sub-
routine (a shell function or a shell script exe-
cuted by the .. or ssoouurrccee builtins), the shell
simulates a call to rreettuurrnn.
44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
in their descriptions above.
44.. BBAASSHH__AARRGGCC and BBAASSHH__AARRGGVV are updated as described
in their descriptions in _b_a_s_h_(_1_)).
55.. Function tracing is enabled: command substitu-
55.. Function tracing is enabled: command substitu-
tion, shell functions, and subshells invoked with
(( _c_o_m_m_a_n_d )) inherit the DDEEBBUUGG and RREETTUURRNN traps.
66.. Error tracing is enabled: command substitution,
shell functions, and subshells invoked with ((
66.. Error tracing is enabled: command substitution,
shell functions, and subshells invoked with ((
_c_o_m_m_a_n_d )) inherit the EERRRR trap.
eexxttgglloobb If set, the extended pattern matching features described
above under PPaatthhnnaammee EExxppaannssiioonn are enabled.
in _b_a_s_h_(_1_) under PPaatthhnnaammee EExxppaannssiioonn are enabled.
eexxttqquuoottee
If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
If set, $$'_s_t_r_i_n_g' and $$"_s_t_r_i_n_g" quoting is performed
within $${{_p_a_r_a_m_e_t_e_r}} expansions enclosed in double
quotes. This option is enabled by default.
ffaaiillgglloobb
If set, patterns which fail to match filenames during
If set, patterns which fail to match filenames during
pathname expansion result in an expansion error.
ffoorrccee__ffiiggnnoorree
If set, the suffixes specified by the FFIIGGNNOORREE shell
variable cause words to be ignored when performing word
If set, the suffixes specified by the FFIIGGNNOORREE shell
variable cause words to be ignored when performing word
completion even if the ignored words are the only possi-
ble completions. See SSHHEELLLL VVAARRIIAABBLLEESS above for a de-
scription of FFIIGGNNOORREE. This option is enabled by de-
ble completions. See SSHHEELLLL VVAARRIIAABBLLEESS in _b_a_s_h_(_1_) for a
description of FFIIGGNNOORREE. This option is enabled by de-
fault.
gglloobbaasscciiiirraannggeess
If set, range expressions used in pattern matching
bracket expressions (see PPaatttteerrnn MMaattcchhiinngg above) behave
as if in the traditional C locale when performing com-
parisons. That is, the current locale's collating se-
quence is not taken into account, so bb will not collate
between AA and BB, and upper-case and lower-case ASCII
characters will collate together.
If set, range expressions used in pattern matching
bracket expressions (see PPaatttteerrnn MMaattcchhiinngg in _b_a_s_h_(_1_))
behave as if in the traditional C locale when performing
comparisons. That is, the current locale's collating
sequence is not taken into account, so bb will not col-
late between AA and BB, and upper-case and lower-case
ASCII characters will collate together.
gglloobbsskkiippddoottss
If set, pathname expansion will never match the file-
If set, pathname expansion will never match the file-
names ````..'''' and ````....'''', even if the pattern begins with
a ````..''''. This option is enabled by default.
gglloobbssttaarr
If set, the pattern **** used in a pathname expansion con-
text will match all files and zero or more directories
and subdirectories. If the pattern is followed by a //,
text will match all files and zero or more directories
and subdirectories. If the pattern is followed by a //,
only directories and subdirectories match.
ggnnuu__eerrrrffmmtt
@@ -1529,49 +1530,49 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
GNU error message format.
hhiissttaappppeenndd
If set, the history list is appended to the file named
If set, the history list is appended to the file named
by the value of the HHIISSTTFFIILLEE variable when the shell ex-
its, rather than overwriting the file.
hhiissttrreeeeddiitt
If set, and rreeaaddlliinnee is being used, a user is given the
If set, and rreeaaddlliinnee is being used, a user is given the
opportunity to re-edit a failed history substitution.
hhiissttvveerriiffyy
If set, and rreeaaddlliinnee is being used, the results of his-
tory substitution are not immediately passed to the
shell parser. Instead, the resulting line is loaded
If set, and rreeaaddlliinnee is being used, the results of his-
tory substitution are not immediately passed to the
shell parser. Instead, the resulting line is loaded
into the rreeaaddlliinnee editing buffer, allowing further modi-
fication.
hhoossttccoommpplleettee
If set, and rreeaaddlliinnee is being used, bbaasshh will attempt to
perform hostname completion when a word containing a @@
is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
above). This is enabled by default.
perform hostname completion when a word containing a @@
is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE in
_b_a_s_h_(_1_)). This is enabled by default.
hhuuppoonneexxiitt
If set, bbaasshh will send SSIIGGHHUUPP to all jobs when an inter-
active login shell exits.
iinnhheerriitt__eerrrreexxiitt
If set, command substitution inherits the value of the
eerrrreexxiitt option, instead of unsetting it in the subshell
environment. This option is enabled when _p_o_s_i_x _m_o_d_e is
If set, command substitution inherits the value of the
eerrrreexxiitt option, instead of unsetting it in the subshell
environment. This option is enabled when _p_o_s_i_x _m_o_d_e is
enabled.
iinntteerraaccttiivvee__ccoommmmeennttss
If set, allow a word beginning with ## to cause that word
and all remaining characters on that line to be ignored
in an interactive shell (see CCOOMMMMEENNTTSS above). This op-
tion is enabled by default.
and all remaining characters on that line to be ignored
in an interactive shell (see CCOOMMMMEENNTTSS in _b_a_s_h_(_1_)). This
option is enabled by default.
llaassttppiippee
If set, and job control is not active, the shell runs
If set, and job control is not active, the shell runs
the last command of a pipeline not executed in the back-
ground in the current shell environment.
lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line
lliitthhiisstt If set, and the ccmmddhhiisstt option is enabled, multi-line
commands are saved to the history with embedded newlines
rather than using semicolon separators where possible.
@@ -1582,118 +1583,117 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
tribute is not inherited.
llooccaallvvaarr__uunnsseett
If set, calling uunnsseett on local variables in previous
function scopes marks them so subsequent lookups find
them unset until that function returns. This is identi-
cal to the behavior of unsetting local variables at the
If set, calling uunnsseett on local variables in previous
function scopes marks them so subsequent lookups find
them unset until that function returns. This is identi-
cal to the behavior of unsetting local variables at the
current function scope.
llooggiinn__sshheellll
The shell sets this option if it is started as a login
shell (see IINNVVOOCCAATTIIOONN above). The value may not be
The shell sets this option if it is started as a login
shell (see IINNVVOOCCAATTIIOONN in _b_a_s_h_(_1_)). The value may not be
changed.
mmaaiillwwaarrnn
If set, and a file that bbaasshh is checking for mail has
been accessed since the last time it was checked, the
message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis-
If set, and a file that bbaasshh is checking for mail has
been accessed since the last time it was checked, the
message ``The mail in _m_a_i_l_f_i_l_e has been read'' is dis-
played.
nnoo__eemmppttyy__ccmmdd__ccoommpplleettiioonn
If set, and rreeaaddlliinnee is being used, bbaasshh will not at-
tempt to search the PPAATTHH for possible completions when
If set, and rreeaaddlliinnee is being used, bbaasshh will not at-
tempt to search the PPAATTHH for possible completions when
completion is attempted on an empty line.
nnooccaasseegglloobb
If set, bbaasshh matches filenames in a case-insensitive
If set, bbaasshh matches filenames in a case-insensitive
fashion when performing pathname expansion (see PPaatthhnnaammee
EExxppaannssiioonn above).
EExxppaannssiioonn in _b_a_s_h_(_1_)).
nnooccaasseemmaattcchh
If set, bbaasshh matches patterns in a case-insensitive
If set, bbaasshh matches patterns in a case-insensitive
fashion when performing matching while executing ccaassee or
[[[[ conditional commands, when performing pattern substi-
tution word expansions, or when filtering possible com-
tution word expansions, or when filtering possible com-
pletions as part of programmable completion.
nnooeexxppaanndd__ttrraannssllaattiioonn
If set, bbaasshh encloses the translated results of $"..."
quoting in single quotes instead of double quotes. If
If set, bbaasshh encloses the translated results of $"..."
quoting in single quotes instead of double quotes. If
the string is not translated, this has no effect.
nnuullllgglloobb
If set, bbaasshh allows patterns which match no files (see
PPaatthhnnaammee EExxppaannssiioonn above) to expand to a null string,
rather than themselves.
If set, bbaasshh allows patterns which match no files (see
PPaatthhnnaammee EExxppaannssiioonn in _b_a_s_h_(_1_)) to expand to a null
string, rather than themselves.
ppaattssuubb__rreeppllaacceemmeenntt
If set, bbaasshh expands occurrences of && in the replacement
string of pattern substitution to the text matched by
the pattern, as described under PPaarraammeetteerr EExxppaannssiioonn
above. This option is enabled by default.
string of pattern substitution to the text matched by
the pattern, as described under PPaarraammeetteerr EExxppaannssiioonn in
_b_a_s_h_(_1_). This option is enabled by default.
pprrooggccoommpp
If set, the programmable completion facilities (see PPrroo--
ggrraammmmaabbllee CCoommpplleettiioonn above) are enabled. This option is
enabled by default.
ggrraammmmaabbllee CCoommpplleettiioonn in _b_a_s_h_(_1_)) are enabled. This op-
tion is enabled by default.
pprrooggccoommpp__aalliiaass
If set, and programmable completion is enabled, bbaasshh
treats a command name that doesn't have any completions
as a possible alias and attempts alias expansion. If it
has an alias, bbaasshh attempts programmable completion us-
If set, and programmable completion is enabled, bbaasshh
treats a command name that doesn't have any completions
as a possible alias and attempts alias expansion. If it
has an alias, bbaasshh attempts programmable completion us-
ing the command word resulting from the expanded alias.
pprroommppttvvaarrss
If set, prompt strings undergo parameter expansion, com-
mand substitution, arithmetic expansion, and quote re-
moval after being expanded as described in PPRROOMMPPTTIINNGG
above. This option is enabled by default.
mand substitution, arithmetic expansion, and quote re-
moval after being expanded as described in PPRROOMMPPTTIINNGG in
_b_a_s_h_(_1_). This option is enabled by default.
rreessttrriicctteedd__sshheellll
The shell sets this option if it is started in re-
stricted mode (see RREESSTTRRIICCTTEEDD SSHHEELLLL below). The value
may not be changed. This is not reset when the startup
files are executed, allowing the startup files to dis-
cover whether or not a shell is restricted.
The shell sets this option if it is started in re-
stricted mode (see RREESSTTRRIICCTTEEDD SSHHEELLLL in _b_a_s_h_(_1_)). The
value may not be changed. This is not reset when the
startup files are executed, allowing the startup files
to discover whether or not a shell is restricted.
sshhiifftt__vveerrbboossee
If set, the sshhiifftt builtin prints an error message when
If set, the sshhiifftt builtin prints an error message when
the shift count exceeds the number of positional parame-
ters.
ssoouurrcceeppaatthh
If set, the .. (ssoouurrccee) builtin uses the value of PPAATTHH to
find the directory containing the file supplied as an
find the directory containing the file supplied as an
argument. This option is enabled by default.
vvaarrrreeddiirr__cclloossee
If set, the shell automatically closes file descriptors
If set, the shell automatically closes file descriptors
assigned using the _{_v_a_r_n_a_m_e_} redirection syntax (see RREE--
DDIIRREECCTTIIOONN above) instead of leaving them open when the
command completes.
DDIIRREECCTTIIOONN in _b_a_s_h_(_1_)) instead of leaving them open when
the command completes.
xxppgg__eecchhoo
If set, the eecchhoo builtin expands backslash-escape se-
If set, the eecchhoo builtin expands backslash-escape se-
quences by default.
ssuussppeenndd [--ff]
Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
signal. A login shell, or a shell without job control enabled,
cannot be suspended; the --ff option can be used to override this
and force the suspension. The return status is 0 unless the
shell is a login shell or job control is not enabled and --ff is
Suspend the execution of this shell until it receives a SSIIGGCCOONNTT
signal. A login shell, or a shell without job control enabled,
cannot be suspended; the --ff option can be used to override this
and force the suspension. The return status is 0 unless the
shell is a login shell or job control is not enabled and --ff is
not supplied.
tteesstt _e_x_p_r
[[ _e_x_p_r ]]
Return a status of 0 (true) or 1 (false) depending on the evalu-
ation of the conditional expression _e_x_p_r. Each operator and op-
erand must be a separate argument. Expressions are composed of
the primaries described in the bbaasshh manual page under CCOONNDDII--
TTIIOONNAALL EEXXPPRREESSSSIIOONNSS. tteesstt does not accept any options, nor does
it accept and ignore an argument of ---- as signifying the end of
options.
erand must be a separate argument. Expressions are composed of
the primaries described in _b_a_s_h_(_1_) under CCOONNDDIITTIIOONNAALL EEXXPPRREESS--
SSIIOONNSS. tteesstt does not accept any options, nor does it accept and
ignore an argument of ---- as signifying the end of options.
Expressions may be combined using the following operators,
listed in decreasing order of precedence. The evaluation de-
@@ -1719,24 +1719,24 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
2 arguments
If the first argument is !!, the expression is true if and
only if the second argument is null. If the first argu-
ment is one of the unary conditional operators listed
above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
ment is one of the unary conditional operators listed in
_b_a_s_h_(_1_) under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the expression is
true if the unary test is true. If the first argument is
not a valid unary conditional operator, the expression is
false.
3 arguments
The following conditions are applied in the order listed.
If the second argument is one of the binary conditional
operators listed above under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS, the
result of the expression is the result of the binary test
using the first and third arguments as operands. The --aa
and --oo operators are considered binary operators when
there are three arguments. If the first argument is !!,
the value is the negation of the two-argument test using
the second and third arguments. If the first argument is
exactly (( and the third argument is exactly )), the result
is the one-argument test of the second argument. Other-
wise, the expression is false.
operators listed in _b_a_s_h_(_1_) under CCOONNDDIITTIIOONNAALL EEXXPPRREESS--
SSIIOONNSS, the result of the expression is the result of the
binary test using the first and third arguments as oper-
ands. The --aa and --oo operators are considered binary op-
erators when there are three arguments. If the first ar-
gument is !!, the value is the negation of the two-argu-
ment test using the second and third arguments. If the
first argument is exactly (( and the third argument is ex-
actly )), the result is the one-argument test of the sec-
ond argument. Otherwise, the expression is false.
4 arguments
The following conditions are applied in the order listed.
If the first argument is !!, the result is the negation of
@@ -1777,12 +1777,12 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
from the shell. If a _s_i_g_s_p_e_c is DDEEBBUUGG, the command _a_r_g is exe-
cuted before every _s_i_m_p_l_e _c_o_m_m_a_n_d, _f_o_r command, _c_a_s_e command,
_s_e_l_e_c_t command, every arithmetic _f_o_r command, and before the
first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR
above). Refer to the description of the eexxttddeebbuugg option to the
sshhoopptt builtin for details of its effect on the DDEEBBUUGG trap. If a
_s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is executed each time a shell
function or a script executed with the .. or ssoouurrccee builtins fin-
ishes executing.
first command executes in a shell function (see SSHHEELLLL GGRRAAMMMMAARR in
_b_a_s_h_(_1_)). Refer to the description of the eexxttddeebbuugg option to
the sshhoopptt builtin for details of its effect on the DDEEBBUUGG trap.
If a _s_i_g_s_p_e_c is RREETTUURRNN, the command _a_r_g is executed each time a
shell function or a script executed with the .. or ssoouurrccee
builtins finishes executing.
If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a
pipeline (which may consist of a single simple command), a list,
@@ -1936,8 +1936,10 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
when job control is enabled, forces wwaaiitt to wait for _i_d to ter-
minate before returning its status, instead of returning when it
changes status. If _i_d specifies a non-existent process or job,
the return status is 127. Otherwise, the return status is the
exit status of the last process or job waited for.
the return status is 127. If wwaaiitt is interrupted by a signal,
the return status will be greater than 128, as described under
SSIIGGNNAALLSS in _b_a_s_h_(_1_). Otherwise, the return status is the exit
status of the last process or job waited for.
SSHHEELLLL CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE
Bash-4.0 introduced the concept of a _s_h_e_l_l _c_o_m_p_a_t_i_b_i_l_i_t_y _l_e_v_e_l, speci-
@@ -1952,7 +1954,7 @@ SSHHEELLLL CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE
This section does not mention behavior that is standard for a particu-
lar version (e.g., setting ccoommppaatt3322 means that quoting the rhs of the
regexp matching operator quotes special regexp characters in the word,
which is default behavior in bash-3.2 and above).
which is default behavior in bash-3.2 and subsequent versions).
If a user enables, say, ccoommppaatt3322, it may affect the behavior of other
compatibility levels up to and including the current compatibility
+677 -667
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.22.4
%%CreationDate: Mon Jun 13 11:04:35 2022
%%CreationDate: Fri Jul 29 09:05:33 2022
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%DocumentSuppliedResources: procset grops 1.22 4
+3 -3
View File
@@ -2,10 +2,10 @@
Copyright (C) 1988-2022 Free Software Foundation, Inc.
@end ignore
@set LASTCHANGE Fri Jun 3 10:47:05 EDT 2022
@set LASTCHANGE Fri Jul 29 08:59:54 EDT 2022
@set EDITION 5.2
@set VERSION 5.2
@set UPDATED 3 June 2022
@set UPDATED-MONTH June 2022
@set UPDATED 29 July 2022
@set UPDATED-MONTH July 2022
+2 -2
View File
@@ -523,7 +523,7 @@ restore_signal_mask (set)
#ifdef DEBUG
/* A debugging function that can be called from gdb, for instance. */
void
open_files ()
open_files (void)
{
register int i;
int f, fd_table_size;
@@ -2265,7 +2265,7 @@ coproc_setvars (cp)
{
SHELL_VAR *v;
char *namevar, *t;
int l;
size_t l;
WORD_DESC w;
#if defined (ARRAY_VARS)
arrayind_t ind;
+1 -1
View File
@@ -845,7 +845,7 @@ to a string that is inserted when the key is pressed (a @var{macro}).
@ifset BashFeatures
The @w{@code{bind -p}} command displays Readline function names and
bindings in a format that can put directly into an initialization file.
bindings in a format that can be put directly into an initialization file.
@xref{Bash Builtins}.
@end ifset
+42 -7
View File
@@ -1666,7 +1666,7 @@ rewind_input_string ()
xchars++;
/* XXX - how to reflect bash_input.location.string back to string passed to
parse_and_execute or xparse_dolparen? xparse_dolparen needs to know how
parse_and_execute or xparse_dolparen? xparse_dolparen needs to know how
far into the string we parsed. parse_and_execute knows where bash_input.
location.string is, and how far from orig_string that is -- that's the
number of characters the command consumed. */
@@ -3303,7 +3303,7 @@ reset_parser ()
#if defined (EXTENDED_GLOB)
/* Reset to global value of extended glob */
if (parser_state & PST_EXTPAT)
if (parser_state & (PST_EXTPAT|PST_CMDSUBST))
extended_glob = global_extglob;
#endif
@@ -3328,6 +3328,11 @@ reset_parser ()
eol_ungetc_lookahead = 0;
/* added post-bash-5.1 */
need_here_doc = 0;
redir_stack[0] = 0;
esacs_needed_count = expecting_in_token = 0;
current_token = '\n'; /* XXX */
last_read_token = '\n';
token_to_read = '\n';
@@ -4098,6 +4103,7 @@ parse_comsub (qc, open, close, lenp, flags)
saved_global = global_command; /* might not be necessary */
global_command = (COMMAND *)NULL;
/* These are reset by reset_parser() */
need_here_doc = 0;
esacs_needed_count = expecting_in_token = 0;
@@ -4107,9 +4113,13 @@ parse_comsub (qc, open, close, lenp, flags)
backwards compatibility. */
if (expand_aliases)
expand_aliases = posixly_correct != 0;
#if defined (EXTENDED_GLOB)
global_extglob = extended_glob;
if (shell_compatibility_level <= 51)
extended_glob = 1;
#endif
current_token = '\n'; /* XXX */
token_to_read = DOLPAREN; /* let's trick the parser */
r = yyparse ();
@@ -4120,11 +4130,20 @@ parse_comsub (qc, open, close, lenp, flags)
gather_here_documents (); /* XXX check compatibility level? */
}
#if defined (EXTENDED_GLOB)
extended_glob = global_extglob;
#endif
parsed_command = global_command;
if (EOF_Reached)
/* yyparse() has already called yyerror() */
return (&matched_pair_error);
{
shell_eof_token = ps.eof_token;
expand_aliases = ps.expand_aliases;
/* yyparse() has already called yyerror() and reset_parser() */
return (&matched_pair_error);
}
else if (r != 0)
{
/* parser_error (start_lineno, _("could not parse command substitution")); */
@@ -4135,13 +4154,26 @@ parse_comsub (qc, open, close, lenp, flags)
if (interactive_shell == 0)
jump_to_top_level (FORCE_EOF); /* This is like reader_loop() */
else
jump_to_top_level (DISCARD);
{
shell_eof_token = ps.eof_token;
expand_aliases = ps.expand_aliases;
jump_to_top_level (DISCARD);
}
}
if (current_token != shell_eof_token)
{
INTERNAL_DEBUG(("current_token (%d) != shell_eof_token (%c)", current_token, shell_eof_token));
token_to_read = current_token;
/* If we get here we can check eof_encountered and if it's 1 but the
previous EOF_Reached test didn't succeed, we can assume that the shell
is interactive and ignoreeof is set. We might want to restore the
parser state in this case. */
shell_eof_token = ps.eof_token;
expand_aliases = ps.expand_aliases;
return (&matched_pair_error);
}
@@ -4226,6 +4258,9 @@ xparse_dolparen (base, string, indp, flags)
command substitution and we want to defer it completely until then. The
old value will be restored by restore_parser_state(). */
expand_aliases = 0;
#if defined (EXTENDED_GLOB)
global_extglob = extended_glob;
#endif
token_to_read = DOLPAREN; /* let's trick the parser */
@@ -4236,7 +4271,7 @@ xparse_dolparen (base, string, indp, flags)
if (current_token == shell_eof_token)
yyclearin; /* might want to clear lookahead token unconditionally */
reset_parser ();
reset_parser (); /* resets extended_glob too */
/* 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);
BIN
View File
Binary file not shown.
+428 -402
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+434 -401
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+841 -587
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+819 -567
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.
+442 -402
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+442 -402
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+697 -522
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+935 -630
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+430 -401
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+434 -401
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+430 -395
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+435 -401
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+439 -402
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+1598 -1801
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+435 -401
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+432 -401
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+1186 -758
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+1623 -966
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+1703 -1892
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+435 -401
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+435 -401
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+1123 -728
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+438 -402
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.
+15 -16
View File
@@ -11,7 +11,7 @@ msgstr ""
"Project-Id-Version: bash 5.2-rc1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-01-11 14:50-0500\n"
"PO-Revision-Date: 2022-06-21 01:04+0800\n"
"PO-Revision-Date: 2022-07-28 01:08+0800\n"
"Last-Translator: Yi-Jyun Pan <pan93412@gmail.com>\n"
"Language-Team: Chinese (traditional) <zh-l10n@lists.linux.org.tw>\n"
"Language: zh_TW\n"
@@ -20,7 +20,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"X-Generator: Poedit 3.1\n"
"X-Generator: Poedit 3.1.1\n"
#: arrayfunc.c:66
msgid "bad array subscript"
@@ -4399,26 +4399,25 @@ msgid ""
msgstr ""
"顯示指令類型的資訊。\n"
" \n"
" 對於每一個 <名稱>,指示如果做為指令它將如何被解釋。\n"
" 對於每一個 NAME,指示用作指令名稱時的解釋方式。\n"
" \n"
" 選項:\n"
" -a\t顯示所有包含名<名稱> 的可執行檔案的位置\n"
" \t包括別名、內建和函數。僅當「-p」選項沒有使用時\n"
" -a\t顯示所有包含名為 NAME 的可執行檔案的位置\n"
" \t包括別名、內建和函數(若且唯若 “-p” 選項未使用時)。\n"
" -f\t抑制 shell 函數查詢\n"
" -P\t為每個 <名稱> 驚醒 PATH 路徑搜尋,即使它是別名、\n"
" \t內建或函數,並回傳將被執行的磁碟檔案名稱。\n"
" -p\t回傳將被執行的磁碟上檔案的名稱,或者當「type -t <名稱>」\n"
" \t回傳file時,不回傳任何值。\n"
" -t\t回傳下列詞中的任何一個「alias」、「keyword」、\n"
" \t「function」、「builtin」、「file」或者「」,如果 <名稱> 是相應的\n"
" \t一個別名、shell 保留字、shell 函數、shell 內建命令、\n"
" \t磁碟檔案或沒有找到。\n"
" -P\t為每個 NAME 強制進行 PATH 路徑搜尋,即使它是別名、\n"
" \t內建或函數,並回傳將被執行的磁碟檔案名稱。\n"
" -p\t回傳將被執行的磁碟上檔案的名稱,或者在 “type -t NAME”\n"
" \t回傳值不是 “file時,不回傳任何值。\n"
" -t\t回傳alias”、“keyword”、“function”、“builtin”、“file”\n"
" \t或 “”,對應到 NAME 是別名、shell 保留字、shell 函數、\n"
" \t內建命令、磁碟檔案或找不到檔案。\n"
" \n"
" 數:\n"
" <名稱>\t將要解析的指令。\n"
" 數:\n"
" NAME\t將要解析的指令。\n"
" \n"
" 結束狀態:\n"
" 如果所有的 <名稱> 指令都找到則回傳成功;任何找不到則失敗。"
" 若找到所有的 NAME則回傳成功;任何一個沒找到,則回傳失敗。"
#: builtins.c:1432
msgid ""