fix issue with making local variables from the temporary environment arrays; documentation updates; fix read builtin to check that the delimiter is not a newline before changing the terminal settings with a zero-length timeout

This commit is contained in:
Chet Ramey
2025-10-06 17:20:10 -04:00
parent f2f545ad7b
commit 25c6aa5b23
26 changed files with 3325 additions and 2939 deletions
+2 -2
View File
@@ -251,8 +251,8 @@ g. GLOBSORT has a new `numeric' sort specifier, which sorts all-digit strings
h. Documentation has been significantly updated.
i. `wait -n' can now return terminated process substitutions, jobs about
which the user has already been notified (like `wait' without options),
i. `wait -n' can now return terminated process substitutions and jobs about
which the user has already been notified (like `wait' without options).
j. `wait -n' removes jobs from the jobs table or list of terminated children
when in posix mode.
+2 -2
View File
@@ -251,8 +251,8 @@ g. GLOBSORT has a new `numeric' sort specifier, which sorts all-digit strings
h. Documentation has been significantly updated.
i. `wait -n' can now return terminated process substitutions, jobs about
which the user has already been notified (like `wait' without options),
i. `wait -n' can now return terminated process substitutions and jobs about
which the user has already been notified (like `wait' without options).
j. `wait -n' removes jobs from the jobs table or list of terminated children
when in posix mode.
+27
View File
@@ -11911,3 +11911,30 @@ builtins/read.def
- read_builtin: don't use i as a return value for functions and then
as an index into input_string without resetting it
Report and patch from Grisha Levit <grishalevit@gmail.com>
variables.c
- make_new_array_variable,make_new_assoc_variable: since temporary
variables can't be arrays, turn off the att_tempvar attribute if
we are making a variable and `inheriting' the temporary environment
instance
arrayfunc.c
- convert_var_to_array,convert_var_to_assoc: ditto turning off the
att_tempvar attribute
Report from Grisha Levit <grishalevit@gmail.com>
10/6
----
doc/bash.1,doc/bashref.texi,lib/readline/readline.3,lib/readline/history.3
- minor updates for bug workarounds and HTML output
- rework the BUG REPORTS section
- introduce groff macros for email addresses and URLs
examples/loadables/Makefile.in,examples/loadables/Makefile.inc.in
- use `GNU' consistently instead of `Gnu'
Patches from G. Branden Robinson <g.branden.robinson@gmail.com>
builtins/read.def
- read_builtin: check whether `delim' is not a newline before calling
check_read_input
Report from pourko2@tutamail.com
+2 -2
View File
@@ -115,8 +115,8 @@ kk. ./source has a new -p PATH option, which makes it use the PATH argument
ll. Documentation has been significantly updated.
mm. `wait -n' can now return terminated process substitutions, jobs about
which the user has already been notified (like `wait' without options),
mm. `wait -n' can now return terminated process substitutions and jobs about
which the user has already been notified (like `wait' without options).
nn. `wait -n' removes jobs from the jobs table or list of terminated children
when in posix mode.
+2 -2
View File
@@ -115,8 +115,8 @@ kk. ./source has a new -p PATH option, which makes it use the PATH argument
ll. Documentation has been significantly updated.
mm. `wait -n' can now return terminated process substitutions, jobs about
which the user has already been notified (like `wait' without options),
mm. `wait -n' can now return terminated process substitutions and jobs abou
which the user has already been notified (like `wait' without options).
nn. `wait -n' removes jobs from the jobs table or list of terminated children
when in posix mode.
+8
View File
@@ -102,6 +102,10 @@ convert_var_to_array (SHELL_VAR *var)
/* Since namerefs can't be array variables, turn off nameref attribute */
VUNSETATTR (var, att_nameref);
/* Temporary environment variables can't be array variables */
/* itrace("convert_var_to_array: turning off att_tempvar for %s", var->name);*/
VUNSETATTR (var, att_tempvar);
stupidly_hack_special_variables (var->name);
return var;
}
@@ -140,6 +144,10 @@ convert_var_to_assoc (SHELL_VAR *var)
/* Since namerefs can't be array variables, turn off nameref attribute */
VUNSETATTR (var, att_nameref);
/* Temporary environment variables can't be array variables */
/*itrace("convert_var_to_assoc: turning off att_tempvar for %s", var->name);*/
VUNSETATTR (var, att_tempvar);
stupidly_hack_special_variables (var->name);
return var;
}
+1 -1
View File
@@ -421,7 +421,7 @@ read_builtin (WORD_LIST *list)
{
int ct; /* change terminal settings */
ct = (nflag || delim) && isatty (fd);
ct = (nflag || delim != '\n') && isatty (fd);
return (check_read_input (fd, ct) ? EXECUTION_SUCCESS : EXECUTION_FAILURE);
}
+2430 -2417
View File
File diff suppressed because it is too large Load Diff
+125 -35
View File
@@ -5,7 +5,7 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
.\" Last Change: Wed Sep 24 09:35:41 EDT 2025
.\" Last Change: Mon Oct 6 09:57:24 EDT 2025
.\"
.\" For bash_builtins, strip all but "SHELL BUILTIN COMMANDS" section
.\" For rbash, strip all but "RESTRICTED SHELL" section
@@ -19,15 +19,17 @@
.\" Ensure the macros/strings are initialized to avoid groff warnings.
.ds zZ \" empty
.ds zY \" empty
.ds zX \" empty
.if \n(zZ=1 .ig zZ
.if \n(zY=1 .ig zY
.TH BASH 1 "2025 September 24" "GNU Bash 5.3"
.TH BASH 1 "2025 October 6" "GNU Bash 5.3"
.\"
.ie \n(.g \{\
.ds ' \(aq
.ds " \(dq
.ds ^ \(ha
.ds ~ \(ti
.ds : \:\" hyphenless break point (e.g., for long file names and URLs)
.\}
.el \{\
.ds ' '
@@ -35,6 +37,7 @@
.ds " ""\" two adjacent quotes and no space before this comment
.ds ^ ^
.ds ~ ~
.ds : \" empty
.\}
.
.\" File Name macro. This used to be `.PN', for Path Name,
@@ -63,6 +66,43 @@
. if n \%"\\$1"\\$2
.\}
..
.if \n(.g .ig zX
.\" The following macro definitions are from groff's "an-ext.tmac".
.
.\" Prepare link text for mail/web hyperlinks. `MT` and `UR` call this.
.de mV
. ds mU \\$1\"
..
.\" Emit hyperlink. The optional argument supplies trailing punctuation
.\" after link text. `ME` and `UE` call this.
.de mQ
. mY
. nh
<\\*(mU>\\$1
. hy \\n(mH
. rm mU
..
.\" Start URL.
.\" .UR url
.de UR
. mV \\$1
..
.\" End URL.
.\" .UE [punctuation]
.de UE
. mQ \\$1
..
.\" Start email address.
.\" .MT address
.de MT
. mV \\$1
..
.\" End email address.
.\" .ME [punctuation]
.de ME
. mQ \\$1
..
.zX
.SH NAME
bash \- GNU Bourne-Again SHell
.SH SYNOPSIS
@@ -5995,7 +6035,7 @@ and catches and handles
When \fBbash\fP receives
.SM
.BR SIGINT ,
it breaks out of any executing loops.
it breaks out of any executing loops and command lists.
In all cases, \fBbash\fP ignores
.SM
.BR SIGQUIT .
@@ -13450,14 +13490,17 @@ script.
.TP
\fIBash Reference Manual\fP, Brian Fox and Chet Ramey
.TP
\fIThe Gnu Readline Library\fP, Brian Fox and Chet Ramey
\fIThe GNU Readline Library\fP, Brian Fox and Chet Ramey
.TP
\fIThe Gnu History Library\fP, Brian Fox and Chet Ramey
\fIThe GNU History Library\fP, Brian Fox and Chet Ramey
.TP
\fIPortable Operating System Interface (POSIX) Part 2: Shell and Utilities\fP, IEEE \(em
http://pubs.opengroup.org/onlinepubs/9799919799/
POSIX.1-2024, The IEEE and The Open Group
.UR https://pubs.opengroup.org/onlinepubs/9799919799/
.UE
.TP
http://tiswww.case.edu/\*~chet/bash/POSIX \(em a description of posix mode
a description of posix mode
.UR http://tiswww.case.edu/\*~chet/bash/POSIX
.UE
.TP
\fIsh\fP(1), \fIksh\fP(1), \fIcsh\fP(1)
.TP
@@ -13491,14 +13534,14 @@ command history
Individual \fIreadline\fP initialization file
.PD
.SH AUTHORS
.MT bfox@\*:gnu\*:.org
Brian Fox, Free Software Foundation
.br
bfox@gnu.org
.ME
.PP
.MT chet\*:.ramey@\*:case\*:.edu
Chet Ramey, Case Western Reserve University
.br
chet.ramey@case.edu
.SH BUG REPORTS
.ME
.SH "BUG REPORTS"
If you find a bug in
.BR bash ,
you should report it. But first, you should
@@ -13506,8 +13549,12 @@ make sure that it really is a bug, and that it appears in the latest
version of
.BR bash .
The latest version is always available from
\fIftp://ftp.gnu.org/pub/gnu/bash/\fP and
\fIhttp://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz\fP.
.UR ftp://ftp.gnu.org/pub/gnu/bash/
.UE
and
.UR http://\*:git\*:.savannah\*:.gnu\*:.org/\*:cgit/\*:bash\*:.git/\
\*:snapshot/\*:bash\-master\*:.tar.\*:gz
.UE .
.PP
Once you have determined that a bug actually exists, use the
.I bashbug
@@ -13515,42 +13562,85 @@ command to submit a bug report.
If you have a fix, you are encouraged to mail that as well!
You may send suggestions and
.Q philosophical
bug reports to \fIbug-bash@gnu.org\fP or post them to the Usenet
bug reports to
.MT bug\-bash@\*:gnu\*:.org
.ME
or post them to the
Usenet
newsgroup
.BR gnu.bash.bug .
.BR gnu\*:.bash\*:.bug .
.PP
ALL bug reports should include:
.I All
bug reports should include:
.PP
.PD 0
.TP 20
The version number of \fBbash\fP
.TP
The hardware and operating system
.TP
The compiler used to compile
.TP
A description of the bug behavior
.TP
A short script or \c
.Q recipe " \c"
which exercises the bug
.IP \(bu 2n
the version number of
.B bash
(\c
.Q "echo $BASH_VERSION"\c
),
.IP \(bu
the host platform and operating system
(\c
.Q "uname \-a"\c
),
.IP \(bu
either
.RS 4n
.IP (a) 4n
if you or an administrator built and installed
.B bash
from source,
the name and version of the compiler used to build it,
as reported by
.BR bash 's
.QN configure
script;
or
.IP (b) 4n
if your site uses a distributor's
.B bash
package,
the version of that package
(for example,
.Q "dpkg \-i bash"
or
.Q "rpm \-qi bash"\c
),
.RE
.IP \(bu
a description of the behavior
.B bash
exhibited,
.IP \(bu
a description of the behavior you expected from
.BR bash ,
and
.IP \(bu
a short shell script or
.Q recipe
exercising the unexpected behavior.
.PD
.PP
.I bashbug
inserts the first three items automatically into the template
it provides for filing a bug report.
.PP
Comments and bug reports concerning
this manual page should be directed to
.IR chet.ramey@case.edu .
Please send comments and bug reports concerning
this manual page to
.MT bug\-bash@\*:gnu\*:.org
.ME .
.SH BUGS
It's too big and too slow.
.PP
There are some subtle differences between
.B bash
and traditional versions of
and historical versions of
.BR sh ,
mostly because of the
due mostly to
.BR bash 's
independent implementation and the evolution of the
.SM POSIX
specification.
.PP
+168 -42
View File
@@ -1,5 +1,5 @@
<!-- Creator : groff version 1.23.0 -->
<!-- CreationDate: Fri Sep 19 16:30:11 2025 -->
<!-- CreationDate: Mon Oct 6 15:30:30 2025 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
@@ -2903,7 +2903,10 @@ suffixes to ignore when performing filename completion (see
<b><small>READLINE</small></b> below). A filename whose
suffix matches one of the entries in
<b><small>FIGNORE</small></b> is excluded from the list of
matched filenames. A sample value is &ldquo;.o:~&rdquo;.</p>
matched filenames. A sample value is &ldquo;.o:~&rdquo;.
Since tilde expansion takes place after &ldquo;:&rdquo; in
assignment statements, make sure to quote assignments
appropriately to avoid it as appropriate.</p>
<p style="margin-left:9%;"><b>FUNCNEST</b></p>
@@ -4922,12 +4925,20 @@ include it as the first character in the set.</p></td></tr>
<p style="margin-left:27%; margin-top: 1em">The sorting
order of characters in range expressions, and the characters
included in the range, are determined by the current locale
and the values of the <b><small>LC_COLLATE</small></b> or
<b><small>LC_ALL</small></b> shell variables, if set. To
obtain the traditional interpretation of range expressions,
where <b>[a&minus;d]</b> is equivalent to <b>[abcd]</b>, set
the value of the <b>LC_COLLATE</b> or <b>LC_ALL</b> shell
included in the range, are determined by the collating
sequence of the current locale and the values of the
<b><small>LC_COLLATE</small></b> or
<b><small>LC_ALL</small></b> shell variables, if set.</p>
<p style="margin-left:27%; margin-top: 1em">For example, in
the C locale, <b>[a&minus;d]</b> is equivalent to
<b>[abcd]</b>. Many locales sort characters in dictionary
order, and in these locales <b>[a&minus;d]</b> is typically
not equivalent to <b>[abcd]</b>; it might be equivalent to
<b>[aBbCcDd]</b> or <b>[aAbBcCd]</b>. To obtain the
traditional interpretation of range expressions, where
<b>[a&minus;d]</b> is equivalent to <b>[abcd]</b>, set the
value of the <b>LC_COLLATE</b> or <b>LC_ALL</b> shell
variables to <b>C</b>, or enable the <b>globasciiranges</b>
shell option.</p>
@@ -6694,7 +6705,8 @@ not kill an interactive shell), and catches and handles
<b><small>SIGINT</small></b> (so that the <b>wait</b>
builtin is interruptible). When <b>bash</b> receives
<b><small>SIGINT</small></b><small>,</small> it breaks out
of any executing loops. In all cases, <b>bash</b> ignores
of any executing loops and command lists. In all cases,
<b>bash</b> ignores
<b><small>SIGQUIT</small></b><small>.</small> If job control
is in effect, <b>bash</b> ignores
<b><small>SIGTTIN</small></b><small>,
@@ -16275,21 +16287,21 @@ the script.</p>
<p style="margin-left:9%; margin-top: 1em"><i>Bash
Reference Manual</i>, Brian Fox and Chet Ramey <i><br>
The Gnu Readline Library</i>, Brian Fox and Chet Ramey
The GNU Readline Library</i>, Brian Fox and Chet Ramey
<i><br>
The Gnu History Library</i>, Brian Fox and Chet Ramey
<i><br>
Portable Operating System Interface (POSIX) Part 2: Shell
and <br>
Utilities</i>, IEEE &mdash;</p>
The GNU History Library</i>, Brian Fox and Chet Ramey <br>
POSIX.1-2024, The IEEE and The Open Group</p>
<p style="margin-left:18%;">http://pubs.opengroup.org/onlinepubs/9799919799/</p>
<p style="margin-left:18%;"><a href="https://pubs.opengroup.org/onlinepubs/9799919799/">https://pubs.opengroup.org/onlinepubs/9799919799/</a></p>
<p style="margin-left:9%;">a description of posix mode</p>
<p style="margin-left:9%;">http://tiswww.case.edu/~chet/bash/POSIX
&mdash; a description of posix mode <i><br>
sh</i>(1), <i>ksh</i>(1), <i>csh</i>(1) <i><br>
<p style="margin-left:18%;"><a href="http://tiswww.case.edu/~chet/bash/POSIX">http://tiswww.case.edu/~chet/bash/POSIX</a></p>
<p style="margin-left:9%;"><i>sh</i>(1), <i>ksh</i>(1),
<i>csh</i>(1) <i><br>
emacs</i>(1), <i>vi</i>(1) <i><br>
readline</i>(3)</p>
@@ -16339,13 +16351,11 @@ initialization file</p>
</h2>
<p style="margin-left:9%; margin-top: 1em">Brian Fox, Free
Software Foundation <br>
bfox@gnu.org</p>
<p style="margin-left:9%; margin-top: 1em">Chet Ramey, Case
Western Reserve University <br>
chet.ramey@case.edu</p>
<p style="margin-left:9%; margin-top: 1em"><a href="mailto:bfox@gnu.org">Brian
Fox, Free Software Foundation</a> <br>
<a href="mailto:chet.ramey@case.edu">Chet Ramey, Case
Western Reserve University</a></p>
<h2>BUG REPORTS
<a name="BUG REPORTS"></a>
@@ -16357,33 +16367,148 @@ bug in <b>bash</b>, you should report it. But first, you
should make sure that it really is a bug, and that it
appears in the latest version of <b>bash</b>. The latest
version is always available from
<i>ftp://ftp.gnu.org/pub/gnu/bash/</i> and
<i>http://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz</i>.</p>
<a href="ftp://ftp.gnu.org/pub/gnu/bash/">ftp://ftp.gnu.org/pub/gnu/bash/</a>
and
<a href="http://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz">http://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz</a>.</p>
<p style="margin-left:9%; margin-top: 1em">Once you have
determined that a bug actually exists, use the
<i>bashbug</i> command to submit a bug report. If you have a
fix, you are encouraged to mail that as well! You may send
suggestions and &ldquo;philosophical&rdquo; bug reports to
<i>bug-bash@gnu.org</i> or post them to the Usenet newsgroup
<b>gnu.bash.bug</b>.</p>
<a href="mailto:bug-bash@gnu.org">bug-bash@gnu.org</a> or
post them to the Usenet newsgroup <b>gnu.bash.bug</b>.</p>
<p style="margin-left:9%; margin-top: 1em">ALL bug reports
should include: <br>
The version number of <b>bash</b> <br>
The hardware and operating system <br>
The compiler used to compile <br>
A description of the bug behavior <br>
A short script or &ldquo;recipe&rdquo; which exercises the
bug</p>
<p style="margin-left:9%; margin-top: 1em"><i>All</i> bug
reports should include:</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="9%"></td>
<td width="1%">
<p>&bull;</p></td>
<td width="2%"></td>
<td width="66%">
<p>the version number of <b>bash</b> (&ldquo;echo
$BASH_VERSION&rdquo;),</p> </td>
<td width="22%">
</td></tr>
<tr valign="top" align="left">
<td width="9%"></td>
<td width="1%">
<p>&bull;</p></td>
<td width="2%"></td>
<td width="66%">
<p>the host platform and operating system (&ldquo;uname
&minus;a&rdquo;),</p> </td>
<td width="22%">
</td></tr>
<tr valign="top" align="left">
<td width="9%"></td>
<td width="1%">
<p>&bull;</p></td>
<td width="2%"></td>
<td width="66%">
<p>either</p></td>
<td width="22%">
</td></tr>
</table>
<p style="margin-left:14%; margin-top: 1em">(a)</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="9%"></td>
<td width="9%"></td>
<td width="1%"></td>
<td width="81%">
<p style="margin-top: 1em">if you or an administrator built
and installed <b>bash</b> from source, the name and version
of the compiler used to build it, as reported by
<b>bash</b>&rsquo;s &ldquo;configure&rdquo; script; or</p></td></tr>
<tr valign="top" align="left">
<td width="9%"></td>
<td width="9%">
<p>(b)</p></td>
<td width="1%"></td>
<td width="81%">
<p>if your site uses a distributor&rsquo;s <b>bash</b>
package, the version of that package (for example,
&ldquo;dpkg &minus;i bash&rdquo; or &ldquo;rpm &minus;qi
bash&rdquo;),</p> </td></tr>
<tr valign="top" align="left">
<td width="9%"></td>
<td width="9%">
<p>&bull;</p></td>
<td width="1%"></td>
<td width="81%">
</td></tr>
</table>
<p style="margin-left:12%; margin-top: 1em">a description
of the behavior <b>bash</b> exhibited,</p>
<table width="100%" border="0" rules="none" frame="void"
cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="9%"></td>
<td width="1%">
<p style="margin-top: 1em">&bull;</p></td>
<td width="2%"></td>
<td width="87%">
<p style="margin-top: 1em">a description of the behavior
you expected from <b>bash</b>, and</p></td>
<td width="1%">
</td></tr>
<tr valign="top" align="left">
<td width="9%"></td>
<td width="1%">
<p>&bull;</p></td>
<td width="2%"></td>
<td width="87%">
<p>a short shell script or &ldquo;recipe&rdquo; exercising
the unexpected behavior.</p></td>
<td width="1%">
</td></tr>
</table>
<p style="margin-left:9%; margin-top: 1em"><i>bashbug</i>
inserts the first three items automatically into the
template it provides for filing a bug report.</p>
<p style="margin-left:9%; margin-top: 1em">Comments and bug
reports concerning this manual page should be directed to
<i>chet.ramey@case.edu</i>.</p>
<p style="margin-left:9%; margin-top: 1em">Please send
comments and bug reports concerning this manual page to
<a href="mailto:bug-bash@gnu.org">bug-bash@gnu.org</a>.</p>
<h2>BUGS
<a name="BUGS"></a>
@@ -16394,8 +16519,9 @@ reports concerning this manual page should be directed to
big and too slow.</p>
<p style="margin-left:9%; margin-top: 1em">There are some
subtle differences between <b>bash</b> and traditional
versions of <b>sh</b>, mostly because of the
subtle differences between <b>bash</b> and historical
versions of <b>sh</b>, due mostly to <b>bash</b>&rsquo;s
independent implementation and the evolution of the
<small>POSIX</small> specification.</p>
<p style="margin-left:9%; margin-top: 1em">Aliases are
+176 -173
View File
@@ -1,9 +1,9 @@
This is bash.info, produced by makeinfo version 7.2 from bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 19 September 2025).
Bash shell (version 5.3, 24 September 2025).
This is Edition 5.3, last updated 19 September 2025, of The GNU Bash
This is Edition 5.3, last updated 24 September 2025, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Copyright © 1988-2025 Free Software Foundation, Inc.
@@ -26,10 +26,10 @@ Bash Features
*************
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 19 September 2025). The Bash home page is
Bash shell (version 5.3, 24 September 2025). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.3, last updated 19 September 2025, of The GNU Bash
This is Edition 5.3, last updated 24 September 2025, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Bash contains features that appear in other popular shells, and some
@@ -1897,7 +1897,7 @@ introduce indirection.
parameter expansion, command substitution, and arithmetic expansion.
When not performing substring expansion, using the forms described
below (e.g., :-), Bash tests for a parameter that is unset or null.
below (e.g., :), Bash tests for a parameter that is unset or null.
Omitting the colon results in a test only for a parameter that is unset.
Put another way, if the colon is included, the operator tests for both
PARAMETER's existence and that its value is not null; if the colon is
@@ -2010,7 +2010,7 @@ omitted, the operator tests only for existence.
characters between OFFSET and that result.
Note that a negative offset must be separated from the colon by at
least one space to avoid being confused with the :- expansion.
least one space to avoid being confused with the : expansion.
Here are some examples illustrating substring expansion on
parameters and subscripted arrays:
@@ -2630,18 +2630,19 @@ characters must be quoted if they are to be matched literally.
character in the set.
The sorting order of characters in range expressions, and the
characters included in the range, are determined by the current
locale and the values of the LC_COLLATE and LC_ALL shell
variables, if set.
characters included in the range, are determined by the collating
sequence of the current locale and the values of the LC_COLLATE
and LC_ALL shell variables, if set.
For example, in the default C locale, [a-dx-z] is equivalent to
[abcdxyz]. Many locales sort characters in dictionary order, and
in these locales [a-dx-z] is typically not equivalent to
[abcdxyz]; it might be equivalent to [aBbCcDdxYyZz], for
example. To obtain the traditional interpretation of ranges in
bracket expressions, you can force the use of the C locale by
setting the LC_COLLATE or LC_ALL environment variable to the
value C, or enable the globasciiranges shell option.
[abcdxyz]; it might be equivalent to [aBbCcDdxYyZz] or
[aAbBcCdxXyYz]. To obtain the traditional interpretation of
ranges in bracket expressions, you can force the use of the C
locale by setting the LC_COLLATE or LC_ALL environment
variables to the value C, or enable the globasciiranges shell
option.
Within a bracket expression, “character classes” can be specified
using the syntax [:CLASS:], where CLASS is one of the following
@@ -3263,9 +3264,9 @@ When Bash is interactive, in the absence of any traps, it ignores
SIGTERM (so that kill 0 does not kill an interactive shell), and
catches and handles SIGINT (so that the wait builtin is
interruptible). When Bash receives a SIGINT, it breaks out of any
executing loops. In all cases, Bash ignores SIGQUIT. If job control
is in effect (*note Job Control::), Bash ignores SIGTTIN, SIGTTOU,
and SIGTSTP.
executing loops and command lists. In all cases, Bash ignores
SIGQUIT. If job control is in effect (*note Job Control::), Bash
ignores SIGTTIN, SIGTTOU, and SIGTSTP.
The trap builtin modifies the shell's signal handling, as described
below (*note Bourne Shell Builtins::).
@@ -6000,7 +6001,9 @@ Variables::).
A colon-separated list of suffixes to ignore when performing
filename completion. A filename whose suffix matches one of the
entries in FIGNORE is excluded from the list of matched
filenames. A sample value is .o:~
filenames. A sample value is .o:~. Since tilde expansion takes
place after : in assignment statements, make sure to quote
assignments appropriately to avoid it as appropriate.
FUNCNAME
An array variable containing the names of all shell functions
@@ -13142,61 +13145,61 @@ D.3 Parameter and Variable Index
* FIGNORE: Bash Variables. (line 342)
* force-meta-prefix: Readline Init File Syntax.
(line 223)
* FUNCNAME: Bash Variables. (line 348)
* FUNCNEST: Bash Variables. (line 365)
* GLOBIGNORE: Bash Variables. (line 370)
* GLOBSORT: Bash Variables. (line 377)
* GROUPS: Bash Variables. (line 415)
* histchars: Bash Variables. (line 421)
* HISTCMD: Bash Variables. (line 437)
* HISTCONTROL: Bash Variables. (line 443)
* HISTFILE: Bash Variables. (line 461)
* HISTFILESIZE: Bash Variables. (line 467)
* HISTIGNORE: Bash Variables. (line 481)
* FUNCNAME: Bash Variables. (line 350)
* FUNCNEST: Bash Variables. (line 367)
* GLOBIGNORE: Bash Variables. (line 372)
* GLOBSORT: Bash Variables. (line 379)
* GROUPS: Bash Variables. (line 417)
* histchars: Bash Variables. (line 423)
* HISTCMD: Bash Variables. (line 439)
* HISTCONTROL: Bash Variables. (line 445)
* HISTFILE: Bash Variables. (line 463)
* HISTFILESIZE: Bash Variables. (line 469)
* HISTIGNORE: Bash Variables. (line 483)
* history-preserve-point: Readline Init File Syntax.
(line 236)
* history-size: Readline Init File Syntax.
(line 242)
* HISTSIZE: Bash Variables. (line 505)
* HISTTIMEFORMAT: Bash Variables. (line 512)
* HISTSIZE: Bash Variables. (line 507)
* HISTTIMEFORMAT: Bash Variables. (line 514)
* HOME: Bourne Shell Variables.
(line 13)
* horizontal-scroll-mode: Readline Init File Syntax.
(line 252)
* HOSTFILE: Bash Variables. (line 521)
* HOSTNAME: Bash Variables. (line 532)
* HOSTTYPE: Bash Variables. (line 535)
* HOSTFILE: Bash Variables. (line 523)
* HOSTNAME: Bash Variables. (line 534)
* HOSTTYPE: Bash Variables. (line 537)
* IFS: Bourne Shell Variables.
(line 18)
* IGNOREEOF: Bash Variables. (line 538)
* IGNOREEOF: Bash Variables. (line 540)
* input-meta: Readline Init File Syntax.
(line 260)
* INPUTRC: Bash Variables. (line 547)
* INSIDE_EMACS: Bash Variables. (line 551)
* INPUTRC: Bash Variables. (line 549)
* INSIDE_EMACS: Bash Variables. (line 553)
* isearch-terminators: Readline Init File Syntax.
(line 271)
* keymap: Readline Init File Syntax.
(line 278)
* LANG: Creating Internationalized Scripts.
(line 51)
* LANG <1>: Bash Variables. (line 557)
* LC_ALL: Bash Variables. (line 561)
* LC_COLLATE: Bash Variables. (line 565)
* LC_CTYPE: Bash Variables. (line 572)
* LANG <1>: Bash Variables. (line 559)
* LC_ALL: Bash Variables. (line 563)
* LC_COLLATE: Bash Variables. (line 567)
* LC_CTYPE: Bash Variables. (line 574)
* LC_MESSAGES: Creating Internationalized Scripts.
(line 51)
* LC_MESSAGES <1>: Bash Variables. (line 577)
* LC_NUMERIC: Bash Variables. (line 581)
* LC_TIME: Bash Variables. (line 585)
* LINENO: Bash Variables. (line 589)
* LINES: Bash Variables. (line 596)
* MACHTYPE: Bash Variables. (line 602)
* LC_MESSAGES <1>: Bash Variables. (line 579)
* LC_NUMERIC: Bash Variables. (line 583)
* LC_TIME: Bash Variables. (line 587)
* LINENO: Bash Variables. (line 591)
* LINES: Bash Variables. (line 598)
* MACHTYPE: Bash Variables. (line 604)
* MAIL: Bourne Shell Variables.
(line 24)
* MAILCHECK: Bash Variables. (line 606)
* MAILCHECK: Bash Variables. (line 608)
* MAILPATH: Bourne Shell Variables.
(line 29)
* MAPFILE: Bash Variables. (line 614)
* MAPFILE: Bash Variables. (line 616)
* mark-modified-lines: Readline Init File Syntax.
(line 308)
* mark-symlinked-directories: Readline Init File Syntax.
@@ -13207,46 +13210,46 @@ D.3 Parameter and Variable Index
(line 325)
* meta-flag: Readline Init File Syntax.
(line 260)
* OLDPWD: Bash Variables. (line 618)
* OLDPWD: Bash Variables. (line 620)
* OPTARG: Bourne Shell Variables.
(line 36)
* OPTERR: Bash Variables. (line 621)
* OPTERR: Bash Variables. (line 623)
* OPTIND: Bourne Shell Variables.
(line 40)
* OSTYPE: Bash Variables. (line 626)
* OSTYPE: Bash Variables. (line 628)
* output-meta: Readline Init File Syntax.
(line 330)
* page-completions: Readline Init File Syntax.
(line 339)
* PATH: Bourne Shell Variables.
(line 44)
* PIPESTATUS: Bash Variables. (line 629)
* POSIXLY_CORRECT: Bash Variables. (line 639)
* PPID: Bash Variables. (line 649)
* PROMPT_COMMAND: Bash Variables. (line 653)
* PROMPT_DIRTRIM: Bash Variables. (line 659)
* PS0: Bash Variables. (line 665)
* PIPESTATUS: Bash Variables. (line 631)
* POSIXLY_CORRECT: Bash Variables. (line 641)
* PPID: Bash Variables. (line 651)
* PROMPT_COMMAND: Bash Variables. (line 655)
* PROMPT_DIRTRIM: Bash Variables. (line 661)
* PS0: Bash Variables. (line 667)
* PS1: Bourne Shell Variables.
(line 53)
* PS2: Bourne Shell Variables.
(line 58)
* PS3: Bash Variables. (line 670)
* PS4: Bash Variables. (line 675)
* PWD: Bash Variables. (line 683)
* RANDOM: Bash Variables. (line 686)
* READLINE_ARGUMENT: Bash Variables. (line 694)
* READLINE_LINE: Bash Variables. (line 698)
* READLINE_MARK: Bash Variables. (line 702)
* READLINE_POINT: Bash Variables. (line 708)
* REPLY: Bash Variables. (line 712)
* PS3: Bash Variables. (line 672)
* PS4: Bash Variables. (line 677)
* PWD: Bash Variables. (line 685)
* RANDOM: Bash Variables. (line 688)
* READLINE_ARGUMENT: Bash Variables. (line 696)
* READLINE_LINE: Bash Variables. (line 700)
* READLINE_MARK: Bash Variables. (line 704)
* READLINE_POINT: Bash Variables. (line 710)
* REPLY: Bash Variables. (line 714)
* revert-all-at-newline: Readline Init File Syntax.
(line 352)
* search-ignore-case: Readline Init File Syntax.
(line 359)
* SECONDS: Bash Variables. (line 716)
* SHELL: Bash Variables. (line 726)
* SHELLOPTS: Bash Variables. (line 731)
* SHLVL: Bash Variables. (line 741)
* SECONDS: Bash Variables. (line 718)
* SHELL: Bash Variables. (line 728)
* SHELLOPTS: Bash Variables. (line 733)
* SHLVL: Bash Variables. (line 743)
* show-all-if-ambiguous: Readline Init File Syntax.
(line 364)
* show-all-if-unmodified: Readline Init File Syntax.
@@ -13255,15 +13258,15 @@ D.3 Parameter and Variable Index
(line 379)
* skip-completed-text: Readline Init File Syntax.
(line 385)
* SRANDOM: Bash Variables. (line 746)
* SRANDOM: Bash Variables. (line 748)
* TEXTDOMAIN: Creating Internationalized Scripts.
(line 51)
* TEXTDOMAINDIR: Creating Internationalized Scripts.
(line 51)
* TIMEFORMAT: Bash Variables. (line 755)
* TMOUT: Bash Variables. (line 794)
* TMPDIR: Bash Variables. (line 806)
* UID: Bash Variables. (line 810)
* TIMEFORMAT: Bash Variables. (line 757)
* TMOUT: Bash Variables. (line 796)
* TMPDIR: Bash Variables. (line 808)
* UID: Bash Variables. (line 812)
* vi-cmd-mode-string: Readline Init File Syntax.
(line 398)
* vi-ins-mode-string: Readline Init File Syntax.
@@ -13692,103 +13695,103 @@ Node: Shell Expansions74611
Node: Brace Expansion76800
Node: Tilde Expansion80136
Node: Shell Parameter Expansion83091
Node: Command Substitution103734
Node: Arithmetic Expansion107263
Node: Process Substitution108439
Node: Word Splitting109547
Node: Filename Expansion111991
Node: Pattern Matching115215
Node: Quote Removal120938
Node: Redirections121242
Node: Executing Commands131498
Node: Simple Command Expansion132165
Node: Command Search and Execution134273
Node: Command Execution Environment136717
Node: Environment140165
Node: Exit Status142068
Node: Signals144127
Node: Shell Scripts149057
Node: Shell Builtin Commands152355
Node: Bourne Shell Builtins154696
Node: Bash Builtins181415
Node: Modifying Shell Behavior218339
Node: The Set Builtin218681
Node: The Shopt Builtin230675
Node: Special Builtins247728
Node: Shell Variables248717
Node: Bourne Shell Variables249151
Node: Bash Variables251659
Node: Bash Features290784
Node: Invoking Bash291798
Node: Bash Startup Files298382
Node: Interactive Shells303624
Node: What is an Interactive Shell?304032
Node: Is this Shell Interactive?304694
Node: Interactive Shell Behavior305518
Node: Bash Conditional Expressions309279
Node: Shell Arithmetic314696
Node: Aliases318023
Node: Arrays321157
Node: The Directory Stack328745
Node: Directory Stack Builtins329542
Node: Controlling the Prompt333987
Node: The Restricted Shell336872
Node: Bash POSIX Mode339754
Node: Shell Compatibility Mode358701
Node: Job Control367708
Node: Job Control Basics368165
Node: Job Control Builtins374533
Node: Job Control Variables381321
Node: Command Line Editing382552
Node: Introduction and Notation384255
Node: Readline Interaction386607
Node: Readline Bare Essentials387795
Node: Readline Movement Commands389603
Node: Readline Killing Commands390599
Node: Readline Arguments392622
Node: Searching393712
Node: Readline Init File395955
Node: Readline Init File Syntax397258
Node: Conditional Init Constructs424209
Node: Sample Init File428594
Node: Bindable Readline Commands431714
Node: Commands For Moving433252
Node: Commands For History435716
Node: Commands For Text441107
Node: Commands For Killing445232
Node: Numeric Arguments448020
Node: Commands For Completion449172
Node: Keyboard Macros454868
Node: Miscellaneous Commands455569
Node: Readline vi Mode462136
Node: Programmable Completion463113
Node: Programmable Completion Builtins472849
Node: A Programmable Completion Example484586
Node: Using History Interactively489931
Node: Bash History Facilities490612
Node: Bash History Builtins494347
Node: History Interaction500818
Node: Event Designators505768
Node: Word Designators507346
Node: Modifiers509738
Node: Installing Bash511675
Node: Basic Installation512791
Node: Compilers and Options516667
Node: Compiling For Multiple Architectures517417
Node: Installation Names519170
Node: Specifying the System Type521404
Node: Sharing Defaults522150
Node: Operation Controls522864
Node: Optional Features523883
Node: Reporting Bugs536606
Node: Major Differences From The Bourne Shell537963
Node: GNU Free Documentation License559390
Node: Indexes584567
Node: Builtin Index585018
Node: Reserved Word Index592116
Node: Variable Index594561
Node: Function Index611974
Node: Concept Index625969
Node: Command Substitution103738
Node: Arithmetic Expansion107267
Node: Process Substitution108443
Node: Word Splitting109551
Node: Filename Expansion111995
Node: Pattern Matching115219
Node: Quote Removal120985
Node: Redirections121289
Node: Executing Commands131545
Node: Simple Command Expansion132212
Node: Command Search and Execution134320
Node: Command Execution Environment136764
Node: Environment140212
Node: Exit Status142115
Node: Signals144174
Node: Shell Scripts149122
Node: Shell Builtin Commands152420
Node: Bourne Shell Builtins154761
Node: Bash Builtins181480
Node: Modifying Shell Behavior218404
Node: The Set Builtin218746
Node: The Shopt Builtin230740
Node: Special Builtins247793
Node: Shell Variables248782
Node: Bourne Shell Variables249216
Node: Bash Variables251724
Node: Bash Features291008
Node: Invoking Bash292022
Node: Bash Startup Files298606
Node: Interactive Shells303848
Node: What is an Interactive Shell?304256
Node: Is this Shell Interactive?304918
Node: Interactive Shell Behavior305742
Node: Bash Conditional Expressions309503
Node: Shell Arithmetic314920
Node: Aliases318247
Node: Arrays321381
Node: The Directory Stack328969
Node: Directory Stack Builtins329766
Node: Controlling the Prompt334211
Node: The Restricted Shell337096
Node: Bash POSIX Mode339978
Node: Shell Compatibility Mode358925
Node: Job Control367932
Node: Job Control Basics368389
Node: Job Control Builtins374757
Node: Job Control Variables381545
Node: Command Line Editing382776
Node: Introduction and Notation384479
Node: Readline Interaction386831
Node: Readline Bare Essentials388019
Node: Readline Movement Commands389827
Node: Readline Killing Commands390823
Node: Readline Arguments392846
Node: Searching393936
Node: Readline Init File396179
Node: Readline Init File Syntax397482
Node: Conditional Init Constructs424433
Node: Sample Init File428818
Node: Bindable Readline Commands431938
Node: Commands For Moving433476
Node: Commands For History435940
Node: Commands For Text441331
Node: Commands For Killing445456
Node: Numeric Arguments448244
Node: Commands For Completion449396
Node: Keyboard Macros455092
Node: Miscellaneous Commands455793
Node: Readline vi Mode462360
Node: Programmable Completion463337
Node: Programmable Completion Builtins473073
Node: A Programmable Completion Example484810
Node: Using History Interactively490155
Node: Bash History Facilities490836
Node: Bash History Builtins494571
Node: History Interaction501042
Node: Event Designators505992
Node: Word Designators507570
Node: Modifiers509962
Node: Installing Bash511899
Node: Basic Installation513015
Node: Compilers and Options516891
Node: Compiling For Multiple Architectures517641
Node: Installation Names519394
Node: Specifying the System Type521628
Node: Sharing Defaults522374
Node: Operation Controls523088
Node: Optional Features524107
Node: Reporting Bugs536830
Node: Major Differences From The Bourne Shell538187
Node: GNU Free Documentation License559614
Node: Indexes584791
Node: Builtin Index585242
Node: Reserved Word Index592340
Node: Variable Index594785
Node: Function Index612198
Node: Concept Index626193

End Tag Table
BIN
View File
Binary file not shown.
+31 -17
View File
@@ -4,9 +4,9 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- This text is a brief description of the features that are present in
the Bash shell (version 5.3, 19 September 2025).
the Bash shell (version 5.3, 24 September 2025).
This is Edition 5.3, last updated 19 September 2025,
This is Edition 5.3, last updated 24 September 2025,
of The GNU Bash Reference Manual,
for Bash, Version 5.3.
@@ -77,10 +77,10 @@ Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previou
<h1 class="top" id="Bash-Features-1"><span>Bash Features<a class="copiable-link" href="#Bash-Features-1"> &para;</a></span></h1>
<p>This text is a brief description of the features that are present in
the Bash shell (version 5.3, 19 September 2025).
the Bash shell (version 5.3, 24 September 2025).
The Bash home page is <a class="url" href="http://www.gnu.org/software/bash/">http://www.gnu.org/software/bash/</a>.
</p>
<p>This is Edition 5.3, last updated 19 September 2025,
<p>This is Edition 5.3, last updated 24 September 2025,
of <cite class="cite">The GNU Bash Reference Manual</cite>,
for <code class="code">Bash</code>, Version 5.3.
</p>
@@ -2705,7 +2705,7 @@ introduce indirection.
parameter expansion, command substitution, and arithmetic expansion.
</p>
<p>When not performing substring expansion, using the forms described
below (e.g., &lsquo;<samp class="samp">:-</samp>&rsquo;), Bash tests for a parameter that is unset or null.
below (e.g., &lsquo;<samp class="samp">:&minus;</samp>&rsquo;), Bash tests for a parameter that is unset or null.
Omitting the colon results in a test only for a parameter that is unset.
Put another way, if the colon is included,
the operator tests for both <var class="var">parameter</var>&rsquo;s existence and that its value
@@ -2846,7 +2846,7 @@ a number of characters, and the expansion is the characters between
<var class="var">offset</var> and that result.
</p>
<p>Note that a negative offset must be separated from the colon by at least
one space to avoid being confused with the &lsquo;<samp class="samp">:-</samp>&rsquo; expansion.
one space to avoid being confused with the &lsquo;<samp class="samp">:&minus;</samp>&rsquo; expansion.
</p>
<p>Here are some examples illustrating substring expansion on parameters and
subscripted arrays:
@@ -3633,18 +3633,26 @@ character in the set.
</p>
<p>The sorting order of characters in range expressions,
and the characters included in the range,
are determined by the current locale and the values of the
are determined by the collating sequence of the
current locale and the values of the
<code class="env">LC_COLLATE</code> and <code class="env">LC_ALL</code> shell variables, if set.
</p>
<p>For example, in the default C locale, &lsquo;<samp class="samp">[a-dx-z]</samp>&rsquo; is equivalent to
<p>For example, in the default C locale,
&lsquo;<samp class="samp">[a-dx-z]</samp>&rsquo;
is equivalent to
&lsquo;<samp class="samp">[abcdxyz]</samp>&rsquo;.
Many locales sort characters in dictionary order, and in these locales
&lsquo;<samp class="samp">[a-dx-z]</samp>&rsquo; is typically not equivalent to &lsquo;<samp class="samp">[abcdxyz]</samp>&rsquo;;
it might be equivalent to &lsquo;<samp class="samp">[aBbCcDdxYyZz]</samp>&rsquo;, for example.
To obtain
the traditional interpretation of ranges in bracket expressions, you can
force the use of the C locale by setting the <code class="env">LC_COLLATE</code> or
<code class="env">LC_ALL</code> environment variable to the value &lsquo;<samp class="samp">C</samp>&rsquo;, or enable the
&lsquo;<samp class="samp">[a-dx-z]</samp>&rsquo;
is typically not equivalent to
&lsquo;<samp class="samp">[abcdxyz]</samp>&rsquo;;
it might be equivalent to
&lsquo;<samp class="samp">[aBbCcDdxYyZz]</samp>&rsquo;
or
&lsquo;<samp class="samp">[aAbBcCdxXyYz]</samp>&rsquo;.
To obtain the traditional interpretation of ranges in bracket expressions,
you can force the use of the C locale by setting the
<code class="env">LC_COLLATE</code> or <code class="env">LC_ALL</code>
environment variables to the value &lsquo;<samp class="samp">C</samp>&rsquo;, or enable the
<code class="code">globasciiranges</code> shell option.
</p>
<p>Within a bracket expression, <em class="dfn">character classes</em> can be specified
@@ -4466,7 +4474,8 @@ it ignores <code class="code">SIGTERM</code>
(so that &lsquo;<samp class="samp">kill 0</samp>&rsquo; does not kill an interactive shell),
and catches and handles <code class="code">SIGINT</code>
(so that the <code class="code">wait</code> builtin is interruptible).
When Bash receives a <code class="code">SIGINT</code>, it breaks out of any executing loops.
When Bash receives a <code class="code">SIGINT</code>,
it breaks out of any executing loops and command lists.
In all cases, Bash ignores <code class="code">SIGQUIT</code>.
If job control is in effect (see <a class="pxref" href="#Job-Control">Job Control</a>), Bash
ignores <code class="code">SIGTTIN</code>, <code class="code">SIGTTOU</code>, and <code class="code">SIGTSTP</code>.
@@ -7957,8 +7966,13 @@ option.
filename completion.
A filename whose suffix matches one of the entries in
<code class="env">FIGNORE</code>
is excluded from the list of matched filenames. A sample
value is &lsquo;<samp class="samp">.o:~</samp>&rsquo;
is excluded from the list of matched filenames.
A sample value is
&lsquo;<samp class="samp">.o:~</samp>&rsquo;.
Since tilde expansion takes place after
&lsquo;<samp class="samp">:</samp>&rsquo;
in assignment statements,
make sure to quote assignments appropriately to avoid it as appropriate.
</p>
</dd>
<dt><a id="index-FUNCNAME"></a><span><code class="code">FUNCNAME</code><a class="copiable-link" href="#index-FUNCNAME"> &para;</a></span></dt>
+176 -173
View File
@@ -2,9 +2,9 @@ This is bashref.info, produced by makeinfo version 7.2 from
bashref.texi.
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 19 September 2025).
Bash shell (version 5.3, 24 September 2025).
This is Edition 5.3, last updated 19 September 2025, of The GNU Bash
This is Edition 5.3, last updated 24 September 2025, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Copyright © 1988-2025 Free Software Foundation, Inc.
@@ -27,10 +27,10 @@ Bash Features
*************
This text is a brief description of the features that are present in the
Bash shell (version 5.3, 19 September 2025). The Bash home page is
Bash shell (version 5.3, 24 September 2025). The Bash home page is
<http://www.gnu.org/software/bash/>.
This is Edition 5.3, last updated 19 September 2025, of The GNU Bash
This is Edition 5.3, last updated 24 September 2025, of The GNU Bash
Reference Manual, for Bash, Version 5.3.
Bash contains features that appear in other popular shells, and some
@@ -1898,7 +1898,7 @@ introduce indirection.
parameter expansion, command substitution, and arithmetic expansion.
When not performing substring expansion, using the forms described
below (e.g., :-), Bash tests for a parameter that is unset or null.
below (e.g., :), Bash tests for a parameter that is unset or null.
Omitting the colon results in a test only for a parameter that is unset.
Put another way, if the colon is included, the operator tests for both
PARAMETER's existence and that its value is not null; if the colon is
@@ -2011,7 +2011,7 @@ omitted, the operator tests only for existence.
characters between OFFSET and that result.
Note that a negative offset must be separated from the colon by at
least one space to avoid being confused with the :- expansion.
least one space to avoid being confused with the : expansion.
Here are some examples illustrating substring expansion on
parameters and subscripted arrays:
@@ -2631,18 +2631,19 @@ characters must be quoted if they are to be matched literally.
character in the set.
The sorting order of characters in range expressions, and the
characters included in the range, are determined by the current
locale and the values of the LC_COLLATE and LC_ALL shell
variables, if set.
characters included in the range, are determined by the collating
sequence of the current locale and the values of the LC_COLLATE
and LC_ALL shell variables, if set.
For example, in the default C locale, [a-dx-z] is equivalent to
[abcdxyz]. Many locales sort characters in dictionary order, and
in these locales [a-dx-z] is typically not equivalent to
[abcdxyz]; it might be equivalent to [aBbCcDdxYyZz], for
example. To obtain the traditional interpretation of ranges in
bracket expressions, you can force the use of the C locale by
setting the LC_COLLATE or LC_ALL environment variable to the
value C, or enable the globasciiranges shell option.
[abcdxyz]; it might be equivalent to [aBbCcDdxYyZz] or
[aAbBcCdxXyYz]. To obtain the traditional interpretation of
ranges in bracket expressions, you can force the use of the C
locale by setting the LC_COLLATE or LC_ALL environment
variables to the value C, or enable the globasciiranges shell
option.
Within a bracket expression, “character classes” can be specified
using the syntax [:CLASS:], where CLASS is one of the following
@@ -3264,9 +3265,9 @@ When Bash is interactive, in the absence of any traps, it ignores
SIGTERM (so that kill 0 does not kill an interactive shell), and
catches and handles SIGINT (so that the wait builtin is
interruptible). When Bash receives a SIGINT, it breaks out of any
executing loops. In all cases, Bash ignores SIGQUIT. If job control
is in effect (*note Job Control::), Bash ignores SIGTTIN, SIGTTOU,
and SIGTSTP.
executing loops and command lists. In all cases, Bash ignores
SIGQUIT. If job control is in effect (*note Job Control::), Bash
ignores SIGTTIN, SIGTTOU, and SIGTSTP.
The trap builtin modifies the shell's signal handling, as described
below (*note Bourne Shell Builtins::).
@@ -6001,7 +6002,9 @@ Variables::).
A colon-separated list of suffixes to ignore when performing
filename completion. A filename whose suffix matches one of the
entries in FIGNORE is excluded from the list of matched
filenames. A sample value is .o:~
filenames. A sample value is .o:~. Since tilde expansion takes
place after : in assignment statements, make sure to quote
assignments appropriately to avoid it as appropriate.
FUNCNAME
An array variable containing the names of all shell functions
@@ -13143,61 +13146,61 @@ D.3 Parameter and Variable Index
* FIGNORE: Bash Variables. (line 342)
* force-meta-prefix: Readline Init File Syntax.
(line 223)
* FUNCNAME: Bash Variables. (line 348)
* FUNCNEST: Bash Variables. (line 365)
* GLOBIGNORE: Bash Variables. (line 370)
* GLOBSORT: Bash Variables. (line 377)
* GROUPS: Bash Variables. (line 415)
* histchars: Bash Variables. (line 421)
* HISTCMD: Bash Variables. (line 437)
* HISTCONTROL: Bash Variables. (line 443)
* HISTFILE: Bash Variables. (line 461)
* HISTFILESIZE: Bash Variables. (line 467)
* HISTIGNORE: Bash Variables. (line 481)
* FUNCNAME: Bash Variables. (line 350)
* FUNCNEST: Bash Variables. (line 367)
* GLOBIGNORE: Bash Variables. (line 372)
* GLOBSORT: Bash Variables. (line 379)
* GROUPS: Bash Variables. (line 417)
* histchars: Bash Variables. (line 423)
* HISTCMD: Bash Variables. (line 439)
* HISTCONTROL: Bash Variables. (line 445)
* HISTFILE: Bash Variables. (line 463)
* HISTFILESIZE: Bash Variables. (line 469)
* HISTIGNORE: Bash Variables. (line 483)
* history-preserve-point: Readline Init File Syntax.
(line 236)
* history-size: Readline Init File Syntax.
(line 242)
* HISTSIZE: Bash Variables. (line 505)
* HISTTIMEFORMAT: Bash Variables. (line 512)
* HISTSIZE: Bash Variables. (line 507)
* HISTTIMEFORMAT: Bash Variables. (line 514)
* HOME: Bourne Shell Variables.
(line 13)
* horizontal-scroll-mode: Readline Init File Syntax.
(line 252)
* HOSTFILE: Bash Variables. (line 521)
* HOSTNAME: Bash Variables. (line 532)
* HOSTTYPE: Bash Variables. (line 535)
* HOSTFILE: Bash Variables. (line 523)
* HOSTNAME: Bash Variables. (line 534)
* HOSTTYPE: Bash Variables. (line 537)
* IFS: Bourne Shell Variables.
(line 18)
* IGNOREEOF: Bash Variables. (line 538)
* IGNOREEOF: Bash Variables. (line 540)
* input-meta: Readline Init File Syntax.
(line 260)
* INPUTRC: Bash Variables. (line 547)
* INSIDE_EMACS: Bash Variables. (line 551)
* INPUTRC: Bash Variables. (line 549)
* INSIDE_EMACS: Bash Variables. (line 553)
* isearch-terminators: Readline Init File Syntax.
(line 271)
* keymap: Readline Init File Syntax.
(line 278)
* LANG: Creating Internationalized Scripts.
(line 51)
* LANG <1>: Bash Variables. (line 557)
* LC_ALL: Bash Variables. (line 561)
* LC_COLLATE: Bash Variables. (line 565)
* LC_CTYPE: Bash Variables. (line 572)
* LANG <1>: Bash Variables. (line 559)
* LC_ALL: Bash Variables. (line 563)
* LC_COLLATE: Bash Variables. (line 567)
* LC_CTYPE: Bash Variables. (line 574)
* LC_MESSAGES: Creating Internationalized Scripts.
(line 51)
* LC_MESSAGES <1>: Bash Variables. (line 577)
* LC_NUMERIC: Bash Variables. (line 581)
* LC_TIME: Bash Variables. (line 585)
* LINENO: Bash Variables. (line 589)
* LINES: Bash Variables. (line 596)
* MACHTYPE: Bash Variables. (line 602)
* LC_MESSAGES <1>: Bash Variables. (line 579)
* LC_NUMERIC: Bash Variables. (line 583)
* LC_TIME: Bash Variables. (line 587)
* LINENO: Bash Variables. (line 591)
* LINES: Bash Variables. (line 598)
* MACHTYPE: Bash Variables. (line 604)
* MAIL: Bourne Shell Variables.
(line 24)
* MAILCHECK: Bash Variables. (line 606)
* MAILCHECK: Bash Variables. (line 608)
* MAILPATH: Bourne Shell Variables.
(line 29)
* MAPFILE: Bash Variables. (line 614)
* MAPFILE: Bash Variables. (line 616)
* mark-modified-lines: Readline Init File Syntax.
(line 308)
* mark-symlinked-directories: Readline Init File Syntax.
@@ -13208,46 +13211,46 @@ D.3 Parameter and Variable Index
(line 325)
* meta-flag: Readline Init File Syntax.
(line 260)
* OLDPWD: Bash Variables. (line 618)
* OLDPWD: Bash Variables. (line 620)
* OPTARG: Bourne Shell Variables.
(line 36)
* OPTERR: Bash Variables. (line 621)
* OPTERR: Bash Variables. (line 623)
* OPTIND: Bourne Shell Variables.
(line 40)
* OSTYPE: Bash Variables. (line 626)
* OSTYPE: Bash Variables. (line 628)
* output-meta: Readline Init File Syntax.
(line 330)
* page-completions: Readline Init File Syntax.
(line 339)
* PATH: Bourne Shell Variables.
(line 44)
* PIPESTATUS: Bash Variables. (line 629)
* POSIXLY_CORRECT: Bash Variables. (line 639)
* PPID: Bash Variables. (line 649)
* PROMPT_COMMAND: Bash Variables. (line 653)
* PROMPT_DIRTRIM: Bash Variables. (line 659)
* PS0: Bash Variables. (line 665)
* PIPESTATUS: Bash Variables. (line 631)
* POSIXLY_CORRECT: Bash Variables. (line 641)
* PPID: Bash Variables. (line 651)
* PROMPT_COMMAND: Bash Variables. (line 655)
* PROMPT_DIRTRIM: Bash Variables. (line 661)
* PS0: Bash Variables. (line 667)
* PS1: Bourne Shell Variables.
(line 53)
* PS2: Bourne Shell Variables.
(line 58)
* PS3: Bash Variables. (line 670)
* PS4: Bash Variables. (line 675)
* PWD: Bash Variables. (line 683)
* RANDOM: Bash Variables. (line 686)
* READLINE_ARGUMENT: Bash Variables. (line 694)
* READLINE_LINE: Bash Variables. (line 698)
* READLINE_MARK: Bash Variables. (line 702)
* READLINE_POINT: Bash Variables. (line 708)
* REPLY: Bash Variables. (line 712)
* PS3: Bash Variables. (line 672)
* PS4: Bash Variables. (line 677)
* PWD: Bash Variables. (line 685)
* RANDOM: Bash Variables. (line 688)
* READLINE_ARGUMENT: Bash Variables. (line 696)
* READLINE_LINE: Bash Variables. (line 700)
* READLINE_MARK: Bash Variables. (line 704)
* READLINE_POINT: Bash Variables. (line 710)
* REPLY: Bash Variables. (line 714)
* revert-all-at-newline: Readline Init File Syntax.
(line 352)
* search-ignore-case: Readline Init File Syntax.
(line 359)
* SECONDS: Bash Variables. (line 716)
* SHELL: Bash Variables. (line 726)
* SHELLOPTS: Bash Variables. (line 731)
* SHLVL: Bash Variables. (line 741)
* SECONDS: Bash Variables. (line 718)
* SHELL: Bash Variables. (line 728)
* SHELLOPTS: Bash Variables. (line 733)
* SHLVL: Bash Variables. (line 743)
* show-all-if-ambiguous: Readline Init File Syntax.
(line 364)
* show-all-if-unmodified: Readline Init File Syntax.
@@ -13256,15 +13259,15 @@ D.3 Parameter and Variable Index
(line 379)
* skip-completed-text: Readline Init File Syntax.
(line 385)
* SRANDOM: Bash Variables. (line 746)
* SRANDOM: Bash Variables. (line 748)
* TEXTDOMAIN: Creating Internationalized Scripts.
(line 51)
* TEXTDOMAINDIR: Creating Internationalized Scripts.
(line 51)
* TIMEFORMAT: Bash Variables. (line 755)
* TMOUT: Bash Variables. (line 794)
* TMPDIR: Bash Variables. (line 806)
* UID: Bash Variables. (line 810)
* TIMEFORMAT: Bash Variables. (line 757)
* TMOUT: Bash Variables. (line 796)
* TMPDIR: Bash Variables. (line 808)
* UID: Bash Variables. (line 812)
* vi-cmd-mode-string: Readline Init File Syntax.
(line 398)
* vi-ins-mode-string: Readline Init File Syntax.
@@ -13693,103 +13696,103 @@ Node: Shell Expansions74707
Node: Brace Expansion76899
Node: Tilde Expansion80238
Node: Shell Parameter Expansion83196
Node: Command Substitution103842
Node: Arithmetic Expansion107374
Node: Process Substitution108553
Node: Word Splitting109664
Node: Filename Expansion112111
Node: Pattern Matching115338
Node: Quote Removal121064
Node: Redirections121371
Node: Executing Commands131630
Node: Simple Command Expansion132300
Node: Command Search and Execution134411
Node: Command Execution Environment136858
Node: Environment140309
Node: Exit Status142215
Node: Signals144277
Node: Shell Scripts149210
Node: Shell Builtin Commands152511
Node: Bourne Shell Builtins154855
Node: Bash Builtins181577
Node: Modifying Shell Behavior218504
Node: The Set Builtin218849
Node: The Shopt Builtin230846
Node: Special Builtins247902
Node: Shell Variables248894
Node: Bourne Shell Variables249331
Node: Bash Variables251842
Node: Bash Features290970
Node: Invoking Bash291987
Node: Bash Startup Files298574
Node: Interactive Shells303819
Node: What is an Interactive Shell?304230
Node: Is this Shell Interactive?304895
Node: Interactive Shell Behavior305722
Node: Bash Conditional Expressions309486
Node: Shell Arithmetic314906
Node: Aliases318236
Node: Arrays321373
Node: The Directory Stack328964
Node: Directory Stack Builtins329764
Node: Controlling the Prompt334212
Node: The Restricted Shell337100
Node: Bash POSIX Mode339985
Node: Shell Compatibility Mode358935
Node: Job Control367945
Node: Job Control Basics368405
Node: Job Control Builtins374776
Node: Job Control Variables381567
Node: Command Line Editing382801
Node: Introduction and Notation384507
Node: Readline Interaction386862
Node: Readline Bare Essentials388053
Node: Readline Movement Commands389864
Node: Readline Killing Commands390863
Node: Readline Arguments392889
Node: Searching393982
Node: Readline Init File396228
Node: Readline Init File Syntax397534
Node: Conditional Init Constructs424488
Node: Sample Init File428876
Node: Bindable Readline Commands431999
Node: Commands For Moving433540
Node: Commands For History436007
Node: Commands For Text441401
Node: Commands For Killing445529
Node: Numeric Arguments448320
Node: Commands For Completion449475
Node: Keyboard Macros455174
Node: Miscellaneous Commands455878
Node: Readline vi Mode462448
Node: Programmable Completion463428
Node: Programmable Completion Builtins473167
Node: A Programmable Completion Example484907
Node: Using History Interactively490255
Node: Bash History Facilities490939
Node: Bash History Builtins494677
Node: History Interaction501151
Node: Event Designators506104
Node: Word Designators507685
Node: Modifiers510080
Node: Installing Bash512020
Node: Basic Installation513139
Node: Compilers and Options517018
Node: Compiling For Multiple Architectures517771
Node: Installation Names519527
Node: Specifying the System Type521764
Node: Sharing Defaults522513
Node: Operation Controls523230
Node: Optional Features524252
Node: Reporting Bugs536978
Node: Major Differences From The Bourne Shell538338
Node: GNU Free Documentation License559768
Node: Indexes584948
Node: Builtin Index585402
Node: Reserved Word Index592503
Node: Variable Index594951
Node: Function Index612367
Node: Concept Index626365
Node: Command Substitution103846
Node: Arithmetic Expansion107378
Node: Process Substitution108557
Node: Word Splitting109668
Node: Filename Expansion112115
Node: Pattern Matching115342
Node: Quote Removal121111
Node: Redirections121418
Node: Executing Commands131677
Node: Simple Command Expansion132347
Node: Command Search and Execution134458
Node: Command Execution Environment136905
Node: Environment140356
Node: Exit Status142262
Node: Signals144324
Node: Shell Scripts149275
Node: Shell Builtin Commands152576
Node: Bourne Shell Builtins154920
Node: Bash Builtins181642
Node: Modifying Shell Behavior218569
Node: The Set Builtin218914
Node: The Shopt Builtin230911
Node: Special Builtins247967
Node: Shell Variables248959
Node: Bourne Shell Variables249396
Node: Bash Variables251907
Node: Bash Features291194
Node: Invoking Bash292211
Node: Bash Startup Files298798
Node: Interactive Shells304043
Node: What is an Interactive Shell?304454
Node: Is this Shell Interactive?305119
Node: Interactive Shell Behavior305946
Node: Bash Conditional Expressions309710
Node: Shell Arithmetic315130
Node: Aliases318460
Node: Arrays321597
Node: The Directory Stack329188
Node: Directory Stack Builtins329988
Node: Controlling the Prompt334436
Node: The Restricted Shell337324
Node: Bash POSIX Mode340209
Node: Shell Compatibility Mode359159
Node: Job Control368169
Node: Job Control Basics368629
Node: Job Control Builtins375000
Node: Job Control Variables381791
Node: Command Line Editing383025
Node: Introduction and Notation384731
Node: Readline Interaction387086
Node: Readline Bare Essentials388277
Node: Readline Movement Commands390088
Node: Readline Killing Commands391087
Node: Readline Arguments393113
Node: Searching394206
Node: Readline Init File396452
Node: Readline Init File Syntax397758
Node: Conditional Init Constructs424712
Node: Sample Init File429100
Node: Bindable Readline Commands432223
Node: Commands For Moving433764
Node: Commands For History436231
Node: Commands For Text441625
Node: Commands For Killing445753
Node: Numeric Arguments448544
Node: Commands For Completion449699
Node: Keyboard Macros455398
Node: Miscellaneous Commands456102
Node: Readline vi Mode462672
Node: Programmable Completion463652
Node: Programmable Completion Builtins473391
Node: A Programmable Completion Example485131
Node: Using History Interactively490479
Node: Bash History Facilities491163
Node: Bash History Builtins494901
Node: History Interaction501375
Node: Event Designators506328
Node: Word Designators507909
Node: Modifiers510304
Node: Installing Bash512244
Node: Basic Installation513363
Node: Compilers and Options517242
Node: Compiling For Multiple Architectures517995
Node: Installation Names519751
Node: Specifying the System Type521988
Node: Sharing Defaults522737
Node: Operation Controls523454
Node: Optional Features524476
Node: Reporting Bugs537202
Node: Major Differences From The Bourne Shell538562
Node: GNU Free Documentation License559992
Node: Indexes585172
Node: Builtin Index585626
Node: Reserved Word Index592727
Node: Variable Index595175
Node: Function Index612591
Node: Concept Index626589

End Tag Table
+19 -19
View File
@@ -1,12 +1,12 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025/MacPorts 2025.74524_1) (preloaded format=pdfetex 2025.9.16) 19 SEP 2025 16:37
This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025/MacPorts 2025.74524_1) (preloaded format=pdfetex 2025.9.16) 6 OCT 2025 15:30
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**\input /usr/local/src/bash/bash-20250918/doc/bashref.texi \input /usr/local/s
rc/bash/bash-20250918/doc/bashref.texi
(/usr/local/src/bash/bash-20250918/doc/bashref.texi
(/usr/local/src/bash/bash-20250918/doc/texinfo.tex
**\input /usr/local/src/bash/bash-20251003/doc/bashref.texi \input /usr/local/s
rc/bash/bash-20251003/doc/bashref.texi
(/usr/local/src/bash/bash-20251003/doc/bashref.texi
(/usr/local/src/bash/bash-20251003/doc/texinfo.tex
Loading texinfo [version 2015-11-22.14]:
\outerhsize=\dimen16
\outervsize=\dimen17
@@ -162,15 +162,15 @@ This is `epsf.tex' v2.7.4 <14 February 2011>
texinfo.tex: doing @include of version.texi
(/usr/local/src/bash/bash-20250918/doc/version.texi) [1{/opt/local/var/db/texmf
(/usr/local/src/bash/bash-20251003/doc/version.texi) [1{/opt/local/var/db/texmf
/fonts/map/pdftex/updmap/pdftex.map}] [2]
(/usr/local/build/bash/bash-20250918/doc/bashref.toc [-1] [-2] [-3]) [-4]
(/usr/local/build/bash/bash-20250918/doc/bashref.toc)
(/usr/local/build/bash/bash-20250918/doc/bashref.toc) Chapter 1
(/usr/local/build/bash/bash-20251003/doc/bashref.toc [-1] [-2] [-3]) [-4]
(/usr/local/build/bash/bash-20251003/doc/bashref.toc)
(/usr/local/build/bash/bash-20251003/doc/bashref.toc) Chapter 1
\openout0 = `bashref.toc'.
(/usr/local/build/bash/bash-20250918/doc/bashref.aux)
(/usr/local/build/bash/bash-20251003/doc/bashref.aux)
\openout1 = `bashref.aux'.
[1] Chapter 2 [2]
@@ -232,7 +232,7 @@ exlive/fonts/enc/dvips/cm-super/cm-super-t1.enc}] [21] [22] [23] [24]
[52]
[53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67]
[68] [69] [70] [71] [72] [73]
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5925--5925
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5934--5934
[]@texttt set [-abefhkmnptuvxBCEHPT] [-o @textttsl option-name@texttt ] [--] [
-] [@textttsl ar-gu-ment []@texttt ][]
@@ -245,7 +245,7 @@ Overfull \hbox (38.26585pt too wide) in paragraph at lines 5925--5925
.etc.
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5926--5926
Overfull \hbox (38.26585pt too wide) in paragraph at lines 5935--5935
[]@texttt set [+abefhkmnptuvxBCEHPT] [+o @textttsl option-name@texttt ] [--] [
-] [@textttsl ar-gu-ment []@texttt ][]
@@ -265,7 +265,7 @@ Chapter 7 [124] [125] [126] [127] [128]
texinfo.tex: doing @include of rluser.texi
(/usr/local/src/bash/bash-20250918/lib/readline/doc/rluser.texi Chapter 8
(/usr/local/src/bash/bash-20251003/lib/readline/doc/rluser.texi Chapter 8
[129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
Underfull \hbox (badness 7540) in paragraph at lines 969--975
[]@textrm In the ex-am-ple above, @textttsl C-u[] @textrm is bound to the func
@@ -314,10 +314,10 @@ gnored[]
texinfo.tex: doing @include of hsuser.texi
(/usr/local/src/bash/bash-20250918/lib/readline/doc/hsuser.texi Chapter 9
(/usr/local/src/bash/bash-20251003/lib/readline/doc/hsuser.texi Chapter 9
[167] [168] [169] [170] [171] [172] [173]) Chapter 10 [174] [175] [176]
[177] [178]
Underfull \hbox (badness 10000) in paragraph at lines 10731--10740
Underfull \hbox (badness 10000) in paragraph at lines 10745--10754
[]@textrm All of the fol-low-ing op-tions ex-cept for `@texttt alt-array-implem
entation[]@textrm '[],
@@ -330,7 +330,7 @@ entation[]@textrm '[],
.etc.
Underfull \hbox (badness 10000) in paragraph at lines 10731--10740
Underfull \hbox (badness 10000) in paragraph at lines 10745--10754
@textrm `@texttt disabled-builtins[]@textrm '[], `@texttt direxpand-default[]@t
extrm '[], `@texttt strict-posix-default[]@textrm '[], and
@@ -347,13 +347,13 @@ extrm '[], `@texttt strict-posix-default[]@textrm '[], and
texinfo.tex: doing @include of fdl.texi
(/usr/local/src/bash/bash-20250918/doc/fdl.texi [192] [193] [194] [195]
(/usr/local/src/bash/bash-20251003/doc/fdl.texi [192] [193] [194] [195]
[196] [197] [198]) Appendix D [199] [200] [201] [202] [203] [204] [205]
[206] [207] [208] )
Here is how much of TeX's memory you used:
4116 strings out of 495820
47662 string characters out of 6170887
145142 words of memory out of 5000000
145129 words of memory out of 5000000
5053 multiletter control sequences out of 15000+600000
34315 words of font info for 116 fonts, out of 8000000 for 9000
701 hyphenation exceptions out of 8191
@@ -374,7 +374,7 @@ fonts/type1/public/amsfonts/cm/cmti10.pfb></opt/local/share/texmf-texlive/fonts
lic/amsfonts/cm/cmtt9.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm
-super/sfrm1095.pfb></opt/local/share/texmf-texlive/fonts/type1/public/cm-super
/sfrm1440.pfb>
Output written on bashref.pdf (214 pages, 810038 bytes).
Output written on bashref.pdf (214 pages, 810203 bytes).
PDF statistics:
2947 PDF objects out of 2984 (max. 8388607)
2685 compressed objects within 27 object streams
BIN
View File
Binary file not shown.
+4 -3
View File
@@ -2306,7 +2306,7 @@ In each of the cases below, @var{word} is subject to tilde expansion,
parameter expansion, command substitution, and arithmetic expansion.
When not performing substring expansion, using the forms described
below (e.g., @samp{:-}), Bash tests for a parameter that is unset or null.
below (e.g., @samp{:@minus{}}), Bash tests for a parameter that is unset or null.
Omitting the colon results in a test only for a parameter that is unset.
Put another way, if the colon is included,
the operator tests for both @var{parameter}'s existence and that its value
@@ -2444,7 +2444,7 @@ a number of characters, and the expansion is the characters between
@var{offset} and that result.
Note that a negative offset must be separated from the colon by at least
one space to avoid being confused with the @samp{:-} expansion.
one space to avoid being confused with the @samp{:@minus{}} expansion.
Here are some examples illustrating substring expansion on parameters and
subscripted arrays:
@@ -3973,7 +3973,8 @@ it ignores @code{SIGTERM}
(so that @samp{kill 0} does not kill an interactive shell),
and catches and handles @code{SIGINT}
(so that the @code{wait} builtin is interruptible).
When Bash receives a @code{SIGINT}, it breaks out of any executing loops.
When Bash receives a @code{SIGINT},
it breaks out of any executing loops and command lists.
In all cases, Bash ignores @code{SIGQUIT}.
If job control is in effect (@pxref{Job Control}), Bash
ignores @code{SIGTTIN}, @code{SIGTTOU}, and @code{SIGTSTP}.
+3 -3
View File
@@ -91,7 +91,7 @@
\entry{IGNOREEOF}{95}{\code {IGNOREEOF}}
\entry{INPUTRC}{95}{\code {INPUTRC}}
\entry{INSIDE_EMACS}{95}{\code {INSIDE_EMACS}}
\entry{LANG}{95}{\code {LANG}}
\entry{LANG}{96}{\code {LANG}}
\entry{LC_ALL}{96}{\code {LC_ALL}}
\entry{LC_COLLATE}{96}{\code {LC_COLLATE}}
\entry{LC_CTYPE}{96}{\code {LC_CTYPE}}
@@ -106,7 +106,7 @@
\entry{OLDPWD}{96}{\code {OLDPWD}}
\entry{OPTERR}{96}{\code {OPTERR}}
\entry{OSTYPE}{96}{\code {OSTYPE}}
\entry{PIPESTATUS}{96}{\code {PIPESTATUS}}
\entry{PIPESTATUS}{97}{\code {PIPESTATUS}}
\entry{POSIXLY_CORRECT}{97}{\code {POSIXLY_CORRECT}}
\entry{PPID}{97}{\code {PPID}}
\entry{PROMPT_COMMAND}{97}{\code {PROMPT_COMMAND}}
@@ -116,7 +116,7 @@
\entry{PS4}{97}{\code {PS4}}
\entry{PWD}{97}{\code {PWD}}
\entry{RANDOM}{97}{\code {RANDOM}}
\entry{READLINE_ARGUMENT}{97}{\code {READLINE_ARGUMENT}}
\entry{READLINE_ARGUMENT}{98}{\code {READLINE_ARGUMENT}}
\entry{READLINE_LINE}{98}{\code {READLINE_LINE}}
\entry{READLINE_MARK}{98}{\code {READLINE_MARK}}
\entry{READLINE_POINT}{98}{\code {READLINE_POINT}}
+3 -3
View File
@@ -131,7 +131,7 @@
\initial {K}
\entry{\code {keymap}}{138}
\initial {L}
\entry{\code {LANG}}{8, 95}
\entry{\code {LANG}}{8, 96}
\entry{\code {LC_ALL}}{96}
\entry{\code {LC_COLLATE}}{96}
\entry{\code {LC_CTYPE}}{96}
@@ -161,7 +161,7 @@
\initial {P}
\entry{\code {page-completions}}{139}
\entry{\code {PATH}}{86}
\entry{\code {PIPESTATUS}}{96}
\entry{\code {PIPESTATUS}}{97}
\entry{\code {POSIXLY_CORRECT}}{97}
\entry{\code {PPID}}{97}
\entry{\code {PROMPT_COMMAND}}{97}
@@ -174,7 +174,7 @@
\entry{\code {PWD}}{97}
\initial {R}
\entry{\code {RANDOM}}{97}
\entry{\code {READLINE_ARGUMENT}}{97}
\entry{\code {READLINE_ARGUMENT}}{98}
\entry{\code {READLINE_LINE}}{98}
\entry{\code {READLINE_MARK}}{98}
\entry{\code {READLINE_POINT}}{98}
+2 -2
View File
@@ -1,7 +1,7 @@
#
# Simple makefile for the sample loadable builtins
#
# Copyright (C) 1996-2022 Free Software Foundation, Inc.
# Copyright (C) 1996-2025 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,7 +20,7 @@
PACKAGE = @PACKAGE_NAME@
VERSION = @PACKAGE_VERSION@
# Include some boilerplate Gnu makefile definitions.
# Include some boilerplate GNU makefile definitions.
prefix = @prefix@
exec_prefix = @exec_prefix@
+1 -1
View File
@@ -23,7 +23,7 @@ VERSION = @PACKAGE_VERSION@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
# Include some boilerplate Gnu makefile definitions.
# Include some boilerplate GNU makefile definitions.
prefix = @prefix@
exec_prefix = @exec_prefix@
+1 -1
View File
@@ -10,7 +10,7 @@ ulimit -c 0
# Sometimes, there are lots of places that one can find tex inputs.
export TEXINPUTS=.:$HOME/bin:/usr/lib/tex/inputs:/usr/local/lib/tex/inputs
# Where's the Gnu stuff at?
# Where's the GNU stuff at?
GNU=/usr/gnu/bin
X11=/usr/bin/X11
+1 -1
View File
@@ -1,4 +1,4 @@
This is the distribution of the Gnu Readline library. See the file
This is the distribution of the GNU Readline library. See the file
STANDALONE for a description of the #defines that can be passed via
the makefile to build readline on different systems.
+67 -19
View File
@@ -6,15 +6,18 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
.\" Last Change: Tue Dec 31 13:35:52 EST 2024
.\" Last Change: Mon Oct 6 09:57:49 EDT 2025
.\"
.TH HISTORY 3 "2024 December 31" "GNU History 8.3"
.TH HISTORY 3 "2025 October 6" "GNU History 8.3"
.\" Ensure this string is initialized to avoid groff warnings.
.ds zX \" empty
.\"
.ie \n(.g \{\
.ds ' \(aq
.ds " \(dq
.ds ^ \(ha
.ds ~ \(ti
.ds : \:\" hyphenless break point (e.g., for long file names and URLs)
.\}
.el \{\
.ds ' '
@@ -22,6 +25,7 @@
.ds " ""\" two adjacent quotes and no space before this comment
.ds ^ ^
.ds ~ ~
.ds : \" empty
.\}
.
.\" Fix broken EX/EE macros on DWB troff.
@@ -76,6 +80,43 @@
\fI\\$1\fP \fB\\$2\fP
.br
..
.if \n(.g .ig zX
.\" The following macro definitions are from groff's "an-ext.tmac".
.
.\" Prepare link text for mail/web hyperlinks. `MT` and `UR` call this.
.de mV
. ds mU \\$1\"
..
.\" Emit hyperlink. The optional argument supplies trailing punctuation
.\" after link text. `ME` and `UE` call this.
.de mQ
. mY
. nh
<\\*(mU>\\$1
. hy \\n(mH
. rm mU
..
.\" Start URL.
.\" .UR url
.de UR
. mV \\$1
..
.\" End URL.
.\" .UE [punctuation]
.de UE
. mQ \\$1
..
.\" Start email address.
.\" .MT address
.de MT
. mV \\$1
..
.\" End email address.
.\" .ME [punctuation]
.de ME
. mQ \\$1
..
.zX
.SH NAME
history \- GNU History Library
.SH COPYRIGHT
@@ -759,41 +800,48 @@ Default filename for reading and writing saved history
.SH "SEE ALSO"
.PD 0
.TP
\fIThe Gnu Readline Library\fP, Brian Fox and Chet Ramey
\fIThe GNU Readline Library\fP, Brian Fox and Chet Ramey
.TP
\fIThe Gnu History Library\fP, Brian Fox and Chet Ramey
\fIThe GNU History Library\fP, Brian Fox and Chet Ramey
.TP
\fIbash\fP(1)
.TP
\fIreadline\fP(3)
.PD
.SH AUTHORS
.MT bfox@\*:gnu\*:.org
Brian Fox, Free Software Foundation
.br
bfox@gnu.org
.ME
.PP
.MT chet\*:.ramey@\*:case\*:.edu
Chet Ramey, Case Western Reserve University
.br
chet.ramey@case.edu
.SH BUG REPORTS
.ME
.SH "BUG REPORTS"
If you find a bug in the
.B history
library, you should report it. But first, you should
library, you should report it.
But first, you should
make sure that it really is a bug, and that it appears in the latest
version of the
.B history
library that you have.
.PP
Once you have determined that a bug actually exists, mail a
bug report to \fIbug\-readline\fP@\fIgnu.org\fP.
If you have a fix, you are welcome to mail that
as well! Suggestions and
bug report to
.MT bug\-readline@\*:gnu\*:.org
.ME .
If you have a fix, you are welcome to mail that as well!
Please send suggestions and
.Q philosophical
bug reports may be mailed
to \fIbug\-readline\fP@\fIgnu.org\fP or posted to the Usenet
bug reports to
.MT bug\-readline@\*:gnu\*:.org
.ME
or post them to the
Usenet
newsgroup
.BR gnu.bash.bug .
.BR gnu\*:.bash\*:.bug .
.PP
Comments and bug reports concerning
this manual page should be directed to
.IR chet.ramey@case.edu .
Please send comments and bug reports concerning
this manual page to
.MT bug\-readline@\*:gnu\*:.org
.ME .
+68 -21
View File
@@ -6,15 +6,18 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
.\" Last Change: Tue Jul 15 10:19:29 EDT 2025
.\" Last Change: Mon Oct 6 09:58:21 EDT 2025
.\"
.TH READLINE 3 "2024 July 15" "GNU Readline 8.3"
.TH READLINE 3 "2025 October 6" "GNU Readline 8.3"
.\" Ensure this string is initialized to avoid groff warnings.
.ds zX \" empty
.\"
.ie \n(.g \{\
.ds ' \(aq
.ds " \(dq
.ds ^ \(ha
.ds ~ \(ti
.ds : \:\" hyphenless break point (e.g., for long file names and URLs)
.\}
.el \{\
.ds ' '
@@ -22,6 +25,7 @@
.ds " ""\" two adjacent quotes and no space before this comment
.ds ^ ^
.ds ~ ~
.ds : \" empty
.\}
.
.\" File Name macro. This used to be `.PN', for Path Name,
@@ -42,6 +46,43 @@
. if n "\\$1"\\$2
.\}
..
.if \n(.g .ig zX
.\" The following macro definitions are from groff's "an-ext.tmac".
.
.\" Prepare link text for mail/web hyperlinks. `MT` and `UR` call this.
.de mV
. ds mU \\$1\"
..
.\" Emit hyperlink. The optional argument supplies trailing punctuation
.\" after link text. `ME` and `UE` call this.
.de mQ
. mY
. nh
<\\*(mU>\\$1
. hy \\n(mH
. rm mU
..
.\" Start URL.
.\" .UR url
.de UR
. mV \\$1
..
.\" End URL.
.\" .UE [punctuation]
.de UE
. mQ \\$1
..
.\" Start email address.
.\" .MT address
.de MT
. mV \\$1
..
.\" End email address.
.\" .ME [punctuation]
.de ME
. mQ \\$1
..
.zX
.SH NAME
readline \- get a line from a user with editing
.SH SYNOPSIS
@@ -1845,9 +1886,9 @@ VI Command Mode functions
.SH "SEE ALSO"
.PD 0
.TP
\fIThe Gnu Readline Library\fP, Brian Fox and Chet Ramey
\fIThe GNU Readline Library\fP, Brian Fox and Chet Ramey
.TP
\fIThe Gnu History Library\fP, Brian Fox and Chet Ramey
\fIThe GNU History Library\fP, Brian Fox and Chet Ramey
.TP
\fIbash\fP(1)
.PD
@@ -1858,34 +1899,40 @@ VI Command Mode functions
Individual \fBreadline\fP initialization file
.PD
.SH AUTHORS
.MT bfox@\*:gnu\*:.org
Brian Fox, Free Software Foundation
.br
bfox@gnu.org
.ME
.PP
.MT chet\*:.ramey@\*:case\*:.edu
Chet Ramey, Case Western Reserve University
.br
chet.ramey@case.edu
.SH BUG REPORTS
.ME
.SH "BUG REPORTS"
If you find a bug in
.BR readline ,
you should report it. But first, you should
you should report it.
But first, you should
make sure that it really is a bug, and that it appears in the latest
version of the
.B readline
library that you have.
.PP
Once you have determined that a bug actually exists, mail a
bug report to \fIbug\-readline\fP@\fIgnu.org\fP.
If you have a fix, you are welcome to mail that
as well! Suggestions and
bug report to
.MT bug\-readline@\*:gnu\*:.org
.ME .
If you have a fix, you are welcome to mail that as well!
Please send suggestions and
.Q philosophical
bug reports may be mailed
to \fPbug-readline\fP@\fIgnu.org\fP or posted to the Usenet
bug reports
to
.MT bug\-readline@\*:gnu\*:.org
.ME
or post them to the
Usenet
newsgroup
.BR gnu.bash.bug .
.BR gnu\*:.bash\*:.bug .
.PP
Comments and bug reports concerning
this manual page should be directed to
.IR chet.ramey@case.edu .
.SH BUGS
It's too big and too slow.
Please send comments and bug reports concerning
this manual page to
.MT bug\-readline@\*:gnu\*:.org
.ME .
+6
View File
@@ -2843,6 +2843,9 @@ make_local_array_variable (const char *name, int flags)
var_setarray (var, array);
}
/*itrace("make_local_array_variable: unsetting att_tempvar");*/
VUNSETATTR (var, att_tempvar);
VSETATTR (var, att_array);
return var;
}
@@ -2896,6 +2899,9 @@ make_local_assoc_variable (const char *name, int flags)
var_setassoc (var, hash);
}
/*itrace("make_local_assoc_variable: unsetting att_tempvar");*/
VUNSETATTR (var, att_tempvar);
VSETATTR (var, att_assoc);
return var;
}