summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/FAQ6
-rw-r--r--doc/Makefile.in30
-rw-r--r--doc/article.txt4
-rw-r--r--doc/bash.03105
-rw-r--r--doc/bash.1909
-rw-r--r--doc/bash.html956
-rw-r--r--doc/bash.info2330
-rw-r--r--doc/bash.pdfbin381560 -> 401989 bytes
-rw-r--r--doc/bash.ps15370
-rw-r--r--doc/bashbug.02
-rw-r--r--doc/bashbug.ps4
-rw-r--r--doc/bashref.dvibin789640 -> 823680 bytes
-rw-r--r--doc/bashref.html5629
-rw-r--r--doc/bashref.info2329
-rw-r--r--doc/bashref.pdfbin769844 -> 795771 bytes
-rw-r--r--doc/bashref.ps16842
-rw-r--r--doc/bashref.texi1381
-rw-r--r--doc/builtins.01723
-rw-r--r--doc/builtins.110
-rw-r--r--doc/builtins.ps4781
-rw-r--r--doc/rbash.07
-rw-r--r--doc/rbash.12
-rw-r--r--doc/rbash.ps10
-rw-r--r--doc/version.texi12
24 files changed, 29899 insertions, 25543 deletions
diff --git a/doc/FAQ b/doc/FAQ
index 104d0bc1..44be0a6d 100644
--- a/doc/FAQ
+++ b/doc/FAQ
@@ -1,4 +1,6 @@
-This is the Bash FAQ, version 4.15, for Bash version 5.0.
+This is the Bash FAQ, version 4.15, for Bash version 5.1.
+
+[This document is no longer maintained.]
This document contains a set of frequently-asked questions concerning
Bash, the GNU Bourne-Again Shell. Bash is a freely-available command
@@ -631,7 +633,7 @@ o There is a new configuration option (in config-top.h) that forces bash to
o A new variable $BASHOPTS to export shell options settable using `shopt' to
child processes.
-o There is a new confgure option that forces the extglob option to be
+o There is a new configure option that forces the extglob option to be
enabled by default.
o New variable $BASH_XTRACEFD; when set to an integer bash will write xtrace
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 12068fb5..8bf775e1 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -74,7 +74,6 @@ TEXI2DVI = ${SUPPORT_SRCDIR}/texi2dvi
TEXI2HTML = ${SUPPORT_SRCDIR}/texi2html
MAN2HTML = ${BUILD_DIR}/support/man2html
HTMLPOST = ${srcdir}/htmlpost.sh
-INFOPOST = ${srcdir}/infopost.sh
QUIETPS = #set this to -q to shut up dvips
PAPERSIZE = letter # change to a4 for A4-size paper
PSDPI = 600 # could be 300 if you like
@@ -108,11 +107,11 @@ BASHREF_FILES = $(srcdir)/bashref.texi $(srcdir)/fdl.texi $(srcdir)/version.texi
.1.ps:
$(RM) $@
- -${GROFF} -man $< > $@
+ -${GROFF} -I${srcdir} -man $< > $@
.1.0:
$(RM) $@
- -${NROFF} -man $< > $@
+ -${NROFF} -I${srcdir} -man $< > $@
.1.html:
$(RM) $@
@@ -128,11 +127,11 @@ BASHREF_FILES = $(srcdir)/bashref.texi $(srcdir)/fdl.texi $(srcdir)/version.texi
.3.ps:
$(RM) $@
- -${GROFF} -man $< > $@
+ -${GROFF} -I${srcdir} -man $< > $@
.3.0:
$(RM) $@
- -${NROFF} -man $< > $@
+ -${NROFF} -I${srcdir} -man $< > $@
.3.html:
$(RM) $@
@@ -173,23 +172,26 @@ html: ${HTMLFILES}
pdf: ${PDFFILES}
bashref.dvi: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
+ $(RM) $@
${SET_TEXINPUTS} $(TEXI2DVI) $(srcdir)/bashref.texi || { ${RM} $@ ; exit 1; }
bashref.info: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
+ $(RM) $@
$(MAKEINFO) --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi
# experimental
bashref.pdf: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
+ $(RM) $@
${SET_TEXINPUTS} $(TEXI2PDF) $(srcdir)/bashref.texi || { ${RM} $@ ; exit 1; }
-
# can also use:
# $(TEXI2HTML) -menu -monolithic -I $(TEXINPUTDIR) $(srcdir)/bashref.texi
bashref.html: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
$(MAKEINFO) --html --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi
-bash.info: bashref.info
- ${SHELL} ${INFOPOST} < $(srcdir)/bashref.info > $@ ; \
+bash.info: $(BASHREF_FILES) $(HSUSER) $(RLUSER)
+ $(RM) $@
+ $(MAKEINFO) -o $@ --no-split -I$(TEXINPUTDIR) $(srcdir)/bashref.texi
bash.txt: bash.1
bash.ps: bash.1
@@ -324,18 +326,18 @@ faq.mail: FAQ faq.headers.mail faq.version
cat faq.headers.mail faq.version FAQ > $@
inst: bashref.texi
- $(SHELL) ./mkinstall
- cmp -s INSTALL ../INSTALL || mv INSTALL ../INSTALL
+ $(SHELL) ${srcdir}/mkinstall -t ${topdir} -s ${srcdir}
+ cmp -s INSTALL ${topdir}/INSTALL || mv INSTALL ${topdir}/INSTALL
$(RM) INSTALL
posix: bashref.texi
- $(SHELL) ./mkposix
- cmp -s POSIX ../POSIX || mv POSIX ../POSIX
+ $(SHELL) ${srcdir}/mkposix -t ${topdir} -s ${srcdir}
+ cmp -s POSIX ${topdir}/POSIX || mv POSIX ${topdir}/POSIX
$(RM) POSIX
rbash: bashref.texi
- $(SHELL) ./mkrbash
- cmp -s RBASH ../RBASH || mv RBASH ../RBASH
+ $(SHELL) ${srcdir}/mkrbash -t ${topdir} -s ${srcdir}
+ cmp -s RBASH ${topdir}/RBASH || mv RBASH ${topdir}/RBASH
$(RM) RBASH
xdist: everything inst posix rbash
diff --git a/doc/article.txt b/doc/article.txt
index c19ff924..e43ca9f3 100644
--- a/doc/article.txt
+++ b/doc/article.txt
@@ -531,7 +531,7 @@ _c_o_m_m_a_n_d _h_i_s_t_o_r_y) is provided jointly by Bash
readline library. Bash provides variables ($HISTFILE,
$HISTSIZE, and $HISTCONTROL) and the _h_i_s_t_o_r_y and _f_c builtins
to manipulate the history list. The value of $_H_I_S_T_F_I_L_E
-specifes the file where Bash writes the command history on
+specifies the file where Bash writes the command history on
exit and reads it on startup. $_H_I_S_T_S_I_Z_E is used to limit
the number of commands saved in the history. $_H_I_S_T_C_O_N_T_R_O_L
provides a crude form of control over which commands are
@@ -1107,5 +1107,3 @@ Inc.
October 28, 1994
-
-
diff --git a/doc/bash.0 b/doc/bash.0
index 9160b097..1580b77a 100644
--- a/doc/bash.0
+++ b/doc/bash.0
@@ -9,7 +9,7 @@ SSYYNNOOPPSSIISS
bbaasshh [options] [command_string | file]
CCOOPPYYRRIIGGHHTT
- Bash is Copyright (C) 1989-2020 by the Free Software Foundation, Inc.
+ Bash is Copyright (C) 1989-2022 by the Free Software Foundation, Inc.
DDEESSCCRRIIPPTTIIOONN
BBaasshh is an sshh-compatible command language interpreter that executes
@@ -131,7 +131,7 @@ IINNVVOOCCAATTIIOONN
one started with the ----llooggiinn option.
An _i_n_t_e_r_a_c_t_i_v_e shell is one started without non-option arguments (un-
- less --ss is specified) and without the --cc option whose standard input
+ less --ss is specified) and without the --cc option, whose standard input
and error are both connected to terminals (as determined by _i_s_a_t_t_y(3)),
or one started with the --ii option. PPSS11 is set and $$-- includes ii if
bbaasshh is interactive, allowing a shell script or a startup file to test
@@ -191,14 +191,14 @@ IINNVVOOCCAATTIIOONN
startup files are read.
BBaasshh attempts to determine when it is being run with its standard input
- connected to a network connection, as when executed by the remote shell
- daemon, usually _r_s_h_d, or the secure shell daemon _s_s_h_d. If bbaasshh deter-
- mines it is being run in this fashion, it reads and executes commands
- from _~_/_._b_a_s_h_r_c, if that file exists and is readable. It will not do
- this if invoked as sshh. The ----nnoorrcc option may be used to inhibit this
- behavior, and the ----rrccffiillee option may be used to force another file to
- be read, but neither _r_s_h_d nor _s_s_h_d generally invoke the shell with
- those options or allow them to be specified.
+ connected to a network connection, as when executed by the historical
+ remote shell daemon, usually _r_s_h_d, or the secure shell daemon _s_s_h_d. If
+ bbaasshh determines it is being run non-interactively in this fashion, it
+ reads and executes commands from _~_/_._b_a_s_h_r_c, if that file exists and is
+ readable. It will not do this if invoked as sshh. The ----nnoorrcc option may
+ be used to inhibit this behavior, and the ----rrccffiillee option may be used
+ to force another file to be read, but neither _r_s_h_d nor _s_s_h_d generally
+ invoke the shell with those options or allow them to be specified.
If the shell is started with the effective user (group) id not equal to
the real user (group) id, and the --pp option is not supplied, no startup
@@ -237,59 +237,63 @@ RREESSEERRVVEEDD WWOORRDDSS
tthheenn uunnttiill wwhhiillee {{ }} ttiimmee [[[[ ]]]]
SSHHEELLLL GGRRAAMMMMAARR
+ This section describes the syntax of the various forms of shell com-
+ mands.
+
SSiimmppllee CCoommmmaannddss
- A _s_i_m_p_l_e _c_o_m_m_a_n_d is a sequence of optional variable assignments fol-
- lowed by bbllaannkk-separated words and redirections, and terminated by a
+ A _s_i_m_p_l_e _c_o_m_m_a_n_d is a sequence of optional variable assignments fol-
+ lowed by bbllaannkk-separated words and redirections, and terminated by a
_c_o_n_t_r_o_l _o_p_e_r_a_t_o_r. The first word specifies the command to be executed,
- and is passed as argument zero. The remaining words are passed as ar-
+ and is passed as argument zero. The remaining words are passed as ar-
guments to the invoked command.
- The return value of a _s_i_m_p_l_e _c_o_m_m_a_n_d is its exit status, or 128+_n if
+ The return value of a _s_i_m_p_l_e _c_o_m_m_a_n_d is its exit status, or 128+_n if
the command is terminated by signal _n.
PPiippeelliinneess
- A _p_i_p_e_l_i_n_e is a sequence of one or more commands separated by one of
+ A _p_i_p_e_l_i_n_e is a sequence of one or more commands separated by one of
the control operators || or ||&&. The format for a pipeline is:
- [ttiimmee [--pp]] [ ! ] _c_o_m_m_a_n_d [ [|||||&&] _c_o_m_m_a_n_d_2 ... ]
+ [ttiimmee [--pp]] [ ! ] _c_o_m_m_a_n_d_1 [ [|||||&&] _c_o_m_m_a_n_d_2 ... ]
- The standard output of _c_o_m_m_a_n_d is connected via a pipe to the standard
- input of _c_o_m_m_a_n_d_2. This connection is performed before any redirec-
- tions specified by the command (see RREEDDIIRREECCTTIIOONN below). If ||&& is used,
- _c_o_m_m_a_n_d's standard error, in addition to its standard output, is con-
- nected to _c_o_m_m_a_n_d_2's standard input through the pipe; it is shorthand
- for 22>>&&11 ||. This implicit redirection of the standard error to the
- standard output is performed after any redirections specified by the
- command.
+ The standard output of _c_o_m_m_a_n_d_1 is connected via a pipe to the standard
+ input of _c_o_m_m_a_n_d_2. This connection is performed before any redirec-
+ tions specified by the _c_o_m_m_a_n_d_1(see RREEDDIIRREECCTTIIOONN below). If ||&& is used,
+ _c_o_m_m_a_n_d_1's standard error, in addition to its standard output, is con-
+ nected to _c_o_m_m_a_n_d_2's standard input through the pipe; it is shorthand
+ for 22>>&&11 ||. This implicit redirection of the standard error to the
+ standard output is performed after any redirections specified by _c_o_m_-
+ _m_a_n_d_1.
The return status of a pipeline is the exit status of the last command,
- unless the ppiippeeffaaiill option is enabled. If ppiippeeffaaiill is enabled, the
- pipeline's return status is the value of the last (rightmost) command
- to exit with a non-zero status, or zero if all commands exit success-
+ unless the ppiippeeffaaiill option is enabled. If ppiippeeffaaiill is enabled, the
+ pipeline's return status is the value of the last (rightmost) command
+ to exit with a non-zero status, or zero if all commands exit success-
fully. If the reserved word !! precedes a pipeline, the exit status of
- that pipeline is the logical negation of the exit status as described
- above. The shell waits for all commands in the pipeline to terminate
+ that pipeline is the logical negation of the exit status as described
+ above. The shell waits for all commands in the pipeline to terminate
before returning a value.
- If the ttiimmee reserved word precedes a pipeline, the elapsed as well as
- user and system time consumed by its execution are reported when the
- pipeline terminates. The --pp option changes the output format to that
- specified by POSIX. When the shell is in _p_o_s_i_x _m_o_d_e, it does not rec-
- ognize ttiimmee as a reserved word if the next token begins with a `-'.
- The TTIIMMEEFFOORRMMAATT variable may be set to a format string that specifies
- how the timing information should be displayed; see the description of
+ If the ttiimmee reserved word precedes a pipeline, the elapsed as well as
+ user and system time consumed by its execution are reported when the
+ pipeline terminates. The --pp option changes the output format to that
+ specified by POSIX. When the shell is in _p_o_s_i_x _m_o_d_e, it does not rec-
+ ognize ttiimmee as a reserved word if the next token begins with a `-'.
+ The TTIIMMEEFFOORRMMAATT variable may be set to a format string that specifies
+ how the timing information should be displayed; see the description of
TTIIMMEEFFOORRMMAATT under SShheellll VVaarriiaabblleess below.
When the shell is in _p_o_s_i_x _m_o_d_e, ttiimmee may be followed by a newline. In
- this case, the shell displays the total user and system time consumed
- by the shell and its children. The TTIIMMEEFFOORRMMAATT variable may be used to
+ this case, the shell displays the total user and system time consumed
+ by the shell and its children. The TTIIMMEEFFOORRMMAATT variable may be used to
specify the format of the time information.
- Each command in a pipeline is executed as a separate process (i.e., in
- a subshell). See CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT for a description of a
- subshell environment. If the llaassttppiippee option is enabled using the
- sshhoopptt builtin (see the description of sshhoopptt below), the last element of
- a pipeline may be run by the shell process.
+ Each command in a multi-command pipeline, where pipes are created, is
+ executed in a _s_u_b_s_h_e_l_l, which is a separate process. See CCOOMMMMAANNDD EEXXEE--
+ CCUUTTIIOONN EENNVVIIRROONNMMEENNTT for a description of subshells and a subshell envi-
+ ronment. If the llaassttppiippee option is enabled using the sshhoopptt builtin
+ (see the description of sshhoopptt below), the last element of a pipeline
+ may be run by the shell process when job control is not active.
LLiissttss
A _l_i_s_t is a sequence of one or more pipelines separated by one of the
@@ -333,11 +337,11 @@ SSHHEELLLL GGRRAAMMMMAARR
one or more newlines, and may be followed by a newline in place of a
semicolon.
- (_l_i_s_t) _l_i_s_t is executed in a subshell environment (see CCOOMMMMAANNDD EEXXEECCUU--
- TTIIOONN EENNVVIIRROONNMMEENNTT below). Variable assignments and builtin com-
- mands that affect the shell's environment do not remain in ef-
- fect after the command completes. The return status is the exit
- status of _l_i_s_t.
+ (_l_i_s_t) _l_i_s_t is executed in a subshell (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONN--
+ MMEENNTT below for a description of a subshell environment). Vari-
+ able assignments and builtin commands that affect the shell's
+ environment do not remain in effect after the command completes.
+ The return status is the exit status of _l_i_s_t.
{ _l_i_s_t; }
_l_i_s_t is simply executed in the current shell environment. _l_i_s_t
@@ -353,66 +357,73 @@ SSHHEELLLL GGRRAAMMMMAARR
The _e_x_p_r_e_s_s_i_o_n is evaluated according to the rules described be-
low under AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. If the value of the expression
is non-zero, the return status is 0; otherwise the return status
- is 1. This is exactly equivalent to lleett ""_e_x_p_r_e_s_s_i_o_n"".
+ is 1. The _e_x_p_r_e_s_s_i_o_n undergoes the same expansions as if it
+ were within double quotes, but double quote characters in _e_x_-
+ _p_r_e_s_s_i_o_n are not treated specially and are removed.
[[[[ _e_x_p_r_e_s_s_i_o_n ]]]]
Return a status of 0 or 1 depending on the evaluation of the
conditional expression _e_x_p_r_e_s_s_i_o_n. Expressions are composed of
the primaries described below under CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS.
- Word splitting and pathname expansion are not performed on the
- words between the [[[[ and ]]]]; tilde expansion, parameter and
- variable expansion, arithmetic expansion, command substitution,
- process substitution, and quote removal are performed. Condi-
- tional operators such as --ff must be unquoted to be recognized as
- primaries.
-
- When used with [[[[, the << and >> operators sort lexicographically
+ The words between the [[[[ and ]]]] do not undergo word splitting
+ and pathname expansion. The shell performs tilde expansion, pa-
+ rameter and variable expansion, arithmetic expansion, command
+ substitution, process substitution, and quote removal on those
+ words (the expansions that would occur if the words were en-
+ closed in double quotes). Conditional operators such as --ff must
+ be unquoted to be recognized as primaries.
+
+ When used with [[[[, the << and >> operators sort lexicographically
using the current locale.
- When the ==== and !!== operators are used, the string to the right
+ When the ==== and !!== operators are used, the string to the right
of the operator is considered a pattern and matched according to
the rules described below under PPaatttteerrnn MMaattcchhiinngg, as if the eexxtt--
gglloobb shell option were enabled. The == operator is equivalent to
- ====. If the nnooccaasseemmaattcchh shell option is enabled, the match is
- performed without regard to the case of alphabetic characters.
- The return value is 0 if the string matches (====) or does not
- match (!!==) the pattern, and 1 otherwise. Any part of the pat-
- tern may be quoted to force the quoted portion to be matched as
+ ====. If the nnooccaasseemmaattcchh shell option is enabled, the match is
+ performed without regard to the case of alphabetic characters.
+ The return value is 0 if the string matches (====) or does not
+ match (!!==) the pattern, and 1 otherwise. Any part of the pat-
+ tern may be quoted to force the quoted portion to be matched as
a string.
- An additional binary operator, ==~~, is available, with the same
- precedence as ==== and !!==. When it is used, the string to the
+ An additional binary operator, ==~~, is available, with the same
+ precedence as ==== and !!==. When it is used, the string to the
right of the operator is considered a POSIX extended regular ex-
- pression and matched accordingly (using the POSIX _r_e_g_c_o_m_p and
- _r_e_g_e_x_e_c interfaces usually described in _r_e_g_e_x(3)). The return
- value is 0 if the string matches the pattern, and 1 otherwise.
+ pression and matched accordingly (using the POSIX _r_e_g_c_o_m_p and
+ _r_e_g_e_x_e_c interfaces usually described in _r_e_g_e_x(3)). The return
+ value is 0 if the string matches the pattern, and 1 otherwise.
If the regular expression is syntactically incorrect, the condi-
tional expression's return value is 2. If the nnooccaasseemmaattcchh shell
- option is enabled, the match is performed without regard to the
- case of alphabetic characters. Any part of the pattern may be
- quoted to force the quoted portion to be matched as a string.
- Bracket expressions in regular expressions must be treated care-
- fully, since normal quoting characters lose their meanings be-
- tween brackets. If the pattern is stored in a shell variable,
- quoting the variable expansion forces the entire pattern to be
- matched as a string.
-
- The pattern will match if it matches any part of the string.
- Anchor the pattern using the ^^ and $$ regular expression opera-
+ option is enabled, the match is performed without regard to the
+ case of alphabetic characters. If any part of the pattern is
+ quoted, the quoted portion is matched literally. This means ev-
+ ery character in the quoted portion matches itself, instead of
+ having any special pattern matching meaning. If the pattern is
+ stored in a shell variable, quoting the variable expansion
+ forces the entire pattern to be matched literally. Treat
+ bracket expressions in regular expressions carefully, since nor-
+ mal quoting and pattern characters lose their meanings between
+ brackets.
+
+ The pattern will match if it matches any part of the string.
+ Anchor the pattern using the ^^ and $$ regular expression opera-
tors to force it to match the entire string. The array variable
- BBAASSHH__RREEMMAATTCCHH records which parts of the string matched the pat-
- tern. The element of BBAASSHH__RREEMMAATTCCHH with index 0 contains the
- portion of the string matching the entire regular expression.
- Substrings matched by parenthesized subexpressions within the
- regular expression are saved in the remaining BBAASSHH__RREEMMAATTCCHH in-
- dices. The element of BBAASSHH__RREEMMAATTCCHH with index _n is the portion
- of the string matching the _nth parenthesized subexpression.
-
- Expressions may be combined using the following operators,
+ BBAASSHH__RREEMMAATTCCHH records which parts of the string matched the pat-
+ tern. The element of BBAASSHH__RREEMMAATTCCHH with index 0 contains the
+ portion of the string matching the entire regular expression.
+ Substrings matched by parenthesized subexpressions within the
+ regular expression are saved in the remaining BBAASSHH__RREEMMAATTCCHH in-
+ dices. The element of BBAASSHH__RREEMMAATTCCHH with index _n is the portion
+ of the string matching the _nth parenthesized subexpression.
+ Bash sets BBAASSHH__RREEMMAATTCCHH in the global scope; declaring it as a
+ local variable will lead to unexpected results.
+
+ Expressions may be combined using the following operators,
listed in decreasing order of precedence:
(( _e_x_p_r_e_s_s_i_o_n ))
- Returns the value of _e_x_p_r_e_s_s_i_o_n. This may be used to
+ Returns the value of _e_x_p_r_e_s_s_i_o_n. This may be used to
override the normal precedence of operators.
!! _e_x_p_r_e_s_s_i_o_n
True if _e_x_p_r_e_s_s_i_o_n is false.
@@ -422,82 +433,82 @@ SSHHEELLLL GGRRAAMMMMAARR
True if either _e_x_p_r_e_s_s_i_o_n_1 or _e_x_p_r_e_s_s_i_o_n_2 is true.
The &&&& and |||| operators do not evaluate _e_x_p_r_e_s_s_i_o_n_2 if the value
- of _e_x_p_r_e_s_s_i_o_n_1 is sufficient to determine the return value of
+ of _e_x_p_r_e_s_s_i_o_n_1 is sufficient to determine the return value of
the entire conditional expression.
ffoorr _n_a_m_e [ [ iinn [ _w_o_r_d _._._. ] ] ; ] ddoo _l_i_s_t ; ddoonnee
The list of words following iinn is expanded, generating a list of
items. The variable _n_a_m_e is set to each element of this list in
- turn, and _l_i_s_t is executed each time. If the iinn _w_o_r_d is omit-
- ted, the ffoorr command executes _l_i_s_t once for each positional pa-
- rameter that is set (see PPAARRAAMMEETTEERRSS below). The return status
- is the exit status of the last command that executes. If the
+ turn, and _l_i_s_t is executed each time. If the iinn _w_o_r_d is omit-
+ ted, the ffoorr command executes _l_i_s_t once for each positional pa-
+ rameter that is set (see PPAARRAAMMEETTEERRSS below). The return status
+ is the exit status of the last command that executes. If the
expansion of the items following iinn results in an empty list, no
commands are executed, and the return status is 0.
ffoorr (( _e_x_p_r_1 ; _e_x_p_r_2 ; _e_x_p_r_3 )) ; ddoo _l_i_s_t ; ddoonnee
First, the arithmetic expression _e_x_p_r_1 is evaluated according to
- the rules described below under AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. The
- arithmetic expression _e_x_p_r_2 is then evaluated repeatedly until
- it evaluates to zero. Each time _e_x_p_r_2 evaluates to a non-zero
- value, _l_i_s_t is executed and the arithmetic expression _e_x_p_r_3 is
- evaluated. If any expression is omitted, it behaves as if it
+ the rules described below under AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. The
+ arithmetic expression _e_x_p_r_2 is then evaluated repeatedly until
+ it evaluates to zero. Each time _e_x_p_r_2 evaluates to a non-zero
+ value, _l_i_s_t is executed and the arithmetic expression _e_x_p_r_3 is
+ evaluated. If any expression is omitted, it behaves as if it
evaluates to 1. The return value is the exit status of the last
command in _l_i_s_t that is executed, or false if any of the expres-
sions is invalid.
sseelleecctt _n_a_m_e [ iinn _w_o_r_d ] ; ddoo _l_i_s_t ; ddoonnee
The list of words following iinn is expanded, generating a list of
- items. The set of expanded words is printed on the standard er-
- ror, each preceded by a number. If the iinn _w_o_r_d is omitted, the
- positional parameters are printed (see PPAARRAAMMEETTEERRSS below). The
- PPSS33 prompt is then displayed and a line read from the standard
- input. If the line consists of a number corresponding to one of
- the displayed words, then the value of _n_a_m_e 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 _n_a_m_e to be set to null. The line read is saved in the
- variable RREEPPLLYY. The _l_i_s_t is executed after each selection until
- a bbrreeaakk command is executed. The exit status of sseelleecctt is the
- exit status of the last command executed in _l_i_s_t, or zero if no
- commands were executed.
+ items, and the set of expanded words is printed on the standard
+ error, each preceded by a number. If the iinn _w_o_r_d is omitted,
+ the positional parameters are printed (see PPAARRAAMMEETTEERRSS below).
+ sseelleecctt then displays the PPSS33 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 _n_a_m_e is set to
+ that word. If the line is empty, the words and prompt are dis-
+ played again. If EOF is read, the sseelleecctt command completes and
+ returns 1. Any other value read causes _n_a_m_e to be set to null.
+ The line read is saved in the variable RREEPPLLYY. The _l_i_s_t is exe-
+ cuted after each selection until a bbrreeaakk command is executed.
+ The exit status of sseelleecctt is the exit status of the last command
+ executed in _l_i_s_t, or zero if no commands were executed.
ccaassee _w_o_r_d iinn [ [(] _p_a_t_t_e_r_n [ || _p_a_t_t_e_r_n ] ... ) _l_i_s_t ;; ] ... eessaacc
A ccaassee command first expands _w_o_r_d, and tries to match it against
- each _p_a_t_t_e_r_n in turn, using the matching rules described under
+ each _p_a_t_t_e_r_n in turn, using the matching rules described under
PPaatttteerrnn MMaattcchhiinngg below. The _w_o_r_d is expanded using tilde expan-
- sion, parameter and variable expansion, arithmetic expansion,
- command substitution, process substitution and quote removal.
+ sion, parameter and variable expansion, arithmetic expansion,
+ command substitution, process substitution and quote removal.
Each _p_a_t_t_e_r_n examined is expanded using tilde expansion, parame-
- ter and variable expansion, arithmetic expansion, command sub-
- stitution, and process substitution. If the nnooccaasseemmaattcchh shell
- option is enabled, the match is performed without regard to the
- case of alphabetic characters. When a match is found, the cor-
- responding _l_i_s_t is executed. If the ;;;; operator is used, no
- subsequent matches are attempted after the first pattern match.
- Using ;;&& in place of ;;;; causes execution to continue with the
- _l_i_s_t associated with the next set of patterns. Using ;;;;&& in
- place of ;;;; causes the shell to test the next pattern list in
- the statement, if any, and execute any associated _l_i_s_t on a suc-
- cessful match, continuing the case statement execution as if the
- pattern list had not matched. The exit status is zero if no
- pattern matches. Otherwise, it is the exit status of the last
- command executed in _l_i_s_t.
+ ter and variable expansion, arithmetic expansion, command sub-
+ stitution, process substitution, and quote removal. If the nnoo--
+ ccaasseemmaattcchh shell option is enabled, the match is performed with-
+ out regard to the case of alphabetic characters. When a match
+ is found, the corresponding _l_i_s_t is executed. If the ;;;; opera-
+ tor is used, no subsequent matches are attempted after the first
+ pattern match. Using ;;&& in place of ;;;; causes execution to con-
+ tinue with the _l_i_s_t associated with the next set of patterns.
+ Using ;;;;&& in place of ;;;; causes the shell to test the next pat-
+ tern list in the statement, if any, and execute any associated
+ _l_i_s_t on a successful match, continuing the case statement execu-
+ tion as if the pattern list had not matched. The exit status is
+ zero if no pattern matches. Otherwise, it is the exit status of
+ the last command executed in _l_i_s_t.
iiff _l_i_s_t; tthheenn _l_i_s_t; [ eelliiff _l_i_s_t; tthheenn _l_i_s_t; ] ... [ eellssee _l_i_s_t; ] ffii
- The iiff _l_i_s_t is executed. If its exit status is zero, the tthheenn
- _l_i_s_t is executed. Otherwise, each eelliiff _l_i_s_t is executed in
- turn, and if its exit status is zero, the corresponding tthheenn
+ The iiff _l_i_s_t is executed. If its exit status is zero, the tthheenn
+ _l_i_s_t is executed. Otherwise, each eelliiff _l_i_s_t is executed in
+ turn, and if its exit status is zero, the corresponding tthheenn
_l_i_s_t is executed and the command completes. Otherwise, the eellssee
- _l_i_s_t is executed, if present. The exit status is the exit sta-
+ _l_i_s_t is executed, if present. The exit status is the exit sta-
tus of the last command executed, or zero if no condition tested
true.
wwhhiillee _l_i_s_t_-_1; ddoo _l_i_s_t_-_2; ddoonnee
uunnttiill _l_i_s_t_-_1; ddoo _l_i_s_t_-_2; ddoonnee
- The wwhhiillee command continuously executes the list _l_i_s_t_-_2 as long
+ The wwhhiillee command continuously executes the list _l_i_s_t_-_2 as long
as the last command in the list _l_i_s_t_-_1 returns an exit status of
- zero. The uunnttiill command is identical to the wwhhiillee command, ex-
+ zero. The uunnttiill command is identical to the wwhhiillee command, ex-
cept that the test is negated: _l_i_s_t_-_2 is executed as long as the
last command in _l_i_s_t_-_1 returns a non-zero exit status. The exit
status of the wwhhiillee and uunnttiill commands is the exit status of the
@@ -505,32 +516,49 @@ SSHHEELLLL GGRRAAMMMMAARR
CCoopprroocceesssseess
A _c_o_p_r_o_c_e_s_s is a shell command preceded by the ccoopprroocc reserved word. A
- coprocess is executed asynchronously in a subshell, as if the command
- had been terminated with the && control operator, with a two-way pipe
+ coprocess is executed asynchronously in a subshell, as if the command
+ had been terminated with the && control operator, with a two-way pipe
established between the executing shell and the coprocess.
- The format for a coprocess is:
+ The syntax for a coprocess is:
ccoopprroocc [_N_A_M_E] _c_o_m_m_a_n_d [_r_e_d_i_r_e_c_t_i_o_n_s]
- This creates a coprocess named _N_A_M_E. If _N_A_M_E is not supplied, the de-
- fault name is CCOOPPRROOCC. _N_A_M_E must not be supplied if _c_o_m_m_a_n_d is a _s_i_m_p_l_e
- _c_o_m_m_a_n_d (see above); otherwise, it is interpreted as the first word of
- the simple command. When the coprocess is executed, the shell creates
- an array variable (see AArrrraayyss below) named _N_A_M_E in the context of the
- executing shell. The standard output of _c_o_m_m_a_n_d is connected via a
- pipe to a file descriptor in the executing shell, and that file de-
- scriptor is assigned to _N_A_M_E[0]. The standard input of _c_o_m_m_a_n_d is con-
- nected via a pipe to a file descriptor in the executing shell, and that
- file descriptor is assigned to _N_A_M_E[1]. This pipe is established be-
- fore any redirections specified by the command (see RREEDDIIRREECCTTIIOONN below).
- The file descriptors can be utilized as arguments to shell commands and
- redirections using standard word expansions. Other than those created
- to execute command and process substitutions, the file descriptors are
- not available in subshells. The process ID of the shell spawned to ex-
- ecute the coprocess is available as the value of the variable _N_A_M_E_PID.
- The wwaaiitt builtin command may be used to wait for the coprocess to ter-
- minate.
+ This creates a coprocess named _N_A_M_E. _c_o_m_m_a_n_d may be either a simple
+ command or a compound command (see above). _N_A_M_E is a shell variable
+ name. If _N_A_M_E is not supplied, the default name is CCOOPPRROOCC.
+
+ The recommended form to use for a coprocess is
+
+ ccoopprroocc _N_A_M_E { _c_o_m_m_a_n_d [_r_e_d_i_r_e_c_t_i_o_n_s]; }
+
+ This form is recommended because simple commands result in the copro-
+ cess always being named CCOOPPRROOCC, and it is simpler to use and more com-
+ plete than the other compound commands.
+
+ If _c_o_m_m_a_n_d is a compound command, _N_A_M_E is optional. The word following
+ ccoopprroocc determines whether that word is interpreted as a variable name:
+ it is interpreted as _N_A_M_E if it is not a reserved word that introduces
+ a compound command. If _c_o_m_m_a_n_d is a simple command, _N_A_M_E is not al-
+ lowed; this is to avoid confusion between _N_A_M_E and the first word of
+ the simple command.
+
+ When the coprocess is executed, the shell creates an array variable
+ (see AArrrraayyss below) named _N_A_M_E in the context of the executing shell.
+ The standard output of _c_o_m_m_a_n_d is connected via a pipe to a file de-
+ scriptor in the executing shell, and that file descriptor is assigned
+ to _N_A_M_E[0]. The standard input of _c_o_m_m_a_n_d is connected via a pipe to a
+ file descriptor in the executing shell, and that file descriptor is as-
+ signed to _N_A_M_E[1]. This pipe is established before any redirections
+ specified by the command (see RREEDDIIRREECCTTIIOONN below). The file descriptors
+ can be utilized as arguments to shell commands and redirections using
+ standard word expansions. Other than those created to execute command
+ and process substitutions, the file descriptors are not available in
+ subshells.
+
+ The process ID of the shell spawned to execute the coprocess is avail-
+ able as the value of the variable _N_A_M_E_PID. The wwaaiitt builtin command
+ may be used to wait for the coprocess to terminate.
Since the coprocess is created as an asynchronous command, the ccoopprroocc
command always returns success. The return status of a coprocess is
@@ -548,20 +576,20 @@ SSHHEELLLL GGRRAAMMMMAARR
parentheses are optional. The _b_o_d_y of the function is the com-
pound command _c_o_m_p_o_u_n_d_-_c_o_m_m_a_n_d (see CCoommppoouunndd CCoommmmaannddss above).
That command is usually a _l_i_s_t of commands between { and }, but
- may be any command listed under CCoommppoouunndd CCoommmmaannddss above, with
- one exception: If the ffuunnccttiioonn reserved word is used, but the
- parentheses are not supplied, the braces are required. _c_o_m_-
- _p_o_u_n_d_-_c_o_m_m_a_n_d is executed whenever _f_n_a_m_e is specified as the
- name of a simple command. When in _p_o_s_i_x _m_o_d_e, _f_n_a_m_e must be a
- valid shell _n_a_m_e and may not be the name of one of the POSIX
- _s_p_e_c_i_a_l _b_u_i_l_t_i_n_s. In default mode, a function name can be any
- unquoted shell word that does not contain $$. Any redirections
- (see RREEDDIIRREECCTTIIOONN below) specified when a function is defined are
- performed when the function is executed. The exit status of a
- function definition is zero unless a syntax error occurs or a
- readonly function with the same name already exists. When exe-
- cuted, the exit status of a function is the exit status of the
- last command executed in the body. (See FFUUNNCCTTIIOONNSS below.)
+ may be any command listed under CCoommppoouunndd CCoommmmaannddss above. If the
+ ffuunnccttiioonn reserved word is used, but the parentheses are not sup-
+ plied, the braces are recommended. _c_o_m_p_o_u_n_d_-_c_o_m_m_a_n_d is executed
+ whenever _f_n_a_m_e is specified as the name of a simple command.
+ When in _p_o_s_i_x _m_o_d_e, _f_n_a_m_e must be a valid shell _n_a_m_e and may not
+ be the name of one of the POSIX _s_p_e_c_i_a_l _b_u_i_l_t_i_n_s. In default
+ mode, a function name can be any unquoted shell word that does
+ not contain $$. Any redirections (see RREEDDIIRREECCTTIIOONN below) speci-
+ fied when a function is defined are performed when the function
+ is executed. The exit status of a function definition is zero
+ unless a syntax error occurs or a readonly function with the
+ same name already exists. When executed, the exit status of a
+ function is the exit status of the last command executed in the
+ body. (See FFUUNNCCTTIIOONNSS below.)
CCOOMMMMEENNTTSS
In a non-interactive shell, or an interactive shell in which the iinntteerr--
@@ -613,10 +641,11 @@ QQUUOOTTIINNGG
The special parameters ** and @@ have special meaning when in double
quotes (see PPAARRAAMMEETTEERRSS below).
- Words of the form $$'_s_t_r_i_n_g' are treated specially. The word expands to
- _s_t_r_i_n_g, with backslash-escaped characters replaced as specified by the
- ANSI C standard. Backslash escape sequences, if present, are decoded
- as follows:
+ Character sequences of the form $$'_s_t_r_i_n_g' are treated as a special
+ variant of single quotes. The sequence expands to _s_t_r_i_n_g, with back-
+ slash-escaped characters in _s_t_r_i_n_g replaced as specified by the ANSI C
+ standard. Backslash escape sequences, if present, are decoded as fol-
+ lows:
\\aa alert (bell)
\\bb backspace
\\ee
@@ -630,146 +659,147 @@ QQUUOOTTIINNGG
\\'' single quote
\\"" double quote
\\?? question mark
- \\_n_n_n the eight-bit character whose value is the octal value
+ \\_n_n_n the eight-bit character whose value is the octal value
_n_n_n (one to three octal digits)
- \\xx_H_H the eight-bit character whose value is the hexadecimal
+ \\xx_H_H the eight-bit character whose value is the hexadecimal
value _H_H (one or two hex digits)
- \\uu_H_H_H_H the Unicode (ISO/IEC 10646) character whose value is the
+ \\uu_H_H_H_H the Unicode (ISO/IEC 10646) character whose value is the
hexadecimal value _H_H_H_H (one to four hex digits)
\\UU_H_H_H_H_H_H_H_H
- the Unicode (ISO/IEC 10646) character whose value is the
+ the Unicode (ISO/IEC 10646) character whose value is the
hexadecimal value _H_H_H_H_H_H_H_H (one to eight hex digits)
\\cc_x a control-_x character
- The expanded result is single-quoted, as if the dollar sign had not
+ The expanded result is single-quoted, as if the dollar sign had not
been present.
A double-quoted string preceded by a dollar sign ($$"_s_t_r_i_n_g") will cause
- the string to be translated according to the current locale. The _g_e_t_-
- _t_e_x_t infrastructure performs the message catalog lookup and transla-
- tion, using the LLCC__MMEESSSSAAGGEESS and TTEEXXTTDDOOMMAAIINN shell variables. If the
- current locale is CC or PPOOSSIIXX, or if there are no translations avail-
- able, the dollar sign is ignored. If the string is translated and re-
- placed, the replacement is double-quoted.
+ the string to be translated according to the current locale. The _g_e_t_-
+ _t_e_x_t infrastructure performs the lookup and translation, using the
+ LLCC__MMEESSSSAAGGEESS, TTEEXXTTDDOOMMAAIINNDDIIRR, and TTEEXXTTDDOOMMAAIINN shell variables. If the
+ current locale is CC or PPOOSSIIXX, if there are no translations available,
+ or if the string is not translated, the dollar sign is ignored. This
+ is a form of double quoting, so the string remains double-quoted by de-
+ fault, whether or not it is translated and replaced. If the nnooeexx--
+ ppaanndd__ttrraannssllaattiioonn option is enabled using the sshhoopptt builtin, translated
+ strings are single-quoted instead of double-quoted. See the descrip-
+ tion of sshhoopptt below under SSHHEELLLLBUILTINCCOOMMMMAANNDDSS.
PPAARRAAMMEETTEERRSS
- A _p_a_r_a_m_e_t_e_r is an entity that stores values. It can be a _n_a_m_e, a num-
+ A _p_a_r_a_m_e_t_e_r is an entity that stores values. It can be a _n_a_m_e, a num-
ber, or one of the special characters listed below under SSppeecciiaall PPaarraamm--
- eetteerrss. A _v_a_r_i_a_b_l_e is a parameter denoted by a _n_a_m_e. A variable has a
- _v_a_l_u_e and zero or more _a_t_t_r_i_b_u_t_e_s. Attributes are assigned using the
+ eetteerrss. A _v_a_r_i_a_b_l_e is a parameter denoted by a _n_a_m_e. A variable has a
+ _v_a_l_u_e and zero or more _a_t_t_r_i_b_u_t_e_s. Attributes are assigned using the
ddeeccllaarree builtin command (see ddeeccllaarree below in SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS).
A parameter is set if it has been assigned a value. The null string is
- a valid value. Once a variable is set, it may be unset only by using
+ a valid value. Once a variable is set, it may be unset only by using
the uunnsseett builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
A _v_a_r_i_a_b_l_e may be assigned to by a statement of the form
_n_a_m_e=[_v_a_l_u_e]
- If _v_a_l_u_e is not given, the variable is assigned the null string. All
- _v_a_l_u_e_s undergo tilde expansion, parameter and variable expansion, com-
- mand substitution, arithmetic expansion, and quote removal (see EEXXPPAANN--
+ If _v_a_l_u_e is not given, the variable is assigned the null string. All
+ _v_a_l_u_e_s undergo tilde expansion, parameter and variable expansion, com-
+ mand substitution, arithmetic expansion, and quote removal (see EEXXPPAANN--
SSIIOONN below). If the variable has its iinntteeggeerr attribute set, then _v_a_l_u_e
is evaluated as an arithmetic expression even if the $((...)) expansion
- is not used (see AArriitthhmmeettiicc EExxppaannssiioonn below). Word splitting is not
- performed, with the exception of ""$$@@"" as explained below under SSppeecciiaall
- PPaarraammeetteerrss. Pathname expansion is not performed. Assignment state-
- ments may also appear as arguments to the aalliiaass, ddeeccllaarree, ttyyppeesseett, eexx--
- ppoorrtt, rreeaaddoonnllyy, and llooccaall builtin commands (_d_e_c_l_a_r_a_t_i_o_n commands).
- When in _p_o_s_i_x _m_o_d_e, these builtins may appear in a command after one or
- more instances of the ccoommmmaanndd builtin and retain these assignment
- statement properties.
-
- In the context where an assignment statement is assigning a value to a
+ is not used (see AArriitthhmmeettiicc EExxppaannssiioonn below). Word splitting and path-
+ name expansion are not performed. Assignment statements may also ap-
+ pear as arguments to the aalliiaass, ddeeccllaarree, ttyyppeesseett, eexxppoorrtt, rreeaaddoonnllyy, and
+ llooccaall builtin commands (_d_e_c_l_a_r_a_t_i_o_n commands). When in _p_o_s_i_x _m_o_d_e,
+ these builtins may appear in a command after one or more instances of
+ the ccoommmmaanndd builtin and retain these assignment statement properties.
+
+ In the context where an assignment statement is assigning a value to a
shell variable or array index, the += operator can be used to append to
- or add to the variable's previous value. This includes arguments to
- builtin commands such as ddeeccllaarree that accept assignment statements
+ or add to the variable's previous value. This includes arguments to
+ builtin commands such as ddeeccllaarree that accept assignment statements
(_d_e_c_l_a_r_a_t_i_o_n commands). When += is applied to a variable for which the
- _i_n_t_e_g_e_r attribute has been set, _v_a_l_u_e is evaluated as an arithmetic ex-
+ iinntteeggeerr attribute has been set, _v_a_l_u_e is evaluated as an arithmetic ex-
pression and added to the variable's current value, which is also eval-
- uated. When += is applied to an array variable using compound assign-
- ment (see AArrrraayyss below), the variable's value is not unset (as it is
- when using =), and new values are appended to the array beginning at
- one greater than the array's maximum index (for indexed arrays) or
- added as additional key-value pairs in an associative array. When ap-
- plied to a string-valued variable, _v_a_l_u_e is expanded and appended to
+ uated. When += is applied to an array variable using compound assign-
+ ment (see AArrrraayyss below), the variable's value is not unset (as it is
+ when using =), and new values are appended to the array beginning at
+ one greater than the array's maximum index (for indexed arrays) or
+ added as additional key-value pairs in an associative array. When ap-
+ plied to a string-valued variable, _v_a_l_u_e is expanded and appended to
the variable's value.
A variable can be assigned the _n_a_m_e_r_e_f attribute using the --nn option to
- the ddeeccllaarree or llooccaall builtin commands (see the descriptions of ddeeccllaarree
- and llooccaall below) to create a _n_a_m_e_r_e_f, or a reference to another vari-
- able. This allows variables to be manipulated indirectly. Whenever
- the nameref variable is referenced, assigned to, unset, or has its at-
- tributes modified (other than using or changing the _n_a_m_e_r_e_f attribute
- itself), the operation is actually performed on the variable specified
- by the nameref variable's value. A nameref is commonly used within
+ the ddeeccllaarree or llooccaall builtin commands (see the descriptions of ddeeccllaarree
+ and llooccaall below) to create a _n_a_m_e_r_e_f, or a reference to another vari-
+ able. This allows variables to be manipulated indirectly. Whenever
+ the nameref variable is referenced, assigned to, unset, or has its at-
+ tributes modified (other than using or changing the _n_a_m_e_r_e_f attribute
+ itself), the operation is actually performed on the variable specified
+ by the nameref variable's value. A nameref is commonly used within
shell functions to refer to a variable whose name is passed as an argu-
- ment to the function. For instance, if a variable name is passed to a
+ ment to the function. For instance, if a variable name is passed to a
shell function as its first argument, running
declare -n ref=$1
- inside the function creates a nameref variable rreeff whose value is the
+ inside the function creates a nameref variable rreeff whose value is the
variable name passed as the first argument. References and assignments
- to rreeff, and changes to its attributes, are treated as references, as-
- signments, and attribute modifications to the variable whose name was
- passed as $$11. If the control variable in a ffoorr loop has the nameref
- attribute, the list of words can be a list of shell variables, and a
- name reference will be established for each word in the list, in turn,
+ to rreeff, and changes to its attributes, are treated as references, as-
+ signments, and attribute modifications to the variable whose name was
+ passed as $$11. If the control variable in a ffoorr loop has the nameref
+ attribute, the list of words can be a list of shell variables, and a
+ name reference will be established for each word in the list, in turn,
when the loop is executed. Array variables cannot be given the nnaammeerreeff
- attribute. However, nameref variables can reference array variables
- and subscripted array variables. Namerefs can be unset using the --nn
- option to the uunnsseett builtin. Otherwise, if uunnsseett is executed with the
- name of a nameref variable as an argument, the variable referenced by
+ attribute. However, nameref variables can reference array variables
+ and subscripted array variables. Namerefs can be unset using the --nn
+ option to the uunnsseett builtin. Otherwise, if uunnsseett is executed with the
+ name of a nameref variable as an argument, the variable referenced by
the nameref variable will be unset.
PPoossiittiioonnaall PPaarraammeetteerrss
- A _p_o_s_i_t_i_o_n_a_l _p_a_r_a_m_e_t_e_r is a parameter denoted by one or more digits,
+ A _p_o_s_i_t_i_o_n_a_l _p_a_r_a_m_e_t_e_r is a parameter denoted by one or more digits,
other than the single digit 0. Positional parameters are assigned from
- the shell's arguments when it is invoked, and may be reassigned using
- the sseett builtin command. Positional parameters may not be assigned to
- with assignment statements. The positional parameters are temporarily
+ the shell's arguments when it is invoked, and may be reassigned using
+ the sseett builtin command. Positional parameters may not be assigned to
+ with assignment statements. The positional parameters are temporarily
replaced when a shell function is executed (see FFUUNNCCTTIIOONNSS below).
- When a positional parameter consisting of more than a single digit is
+ When a positional parameter consisting of more than a single digit is
expanded, it must be enclosed in braces (see EEXXPPAANNSSIIOONN below).
SSppeecciiaall PPaarraammeetteerrss
- The shell treats several parameters specially. These parameters may
+ The shell treats several parameters specially. These parameters may
only be referenced; assignment to them is not allowed.
- ** Expands to the positional parameters, starting from one. When
- the expansion is not within double quotes, each positional pa-
- rameter expands to a separate word. In contexts where it is
+ ** Expands to the positional parameters, starting from one. When
+ the expansion is not within double quotes, each positional pa-
+ rameter expands to a separate word. In contexts where it is
performed, those words are subject to further word splitting and
- pathname expansion. When the expansion occurs within double
- quotes, it expands to a single word with the value of each pa-
- rameter separated by the first character of the IIFFSS special
- variable. That is, "$$**" is equivalent to "$$11_c$$22_c......", where _c
+ pathname expansion. When the expansion occurs within double
+ quotes, it expands to a single word with the value of each pa-
+ rameter separated by the first character of the IIFFSS special
+ variable. That is, "$$**" is equivalent to "$$11_c$$22_c......", where _c
is the first character of the value of the IIFFSS variable. If IIFFSS
- is unset, the parameters are separated by spaces. If IIFFSS is
+ is unset, the parameters are separated by spaces. If IIFFSS is
null, the parameters are joined without intervening separators.
- @@ Expands to the positional parameters, starting from one. In
- contexts where word splitting is performed, this expands each
- positional parameter to a separate word; if not within double
- quotes, these words are subject to word splitting. In contexts
- where word splitting is not performed, this expands to a single
- word with each positional parameter separated by a space. When
- the expansion occurs within double quotes, each parameter ex-
- pands to a separate word. That is, "$$@@" is equivalent to "$$11"
- "$$22" ... If the double-quoted expansion occurs within a word,
- the expansion of the first parameter is joined with the begin-
- ning part of the original word, and the expansion of the last
- parameter is joined with the last part of the original word.
- When there are no positional parameters, "$$@@" and $$@@ expand to
+ @@ Expands to the positional parameters, starting from one. In
+ contexts where word splitting is performed, this expands each
+ positional parameter to a separate word; if not within double
+ quotes, these words are subject to word splitting. In contexts
+ where word splitting is not performed, this expands to a single
+ word with each positional parameter separated by a space. When
+ the expansion occurs within double quotes, each parameter ex-
+ pands to a separate word. That is, "$$@@" is equivalent to "$$11"
+ "$$22" ... If the double-quoted expansion occurs within a word,
+ the expansion of the first parameter is joined with the begin-
+ ning part of the original word, and the expansion of the last
+ parameter is joined with the last part of the original word.
+ When there are no positional parameters, "$$@@" and $$@@ expand to
nothing (i.e., they are removed).
## Expands to the number of positional parameters in decimal.
- ?? Expands to the exit status of the most recently executed fore-
+ ?? Expands to the exit status of the most recently executed fore-
ground pipeline.
- -- Expands to the current option flags as specified upon invoca-
- tion, by the sseett builtin command, or those set by the shell it-
+ -- Expands to the current option flags as specified upon invoca-
+ tion, by the sseett builtin command, or those set by the shell it-
self (such as the --ii option).
- $$ Expands to the process ID of the shell. In a () subshell, it
- expands to the process ID of the current shell, not the sub-
- shell.
+ $$ Expands to the process ID of the shell. In a subshell, it ex-
+ pands to the process ID of the current shell, not the subshell.
!! Expands to the process ID of the job most recently placed into
the background, whether executed as an asynchronous command or
using the bbgg builtin (see JJOOBB CCOONNTTRROOLL below).
@@ -1032,6 +1062,10 @@ PPAARRAAMMEETTEERRSS
tializes (seeds) the sequence of random numbers. If RRAANNDDOOMM is
unset, it loses its special properties, even if it is subse-
quently reset.
+ RREEAADDLLIINNEE__AARRGGUUMMEENNTT
+ Any numeric argument given to a readline command that was de-
+ fined using "bind -x" (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below) when it
+ was invoked.
RREEAADDLLIINNEE__LLIINNEE
The contents of the rreeaaddlliinnee line buffer, for use with "bind -x"
(see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
@@ -1046,12 +1080,12 @@ PPAARRAAMMEETTEERRSS
RREEPPLLYY Set to the line of input read by the rreeaadd builtin command when
no arguments are supplied.
SSEECCOONNDDSS
- Each time this parameter is referenced, the number of seconds
- since shell invocation is returned. If a value is assigned to
+ Each time this parameter is referenced, it expands to the number
+ of seconds since shell invocation. If a value is assigned to
SSEECCOONNDDSS, the value returned upon subsequent references is the
number of seconds since the assignment plus the value assigned.
The number of seconds at shell invocation and the current time
- is always determined by querying the system clock. If SSEECCOONNDDSS
+ are always determined by querying the system clock. If SSEECCOONNDDSS
is unset, it loses its special properties, even if it is subse-
quently reset.
SSHHEELLLLOOPPTTSS
@@ -1088,8 +1122,8 @@ PPAARRAAMMEETTEERRSS
value that is not one of the valid compatibility levels, the
shell prints an error message and sets the compatibility level
to the default for the current version. The valid values corre-
- spond to the compatibility levels described below under BBSSHHEELLLL--
- COMPATIBILITYMMOODDEE. For example, 4.2 and 42 are valid values
+ spond to the compatibility levels described below under SSHHEELLLL
+ CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE. For example, 4.2 and 42 are valid values
that correspond to the ccoommppaatt4422 sshhoopptt option and set the compat-
ibility level to 42. The current version is also a valid value.
BBAASSHH__EENNVV
@@ -1462,47 +1496,53 @@ PPAARRAAMMEETTEERRSS
count back from the end of the array, and an index of -1 references the
last element.
- Any element of an array may be referenced using ${_n_a_m_e[_s_u_b_s_c_r_i_p_t]}.
+ The += operator will append to an array variable when assigning using
+ the compound assignment syntax; see PPAARRAAMMEETTEERRSS above.
+
+ Any element of an array may be referenced using ${_n_a_m_e[_s_u_b_s_c_r_i_p_t]}.
The braces are required to avoid conflicts with pathname expansion. If
- _s_u_b_s_c_r_i_p_t is @@ or **, the word expands to all members of _n_a_m_e. These
- subscripts differ only when the word appears within double quotes. If
+ _s_u_b_s_c_r_i_p_t is @@ or **, the word expands to all members of _n_a_m_e. These
+ subscripts differ only when the word appears within double quotes. If
the word is double-quoted, ${_n_a_m_e[*]} expands to a single word with the
- value of each array member separated by the first character of the IIFFSS
+ value of each array member separated by the first character of the IIFFSS
special variable, and ${_n_a_m_e[@]} expands each element of _n_a_m_e to a sep-
- arate word. When there are no array members, ${_n_a_m_e[@]} expands to
- nothing. If the double-quoted expansion occurs within a word, the ex-
+ arate word. When there are no array members, ${_n_a_m_e[@]} expands to
+ nothing. If the double-quoted expansion occurs within a word, the ex-
pansion of the first parameter is joined with the beginning part of the
- original word, and the expansion of the last parameter is joined with
+ original word, and the expansion of the last parameter is joined with
the last part of the original word. This is analogous to the expansion
- of the special parameters ** and @@ (see SSppeecciiaall PPaarraammeetteerrss above).
- ${#_n_a_m_e[_s_u_b_s_c_r_i_p_t]} expands to the length of ${_n_a_m_e[_s_u_b_s_c_r_i_p_t]}. If
+ of the special parameters ** and @@ (see SSppeecciiaall PPaarraammeetteerrss above).
+ ${#_n_a_m_e[_s_u_b_s_c_r_i_p_t]} expands to the length of ${_n_a_m_e[_s_u_b_s_c_r_i_p_t]}. If
_s_u_b_s_c_r_i_p_t is ** or @@, the expansion is the number of elements in the ar-
ray. If the _s_u_b_s_c_r_i_p_t used to reference an element of an indexed array
- evaluates to a number less than zero, it is interpreted as relative to
- one greater than the maximum index of the array, so negative indices
+ evaluates to a number less than zero, it is interpreted as relative to
+ one greater than the maximum index of the array, so negative indices
count back from the end of the array, and an index of -1 references the
last element.
Referencing an array variable without a subscript is equivalent to ref-
- erencing the array with a subscript of 0. Any reference to a variable
+ erencing the array with a subscript of 0. Any reference to a variable
using a valid subscript is legal, and bbaasshh will create an array if nec-
essary.
- An array variable is considered set if a subscript has been assigned a
+ An array variable is considered set if a subscript has been assigned a
value. The null string is a valid value.
- It is possible to obtain the keys (indices) of an array as well as the
- values. ${!!_n_a_m_e[_@]} and ${!!_n_a_m_e[_*]} expand to the indices assigned in
+ It is possible to obtain the keys (indices) of an array as well as the
+ values. ${!!_n_a_m_e[_@]} and ${!!_n_a_m_e[_*]} expand to the indices assigned in
array variable _n_a_m_e. The treatment when in double quotes is similar to
the expansion of the special parameters _@ and _* within double quotes.
The uunnsseett builtin is used to destroy arrays. uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t] de-
stroys the array element at index _s_u_b_s_c_r_i_p_t, for both indexed and asso-
- ciative arrays. Negative subscripts to indexed arrays are interpreted
- as described above. Unsetting the last element of an array variable
- does not unset the variable. uunnsseett _n_a_m_e, where _n_a_m_e is an array, or
- uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t], where _s_u_b_s_c_r_i_p_t is ** or @@, removes the entire
- array.
+ ciative arrays. Negative subscripts to indexed arrays are interpreted
+ as described above. Unsetting the last element of an array variable
+ does not unset the variable. uunnsseett _n_a_m_e, where _n_a_m_e is an array, re-
+ moves the entire array. uunnsseett _n_a_m_e[_s_u_b_s_c_r_i_p_t], where _s_u_b_s_c_r_i_p_t is ** or
+ @@, behaves differently depending on whether _n_a_m_e is an indexed or asso-
+ ciative array. If _n_a_m_e is an associative array, this unsets the ele-
+ ment with subscript ** or @@. If _n_a_m_e is an indexed array, unset removes
+ all of the elements but does not remove the array itself.
When using a variable name with a subscript as an argument to a com-
mand, such as with uunnsseett, without using the word expansion syntax de-
@@ -1557,17 +1597,17 @@ EEXXPPAANNSSIIOONN
a{{d,c,b}}e expands into `ade ace abe'.
A sequence expression takes the form {{_x...._y[[...._i_n_c_r]]}}, where _x and _y are
- either integers or single characters, and _i_n_c_r, an optional increment,
- is an integer. When integers are supplied, the expression expands to
- each number between _x and _y, inclusive. Supplied integers may be pre-
- fixed with _0 to force each term to have the same width. When either _x
- or _y begins with a zero, the shell attempts to force all generated
- terms to contain the same number of digits, zero-padding where neces-
- sary. When characters are supplied, the expression expands to each
- character lexicographically between _x and _y, inclusive, using the de-
- fault C locale. Note that both _x and _y must be of the same type. When
- the increment is supplied, it is used as the difference between each
- term. The default increment is 1 or -1 as appropriate.
+ either integers or single letters, and _i_n_c_r, an optional increment, is
+ an integer. When integers are supplied, the expression expands to each
+ number between _x and _y, inclusive. Supplied integers may be prefixed
+ with _0 to force each term to have the same width. When either _x or _y
+ begins with a zero, the shell attempts to force all generated terms to
+ contain the same number of digits, zero-padding where necessary. When
+ letters are supplied, the expression expands to each character lexico-
+ graphically between _x and _y, inclusive, using the default C locale.
+ Note that both _x and _y must be of the same type (integer or letter).
+ When the increment is supplied, it is used as the difference between
+ each term. The default increment is 1 or -1 as appropriate.
Brace expansion is performed before any other expansions, and any char-
acters special to other expansions are preserved in the result. It is
@@ -1699,12 +1739,12 @@ EEXXPPAANNSSIIOONN
${_p_a_r_a_m_e_t_e_r::_o_f_f_s_e_t::_l_e_n_g_t_h}
SSuubbssttrriinngg EExxppaannssiioonn. Expands to up to _l_e_n_g_t_h characters of the
value of _p_a_r_a_m_e_t_e_r starting at the character specified by _o_f_f_-
- _s_e_t. If _p_a_r_a_m_e_t_e_r is @@, an indexed array subscripted by @@ or **,
- or an associative array name, the results differ as described
- below. If _l_e_n_g_t_h is omitted, expands to the substring of the
- value of _p_a_r_a_m_e_t_e_r starting at the character specified by _o_f_f_s_e_t
- and extending to the end of the value. _l_e_n_g_t_h and _o_f_f_s_e_t are
- arithmetic expressions (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN below).
+ _s_e_t. If _p_a_r_a_m_e_t_e_r is @@ or **, an indexed array subscripted by @@
+ or **, or an associative array name, the results differ as de-
+ scribed below. If _l_e_n_g_t_h is omitted, expands to the substring
+ of the value of _p_a_r_a_m_e_t_e_r starting at the character specified by
+ _o_f_f_s_e_t and extending to the end of the value. _l_e_n_g_t_h and _o_f_f_s_e_t
+ are arithmetic expressions (see AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN below).
If _o_f_f_s_e_t evaluates to a number less than zero, the value is
used as an offset in characters from the end of the value of _p_a_-
@@ -1715,51 +1755,52 @@ EEXXPPAANNSSIIOONN
that a negative offset must be separated from the colon by at
least one space to avoid being confused with the ::-- expansion.
- If _p_a_r_a_m_e_t_e_r is @@, the result is _l_e_n_g_t_h positional parameters
- beginning at _o_f_f_s_e_t. A negative _o_f_f_s_e_t is taken relative to one
- greater than the greatest positional parameter, so an offset of
- -1 evaluates to the last positional parameter. It is an expan-
- sion error if _l_e_n_g_t_h evaluates to a number less than zero.
+ If _p_a_r_a_m_e_t_e_r is @@ or **, the result is _l_e_n_g_t_h positional parame-
+ ters beginning at _o_f_f_s_e_t. A negative _o_f_f_s_e_t is taken relative
+ to one greater than the greatest positional parameter, so an
+ offset of -1 evaluates to the last positional parameter. It is
+ an expansion error if _l_e_n_g_t_h evaluates to a number less than
+ zero.
If _p_a_r_a_m_e_t_e_r is an indexed array name subscripted by @ or *, the
- result is the _l_e_n_g_t_h members of the array beginning with ${_p_a_-
- _r_a_m_e_t_e_r[_o_f_f_s_e_t]}. A negative _o_f_f_s_e_t is taken relative to one
+ result is the _l_e_n_g_t_h members of the array beginning with ${_p_a_-
+ _r_a_m_e_t_e_r[_o_f_f_s_e_t]}. A negative _o_f_f_s_e_t is taken relative to one
greater than the maximum index of the specified array. It is an
expansion error if _l_e_n_g_t_h evaluates to a number less than zero.
Substring expansion applied to an associative array produces un-
defined results.
- Substring indexing is zero-based unless the positional parame-
- ters are used, in which case the indexing starts at 1 by de-
- fault. If _o_f_f_s_e_t is 0, and the positional parameters are used,
+ Substring indexing is zero-based unless the positional parame-
+ ters are used, in which case the indexing starts at 1 by de-
+ fault. If _o_f_f_s_e_t is 0, and the positional parameters are used,
$$00 is prefixed to the list.
${!!_p_r_e_f_i_x**}
${!!_p_r_e_f_i_x@@}
- NNaammeess mmaattcchhiinngg pprreeffiixx. Expands to the names of variables whose
+ NNaammeess mmaattcchhiinngg pprreeffiixx. Expands to the names of variables whose
names begin with _p_r_e_f_i_x, separated by the first character of the
- IIFFSS special variable. When _@ is used and the expansion appears
- within double quotes, each variable name expands to a separate
+ IIFFSS special variable. When _@ is used and the expansion appears
+ within double quotes, each variable name expands to a separate
word.
${!!_n_a_m_e[_@]}
${!!_n_a_m_e[_*]}
- LLiisstt ooff aarrrraayy kkeeyyss. If _n_a_m_e is an array variable, expands to
- the list of array indices (keys) assigned in _n_a_m_e. If _n_a_m_e is
- not an array, expands to 0 if _n_a_m_e is set and null otherwise.
- When _@ is used and the expansion appears within double quotes,
+ LLiisstt ooff aarrrraayy kkeeyyss. If _n_a_m_e is an array variable, expands to
+ the list of array indices (keys) assigned in _n_a_m_e. If _n_a_m_e is
+ not an array, expands to 0 if _n_a_m_e is set and null otherwise.
+ When _@ is used and the expansion appears within double quotes,
each key expands to a separate word.
${##_p_a_r_a_m_e_t_e_r}
- PPaarraammeetteerr lleennggtthh. The length in characters of the value of _p_a_-
- _r_a_m_e_t_e_r is substituted. If _p_a_r_a_m_e_t_e_r is ** or @@, the value sub-
- stituted is the number of positional parameters. If _p_a_r_a_m_e_t_e_r
+ PPaarraammeetteerr lleennggtthh. The length in characters of the value of _p_a_-
+ _r_a_m_e_t_e_r is substituted. If _p_a_r_a_m_e_t_e_r is ** or @@, the value sub-
+ stituted is the number of positional parameters. If _p_a_r_a_m_e_t_e_r
is an array name subscripted by ** or @@, the value substituted is
the number of elements in the array. If _p_a_r_a_m_e_t_e_r is an indexed
- array name subscripted by a negative number, that number is in-
- terpreted as relative to one greater than the maximum index of
- _p_a_r_a_m_e_t_e_r, so negative indices count back from the end of the
+ array name subscripted by a negative number, that number is in-
+ terpreted as relative to one greater than the maximum index of
+ _p_a_r_a_m_e_t_e_r, so negative indices count back from the end of the
array, and an index of -1 references the last element.
${_p_a_r_a_m_e_t_e_r##_w_o_r_d}
@@ -1767,15 +1808,15 @@ EEXXPPAANNSSIIOONN
RReemmoovvee mmaattcchhiinngg pprreeffiixx ppaatttteerrnn. The _w_o_r_d is expanded to produce
a pattern just as in pathname expansion, and matched against the
expanded value of _p_a_r_a_m_e_t_e_r using the rules described under PPaatt--
- tteerrnn MMaattcchhiinngg below. If the pattern matches the beginning of
- the value of _p_a_r_a_m_e_t_e_r, then the result of the expansion is the
- expanded value of _p_a_r_a_m_e_t_e_r with the shortest matching pattern
- (the ``##'' case) or the longest matching pattern (the ``####''
- case) deleted. If _p_a_r_a_m_e_t_e_r is @@ or **, the pattern removal op-
+ tteerrnn MMaattcchhiinngg below. If the pattern matches the beginning of
+ the value of _p_a_r_a_m_e_t_e_r, then the result of the expansion is the
+ expanded value of _p_a_r_a_m_e_t_e_r with the shortest matching pattern
+ (the ``##'' case) or the longest matching pattern (the ``####''
+ case) deleted. If _p_a_r_a_m_e_t_e_r is @@ or **, the pattern removal op-
eration is applied to each positional parameter in turn, and the
expansion is the resultant list. If _p_a_r_a_m_e_t_e_r is an array vari-
- able subscripted with @@ or **, the pattern removal operation is
- applied to each member of the array in turn, and the expansion
+ able subscripted with @@ or **, the pattern removal operation is
+ applied to each member of the array in turn, and the expansion
is the resultant list.
${_p_a_r_a_m_e_t_e_r%%_w_o_r_d}
@@ -1783,100 +1824,132 @@ EEXXPPAANNSSIIOONN
RReemmoovvee mmaattcchhiinngg ssuuffffiixx ppaatttteerrnn. The _w_o_r_d is expanded to produce
a pattern just as in pathname expansion, and matched against the
expanded value of _p_a_r_a_m_e_t_e_r using the rules described under PPaatt--
- tteerrnn MMaattcchhiinngg below. If the pattern matches a trailing portion
- of the expanded value of _p_a_r_a_m_e_t_e_r, then the result of the ex-
- pansion is the expanded value of _p_a_r_a_m_e_t_e_r with the shortest
- matching pattern (the ``%%'' case) or the longest matching pat-
- tern (the ``%%%%'' case) deleted. If _p_a_r_a_m_e_t_e_r is @@ or **, the
- pattern removal operation is applied to each positional parame-
+ tteerrnn MMaattcchhiinngg below. If the pattern matches a trailing portion
+ of the expanded value of _p_a_r_a_m_e_t_e_r, then the result of the ex-
+ pansion is the expanded value of _p_a_r_a_m_e_t_e_r with the shortest
+ matching pattern (the ``%%'' case) or the longest matching pat-
+ tern (the ``%%%%'' case) deleted. If _p_a_r_a_m_e_t_e_r is @@ or **, the
+ pattern removal operation is applied to each positional parame-
ter in turn, and the expansion is the resultant list. If _p_a_r_a_m_-
- _e_t_e_r is an array variable subscripted with @@ or **, the pattern
- removal operation is applied to each member of the array in
+ _e_t_e_r is an array variable subscripted with @@ or **, the pattern
+ removal operation is applied to each member of the array in
turn, and the expansion is the resultant list.
${_p_a_r_a_m_e_t_e_r//_p_a_t_t_e_r_n//_s_t_r_i_n_g}
+ ${_p_a_r_a_m_e_t_e_r////_p_a_t_t_e_r_n//_s_t_r_i_n_g}
+ ${_p_a_r_a_m_e_t_e_r//##_p_a_t_t_e_r_n//_s_t_r_i_n_g}
+ ${_p_a_r_a_m_e_t_e_r//%%_p_a_t_t_e_r_n//_s_t_r_i_n_g}
PPaatttteerrnn ssuubbssttiittuuttiioonn. The _p_a_t_t_e_r_n is expanded to produce a pat-
- tern just as in pathname expansion, _P_a_r_a_m_e_t_e_r is expanded and
- the longest match of _p_a_t_t_e_r_n against its value is replaced with
- _s_t_r_i_n_g. The match is performed using the rules described under
- PPaatttteerrnn MMaattcchhiinngg below. If _p_a_t_t_e_r_n begins with //, all matches
- of _p_a_t_t_e_r_n are replaced with _s_t_r_i_n_g. Normally only the first
- match is replaced. If _p_a_t_t_e_r_n begins with ##, it must match at
- the beginning of the expanded value of _p_a_r_a_m_e_t_e_r. If _p_a_t_t_e_r_n
- begins with %%, it must match at the end of the expanded value of
- _p_a_r_a_m_e_t_e_r. If _s_t_r_i_n_g is null, matches of _p_a_t_t_e_r_n are deleted
- and the // following _p_a_t_t_e_r_n may be omitted. If the nnooccaasseemmaattcchh
- shell option is enabled, the match is performed without regard
- to the case of alphabetic characters. If _p_a_r_a_m_e_t_e_r is @@ or **,
- the substitution operation is applied to each positional parame-
- ter in turn, and the expansion is the resultant list. If _p_a_r_a_m_-
- _e_t_e_r is an array variable subscripted with @@ or **, the substitu-
- tion operation is applied to each member of the array in turn,
- and the expansion is the resultant list.
+ tern just as in pathname expansion. _P_a_r_a_m_e_t_e_r is expanded and
+ the longest match of _p_a_t_t_e_r_n against its value is replaced with
+ _s_t_r_i_n_g. _s_t_r_i_n_g undergoes tilde expansion, parameter and vari-
+ able expansion, arithmetic expansion, command and process sub-
+ stitution, and quote removal. The match is performed using the
+ rules described under PPaatttteerrnn MMaattcchhiinngg below. In the first form
+ above, only the first match is replaced. If there are two
+ slashes separating _p_a_r_a_m_e_t_e_r and _p_a_t_t_e_r_n (the second form
+ above), all matches of _p_a_t_t_e_r_n are replaced with _s_t_r_i_n_g. If
+ _p_a_t_t_e_r_n is preceded by ## (the third form above), it must match
+ at the beginning of the expanded value of _p_a_r_a_m_e_t_e_r. If _p_a_t_t_e_r_n
+ is preceded by %% (the fourth form above), it must match at the
+ end of the expanded value of _p_a_r_a_m_e_t_e_r. If the expansion of
+ _s_t_r_i_n_g is null, matches of _p_a_t_t_e_r_n are deleted. If _s_t_r_i_n_g is
+ null, matches of _p_a_t_t_e_r_n are deleted and the // following _p_a_t_t_e_r_n
+ may be omitted.
+
+ If the ppaattssuubb__rreeppllaacceemmeenntt shell option is enabled using sshhoopptt,
+ any unquoted instances of && in _s_t_r_i_n_g are replaced with the
+ matching portion of _p_a_t_t_e_r_n.
+
+ Quoting any part of _s_t_r_i_n_g inhibits replacement in the expansion
+ of the quoted portion, including replacement strings stored in
+ shell variables. Backslash will escape && in _s_t_r_i_n_g; the back-
+ slash is removed in order to permit a literal && in the replace-
+ ment string. Backslash can also be used to escape a backslash;
+ \\\\ results in a literal backslash in the replacement. Users
+ should take care if _s_t_r_i_n_g is double-quoted to avoid unwanted
+ interactions between the backslash and double-quoting, since
+ backslash has special meaning within double quotes. Pattern
+ substitution performs the check for unquoted && after expanding
+ _s_t_r_i_n_g; shell programmers should quote any occurrences of && they
+ want to be taken literally in the replacement and ensure any in-
+ stances of && they want to be replaced are unquoted.
+
+ If the nnooccaasseemmaattcchh shell option is enabled, the match is per-
+ formed without regard to the case of alphabetic characters. If
+ _p_a_r_a_m_e_t_e_r is @@ or **, the substitution operation is applied to
+ each positional parameter in turn, and the expansion is the re-
+ sultant list. If _p_a_r_a_m_e_t_e_r is an array variable subscripted
+ with @@ or **, the substitution operation is applied to each mem-
+ ber of the array in turn, and the expansion is the resultant
+ list.
${_p_a_r_a_m_e_t_e_r^^_p_a_t_t_e_r_n}
${_p_a_r_a_m_e_t_e_r^^^^_p_a_t_t_e_r_n}
${_p_a_r_a_m_e_t_e_r,,_p_a_t_t_e_r_n}
${_p_a_r_a_m_e_t_e_r,,,,_p_a_t_t_e_r_n}
- CCaassee mmooddiiffiiccaattiioonn. This expansion modifies the case of alpha-
- betic characters in _p_a_r_a_m_e_t_e_r. The _p_a_t_t_e_r_n is expanded to pro-
+ CCaassee mmooddiiffiiccaattiioonn. This expansion modifies the case of alpha-
+ betic characters in _p_a_r_a_m_e_t_e_r. The _p_a_t_t_e_r_n is expanded to pro-
duce a pattern just as in pathname expansion. Each character in
- the expanded value of _p_a_r_a_m_e_t_e_r is tested against _p_a_t_t_e_r_n, and,
- if it matches the pattern, its case is converted. The pattern
- should not attempt to match more than one character. The ^^ op-
+ the expanded value of _p_a_r_a_m_e_t_e_r is tested against _p_a_t_t_e_r_n, and,
+ if it matches the pattern, its case is converted. The pattern
+ should not attempt to match more than one character. The ^^ op-
erator converts lowercase letters matching _p_a_t_t_e_r_n to uppercase;
the ,, operator converts matching uppercase letters to lowercase.
- The ^^^^ and ,,,, expansions convert each matched character in the
- expanded value; the ^^ and ,, expansions match and convert only
- the first character in the expanded value. If _p_a_t_t_e_r_n is omit-
- ted, it is treated like a ??, which matches every character. If
- _p_a_r_a_m_e_t_e_r is @@ or **, the case modification operation is applied
- to each positional parameter in turn, and the expansion is the
- resultant list. If _p_a_r_a_m_e_t_e_r is an array variable subscripted
- with @@ or **, the case modification operation is applied to each
- member of the array in turn, and the expansion is the resultant
+ The ^^^^ and ,,,, expansions convert each matched character in the
+ expanded value; the ^^ and ,, expansions match and convert only
+ the first character in the expanded value. If _p_a_t_t_e_r_n is omit-
+ ted, it is treated like a ??, which matches every character. If
+ _p_a_r_a_m_e_t_e_r is @@ or **, the case modification operation is applied
+ to each positional parameter in turn, and the expansion is the
+ resultant list. If _p_a_r_a_m_e_t_e_r is an array variable subscripted
+ with @@ or **, the case modification operation is applied to each
+ member of the array in turn, and the expansion is the resultant
list.
${_p_a_r_a_m_e_t_e_r@@_o_p_e_r_a_t_o_r}
PPaarraammeetteerr ttrraannssffoorrmmaattiioonn. The expansion is either a transforma-
- tion of the value of _p_a_r_a_m_e_t_e_r or information about _p_a_r_a_m_e_t_e_r
- itself, depending on the value of _o_p_e_r_a_t_o_r. Each _o_p_e_r_a_t_o_r is a
+ tion of the value of _p_a_r_a_m_e_t_e_r or information about _p_a_r_a_m_e_t_e_r
+ itself, depending on the value of _o_p_e_r_a_t_o_r. Each _o_p_e_r_a_t_o_r is a
single letter:
- UU The expansion is a string that is the value of _p_a_r_a_m_e_t_e_r
- with lowercase alphabetic characters converted to upper-
+ UU The expansion is a string that is the value of _p_a_r_a_m_e_t_e_r
+ with lowercase alphabetic characters converted to upper-
case.
- uu The expansion is a string that is the value of _p_a_r_a_m_e_t_e_r
+ uu The expansion is a string that is the value of _p_a_r_a_m_e_t_e_r
with the first character converted to uppercase, if it is
alphabetic.
- LL The expansion is a string that is the value of _p_a_r_a_m_e_t_e_r
- with uppercase alphabetic characters converted to lower-
+ LL The expansion is a string that is the value of _p_a_r_a_m_e_t_e_r
+ with uppercase alphabetic characters converted to lower-
case.
- QQ The expansion is a string that is the value of _p_a_r_a_m_e_t_e_r
+ QQ The expansion is a string that is the value of _p_a_r_a_m_e_t_e_r
quoted in a format that can be reused as input.
- EE The expansion is a string that is the value of _p_a_r_a_m_e_t_e_r
- with backslash escape sequences expanded as with the
+ EE The expansion is a string that is the value of _p_a_r_a_m_e_t_e_r
+ with backslash escape sequences expanded as with the
$$''......'' quoting mechanism.
PP The expansion is a string that is the result of expanding
the value of _p_a_r_a_m_e_t_e_r as if it were a prompt string (see
PPRROOMMPPTTIINNGG below).
- AA The expansion is a string in the form of an assignment
- statement or ddeeccllaarree command that, if evaluated, will
+ AA The expansion is a string in the form of an assignment
+ statement or ddeeccllaarree command that, if evaluated, will
recreate _p_a_r_a_m_e_t_e_r with its attributes and value.
KK Produces a possibly-quoted version of the value of _p_a_r_a_m_-
_e_t_e_r, except that it prints the values of indexed and as-
- sociative arrays as a sequence of quoted key-value pairs
+ sociative arrays as a sequence of quoted key-value pairs
(see AArrrraayyss above).
- aa The expansion is a string consisting of flag values rep-
+ aa The expansion is a string consisting of flag values rep-
resenting _p_a_r_a_m_e_t_e_r's attributes.
+ kk Like the K transformation, but expands the keys and val-
+ ues of indexed and associative arrays to separate words
+ after word splitting.
- If _p_a_r_a_m_e_t_e_r is @@ or **, the operation is applied to each posi-
- tional parameter in turn, and the expansion is the resultant
- list. If _p_a_r_a_m_e_t_e_r is an array variable subscripted with @@ or
+ If _p_a_r_a_m_e_t_e_r is @@ or **, the operation is applied to each posi-
+ tional parameter in turn, and the expansion is the resultant
+ list. If _p_a_r_a_m_e_t_e_r is an array variable subscripted with @@ or
**, the operation is applied to each member of the array in turn,
and the expansion is the resultant list.
- The result of the expansion is subject to word splitting and
+ The result of the expansion is subject to word splitting and
pathname expansion as described below.
CCoommmmaanndd SSuubbssttiittuuttiioonn
@@ -1890,108 +1963,111 @@ EEXXPPAANNSSIIOONN
BBaasshh performs the expansion by executing _c_o_m_m_a_n_d in a subshell environ-
ment and replacing the command substitution with the standard output of
the command, with any trailing newlines deleted. Embedded newlines are
- not deleted, but they may be removed during word splitting. The com-
- mand substitution $$((ccaatt _f_i_l_e)) can be replaced by the equivalent but
+ not deleted, but they may be removed during word splitting. The com-
+ mand substitution $$((ccaatt _f_i_l_e)) can be replaced by the equivalent but
faster $$((<< _f_i_l_e)).
- When the old-style backquote form of substitution is used, backslash
- retains its literal meaning except when followed by $$, ``, or \\. The
+ When the old-style backquote form of substitution is used, backslash
+ retains its literal meaning except when followed by $$, ``, or \\. The
first backquote not preceded by a backslash terminates the command sub-
- stitution. When using the $(_c_o_m_m_a_n_d) form, all characters between the
+ stitution. When using the $(_c_o_m_m_a_n_d) form, all characters between the
parentheses make up the command; none are treated specially.
Command substitutions may be nested. To nest when using the backquoted
form, escape the inner backquotes with backslashes.
- If the substitution appears within double quotes, word splitting and
+ If the substitution appears within double quotes, word splitting and
pathname expansion are not performed on the results.
AArriitthhmmeettiicc EExxppaannssiioonn
- Arithmetic expansion allows the evaluation of an arithmetic expression
- and the substitution of the result. The format for arithmetic expan-
+ Arithmetic expansion allows the evaluation of an arithmetic expression
+ and the substitution of the result. The format for arithmetic expan-
sion is:
$$((((_e_x_p_r_e_s_s_i_o_n))))
- The _e_x_p_r_e_s_s_i_o_n is treated as if it were within double quotes, but a
- double quote inside the parentheses is not treated specially. All to-
- kens in the expression undergo parameter and variable expansion, com-
- mand substitution, and quote removal. The result is treated as the
- arithmetic expression to be evaluated. Arithmetic expansions may be
- nested.
+ The _e_x_p_r_e_s_s_i_o_n undergoes the same expansions as if it were within dou-
+ ble quotes, but double quote characters in _e_x_p_r_e_s_s_i_o_n are not treated
+ specially and are removed. All tokens in the expression undergo param-
+ eter and variable expansion, command substitution, and quote removal.
+ The result is treated as the arithmetic expression to be evaluated.
+ Arithmetic expansions may be nested.
- The evaluation is performed according to the rules listed below under
+ The evaluation is performed according to the rules listed below under
AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN. If _e_x_p_r_e_s_s_i_o_n is invalid, bbaasshh prints a message
indicating failure and no substitution occurs.
PPrroocceessss SSuubbssttiittuuttiioonn
- _P_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n allows a process's input or output to be referred
- to using a filename. It takes the form of <<((_l_i_s_t)) or >>((_l_i_s_t)). The
- process _l_i_s_t is run asynchronously, and its input or output appears as
+ _P_r_o_c_e_s_s _s_u_b_s_t_i_t_u_t_i_o_n allows a process's input or output to be referred
+ to using a filename. It takes the form of <<((_l_i_s_t)) or >>((_l_i_s_t)). The
+ process _l_i_s_t is run asynchronously, and its input or output appears as
a filename. This filename is passed as an argument to the current com-
- mand as the result of the expansion. If the >>((_l_i_s_t)) form is used,
- writing to the file will provide input for _l_i_s_t. If the <<((_l_i_s_t)) form
- is used, the file passed as an argument should be read to obtain the
+ mand as the result of the expansion. If the >>((_l_i_s_t)) form is used,
+ writing to the file will provide input for _l_i_s_t. If the <<((_l_i_s_t)) form
+ is used, the file passed as an argument should be read to obtain the
output of _l_i_s_t. Process substitution is supported on systems that sup-
port named pipes (_F_I_F_O_s) or the //ddeevv//ffdd method of naming open files.
- When available, process substitution is performed simultaneously with
- parameter and variable expansion, command substitution, and arithmetic
+ When available, process substitution is performed simultaneously with
+ parameter and variable expansion, command substitution, and arithmetic
expansion.
WWoorrdd SSpplliittttiinngg
- The shell scans the results of parameter expansion, command substitu-
- tion, and arithmetic expansion that did not occur within double quotes
+ The shell scans the results of parameter expansion, command substitu-
+ tion, and arithmetic expansion that did not occur within double quotes
for _w_o_r_d _s_p_l_i_t_t_i_n_g.
- The shell treats each character of IIFFSS as a delimiter, and splits the
- results of the other expansions into words using these characters as
- field terminators. If IIFFSS is unset, or its value is exactly
- <<ssppaaccee>><<ttaabb>><<nneewwlliinnee>>, the default, then sequences of <<ssppaaccee>>, <<ttaabb>>,
- and <<nneewwlliinnee>> at the beginning and end of the results of the previous
- expansions are ignored, and any sequence of IIFFSS characters not at the
- beginning or end serves to delimit words. If IIFFSS has a value other
- than the default, then sequences of the whitespace characters ssppaaccee,
- ttaabb, and nneewwlliinnee are ignored at the beginning and end of the word, as
- long as the whitespace character is in the value of IIFFSS (an IIFFSS white-
- space character). Any character in IIFFSS that is not IIFFSS whitespace,
+ The shell treats each character of IIFFSS as a delimiter, and splits the
+ results of the other expansions into words using these characters as
+ field terminators. If IIFFSS is unset, or its value is exactly
+ <<ssppaaccee>><<ttaabb>><<nneewwlliinnee>>, the default, then sequences of <<ssppaaccee>>, <<ttaabb>>,
+ and <<nneewwlliinnee>> at the beginning and end of the results of the previous
+ expansions are ignored, and any sequence of IIFFSS characters not at the
+ beginning or end serves to delimit words. If IIFFSS has a value other
+ than the default, then sequences of the whitespace characters ssppaaccee,
+ ttaabb, and nneewwlliinnee are ignored at the beginning and end of the word, as
+ long as the whitespace character is in the value of IIFFSS (an IIFFSS white-
+ space character). Any character in IIFFSS that is not IIFFSS whitespace,
along with any adjacent IIFFSS whitespace characters, delimits a field. A
- sequence of IIFFSS whitespace characters is also treated as a delimiter.
+ sequence of IIFFSS whitespace characters is also treated as a delimiter.
If the value of IIFFSS is null, no word splitting occurs.
- Explicit null arguments ("""" or '''') are retained and passed to commands
+ Explicit null arguments ("""" or '''') are retained and passed to commands
as empty strings. Unquoted implicit null arguments, resulting from the
expansion of parameters that have no values, are removed. If a parame-
ter with no value is expanded within double quotes, a null argument re-
sults and is retained and passed to a command as an empty string. When
- a quoted null argument appears as part of a word whose expansion is
+ a quoted null argument appears as part of a word whose expansion is
non-null, the null argument is removed. That is, the word -d'' becomes
-d after word splitting and null argument removal.
Note that if no expansion occurs, no splitting is performed.
PPaatthhnnaammee EExxppaannssiioonn
- After word splitting, unless the --ff option has been set, bbaasshh scans
- each word for the characters **, ??, and [[. If one of these characters
+ After word splitting, unless the --ff option has been set, bbaasshh scans
+ each word for the characters **, ??, and [[. If one of these characters
appears, and is not quoted, then the word is regarded as a _p_a_t_t_e_r_n, and
- replaced with an alphabetically sorted list of filenames matching the
- pattern (see PPaatttteerrnn MMaattcchhiinngg below). If no matching filenames are
- found, and the shell option nnuullllgglloobb is not enabled, the word is left
- unchanged. If the nnuullllgglloobb option is set, and no matches are found,
- the word is removed. If the ffaaiillgglloobb shell option is set, and no
- matches are found, an error message is printed and the command is not
+ replaced with an alphabetically sorted list of filenames matching the
+ pattern (see PPaatttteerrnn MMaattcchhiinngg below). If no matching filenames are
+ found, and the shell option nnuullllgglloobb is not enabled, the word is left
+ unchanged. If the nnuullllgglloobb option is set, and no matches are found,
+ the word is removed. If the ffaaiillgglloobb shell option is set, and no
+ matches are found, an error message is printed and the command is not
executed. If the shell option nnooccaasseegglloobb is enabled, the match is per-
- formed without regard to the case of alphabetic characters. When a
- pattern is used for pathname expansion, the character ````..'''' at the
- start of a name or immediately following a slash must be matched ex-
- plicitly, unless the shell option ddoottgglloobb is set. The filenames ````..''''
- and ````....'''' must always be matched explicitly, even if ddoottgglloobb is set.
- In other cases, the ````..'''' character is not treated specially. When
- matching a pathname, the slash character must always be matched explic-
- itly by a slash in the pattern, but in other matching contexts it can
- be matched by a special pattern character as described below under PPaatt--
- tteerrnn MMaattcchhiinngg. See the description of sshhoopptt below under SSHHEELLLL BBUUIILLTTIINN
- CCOOMMMMAANNDDSS for a description of the nnooccaasseegglloobb, nnuullllgglloobb, ffaaiillgglloobb, and
+ formed without regard to the case of alphabetic characters. When a
+ pattern is used for pathname expansion, the character ````..'''' at the
+ start of a name or immediately following a slash must be matched ex-
+ plicitly, unless the shell option ddoottgglloobb is set. In order to match
+ the filenames ````..'''' and ````....'''', the pattern must begin with ``.'' (for
+ example, ``.?''), even if ddoottgglloobb is set. If the gglloobbsskkiippddoottss shell
+ option is enabled, the filenames ````..'''' and ````....'''' are never matched,
+ even if the pattern begins with a ````..''''. When not matching pathnames,
+ the ````..'''' character is not treated specially. When matching a path-
+ name, the slash character must always be matched explicitly by a slash
+ in the pattern, but in other matching contexts it can be matched by a
+ special pattern character as described below under PPaatttteerrnn MMaattcchhiinngg.
+ See the description of sshhoopptt below under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS for a
+ description of the nnooccaasseegglloobb, nnuullllgglloobb, gglloobbsskkiippddoottss, ffaaiillgglloobb, and
ddoottgglloobb shell options.
The GGLLOOBBIIGGNNOORREE shell variable may be used to restrict the set of file
@@ -2033,38 +2109,39 @@ EEXXPPAANNSSIIOONN
quence and character set, is matched. If the first char-
acter following the [[ is a !! or a ^^ then any character
not enclosed is matched. The sorting order of characters
- in range expressions is determined by the current locale
- and the values of the LLCC__CCOOLLLLAATTEE or LLCC__AALLLL shell vari-
- ables, if set. To obtain the traditional interpretation
- of range expressions, where [[aa--dd]] is equivalent to
- [[aabbccdd]], set value of the LLCC__AALLLL shell variable to CC, or
- enable the gglloobbaasscciiiirraannggeess shell option. A -- may be
- matched by including it as the first or last character in
- the set. A ]] may be matched by including it as the first
- character in the set.
-
- Within [[ and ]], _c_h_a_r_a_c_t_e_r _c_l_a_s_s_e_s can be specified using
+ in range expressions, and the characters included in the
+ range, are determined by the current locale and the val-
+ ues of the LLCC__CCOOLLLLAATTEE or LLCC__AALLLL shell variables, if set.
+ To obtain the traditional interpretation of range expres-
+ sions, where [[aa--dd]] is equivalent to [[aabbccdd]], set value of
+ the LLCC__AALLLL shell variable to CC, or enable the gglloobbaassccii--
+ iirraannggeess shell option. A -- may be matched by including it
+ as the first or last character in the set. A ]] may be
+ matched by including it as the first character in the
+ set.
+
+ Within [[ and ]], _c_h_a_r_a_c_t_e_r _c_l_a_s_s_e_s can be specified using
the syntax [[::_c_l_a_s_s::]], where _c_l_a_s_s is one of the following
classes defined in the POSIX standard:
- aallnnuumm aallpphhaa aasscciiii bbllaannkk ccnnttrrll ddiiggiitt ggrraapphh lloowweerr pprriinntt
+ aallnnuumm aallpphhaa aasscciiii bbllaannkk ccnnttrrll ddiiggiitt ggrraapphh lloowweerr pprriinntt
ppuunncctt ssppaaccee uuppppeerr wwoorrdd xxddiiggiitt
A character class matches any character belonging to that
class. The wwoorrdd character class matches letters, digits,
and the character _.
Within [[ and ]], an _e_q_u_i_v_a_l_e_n_c_e _c_l_a_s_s can be specified us-
- ing the syntax [[==_c==]], which matches all characters with
- the same collation weight (as defined by the current lo-
+ ing the syntax [[==_c==]], which matches all characters with
+ the same collation weight (as defined by the current lo-
cale) as the character _c.
Within [[ and ]], the syntax [[.._s_y_m_b_o_l..]] matches the collat-
ing symbol _s_y_m_b_o_l.
- If the eexxttgglloobb shell option is enabled using the sshhoopptt builtin, several
- extended pattern matching operators are recognized. In the following
- description, a _p_a_t_t_e_r_n_-_l_i_s_t is a list of one or more patterns separated
- by a ||. Composite patterns may be formed using one or more of the fol-
- lowing sub-patterns:
+ If the eexxttgglloobb shell option is enabled using the sshhoopptt builtin, the
+ shell recognizes several extended pattern matching operators. In the
+ following description, a _p_a_t_t_e_r_n_-_l_i_s_t is a list of one or more patterns
+ separated by a ||. Composite patterns may be formed using one or more
+ of the following sub-patterns:
??((_p_a_t_t_e_r_n_-_l_i_s_t))
Matches zero or one occurrence of the given patterns
@@ -2077,35 +2154,50 @@ 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 ``..''
+ must be matched by a pattern or sub-pattern that begins with a dot;
+ when it is disabled, the set does not include any filenames beginning
+ with ``.'' unless the pattern or sub-pattern begins with a ``.''. As
+ above, ``.'' only has a special meaning when matching filenames.
+
Complicated extended pattern matching against long strings is slow, es-
pecially when the patterns contain alternations and the strings contain
- multiple matches. Using separate matches against shorter strings, or
+ multiple matches. Using separate matches against shorter strings, or
using arrays of strings instead of a single long string, may be faster.
QQuuoottee RReemmoovvaall
After the preceding expansions, all unquoted occurrences of the charac-
- ters \\, '', and "" that did not result from one of the above expansions
+ ters \\, '', and "" that did not result from one of the above expansions
are removed.
RREEDDIIRREECCTTIIOONN
- Before a command is executed, its input and output may be _r_e_d_i_r_e_c_t_e_d
- using a special notation interpreted by the shell. Redirection allows
- commands' file handles to be duplicated, opened, closed, made to refer
+ Before a command is executed, its input and output may be _r_e_d_i_r_e_c_t_e_d
+ using a special notation interpreted by the shell. _R_e_d_i_r_e_c_t_i_o_n allows
+ commands' file handles to be duplicated, opened, closed, made to refer
to different files, and can change the files the command reads from and
- writes to. Redirection may also be used to modify file handles in the
- current shell execution environment. The following redirection opera-
+ writes to. Redirection may also be used to modify file handles in the
+ current shell execution environment. The following redirection opera-
tors may precede or appear anywhere within a _s_i_m_p_l_e _c_o_m_m_a_n_d or may fol-
- low a _c_o_m_m_a_n_d. Redirections are processed in the order they appear,
+ low a _c_o_m_m_a_n_d. Redirections are processed in the order they appear,
from left to right.
- Each redirection that may be preceded by a file descriptor number may
+ Each redirection that may be preceded by a file descriptor number may
instead be preceded by a word of the form {_v_a_r_n_a_m_e}. In this case, for
each redirection operator except >&- and <&-, the shell will allocate a
- file descriptor greater than or equal to 10 and assign it to _v_a_r_n_a_m_e.
- If >&- or <&- is preceded by {_v_a_r_n_a_m_e}, the value of _v_a_r_n_a_m_e defines
- the file descriptor to close. If {_v_a_r_n_a_m_e} is supplied, the redirect-
- ion persists beyond the scope of the command, allowing the shell pro-
- grammer to manage the file descriptor himself.
+ file descriptor greater than or equal to 10 and assign it to _v_a_r_n_a_m_e.
+ If >&- or <&- is preceded by {_v_a_r_n_a_m_e}, the value of _v_a_r_n_a_m_e defines
+ the file descriptor to close. If {_v_a_r_n_a_m_e} is supplied, the redirect-
+ ion persists beyond the scope of the command, allowing the shell pro-
+ grammer to manage the file descriptor's lifetime manually. The
+ vvaarrrreeddiirr__cclloossee shell option manages this behavior.
In the following descriptions, if the file descriptor number is omit-
ted, and the first character of the redirection operator is <<, the re-
@@ -2344,87 +2436,95 @@ AALLIIAASSEESS
the uunnaalliiaass command.
There is no mechanism for using arguments in the replacement text. If
- arguments are needed, a shell function should be used (see FFUUNNCCTTIIOONNSS
- below).
+ arguments are needed, use a shell function (see FFUUNNCCTTIIOONNSS below).
- Aliases are not expanded when the shell is not interactive, unless the
- eexxppaanndd__aalliiaasseess shell option is set using sshhoopptt (see the description of
+ Aliases are not expanded when the shell is not interactive, unless the
+ eexxppaanndd__aalliiaasseess shell option is set using sshhoopptt (see the description of
sshhoopptt under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
- The rules concerning the definition and use of aliases are somewhat
- confusing. BBaasshh always reads at least one complete line of input, and
- all lines that make up a compound command, before executing any of the
- commands on that line or the compound command. Aliases are expanded
- when a command is read, not when it is executed. Therefore, an alias
- definition appearing on the same line as another command does not take
- effect until the next line of input is read. The commands following
- the alias definition on that line are not affected by the new alias.
- This behavior is also an issue when functions are executed. Aliases
- are expanded when a function definition is read, not when the function
- is executed, because a function definition is itself a command. As a
- consequence, aliases defined in a function are not available until af-
- ter that function is executed. To be safe, always put alias defini-
+ The rules concerning the definition and use of aliases are somewhat
+ confusing. BBaasshh always reads at least one complete line of input, and
+ all lines that make up a compound command, before executing any of the
+ commands on that line or the compound command. Aliases are expanded
+ when a command is read, not when it is executed. Therefore, an alias
+ definition appearing on the same line as another command does not take
+ effect until the next line of input is read. The commands following
+ the alias definition on that line are not affected by the new alias.
+ This behavior is also an issue when functions are executed. Aliases
+ are expanded when a function definition is read, not when the function
+ is executed, because a function definition is itself a command. As a
+ consequence, aliases defined in a function are not available until af-
+ ter that function is executed. To be safe, always put alias defini-
tions on a separate line, and do not use aalliiaass in compound commands.
For almost every purpose, aliases are superseded by shell functions.
FFUUNNCCTTIIOONNSS
- A shell function, defined as described above under SSHHEELLLL GGRRAAMMMMAARR,
- stores a series of commands for later execution. When the name of a
- shell function is used as a simple command name, the list of commands
+ A shell function, defined as described above under SSHHEELLLL GGRRAAMMMMAARR,
+ stores a series of commands for later execution. When the name of a
+ shell function is used as a simple command name, the list of commands
associated with that function name is executed. Functions are executed
- in the context of the current shell; no new process is created to in-
- terpret them (contrast this with the execution of a shell script).
- When a function is executed, the arguments to the function become the
+ in the context of the current shell; no new process is created to in-
+ terpret them (contrast this with the execution of a shell script).
+ When a function is executed, the arguments to the function become the
positional parameters during its execution. The special parameter ## is
- updated to reflect the change. Special parameter 00 is unchanged. The
- first element of the FFUUNNCCNNAAMMEE variable is set to the name of the func-
+ updated to reflect the change. Special parameter 00 is unchanged. The
+ first element of the FFUUNNCCNNAAMMEE variable is set to the name of the func-
tion while the function is executing.
- All other aspects of the shell execution environment are identical be-
- tween a function and its caller with these exceptions: the DDEEBBUUGG and
- RREETTUURRNN traps (see the description of the ttrraapp builtin under SSHHEELLLL
- BBUUIILLTTIINN CCOOMMMMAANNDDSS below) are not inherited unless the function has been
- given the ttrraaccee attribute (see the description of the ddeeccllaarree builtin
- below) or the --oo ffuunnccttrraaccee shell option has been enabled with the sseett
- builtin (in which case all functions inherit the DDEEBBUUGG and RREETTUURRNN
- traps), and the EERRRR trap is not inherited unless the --oo eerrrrttrraaccee shell
+ All other aspects of the shell execution environment are identical be-
+ tween a function and its caller with these exceptions: the DDEEBBUUGG and
+ RREETTUURRNN traps (see the description of the ttrraapp builtin under SSHHEELLLL
+ BBUUIILLTTIINN CCOOMMMMAANNDDSS below) are not inherited unless the function has been
+ given the ttrraaccee attribute (see the description of the ddeeccllaarree builtin
+ below) or the --oo ffuunnccttrraaccee shell option has been enabled with the sseett
+ builtin (in which case all functions inherit the DDEEBBUUGG and RREETTUURRNN
+ traps), and the EERRRR trap is not inherited unless the --oo eerrrrttrraaccee shell
option has been enabled.
- Variables local to the function may be declared with the llooccaall builtin
- command. Ordinarily, variables and their values are shared between the
- function and its caller. If a variable is declared llooccaall, the vari-
- able's visible scope is restricted to that function and its children
- (including the functions it calls). Local variables "shadow" variables
- with the same name declared at previous scopes. For instance, a local
- variable declared in a function hides a global variable of the same
- name: references and assignments refer to the local variable, leaving
- the global variable unmodified. When the function returns, the global
- variable is once again visible.
-
- The shell uses _d_y_n_a_m_i_c _s_c_o_p_i_n_g to control a variable's visibility
- within functions. With dynamic scoping, visible variables and their
- values are a result of the sequence of function calls that caused exe-
- cution to reach the current function. The value of a variable that a
- function sees depends on its value within its caller, if any, whether
- that caller is the "global" scope or another shell function. This is
- also the value that a local variable declaration "shadows", and the
+ Variables local to the function may be declared with the llooccaall builtin
+ command (_l_o_c_a_l _v_a_r_i_a_b_l_e_s). Ordinarily, variables and their values are
+ shared between the function and its caller. If a variable is declared
+ llooccaall, the variable's visible scope is restricted to that function and
+ its children (including the functions it calls).
+
+ In the following description, the _c_u_r_r_e_n_t _s_c_o_p_e is a currently- execut-
+ ing function. Previous scopes consist of that function's caller and so
+ on, back to the "global" scope, where the shell is not executing any
+ shell function. Consequently, a local variable at the current scope is
+ a variable declared using the llooccaall or ddeeccllaarree builtins in the function
+ that is currently executing.
+
+ Local variables "shadow" variables with the same name declared at pre-
+ vious scopes. For instance, a local variable declared in a function
+ hides a global variable of the same name: references and assignments
+ refer to the local variable, leaving the global variable unmodified.
+ When the function returns, the global variable is once again visible.
+
+ The shell uses _d_y_n_a_m_i_c _s_c_o_p_i_n_g to control a variable's visibility
+ within functions. With dynamic scoping, visible variables and their
+ values are a result of the sequence of function calls that caused exe-
+ cution to reach the current function. The value of a variable that a
+ function sees depends on its value within its caller, if any, whether
+ that caller is the "global" scope or another shell function. This is
+ also the value that a local variable declaration "shadows", and the
value that is restored when the function returns.
- For example, if a variable _v_a_r is declared as local in function _f_u_n_c_1,
- and _f_u_n_c_1 calls another function _f_u_n_c_2, references to _v_a_r made from
+ For example, if a variable _v_a_r is declared as local in function _f_u_n_c_1,
+ and _f_u_n_c_1 calls another function _f_u_n_c_2, references to _v_a_r made from
within _f_u_n_c_2 will resolve to the local variable _v_a_r from _f_u_n_c_1, shadow-
ing any global variable named _v_a_r.
The uunnsseett builtin also acts using the same dynamic scope: if a variable
is local to the current scope, uunnsseett will unset it; otherwise the unset
- will refer to the variable found in any calling scope as described
- above. If a variable at the current local scope is unset, it will re-
- main so until it is reset in that scope or until the function returns.
- Once the function returns, any instance of the variable at a previous
- scope will become visible. If the unset acts on a variable at a previ-
- ous scope, any instance of a variable with that name that had been
- shadowed will become visible.
+ will refer to the variable found in any calling scope as described
+ above. If a variable at the current local scope is unset, it will re-
+ main so (appearing as unset) until it is reset in that scope or until
+ the function returns. Once the function returns, any instance of the
+ variable at a previous scope will become visible. If the unset acts on
+ a variable at a previous scope, any instance of a variable with that
+ name that had been shadowed will become visible (see below how the lloo--
+ ccaallvvaarr__uunnsseett shell option changes this behavior).
The FFUUNNCCNNEESSTT variable, if set to a numeric value greater than 0, de-
fines a maximum function nesting level. Function invocations that ex-
@@ -2441,22 +2541,23 @@ FFUUNNCCTTIIOONNSS
ddeeccllaarree or ttyyppeesseett builtin commands. The --FF option to ddeeccllaarree or ttyyppee--
sseett will list the function names only (and optionally the source file
and line number, if the eexxttddeebbuugg shell option is enabled). Functions
- may be exported so that subshells automatically have them defined with
- the --ff option to the eexxppoorrtt builtin. A function definition may be
+ may be exported so that child shell processes (those created when exe-
+ cuting a separate shell invocation) automatically have them defined
+ with the --ff option to the eexxppoorrtt builtin. A function definition may be
deleted using the --ff option to the uunnsseett builtin.
Functions may be recursive. The FFUUNNCCNNEESSTT variable may be used to limit
- the depth of the function call stack and restrict the number of func-
+ the depth of the function call stack and restrict the number of func-
tion invocations. By default, no limit is imposed on the number of re-
cursive calls.
AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN
- The shell allows arithmetic expressions to be evaluated, under certain
- circumstances (see the lleett and ddeeccllaarree builtin commands, the (((( com-
+ The shell allows arithmetic expressions to be evaluated, under certain
+ circumstances (see the lleett and ddeeccllaarree builtin commands, the (((( com-
pound command, and AArriitthhmmeettiicc EExxppaannssiioonn). Evaluation is done in fixed-
- width integers with no check for overflow, though division by 0 is
- trapped and flagged as an error. The operators and their precedence,
- associativity, and values are the same as in the C language. The fol-
+ width integers with no check for overflow, though division by 0 is
+ trapped and flagged as an error. The operators and their precedence,
+ associativity, and values are the same as in the C language. The fol-
lowing list of operators is grouped into levels of equal-precedence op-
erators. The levels are listed in order of decreasing precedence.
@@ -2485,55 +2586,55 @@ AARRIITTHHMMEETTIICC EEVVAALLUUAATTIIOONN
_e_x_p_r_1 ,, _e_x_p_r_2
comma
- Shell variables are allowed as operands; parameter expansion is per-
+ Shell variables are allowed as operands; parameter expansion is per-
formed before the expression is evaluated. Within an expression, shell
- variables may also be referenced by name without using the parameter
- expansion syntax. A shell variable that is null or unset evaluates to
+ variables may also be referenced by name without using the parameter
+ expansion syntax. A shell variable that is null or unset evaluates to
0 when referenced by name without using the parameter expansion syntax.
- The value of a variable is evaluated as an arithmetic expression when
- it is referenced, or when a variable which has been given the _i_n_t_e_g_e_r
+ The value of a variable is evaluated as an arithmetic expression when
+ it is referenced, or when a variable which has been given the _i_n_t_e_g_e_r
attribute using ddeeccllaarree --ii is assigned a value. A null value evaluates
- to 0. A shell variable need not have its _i_n_t_e_g_e_r attribute turned on
+ to 0. A shell variable need not have its _i_n_t_e_g_e_r attribute turned on
to be used in an expression.
Integer constants follow the C language definition, without suffixes or
character constants. Constants with a leading 0 are interpreted as oc-
- tal numbers. A leading 0x or 0X denotes hexadecimal. Otherwise, num-
- bers take the form [_b_a_s_e_#]n, where the optional _b_a_s_e is a decimal num-
- ber between 2 and 64 representing the arithmetic base, and _n is a num-
- ber in that base. If _b_a_s_e_# is omitted, then base 10 is used. When
+ tal numbers. A leading 0x or 0X denotes hexadecimal. Otherwise, num-
+ bers take the form [_b_a_s_e_#]n, where the optional _b_a_s_e is a decimal num-
+ ber between 2 and 64 representing the arithmetic base, and _n is a num-
+ ber in that base. If _b_a_s_e_# is omitted, then base 10 is used. When
specifying _n, if a non-digit is required, the digits greater than 9 are
- represented by the lowercase letters, the uppercase letters, @, and _,
- in that order. If _b_a_s_e is less than or equal to 36, lowercase and up-
- percase letters may be used interchangeably to represent numbers be-
+ represented by the lowercase letters, the uppercase letters, @, and _,
+ in that order. If _b_a_s_e is less than or equal to 36, lowercase and up-
+ percase letters may be used interchangeably to represent numbers be-
tween 10 and 35.
- Operators are evaluated in order of precedence. Sub-expressions in
- parentheses are evaluated first and may override the precedence rules
+ Operators are evaluated in order of precedence. Sub-expressions in
+ parentheses are evaluated first and may override the precedence rules
above.
CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS
- Conditional expressions are used by the [[[[ compound command and the
- tteesstt and [[ builtin commands to test file attributes and perform string
- and arithmetic comparisons. The tteesstt and [[ commands determine their
- behavior based on the number of arguments; see the descriptions of
+ Conditional expressions are used by the [[[[ compound command and the
+ tteesstt and [[ builtin commands to test file attributes and perform string
+ and arithmetic comparisons. The tteesstt and [[ commands determine their
+ behavior based on the number of arguments; see the descriptions of
those commands for any other command-specific actions.
- Expressions are formed from the following unary or binary primaries.
- BBaasshh handles several filenames specially when they are used in expres-
+ Expressions are formed from the following unary or binary primaries.
+ BBaasshh handles several filenames specially when they are used in expres-
sions. If the operating system on which bbaasshh is running provides these
- special files, bash will use them; otherwise it will emulate them in-
- ternally with this behavior: If any _f_i_l_e argument to one of the pri-
+ special files, bash will use them; otherwise it will emulate them in-
+ ternally with this behavior: If any _f_i_l_e argument to one of the pri-
maries is of the form _/_d_e_v_/_f_d_/_n, then file descriptor _n is checked. If
- the _f_i_l_e argument to one of the primaries is one of _/_d_e_v_/_s_t_d_i_n,
- _/_d_e_v_/_s_t_d_o_u_t, or _/_d_e_v_/_s_t_d_e_r_r, file descriptor 0, 1, or 2, respectively,
+ the _f_i_l_e argument to one of the primaries is one of _/_d_e_v_/_s_t_d_i_n,
+ _/_d_e_v_/_s_t_d_o_u_t, or _/_d_e_v_/_s_t_d_e_r_r, file descriptor 0, 1, or 2, respectively,
is checked.
Unless otherwise specified, primaries that operate on files follow sym-
bolic links and operate on the target of the link, rather than the link
itself.
- When used with [[[[, the << and >> operators sort lexicographically using
+ When used with [[[[, the << and >> operators sort lexicographically using
the current locale. The tteesstt command sorts using ASCII ordering.
--aa _f_i_l_e
@@ -2572,30 +2673,30 @@ CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS
--LL _f_i_l_e
True if _f_i_l_e exists and is a symbolic link.
--NN _f_i_l_e
- True if _f_i_l_e exists and has been modified since it was last
+ True if _f_i_l_e exists and has been modified since it was last
read.
--OO _f_i_l_e
True if _f_i_l_e exists and is owned by the effective user id.
--SS _f_i_l_e
True if _f_i_l_e exists and is a socket.
_f_i_l_e_1 --eeff _f_i_l_e_2
- True if _f_i_l_e_1 and _f_i_l_e_2 refer to the same device and inode num-
+ True if _f_i_l_e_1 and _f_i_l_e_2 refer to the same device and inode num-
bers.
_f_i_l_e_1 -nntt _f_i_l_e_2
- True if _f_i_l_e_1 is newer (according to modification date) than
+ True if _f_i_l_e_1 is newer (according to modification date) than
_f_i_l_e_2, or if _f_i_l_e_1 exists and _f_i_l_e_2 does not.
_f_i_l_e_1 -oott _f_i_l_e_2
- True if _f_i_l_e_1 is older than _f_i_l_e_2, or if _f_i_l_e_2 exists and _f_i_l_e_1
+ True if _f_i_l_e_1 is older than _f_i_l_e_2, or if _f_i_l_e_2 exists and _f_i_l_e_1
does not.
--oo _o_p_t_n_a_m_e
- True if the shell option _o_p_t_n_a_m_e is enabled. See the list of
- options under the description of the --oo option to the sseett
+ True if the shell option _o_p_t_n_a_m_e is enabled. See the list of
+ options under the description of the --oo option to the sseett
builtin below.
--vv _v_a_r_n_a_m_e
- True if the shell variable _v_a_r_n_a_m_e is set (has been assigned a
+ True if the shell variable _v_a_r_n_a_m_e is set (has been assigned a
value).
--RR _v_a_r_n_a_m_e
- True if the shell variable _v_a_r_n_a_m_e is set and is a name refer-
+ True if the shell variable _v_a_r_n_a_m_e is set and is a name refer-
ence.
--zz _s_t_r_i_n_g
True if the length of _s_t_r_i_n_g is zero.
@@ -2605,8 +2706,8 @@ CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS
_s_t_r_i_n_g_1 ==== _s_t_r_i_n_g_2
_s_t_r_i_n_g_1 == _s_t_r_i_n_g_2
- True if the strings are equal. == should be used with the tteesstt
- command for POSIX conformance. When used with the [[[[ command,
+ True if the strings are equal. == should be used with the tteesstt
+ command for POSIX conformance. When used with the [[[[ command,
this performs pattern matching as described above (CCoommppoouunndd CCoomm--
mmaannddss).
@@ -2620,90 +2721,93 @@ CCOONNDDIITTIIOONNAALL EEXXPPRREESSSSIIOONNSS
True if _s_t_r_i_n_g_1 sorts after _s_t_r_i_n_g_2 lexicographically.
_a_r_g_1 OOPP _a_r_g_2
- OOPP is one of --eeqq, --nnee, --lltt, --llee, --ggtt, or --ggee. These arithmetic
- binary operators return true if _a_r_g_1 is equal to, not equal to,
- less than, less than or equal to, greater than, or greater than
- or equal to _a_r_g_2, respectively. _A_r_g_1 and _a_r_g_2 may be positive
- or negative integers. When used with the [[[[ command, _A_r_g_1 and
- _A_r_g_2 are evaluated as arithmetic expressions (see AARRIITTHHMMEETTIICC
+ OOPP is one of --eeqq, --nnee, --lltt, --llee, --ggtt, or --ggee. These arithmetic
+ binary operators return true if _a_r_g_1 is equal to, not equal to,
+ less than, less than or equal to, greater than, or greater than
+ or equal to _a_r_g_2, respectively. _A_r_g_1 and _a_r_g_2 may be positive
+ or negative integers. When used with the [[[[ command, _A_r_g_1 and
+ _A_r_g_2 are evaluated as arithmetic expressions (see AARRIITTHHMMEETTIICC
EEVVAALLUUAATTIIOONN above).
SSIIMMPPLLEE CCOOMMMMAANNDD EEXXPPAANNSSIIOONN
When a simple command is executed, the shell performs the following ex-
- pansions, assignments, and redirections, from left to right, in the
+ pansions, assignments, and redirections, from left to right, in the
following order.
- 1. The words that the parser has marked as variable assignments
- (those preceding the command name) and redirections are saved
+ 1. The words that the parser has marked as variable assignments
+ (those preceding the command name) and redirections are saved
for later processing.
- 2. The words that are not variable assignments or redirections are
- expanded. If any words remain after expansion, the first word
- is taken to be the name of the command and the remaining words
+ 2. The words that are not variable assignments or redirections are
+ expanded. If any words remain after expansion, the first word
+ is taken to be the name of the command and the remaining words
are the arguments.
3. Redirections are performed as described above under RREEDDIIRREECCTTIIOONN.
4. The text after the == in each variable assignment undergoes tilde
expansion, parameter expansion, command substitution, arithmetic
- expansion, and quote removal before being assigned to the vari-
+ expansion, and quote removal before being assigned to the vari-
able.
If no command name results, the variable assignments affect the current
- shell environment. Otherwise, the variables are added to the environ-
- ment of the executed command and do not affect the current shell envi-
- ronment. If any of the assignments attempts to assign a value to a
- readonly variable, an error occurs, and the command exits with a non-
- zero status.
-
- If no command name results, redirections are performed, but do not af-
- fect the current shell environment. A redirection error causes the
+ shell environment. In the case of such a command (one that consists
+ only of assignment statements and redirections), assignment statements
+ are performed before redirections. Otherwise, the variables are added
+ to the environment of the executed command and do not affect the cur-
+ rent shell environment. If any of the assignments attempts to assign a
+ value to a readonly variable, an error occurs, and the command exits
+ with a non-zero status.
+
+ If no command name results, redirections are performed, but do not af-
+ fect the current shell environment. A redirection error causes the
command to exit with a non-zero status.
- If there is a command name left after expansion, execution proceeds as
- described below. Otherwise, the command exits. If one of the expan-
- sions contained a command substitution, the exit status of the command
- is the exit status of the last command substitution performed. If
+ If there is a command name left after expansion, execution proceeds as
+ described below. Otherwise, the command exits. If one of the expan-
+ sions contained a command substitution, the exit status of the command
+ is the exit status of the last command substitution performed. If
there were no command substitutions, the command exits with a status of
zero.
CCOOMMMMAANNDD EEXXEECCUUTTIIOONN
- After a command has been split into words, if it results in a simple
- command and an optional list of arguments, the following actions are
+ After a command has been split into words, if it results in a simple
+ command and an optional list of arguments, the following actions are
taken.
- If the command name contains no slashes, the shell attempts to locate
- it. If there exists a shell function by that name, that function is
- invoked as described above in FFUUNNCCTTIIOONNSS. If the name does not match a
- function, the shell searches for it in the list of shell builtins. If
+ If the command name contains no slashes, the shell attempts to locate
+ it. If there exists a shell function by that name, that function is
+ invoked as described above in FFUUNNCCTTIIOONNSS. If the name does not match a
+ function, the shell searches for it in the list of shell builtins. If
a match is found, that builtin is invoked.
- If the name is neither a shell function nor a builtin, and contains no
- slashes, bbaasshh searches each element of the PPAATTHH for a directory con-
+ If the name is neither a shell function nor a builtin, and contains no
+ slashes, bbaasshh searches each element of the PPAATTHH for a directory con-
taining an executable file by that name. BBaasshh uses a hash table to re-
- member the full pathnames of executable files (see hhaasshh under SSHHEELLLL
- BBUUIILLTTIINN CCOOMMMMAANNDDSS below). A full search of the directories in PPAATTHH is
- performed only if the command is not found in the hash table. If the
+ member the full pathnames of executable files (see hhaasshh under SSHHEELLLL
+ BBUUIILLTTIINN CCOOMMMMAANNDDSS below). A full search of the directories in PPAATTHH is
+ performed only if the command is not found in the hash table. If the
search is unsuccessful, the shell searches for a defined shell function
named ccoommmmaanndd__nnoott__ffoouunndd__hhaannddllee. If that function exists, it is invoked
- in a separate execution environment with the original command and the
- original command's arguments as its arguments, and the function's exit
- status becomes the exit status of that subshell. If that function is
+ in a separate execution environment with the original command and the
+ original command's arguments as its arguments, and the function's exit
+ status becomes the exit status of that subshell. If that function is
not defined, the shell prints an error message and returns an exit sta-
tus of 127.
- If the search is successful, or if the command name contains one or
+ If the search is successful, or if the command name contains one or
more slashes, the shell executes the named program in a separate execu-
tion environment. Argument 0 is set to the name given, and the remain-
ing arguments to the command are set to the arguments given, if any.
- If this execution fails because the file is not in executable format,
- and the file is not a directory, it is assumed to be a _s_h_e_l_l _s_c_r_i_p_t, a
- file containing shell commands. A subshell is spawned to execute it.
- This subshell reinitializes itself, so that the effect is as if a new
- shell had been invoked to handle the script, with the exception that
- the locations of commands remembered by the parent (see hhaasshh below un-
- der SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS) are retained by the child.
+ If this execution fails because the file is not in executable format,
+ and the file is not a directory, it is assumed to be a _s_h_e_l_l _s_c_r_i_p_t, a
+ file containing shell commands, and the shell creates a new instance of
+ itself to execute it. This subshell reinitializes itself, so that the
+ effect is as if a new shell had been invoked to handle the script, with
+ the exception that the locations of commands remembered by the parent
+ (see hhaasshh below under SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS) are retained by the
+ child.
If the program is a file beginning with ##!!, the remainder of the first
line specifies an interpreter for the program. The shell executes the
@@ -2766,6 +2870,8 @@ CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENN
A command invoked in this separate environment cannot affect the
shell's execution environment.
+ A _s_u_b_s_h_e_l_l is a copy of the shell process.
+
Command substitution, commands grouped with parentheses, and asynchro-
nous commands are invoked in a subshell environment that is a duplicate
of the shell environment, except that traps caught by the shell are re-
@@ -2838,42 +2944,70 @@ EEXXIITT SSTTAATTUUSS
return an exit status of 2 to indicate incorrect usage, generally in-
valid options or missing arguments.
- BBaasshh itself returns the exit status of the last command executed, un-
- less a syntax error occurs, in which case it exits with a non-zero
+ The exit status of the last command is available in the special parame-
+ ter $?.
+
+ BBaasshh itself returns the exit status of the last command executed, un-
+ less a syntax error occurs, in which case it exits with a non-zero
value. See also the eexxiitt builtin command below.
SSIIGGNNAALLSS
- When bbaasshh is interactive, in the absence of any traps, it ignores
+ When bbaasshh is interactive, in the absence of any traps, it ignores
SSIIGGTTEERRMM (so that kkiillll 00 does not kill an interactive shell), and SSIIGGIINNTT
- is caught and handled (so that the wwaaiitt builtin is interruptible). In
+ is caught and handled (so that the wwaaiitt builtin is interruptible). In
all cases, bbaasshh ignores SSIIGGQQUUIITT. If job control is in effect, bbaasshh ig-
nores SSIIGGTTTTIINN, SSIIGGTTTTOOUU, and SSIIGGTTSSTTPP.
Non-builtin commands run by bbaasshh have signal handlers set to the values
inherited by the shell from its parent. When job control is not in ef-
- fect, asynchronous commands ignore SSIIGGIINNTT and SSIIGGQQUUIITT in addition to
- these inherited handlers. Commands run as a result of command substi-
+ fect, asynchronous commands ignore SSIIGGIINNTT and SSIIGGQQUUIITT in addition to
+ these inherited handlers. Commands run as a result of command substi-
tution ignore the keyboard-generated job control signals SSIIGGTTTTIINN, SSIIGGTT--
TTOOUU, and SSIIGGTTSSTTPP.
- The shell exits by default upon receipt of a SSIIGGHHUUPP. Before exiting,
- an interactive shell resends the SSIIGGHHUUPP to all jobs, running or
+ The shell exits by default upon receipt of a SSIIGGHHUUPP. Before exiting,
+ an interactive shell resends the SSIIGGHHUUPP to all jobs, running or
stopped. Stopped jobs are sent SSIIGGCCOONNTT to ensure that they receive the
- SSIIGGHHUUPP. To prevent the shell from sending the signal to a particular
- job, it should be removed from the jobs table with the ddiissoowwnn builtin
- (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below) or marked to not receive SSIIGGHHUUPP us-
+ SSIIGGHHUUPP. To prevent the shell from sending the signal to a particular
+ job, it should be removed from the jobs table with the ddiissoowwnn builtin
+ (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below) or marked to not receive SSIIGGHHUUPP us-
ing ddiissoowwnn --hh.
- If the hhuuppoonneexxiitt shell option has been set with sshhoopptt, bbaasshh sends a
+ If the hhuuppoonneexxiitt shell option has been set with sshhoopptt, bbaasshh sends a
SSIIGGHHUUPP to all jobs when an interactive login shell exits.
- If bbaasshh is waiting for a command to complete and receives a signal for
+ If bbaasshh is waiting for a command to complete and receives a signal for
which a trap has been set, the trap will not be executed until the com-
- mand completes. When bbaasshh is waiting for an asynchronous command via
- the wwaaiitt builtin, the reception of a signal for which a trap has been
+ mand completes. When bbaasshh is waiting for an asynchronous command via
+ the wwaaiitt builtin, the reception of a signal for which a trap has been
set will cause the wwaaiitt builtin to return immediately with an exit sta-
tus greater than 128, immediately after which the trap is executed.
+ When job control is not enabled, and bbaasshh is waiting for a foreground
+ command to complete, the shell receives keyboard-generated signals such
+ as SSIIGGIINNTT (usually generated by ^^CC) that users commonly intend to send
+ to that command. This happens because the shell and the command are in
+ the same process group as the terminal, and ^^CC sends SSIIGGIINNTT to all pro-
+ cesses in that process group.
+
+ When bbaasshh is running without job control enabled and receives SSIIGGIINNTT
+ while waiting for a foreground command, it waits until that foreground
+ command terminates and then decides what to do about the SSIIGGIINNTT:
+
+ 1. If the command terminates due to the SSIIGGIINNTT, bbaasshh concludes that
+ the user meant to end the entire script, and acts on the SSIIGGIINNTT
+ (e.g., by running a SSIIGGIINNTT trap or exiting itself);
+
+ 2. If the command does not terminate due to SSIIGGIINNTT, the program
+ handled the SSIIGGIINNTT itself and did not treat it as a fatal sig-
+ nal. In that case, bbaasshh does not treat SSIIGGIINNTT as a fatal sig-
+ nal, either, instead assuming that the SSIIGGIINNTT was used as part
+ of the program's normal operation (e.g., emacs uses it to abort
+ editing commands) or deliberately discarded. However, bbaasshh will
+ run any trap set on SSIIGGIINNTT, as it does with any other trapped
+ signal it receives while it is waiting for the foreground com-
+ mand to complete, for compatibility.
+
JJOOBB CCOONNTTRROOLL
_J_o_b _c_o_n_t_r_o_l refers to the ability to selectively stop (_s_u_s_p_e_n_d) the ex-
ecution of processes and continue (_r_e_s_u_m_e) their execution at a later
@@ -2994,80 +3128,79 @@ PPRROOMMPPTTIINNGG
\\uu the username of the current user
\\vv the version of bbaasshh (e.g., 2.00)
\\VV the release of bbaasshh, version + patch level (e.g., 2.00.0)
- \\ww the current working directory, with $$HHOOMMEE abbreviated
- with a tilde (uses the value of the PPRROOMMPPTT__DDIIRRTTRRIIMM vari-
- able)
- \\WW the basename of the current working directory, with $$HHOOMMEE
- abbreviated with a tilde
+ \\ww the value of the PPWWDD shell variable ($$PPWWDD), with $$HHOOMMEE
+ abbreviated with a tilde (uses the value of the
+ PPRROOMMPPTT__DDIIRRTTRRIIMM variable)
+ \\WW the basename of $$PPWWDD, with $$HHOOMMEE abbreviated with a tilde
\\!! the history number of this command
\\## the command number of this command
\\$$ if the effective UID is 0, a ##, otherwise a $$
\\_n_n_n the character corresponding to the octal number _n_n_n
\\\\ a backslash
- \\[[ begin a sequence of non-printing characters, which could
- be used to embed a terminal control sequence into the
+ \\[[ begin a sequence of non-printing characters, which could
+ be used to embed a terminal control sequence into the
prompt
\\]] end a sequence of non-printing characters
- The command number and the history number are usually different: the
- history number of a command is its position in the history list, which
- may include commands restored from the history file (see HHIISSTTOORRYY be-
- low), while the command number is the position in the sequence of com-
- mands executed during the current shell session. After the string is
- decoded, it is expanded via parameter expansion, command substitution,
- arithmetic expansion, and quote removal, subject to the value of the
+ The command number and the history number are usually different: the
+ history number of a command is its position in the history list, which
+ may include commands restored from the history file (see HHIISSTTOORRYY be-
+ low), while the command number is the position in the sequence of com-
+ mands executed during the current shell session. After the string is
+ decoded, it is expanded via parameter expansion, command substitution,
+ arithmetic expansion, and quote removal, subject to the value of the
pprroommppttvvaarrss shell option (see the description of the sshhoopptt command under
- SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). This can have unwanted side effects if
- escaped portions of the string appear within command substitution or
+ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). This can have unwanted side effects if
+ escaped portions of the string appear within command substitution or
contain characters special to word expansion.
RREEAADDLLIINNEE
- This is the library that handles reading input when using an interac-
+ This is the library that handles reading input when using an interac-
tive shell, unless the ----nnooeeddiittiinngg option is given at shell invocation.
Line editing is also used when using the --ee option to the rreeaadd builtin.
By default, the line editing commands are similar to those of Emacs. A
vi-style line editing interface is also available. Line editing can be
- enabled at any time using the --oo eemmaaccss or --oo vvii options to the sseett
- builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). To turn off line editing
- after the shell is running, use the ++oo eemmaaccss or ++oo vvii options to the
+ enabled at any time using the --oo eemmaaccss or --oo vvii options to the sseett
+ builtin (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below). To turn off line editing
+ after the shell is running, use the ++oo eemmaaccss or ++oo vvii options to the
sseett builtin.
RReeaaddlliinnee NNoottaattiioonn
In this section, the Emacs-style notation is used to denote keystrokes.
- Control keys are denoted by C-_k_e_y, e.g., C-n means Control-N. Simi-
- larly, _m_e_t_a keys are denoted by M-_k_e_y, so M-x means Meta-X. (On key-
- boards without a _m_e_t_a key, M-_x means ESC _x, i.e., press the Escape key
+ Control keys are denoted by C-_k_e_y, e.g., C-n means Control-N. Simi-
+ larly, _m_e_t_a keys are denoted by M-_k_e_y, so M-x means Meta-X. (On key-
+ boards without a _m_e_t_a key, M-_x means ESC _x, i.e., press the Escape key
then the _x key. This makes ESC the _m_e_t_a _p_r_e_f_i_x. The combination M-C-_x
- means ESC-Control-_x, or press the Escape key then hold the Control key
+ means ESC-Control-_x, or press the Escape key then hold the Control key
while pressing the _x key.)
Readline commands may be given numeric _a_r_g_u_m_e_n_t_s, which normally act as
- a repeat count. Sometimes, however, it is the sign of the argument
- that is significant. Passing a negative argument to a command that
- acts in the forward direction (e.g., kkiillll--lliinnee) causes that command to
- act in a backward direction. Commands whose behavior with arguments
+ a repeat count. Sometimes, however, it is the sign of the argument
+ that is significant. Passing a negative argument to a command that
+ acts in the forward direction (e.g., kkiillll--lliinnee) causes that command to
+ act in a backward direction. Commands whose behavior with arguments
deviates from this are noted below.
- When a command is described as _k_i_l_l_i_n_g text, the text deleted is saved
+ When a command is described as _k_i_l_l_i_n_g text, the text deleted is saved
for possible future retrieval (_y_a_n_k_i_n_g). The killed text is saved in a
_k_i_l_l _r_i_n_g. Consecutive kills cause the text to be accumulated into one
unit, which can be yanked all at once. Commands which do not kill text
separate the chunks of text on the kill ring.
RReeaaddlliinnee IInniittiiaalliizzaattiioonn
- Readline is customized by putting commands in an initialization file
- (the _i_n_p_u_t_r_c file). The name of this file is taken from the value of
+ Readline is customized by putting commands in an initialization file
+ (the _i_n_p_u_t_r_c file). The name of this file is taken from the value of
the IINNPPUUTTRRCC variable. If that variable is unset, the default is _~_/_._i_n_-
- _p_u_t_r_c. If that file does not exist or cannot be read, the ultimate
- default is _/_e_t_c_/_i_n_p_u_t_r_c. When a program which uses the readline li-
- brary starts up, the initialization file is read, and the key bindings
- and variables are set. There are only a few basic constructs allowed
- in the readline initialization file. Blank lines are ignored. Lines
- beginning with a ## are comments. Lines beginning with a $$ indicate
- conditional constructs. Other lines denote key bindings and variable
+ _p_u_t_r_c. If that file does not exist or cannot be read, the ultimate
+ default is _/_e_t_c_/_i_n_p_u_t_r_c. When a program which uses the readline li-
+ brary starts up, the initialization file is read, and the key bindings
+ and variables are set. There are only a few basic constructs allowed
+ in the readline initialization file. Blank lines are ignored. Lines
+ beginning with a ## are comments. Lines beginning with a $$ indicate
+ conditional constructs. Other lines denote key bindings and variable
settings.
- The default key-bindings may be changed with an _i_n_p_u_t_r_c file. Other
+ The default key-bindings may be changed with an _i_n_p_u_t_r_c file. Other
programs that use this library may add their own commands and bindings.
For example, placing
@@ -3075,18 +3208,18 @@ RREEAADDLLIINNEE
M-Control-u: universal-argument
or
C-Meta-u: universal-argument
- into the _i_n_p_u_t_r_c would make M-C-u execute the readline command _u_n_i_v_e_r_-
+ into the _i_n_p_u_t_r_c would make M-C-u execute the readline command _u_n_i_v_e_r_-
_s_a_l_-_a_r_g_u_m_e_n_t.
- The following symbolic character names are recognized: _R_U_B_O_U_T, _D_E_L,
+ The following symbolic character names are recognized: _R_U_B_O_U_T, _D_E_L,
_E_S_C, _L_F_D, _N_E_W_L_I_N_E, _R_E_T, _R_E_T_U_R_N, _S_P_C, _S_P_A_C_E, and _T_A_B.
- In addition to command names, readline allows keys to be bound to a
+ In addition to command names, readline allows keys to be bound to a
string that is inserted when the key is pressed (a _m_a_c_r_o).
RReeaaddlliinnee KKeeyy BBiinnddiinnggss
- The syntax for controlling key bindings in the _i_n_p_u_t_r_c file is simple.
- All that is required is the name of the command or the text of a macro
+ The syntax for controlling key bindings in the _i_n_p_u_t_r_c file is simple.
+ All that is required is the name of the command or the text of a macro
and a key sequence to which it should be bound. The name may be speci-
fied in one of two ways: as a symbolic key name, possibly with _M_e_t_a_- or
_C_o_n_t_r_o_l_- prefixes, or as a key sequence.
@@ -3098,15 +3231,15 @@ RREEAADDLLIINNEE
Meta-Rubout: backward-kill-word
Control-o: "> output"
- In the above example, _C_-_u is bound to the function uunniivveerrssaall--aarrgguummeenntt,
- _M_-_D_E_L is bound to the function bbaacckkwwaarrdd--kkiillll--wwoorrdd, and _C_-_o is bound to
- run the macro expressed on the right hand side (that is, to insert the
+ In the above example, _C_-_u is bound to the function uunniivveerrssaall--aarrgguummeenntt,
+ _M_-_D_E_L is bound to the function bbaacckkwwaarrdd--kkiillll--wwoorrdd, and _C_-_o is bound to
+ run the macro expressed on the right hand side (that is, to insert the
text ``> output'' into the line).
- In the second form, ""kkeeyysseeqq"":_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, kkeeyysseeqq differs
- from kkeeyynnaammee above in that strings denoting an entire key sequence may
- be specified by placing the sequence within double quotes. Some GNU
- Emacs style key escapes can be used, as in the following example, but
+ In the second form, ""kkeeyysseeqq"":_f_u_n_c_t_i_o_n_-_n_a_m_e or _m_a_c_r_o, kkeeyysseeqq differs
+ from kkeeyynnaammee above in that strings denoting an entire key sequence may
+ be specified by placing the sequence within double quotes. Some GNU
+ Emacs style key escapes can be used, as in the following example, but
the symbolic character names are not recognized.
"\C-u": universal-argument
@@ -3114,7 +3247,7 @@ RREEAADDLLIINNEE
"\e[11~": "Function Key 1"
In this example, _C_-_u is again bound to the function uunniivveerrssaall--aarrgguummeenntt.
- _C_-_x _C_-_r is bound to the function rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is
+ _C_-_x _C_-_r is bound to the function rree--rreeaadd--iinniitt--ffiillee, and _E_S_C _[ _1 _1 _~ is
bound to insert the text ``Function Key 1''.
The full set of GNU Emacs style escape sequences is
@@ -3125,7 +3258,7 @@ RREEAADDLLIINNEE
\\"" literal "
\\'' literal '
- In addition to the GNU Emacs style escape sequences, a second set of
+ In addition to the GNU Emacs style escape sequences, a second set of
backslash escapes is available:
\\aa alert (bell)
\\bb backspace
@@ -3135,20 +3268,20 @@ RREEAADDLLIINNEE
\\rr carriage return
\\tt horizontal tab
\\vv vertical tab
- \\_n_n_n the eight-bit character whose value is the octal value
+ \\_n_n_n the eight-bit character whose value is the octal value
_n_n_n (one to three digits)
- \\xx_H_H the eight-bit character whose value is the hexadecimal
+ \\xx_H_H the eight-bit character whose value is the hexadecimal
value _H_H (one or two hex digits)
When entering the text of a macro, single or double quotes must be used
to indicate a macro definition. Unquoted text is assumed to be a func-
- tion name. In the macro body, the backslash escapes described above
- are expanded. Backslash will quote any other character in the macro
+ tion name. In the macro body, the backslash escapes described above
+ are expanded. Backslash will quote any other character in the macro
text, including " and '.
- BBaasshh allows the current readline key bindings to be displayed or modi-
- fied with the bbiinndd builtin command. The editing mode may be switched
- during interactive use by using the --oo option to the sseett builtin com-
+ BBaasshh allows the current readline key bindings to be displayed or modi-
+ fied with the bbiinndd builtin command. The editing mode may be switched
+ during interactive use by using the --oo option to the sseett builtin com-
mand (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
RReeaaddlliinnee VVaarriiaabblleess
@@ -3159,12 +3292,35 @@ RREEAADDLLIINNEE
sseett _v_a_r_i_a_b_l_e_-_n_a_m_e _v_a_l_u_e
or using the bbiinndd builtin command (see SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS below).
- Except where noted, readline variables can take the values OOnn or OOffff
- (without regard to case). Unrecognized variable names are ignored.
- When a variable value is read, empty or null values, "on" (case-insen-
+ Except where noted, readline variables can take the values OOnn or OOffff
+ (without regard to case). Unrecognized variable names are ignored.
+ When a variable value is read, empty or null values, "on" (case-insen-
sitive), and "1" are equivalent to OOnn. All other values are equivalent
to OOffff. The variables and their default values are:
+ aaccttiivvee--rreeggiioonn--ssttaarrtt--ccoolloorr
+ A string variable that controls the text color and background
+ when displaying the text in the active region (see the descrip-
+ tion of eennaabbllee--aaccttiivvee--rreeggiioonn below). This string must not take
+ up any physical character positions on the display, so it should
+ consist only of terminal escape sequences. It is output to the
+ terminal before displaying the text in the active region. This
+ variable is reset to the default value whenever the terminal
+ type changes. The default value is the string that puts the
+ terminal in standout mode, as obtained from the terminal's ter-
+ minfo description. A sample value might be "\e[01;33m".
+ aaccttiivvee--rreeggiioonn--eenndd--ccoolloorr
+ A string variable that "undoes" the effects of aaccttiivvee--rree--
+ ggiioonn--ssttaarrtt--ccoolloorr and restores "normal" terminal display appear-
+ ance after displaying text in the active region. This string
+ must not take up any physical character positions on the dis-
+ play, so it should consist only of terminal escape sequences.
+ It is output to the terminal after displaying the text in the
+ active region. This variable is reset to the default value
+ whenever the terminal type changes. The default value is the
+ string that restores the terminal from standout mode, as ob-
+ tained from the terminal's terminfo description. A sample value
+ might be "\e[0m".
bbeellll--ssttyyllee ((aauuddiibbllee))
Controls what happens when readline wants to ring the terminal
bell. If set to nnoonnee, readline never rings the bell. If set to
@@ -3181,49 +3337,55 @@ RREEAADDLLIINNEE
If set to OOnn, when listing completions, readline displays the
common prefix of the set of possible completions using a differ-
ent color. The color definitions are taken from the value of
- the LLSS__CCOOLLOORRSS environment variable.
+ the LLSS__CCOOLLOORRSS environment variable. If there is a color defini-
+ tion in $$LLSS__CCOOLLOORRSS for the custom suffix "readline-colored-com-
+ pletion-prefix", readline uses this color for the common prefix
+ instead of its default.
ccoolloorreedd--ssttaattss ((OOffff))
- If set to OOnn, readline displays possible completions using dif-
- ferent colors to indicate their file type. The color defini-
- tions are taken from the value of the LLSS__CCOOLLOORRSS environment
+ If set to OOnn, readline displays possible completions using dif-
+ ferent colors to indicate their file type. The color defini-
+ tions are taken from the value of the LLSS__CCOOLLOORRSS environment
variable.
ccoommmmeenntt--bbeeggiinn ((````##''''))
- The string that is inserted when the readline iinnsseerrtt--ccoommmmeenntt
+ The string that is inserted when the readline iinnsseerrtt--ccoommmmeenntt
command is executed. This command is bound to MM--## in emacs mode
and to ## in vi command mode.
ccoommpplleettiioonn--ddiissppllaayy--wwiiddtthh ((--11))
- The number of screen columns used to display possible matches
- when performing completion. The value is ignored if it is less
- than 0 or greater than the terminal screen width. A value of 0
- will cause matches to be displayed one per line. The default
+ The number of screen columns used to display possible matches
+ when performing completion. The value is ignored if it is less
+ than 0 or greater than the terminal screen width. A value of 0
+ will cause matches to be displayed one per line. The default
value is -1.
ccoommpplleettiioonn--iiggnnoorree--ccaassee ((OOffff))
If set to OOnn, readline performs filename matching and completion
in a case-insensitive fashion.
ccoommpplleettiioonn--mmaapp--ccaassee ((OOffff))
- If set to OOnn, and ccoommpplleettiioonn--iiggnnoorree--ccaassee is enabled, readline
- treats hyphens (_-) and underscores (__) as equivalent when per-
+ If set to OOnn, and ccoommpplleettiioonn--iiggnnoorree--ccaassee is enabled, readline
+ treats hyphens (_-) and underscores (__) as equivalent when per-
forming case-insensitive filename matching and completion.
ccoommpplleettiioonn--pprreeffiixx--ddiissppllaayy--lleennggtthh ((00))
- The length in characters of the common prefix of a list of pos-
- sible completions that is displayed without modification. When
- set to a value greater than zero, common prefixes longer than
- this value are replaced with an ellipsis when displaying possi-
+ The length in characters of the common prefix of a list of pos-
+ sible completions that is displayed without modification. When
+ set to a value greater than zero, common prefixes longer than
+ this value are replaced with an ellipsis when displaying possi-
ble completions.
ccoommpplleettiioonn--qquueerryy--iitteemmss ((110000))
- This determines when the user is queried about viewing the num-
- ber of possible completions generated by the ppoossssiibbllee--ccoommppllee--
- ttiioonnss command. It may be set to any integer value greater than
- or equal to zero. If the number of possible completions is
- greater than or equal to the value of this variable, readline
- will ask whether or not the user wishes to view them; otherwise
- they are simply listed on the terminal.
+ This determines when the user is queried about viewing the num-
+ ber of possible completions generated by the ppoossssiibbllee--ccoommppllee--
+ ttiioonnss command. It may be set to any integer value greater than
+ or equal to zero. If the number of possible completions is
+ greater than or equal to the value of this variable, readline
+ will ask whether or not the user wishes to view them; otherwise
+ they are simply listed on the terminal. A zero value means
+ readline should never ask; negative values are treated as zero.
ccoonnvveerrtt--mmeettaa ((OOnn))
If set to OOnn, readline will convert characters with the eighth
bit set to an ASCII key sequence by stripping the eighth bit and
prefixing an escape character (in effect, using escape as the
_m_e_t_a _p_r_e_f_i_x). The default is _O_n, but readline will set it to
- _O_f_f if the locale contains eight-bit characters.
+ _O_f_f if the locale contains eight-bit characters. This variable
+ is dependent on the LLCC__CCTTYYPPEE locale category, and may change if
+ the locale is changed.
ddiissaabbllee--ccoommpplleettiioonn ((OOffff))
If set to OOnn, readline will inhibit word completion. Completion
characters will be inserted into the line as if they had been
@@ -3245,13 +3407,23 @@ RREEAADDLLIINNEE
escapes to begin and end sequences of non-printing characters,
which can be used to embed a terminal control sequence into the
mode string.
+ eennaabbllee--aaccttiivvee--rreeggiioonn ((OOnn))
+ The _p_o_i_n_t is the current cursor position, and _m_a_r_k refers to a
+ saved cursor position. The text between the point and mark is
+ referred to as the _r_e_g_i_o_n. When this variable is set to _O_n,
+ readline allows certain commands to designate the region as _a_c_-
+ _t_i_v_e. When the region is active, readline highlights the text
+ in the region using the value of the aaccttiivvee--rreeggiioonn--ssttaarrtt--ccoolloorr,
+ which defaults to the string that enables the terminal's stand-
+ out mode. The active region shows the text inserted by brack-
+ eted-paste and any matching text found by incremental and non-
+ incremental history searches.
eennaabbllee--bbrraacckkeetteedd--ppaassttee ((OOnn))
- When set to OOnn, readline will configure the terminal in a way
- that will enable it to insert each paste into the editing buffer
- as a single string of characters, instead of treating each char-
- acter as if it had been read from the keyboard. This can pre-
- vent pasted characters from being interpreted as editing com-
- mands.
+ When set to OOnn, readline configures the terminal to insert each
+ paste into the editing buffer as a single string of characters,
+ instead of treating each character as if it had been read from
+ the keyboard. This prevents readline from executing any editing
+ commands bound to key sequences appearing in the pasted text.
eennaabbllee--kkeeyyppaadd ((OOffff))
When set to OOnn, readline will try to enable the application key-
pad when it is called. Some systems need this to enable the ar-
@@ -3288,158 +3460,161 @@ RREEAADDLLIINNEE
gardless of what the terminal claims it can support. The name
mmeettaa--ffllaagg is a synonym for this variable. The default is _O_f_f,
but readline will set it to _O_n if the locale contains eight-bit
- characters.
+ characters. This variable is dependent on the LLCC__CCTTYYPPEE locale
+ category, and may change if the locale is changed.
iisseeaarrcchh--tteerrmmiinnaattoorrss ((````CC--[[CC--JJ''''))
- The string of characters that should terminate an incremental
- search without subsequently executing the character as a com-
- mand. If this variable has not been given a value, the charac-
+ The string of characters that should terminate an incremental
+ search without subsequently executing the character as a com-
+ mand. If this variable has not been given a value, the charac-
ters _E_S_C and _C_-_J will terminate an incremental search.
kkeeyymmaapp ((eemmaaccss))
- Set the current readline keymap. The set of valid keymap names
- is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_c_o_m_-
- _m_a_n_d, and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is
- equivalent to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is _e_m_a_c_s; the
+ Set the current readline keymap. The set of valid keymap names
+ is _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_c_o_m_-
+ _m_a_n_d, and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d; _e_m_a_c_s is
+ equivalent to _e_m_a_c_s_-_s_t_a_n_d_a_r_d. The default value is _e_m_a_c_s; the
value of eeddiittiinngg--mmooddee also affects the default keymap.
kkeeyysseeqq--ttiimmeeoouutt ((550000))
- Specifies the duration _r_e_a_d_l_i_n_e will wait for a character when
- reading an ambiguous key sequence (one that can form a complete
+ Specifies the duration _r_e_a_d_l_i_n_e will wait for a character when
+ reading an ambiguous key sequence (one that can form a complete
key sequence using the input read so far, or can take additional
- input to complete a longer key sequence). If no input is re-
- ceived within the timeout, _r_e_a_d_l_i_n_e will use the shorter but
- complete key sequence. The value is specified in milliseconds,
- so a value of 1000 means that _r_e_a_d_l_i_n_e will wait one second for
- additional input. If this variable is set to a value less than
- or equal to zero, or to a non-numeric value, _r_e_a_d_l_i_n_e will wait
- until another key is pressed to decide which key sequence to
+ input to complete a longer key sequence). If no input is re-
+ ceived within the timeout, _r_e_a_d_l_i_n_e will use the shorter but
+ complete key sequence. The value is specified in milliseconds,
+ so a value of 1000 means that _r_e_a_d_l_i_n_e will wait one second for
+ additional input. If this variable is set to a value less than
+ or equal to zero, or to a non-numeric value, _r_e_a_d_l_i_n_e will wait
+ until another key is pressed to decide which key sequence to
complete.
mmaarrkk--ddiirreeccttoorriieess ((OOnn))
If set to OOnn, completed directory names have a slash appended.
mmaarrkk--mmooddiiffiieedd--lliinneess ((OOffff))
- If set to OOnn, history lines that have been modified are dis-
+ If set to OOnn, history lines that have been modified are dis-
played with a preceding asterisk (**).
mmaarrkk--ssyymmlliinnkkeedd--ddiirreeccttoorriieess ((OOffff))
If set to OOnn, completed names which are symbolic links to direc-
- tories have a slash appended (subject to the value of mmaarrkk--ddii--
+ tories have a slash appended (subject to the value of mmaarrkk--ddii--
rreeccttoorriieess).
mmaattcchh--hhiiddddeenn--ffiilleess ((OOnn))
- This variable, when set to OOnn, causes readline to match files
- whose names begin with a `.' (hidden files) when performing
- filename completion. If set to OOffff, the leading `.' must be
+ This variable, when set to OOnn, causes readline to match files
+ whose names begin with a `.' (hidden files) when performing
+ filename completion. If set to OOffff, the leading `.' must be
supplied by the user in the filename to be completed.
mmeennuu--ccoommpplleettee--ddiissppllaayy--pprreeffiixx ((OOffff))
- If set to OOnn, menu completion displays the common prefix of the
+ If set to OOnn, menu completion displays the common prefix of the
list of possible completions (which may be empty) before cycling
through the list.
oouuttppuutt--mmeettaa ((OOffff))
- If set to OOnn, readline will display characters with the eighth
+ If set to OOnn, readline will display characters with the eighth
bit set directly rather than as a meta-prefixed escape sequence.
The default is _O_f_f, but readline will set it to _O_n if the locale
- contains eight-bit characters.
+ contains eight-bit characters. This variable is dependent on
+ the LLCC__CCTTYYPPEE locale category, and may change if the locale is
+ changed.
ppaaggee--ccoommpplleettiioonnss ((OOnn))
- If set to OOnn, readline uses an internal _m_o_r_e-like pager to dis-
+ If set to OOnn, readline uses an internal _m_o_r_e-like pager to dis-
play a screenful of possible completions at a time.
pprriinntt--ccoommpplleettiioonnss--hhoorriizzoonnttaallllyy ((OOffff))
- If set to OOnn, readline will display completions with matches
- sorted horizontally in alphabetical order, rather than down the
+ If set to OOnn, readline will display completions with matches
+ sorted horizontally in alphabetical order, rather than down the
screen.
rreevveerrtt--aallll--aatt--nneewwlliinnee ((OOffff))
- If set to OOnn, readline will undo all changes to history lines
+ If set to OOnn, readline will undo all changes to history lines
before returning when aacccceepptt--lliinnee is executed. By default, his-
- tory lines may be modified and retain individual undo lists
+ tory lines may be modified and retain individual undo lists
across calls to rreeaaddlliinnee.
sshhooww--aallll--iiff--aammbbiigguuoouuss ((OOffff))
- This alters the default behavior of the completion functions.
+ This alters the default behavior of the completion functions.
If set to OOnn, words which have more than one possible completion
- cause the matches to be listed immediately instead of ringing
+ cause the matches to be listed immediately instead of ringing
the bell.
sshhooww--aallll--iiff--uunnmmooddiiffiieedd ((OOffff))
- This alters the default behavior of the completion functions in
+ This alters the default behavior of the completion functions in
a fashion similar to sshhooww--aallll--iiff--aammbbiigguuoouuss. If set to OOnn, words
- which have more than one possible completion without any possi-
- ble partial completion (the possible completions don't share a
- common prefix) cause the matches to be listed immediately in-
+ which have more than one possible completion without any possi-
+ ble partial completion (the possible completions don't share a
+ common prefix) cause the matches to be listed immediately in-
stead of ringing the bell.
sshhooww--mmooddee--iinn--pprroommpptt ((OOffff))
- If set to OOnn, add a string to the beginning of the prompt indi-
- cating the editing mode: emacs, vi command, or vi insertion.
+ If set to OOnn, add a string to the beginning of the prompt indi-
+ cating the editing mode: emacs, vi command, or vi insertion.
The mode strings are user-settable (e.g., _e_m_a_c_s_-_m_o_d_e_-_s_t_r_i_n_g).
sskkiipp--ccoommpplleetteedd--tteexxtt ((OOffff))
- If set to OOnn, this alters the default completion behavior when
- inserting a single match into the line. It's only active when
- performing completion in the middle of a word. If enabled,
- readline does not insert characters from the completion that
- match characters after point in the word being completed, so
+ If set to OOnn, this alters the default completion behavior when
+ inserting a single match into the line. It's only active when
+ performing completion in the middle of a word. If enabled,
+ readline does not insert characters from the completion that
+ match characters after point in the word being completed, so
portions of the word following the cursor are not duplicated.
vvii--ccmmdd--mmooddee--ssttrriinngg ((((ccmmdd))))
- If the _s_h_o_w_-_m_o_d_e_-_i_n_-_p_r_o_m_p_t variable is enabled, this string is
+ If the _s_h_o_w_-_m_o_d_e_-_i_n_-_p_r_o_m_p_t variable is enabled, this string is
displayed immediately before the last line of the primary prompt
- when vi editing mode is active and in command mode. The value
+ when vi editing mode is active and in command mode. The value
is expanded like a key binding, so the standard set of meta- and
- control prefixes and backslash escape sequences is available.
- Use the \1 and \2 escapes to begin and end sequences of non-
- printing characters, which can be used to embed a terminal con-
+ control prefixes and backslash escape sequences is available.
+ Use the \1 and \2 escapes to begin and end sequences of non-
+ printing characters, which can be used to embed a terminal con-
trol sequence into the mode string.
vvii--iinnss--mmooddee--ssttrriinngg ((((iinnss))))
- If the _s_h_o_w_-_m_o_d_e_-_i_n_-_p_r_o_m_p_t variable is enabled, this string is
+ If the _s_h_o_w_-_m_o_d_e_-_i_n_-_p_r_o_m_p_t variable is enabled, this string is
displayed immediately before the last line of the primary prompt
when vi editing mode is active and in insertion mode. The value
is expanded like a key binding, so the standard set of meta- and
- control prefixes and backslash escape sequences is available.
- Use the \1 and \2 escapes to begin and end sequences of non-
- printing characters, which can be used to embed a terminal con-
+ control prefixes and backslash escape sequences is available.
+ Use the \1 and \2 escapes to begin and end sequences of non-
+ printing characters, which can be used to embed a terminal con-
trol sequence into the mode string.
vviissiibbllee--ssttaattss ((OOffff))
- If set to OOnn, a character denoting a file's type as reported by
- _s_t_a_t(2) is appended to the filename when listing possible com-
+ If set to OOnn, a character denoting a file's type as reported by
+ _s_t_a_t(2) is appended to the filename when listing possible com-
pletions.
RReeaaddlliinnee CCoonnddiittiioonnaall CCoonnssttrruuccttss
- Readline implements a facility similar in spirit to the conditional
- compilation features of the C preprocessor which allows key bindings
- and variable settings to be performed as the result of tests. There
+ Readline implements a facility similar in spirit to the conditional
+ compilation features of the C preprocessor which allows key bindings
+ and variable settings to be performed as the result of tests. There
are four parser directives used.
- $$iiff The $$iiff construct allows bindings to be made based on the edit-
- ing mode, the terminal being used, or the application using
+ $$iiff The $$iiff construct allows bindings to be made based on the edit-
+ ing mode, the terminal being used, or the application using
readline. The text of the test, after any comparison operator,
- extends to the end of the line; unless otherwise noted, no
+ extends to the end of the line; unless otherwise noted, no
characters are required to isolate it.
- mmooddee The mmooddee== form of the $$iiff directive is used to test
- whether readline is in emacs or vi mode. This may be
- used in conjunction with the sseett kkeeyymmaapp command, for in-
- stance, to set bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and
- _e_m_a_c_s_-_c_t_l_x keymaps only if readline is starting out in
+ mmooddee The mmooddee== form of the $$iiff directive is used to test
+ whether readline is in emacs or vi mode. This may be
+ used in conjunction with the sseett kkeeyymmaapp command, for in-
+ stance, to set bindings in the _e_m_a_c_s_-_s_t_a_n_d_a_r_d and
+ _e_m_a_c_s_-_c_t_l_x keymaps only if readline is starting out in
emacs mode.
- tteerrmm The tteerrmm== form may be used to include terminal-specific
+ tteerrmm The tteerrmm== form may be used to include terminal-specific
key bindings, perhaps to bind the key sequences output by
the terminal's function keys. The word on the right side
of the == is tested against both the full name of the ter-
- minal and the portion of the terminal name before the
- first --. This allows _s_u_n to match both _s_u_n and _s_u_n_-_c_m_d,
+ minal and the portion of the terminal name before the
+ first --. This allows _s_u_n to match both _s_u_n and _s_u_n_-_c_m_d,
for instance.
vveerrssiioonn
- The vveerrssiioonn test may be used to perform comparisons
- against specific readline versions. The vveerrssiioonn expands
- to the current readline version. The set of comparison
- operators includes ==, (and ====), !!==, <<==, >>==, <<, and >>.
- The version number supplied on the right side of the op-
- erator consists of a major version number, an optional
+ The vveerrssiioonn test may be used to perform comparisons
+ against specific readline versions. The vveerrssiioonn expands
+ to the current readline version. The set of comparison
+ operators includes ==, (and ====), !!==, <<==, >>==, <<, and >>.
+ The version number supplied on the right side of the op-
+ erator consists of a major version number, an optional
decimal point, and an optional minor version (e.g., 77..11).
- If the minor version is omitted, it is assumed to be 00.
+ If the minor version is omitted, it is assumed to be 00.
The operator may be separated from the string vveerrssiioonn and
from the version number argument by whitespace.
aapppplliiccaattiioonn
The aapppplliiccaattiioonn construct is used to include application-
- specific settings. Each program using the readline li-
- brary sets the _a_p_p_l_i_c_a_t_i_o_n _n_a_m_e, and an initialization
+ specific settings. Each program using the readline li-
+ brary sets the _a_p_p_l_i_c_a_t_i_o_n _n_a_m_e, and an initialization
file can test for a particular value. This could be used
- to bind key sequences to functions useful for a specific
- program. For instance, the following command adds a key
- sequence that quotes the current or previous word in
+ to bind key sequences to functions useful for a specific
+ program. For instance, the following command adds a key
+ sequence that quotes the current or previous word in
bbaasshh:
$$iiff Bash
@@ -3449,12 +3624,12 @@ RREEAADDLLIINNEE
_v_a_r_i_a_b_l_e
The _v_a_r_i_a_b_l_e construct provides simple equality tests for
- readline variables and values. The permitted comparison
- operators are _=, _=_=, and _!_=. The variable name must be
+ readline variables and values. The permitted comparison
+ operators are _=, _=_=, and _!_=. The variable name must be
separated from the comparison operator by whitespace; the
- operator may be separated from the value on the right
- hand side by whitespace. Both string and boolean vari-
- ables may be tested. Boolean variables must be tested
+ operator may be separated from the value on the right
+ hand side by whitespace. Both string and boolean vari-
+ ables may be tested. Boolean variables must be tested
against the values _o_n and _o_f_f.
$$eennddiiff This command, as seen in the previous example, terminates an $$iiff
@@ -3464,51 +3639,51 @@ RREEAADDLLIINNEE
test fails.
$$iinncclluuddee
- This directive takes a single filename as an argument and reads
- commands and bindings from that file. For example, the follow-
+ This directive takes a single filename as an argument and reads
+ commands and bindings from that file. For example, the follow-
ing directive would read _/_e_t_c_/_i_n_p_u_t_r_c:
$$iinncclluuddee _/_e_t_c_/_i_n_p_u_t_r_c
SSeeaarrcchhiinngg
- Readline provides commands for searching through the command history
+ Readline provides commands for searching through the command history
(see HHIISSTTOORRYY below) for lines containing a specified string. There are
two search modes: _i_n_c_r_e_m_e_n_t_a_l and _n_o_n_-_i_n_c_r_e_m_e_n_t_a_l.
- Incremental searches begin before the user has finished typing the
- search string. As each character of the search string is typed, read-
+ Incremental searches begin before the user has finished typing the
+ search string. As each character of the search string is typed, read-
line displays the next entry from the history matching the string typed
- so far. An incremental search requires only as many characters as
- needed to find the desired history entry. The characters present in
- the value of the iisseeaarrcchh--tteerrmmiinnaattoorrss variable are used to terminate an
+ so far. An incremental search requires only as many characters as
+ needed to find the desired history entry. The characters present in
+ the value of the iisseeaarrcchh--tteerrmmiinnaattoorrss variable are used to terminate an
incremental search. If that variable has not been assigned a value the
- Escape and Control-J characters will terminate an incremental search.
- Control-G will abort an incremental search and restore the original
- line. When the search is terminated, the history entry containing the
+ Escape and Control-J characters will terminate an incremental search.
+ Control-G will abort an incremental search and restore the original
+ line. When the search is terminated, the history entry containing the
search string becomes the current line.
- To find other matching entries in the history list, type Control-S or
- Control-R as appropriate. This will search backward or forward in the
- history for the next entry matching the search string typed so far.
- Any other key sequence bound to a readline command will terminate the
- search and execute that command. For instance, a _n_e_w_l_i_n_e will termi-
+ To find other matching entries in the history list, type Control-S or
+ Control-R as appropriate. This will search backward or forward in the
+ history for the next entry matching the search string typed so far.
+ Any other key sequence bound to a readline command will terminate the
+ search and execute that command. For instance, a _n_e_w_l_i_n_e will termi-
nate the search and accept the line, thereby executing the command from
the history list.
Readline remembers the last incremental search string. If two Control-
- Rs are typed without any intervening characters defining a new search
+ Rs are typed without any intervening characters defining a new search
string, any remembered search string is used.
- Non-incremental searches read the entire search string before starting
- to search for matching history lines. The search string may be typed
+ Non-incremental searches read the entire search string before starting
+ to search for matching history lines. The search string may be typed
by the user or be part of the contents of the current line.
RReeaaddlliinnee CCoommmmaanndd NNaammeess
- The following is a list of the names of the commands and the default
+ The following is a list of the names of the commands and the default
key sequences to which they are bound. Command names without an accom-
panying key sequence are unbound by default. In the following descrip-
- tions, _p_o_i_n_t refers to the current cursor position, and _m_a_r_k refers to
- a cursor position saved by the sseett--mmaarrkk command. The text between the
+ tions, _p_o_i_n_t refers to the current cursor position, and _m_a_r_k refers to
+ a cursor position saved by the sseett--mmaarrkk command. The text between the
point and mark is referred to as the _r_e_g_i_o_n.
CCoommmmaannddss ffoorr MMoovviinngg
@@ -3524,33 +3699,33 @@ RREEAADDLLIINNEE
Move forward to the end of the next word. Words are composed of
alphanumeric characters (letters and digits).
bbaacckkwwaarrdd--wwoorrdd ((MM--bb))
- Move back to the start of the current or previous word. Words
+ Move back to the start of the current or previous word. Words
are composed of alphanumeric characters (letters and digits).
sshheellll--ffoorrwwaarrdd--wwoorrdd
- Move forward to the end of the next word. Words are delimited
+ Move forward to the end of the next word. Words are delimited
by non-quoted shell metacharacters.
sshheellll--bbaacckkwwaarrdd--wwoorrdd
- Move back to the start of the current or previous word. Words
+ Move back to the start of the current or previous word. Words
are delimited by non-quoted shell metacharacters.
pprreevviioouuss--ssccrreeeenn--lliinnee
- Attempt to move point to the same physical screen column on the
- previous physical screen line. This will not have the desired
- effect if the current Readline line does not take up more than
- one physical line or if point is not greater than the length of
+ Attempt to move point to the same physical screen column on the
+ previous physical screen line. This will not have the desired
+ effect if the current readline line does not take up more than
+ one physical line or if point is not greater than the length of
the prompt plus the screen width.
nneexxtt--ssccrreeeenn--lliinnee
- Attempt to move point to the same physical screen column on the
+ Attempt to move point to the same physical screen column on the
next physical screen line. This will not have the desired effect
- if the current Readline line does not take up more than one
- physical line or if the length of the current Readline line is
+ if the current readline line does not take up more than one
+ physical line or if the length of the current readline line is
not greater than the length of the prompt plus the screen width.
cclleeaarr--ddiissppllaayy ((MM--CC--ll))
- Clear the screen and, if possible, the terminal's scrollback
- buffer, then redraw the current line, leaving the current line
+ Clear the screen and, if possible, the terminal's scrollback
+ buffer, then redraw the current line, leaving the current line
at the top of the screen.
cclleeaarr--ssccrreeeenn ((CC--ll))
Clear the screen, then redraw the current line, leaving the cur-
- rent line at the top of the screen. With an argument, refresh
+ rent line at the top of the screen. With an argument, refresh
the current line without clearing the screen.
rreeddrraaww--ccuurrrreenntt--lliinnee
Refresh the current line.
@@ -3558,20 +3733,29 @@ RREEAADDLLIINNEE
CCoommmmaannddss ffoorr MMaanniippuullaattiinngg tthhee HHiissttoorryy
aacccceepptt--lliinnee ((NNeewwlliinnee,, RReettuurrnn))
Accept the line regardless of where the cursor is. If this line
- is non-empty, add it to the history list according to the state
- of the HHIISSTTCCOONNTTRROOLL variable. If the line is a modified history
+ is non-empty, add it to the history list according to the state
+ of the HHIISSTTCCOONNTTRROOLL variable. If the line is a modified history
line, then restore the history line to its original state.
pprreevviioouuss--hhiissttoorryy ((CC--pp))
Fetch the previous command from the history list, moving back in
the list.
nneexxtt--hhiissttoorryy ((CC--nn))
- Fetch the next command from the history list, moving forward in
+ Fetch the next command from the history list, moving forward in
the list.
bbeeggiinnnniinngg--ooff--hhiissttoorryy ((MM--<<))
Move to the first line in the history.
eenndd--ooff--hhiissttoorryy ((MM-->>))
- Move to the end of the input history, i.e., the line currently
+ Move to the end of the input history, i.e., the line currently
being entered.
+ ooppeerraattee--aanndd--ggeett--nneexxtt ((CC--oo))
+ Accept the current line for execution and fetch the next line
+ relative to the current line from the history for editing. A
+ numeric argument, if supplied, specifies the history entry to
+ use instead of the current line.
+ ffeettcchh--hhiissttoorryy
+ With a numeric argument, fetch that entry from the history list
+ and make it the current line. Without an argument, move back to
+ the first entry in the history list.
rreevveerrssee--sseeaarrcchh--hhiissttoorryy ((CC--rr))
Search backward starting at the current line and moving `up'
through the history as necessary. This is an incremental
@@ -3643,67 +3827,62 @@ RREEAADDLLIINNEE
Perform history and alias expansion on the current line.
iinnsseerrtt--llaasstt--aarrgguummeenntt ((MM--..,, MM--__))
A synonym for yyaannkk--llaasstt--aarrgg.
- ooppeerraattee--aanndd--ggeett--nneexxtt ((CC--oo))
- Accept the current line for execution and fetch the next line
- relative to the current line from the history for editing. A
- numeric argument, if supplied, specifies the history entry to
- use instead of the current line.
eeddiitt--aanndd--eexxeeccuuttee--ccoommmmaanndd ((CC--xx CC--ee))
- Invoke an editor on the current command line, and execute the
+ Invoke an editor on the current command line, and execute the
result as shell commands. BBaasshh attempts to invoke $$VVIISSUUAALL, $$EEDD--
IITTOORR, and _e_m_a_c_s as the editor, in that order.
CCoommmmaannddss ffoorr CChhaannggiinngg TTeexxtt
_e_n_d_-_o_f_-_f_i_l_e ((uussuuaallllyy CC--dd))
- The character indicating end-of-file as set, for example, by
- ``stty''. If this character is read when there are no charac-
- ters on the line, and point is at the beginning of the line,
- Readline interprets it as the end of input and returns EEOOFF.
+ The character indicating end-of-file as set, for example, by
+ ``stty''. If this character is read when there are no charac-
+ ters on the line, and point is at the beginning of the line,
+ readline interprets it as the end of input and returns EEOOFF.
ddeelleettee--cchhaarr ((CC--dd))
Delete the character at point. If this function is bound to the
same character as the tty EEOOFF character, as CC--dd commonly is, see
above for the effects.
bbaacckkwwaarrdd--ddeelleettee--cchhaarr ((RRuubboouutt))
- Delete the character behind the cursor. When given a numeric
+ Delete the character behind the cursor. When given a numeric
argument, save the deleted text on the kill ring.
ffoorrwwaarrdd--bbaacckkwwaarrdd--ddeelleettee--cchhaarr
- Delete the character under the cursor, unless the cursor is at
+ Delete the character under the cursor, unless the cursor is at
the end of the line, in which case the character behind the cur-
sor is deleted.
qquuootteedd--iinnsseerrtt ((CC--qq,, CC--vv))
- Add the next character typed to the line verbatim. This is how
+ Add the next character typed to the line verbatim. This is how
to insert characters like CC--qq, for example.
ttaabb--iinnsseerrtt ((CC--vv TTAABB))
Insert a tab character.
sseellff--iinnsseerrtt ((aa,, bb,, AA,, 11,, !!,, ......))
Insert the character typed.
ttrraannssppoossee--cchhaarrss ((CC--tt))
- Drag the character before point forward over the character at
- point, moving point forward as well. If point is at the end of
- the line, then this transposes the two characters before point.
+ Drag the character before point forward over the character at
+ point, moving point forward as well. If point is at the end of
+ the line, then this transposes the two characters before point.
Negative arguments have no effect.
ttrraannssppoossee--wwoorrddss ((MM--tt))
- Drag the word before point past the word after point, moving
- point over that word as well. If point is at the end of the
+ Drag the word before point past the word after point, moving
+ point over that word as well. If point is at the end of the
line, this transposes the last two words on the line.
uuppccaassee--wwoorrdd ((MM--uu))
- Uppercase the current (or following) word. With a negative ar-
+ Uppercase the current (or following) word. With a negative ar-
gument, uppercase the previous word, but do not move point.
ddoowwnnccaassee--wwoorrdd ((MM--ll))
- Lowercase the current (or following) word. With a negative ar-
+ Lowercase the current (or following) word. With a negative ar-
gument, lowercase the previous word, but do not move point.
ccaappiittaalliizzee--wwoorrdd ((MM--cc))
Capitalize the current (or following) word. With a negative ar-
gument, capitalize the previous word, but do not move point.
oovveerrwwrriittee--mmooddee
- Toggle overwrite mode. With an explicit positive numeric argu-
+ Toggle overwrite mode. With an explicit positive numeric argu-
ment, switches to overwrite mode. With an explicit non-positive
numeric argument, switches to insert mode. This command affects
- only eemmaaccss mode; vvii mode does overwrite differently. Each call
+ only eemmaaccss mode; vvii mode does overwrite differently. Each call
to _r_e_a_d_l_i_n_e_(_) starts in insert mode. In overwrite mode, charac-
- ters bound to sseellff--iinnsseerrtt replace the text at point rather than
- pushing the text to the right. Characters bound to bbaacckk--
- wwaarrdd--ddeelleettee--cchhaarr replace the character before point with a
+ ters bound to sseellff--iinnsseerrtt replace the text at point rather than
+ pushing the text to the right. Characters bound to bbaacckk--
+ wwaarrdd--ddeelleettee--cchhaarr replace the character before point with a
space. By default, this command is unbound.
KKiilllliinngg aanndd YYaannkkiinngg
@@ -3712,31 +3891,31 @@ RREEAADDLLIINNEE
bbaacckkwwaarrdd--kkiillll--lliinnee ((CC--xx RRuubboouutt))
Kill backward to the beginning of the line.
uunniixx--lliinnee--ddiissccaarrdd ((CC--uu))
- Kill backward from point to the beginning of the line. The
+ Kill backward from point to the beginning of the line. The
killed text is saved on the kill-ring.
kkiillll--wwhhoollee--lliinnee
- Kill all characters on the current line, no matter where point
+ Kill all characters on the current line, no matter where point
is.
kkiillll--wwoorrdd ((MM--dd))
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the
+ Kill from point to the end of the current word, or if between
+ words, to the end of the next word. Word boundaries are the
same as those used by ffoorrwwaarrdd--wwoorrdd.
bbaacckkwwaarrdd--kkiillll--wwoorrdd ((MM--RRuubboouutt))
- Kill the word behind point. Word boundaries are the same as
+ Kill the word behind point. Word boundaries are the same as
those used by bbaacckkwwaarrdd--wwoorrdd.
sshheellll--kkiillll--wwoorrdd
- Kill from point to the end of the current word, or if between
- words, to the end of the next word. Word boundaries are the
+ Kill from point to the end of the current word, or if between
+ words, to the end of the next word. Word boundaries are the
same as those used by sshheellll--ffoorrwwaarrdd--wwoorrdd.
sshheellll--bbaacckkwwaarrdd--kkiillll--wwoorrdd
- Kill the word behind point. Word boundaries are the same as
+ Kill the word behind point. Word boundaries are the same as
those used by sshheellll--bbaacckkwwaarrdd--wwoorrdd.
uunniixx--wwoorrdd--rruubboouutt ((CC--ww))
- Kill the word behind point, using white space as a word bound-
+ Kill the word behind point, using white space as a word bound-
ary. The killed text is saved on the kill-ring.
uunniixx--ffiilleennaammee--rruubboouutt
- Kill the word behind point, using white space and the slash
- character as the word boundaries. The killed text is saved on
+ Kill the word behind point, using white space and the slash
+ character as the word boundaries. The killed text is saved on
the kill-ring.
ddeelleettee--hhoorriizzoonnttaall--ssppaaccee ((MM--\\))
Delete all spaces and tabs around point.
@@ -3745,64 +3924,64 @@ RREEAADDLLIINNEE
ccooppyy--rreeggiioonn--aass--kkiillll
Copy the text in the region to the kill buffer.
ccooppyy--bbaacckkwwaarrdd--wwoorrdd
- Copy the word before point to the kill buffer. The word bound-
+ Copy the word before point to the kill buffer. The word bound-
aries are the same as bbaacckkwwaarrdd--wwoorrdd.
ccooppyy--ffoorrwwaarrdd--wwoorrdd
- Copy the word following point to the kill buffer. The word
+ Copy the word following point to the kill buffer. The word
boundaries are the same as ffoorrwwaarrdd--wwoorrdd.
yyaannkk ((CC--yy))
Yank the top of the kill ring into the buffer at point.
yyaannkk--ppoopp ((MM--yy))
- Rotate the kill ring, and yank the new top. Only works follow-
+ Rotate the kill ring, and yank the new top. Only works follow-
ing yyaannkk or yyaannkk--ppoopp.
NNuummeerriicc AArrgguummeennttss
ddiiggiitt--aarrgguummeenntt ((MM--00,, MM--11,, ......,, MM----))
- Add this digit to the argument already accumulating, or start a
+ Add this digit to the argument already accumulating, or start a
new argument. M-- starts a negative argument.
uunniivveerrssaall--aarrgguummeenntt
- This is another way to specify an argument. If this command is
- followed by one or more digits, optionally with a leading minus
- sign, those digits define the argument. If the command is fol-
+ This is another way to specify an argument. If this command is
+ followed by one or more digits, optionally with a leading minus
+ sign, those digits define the argument. If the command is fol-
lowed by digits, executing uunniivveerrssaall--aarrgguummeenntt again ends the nu-
meric argument, but is otherwise ignored. As a special case, if
this command is immediately followed by a character that is nei-
- ther a digit nor minus sign, the argument count for the next
- command is multiplied by four. The argument count is initially
- one, so executing this function the first time makes the argu-
+ ther a digit nor minus sign, the argument count for the next
+ command is multiplied by four. The argument count is initially
+ one, so executing this function the first time makes the argu-
ment count four, a second time makes the argument count sixteen,
and so on.
CCoommpplleettiinngg
ccoommpplleettee ((TTAABB))
- Attempt to perform completion on the text before point. BBaasshh
+ Attempt to perform completion on the text before point. BBaasshh
attempts completion treating the text as a variable (if the text
- begins with $$), username (if the text begins with ~~), hostname
- (if the text begins with @@), or command (including aliases and
+ begins with $$), username (if the text begins with ~~), hostname
+ (if the text begins with @@), or command (including aliases and
functions) in turn. If none of these produces a match, filename
completion is attempted.
ppoossssiibbllee--ccoommpplleettiioonnss ((MM--??))
List the possible completions of the text before point.
iinnsseerrtt--ccoommpplleettiioonnss ((MM--**))
- Insert all completions of the text before point that would have
+ Insert all completions of the text before point that would have
been generated by ppoossssiibbllee--ccoommpplleettiioonnss.
mmeennuu--ccoommpplleettee
- Similar to ccoommpplleettee, but replaces the word to be completed with
- a single match from the list of possible completions. Repeated
- execution of mmeennuu--ccoommpplleettee steps through the list of possible
- completions, inserting each match in turn. At the end of the
+ Similar to ccoommpplleettee, but replaces the word to be completed with
+ a single match from the list of possible completions. Repeated
+ execution of mmeennuu--ccoommpplleettee steps through the list of possible
+ completions, inserting each match in turn. At the end of the
list of completions, the bell is rung (subject to the setting of
bbeellll--ssttyyllee) and the original text is restored. An argument of _n
moves _n positions forward in the list of matches; a negative ar-
gument may be used to move backward through the list. This com-
mand is intended to be bound to TTAABB, but is unbound by default.
mmeennuu--ccoommpplleettee--bbaacckkwwaarrdd
- Identical to mmeennuu--ccoommpplleettee, but moves backward through the list
- of possible completions, as if mmeennuu--ccoommpplleettee had been given a
+ Identical to mmeennuu--ccoommpplleettee, but moves backward through the list
+ of possible completions, as if mmeennuu--ccoommpplleettee had been given a
negative argument. This command is unbound by default.
ddeelleettee--cchhaarr--oorr--lliisstt
- Deletes the character under the cursor if not at the beginning
- or end of the line (like ddeelleettee--cchhaarr). If at the end of the
+ Deletes the character under the cursor if not at the beginning
+ or end of the line (like ddeelleettee--cchhaarr). If at the end of the
line, behaves identically to ppoossssiibbllee--ccoommpplleettiioonnss. This command
is unbound by default.
ccoommpplleettee--ffiilleennaammee ((MM--//))
@@ -3811,67 +3990,67 @@ RREEAADDLLIINNEE
List the possible completions of the text before point, treating
it as a filename.
ccoommpplleettee--uusseerrnnaammee ((MM--~~))
- Attempt completion on the text before point, treating it as a
+ Attempt completion on the text before point, treating it as a
username.
ppoossssiibbllee--uusseerrnnaammee--ccoommpplleettiioonnss ((CC--xx ~~))
List the possible completions of the text before point, treating
it as a username.
ccoommpplleettee--vvaarriiaabbllee ((MM--$$))
- Attempt completion on the text before point, treating it as a
+ Attempt completion on the text before point, treating it as a
shell variable.
ppoossssiibbllee--vvaarriiaabbllee--ccoommpplleettiioonnss ((CC--xx $$))
List the possible completions of the text before point, treating
it as a shell variable.
ccoommpplleettee--hhoossttnnaammee ((MM--@@))
- Attempt completion on the text before point, treating it as a
+ Attempt completion on the text before point, treating it as a
hostname.
ppoossssiibbllee--hhoossttnnaammee--ccoommpplleettiioonnss ((CC--xx @@))
List the possible completions of the text before point, treating
it as a hostname.
ccoommpplleettee--ccoommmmaanndd ((MM--!!))
- Attempt completion on the text before point, treating it as a
- command name. Command completion attempts to match the text
- against aliases, reserved words, shell functions, shell
+ Attempt completion on the text before point, treating it as a
+ command name. Command completion attempts to match the text
+ against aliases, reserved words, shell functions, shell
builtins, and finally executable filenames, in that order.
ppoossssiibbllee--ccoommmmaanndd--ccoommpplleettiioonnss ((CC--xx !!))
List the possible completions of the text before point, treating
it as a command name.
ddyynnaammiicc--ccoommpplleettee--hhiissttoorryy ((MM--TTAABB))
- Attempt completion on the text before point, comparing the text
- against lines from the history list for possible completion
+ Attempt completion on the text before point, comparing the text
+ against lines from the history list for possible completion
matches.
ddaabbbbrreevv--eexxppaanndd
- Attempt menu completion on the text before point, comparing the
+ Attempt menu completion on the text before point, comparing the
text against lines from the history list for possible completion
matches.
ccoommpplleettee--iinnttoo--bbrraacceess ((MM--{{))
Perform filename completion and insert the list of possible com-
- pletions enclosed within braces so the list is available to the
+ pletions enclosed within braces so the list is available to the
shell (see BBrraaccee EExxppaannssiioonn above).
KKeeyybbooaarrdd MMaaccrrooss
ssttaarrtt--kkbbdd--mmaaccrroo ((CC--xx (())
- Begin saving the characters typed into the current keyboard
+ Begin saving the characters typed into the current keyboard
macro.
eenndd--kkbbdd--mmaaccrroo ((CC--xx ))))
Stop saving the characters typed into the current keyboard macro
and store the definition.
ccaallll--llaasstt--kkbbdd--mmaaccrroo ((CC--xx ee))
- Re-execute the last keyboard macro defined, by making the char-
+ Re-execute the last keyboard macro defined, by making the char-
acters in the macro appear as if typed at the keyboard.
pprriinntt--llaasstt--kkbbdd--mmaaccrroo (())
- Print the last keyboard macro defined in a format suitable for
+ Print the last keyboard macro defined in a format suitable for
the _i_n_p_u_t_r_c file.
MMiisscceellllaanneeoouuss
rree--rreeaadd--iinniitt--ffiillee ((CC--xx CC--rr))
- Read in the contents of the _i_n_p_u_t_r_c file, and incorporate any
+ Read in the contents of the _i_n_p_u_t_r_c file, and incorporate any
bindings or variable assignments found there.
aabboorrtt ((CC--gg))
- Abort the current editing command and ring the terminal's bell
+ Abort the current editing command and ring the terminal's bell
(subject to the setting of bbeellll--ssttyyllee).
ddoo--lloowweerrccaassee--vveerrssiioonn ((MM--AA,, MM--BB,, MM--_x,, ......))
- If the metafied character _x is uppercase, run the command that
+ If the metafied character _x is uppercase, run the command that
is bound to the corresponding metafied lowercase character. The
behavior is undefined if _x is already lowercase.
pprreeffiixx--mmeettaa ((EESSCC))
@@ -3879,46 +4058,51 @@ RREEAADDLLIINNEE
uunnddoo ((CC--__,, CC--xx CC--uu))
Incremental undo, separately remembered for each line.
rreevveerrtt--lliinnee ((MM--rr))
- Undo all changes made to this line. This is like executing the
- uunnddoo command enough times to return the line to its initial
+ Undo all changes made to this line. This is like executing the
+ uunnddoo command enough times to return the line to its initial
state.
ttiillddee--eexxppaanndd ((MM--&&))
Perform tilde expansion on the current word.
sseett--mmaarrkk ((CC--@@,, MM--<<ssppaaccee>>))
- Set the mark to the point. If a numeric argument is supplied,
+ Set the mark to the point. If a numeric argument is supplied,
the mark is set to that position.
eexxcchhaannggee--ppooiinntt--aanndd--mmaarrkk ((CC--xx CC--xx))
- Swap the point with the mark. The current cursor position is
- set to the saved position, and the old cursor position is saved
+ Swap the point with the mark. The current cursor position is
+ set to the saved position, and the old cursor position is saved
as the mark.
cchhaarraacctteerr--sseeaarrcchh ((CC--]]))
A character is read and point is moved to the next occurrence of
- that character. A negative count searches for previous occur-
- rences.
+ that character. A negative argument searches for previous oc-
+ currences.
cchhaarraacctteerr--sseeaarrcchh--bbaacckkwwaarrdd ((MM--CC--]]))
- A character is read and point is moved to the previous occur-
- rence of that character. A negative count searches for subse-
- quent occurrences.
+ A character is read and point is moved to the previous occur-
+ rence of that character. A negative argument searches for sub-
+ sequent occurrences.
sskkiipp--ccssii--sseeqquueennccee
- Read enough characters to consume a multi-key sequence such as
- those defined for keys like Home and End. Such sequences begin
+ Read enough characters to consume a multi-key sequence such as
+ those defined for keys like Home and End. Such sequences begin
with a Control Sequence Indicator (CSI), usually ESC-[. If this
- sequence is bound to "\[", keys producing such sequences will
- have no effect unless explicitly bound to a readline command,
- instead of inserting stray characters into the editing buffer.
+ sequence is bound to "\[", keys producing such sequences will
+ have no effect unless explicitly bound to a readline command,
+ instead of inserting stray characters into the editing buffer.
This is unbound by default, but usually bound to ESC-[.
iinnsseerrtt--ccoommmmeenntt ((MM--##))
- Without a numeric argument, the value of the readline ccoomm--
- mmeenntt--bbeeggiinn variable is inserted at the beginning of the current
+ Without a numeric argument, the value of the readline ccoomm--
+ mmeenntt--bbeeggiinn variable is inserted at the beginning of the current
line. If a numeric argument is supplied, this command acts as a
- toggle: if the characters at the beginning of the line do not
- match the value of ccoommmmeenntt--bbeeggiinn, the value is inserted, other-
+ toggle: if the characters at the beginning of the line do not
+ match the value of ccoommmmeenntt--bbeeggiinn, the value is inserted, other-
wise the characters in ccoommmmeenntt--bbeeggiinn are deleted from the begin-
- ning of the line. In either case, the line is accepted as if a
- newline had been typed. The default value of ccoommmmeenntt--bbeeggiinn
- causes this command to make the current line a shell comment.
- If a numeric argument causes the comment character to be re-
+ ning of the line. In either case, the line is accepted as if a
+ newline had been typed. The default value of ccoommmmeenntt--bbeeggiinn
+ causes this command to make the current line a shell comment.
+ If a numeric argument causes the comment character to be re-
moved, the line will be executed by the shell.
+ ssppeellll--ccoorrrreecctt--wwoorrdd ((CC--xx ss))
+ Perform spelling correction on the current word, treating it as
+ a directory or filename, in the same way as the ccddssppeellll shell
+ option. Word boundaries are the same as those used by
+ sshheellll--ffoorrwwaarrdd--wwoorrdd.
gglloobb--ccoommpplleettee--wwoorrdd ((MM--gg))
The word before point is treated as a pattern for pathname ex-
pansion, with an asterisk implicitly appended. This pattern is
@@ -4295,21 +4479,21 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
vironment and return the exit status of the last command exe-
cuted from _f_i_l_e_n_a_m_e. If _f_i_l_e_n_a_m_e does not contain a slash,
filenames in PPAATTHH are used to find the directory containing
- _f_i_l_e_n_a_m_e. The file searched for in PPAATTHH need not be executable.
- When bbaasshh is not in _p_o_s_i_x _m_o_d_e, the current directory is
- searched if no file is found in PPAATTHH. If the ssoouurrcceeppaatthh option
- to the sshhoopptt builtin command is turned off, the PPAATTHH is not
- searched. If any _a_r_g_u_m_e_n_t_s are supplied, they become the posi-
- tional parameters when _f_i_l_e_n_a_m_e is executed. Otherwise the po-
- sitional parameters are unchanged. If the --TT option is enabled,
- ssoouurrccee inherits any trap on DDEEBBUUGG; if it is not, any DDEEBBUUGG trap
- string is saved and restored around the call to ssoouurrccee, and
- ssoouurrccee unsets the DDEEBBUUGG trap while it executes. If --TT is not
- set, and the sourced file changes the DDEEBBUUGG trap, the new value
- is retained when ssoouurrccee completes. The return status is the
- status of the last command exited within the script (0 if no
- commands are executed), and false if _f_i_l_e_n_a_m_e is not found or
- cannot be read.
+ _f_i_l_e_n_a_m_e, but _f_i_l_e_n_a_m_e does not need to be executable. The file
+ searched for in PPAATTHH need not be executable. When bbaasshh is not
+ in _p_o_s_i_x _m_o_d_e, it searches the current directory if no file is
+ found in PPAATTHH. If the ssoouurrcceeppaatthh option to the sshhoopptt builtin
+ command is turned off, the PPAATTHH is not searched. If any _a_r_g_u_-
+ _m_e_n_t_s are supplied, they become the positional parameters when
+ _f_i_l_e_n_a_m_e is executed. Otherwise the positional parameters are
+ unchanged. If the --TT option is enabled, .. inherits any trap on
+ DDEEBBUUGG; if it is not, any DDEEBBUUGG trap string is saved and restored
+ around the call to .., and .. unsets the DDEEBBUUGG trap while it exe-
+ cutes. If --TT is not set, and the sourced file changes the DDEEBBUUGG
+ trap, the new value is retained when .. completes. The return
+ status is the status of the last command exited within the
+ script (0 if no commands are executed), and false if _f_i_l_e_n_a_m_e is
+ not found or cannot be read.
aalliiaass [--pp] [_n_a_m_e[=_v_a_l_u_e] ...]
AAlliiaass with no arguments or with the --pp option prints the list of
@@ -4336,29 +4520,31 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
bbiinndd [--mm _k_e_y_m_a_p] --xx _k_e_y_s_e_q:_s_h_e_l_l_-_c_o_m_m_a_n_d
bbiinndd [--mm _k_e_y_m_a_p] _k_e_y_s_e_q:_f_u_n_c_t_i_o_n_-_n_a_m_e
bbiinndd [--mm _k_e_y_m_a_p] _k_e_y_s_e_q:_r_e_a_d_l_i_n_e_-_c_o_m_m_a_n_d
+ bbiinndd _r_e_a_d_l_i_n_e_-_c_o_m_m_a_n_d_-_l_i_n_e
Display current rreeaaddlliinnee key and function bindings, bind a key
sequence to a rreeaaddlliinnee function or macro, or set a rreeaaddlliinnee
variable. Each non-option argument is a command as it would ap-
- pear in _._i_n_p_u_t_r_c, but each binding or command must be passed as
- a separate argument; e.g., '"\C-x\C-r": re-read-init-file'. Op-
- tions, if supplied, have the following meanings:
+ pear in a rreeaaddlliinnee initialization file such as _._i_n_p_u_t_r_c, but
+ each binding or command must be passed as a separate argument;
+ e.g., '"\C-x\C-r": re-read-init-file'. Options, if supplied,
+ have the following meanings:
--mm _k_e_y_m_a_p
Use _k_e_y_m_a_p as the keymap to be affected by the subsequent
bindings. Acceptable _k_e_y_m_a_p names are _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_-
- _d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_m_o_v_e_, _v_i_-_c_o_m_m_a_n_d,
- and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d (_v_i_-_m_o_v_e
- is also a synonym); _e_m_a_c_s is equivalent to _e_m_a_c_s_-_s_t_a_n_-
+ _d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_m_o_v_e_, _v_i_-_c_o_m_m_a_n_d,
+ and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d (_v_i_-_m_o_v_e
+ is also a synonym); _e_m_a_c_s is equivalent to _e_m_a_c_s_-_s_t_a_n_-
_d_a_r_d.
--ll List the names of all rreeaaddlliinnee functions.
- --pp Display rreeaaddlliinnee function names and bindings in such a
+ --pp Display rreeaaddlliinnee function names and bindings in such a
way that they can be re-read.
--PP List current rreeaaddlliinnee function names and bindings.
- --ss Display rreeaaddlliinnee key sequences bound to macros and the
- strings they output in such a way that they can be re-
+ --ss Display rreeaaddlliinnee key sequences bound to macros and the
+ strings they output in such a way that they can be re-
read.
- --SS Display rreeaaddlliinnee key sequences bound to macros and the
+ --SS Display rreeaaddlliinnee key sequences bound to macros and the
strings they output.
- --vv Display rreeaaddlliinnee variable names and values in such a way
+ --vv Display rreeaaddlliinnee variable names and values in such a way
that they can be re-read.
--VV List current rreeaaddlliinnee variable names and values.
--ff _f_i_l_e_n_a_m_e
@@ -4371,14 +4557,17 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
Remove any current binding for _k_e_y_s_e_q.
--xx _k_e_y_s_e_q::_s_h_e_l_l_-_c_o_m_m_a_n_d
Cause _s_h_e_l_l_-_c_o_m_m_a_n_d to be executed whenever _k_e_y_s_e_q is en-
- tered. When _s_h_e_l_l_-_c_o_m_m_a_n_d is executed, the shell sets
- the RREEAADDLLIINNEE__LLIINNEE variable to the contents of the rreeaadd--
+ tered. When _s_h_e_l_l_-_c_o_m_m_a_n_d is executed, the shell sets
+ the RREEAADDLLIINNEE__LLIINNEE variable to the contents of the rreeaadd--
lliinnee line buffer and the RREEAADDLLIINNEE__PPOOIINNTT and RREEAADDLLIINNEE__MMAARRKK
- variables to the current location of the insertion point
- and the saved insertion point (the mark), respectively.
- If the executed command changes the value of any of RREEAADD--
- LLIINNEE__LLIINNEE, RREEAADDLLIINNEE__PPOOIINNTT, or RREEAADDLLIINNEE__MMAARRKK, those new
- values will be reflected in the editing state.
+ variables to the current location of the insertion point
+ and the saved insertion point (the mark), respectively.
+ The shell assigns any numeric argument the user supplied
+ to the RREEAADDLLIINNEE__AARRGGUUMMEENNTT variable. If there was no argu-
+ ment, that variable is not set. If the executed command
+ changes the value of any of RREEAADDLLIINNEE__LLIINNEE, RREEAADD--
+ LLIINNEE__PPOOIINNTT, or RREEAADDLLIINNEE__MMAARRKK, those new values will be
+ reflected in the editing state.
--XX List all key sequences bound to shell commands and the
associated commands in a format that can be reused as in-
put.
@@ -4416,137 +4605,140 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
ccdd [--LL|[--PP [--ee]] [-@]] [_d_i_r]
Change the current directory to _d_i_r. if _d_i_r is not supplied,
- the value of the HHOOMMEE shell variable is the default. Any addi-
- tional arguments following _d_i_r are ignored. The variable CCDDPPAATTHH
- defines the search path for the directory containing _d_i_r: each
- directory name in CCDDPPAATTHH is searched for _d_i_r. Alternative di-
- rectory names in CCDDPPAATTHH are separated by a colon (:). A null
- directory name in CCDDPPAATTHH is the same as the current directory,
- i.e., ``..''. If _d_i_r begins with a slash (/), then CCDDPPAATTHH is not
- used. The --PP option causes ccdd to use the physical directory
- structure by resolving symbolic links while traversing _d_i_r and
- before processing instances of _._. in _d_i_r (see also the --PP option
- to the sseett builtin command); the --LL option forces symbolic links
- to be followed by resolving the link after processing instances
- of _._. in _d_i_r. If _._. appears in _d_i_r, it is processed by removing
- the immediately previous pathname component from _d_i_r, back to a
- slash or the beginning of _d_i_r. If the --ee option is supplied
- with --PP, and the current working directory cannot be success-
- fully determined after a successful directory change, ccdd will
- return an unsuccessful status. On systems that support it, the
- --@@ option presents the extended attributes associated with a
- file as a directory. An argument of -- is converted to $$OOLLDDPPWWDD
- before the directory change is attempted. If a non-empty direc-
- tory name from CCDDPPAATTHH is used, or if -- is the first argument,
- and the directory change is successful, the absolute pathname of
- the new working directory is written to the standard output.
- The return value is true if the directory was successfully
- changed; false otherwise.
+ the value of the HHOOMMEE shell variable is the default. The vari-
+ able CCDDPPAATTHH defines the search path for the directory containing
+ _d_i_r: each directory name in CCDDPPAATTHH is searched for _d_i_r. Alter-
+ native directory names in CCDDPPAATTHH are separated by a colon (:).
+ A null directory name in CCDDPPAATTHH is the same as the current di-
+ rectory, i.e., ``..''. If _d_i_r begins with a slash (/), then CCDD--
+ PPAATTHH is not used. The --PP option causes ccdd to use the physical
+ directory structure by resolving symbolic links while traversing
+ _d_i_r and before processing instances of _._. in _d_i_r (see also the
+ --PP option to the sseett builtin command); the --LL option forces sym-
+ bolic links to be followed by resolving the link after process-
+ ing instances of _._. in _d_i_r. If _._. appears in _d_i_r, it is pro-
+ cessed by removing the immediately previous pathname component
+ from _d_i_r, back to a slash or the beginning of _d_i_r. If the --ee
+ option is supplied with --PP, and the current working directory
+ cannot be successfully determined after a successful directory
+ change, ccdd will return an unsuccessful status. On systems that
+ support it, the --@@ option presents the extended attributes asso-
+ ciated with a file as a directory. An argument of -- is con-
+ verted to $$OOLLDDPPWWDD before the directory change is attempted. If
+ a non-empty directory name from CCDDPPAATTHH is used, or if -- is the
+ first argument, and the directory change is successful, the ab-
+ solute pathname of the new working directory is written to the
+ standard output. If the directory change is successful, ccdd sets
+ the value of the PPWWDD environment variable to the new directory
+ name, and sets the OOLLDDPPWWDD environment variable to the value of
+ the current working directory before the change. The return
+ value is true if the directory was successfully changed; false
+ otherwise.
ccoommmmaanndd [--ppVVvv] _c_o_m_m_a_n_d [_a_r_g ...]
- Run _c_o_m_m_a_n_d with _a_r_g_s suppressing the normal shell function
+ Run _c_o_m_m_a_n_d with _a_r_g_s suppressing the normal shell function
lookup. Only builtin commands or commands found in the PPAATTHH are
- executed. If the --pp option is given, the search for _c_o_m_m_a_n_d is
- performed using a default value for PPAATTHH that is guaranteed to
- find all of the standard utilities. If either the --VV or --vv op-
- tion is supplied, a description of _c_o_m_m_a_n_d is printed. The --vv
- option causes a single word indicating the command or filename
+ executed. If the --pp option is given, the search for _c_o_m_m_a_n_d is
+ performed using a default value for PPAATTHH that is guaranteed to
+ find all of the standard utilities. If either the --VV or --vv op-
+ tion is supplied, a description of _c_o_m_m_a_n_d is printed. The --vv
+ option causes a single word indicating the command or filename
used to invoke _c_o_m_m_a_n_d to be displayed; the --VV option produces a
- more verbose description. If the --VV or --vv option is supplied,
- the exit status is 0 if _c_o_m_m_a_n_d was found, and 1 if not. If
+ more verbose description. If the --VV or --vv option is supplied,
+ the exit status is 0 if _c_o_m_m_a_n_d was found, and 1 if not. If
neither option is supplied and an error occurred or _c_o_m_m_a_n_d can-
- not be found, the exit status is 127. Otherwise, the exit sta-
+ not be found, the exit status is 127. Otherwise, the exit sta-
tus of the ccoommmmaanndd builtin is the exit status of _c_o_m_m_a_n_d.
ccoommppggeenn [_o_p_t_i_o_n] [_w_o_r_d]
- Generate possible completion matches for _w_o_r_d according to the
- _o_p_t_i_o_ns, which may be any option accepted by the ccoommpplleettee
- builtin with the exception of --pp and --rr, and write the matches
- to the standard output. When using the --FF or --CC options, the
- various shell variables set by the programmable completion fa-
+ Generate possible completion matches for _w_o_r_d according to the
+ _o_p_t_i_o_ns, which may be any option accepted by the ccoommpplleettee
+ builtin with the exception of --pp and --rr, and write the matches
+ to the standard output. When using the --FF or --CC options, the
+ various shell variables set by the programmable completion fa-
cilities, while available, will not have useful values.
The matches will be generated in the same way as if the program-
mable completion code had generated them directly from a comple-
- tion specification with the same flags. If _w_o_r_d is specified,
+ tion specification with the same flags. If _w_o_r_d is specified,
only those completions matching _w_o_r_d will be displayed.
- The return value is true unless an invalid option is supplied,
+ The return value is true unless an invalid option is supplied,
or no matches were generated.
- ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--DDEEII] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_-
+ ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--DDEEII] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_-
_p_a_t] [--WW _w_o_r_d_l_i_s_t]
- [--FF _f_u_n_c_t_i_o_n] [--CC _c_o_m_m_a_n_d] [--XX _f_i_l_t_e_r_p_a_t] [--PP _p_r_e_f_i_x] [--SS _s_u_f_-
+ [--FF _f_u_n_c_t_i_o_n] [--CC _c_o_m_m_a_n_d] [--XX _f_i_l_t_e_r_p_a_t] [--PP _p_r_e_f_i_x] [--SS _s_u_f_-
_f_i_x] _n_a_m_e [_n_a_m_e _._._.]
ccoommpplleettee --pprr [--DDEEII] [_n_a_m_e ...]
- Specify how arguments to each _n_a_m_e should be completed. If the
- --pp option is supplied, or if no options are supplied, existing
- completion specifications are printed in a way that allows them
+ Specify how arguments to each _n_a_m_e should be completed. If the
+ --pp option is supplied, or if no options are supplied, existing
+ completion specifications are printed in a way that allows them
to be reused as input. The --rr option removes a completion spec-
- ification for each _n_a_m_e, or, if no _n_a_m_es are supplied, all com-
+ ification for each _n_a_m_e, or, if no _n_a_m_es are supplied, all com-
pletion specifications. The --DD option indicates that other sup-
- plied options and actions should apply to the ``default'' com-
- mand completion; that is, completion attempted on a command for
- which no completion has previously been defined. The --EE option
- indicates that other supplied options and actions should apply
- to ``empty'' command completion; that is, completion attempted
- on a blank line. The --II option indicates that other supplied
- options and actions should apply to completion on the initial
- non-assignment word on the line, or after a command delimiter
- such as ;; or ||, which is usually command name completion. If
- multiple options are supplied, the --DD option takes precedence
+ plied options and actions should apply to the ``default'' com-
+ mand completion; that is, completion attempted on a command for
+ which no completion has previously been defined. The --EE option
+ indicates that other supplied options and actions should apply
+ to ``empty'' command completion; that is, completion attempted
+ on a blank line. The --II option indicates that other supplied
+ options and actions should apply to completion on the initial
+ non-assignment word on the line, or after a command delimiter
+ such as ;; or ||, which is usually command name completion. If
+ multiple options are supplied, the --DD option takes precedence
over --EE, and both take precedence over --II. If any of --DD, --EE, or
- --II are supplied, any other _n_a_m_e arguments are ignored; these
+ --II are supplied, any other _n_a_m_e arguments are ignored; these
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--
+ The process of applying these completion specifications when
+ word completion is attempted is described above under PPrrooggrraamm--
mmaabbllee CCoommpplleettiioonn.
- 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
@@ -4554,7 +4746,7 @@ SSHHEELLLL 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
@@ -4563,17 +4755,17 @@ SSHHEELLLL 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.
@@ -4582,8 +4774,9 @@ SSHHEELLLL 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
@@ -4805,16 +4998,22 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
instead of the shell builtin version, run ``enable -n test''.
The --ff option means to load the new builtin command _n_a_m_e from
shared object _f_i_l_e_n_a_m_e, on systems that support dynamic loading.
- The --dd option will delete a builtin previously loaded with --ff.
- If no _n_a_m_e arguments are given, or if the --pp option is supplied,
- a list of shell builtins is printed. With no other option argu-
- ments, the list consists of all enabled shell builtins. If --nn
- is supplied, only disabled builtins are printed. If --aa is sup-
- plied, the list printed includes all builtins, with an indica-
- tion of whether or not each is enabled. If --ss is supplied, the
- output is restricted to the POSIX _s_p_e_c_i_a_l builtins. The return
- value is 0 unless a _n_a_m_e is not a shell builtin or there is an
- error loading a new builtin from a shared object.
+ Bash will use the value of the BBAASSHH__LLOOAADDAABBLLEESS__PPAATTHH variable as a
+ colon-separated list of directories in which to search for _f_i_l_e_-
+ _n_a_m_e. The default is system-dependent. The --dd option will
+ delete a builtin previously loaded with --ff. If no _n_a_m_e argu-
+ ments are given, or if the --pp option is supplied, a list of
+ shell builtins is printed. With no other option arguments, the
+ list consists of all enabled shell builtins. If --nn is supplied,
+ only disabled builtins are printed. If --aa is supplied, the list
+ printed includes all builtins, with an indication of whether or
+ not each is enabled. If --ss is supplied, the output is re-
+ stricted to the POSIX _s_p_e_c_i_a_l builtins. If no options are sup-
+ plied and a _n_a_m_e is not a shell builtin, eennaabbllee will attempt to
+ load _n_a_m_e from a shared object named _n_a_m_e, as if the command
+ were ``enable -f _n_a_m_e _n_a_m_e . The return value is 0 unless a
+ _n_a_m_e is not a shell builtin or there is an error loading a new
+ builtin from a shared object.
eevvaall [_a_r_g ...]
The _a_r_gs are read and concatenated together into a single com-
@@ -5006,9 +5205,9 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
back from the end of the history, and an index of -1
refers to the current hhiissttoorryy --dd command.
--dd _s_t_a_r_t-_e_n_d
- Delete the history entries between positions _s_t_a_r_t and
- _e_n_d, inclusive. Positive and negative values for _s_t_a_r_t
- and _e_n_d are interpreted as described above.
+ Delete the range of history entries between positions
+ _s_t_a_r_t and _e_n_d, inclusive. Positive and negative values
+ for _s_t_a_r_t and _e_n_d are interpreted as described above.
--aa Append the ``new'' history lines to the history file.
These are history lines entered since the beginning of
the current bbaasshh session, but not already appended to the
@@ -5036,9 +5235,9 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
character followed immediately by a digit are interpreted as
timestamps for the following history entry. The return value is
0 unless an invalid option is encountered, an error occurs while
- reading or writing the history file, an invalid _o_f_f_s_e_t is sup-
- plied as an argument to --dd, or the history expansion supplied as
- an argument to --pp fails.
+ reading or writing the history file, an invalid _o_f_f_s_e_t or range
+ is supplied as an argument to --dd, or the history expansion sup-
+ plied as an argument to --pp fails.
jjoobbss [--llnnpprrss] [ _j_o_b_s_p_e_c ... ]
jjoobbss --xx _c_o_m_m_a_n_d [ _a_r_g_s ... ]
@@ -5140,44 +5339,55 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
_a_r_r_a_y is not an indexed array.
ppooppdd [-nn] [+_n] [-_n]
- Removes entries from the directory stack. With no arguments,
- removes the top directory from the stack, and performs a ccdd to
- the new top directory. Arguments, if supplied, have the follow-
- ing meanings:
- --nn Suppresses the normal change of directory when removing
+ Removes entries from the directory stack. The elements are num-
+ bered from 0 starting at the first directory listed by ddiirrss.
+ With no arguments, ppooppdd removes the top directory from the
+ stack, and changes to the new top directory. Arguments, if sup-
+ plied, have the following meanings:
+ --nn Suppresses the normal change of directory when removing
directories from the stack, so that only the stack is ma-
nipulated.
- ++_n Removes the _nth entry counting from the left of the list
- shown by ddiirrss, starting with zero. For example: ``popd
- +0'' removes the first directory, ``popd +1'' the second.
+ ++_n Removes the _nth entry counting from the left of the list
+ shown by ddiirrss, starting with zero, from the stack. For
+ example: ``popd +0'' removes the first directory, ``popd
+ +1'' the second.
--_n Removes the _nth entry counting from the right of the list
shown by ddiirrss, starting with zero. For example: ``popd
-0'' removes the last directory, ``popd -1'' the next to
last.
- If the ppooppdd command is successful, a ddiirrss is performed as well,
- and the return status is 0. ppooppdd returns false if an invalid
- option is encountered, the directory stack is empty, a non-exis-
- tent directory stack entry is specified, or the directory change
- fails.
+ If the top element of the directory stack is modified, and the
+ _-_n option was not supplied, ppooppdd uses the ccdd builtin to change
+ to the directory at the top of the stack. If the ccdd fails, ppooppdd
+ returns a non-zero value.
+
+ Otherwise, ppooppdd returns false if an invalid option is encoun-
+ tered, the directory stack is empty, or a non-existent directory
+ stack entry is specified.
+
+ If the ppooppdd command is successful, bash runs ddiirrss to show the
+ final contents of the directory stack, and the return status is
+ 0.
pprriinnttff [--vv _v_a_r] _f_o_r_m_a_t [_a_r_g_u_m_e_n_t_s]
- Write the formatted _a_r_g_u_m_e_n_t_s to the standard output under the
- control of the _f_o_r_m_a_t. The --vv option causes the output to be
- assigned to the variable _v_a_r rather than being printed to the
+ Write the formatted _a_r_g_u_m_e_n_t_s to the standard output under the
+ control of the _f_o_r_m_a_t. The --vv option causes the output to be
+ assigned to the variable _v_a_r rather than being printed to the
standard output.
- The _f_o_r_m_a_t is a character string which contains three types of
- objects: plain characters, which are simply copied to standard
- output, character escape sequences, which are converted and
- copied to the standard output, and format specifications, each
- of which causes printing of the next successive _a_r_g_u_m_e_n_t. In
+ The _f_o_r_m_a_t is a character string which contains three types of
+ objects: plain characters, which are simply copied to standard
+ output, character escape sequences, which are converted and
+ copied to the standard output, and format specifications, each
+ of which causes printing of the next successive _a_r_g_u_m_e_n_t. In
addition to the standard _p_r_i_n_t_f(1) format specifications, pprriinnttff
interprets the following extensions:
%%bb causes pprriinnttff to expand backslash escape sequences in the
corresponding _a_r_g_u_m_e_n_t in the same way as eecchhoo --ee.
- %%qq causes pprriinnttff to output the corresponding _a_r_g_u_m_e_n_t in a
+ %%qq causes pprriinnttff to output the corresponding _a_r_g_u_m_e_n_t in a
format that can be reused as shell input.
+ %%QQ like %%qq, but applies any supplied precision to the _a_r_g_u_-
+ _m_e_n_t before quoting it.
%%((_d_a_t_e_f_m_t))TT
causes pprriinnttff to output the date-time string resulting
from using _d_a_t_e_f_m_t as a format string for _s_t_r_f_t_i_m_e(3).
@@ -5209,9 +5419,9 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
ppuusshhdd [--nn] [_d_i_r]
Adds a directory to the top of the directory stack, or rotates
the stack, making the new top of the stack the current working
- directory. With no arguments, ppuusshhdd exchanges the top two di-
- rectories and returns 0, unless the directory stack is empty.
- Arguments, if supplied, have the following meanings:
+ directory. With no arguments, ppuusshhdd exchanges the top two ele-
+ ments of the directory stack. Arguments, if supplied, have the
+ following meanings:
--nn Suppresses the normal change of directory when rotating
or adding directories to the stack, so that only the
stack is manipulated.
@@ -5221,16 +5431,20 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
--_n Rotates the stack so that the _nth directory (counting
from the right of the list shown by ddiirrss, starting with
zero) is at the top.
- _d_i_r Adds _d_i_r to the directory stack at the top, making it the
- new current working directory as if it had been supplied
- as the argument to the ccdd builtin.
+ _d_i_r Adds _d_i_r to the directory stack at the top
+
+ After the stack has been modified, if the --nn option was not sup-
+ plied, ppuusshhdd uses the ccdd builtin to change to the directory at
+ the top of the stack. If the ccdd fails, ppuusshhdd returns a non-zero
+ value.
+
+ Otherwise, if no arguments are supplied, ppuusshhdd returns 0 unless
+ the directory stack is empty. When rotating the directory
+ stack, ppuusshhdd returns 0 unless the directory stack is empty or a
+ non-existent directory stack element is specified.
- If the ppuusshhdd command is successful, a ddiirrss is performed as well.
- If the first form is used, ppuusshhdd returns 0 unless the cd to _d_i_r
- fails. With the second form, ppuusshhdd returns 0 unless the direc-
- tory stack is empty, a non-existent directory stack element is
- specified, or the directory change to the specified new current
- directory fails.
+ If the ppuusshhdd command is successful, bash runs ddiirrss to show the
+ final contents of the directory stack.
ppwwdd [--LLPP]
Print the absolute pathname of the current working directory.
@@ -5270,7 +5484,7 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
--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-
+ not previously active) editing settings, but uses read-
line's default filename completion.
--ii _t_e_x_t
If rreeaaddlliinnee is being used to read the line, _t_e_x_t is
@@ -5312,115 +5526,116 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
the specified variable _n_a_m_e. If _t_i_m_e_o_u_t is 0, rreeaadd re-
turns immediately, without trying to read any data. The
exit status is 0 if input is available on the specified
- file descriptor, non-zero otherwise. The exit status is
- greater than 128 if the timeout is exceeded.
+ file descriptor, or the read will return EOF, non-zero
+ otherwise. The exit status is greater than 128 if the
+ timeout is exceeded.
--uu _f_d Read input from file descriptor _f_d.
- If no _n_a_m_e_s are supplied, the line read, without the ending de-
- limiter but otherwise unmodified, is assigned to the variable
- RREEPPLLYY. The exit status is zero, unless end-of-file is encoun-
- tered, rreeaadd times out (in which case the status is greater than
- 128), a variable assignment error (such as assigning to a read-
+ If no _n_a_m_e_s are supplied, the line read, without the ending de-
+ limiter but otherwise unmodified, is assigned to the variable
+ RREEPPLLYY. The exit status is zero, unless end-of-file is encoun-
+ tered, rreeaadd times out (in which case the status is greater than
+ 128), a variable assignment error (such as assigning to a read-
only variable) occurs, or an invalid file descriptor is supplied
as the argument to --uu.
rreeaaddoonnllyy [--aaAAff] [--pp] [_n_a_m_e[=_w_o_r_d] ...]
- The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s
- may not be changed by subsequent assignment. If the --ff option
- is supplied, the functions corresponding to the _n_a_m_e_s are so
- marked. The --aa option restricts the variables to indexed ar-
- rays; the --AA option restricts the variables to associative ar-
+ The given _n_a_m_e_s are marked readonly; the values of these _n_a_m_e_s
+ may not be changed by subsequent assignment. If the --ff option
+ is supplied, the functions corresponding to the _n_a_m_e_s are so
+ marked. The --aa option restricts the variables to indexed ar-
+ rays; the --AA option restricts the variables to associative ar-
rays. If both options are supplied, --AA takes precedence. If no
- _n_a_m_e arguments are given, or if the --pp option is supplied, a
+ _n_a_m_e arguments are given, or if the --pp option is supplied, a
list of all readonly names is printed. The other options may be
- used to restrict the output to a subset of the set of readonly
- names. The --pp option causes output to be displayed in a format
- that may be reused as input. If a variable name is followed by
- =_w_o_r_d, the value of the variable is set to _w_o_r_d. The return
- status is 0 unless an invalid option is encountered, one of the
+ used to restrict the output to a subset of the set of readonly
+ names. The --pp option causes output to be displayed in a format
+ that may be reused as input. If a variable name is followed by
+ =_w_o_r_d, the value of the variable is set to _w_o_r_d. The return
+ status is 0 unless an invalid option is encountered, one of the
_n_a_m_e_s is not a valid shell variable name, or --ff is supplied with
a _n_a_m_e that is not a function.
rreettuurrnn [_n]
- Causes a function to stop executing and return the value speci-
- fied by _n to its caller. If _n is omitted, the return status is
- that of the last command executed in the function body. If rree--
+ Causes a function to stop executing and return the value speci-
+ fied by _n to its caller. If _n is omitted, the return status is
+ that of the last command executed in the function body. If rree--
ttuurrnn is executed by a trap handler, the last command used to de-
- termine the status is the last command executed before the trap
- handler. If rreettuurrnn is executed during a DDEEBBUUGG trap, the last
- command used to determine the status is the last command exe-
- cuted by the trap handler before rreettuurrnn was invoked. If rreettuurrnn
- is used outside a function, but during execution of a script by
- the .. (ssoouurrccee) command, it causes the shell to stop executing
- that script and return either _n or the exit status of the last
- command executed within the script as the exit status of the
+ termine the status is the last command executed before the trap
+ handler. If rreettuurrnn is executed during a DDEEBBUUGG trap, the last
+ command used to determine the status is the last command exe-
+ cuted by the trap handler before rreettuurrnn was invoked. If rreettuurrnn
+ is used outside a function, but during execution of a script by
+ the .. (ssoouurrccee) command, it causes the shell to stop executing
+ that script and return either _n or the exit status of the last
+ command executed within the script as the exit status of the
script. If _n is supplied, the return value is its least signif-
- icant 8 bits. The return status is non-zero if rreettuurrnn is sup-
- plied a non-numeric argument, or is used outside a function and
- not during execution of a script by .. or ssoouurrccee. Any command
+ icant 8 bits. The return status is non-zero if rreettuurrnn is sup-
+ plied a non-numeric argument, or is used outside a function and
+ not during execution of a script by .. or ssoouurrccee. Any command
associated with the RREETTUURRNN trap is executed before execution re-
sumes after the function or script.
- sseett [----aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [--oo _o_p_t_i_o_n_-_n_a_m_e] [_a_r_g ...]
- sseett [++aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [++oo _o_p_t_i_o_n_-_n_a_m_e] [_a_r_g ...]
- Without options, the name and value of each shell variable are
- displayed in a format that can be reused as input for setting or
- resetting the currently-set variables. Read-only variables can-
- not be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed.
- The output is sorted according to the current locale. When op-
- tions are specified, they set or unset shell attributes. Any
- arguments remaining after option processing are treated as val-
- ues for the positional parameters and are assigned, in order, to
- $$11, $$22, ...... $$_n. Options, if specified, have the following
- meanings:
+ sseett [--aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [--oo _o_p_t_i_o_n_-_n_a_m_e] [----] [--] [_a_r_g ...]
+ sseett [++aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [++oo _o_p_t_i_o_n_-_n_a_m_e] [----] [--] [_a_r_g ...]
+ Without options, display the name and value of each shell vari-
+ able in a format that can be reused as input for setting or re-
+ setting the currently-set variables. Read-only variables cannot
+ be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed. The
+ output is sorted according to the current locale. When options
+ are specified, they set or unset shell attributes. Any argu-
+ ments remaining after option processing are treated as values
+ for the positional parameters and are assigned, in order, to $$11,
+ $$22, ...... $$_n. Options, if specified, have the following mean-
+ ings:
--aa Each variable or function that is created or modified is
- given the export attribute and marked for export to the
+ given the export attribute and marked for export to the
environment of subsequent commands.
- --bb Report the status of terminated background jobs immedi-
+ --bb Report the status of terminated background jobs immedi-
ately, rather than before the next primary prompt. This
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
+ --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 &&&&
+ 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
+ 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
+ ronment separately (see CCOOMMMMAANNDD EEXXEECCUUTTIIOONN EENNVVIIRROONNMMEENNTT
above), and may cause subshells to exit before executing
all the commands in the subshell.
- If a compound command or shell function executes in a
- context where --ee is being ignored, none of the commands
- executed within the compound command or function body
- will be affected by the --ee setting, even if --ee is set
- and a command returns a failure status. If a compound
- command or shell function sets --ee while executing in a
- context where --ee is ignored, that setting will not have
- any effect until the compound command or the command
+ If a compound command or shell function executes in a
+ context where --ee is being ignored, none of the commands
+ executed within the compound command or function body
+ will be affected by the --ee setting, even if --ee is set
+ and a command returns a failure status. If a compound
+ command or shell function sets --ee while executing in a
+ context where --ee is ignored, that setting will not have
+ any effect until the compound command or the command
containing the function call completes.
--ff Disable pathname expansion.
- --hh Remember the location of commands as they are looked up
+ --hh Remember the location of commands as they are looked up
for execution. This is enabled by default.
- --kk All arguments in the form of assignment statements are
- placed in the environment for a command, not just those
+ --kk All arguments in the form of assignment statements are
+ placed in the environment for a command, not just those
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
+ --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.
--nn Read commands but do not execute them. This may be used
- to check a shell script for syntax errors. This is ig-
+ to check a shell script for syntax errors. This is ig-
nored by interactive shells.
--oo _o_p_t_i_o_n_-_n_a_m_e
The _o_p_t_i_o_n_-_n_a_m_e can be one of the following:
@@ -5428,10 +5643,10 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
Same as --aa.
bbrraacceeeexxppaanndd
Same as --BB.
- eemmaaccss Use an emacs-style command line editing inter-
+ eemmaaccss Use an emacs-style command line editing inter-
face. This is enabled by default when the shell
is interactive, unless the shell is started with
- the ----nnooeeddiittiinngg option. This also affects the
+ the ----nnooeeddiittiinngg option. This also affects the
editing interface used for rreeaadd --ee.
eerrrreexxiitt Same as --ee.
eerrrrttrraaccee
@@ -5445,8 +5660,8 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
HHIISSTTOORRYY. This option is on by default in inter-
active shells.
iiggnnoorreeeeooff
- The effect is as if the shell command ``IG-
- NOREEOF=10'' had been executed (see SShheellll VVaarrii--
+ The effect is as if the shell command ``IG-
+ NOREEOF=10'' had been executed (see SShheellll VVaarrii--
aabblleess above).
kkeeyywwoorrdd Same as --kk.
mmoonniittoorr Same as --mm.
@@ -5461,172 +5676,175 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
pphhyyssiiccaall
Same as --PP.
ppiippeeffaaiill
- If set, the return value of a pipeline is the
- value of the last (rightmost) command to exit
- with a non-zero status, or zero if all commands
- in the pipeline exit successfully. This option
+ If set, the return value of a pipeline is the
+ value of the last (rightmost) command to exit
+ with a non-zero status, or zero if all commands
+ in the pipeline exit successfully. This option
is disabled by default.
- 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
+ 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.
pprriivviilleeggeedd
Same as --pp.
vveerrbboossee Same as --vv.
- vvii Use a vi-style command line editing interface.
+ vvii Use a vi-style command line editing interface.
This also affects the editing interface used for
rreeaadd --ee.
xxttrraaccee Same as --xx.
If --oo is supplied with no _o_p_t_i_o_n_-_n_a_m_e, the values of the
- current options are printed. If ++oo is supplied with no
- _o_p_t_i_o_n_-_n_a_m_e, a series of sseett commands to recreate the
- current option settings is displayed on the standard
+ current options are printed. If ++oo is supplied with no
+ _o_p_t_i_o_n_-_n_a_m_e, a series of sseett commands to recreate the
+ current option settings is displayed on the standard
output.
- --pp Turn on _p_r_i_v_i_l_e_g_e_d mode. In this mode, the $$EENNVV and
- $$BBAASSHH__EENNVV files are not processed, shell functions are
- not inherited from the environment, and the SSHHEELLLLOOPPTTSS,
- BBAASSHHOOPPTTSS, CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they ap-
- pear in the environment, are ignored. If the shell is
- started with the effective user (group) id not equal to
- the real user (group) id, and the --pp option is not sup-
+ --pp Turn on _p_r_i_v_i_l_e_g_e_d mode. In this mode, the $$EENNVV and
+ $$BBAASSHH__EENNVV files are not processed, shell functions are
+ not inherited from the environment, and the SSHHEELLLLOOPPTTSS,
+ BBAASSHHOOPPTTSS, CCDDPPAATTHH, and GGLLOOBBIIGGNNOORREE variables, if they ap-
+ pear in the environment, are ignored. If the shell is
+ started with the effective user (group) id not equal to
+ the real user (group) id, and the --pp option is not sup-
plied, these actions are taken and the effective user id
- is set to the real user id. If the --pp option is sup-
- plied at startup, the effective user id is not reset.
- Turning this option off causes the effective user and
+ is set to the real user id. If the --pp option is sup-
+ plied at startup, the effective user id is not reset.
+ Turning this option off causes the effective user and
group ids to be set to the real user and group ids.
+ --rr Enable restricted shell mode. This option cannot be un-
+ set once it has been set.
--tt Exit after reading and executing one command.
--uu Treat unset variables and parameters other than the spe-
- cial parameters "@" and "*" as an error when performing
- parameter expansion. If expansion is attempted on an
- unset variable or parameter, the shell prints an error
- message, and, if not interactive, exits with a non-zero
+ cial parameters "@" and "*", or array variables sub-
+ scripted with "@" or "*", as an error when performing
+ parameter expansion. If expansion is attempted on an
+ unset variable or parameter, the shell prints an error
+ message, and, if not interactive, exits with a non-zero
status.
--vv Print shell input lines as they are read.
- --xx After expanding each _s_i_m_p_l_e _c_o_m_m_a_n_d, ffoorr command, ccaassee
+ --xx After expanding each _s_i_m_p_l_e _c_o_m_m_a_n_d, ffoorr command, ccaassee
command, sseelleecctt command, or arithmetic ffoorr command, dis-
- play the expanded value of PPSS44, followed by the command
+ 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
+ --BB The shell performs brace expansion (see BBrraaccee EExxppaannssiioonn
above). This is on by default.
- --CC If set, bbaasshh does not overwrite an existing file with
- the >>, >>&&, and <<>> redirection operators. This may be
+ --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-
rection operator >>|| instead of >>.
--EE If set, any trap on EERRRR is inherited by shell functions,
- command substitutions, and commands executed in a sub-
- shell environment. The EERRRR trap is normally not inher-
+ command substitutions, and commands executed in a sub-
+ shell environment. The EERRRR trap is normally not inher-
ited in such cases.
--HH Enable !! style history substitution. This option is on
by default when the shell is interactive.
- --PP If set, the shell does not resolve symbolic links when
- executing commands such as ccdd that change the current
+ --PP If set, the shell does not resolve symbolic links when
+ executing commands such as ccdd that change the current
working directory. It uses the physical directory
structure instead. By default, bbaasshh follows the logical
- chain of directories when performing commands which
+ chain of directories when performing commands which
change the current directory.
- --TT If set, any traps on DDEEBBUUGG and RREETTUURRNN are inherited by
+ --TT If set, any traps on DDEEBBUUGG and RREETTUURRNN are inherited by
shell functions, command substitutions, and commands ex-
- ecuted in a subshell environment. The DDEEBBUUGG and RREETTUURRNN
+ ecuted in a subshell environment. The DDEEBBUUGG and RREETTUURRNN
traps are normally not inherited in such cases.
- ---- If no arguments follow this option, then the positional
+ ---- If no arguments follow this option, then the positional
parameters are unset. Otherwise, the positional parame-
- ters are set to the _a_r_gs, even if some of them begin
+ ters are set to the _a_r_gs, even if some of them begin
with a --.
- -- Signal the end of options, cause all remaining _a_r_gs to
+ -- Signal the end of options, cause all remaining _a_r_gs to
be assigned to the positional parameters. The --xx and --vv
options are turned off. If there are no _a_r_gs, the posi-
tional parameters remain unchanged.
- The options are off by default unless otherwise noted. Using +
- rather than - causes these options to be turned off. The op-
+ The options are off by default unless otherwise noted. Using +
+ rather than - causes these options to be turned off. The op-
tions can also be specified as arguments to an invocation of the
- shell. The current set of options may be found in $$--. The re-
- turn status is always true unless an invalid option is encoun-
+ shell. The current set of options may be found in $$--. The re-
+ turn status is always true unless an invalid option is encoun-
tered.
sshhiifftt [_n]
- The positional parameters from _n+1 ... are renamed to $$11 ........
- Parameters represented by the numbers $$## down to $$##-_n+1 are un-
- set. _n must be a non-negative number less than or equal to $$##.
- If _n is 0, no parameters are changed. If _n is not given, it is
+ The positional parameters from _n+1 ... are renamed to $$11 ........
+ Parameters represented by the numbers $$## down to $$##-_n+1 are un-
+ set. _n must be a non-negative number less than or equal to $$##.
+ If _n is 0, no parameters are changed. If _n is not given, it is
assumed to be 1. If _n is greater than $$##, the positional param-
- eters are not changed. The return status is greater than zero
+ eters are not changed. The return status is greater than zero
if _n is greater than $$## or less than zero; otherwise 0.
sshhoopptt [--ppqqssuu] [--oo] [_o_p_t_n_a_m_e ...]
- Toggle the values of settings controlling optional shell behav-
- ior. The settings can be either those listed below, or, if the
+ Toggle the values of settings controlling optional shell behav-
+ ior. The settings can be either those listed below, or, if the
--oo option is used, those available with the --oo option to the sseett
builtin command. With no options, or with the --pp option, a list
- of all settable options is displayed, with an indication of
+ of all settable options is displayed, with an indication of
whether or not each is set; if _o_p_t_n_a_m_e_s are supplied, the output
- is restricted to those options. The --pp option causes output to
- be displayed in a form that may be reused as input. Other op-
+ is restricted to those options. The --pp option causes output to
+ be displayed in a form that may be reused as input. Other op-
tions have the following meanings:
--ss Enable (set) each _o_p_t_n_a_m_e.
--uu Disable (unset) each _o_p_t_n_a_m_e.
- --qq Suppresses normal output (quiet mode); the return status
+ --qq Suppresses normal output (quiet mode); the return status
indicates whether the _o_p_t_n_a_m_e is set or unset. If multi-
- ple _o_p_t_n_a_m_e arguments are given with --qq, the return sta-
- tus is zero if all _o_p_t_n_a_m_e_s are enabled; non-zero other-
+ ple _o_p_t_n_a_m_e arguments are given with --qq, the return sta-
+ tus is zero if all _o_p_t_n_a_m_e_s are enabled; non-zero other-
wise.
- --oo Restricts the values of _o_p_t_n_a_m_e to be those defined for
+ --oo Restricts the values of _o_p_t_n_a_m_e to be those defined for
the --oo option to the sseett builtin.
- If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, sshhoopptt
- shows only those options which are set or unset, respectively.
- Unless otherwise noted, the sshhoopptt options are disabled (unset)
+ If either --ss or --uu is used with no _o_p_t_n_a_m_e arguments, sshhoopptt
+ shows only those options which are set or unset, respectively.
+ Unless otherwise noted, the sshhoopptt options are disabled (unset)
by default.
- The return status when listing options is zero if all _o_p_t_n_a_m_e_s
- are enabled, non-zero otherwise. When setting or unsetting op-
- tions, the return status is zero unless an _o_p_t_n_a_m_e is not a
+ The return status when listing options is zero if all _o_p_t_n_a_m_e_s
+ are enabled, non-zero otherwise. When setting or unsetting op-
+ tions, the return status is zero unless an _o_p_t_n_a_m_e is not a
valid shell option.
The list of sshhoopptt options is:
aassssoocc__eexxppaanndd__oonnccee
- If set, the shell suppresses multiple evaluation of as-
- sociative array subscripts during arithmetic expression
- evaluation, while executing builtins that can perform
- variable assignments, and while executing builtins that
+ If set, the shell suppresses multiple evaluation of as-
+ sociative array subscripts during arithmetic expression
+ evaluation, while executing builtins that can perform
+ variable assignments, and while executing builtins that
perform array dereferencing.
- aauuttooccdd If set, a command name that is the name of a directory
- is executed as if it were the argument to the ccdd com-
+ aauuttooccdd If set, a command name that is the name of a directory
+ is executed as if it were the argument to the ccdd com-
mand. This option is only used by interactive shells.
ccddaabbllee__vvaarrss
- If set, an argument to the ccdd builtin command that is
- not a directory is assumed to be the name of a variable
+ If set, an argument to the ccdd builtin command that is
+ not a directory is assumed to be the name of a variable
whose value is the directory to change to.
ccddssppeellll If set, minor errors in the spelling of a directory com-
- ponent in a ccdd command will be corrected. The errors
+ ponent in a ccdd command will be corrected. The errors
checked for are transposed characters, a missing charac-
- ter, and one character too many. If a correction is
- found, the corrected filename is printed, and the com-
- mand proceeds. This option is only used by interactive
+ ter, and one character too many. If a correction is
+ found, the corrected filename is printed, and the com-
+ mand proceeds. This option is only used by interactive
shells.
cchheecckkhhaasshh
If set, bbaasshh checks that a command found in the hash ta-
- ble exists before trying to execute it. If a hashed
- command no longer exists, a normal path search is per-
+ ble exists before trying to execute it. If a hashed
+ command no longer exists, a normal path search is per-
formed.
cchheecckkjjoobbss
If set, bbaasshh lists the status of any stopped and running
- jobs before exiting an interactive shell. If any jobs
+ 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
+ second exit is attempted without an intervening command
(see JJOOBB CCOONNTTRROOLL above). The shell always postpones ex-
iting if any jobs are stopped.
cchheecckkwwiinnssiizzee
- If set, bbaasshh checks the window size after each external
- (non-builtin) command and, if necessary, updates the
- values of LLIINNEESS and CCOOLLUUMMNNSS. This option is enabled by
+ If set, bbaasshh checks the window size after each external
+ (non-builtin) command and, if necessary, updates the
+ values of LLIINNEESS and CCOOLLUUMMNNSS. This option is enabled by
default.
- ccmmddhhiisstt If set, bbaasshh 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
+ ccmmddhhiisstt If set, bbaasshh 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 HHIISSTTOORRYY.
ccoommppaatt3311
ccoommppaatt3322
@@ -5635,117 +5853,123 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
ccoommppaatt4422
ccoommppaatt4433
ccoommppaatt4444
- These control aspects of the shell's compatibility mode
+ ccoommppaatt5500
+ These control aspects of the shell's compatibility mode
(see SSHHEELLLL CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE below).
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
+ If set, aliases are expanded as described above under
AALLIIAASSEESS. This option is enabled by default for interac-
tive 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 above).
- 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.
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 above for a de-
+ scription 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
+ 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.
+ gglloobbsskkiippddoottss
+ 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
@@ -5753,25 +5977,25 @@ SSHHEELLLL 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
+ perform hostname completion when a word containing a @@
+ is being completed (see CCoommpplleettiinngg under RREEAADDLLIINNEE
above). This is enabled by default.
hhuuppoonneexxiitt
@@ -5779,23 +6003,23 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
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-
+ and all remaining characters on that line to be ignored
+ in an interactive shell (see CCOOMMMMEENNTTSS above). This op-
tion 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.
@@ -5806,45 +6030,56 @@ SSHHEELLLL 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 above). 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).
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
+ 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,
+ If set, bbaasshh allows patterns which match no files (see
+ PPaatthhnnaammee EExxppaannssiioonn above) 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.
+
pprrooggccoommpp
If set, the programmable completion facilities (see PPrroo--
ggrraammmmaabbllee CCoommpplleettiioonn above) are enabled. This option is
@@ -5876,20 +6111,27 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
ters.
ssoouurrcceeppaatthh
- If set, the ssoouurrccee (..) builtin uses the value of PPAATTHH to
+ If set, the .. (ssoouurrccee) builtin uses the value of PPAATTHH to
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
+ 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.
+
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 cannot be suspended; the --ff option can be
- used to override this and force the suspension. The return sta-
- tus is 0 unless the shell is a login shell and --ff is not sup-
- plied, or if job control is not enabled.
+ 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 ]]
@@ -5943,11 +6185,15 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
is the one-argument test of the second argument. Other-
wise, 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
- the three-argument expression composed of the remaining
- arguments. Otherwise, the expression is parsed and eval-
- uated according to precedence using the rules listed
- above.
+ the three-argument expression composed of the remaining
+ arguments. the two-argument test using the second and
+ third arguments. If the first argument is exactly (( and
+ the fourth argument is exactly )), the result is the two-
+ argument test of the second and third arguments. Other-
+ wise, the expression is parsed and evaluated according to
+ precedence using the rules listed above.
5 or more arguments
The expression is parsed and evaluated according to
precedence using the rules listed above.
@@ -6115,7 +6361,7 @@ SSHHEELLLL BBUUIILLTTIINN CCOOMMMMAANNDDSS
NNAAMMEE, GGRROOUUPPSS, HHIISSTTCCMMDD, LLIINNEENNOO, RRAANNDDOOMM, SSEECCOONNDDSS, or SSRRAANNDDOOMM are
unset, they lose their special properties, even if they are sub-
sequently reset. The exit status is true unless a _n_a_m_e is read-
- only.
+ only or may not be unset.
wwaaiitt [--ffnn] [--pp _v_a_r_n_a_m_e] [_i_d _._._.]
Wait for each specified child process and return its termination
@@ -6137,23 +6383,25 @@ SSHHEELLLL 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 above. 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 `shell compatibility level', spec-
- ified as a set of options to the shopt builtin ccoommppaatt3311, ccoommppaatt3322, ccoomm--
- ppaatt4400, ccoommppaatt4411, and so on). There is only one current compatibility
- level -- each option is mutually exclusive. The compatibility level is
- intended to allow users to select behavior from previous versions that
- is incompatible with newer versions while they migrate scripts to use
- current features and behavior. It's intended to be a temporary solu-
- tion.
+ Bash-4.0 introduced the concept of a _s_h_e_l_l _c_o_m_p_a_t_i_b_i_l_i_t_y _l_e_v_e_l, speci-
+ fied as a set of options to the shopt builtin ( ccoommppaatt3311, ccoommppaatt3322,
+ ccoommppaatt4400, ccoommppaatt4411, and so on). There is only one current compatibil-
+ ity level -- each option is mutually exclusive. The compatibility
+ level is intended to allow users to select behavior from previous ver-
+ sions that is incompatible with newer versions while they migrate
+ scripts to use current features and behavior. It's intended to be a
+ temporary solution.
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
@@ -6230,8 +6478,8 @@ SSHHEELLLL CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE
ccoommppaatt4433
+o the shell does not print a warning message if an attempt
is made to use a quoted compound assignment as an argu-
- ment to declare (declare -a foo='(1 2)'). Later versions
- warn that this usage is deprecated
+ ment to declare (e.g., declare -a foo='(1 2)'). Later
+ versions warn that this usage is deprecated
+o word expansion errors are considered non-fatal errors
that cause the current command to fail, even in posix
mode (the default behavior is to make them fatal errors
@@ -6268,33 +6516,39 @@ SSHHEELLLL CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE
input. Bash-5.1 suppresses that message when the --ll op-
tion is supplied.
+ ccoommppaatt5511
+ +o The uunnsseett builtin treats attempts to unset array sub-
+ scripts @@ and ** differently depending on whether the ar-
+ ray is indexed or associative, and differently than in
+ previous versions.
+
RREESSTTRRIICCTTEEDD SSHHEELLLL
If bbaasshh is started with the name rrbbaasshh, or the --rr option is supplied at
- invocation, the shell becomes restricted. A restricted shell is used
- to set up an environment more controlled than the standard shell. It
- behaves identically to bbaasshh with the exception that the following are
+ invocation, the shell becomes restricted. A restricted shell is used
+ to set up an environment more controlled than the standard shell. It
+ behaves identically to bbaasshh with the exception that the following are
disallowed or not performed:
+o changing directories with ccdd
- +o setting or unsetting the values of SSHHEELLLL, PPAATTHH, HHIISSTTFFIILLEE, EENNVV,
+ +o setting or unsetting the values of SSHHEELLLL, PPAATTHH, HHIISSTTFFIILLEE, EENNVV,
or BBAASSHH__EENNVV
+o specifying command names containing //
- +o specifying a filename containing a // as an argument to the ..
+ +o specifying a filename containing a // as an argument to the ..
builtin command
- +o specifying a filename containing a slash as an argument to the
+ +o specifying a filename containing a slash as an argument to the
hhiissttoorryy builtin command
- +o specifying a filename containing a slash as an argument to the
+ +o specifying a filename containing a slash as an argument to the
--pp option to the hhaasshh builtin command
- +o importing function definitions from the shell environment at
+ +o importing function definitions from the shell environment at
startup
- +o parsing the value of SSHHEELLLLOOPPTTSS from the shell environment at
+ +o parsing the value of SSHHEELLLLOOPPTTSS from the shell environment at
startup
+o redirecting output using the >, >|, <>, >&, &>, and >> redirect-
@@ -6303,15 +6557,16 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL
+o using the eexxeecc builtin command to replace the shell with another
command
- +o adding or deleting builtin commands with the --ff and --dd options
+ +o adding or deleting builtin commands with the --ff and --dd options
to the eennaabbllee builtin command
- +o using the eennaabbllee builtin command to enable disabled shell
+ +o using the eennaabbllee builtin command to enable disabled shell
builtins
+o specifying the --pp option to the ccoommmmaanndd builtin command
- +o turning off restricted mode with sseett ++rr or sseett ++oo rreessttrriicctteedd.
+ +o turning off restricted mode with sseett ++rr or sshhoopptt --uu rree--
+ ssttrriicctteedd__sshheellll.
These restrictions are enforced after any startup files are read.
@@ -6343,6 +6598,9 @@ FFIILLEESS
_~_/_._b_a_s_h___l_o_g_o_u_t
The individual login shell cleanup file, executed when a login
shell exits
+ _~_/_._b_a_s_h___h_i_s_t_o_r_y
+ The default value of HHIISSTTFFIILLEE, the file in which bash saves the
+ command history
_~_/_._i_n_p_u_t_r_c
Individual _r_e_a_d_l_i_n_e initialization file
@@ -6355,9 +6613,10 @@ AAUUTTHHOORRSS
BBUUGG RREEPPOORRTTSS
If you find a bug in bbaasshh,, 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 bbaasshh. The latest version is always available from
- _f_t_p_:_/_/_f_t_p_._g_n_u_._o_r_g_/_p_u_b_/_g_n_u_/_b_a_s_h_/.
+ make sure that it really is a bug, and that it appears in the latest
+ version of bbaasshh. The latest version is always available from
+ _f_t_p_:_/_/_f_t_p_._g_n_u_._o_r_g_/_p_u_b_/_g_n_u_/_b_a_s_h_/ and _h_t_t_p_:_/_/_g_i_t_._s_a_v_a_n_-
+ _n_a_h_._g_n_u_._o_r_g_/_c_g_i_t_/_b_a_s_h_._g_i_t_/_s_n_a_p_s_h_o_t_/_b_a_s_h_-_m_a_s_t_e_r_._t_a_r_._g_z.
Once you have determined that a bug actually exists, use the _b_a_s_h_b_u_g
command to submit a bug report. If you have a fix, you are encouraged
@@ -6402,4 +6661,4 @@ BBUUGGSS
-GNU Bash 5.1 2020 October 29 BASH(1)
+GNU Bash 5.2 2022 September 19 BASH(1)
diff --git a/doc/bash.1 b/doc/bash.1
index 5af7d428..55c56220 100644
--- a/doc/bash.1
+++ b/doc/bash.1
@@ -5,12 +5,12 @@
.\" Case Western Reserve University
.\" chet.ramey@case.edu
.\"
-.\" Last Change: Wed Sep 23 09:28:31 EDT 2020
+.\" Last Change: Mon Sep 19 11:13:21 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 "2020 October 29" "GNU Bash 5.1"
+.TH BASH 1 "2022 September 19" "GNU Bash 5.2"
.\"
.\" There's some problem with having a `@'
.\" in a tagged paragraph with the BSD man macros.
@@ -50,8 +50,8 @@ bash \- GNU Bourne-Again SHell
[options]
[command_string | file]
.SH COPYRIGHT
-.if n Bash is Copyright (C) 1989-2020 by the Free Software Foundation, Inc.
-.if t Bash is Copyright \(co 1989-2020 by the Free Software Foundation, Inc.
+.if n Bash is Copyright (C) 1989-2022 by the Free Software Foundation, Inc.
+.if t Bash is Copyright \(co 1989-2022 by the Free Software Foundation, Inc.
.SH DESCRIPTION
.B Bash
is an \fBsh\fR-compatible command language interpreter that
@@ -281,7 +281,7 @@ An \fIinteractive\fP shell is one started without non-option arguments
(unless \fB\-s\fP is specified)
and without the
.B \-c
-option
+option,
whose standard input and error are
both connected to terminals (as determined by
.IR isatty (3)),
@@ -420,12 +420,14 @@ No other startup files are read.
.PP
.B Bash
attempts to determine when it is being run with its standard input
-connected to a network connection, as when executed by the remote shell
-daemon, usually \fIrshd\fP, or the secure shell daemon \fIsshd\fP.
+connected to a network connection, as when executed by
+the historical remote shell daemon, usually \fIrshd\fP,
+or the secure shell daemon \fIsshd\fP.
If
.B bash
-determines it is being run in this fashion, it reads and executes
-commands from \fI~/.bashrc\fP, if that file exists and is readable.
+determines it is being run non-interactively in this fashion,
+it reads and executes commands from \fI~/.bashrc\fP,
+if that file exists and is readable.
It will not do this if invoked as \fBsh\fP.
The
.B \-\-norc
@@ -511,6 +513,7 @@ command (only \fBin\fP and \fBdo\fP are valid):
.if t ! case coproc do done elif else esac fi for function if in select then until while { } time [[ ]]
.if t .RE
.SH "SHELL GRAMMAR"
+This section describes the syntax of the various forms of shell commands.
.SS Simple Commands
A \fIsimple command\fP is a sequence of optional variable assignments
followed by \fBblank\fP-separated words and redirections, and
@@ -529,24 +532,24 @@ or \fB|&\fP.
The format for a pipeline is:
.RS
.PP
-[\fBtime\fP [\fB\-p\fP]] [ ! ] \fIcommand\fP [ [\fB|\fP\(bv\fB|&\fP] \fIcommand2\fP ... ]
+[\fBtime\fP [\fB\-p\fP]] [ ! ] \fIcommand1\fP [ [\fB|\fP\(bv\fB|&\fP] \fIcommand2\fP ... ]
.RE
.PP
The standard output of
-.I command
+.I command1
is connected via a pipe to the standard input of
.IR command2 .
This connection is performed before any redirections specified by the
-command (see
+.IR command1 (see
.SM
.B REDIRECTION
below).
-If \fB|&\fP is used, \fIcommand\fP's standard error, in addition to its
+If \fB|&\fP is used, \fIcommand1\fP's standard error, in addition to its
standard output, is connected to
\fIcommand2\fP's standard input through the pipe;
it is shorthand for \fB2>&1 |\fP.
This implicit redirection of the standard error to the standard output is
-performed after any redirections specified by the command.
+performed after any redirections specified by \fIcommand1\fP.
.PP
The return status of a pipeline is the exit status of the last
command, unless the \fBpipefail\fP option is enabled.
@@ -588,15 +591,18 @@ The
variable may be used to specify the format of
the time information.
.PP
-Each command in a pipeline is executed as a separate process (i.e., in a
-subshell).
+Each command in a multi-command pipeline,
+where pipes are created,
+is executed in a \fIsubshell\fP, which is a
+separate process.
See
.SM
\fBCOMMAND EXECUTION ENVIRONMENT\fP
-for a description of a subshell environment.
+for a description of subshells and a subshell environment.
If the \fBlastpipe\fP option is enabled using the \fBshopt\fP builtin
(see the description of \fBshopt\fP below),
-the last element of a pipeline may be run by the shell process.
+the last element of a pipeline may be run by the shell process
+when job control is not active.
.SS Lists
A \fIlist\fP is a sequence of one or more pipelines separated by one
of the operators
@@ -671,10 +677,10 @@ the rest of the command by one or more newlines, and may be followed by a
newline in place of a semicolon.
.TP
(\fIlist\fP)
-\fIlist\fP is executed in a subshell environment (see
+\fIlist\fP is executed in a subshell (see
.SM
\fBCOMMAND EXECUTION ENVIRONMENT\fP
-below).
+below for a description of a subshell environment).
Variable assignments and builtin
commands that affect the shell's environment do not remain in effect
after the command completes. The return status is the exit status of
@@ -698,8 +704,12 @@ below under
.SM
.BR "ARITHMETIC EVALUATION" .
If the value of the expression is non-zero, the return status is 0;
-otherwise the return status is 1. This is exactly equivalent to
-\fBlet "\fIexpression\fP"\fR.
+otherwise the return status is 1.
+The \fIexpression\fP
+undergoes the same expansions
+as if it were within double quotes,
+but double quote characters in \fIexpression\fP are not treated specially
+and are removed.
.TP
\fB[[\fP \fIexpression\fP \fB]]\fP
Return a status of 0 or 1 depending on the evaluation of
@@ -707,11 +717,12 @@ the conditional expression \fIexpression\fP.
Expressions are composed of the primaries described below under
.SM
.BR "CONDITIONAL EXPRESSIONS" .
-Word splitting and pathname expansion are not performed on the words
-between the \fB[[\fP and \fB]]\fP; tilde expansion,
-parameter and variable expansion,
-arithmetic expansion, command substitution, process
-substitution, and quote removal are performed.
+The words between the \fB[[\fP and \fB]]\fP do not undergo word splitting
+and pathname expansion.
+The shell performs tilde expansion, parameter and
+variable expansion, arithmetic expansion, command substitution, process
+substitution, and quote removal on those words
+(the expansions that would occur if the words were enclosed in double quotes).
Conditional operators such as \fB\-f\fP must be unquoted to be recognized
as primaries.
.if t .sp 0.5
@@ -749,12 +760,14 @@ If the
.B nocasematch
shell option is enabled, the match is performed without regard to the case
of alphabetic characters.
-Any part of the pattern may be quoted to force the quoted portion
-to be matched as a string.
-Bracket expressions in regular expressions must be treated carefully,
-since normal quoting characters lose their meanings between brackets.
+If any part of the pattern is quoted, the quoted portion is matched literally.
+This means every character in the quoted portion matches itself,
+instead of having any special pattern matching meaning.
If the pattern is stored in a shell variable, quoting the variable
-expansion forces the entire pattern to be matched as a string.
+expansion forces the entire pattern to be matched literally.
+Treat bracket expressions in regular expressions carefully,
+since normal quoting and pattern characters lose their meanings
+between brackets.
.if t .sp 0.5
.if n .sp 1
The pattern will match if it matches any part of the string.
@@ -778,6 +791,11 @@ indices. The element of
.B BASH_REMATCH
with index \fIn\fP is the portion of the
string matching the \fIn\fPth parenthesized subexpression.
+Bash sets
+.SM
+.B BASH_REMATCH
+in the global scope; declaring it as a local variable will lead to
+unexpected results.
.if t .sp 0.5
.if n .sp 1
Expressions may be combined using the following operators, listed
@@ -846,21 +864,24 @@ that is executed, or false if any of the expressions is invalid.
.TP
\fBselect\fP \fIname\fP [ \fBin\fP \fIword\fP ] ; \fBdo\fP \fIlist\fP ; \fBdone\fP
The list of words following \fBin\fP 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 \fBin\fP
\fIword\fP is omitted, the positional parameters are printed (see
.SM
.B PARAMETERS
-below). The
+below).
+.B select
+then displays the
.SM
.B PS3
-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
-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 \fBselect\fP command completes and returns 1.
+Any other value read causes
.I name
to be set to null. The line read is saved in the variable
.SM
@@ -888,7 +909,7 @@ expansion, parameter and variable expansion, arithmetic expansion,
command substitution, process substitution and quote removal.
Each \fIpattern\fP examined is expanded using tilde
expansion, parameter and variable expansion, arithmetic expansion,
-command substitution, and process substitution.
+command substitution, process substitution, and quote removal.
If the
.B nocasematch
shell option is enabled, the match is performed without regard to the case
@@ -944,17 +965,36 @@ A coprocess is executed asynchronously in a subshell, as if the command
had been terminated with the \fB&\fP control operator, with a two-way pipe
established between the executing shell and the coprocess.
.PP
-The format for a coprocess is:
+The syntax for a coprocess is:
.RS
.PP
\fBcoproc\fP [\fINAME\fP] \fIcommand\fP [\fIredirections\fP]
.RE
.PP
This creates a coprocess named \fINAME\fP.
+\fIcommand\fP may be either a simple command or a compound
+command (see above).
+\fINAME\fP is a shell variable name.
If \fINAME\fP is not supplied, the default name is \fBCOPROC\fP.
-\fINAME\fP must not be supplied if \fIcommand\fP is a \fIsimple
-command\fP (see above); otherwise, it is interpreted as the first word
-of the simple command.
+.PP
+The recommended form to use for a coprocess is
+.RS
+.PP
+\fBcoproc\fP \fINAME\fP { \fIcommand\fP [\fIredirections\fP]; }
+.RE
+.PP
+This form is recommended because simple commands result in the coprocess
+always being named \fBCOPROC\fP, and it is simpler to use and more complete
+than the other compound commands.
+.PP
+If \fIcommand\fP is a compound command, \fINAME\fP is optional. The
+word following \fBcoproc\fP determines whether that word is interpreted
+as a variable name: it is interpreted as \fINAME\fP if it is not a
+reserved word that introduces a compound command.
+If \fIcommand\fP is a simple command, \fINAME\fP is not allowed; this
+is to avoid confusion between \fINAME\fP and the first word of the simple
+command.
+.PP
When the coprocess is executed, the shell creates an array variable (see
.B Arrays
below) named \fINAME\fP in the context of the executing shell.
@@ -975,6 +1015,7 @@ The file descriptors can be utilized as arguments to shell commands
and redirections using standard word expansions.
Other than those created to execute command and process substitutions,
the file descriptors are not available in subshells.
+.PP
The process ID of the shell spawned to execute the coprocess is
available as the value of the variable \fINAME\fP_PID.
The \fBwait\fP
@@ -1000,9 +1041,9 @@ The \fIbody\fP of the function is the compound command
.I compound\-command
(see \fBCompound Commands\fP above).
That command is usually a \fIlist\fP of commands between { and }, but
-may be any command listed under \fBCompound Commands\fP above,
-with one exception: If the \fBfunction\fP reserved word is used, but the
-parentheses are not supplied, the braces are required.
+may be any command listed under \fBCompound Commands\fP above.
+If the \fBfunction\fP reserved word is used, but the
+parentheses are not supplied, the braces are recommended.
\fIcompound\-command\fP is executed whenever \fIfname\fP is specified as the
name of a simple command.
When in \fIposix mode\fP, \fIfname\fP must be a valid shell \fIname\fP
@@ -1116,10 +1157,11 @@ quotes (see
.B PARAMETERS
below).
.PP
-Words of the form \fB$\fP\(aq\fIstring\fP\(aq are treated specially. The
-word expands to \fIstring\fP, with backslash-escaped characters replaced
-as specified by the ANSI C standard. Backslash escape sequences, if
-present, are decoded as follows:
+Character sequences of the form \fB$\fP\(aq\fIstring\fP\(aq are treated
+as a special variant of single quotes.
+The sequence expands to \fIstring\fP, with backslash-escaped characters
+in \fIstring\fP replaced as specified by the ANSI C standard.
+Backslash escape sequences, if present, are decoded as follows:
.RS
.PD 0
.TP
@@ -1187,14 +1229,23 @@ not been present.
.PP
A double-quoted string preceded by a dollar sign (\fB$\fP\(dq\fIstring\fP\(dq)
will cause the string to be translated according to the current locale.
-The \fIgettext\fP infrastructure performs the message catalog lookup and
-translation, using the \fBLC_MESSAGES\fP and \fBTEXTDOMAIN\fP shell
-variables.
+The \fIgettext\fP infrastructure performs the lookup and
+translation, using the \fBLC_MESSAGES\fP, \fBTEXTDOMAINDIR\fP,
+and \fBTEXTDOMAIN\fP shell variables.
If the current locale is \fBC\fP or \fBPOSIX\fP,
-or if there are no translations available,
+if there are no translations available,
+or if the string is not translated,
the dollar sign is ignored.
-If the string is translated and replaced, the replacement is
-double-quoted.
+This is a form of double quoting, so the string remains double-quoted
+by default, whether or not it is translated and replaced.
+If the \fBnoexpand_translation\fP option is enabled
+using the \fBshopt\fP builtin,
+translated strings are single-quoted instead of double-quoted.
+See the description of
+.B shopt
+below under
+.SM
+.BR SHELL BUILTIN COMMANDS .
.SH PARAMETERS
A
.I parameter
@@ -1250,10 +1301,7 @@ is evaluated as an arithmetic expression even if the $((...)) expansion is
not used (see
.B "Arithmetic Expansion"
below).
-Word splitting is not performed, with the exception
-of \fB"$@"\fP as explained below under
-.BR "Special Parameters" .
-Pathname expansion is not performed.
+Word splitting and pathname expansion are not performed.
Assignment statements may also appear as arguments to the
.BR alias ,
.BR declare ,
@@ -1272,7 +1320,7 @@ to a shell variable or array index, the += operator can be used to
append to or add to the variable's previous value.
This includes arguments to builtin commands such as \fBdeclare\fP that
accept assignment statements (\fIdeclaration\fP commands).
-When += is applied to a variable for which the \fIinteger\fP attribute has been
+When += is applied to a variable for which the \fBinteger\fP attribute has been
set, \fIvalue\fP is evaluated as an arithmetic expression and added to the
variable's current value, which is also evaluated.
When += is applied to an array variable using compound assignment (see
@@ -1407,7 +1455,7 @@ builtin command, or those set by the shell itself
option).
.TP
.B $
-Expands to the process ID of the shell. In a () subshell, it
+Expands to the process ID of the shell. In a subshell, it
expands to the process ID of the current shell, not the
subshell.
.TP
@@ -1926,6 +1974,16 @@ If
is unset, it loses its special properties, even if it is
subsequently reset.
.TP
+.B READLINE_ARGUMENT
+Any numeric argument given to a readline command that was defined using
+.if t \f(CWbind -x\fP
+.if n "bind -x"
+(see
+.SM
+.B "SHELL BUILTIN COMMANDS"
+below)
+when it was invoked.
+.TP
.B READLINE_LINE
The contents of the
.B readline
@@ -1968,14 +2026,14 @@ builtin command when no arguments are supplied.
.TP
.B SECONDS
Each time this parameter is
-referenced, the number of seconds since shell invocation is returned. If a
-value is assigned to
+referenced, it expands to the number of seconds since shell invocation.
+If a value is assigned to
.SM
.BR SECONDS ,
the value returned upon subsequent
references is
the number of seconds since the assignment plus the value assigned.
-The number of seconds at shell invocation and the current time is always
+The number of seconds at shell invocation and the current time are always
determined by querying the system clock.
If
.SM
@@ -2038,7 +2096,7 @@ below.
The value is used to set the shell's compatibility level.
See
.SM
-.B SHELL COMPATIBILITY MODE
+.B "SHELL COMPATIBILITY MODE"
below for a description of the various compatibility
levels and their effects.
The value may be a decimal number (e.g., 4.2) or an integer (e.g., 42)
@@ -2051,7 +2109,7 @@ compatibility level to the default for the current version.
The valid values correspond to the compatibility levels
described below under
.SM
-.BR BSHELL COMPATIBILITY MODE .
+.BR "SHELL COMPATIBILITY MODE" .
For example, 4.2 and 42 are valid values that correspond
to the \fBcompat42\fP \fBshopt\fP option
and set the compatibility level to 42.
@@ -2728,6 +2786,12 @@ interpreted as relative to one greater than the maximum index of
\fIname\fP, so negative indices count back from the end of the
array, and an index of \-1 references the last element.
.PP
+The += operator will append to an array variable when assigning
+using the compound assignment syntax; see
+.SM
+.B PARAMETERS
+above.
+.PP
Any element of an array may be referenced using
${\fIname\fP[\fIsubscript\fP]}. The braces are required to avoid
conflicts with pathname expansion. If
@@ -2782,9 +2846,15 @@ destroys the array element at index \fIsubscript\fP,
for both indexed and associative arrays.
Negative subscripts to indexed arrays are interpreted as described above.
Unsetting the last element of an array variable does not unset the variable.
-\fBunset\fP \fIname\fP, where \fIname\fP is an array, or
+\fBunset\fP \fIname\fP, where \fIname\fP is an array,
+removes the entire array.
\fBunset\fP \fIname\fP[\fIsubscript\fP], where
-\fIsubscript\fP is \fB*\fP or \fB@\fP, removes the entire array.
+\fIsubscript\fP is \fB*\fP or \fB@\fP, behaves differently depending on
+whether \fIname\fP is an indexed or associative array.
+If \fIname\fP is an associative array, this unsets the element with
+subscript \fB*\fP or \fB@\fP.
+If \fIname\fP is an indexed array, unset removes all of the elements but
+does not remove the array itself.
.PP
When using a variable name with a subscript as an argument to a command,
such as with \fBunset\fP, without using the word expansion syntax
@@ -2875,7 +2945,7 @@ For example, a\fB{\fPd,c,b\fB}\fPe expands into `ade ace abe'.
.PP
A sequence expression takes the form
\fB{\fP\fIx\fP\fB..\fP\fIy\fP\fB[..\fP\fIincr\fP\fB]}\fP,
-where \fIx\fP and \fIy\fP are either integers or single characters,
+where \fIx\fP and \fIy\fP are either integers or single letters,
and \fIincr\fP, an optional increment, is an integer.
When integers are supplied, the expression expands to each number between
\fIx\fP and \fIy\fP, inclusive.
@@ -2884,10 +2954,11 @@ same width.
When either \fIx\fP or \fPy\fP begins with a zero, the shell
attempts to force all generated terms to contain the same number of digits,
zero-padding where necessary.
-When characters are supplied, the expression expands to each character
+When letters are supplied, the expression expands to each character
lexicographically between \fIx\fP and \fIy\fP, inclusive,
using the default C locale.
-Note that both \fIx\fP and \fIy\fP must be of the same type.
+Note that both \fIx\fP and \fIy\fP must be of the same type
+(integer or letter).
When the increment is supplied, it is used as the difference between
each term. The default increment is 1 or \-1 as appropriate.
.PP
@@ -3117,7 +3188,7 @@ ${\fIparameter\fP\fB:\fP\fIoffset\fP\fB:\fP\fIlength\fP}
\fBSubstring Expansion\fP.
Expands to up to \fIlength\fP characters of the value of \fIparameter\fP
starting at the character specified by \fIoffset\fP.
-If \fIparameter\fP is \fB@\fP, an indexed array subscripted by
+If \fIparameter\fP is \fB@\fP or \fB*\fP, an indexed array subscripted by
\fB@\fP or \fB*\fP, or an associative array name, the results differ as
described below.
If \fIlength\fP is omitted, expands to the substring of the value of
@@ -3140,8 +3211,8 @@ a number of characters, and the expansion is the characters between
Note that a negative offset must be separated from the colon by at least
one space to avoid being confused with the \fB:-\fP expansion.
.sp 1
-If \fIparameter\fP is \fB@\fP, the result is \fIlength\fP positional
-parameters beginning at \fIoffset\fP.
+If \fIparameter\fP is \fB@\fP or \fB*\fP, the result is \fIlength\fP
+positional parameters beginning at \fIoffset\fP.
A negative \fIoffset\fP is taken relative to one greater than the greatest
positional parameter, so an offset of \-1 evaluates to the last positional
parameter.
@@ -3289,22 +3360,58 @@ the pattern removal operation is applied to each member of the
array in turn, and the expansion is the resultant list.
.TP
${\fIparameter\fP\fB/\fP\fIpattern\fP\fB/\fP\fIstring\fP}
+.PD 0
+.TP
+${\fIparameter\fP\fB//\fP\fIpattern\fP\fB/\fP\fIstring\fP}
+.TP
+${\fIparameter\fP\fB/#\fP\fIpattern\fP\fB/\fP\fIstring\fP}
+.TP
+${\fIparameter\fP\fB/%\fP\fIpattern\fP\fB/\fP\fIstring\fP}
+.PD
\fBPattern substitution\fP.
The \fIpattern\fP is expanded to produce a pattern just as in
-pathname expansion,
+pathname expansion.
\fIParameter\fP is expanded and the longest match of \fIpattern\fP
against its value is replaced with \fIstring\fP.
+\fIstring\fP undergoes tilde expansion, parameter and variable expansion,
+arithmetic expansion, command and process substitution, and quote removal.
The match is performed using the rules described under
.B Pattern Matching
below.
-If \fIpattern\fP begins with \fB/\fP, all matches of \fIpattern\fP are
-replaced with \fIstring\fP. Normally only the first match is replaced.
-If \fIpattern\fP begins with \fB#\fP, it must match at the beginning
-of the expanded value of \fIparameter\fP.
-If \fIpattern\fP begins with \fB%\fP, it must match at the end
-of the expanded value of \fIparameter\fP.
-If \fIstring\fP is null, matches of \fIpattern\fP are deleted
+In the first form above, only the first match is replaced.
+If there are two slashes separating \fIparameter\fP and \fIpattern\fP
+(the second form above), all matches of \fIpattern\fP are
+replaced with \fIstring\fP.
+If \fIpattern\fP is preceded by \fB#\fP (the third form above),
+it must match at the beginning of the expanded value of \fIparameter\fP.
+If \fIpattern\fP is preceded by \fB%\fP (the fourth form above),
+it must match at the end of the expanded value of \fIparameter\fP.
+If the expansion of \fIstring\fP is null,
+matches of \fIpattern\fP are deleted.
+If \fIstring\fP is null,
+matches of \fIpattern\fP are deleted
and the \fB/\fP following \fIpattern\fP may be omitted.
+.sp 1
+If the \fBpatsub_replacement\fP shell option is enabled using \fBshopt\fP,
+any unquoted instances of \fB&\fP in \fIstring\fP are replaced with the
+matching portion of \fIpattern\fP.
+.sp 1
+Quoting any part of \fIstring\fP inhibits replacement in the
+expansion of the quoted portion, including replacement strings stored
+in shell variables.
+Backslash will escape \fB&\fP in \fIstring\fP; the backslash is removed
+in order to permit a literal \fB&\fP in the replacement string.
+Backslash can also be used to escape a backslash; \fB\e\e\fP results in
+a literal backslash in the replacement.
+Users should take care if \fIstring\fP is double-quoted to avoid
+unwanted interactions between the backslash and double-quoting, since
+backslash has special meaning within double quotes.
+Pattern substitution performs the check for unquoted \fB&\fP after
+expanding \fIstring\fP;
+shell programmers should quote any occurrences of \fB&\fP
+they want to be taken literally in the replacement
+and ensure any instances of \fB&\fP they want to be replaced are unquoted.
+.sp 1
If the
.B nocasematch
shell option is enabled, the match is performed without regard to the case
@@ -3394,7 +3501,7 @@ format that can be reused as input.
.TP
.B E
The expansion is a string that is the value of \fIparameter\fP with backslash
-escape sequences expanded as with the \fB$'...'\fP quoting mechanism.
+escape sequences expanded as with the \fB$\(aq...\(aq\fP quoting mechanism.
.TP
.B P
The expansion is a string that is the result of expanding the value of
@@ -3414,6 +3521,10 @@ indexed and associative arrays as a sequence of quoted key-value pairs
.B a
The expansion is a string consisting of flag values representing
\fIparameter\fP's attributes.
+.TP
+.B k
+Like the K transformation, but expands the keys and values of
+indexed and associative arrays to separate words after word splitting.
.PD
.PP
If
@@ -3483,8 +3594,10 @@ and the substitution of the result. The format for arithmetic expansion is:
.PP
The
.I expression
-is treated as if it were within double quotes, but a double quote
-inside the parentheses is not treated specially.
+undergoes the same expansions
+as if it were within double quotes,
+but double quote characters in \fIexpression\fP are not treated specially
+and are removed.
All tokens in the expression undergo parameter and variable expansion,
command substitution, and quote removal.
The result is treated as the arithmetic expression to be evaluated.
@@ -3648,14 +3761,23 @@ at the start of a name or immediately following a slash
must be matched explicitly, unless the shell option
.B dotglob
is set.
-The filenames
+In order to match the filenames
.B ``.''
and
-.B ``..''
-must always be matched explicitly, even if
+.BR ``..'' ,
+the pattern must begin with ``.'' (for example, ``.?''),
+even if
.B dotglob
is set.
-In other cases, the
+If the
+.B globskipdots
+shell option is enabled, the filenames
+.B ``.''
+and
+.BR ``..''
+are never matched, even if the pattern begins with a
+.BR ``.'' .
+When not matching pathnames, the
.B ``.''
character is not treated specially.
When matching a pathname, the slash character must always be
@@ -3672,6 +3794,7 @@ below under
for a description of the
.BR nocaseglob ,
.BR nullglob ,
+.BR globskipdots ,
.BR failglob ,
and
.B dotglob
@@ -3763,7 +3886,9 @@ is a
or a
.B ^
then any character not enclosed is matched.
-The sorting order of characters in range expressions is determined by
+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
.SM
.B LC_COLLATE
@@ -3833,7 +3958,7 @@ the syntax \fB[.\fP\fIsymbol\fP\fB.]\fP matches the collating symbol
.PD
.PP
If the \fBextglob\fP shell option is enabled using the \fBshopt\fP
-builtin, several extended pattern matching operators are recognized.
+builtin, the shell recognizes several extended pattern matching operators.
In the following description, a \fIpattern-list\fP is a list of one
or more patterns separated by a \fB|\fP.
Composite patterns may be formed using one or more of the following
@@ -3859,6 +3984,22 @@ 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
+beginning with ``.'', but ``.'' and ``..'' must be matched by a
+pattern or sub-pattern that begins with a dot;
+when it is disabled, the set does not
+include any filenames beginning with ``.'' unless the pattern
+or sub-pattern begins with a ``.''.
+As above, ``.'' only has a special meaning when matching filenames.
+.PP
Complicated extended pattern matching against long strings is slow,
especially when the patterns contain alternations and the strings
contain multiple matches.
@@ -3876,7 +4017,7 @@ Before a command is executed, its input and output
may be
.I redirected
using a special notation interpreted by the shell.
-Redirection allows commands' file handles to be
+\fIRedirection\fP allows commands' file handles to be
duplicated, opened, closed,
made to refer to different files,
and can change the files the command reads from and writes to.
@@ -3900,7 +4041,8 @@ by {\fIvarname\fP}, the value of \fIvarname\fP defines the file
descriptor to close.
If {\fIvarname\fP} is supplied, the redirection persists beyond
the scope of the command, allowing the shell programmer to manage
-the file descriptor himself.
+the file descriptor's lifetime manually.
+The \fBvarredir_close\fP shell option manages this behavior.
.PP
In the following descriptions, if the file descriptor number is
omitted, and the first character of the redirection operator is
@@ -4287,7 +4429,7 @@ command, and removed with the
command.
.PP
There is no mechanism for using arguments in the replacement text.
-If arguments are needed, a shell function should be used (see
+If arguments are needed, use a shell function (see
.SM
.B FUNCTIONS
below).
@@ -4379,11 +4521,22 @@ been enabled.
.PP
Variables local to the function may be declared with the
.B local
-builtin command. Ordinarily, variables and their values
+builtin command (\fIlocal variables\fP).
+Ordinarily, variables and their values
are shared between the function and its caller.
If a variable is declared \fBlocal\fP, the variable's visible scope
is restricted to that function and its children (including the functions
it calls).
+.PP
+In the following description, the \fIcurrent scope\fP is a currently-
+executing function.
+Previous scopes consist of that function's caller and so on,
+back to the "global" scope, where the shell is not executing
+any shell function.
+Consequently, a local variable at the current scope is a variable
+declared using the \fBlocal\fP or \fBdeclare\fP builtins in the
+function that is currently executing.
+.PP
Local variables "shadow" variables with the same name declared at
previous scopes.
For instance, a local variable declared in a function
@@ -4414,11 +4567,13 @@ variable is local to the current scope, \fBunset\fP will unset it;
otherwise the unset will refer to the variable found in any calling scope
as described above.
If a variable at the current local scope is unset, it will remain so
+(appearing as unset)
until it is reset in that scope or until the function returns.
Once the function returns, any instance of the variable at a previous
scope will become visible.
If the unset acts on a variable at a previous scope, any instance of a
-variable with that name that had been shadowed will become visible.
+variable with that name that had been shadowed will become visible
+(see below how the \fBlocalvar_unset\fP shell option changes this behavior).
.PP
The \fBFUNCNEST\fP variable, if set to a numeric value greater
than 0, defines a maximum function nesting level. Function
@@ -4453,7 +4608,8 @@ or
will list the function names only
(and optionally the source file and line number, if the \fBextdebug\fP
shell option is enabled).
-Functions may be exported so that subshells
+Functions may be exported so that child shell processes
+(those created when executing a separate shell invocation)
automatically have them defined with the
.B \-f
option to the
@@ -4777,7 +4933,11 @@ expansion, parameter expansion, command substitution, arithmetic expansion,
and quote removal before being assigned to the variable.
.PP
If no command name results, the variable assignments affect the current
-shell environment. Otherwise, the variables are added to the environment
+shell environment.
+In the case of such a command (one that consists only of assignment
+statements and redirections), assignment statements are performed before
+redirections.
+Otherwise, the variables are added to the environment
of the executed command and do not affect the current shell environment.
If any of the assignments attempts to assign a value to a readonly variable,
an error occurs, and the command exits with a non-zero status.
@@ -4842,8 +5002,10 @@ to the command are set to the arguments given, if any.
If this execution fails because the file is not in executable
format, and the file is not a directory, it is assumed to be
a \fIshell script\fP, a file
-containing shell commands. A subshell is spawned to execute
-it. This subshell reinitializes itself, so
+containing shell commands, and the shell creates a
+new instance of itself
+to execute it.
+This subshell reinitializes itself, so
that the effect is as if a new shell had been invoked
to handle the script, with the exception that the locations of
commands remembered by the parent (see
@@ -4899,8 +5061,8 @@ of \fB$$\fP, and the value of
When a simple command other than a builtin or shell function
is to be executed, it
is invoked in a separate execution environment that consists of
-the following. Unless otherwise noted, the values are inherited
-from the shell.
+the following.
+Unless otherwise noted, the values are inherited from the shell.
.if n .sp 1
.IP \(bu
the shell's open files, plus any modifications and additions specified
@@ -4919,6 +5081,8 @@ shell's parent, and traps ignored by the shell are ignored
A command invoked in this separate environment cannot affect the
shell's execution environment.
.PP
+A \fIsubshell\fP is a copy of the shell process.
+.PP
Command substitution, commands grouped with parentheses,
and asynchronous commands are invoked in a
subshell environment that is a duplicate of the shell environment,
@@ -5020,6 +5184,9 @@ while they execute.
All builtins return an exit status of 2 to indicate incorrect usage,
generally invalid options or missing arguments.
.PP
+The exit status of the last command is available in the special
+parameter $?.
+.PP
\fBBash\fP itself returns the exit status of the last command
executed, unless a syntax error occurs, in which case it exits
with a non-zero value. See also the \fBexit\fP builtin
@@ -5111,6 +5278,63 @@ When \fBbash\fP is waiting for an asynchronous command via the \fBwait\fP
builtin, the reception of a signal for which a trap has been set will
cause the \fBwait\fP builtin to return immediately with an exit status
greater than 128, immediately after which the trap is executed.
+.PP
+When job control is not enabled, and \fBbash\fP is waiting for a foreground
+command to complete, the shell receives keyboard-generated signals
+such as
+.SM
+.B SIGINT
+(usually generated by \fB^C\fP) that users commonly intend to send
+to that command.
+This happens because the shell and the command are in the
+same process group as the terminal, and \fB^C\fP sends
+.SM
+.B SIGINT
+to all processes in that process group.
+.PP
+When \fBbash\fP is running without job control enabled and receives
+.SM
+.B SIGINT
+while waiting for a foreground command, it waits until that foreground
+command terminates and then decides what to do about the
+.SM
+.BR SIGINT :
+.IP 1.
+If the command terminates due to the
+.SM
+.BR SIGINT ,
+\fBbash\fP concludes
+that the user meant to end the entire script, and acts on the
+.SM
+.B SIGINT
+(e.g., by running a
+.SM
+.B SIGINT
+trap or exiting itself);
+.IP 2.
+If the command does not terminate due to
+.SM
+.BR SIGINT ,
+the program handled the
+.SM
+.B SIGINT
+itself and did not treat it as a fatal signal.
+In that case, \fBbash\fP does not treat
+.SM
+.B SIGINT
+as a fatal signal, either, instead assuming that the
+.SM
+.B SIGINT
+was used as part of the program's normal operation
+(e.g., emacs uses it to abort editing
+commands) or deliberately discarded.
+However, \fBbash\fP will run any
+trap set on
+.SM
+.BR SIGINT ,
+as it does with any other trapped signal it
+receives while it is waiting for the foreground command to
+complete, for compatibility.
.SH "JOB CONTROL"
.I Job control
refers to the ability to selectively stop (\fIsuspend\fP)
@@ -5375,7 +5599,8 @@ the version of \fBbash\fP (e.g., 2.00)
the release of \fBbash\fP, version + patch level (e.g., 2.00.0)
.TP
.B \ew
-the current working directory, with
+the value of the \fBPWD\fP shell variable (\fB$PWD\fP),
+with
.SM
.B $HOME
abbreviated with a tilde
@@ -5385,7 +5610,8 @@ abbreviated with a tilde
variable)
.TP
.B \eW
-the basename of the current working directory, with
+the basename of \fB$PWD\fP,
+with
.SM
.B $HOME
abbreviated with a tilde
@@ -5731,6 +5957,30 @@ The variables and their default values are:
.PP
.PD 0
.TP
+.B active\-region\-start\-color
+A string variable that controls the text color and background when displaying
+the text in the active region (see the description of
+\fBenable\-active\-region\fP below).
+This string must not take up any physical character positions on the display,
+so it should consist only of terminal escape sequences.
+It is output to the terminal before displaying the text in the active region.
+This variable is reset to the default value whenever the terminal type changes.
+The default value is the string that puts the terminal in standout mode,
+as obtained from the terminal's terminfo description.
+A sample value might be \f(CW"\ee[01;33m"\fP.
+.TP
+.B active\-region\-end\-color
+A string variable that "undoes" the effects of \fBactive\-region\-start\-color\fP
+and restores "normal" terminal display appearance after displaying text
+in the active region.
+This string must not take up any physical character positions on the display,
+so it should consist only of terminal escape sequences.
+It is output to the terminal after displaying the text in the active region.
+This variable is reset to the default value whenever the terminal type changes.
+The default value is the string that restores the terminal from standout mode,
+as obtained from the terminal's terminfo description.
+A sample value might be \f(CW"\ee[0m"\fP.
+.TP
.B bell\-style (audible)
Controls what happens when readline wants to ring the terminal bell.
If set to \fBnone\fP, readline never rings the bell. If set to
@@ -5751,6 +6001,9 @@ If set to \fBOn\fP, when listing completions, readline displays the
common prefix of the set of possible completions using a different color.
The color definitions are taken from the value of the \fBLS_COLORS\fP
environment variable.
+If there is a color definition in \fB$LS_COLORS\fP for the custom suffix
+"readline-colored-completion-prefix", readline uses this color for
+the common prefix instead of its default.
.TP
.B colored\-stats (Off)
If set to \fBOn\fP, readline displays possible completions using different
@@ -5800,6 +6053,8 @@ If the number of possible completions is greater than
or equal to the value of this variable,
readline will ask whether or not the user wishes to view them;
otherwise they are simply listed on the terminal.
+A zero value means readline should never ask; negative values are
+treated as zero.
.TP
.B convert\-meta (On)
If set to \fBOn\fP, readline will convert characters with the
@@ -5808,6 +6063,8 @@ by stripping the eighth bit and prefixing an
escape character (in effect, using escape as the \fImeta prefix\fP).
The default is \fIOn\fP, but readline will set it to \fIOff\fP if the
locale contains eight-bit characters.
+This variable is dependent on the \fBLC_CTYPE\fP locale category, and
+may change if the locale is changed.
.TP
.B disable\-completion (Off)
If set to \fBOn\fP, readline will inhibit word completion. Completion
@@ -5838,12 +6095,25 @@ Use the \e1 and \e2 escapes to begin and end sequences of
non-printing characters, which can be used to embed a terminal control
sequence into the mode string.
.TP
+.B enable\-active\-region (On)
+The \fIpoint\fP is the current cursor position, and \fImark\fP refers
+to a saved cursor position.
+The text between the point and mark is referred to as the \fIregion\fP.
+When this variable is set to \fIOn\fP, readline allows certain commands
+to designate the region as \fIactive\fP.
+When the region is active, readline highlights the text in the region using
+the value of the \fBactive\-region\-start\-color\fP, which defaults to the
+string that enables
+the terminal's standout mode.
+The active region shows the text inserted by bracketed-paste and any
+matching text found by incremental and non-incremental history searches.
+.TP
.B enable\-bracketed\-paste (On)
-When set to \fBOn\fP, readline will configure the terminal in a way
-that will enable it to insert each paste into the editing buffer as a
-single string of characters, instead of treating each character as if
-it had been read from the keyboard. This can prevent pasted characters
-from being interpreted as editing commands.
+When set to \fBOn\fP, readline configures the terminal to insert each
+paste into the editing buffer as a single string of characters, instead
+of treating each character as if it had been read from the keyboard.
+This prevents readline from executing any editing commands bound to key
+sequences appearing in the pasted text.
.TP
.B enable\-keypad (Off)
When set to \fBOn\fP, readline will try to enable the application
@@ -5889,6 +6159,8 @@ regardless of what the terminal claims it can support. The name
is a synonym for this variable.
The default is \fIOff\fP, but readline will set it to \fIOn\fP if the
locale contains eight-bit characters.
+This variable is dependent on the \fBLC_CTYPE\fP locale category, and
+may change if the locale is changed.
.TP
.B isearch\-terminators (``C\-[C\-J'')
The string of characters that should terminate an incremental
@@ -5952,6 +6224,8 @@ eighth bit set directly rather than as a meta-prefixed escape
sequence.
The default is \fIOff\fP, but readline will set it to \fIOn\fP if the
locale contains eight-bit characters.
+This variable is dependent on the \fBLC_CTYPE\fP locale category, and
+may change if the locale is changed.
.TP
.B page\-completions (On)
If set to \fBOn\fP, readline uses an internal \fImore\fP-like pager
@@ -6205,14 +6479,14 @@ Words are delimited by non-quoted shell metacharacters.
.B previous\-screen\-line
Attempt to move point to the same physical screen column on the previous
physical screen line. This will not have the desired effect if the current
-Readline line does not take up more than one physical line or if point is not
+readline line does not take up more than one physical line or if point is not
greater than the length of the prompt plus the screen width.
.TP
.B next\-screen\-line
Attempt to move point to the same physical screen column on the next
physical screen line. This will not have the desired effect if the current
-Readline line does not take up more than one physical line or if the length
-of the current Readline line is not greater than the length of the prompt
+readline line does not take up more than one physical line or if the length
+of the current readline line is not greater than the length of the prompt
plus the screen width.
.TP
.B clear\-display (M\-C\-l)
@@ -6256,6 +6530,18 @@ Move to the first line in the history.
Move to the end of the input history, i.e., the line currently being
entered.
.TP
+.B operate\-and\-get\-next (C\-o)
+Accept the current line for execution and fetch the next line
+relative to the current line from the history for editing.
+A numeric argument, if supplied, specifies the history entry to use instead
+of the current line.
+.TP
+.B
+fetch\-history
+With a numeric argument, fetch that entry from the history list
+and make it the current line.
+Without an argument, move back to the first entry in the history list.
+.TP
.B reverse\-search\-history (C\-r)
Search backward starting at the current line and moving `up' through
the history as necessary. This is an incremental search.
@@ -6355,12 +6641,6 @@ Perform history and alias expansion on the current line.
.B insert\-last\-argument (M\-.\^, M\-_\^)
A synonym for \fByank\-last\-arg\fP.
.TP
-.B operate\-and\-get\-next (C\-o)
-Accept the current line for execution and fetch the next line
-relative to the current line from the history for editing.
-A numeric argument, if supplied, specifies the history entry to use instead
-of the current line.
-.TP
.B edit\-and\-execute\-command (C\-x C\-e)
Invoke an editor on the current command line, and execute the result as shell
commands.
@@ -6379,7 +6659,7 @@ The character indicating end-of-file as set, for example, by
.if t \f(CWstty\fP.
.if n ``stty''.
If this character is read when there are no characters
-on the line, and point is at the beginning of the line, Readline
+on the line, and point is at the beginning of the line, readline
interprets it as the end of input and returns
.SM
.BR EOF .
@@ -6704,11 +6984,11 @@ the saved position, and the old cursor position is saved as the mark.
.TP
.B character\-search (C\-])
A character is read and point is moved to the next occurrence of that
-character. A negative count searches for previous occurrences.
+character. A negative argument searches for previous occurrences.
.TP
.B character\-search\-backward (M\-C\-])
A character is read and point is moved to the previous occurrence of that
-character. A negative count searches for subsequent occurrences.
+character. A negative argument searches for subsequent occurrences.
.TP
.B skip\-csi\-sequence
Read enough characters to consume a multi-key sequence such as those
@@ -6735,6 +7015,11 @@ a shell comment.
If a numeric argument causes the comment character to be removed, the line
will be executed by the shell.
.TP
+.B spell\-correct\-word (C\-x s)
+Perform spelling correction on the current word, treating it as a directory
+or filename, in the same way as the \fBcdspell\fP shell option.
+Word boundaries are the same as those used by \fBshell\-forward\-word\fP.
+.TP
.B glob\-complete\-word (M\-g)
The word before point is treated as a pattern for pathname expansion,
with an asterisk implicitly appended. This pattern is used to
@@ -7426,13 +7711,14 @@ does not contain a slash, filenames in
.SM
.B PATH
are used to find the directory containing
-.IR filename .
+.IR filename ,
+but \fIfilename\fP does not need to be executable.
The file searched for in
.SM
.B PATH
need not be executable.
-When \fBbash\fP is not in \fIposix mode\fP, the current directory is
-searched if no file is found in
+When \fBbash\fP is not in \fIposix mode\fP, it searches
+the current directory if no file is found in
.SM
.BR PATH .
If the
@@ -7446,12 +7732,12 @@ is not searched.
If any \fIarguments\fP are supplied, they become the positional
parameters when \fIfilename\fP is executed. Otherwise the positional
parameters are unchanged.
-If the \fB\-T\fP option is enabled, \fBsource\fP inherits any trap on
+If the \fB\-T\fP option is enabled, \fB.\fP inherits any trap on
\fBDEBUG\fP; if it is not, any \fBDEBUG\fP trap string is saved and
-restored around the call to \fBsource\fP, and \fBsource\fP unsets the
+restored around the call to \fB.\fP, and \fB.\fP unsets the
\fBDEBUG\fP trap while it executes.
If \fB\-T\fP is not set, and the sourced file changes
-the \fBDEBUG\fP trap, the new value is retained when \fBsource\fP completes.
+the \fBDEBUG\fP trap, the new value is retained when \fB.\fP completes.
The return status is the status of the last command exited within
the script (0 if no commands are executed), and false if
.I filename
@@ -7496,6 +7782,8 @@ or was started without job control.
\fBbind\fP [\fB\-m\fP \fIkeymap\fP] \fIkeyseq\fP:\fIfunction\-name\fP
.TP
\fBbind\fP [\fB\-m\fP \fIkeymap\fP] \fIkeyseq\fP:\fIreadline\-command\fP
+.TP
+\fBbind\fP \fIreadline-command-line\fP
.PD
Display current
.B readline
@@ -7504,7 +7792,9 @@ key and function bindings, bind a key sequence to a
function or macro, or set a
.B readline
variable.
-Each non-option argument is a command as it would appear in
+Each non-option argument is a command as it would appear in a
+.B readline
+initialization file such as
.IR .inputrc ,
but each binding or command must be passed as a separate argument;
e.g., '"\eC\-x\eC\-r": re\-read\-init\-file'.
@@ -7577,6 +7867,11 @@ and
.B READLINE_MARK
variables to the current location of the insertion point and the saved
insertion point (the mark), respectively.
+The shell assigns any numeric argument the user supplied to the
+.SM
+.B READLINE_ARGUMENT
+variable.
+If there was no argument, that variable is not set.
If the executed command changes the value of any of
.SM
.BR READLINE_LINE ,
@@ -7643,7 +7938,6 @@ if \fIdir\fP is not supplied, the value of the
.SM
.B HOME
shell variable is the default.
-Any additional arguments following \fIdir\fP are ignored.
The variable
.SM
.B CDPATH
@@ -7702,6 +7996,10 @@ is used, or if
\fB\-\fP is the first argument, and the directory change is
successful, the absolute pathname of the new working directory is
written to the standard output.
+If the directory change is successful, \fBcd\fP sets the value of the
+\fBPWD\fP environment variable to the new directory name, and sets the
+\fBOLDPWD\fP environment variable to the value of the current working
+directory before the change.
The return value is true if the directory was successfully changed;
false otherwise.
.TP
@@ -7800,7 +8098,9 @@ If any of \fB\-D\fP, \fB\-E\fP, or \fB\-I\fP are supplied, any other
specified by the option.
.sp 1
The process of applying these completion specifications when word completion
-is attempted is described above under \fBProgrammable Completion\fP.
+is attempted is described
+.ie \n(zZ=1 in \fIbash(1)\fP.
+.el above under \fBProgrammable Completion\fP.
.sp 1
Other options, if specified, have the following meanings.
The arguments to the \fB\-G\fP, \fB\-W\fP, and \fB\-X\fP options
@@ -7935,6 +8235,7 @@ Names of all shell variables. May also be specified as \fB\-v\fP.
\fB\-C\fP \fIcommand\fP
\fIcommand\fP is executed in a subshell environment, and its output is
used as the possible completions.
+Arguments are passed as with the \fB\-F\fP option.
.TP 8
\fB\-F\fP \fIfunction\fP
The shell function \fIfunction\fP is executed in the current shell
@@ -8088,12 +8389,14 @@ to give variables attributes:
.B \-a
Each \fIname\fP is an indexed array variable (see
.B Arrays
-above).
+.ie \n(zZ=1 in \fIbash(1)\fP).
+.el above).
.TP
.B \-A
Each \fIname\fP is an associative array variable (see
.B Arrays
-above).
+.ie \n(zZ=1 in \fIbash(1)\fP).
+.el above).
.TP
.B \-f
Use function names only.
@@ -8102,7 +8405,9 @@ Use function names only.
The variable is treated as an integer; arithmetic evaluation (see
.SM
.B "ARITHMETIC EVALUATION"
-above) is performed when the variable is assigned a value.
+.ie \n(zZ=1 in \fIbash(1)\fP)
+.el above)
+is performed when the variable is assigned a value.
.TP
.B \-l
When the variable is assigned a value, all upper-case characters are
@@ -8165,7 +8470,9 @@ an attempt is made to assign a value to a readonly variable,
an attempt is made to assign a value to an array variable without
using the compound assignment syntax (see
.B Arrays
-above), one of the \fInames\fP is not a valid shell variable name,
+.ie \n(zZ=1 in \fIbash(1)\fP),
+.el above),
+one of the \fInames\fP 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 \fB\-f\fP.
@@ -8335,7 +8642,11 @@ option means to load the new builtin command
.I name
from shared object
.IR filename ,
-on systems that support dynamic loading. The
+on systems that support dynamic loading.
+Bash will use the value of the \fBBASH_LOADABLES_PATH\fP variable as a
+colon-separated list of directories in which to search for \fIfilename\fP.
+The default is system-dependent.
+The
.B \-d
option will delete a builtin previously loaded with
.BR \-f .
@@ -8349,6 +8660,11 @@ If \fB\-a\fP is supplied, the list printed includes all builtins, with an
indication of whether or not each is enabled.
If \fB\-s\fP is supplied, the output is restricted to the POSIX
\fIspecial\fP builtins.
+If no options are supplied and a \fIname\fP is not a shell builtin,
+\fBenable\fP will attempt to load \fIname\fP from a shared object named
+\fIname\fP, as if the command were
+.if t \f(CWenable \-f\fP \fIname name\fP .
+.if n ``enable -f \fIname name\fP .
The return value is 0 unless a
.I name
is not a shell builtin or there is an error loading a new builtin
@@ -8780,8 +9096,9 @@ end of the history, and an index of \-1 refers to the current
\fBhistory -d\fP command.
.TP
\fB\-d\fP \fIstart\fP\-\fIend\fP
-Delete the history entries between positions \fIstart\fP and \fIend\fP,
-inclusive. Positive and negative values for \fIstart\fP and \fIend\fP
+Delete the range of history entries between positions \fIstart\fP and
+\fIend\fP, inclusive.
+Positive and negative values for \fIstart\fP and \fIend\fP
are interpreted as described above.
.TP
.B \-a
@@ -8829,7 +9146,7 @@ comment character followed immediately by a digit are interpreted
as timestamps for the following history entry.
The return value is 0 unless an invalid option is encountered, an
error occurs while reading or writing the history file, an invalid
-\fIoffset\fP is supplied as an argument to \fB\-d\fP, or the
+\fIoffset\fP or range is supplied as an argument to \fB\-d\fP, or the
history expansion supplied as an argument to \fB\-p\fP fails.
.RE
.TP
@@ -8940,7 +9257,8 @@ Each
is an arithmetic expression to be evaluated (see
.SM
.B "ARITHMETIC EVALUATION"
-above).
+.ie \n(zZ=1 in \fIbash(1)\fP).
+.el above).
If the last
.I arg
evaluates to 0,
@@ -9057,10 +9375,12 @@ argument is supplied, \fIarray\fP is invalid or unassignable, or if
.RE
.TP
\fBpopd\fP [\-\fBn\fP] [+\fIn\fP] [\-\fIn\fP]
-Removes entries from the directory stack. With no arguments,
-removes the top directory from the stack, and performs a
-.B cd
-to the new top directory.
+Removes entries from the directory stack.
+The elements are numbered from 0 starting at the first directory
+listed by \fBdirs\fP.
+With no arguments, \fBpopd\fP
+removes the top directory from the stack, and
+changes to the new top directory.
Arguments, if supplied, have the following meanings:
.RS
.PD 0
@@ -9073,7 +9393,8 @@ from the stack, so that only the stack is manipulated.
Removes the \fIn\fPth entry counting from the left of the list
shown by
.BR dirs ,
-starting with zero. For example:
+starting with zero, from the stack.
+For example:
.if n ``popd +0''
.if t \f(CWpopd +0\fP
removes the first directory,
@@ -9094,15 +9415,23 @@ removes the last directory,
the next to last.
.PD
.PP
+If the top element of the directory stack is modified, and
+the \fI-n\fP option was not supplied, \fBpopd\fP uses the \fBcd\fP
+builtin to change to the directory at the top of the stack.
+If the \fBcd\fP fails, \fBpopd\fP returns a non-zero value.
+.PP
+Otherwise,
+.B popd
+returns false if an invalid option is encountered, the directory stack
+is empty, or a non-existent directory stack entry is specified.
+.PP
If the
.B popd
-command is successful, a
+command is successful,
+bash runs
.B dirs
-is performed as well, and the return status is 0.
-.B popd
-returns false if an invalid option is encountered, the directory stack
-is empty, a non-existent directory stack entry is specified, or the
-directory change fails.
+to show the final contents of the directory stack,
+and the return status is 0.
.RE
.TP
\fBprintf\fP [\fB\-v\fP \fIvar\fP] \fIformat\fP [\fIarguments\fP]
@@ -9131,6 +9460,10 @@ in the same way as \fBecho \-e\fP.
causes \fBprintf\fP to output the corresponding
\fIargument\fP in a format that can be reused as shell input.
.TP
+.B %Q
+like \fB%q\fP, but applies any supplied precision to the \fIargument\fP
+before quoting it.
+.TP
.B %(\fIdatefmt\fP)T
causes \fBprintf\fP to output the date-time string resulting from using
\fIdatefmt\fP as a format string for \fIstrftime\fP(3).
@@ -9166,8 +9499,9 @@ The return value is zero on success, non-zero on failure.
.PD
Adds a directory to the top of the directory stack, or rotates
the stack, making the new top of the stack the current working
-directory. With no arguments, \fBpushd\fP exchanges the top two directories
-and returns 0, unless the directory stack is empty.
+directory.
+With no arguments, \fBpushd\fP exchanges the top two elements of
+the directory stack.
Arguments, if supplied, have the following meanings:
.RS
.PD 0
@@ -9192,26 +9526,28 @@ starting with zero) is at the top.
.I dir
Adds
.I dir
-to the directory stack at the top, making it the
-new current working directory as if it had been supplied as the argument
-to the \fBcd\fP builtin.
+to the directory stack at the top
.PD
.PP
-If the
+After the stack has been modified, if the \fB\-n\fP option was not
+supplied, \fBpushd\fP uses the \fBcd\fP builtin to change to the
+directory at the top of the stack.
+If the \fBcd\fP fails, \fBpushd\fP returns a non-zero value.
+.PP
+Otherwise, if no arguments are supplied,
.B pushd
-command is successful, a
-.B dirs
-is performed as well.
-If the first form is used,
+returns 0 unless the directory stack is empty.
+When rotating the directory stack,
.B pushd
-returns 0 unless the cd to
-.I dir
-fails. With the second form,
+returns 0 unless the directory stack is empty or
+a non-existent directory stack element is specified.
+.PP
+If the
.B pushd
-returns 0 unless the directory stack is empty,
-a non-existent directory stack element is specified,
-or the directory change to the specified new current directory
-fails.
+command is successful,
+bash runs
+.B dirs
+to show the final contents of the directory stack.
.RE
.TP
\fBpwd\fP [\fB\-LP\fP]
@@ -9233,7 +9569,10 @@ invalid option is supplied.
\fBread\fP [\fB\-ers\fP] [\fB\-a\fP \fIaname\fP] [\fB\-d\fP \fIdelim\fP] [\fB\-i\fP \fItext\fP] [\fB\-n\fP \fInchars\fP] [\fB\-N\fP \fInchars\fP] [\fB\-p\fP \fIprompt\fP] [\fB\-t\fP \fItimeout\fP] [\fB\-u\fP \fIfd\fP] [\fIname\fP ...]
One line is read from the standard input, or from the file descriptor
\fIfd\fP supplied as an argument to the \fB\-u\fP option,
-split into words as described above under \fBWord Splitting\fP,
+split into words as described
+.ie \n(zZ=1 in \fIbash(1)\fP
+.el above
+under \fBWord Splitting\fP,
and the first word
is assigned to the first
.IR name ,
@@ -9249,7 +9588,10 @@ The characters in
.SM
.B IFS
are used to split the line into words using the same rules the shell
-uses for expansion (described above under \fBWord Splitting\fP).
+uses for expansion (described
+.ie \n(zZ=1 in \fIbash(1)\fP
+.el above
+under \fBWord Splitting\fP).
The backslash character (\fB\e\fP) may be used to remove any special
meaning for the next character read and for line continuation.
Options, if supplied, have the following meanings:
@@ -9278,9 +9620,11 @@ is coming from a terminal,
(see
.SM
.B READLINE
-above) is used to obtain the line.
+.ie \n(zZ=1 in \fIbash(1)\fP)
+.el 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.
+active) editing settings, but uses readline's default filename completion.
.TP
.B \-i \fItext\fP
If
@@ -9331,8 +9675,10 @@ from regular files.
If \fBread\fP times out, \fBread\fP saves any partial input read into
the specified variable \fIname\fP.
If \fItimeout\fP is 0, \fBread\fP returns immediately, without trying to
-read any data. The exit status is 0 if input is available on
-the specified file descriptor, non-zero otherwise.
+read any data.
+The exit status is 0 if input is available on the specified file descriptor,
+or the read will return EOF,
+non-zero otherwise.
The exit status is greater than 128 if the timeout is exceeded.
.TP
.B \-u \fIfd\fP
@@ -9426,12 +9772,12 @@ function and not during execution of a script by \fB.\fP\^ or \fBsource\fP.
Any command associated with the \fBRETURN\fP trap is executed
before execution resumes after the function or script.
.TP
-\fBset\fP [\fB\-\-abefhkmnptuvxBCEHPT\fP] [\fB\-o\fP \fIoption\-name\fP] [\fIarg\fP ...]
+\fBset\fP [\fB\-abefhkmnptuvxBCEHPT\fP] [\fB\-o\fP \fIoption\-name\fP] [\fB\-\-\fP] [\fB\-\fP] [\fIarg\fP ...]
.PD 0
.TP
-\fBset\fP [\fB+abefhkmnptuvxBCEHPT\fP] [\fB+o\fP \fIoption\-name\fP] [\fIarg\fP ...]
+\fBset\fP [\fB+abefhkmnptuvxBCEHPT\fP] [\fB+o\fP \fIoption\-name\fP] [\fB\-\-\fP] [\fB\-\fP] [\fIarg\fP ...]
.PD
-Without options, the name and value of each shell variable are displayed
+Without options, display the name and value of each shell variable
in a format that can be reused as input
for setting or resetting the currently-set variables.
Read-only variables cannot be reset.
@@ -9466,7 +9812,9 @@ or a \fIcompound command\fP
(see
.SM
.B SHELL GRAMMAR
-above), exits with a non-zero status.
+.ie \n(zZ=1 in \fIbash(1)\fP),
+.el 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
@@ -9494,7 +9842,9 @@ This option applies to the shell environment and each subshell environment
separately (see
.SM
.B "COMMAND EXECUTION ENVIRONMENT"
-above), and may cause
+.ie \n(zZ=1 in \fIbash(1)\fP),
+.el above),
+and may cause
subshells to exit before executing all the commands in the subshell.
.if t .sp 0.5
.if n .sp 1
@@ -9526,7 +9876,8 @@ by default for interactive shells on systems that support
it (see
.SM
.B JOB CONTROL
-above).
+.ie \n(zZ=1 in \fIbash(1)\fP).
+.el above).
All processes run in a separate process group.
When a background job completes, the shell prints a line
containing its exit status.
@@ -9577,7 +9928,10 @@ Same as
.BR \-H .
.TP 8
.B history
-Enable command history, as described above under
+Enable command history, as described
+.ie \n(zZ=1 in \fIbash(1)\fP
+.el above
+under
.SM
.BR HISTORY .
This option is on by default in interactive shells.
@@ -9589,7 +9943,8 @@ The effect is as if the shell command
had been executed
(see
.B Shell Variables
-above).
+.ie \n(zZ=1 in \fIbash(1)\fP).
+.el above).
.TP 8
.B keyword
Same as
@@ -9644,7 +9999,9 @@ from the POSIX standard to match the standard (\fIposix mode\fP).
See
.SM
.B "SEE ALSO"
-below for a reference to a document that details how posix mode affects
+.ie \n(zZ=1 in \fIbash(1)\fP
+.el below
+for a reference to a document that details how posix mode affects
bash's behavior.
.TP 8
.B privileged
@@ -9705,12 +10062,18 @@ not reset.
Turning this option off causes the effective user
and group ids to be set to the real user and group ids.
.TP 8
+.B \-r
+Enable restricted shell mode.
+This option cannot be unset once it has been set.
+.TP 8
.B \-t
Exit after reading and executing one command.
.TP 8
.B \-u
Treat unset variables and parameters other than the special
-parameters "@" and "*" as an error when performing
+parameters "@" and "*",
+or array variables subscripted with "@" or "*",
+as an error when performing
parameter expansion. If expansion is attempted on an
unset variable or parameter, the shell prints an error message, and,
if not interactive, exits with a non-zero status.
@@ -9730,7 +10093,9 @@ or associated word list.
.B \-B
The shell performs brace expansion (see
.B Brace Expansion
-above). This is on by default.
+.ie \n(zZ=1 in \fIbash(1)\fP).
+.el above).
+This is on by default.
.TP 8
.B \-C
If set,
@@ -9923,8 +10288,9 @@ the exit to be deferred until a second exit is attempted without an
intervening command (see
.SM
.B "JOB CONTROL"
-above). The shell always
-postpones exiting if any jobs are stopped.
+.ie \n(zZ=1 in \fIbash(1)\fP).
+.el above).
+The shell always postpones exiting if any jobs are stopped.
.TP 8
.B checkwinsize
If set, \fBbash\fP checks the window size after each external (non-builtin)
@@ -9943,7 +10309,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
+.ie \n(zZ=1 in \fIbash(1)\fP
+.el above
+under
.SM
.BR HISTORY .
.PD 0
@@ -9961,12 +10330,15 @@ history is enabled, as described above under
.B compat43
.TP 8
.B compat44
+.TP 8
+.B compat50
.PD
These control aspects of the shell's compatibility mode
(see
.SM
.B "SHELL COMPATIBILITY MODE"
-below).
+.ie \n(zZ=1 in \fIbash(1)\fP).
+.el below).
.TP 8
.B complete_fullquote
If set,
@@ -10025,7 +10397,10 @@ builtin command. An interactive shell does not exit if
fails.
.TP 8
.B expand_aliases
-If set, aliases are expanded as described above under
+If set, aliases are expanded as described
+.ie \n(zZ=1 in \fIbash(1)\fP
+.el above
+under
.SM
.BR ALIASES .
This option is enabled by default for interactive shells.
@@ -10059,7 +10434,9 @@ a call to \fBreturn\fP.
and
.SM
.B BASH_ARGV
-are updated as described in their descriptions above.
+are updated as described in their descriptions
+.ie \n(zZ=1 in \fIbash(1)\fP).
+.el above).
.TP
.B 5.
Function tracing is enabled: command substitution, shell functions, and
@@ -10073,7 +10450,10 @@ subshells invoked with \fB(\fP \fIcommand\fP \fB)\fP inherit the
.RE
.TP 8
.B extglob
-If set, the extended pattern matching features described above under
+If set, the extended pattern matching features described
+.ie \n(zZ=1 in \fIbash(1)\fP
+.el above
+under
\fBPathname Expansion\fP are enabled.
.TP 8
.B extquote
@@ -10095,7 +10475,9 @@ the ignored words are the only possible completions.
See
.SM
\fBSHELL VARIABLES\fP
-above for a description of
+.ie \n(zZ=1 in \fIbash(1)\fP
+.el above
+for a description of
.SM
.BR FIGNORE .
This option is enabled by default.
@@ -10104,7 +10486,9 @@ This option is enabled by default.
If set, range expressions used in pattern matching bracket expressions (see
.SM
.B Pattern Matching
-above) behave as if in the traditional C locale when performing
+.ie \n(zZ=1 in \fIbash(1)\fP)
+.el 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
@@ -10114,6 +10498,15 @@ and
.BR B ,
and upper-case and lower-case ASCII characters will collate together.
.TP 8
+.B globskipdots
+If set, pathname expansion will never match the filenames
+.B ``.''
+and
+.BR ``..'' ,
+even if the pattern begins with a
+.BR ``.'' .
+This option is enabled by default.
+.TP 8
.B globstar
If set, the pattern \fB**\fP used in a pathname expansion context will
match all files and zero or more directories and subdirectories.
@@ -10153,7 +10546,8 @@ word containing a \fB@\fP is being completed (see
under
.SM
.B READLINE
-above).
+.ie \n(zZ=1 in \fIbash(1)\fP).
+.el above).
This is enabled by default.
.TP 8
.B huponexit
@@ -10174,7 +10568,9 @@ to cause that word and all remaining characters on that
line to be ignored in an interactive shell (see
.SM
.B COMMENTS
-above). This option is enabled by default.
+.ie \n(zZ=1 in \fIbash(1)\fP).
+.el above).
+This option is enabled by default.
.TP 8
.B lastpipe
If set, and job control is not active, the shell runs the last command of
@@ -10201,7 +10597,8 @@ at the current function scope.
The shell sets this option if it is started as a login shell (see
.SM
.B "INVOCATION"
-above).
+.ie \n(zZ=1 in \fIbash(1)\fP).
+.el above).
The value may not be changed.
.TP 8
.B mailwarn
@@ -10226,7 +10623,8 @@ If set,
matches filenames in a case\-insensitive fashion when performing pathname
expansion (see
.B Pathname Expansion
-above).
+.ie \n(zZ=1 in \fIbash(1)\fP).
+.el above).
.TP 8
.B nocasematch
If set,
@@ -10236,18 +10634,38 @@ while executing \fBcase\fP or \fB[[\fP conditional commands,
when performing pattern substitution word expansions,
or when filtering possible completions as part of programmable completion.
.TP 8
+.B noexpand_translation
+If set,
+.B bash
+encloses the translated results of $"..." quoting in single quotes
+instead of double quotes.
+If the string is not translated, this has no effect.
+.TP 8
.B nullglob
If set,
.B bash
allows patterns which match no
files (see
.B Pathname Expansion
-above)
+.ie \n(zZ=1 in \fIbash(1)\fP)
+.el above)
to expand to a null string, rather than themselves.
.TP 8
+.B patsub_replacement
+If set, \fBbash\fP
+expands occurrences of \fB&\fP in the replacement string of pattern
+substitution to the text matched by the pattern, as described
+under \fBParameter Expansion\fP
+.ie \n(zZ=1 in \fIbash(1)\fP.
+.el above.
+This option is enabled by default.
+.TP 8
.B progcomp
If set, the programmable completion facilities (see
-\fBProgrammable Completion\fP above) are enabled.
+\fBProgrammable Completion\fP
+.ie \n(zZ=1 in \fIbash(1)\fP)
+.el above)
+are enabled.
This option is enabled by default.
.TP 8
.B progcomp_alias
@@ -10262,13 +10680,17 @@ parameter expansion, command substitution, arithmetic
expansion, and quote removal after being expanded as described in
.SM
.B PROMPTING
-above. This option is enabled by default.
+.ie \n(zZ=1 in \fIbash(1)\fP.
+.el above.
+This option is enabled by default.
.TP 8
.B restricted_shell
-The shell sets this option if it is started in restricted mode (see
+The shell sets this option if it is started in restricted mode
+(see
.SM
.B "RESTRICTED SHELL"
-below).
+.ie \n(zZ=1 in \fIbash(1)\fP).
+.el below).
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.
@@ -10281,12 +10703,21 @@ number of positional parameters.
.TP 8
.B sourcepath
If set, the
-\fBsource\fP (\fB.\fP) builtin uses the value of
+\fB.\fP (\fBsource\fP) builtin uses the value of
.SM
.B PATH
to find the directory containing the file supplied as an argument.
This option is enabled by default.
.TP 8
+.B varredir_close
+If set, the shell automatically closes file descriptors assigned using the
+\fI{varname}\fP redirection syntax (see
+.SM
+.B REDIRECTION
+.ie \n(zZ=1 in \fIbash(1)\fP)
+.el above)
+instead of leaving them open when the command completes.
+.TP 8
.B xpg_echo
If set, the \fBecho\fP builtin expands backslash-escape sequences
by default.
@@ -10297,12 +10728,16 @@ by default.
Suspend the execution of this shell until it receives a
.SM
.B SIGCONT
-signal. A login shell cannot be suspended; the
+signal. A login shell,
+or a shell without job control enabled,
+cannot be suspended; the
.B \-f
option can be used to override this and force the suspension.
-The return status is 0 unless the shell is a login shell and
+The return status is 0 unless the shell is a login shell
+or job control is not enabled
+and
.B \-f
-is not supplied, or if job control is not enabled.
+is not supplied.
.TP
\fBtest\fP \fIexpr\fP
.PD 0
@@ -10312,8 +10747,10 @@ Return a status of 0 (true) or 1 (false) depending on
the evaluation of the conditional expression
.IR expr .
Each operator and operand must be a separate argument.
-.if \n(zZ=0 Expressions are composed of the primaries described above under
-.if \n(zZ=1 Expressions are composed of the primaries described in the \fBbash\fP manual page under
+Expressions are composed of the primaries described
+.ie \n(zZ=1 in \fIbash(1)\fP
+.el above
+under
.SM
.BR "CONDITIONAL EXPRESSIONS" .
\fBtest\fP does not accept any options, nor does it accept and ignore
@@ -10366,7 +10803,9 @@ The expression is true if and only if the argument is not null.
2 arguments
If the first argument is \fB!\fP, 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
+.ie \n(zZ=1 in \fIbash(1)\fP
+.el above
under
.SM
.BR "CONDITIONAL EXPRESSIONS" ,
@@ -10376,7 +10815,9 @@ is false.
.TP
3 arguments
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
+.ie \n(zZ=1 in \fIbash(1)\fP
+.el above
under
.SM
.BR "CONDITIONAL EXPRESSIONS" ,
@@ -10392,8 +10833,13 @@ argument.
Otherwise, the expression is false.
.TP
4 arguments
+The following conditions are applied in the order listed.
If the first argument is \fB!\fP, the result is the negation of
the three-argument expression composed of the remaining arguments.
+the two-argument test using the second and third arguments.
+If the first argument is exactly \fB(\fP and the fourth argument is
+exactly \fB)\fP, the result is the two-argument test of the second
+and third arguments.
Otherwise, the expression is parsed and evaluated according to
precedence using the rules listed above.
.TP
@@ -10476,7 +10922,8 @@ is executed before every \fIsimple command\fP, \fIfor\fP command,
command, and before the first command executes in a shell function (see
.SM
.B SHELL GRAMMAR
-above).
+.ie \n(zZ=1 in \fIbash(1)\fP).
+.el above).
Refer to the description of the \fBextdebug\fP option to the
\fBshopt\fP builtin for details of its effect on the \fBDEBUG\fP trap.
If a
@@ -10843,7 +11290,7 @@ or
are unset, they lose their special properties, even if they are
subsequently reset. The exit status is true unless a
.I name
-is readonly.
+is readonly or may not be unset.
.TP
\fBwait\fP [\fB\-fn\fP] [\fP\-p\fP \fIvarname\fP] [\fIid ...\fP]
Wait for each specified child process and return its termination status.
@@ -10875,12 +11322,17 @@ forces \fBwait\fP to wait for \fIid\fP to terminate before returning
its status, instead of returning when it changes status.
If
.I id
-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 \fBwait\fP is interrupted by a signal, the return status will be greater
+than 128, as described under
+.B SIGNALS
+.ie \n(zZ=1 in \fIbash(1)\fP.
+.el above.
+Otherwise, the return status is the exit status of the last
process or job waited for.
.SH "SHELL COMPATIBILITY MODE"
-Bash-4.0 introduced the concept of a `shell compatibility level', specified
-as a set of options to the shopt builtin
+Bash-4.0 introduced the concept of a \fIshell compatibility level\fP,
+specified as a set of options to the shopt builtin (
.BR compat31 ,
.BR compat32 ,
.BR compat40 ,
@@ -10896,7 +11348,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 \fBcompat32\fP 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).
.PP
If a user enables, say, \fBcompat32\fP, it may affect the behavior of other
compatibility levels up to and including the current compatibility level.
@@ -11016,7 +11468,7 @@ are not special within double-quoted word expansions
.IP \(bu
the shell does not print a warning message if an attempt is made to
use a quoted compound assignment as an argument to declare
-(declare -a foo='(1 2)'). Later versions warn that this usage is
+(e.g., declare -a foo=\(aq(1 2)\(aq). Later versions warn that this usage is
deprecated
.IP \(bu
word expansion errors are considered non-fatal errors that cause the
@@ -11076,6 +11528,16 @@ output that can be reused as input. Bash-5.1 suppresses that message
when the \fB\-l\fP option is supplied.
.RE
.PD
+.TP
+\fBcompat51\fP
+.PD 0
+.RS
+.IP \(bu
+The \fBunset\fP builtin treats attempts to unset array subscripts \fB@\fP
+and \fB*\fP differently depending on whether the array is indexed or
+associative, and differently than in previous versions.
+.RE
+.PD
.\" bash_builtins
.if \n(zZ=1 .ig zZ
.SH "RESTRICTED SHELL"
@@ -11160,7 +11622,7 @@ option to the
builtin command
.IP \(bu
turning off restricted mode with
-\fBset +r\fP or \fBset +o restricted\fP.
+\fBset +r\fP or \fBshopt -u restricted_shell\fP.
.PP
These restrictions are enforced after any startup files are read.
.PP
@@ -11214,6 +11676,10 @@ The individual per-interactive-shell startup file
.FN ~/.bash_logout
The individual login shell cleanup file, executed when a login shell exits
.TP
+.FN ~/.bash_history
+The default value of \fBHISTFILE\fP, the file in which bash saves the
+command history
+.TP
.FN ~/.inputrc
Individual \fIreadline\fP initialization file
.PD
@@ -11233,7 +11699,8 @@ 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.
+\fIftp://ftp.gnu.org/pub/gnu/bash/\fP and
+\fIhttp://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz\fP.
.PP
Once you have determined that a bug actually exists, use the
.I bashbug
diff --git a/doc/bash.html b/doc/bash.html
index adb9e760..d8093690 100644
--- a/doc/bash.html
+++ b/doc/bash.html
@@ -3,7 +3,7 @@
</HEAD>
<BODY><TABLE WIDTH=100%>
<TR>
-<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2020 October 29<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>BASH(1)<TH ALIGN=CENTER width=33%>2022 September 19<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<BR><A HREF="#index">Index</A>
@@ -54,7 +54,7 @@ bash - GNU Bourne-Again SHell
<H3>COPYRIGHT</H3>
-Bash is Copyright &#169; 1989-2020 by the Free Software Foundation, Inc.
+Bash is Copyright &#169; 1989-2022 by the Free Software Foundation, Inc.
<A NAME="lbAE">&nbsp;</A>
<H3>DESCRIPTION</H3>
@@ -368,7 +368,7 @@ An <I>interactive</I> shell is one started without non-option arguments
and without the
<B>-c</B>
-option
+option,
whose standard input and error are
both connected to terminals (as determined by
<I>isatty</I>(3)),
@@ -556,13 +556,15 @@ No other startup files are read.
<B>Bash</B>
attempts to determine when it is being run with its standard input
-connected to a network connection, as when executed by the remote shell
-daemon, usually <I>rshd</I>, or the secure shell daemon <I>sshd</I>.
+connected to a network connection, as when executed by
+the historical remote shell daemon, usually <I>rshd</I>,
+or the secure shell daemon <I>sshd</I>.
If
<B>bash</B>
-determines it is being run in this fashion, it reads and executes
-commands from <A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>, if that file exists and is readable.
+determines it is being run non-interactively in this fashion,
+it reads and executes commands from <A HREF="file:~/.bashrc"><I>~/.bashrc</I></A>,
+if that file exists and is readable.
It will not do this if invoked as <B>sh</B>.
The
<B>--norc</B>
@@ -685,6 +687,7 @@ command (only <B>in</B> and <B>do</B> are valid):
<A NAME="lbAK">&nbsp;</A>
<H3>SHELL GRAMMAR</H3>
+This section describes the syntax of the various forms of shell commands.
<A NAME="lbAL">&nbsp;</A>
<H4>Simple Commands</H4>
@@ -711,29 +714,30 @@ The format for a pipeline is:
<DL COMPACT><DT><DD>
<P>
-[<B>time</B> [<B>-p</B>]] [ ! ] <I>command</I> [ [<B>|</B>|<B>|&amp;</B>] <I>command2</I> ... ]
+[<B>time</B> [<B>-p</B>]] [ ! ] <I>command1</I> [ [<B>|</B>|<B>|&amp;</B>] <I>command2</I> ... ]
</DL>
<P>
The standard output of
-<I>command</I>
+<I>command1</I>
is connected via a pipe to the standard input of
<I>command2</I>.
This connection is performed before any redirections specified by the
-command (see
+<I>command1</I>(see
+
<FONT SIZE=-1><B>REDIRECTION</B>
</FONT>
below).
-If <B>|&amp;</B> is used, <I>command</I>'s standard error, in addition to its
+If <B>|&amp;</B> is used, <I>command1</I>'s standard error, in addition to its
standard output, is connected to
<I>command2</I>'s standard input through the pipe;
it is shorthand for <B>2&gt;&amp;1 |</B>.
This implicit redirection of the standard error to the standard output is
-performed after any redirections specified by the command.
+performed after any redirections specified by <I>command1</I>.
<P>
The return status of a pipeline is the exit status of the last
@@ -785,14 +789,17 @@ variable may be used to specify the format of
the time information.
<P>
-Each command in a pipeline is executed as a separate process (i.e., in a
-subshell).
+Each command in a multi-command pipeline,
+where pipes are created,
+is executed in a <I>subshell</I>, which is a
+separate process.
See
<FONT SIZE=-1><B>COMMAND EXECUTION ENVIRONMENT</B></FONT>
-for a description of a subshell environment.
+for a description of subshells and a subshell environment.
If the <B>lastpipe</B> option is enabled using the <B>shopt</B> builtin
(see the description of <B>shopt</B> below),
-the last element of a pipeline may be run by the shell process.
+the last element of a pipeline may be run by the shell process
+when job control is not active.
<A NAME="lbAN">&nbsp;</A>
<H4>Lists</H4>
@@ -899,9 +906,9 @@ the rest of the command by one or more newlines, and may be followed by a
newline in place of a semicolon.
<DL COMPACT>
<DT>(<I>list</I>)<DD>
-<I>list</I> is executed in a subshell environment (see
+<I>list</I> is executed in a subshell (see
<FONT SIZE=-1><B>COMMAND EXECUTION ENVIRONMENT</B></FONT>
-below).
+below for a description of a subshell environment).
Variable assignments and builtin
commands that affect the shell's environment do not remain in effect
after the command completes. The return status is the exit status of
@@ -924,8 +931,12 @@ below under
</FONT>
If the value of the expression is non-zero, the return status is 0;
-otherwise the return status is 1. This is exactly equivalent to
-<B>let &quot;</B><I>expression</I>&quot;.
+otherwise the return status is 1.
+The <I>expression</I>
+undergoes the same expansions
+as if it were within double quotes,
+but double quote characters in <I>expression</I> are not treated specially
+and are removed.
<DT><B>[[</B> <I>expression</I> <B>]]</B><DD>
Return a status of 0 or 1 depending on the evaluation of
the conditional expression <I>expression</I>.
@@ -933,11 +944,12 @@ Expressions are composed of the primaries described below under
<FONT SIZE=-1><B>CONDITIONAL EXPRESSIONS</B>.
</FONT>
-Word splitting and pathname expansion are not performed on the words
-between the <B>[[</B> and <B>]]</B>; tilde expansion,
-parameter and variable expansion,
-arithmetic expansion, command substitution, process
-substitution, and quote removal are performed.
+The words between the <B>[[</B> and <B>]]</B> do not undergo word splitting
+and pathname expansion.
+The shell performs tilde expansion, parameter and
+variable expansion, arithmetic expansion, command substitution, process
+substitution, and quote removal on those words
+(the expansions that would occur if the words were enclosed in double quotes).
Conditional operators such as <B>-f</B> must be unquoted to be recognized
as primaries.
<P>
@@ -980,12 +992,14 @@ If the
shell option is enabled, the match is performed without regard to the case
of alphabetic characters.
-Any part of the pattern may be quoted to force the quoted portion
-to be matched as a string.
-Bracket expressions in regular expressions must be treated carefully,
-since normal quoting characters lose their meanings between brackets.
+If any part of the pattern is quoted, the quoted portion is matched literally.
+This means every character in the quoted portion matches itself,
+instead of having any special pattern matching meaning.
If the pattern is stored in a shell variable, quoting the variable
-expansion forces the entire pattern to be matched as a string.
+expansion forces the entire pattern to be matched literally.
+Treat bracket expressions in regular expressions carefully,
+since normal quoting and pattern characters lose their meanings
+between brackets.
<P>
@@ -1014,6 +1028,12 @@ indices. The element of
</FONT>
with index <I>n</I> is the portion of the
string matching the <I>n</I>th parenthesized subexpression.
+Bash sets
+<FONT SIZE=-1><B>BASH_REMATCH</B>
+
+</FONT>
+in the global scope; declaring it as a local variable will lead to
+unexpected results.
<P>
@@ -1092,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
@@ -1143,7 +1167,7 @@ expansion, parameter and variable expansion, arithmetic expansion,
command substitution, process substitution and quote removal.
Each <I>pattern</I> examined is expanded using tilde
expansion, parameter and variable expansion, arithmetic expansion,
-command substitution, and process substitution.
+command substitution, process substitution, and quote removal.
If the
<B>nocasematch</B>
@@ -1203,7 +1227,7 @@ had been terminated with the <B>&amp;</B> control operator, with a two-way pipe
established between the executing shell and the coprocess.
<P>
-The format for a coprocess is:
+The syntax for a coprocess is:
<DL COMPACT><DT><DD>
<P>
@@ -1213,10 +1237,35 @@ The format for a coprocess is:
<P>
This creates a coprocess named <I>NAME</I>.
+<I>command</I> may be either a simple command or a compound
+command (see above).
+<I>NAME</I> is a shell variable name.
If <I>NAME</I> is not supplied, the default name is <B>COPROC</B>.
-<I>NAME</I> must not be supplied if <I>command</I> is a <I>simple
-command</I> (see above); otherwise, it is interpreted as the first word
-of the simple command.
+<P>
+
+The recommended form to use for a coprocess is
+<DL COMPACT><DT><DD>
+<P>
+
+<B>coproc</B> <I>NAME</I> { <I>command</I> [<I>redirections</I>]; }
+</DL>
+
+<P>
+
+This form is recommended because simple commands result in the coprocess
+always being named <B>COPROC</B>, and it is simpler to use and more complete
+than the other compound commands.
+<P>
+
+If <I>command</I> is a compound command, <I>NAME</I> is optional. The
+word following <B>coproc</B> determines whether that word is interpreted
+as a variable name: it is interpreted as <I>NAME</I> if it is not a
+reserved word that introduces a compound command.
+If <I>command</I> is a simple command, <I>NAME</I> is not allowed; this
+is to avoid confusion between <I>NAME</I> and the first word of the simple
+command.
+<P>
+
When the coprocess is executed, the shell creates an array variable (see
<B>Arrays</B>
@@ -1241,6 +1290,8 @@ The file descriptors can be utilized as arguments to shell commands
and redirections using standard word expansions.
Other than those created to execute command and process substitutions,
the file descriptors are not available in subshells.
+<P>
+
The process ID of the shell spawned to execute the coprocess is
available as the value of the variable <I>NAME</I>_PID.
The <B>wait</B>
@@ -1269,9 +1320,9 @@ The <I>body</I> of the function is the compound command
(see <B>Compound Commands</B> above).
That command is usually a <I>list</I> of commands between { and }, but
-may be any command listed under <B>Compound Commands</B> above,
-with one exception: If the <B>function</B> reserved word is used, but the
-parentheses are not supplied, the braces are required.
+may be any command listed under <B>Compound Commands</B> above.
+If the <B>function</B> reserved word is used, but the
+parentheses are not supplied, the braces are recommended.
<I>compound-command</I> is executed whenever <I>fname</I> is specified as the
name of a simple command.
When in <I>posix mode</I>, <I>fname</I> must be a valid shell <I>name</I>
@@ -1425,10 +1476,11 @@ quotes (see
below).
<P>
-Words of the form <B>$</B>aq<I>string</I>aq are treated specially. The
-word expands to <I>string</I>, with backslash-escaped characters replaced
-as specified by the ANSI C standard. Backslash escape sequences, if
-present, are decoded as follows:
+Character sequences of the form <B>$</B>aq<I>string</I>aq are treated
+as a special variant of single quotes.
+The sequence expands to <I>string</I>, with backslash-escaped characters
+in <I>string</I> replaced as specified by the ANSI C standard.
+Backslash escape sequences, if present, are decoded as follows:
<DL COMPACT><DT><DD>
<DL COMPACT>
@@ -1518,14 +1570,25 @@ not been present.
A double-quoted string preceded by a dollar sign (<B>$</B>dq<I>string</I>dq)
will cause the string to be translated according to the current locale.
-The <I>gettext</I> infrastructure performs the message catalog lookup and
-translation, using the <B>LC_MESSAGES</B> and <B>TEXTDOMAIN</B> shell
-variables.
+The <I>gettext</I> infrastructure performs the lookup and
+translation, using the <B>LC_MESSAGES</B>, <B>TEXTDOMAINDIR</B>,
+and <B>TEXTDOMAIN</B> shell variables.
If the current locale is <B>C</B> or <B>POSIX</B>,
-or if there are no translations available,
+if there are no translations available,
+or if the string is not translated,
the dollar sign is ignored.
-If the string is translated and replaced, the replacement is
-double-quoted.
+This is a form of double quoting, so the string remains double-quoted
+by default, whether or not it is translated and replaced.
+If the <B>noexpand_translation</B> option is enabled
+using the <B>shopt</B> builtin,
+translated strings are single-quoted instead of double-quoted.
+See the description of
+<B>shopt</B>
+
+below under
+<FONT SIZE=-1><B>SHELL</B>BUILTIN<B>COMMANDS</B>.
+
+</FONT>
<A NAME="lbAT">&nbsp;</A>
<H3>PARAMETERS</H3>
@@ -1605,11 +1668,7 @@ not used (see
<B>Arithmetic Expansion</B>
below).
-Word splitting is not performed, with the exception
-of <B>&quot;$@&quot;</B> as explained below under
-<B>Special Parameters</B>.
-
-Pathname expansion is not performed.
+Word splitting and pathname expansion are not performed.
Assignment statements may also appear as arguments to the
<B>alias</B>,
@@ -1635,7 +1694,7 @@ to a shell variable or array index, the += operator can be used to
append to or add to the variable's previous value.
This includes arguments to builtin commands such as <B>declare</B> that
accept assignment statements (<I>declaration</I> commands).
-When += is applied to a variable for which the <I>integer</I> attribute has been
+When += is applied to a variable for which the <B>integer</B> attribute has been
set, <I>value</I> is evaluated as an arithmetic expression and added to the
variable's current value, which is also evaluated.
When += is applied to an array variable using compound assignment (see
@@ -1797,7 +1856,7 @@ option).
<DT><B>$</B>
<DD>
-Expands to the process ID of the shell. In a () subshell, it
+Expands to the process ID of the shell. In a subshell, it
expands to the process ID of the current shell, not the
subshell.
<DT><B>!</B>
@@ -2445,6 +2504,18 @@ If
</FONT>
is unset, it loses its special properties, even if it is
subsequently reset.
+<DT><B>READLINE_ARGUMENT</B>
+
+<DD>
+Any numeric argument given to a readline command that was defined using
+<TT>bind -x</TT>
+
+(see
+<FONT SIZE=-1><B>SHELL BUILTIN COMMANDS</B>
+
+</FONT>
+below)
+when it was invoked.
<DT><B>READLINE_LINE</B>
<DD>
@@ -2500,15 +2571,15 @@ builtin command when no arguments are supplied.
<DD>
Each time this parameter is
-referenced, the number of seconds since shell invocation is returned. If a
-value is assigned to
+referenced, it expands to the number of seconds since shell invocation.
+If a value is assigned to
<FONT SIZE=-1><B>SECONDS</B>,
</FONT>
the value returned upon subsequent
references is
the number of seconds since the assignment plus the value assigned.
-The number of seconds at shell invocation and the current time is always
+The number of seconds at shell invocation and the current time are always
determined by querying the system clock.
If
<FONT SIZE=-1><B>SECONDS</B>
@@ -2603,7 +2674,7 @@ compatibility levels, the shell prints an error message and sets the
compatibility level to the default for the current version.
The valid values correspond to the compatibility levels
described below under
-<FONT SIZE=-1><B>BSHELL</B>COMPATIBILITY<B>MODE</B>.
+<FONT SIZE=-1><B>SHELL COMPATIBILITY MODE</B>.
</FONT>
For example, 4.2 and 42 are valid values that correspond
@@ -3446,6 +3517,14 @@ interpreted as relative to one greater than the maximum index of
array, and an index of -1 references the last element.
<P>
+The += operator will append to an array variable when assigning
+using the compound assignment syntax; see
+<FONT SIZE=-1><B>PARAMETERS</B>
+
+</FONT>
+above.
+<P>
+
Any element of an array may be referenced using
${<I>name</I>[<I>subscript</I>]}. The braces are required to avoid
conflicts with pathname expansion. If
@@ -3509,9 +3588,15 @@ destroys the array element at index <I>subscript</I>,
for both indexed and associative arrays.
Negative subscripts to indexed arrays are interpreted as described above.
Unsetting the last element of an array variable does not unset the variable.
-<B>unset</B> <I>name</I>, where <I>name</I> is an array, or
+<B>unset</B> <I>name</I>, where <I>name</I> is an array,
+removes the entire array.
<B>unset</B> <I>name</I>[<I>subscript</I>], where
-<I>subscript</I> is <B>*</B> or <B>@</B>, removes the entire array.
+<I>subscript</I> is <B>*</B> or <B>@</B>, behaves differently depending on
+whether <I>name</I> is an indexed or associative array.
+If <I>name</I> is an associative array, this unsets the element with
+subscript <B>*</B> or <B>@</B>.
+If <I>name</I> is an indexed array, unset removes all of the elements but
+does not remove the array itself.
<P>
When using a variable name with a subscript as an argument to a command,
@@ -3635,7 +3720,7 @@ For example, a<B>{</B>d,c,b<B>}</B>e expands into `ade ace abe'.
A sequence expression takes the form
<B>{</B><I>x</I><B>..</B><I>y</I><B>[..</B><I>incr</I><B>]}</B>,
-where <I>x</I> and <I>y</I> are either integers or single characters,
+where <I>x</I> and <I>y</I> are either integers or single letters,
and <I>incr</I>, an optional increment, is an integer.
When integers are supplied, the expression expands to each number between
<I>x</I> and <I>y</I>, inclusive.
@@ -3644,10 +3729,11 @@ same width.
When either <I>x</I> or y begins with a zero, the shell
attempts to force all generated terms to contain the same number of digits,
zero-padding where necessary.
-When characters are supplied, the expression expands to each character
+When letters are supplied, the expression expands to each character
lexicographically between <I>x</I> and <I>y</I>, inclusive,
using the default C locale.
-Note that both <I>x</I> and <I>y</I> must be of the same type.
+Note that both <I>x</I> and <I>y</I> must be of the same type
+(integer or letter).
When the increment is supplied, it is used as the difference between
each term. The default increment is 1 or -1 as appropriate.
<P>
@@ -3931,7 +4017,7 @@ is substituted.
<B>Substring Expansion</B>.
Expands to up to <I>length</I> characters of the value of <I>parameter</I>
starting at the character specified by <I>offset</I>.
-If <I>parameter</I> is <B>@</B>, an indexed array subscripted by
+If <I>parameter</I> is <B>@</B> or <B>*</B>, an indexed array subscripted by
<B>@</B> or <B>*</B>, or an associative array name, the results differ as
described below.
If <I>length</I> is omitted, expands to the substring of the value of
@@ -3954,8 +4040,8 @@ a number of characters, and the expansion is the characters between
Note that a negative offset must be separated from the colon by at least
one space to avoid being confused with the <B>:-</B> expansion.
<P>
-If <I>parameter</I> is <B>@</B>, the result is <I>length</I> positional
-parameters beginning at <I>offset</I>.
+If <I>parameter</I> is <B>@</B> or <B>*</B>, the result is <I>length</I>
+positional parameters beginning at <I>offset</I>.
A negative <I>offset</I> is taken relative to one greater than the greatest
positional parameter, so an offset of -1 evaluates to the last positional
parameter.
@@ -4122,23 +4208,56 @@ or
the pattern removal operation is applied to each member of the
array in turn, and the expansion is the resultant list.
<DT>${<I>parameter</I><B>/</B><I>pattern</I><B>/</B><I>string</I>}<DD>
+
+<DT>${<I>parameter</I><B>//</B><I>pattern</I><B>/</B><I>string</I>}<DD>
+<DT>${<I>parameter</I><B>/#</B><I>pattern</I><B>/</B><I>string</I>}<DD>
+<DT>${<I>parameter</I><B>/%</B><I>pattern</I><B>/</B><I>string</I>}<DD>
+
<B>Pattern substitution</B>.
The <I>pattern</I> is expanded to produce a pattern just as in
-pathname expansion,
+pathname expansion.
<I>Parameter</I> is expanded and the longest match of <I>pattern</I>
against its value is replaced with <I>string</I>.
+<I>string</I> undergoes tilde expansion, parameter and variable expansion,
+arithmetic expansion, command and process substitution, and quote removal.
The match is performed using the rules described under
<B>Pattern Matching</B>
below.
-If <I>pattern</I> begins with <B>/</B>, all matches of <I>pattern</I> are
-replaced with <I>string</I>. Normally only the first match is replaced.
-If <I>pattern</I> begins with <B>#</B>, it must match at the beginning
-of the expanded value of <I>parameter</I>.
-If <I>pattern</I> begins with <B>%</B>, it must match at the end
-of the expanded value of <I>parameter</I>.
-If <I>string</I> is null, matches of <I>pattern</I> are deleted
+In the first form above, only the first match is replaced.
+If there are two slashes separating <I>parameter</I> and <I>pattern</I>
+(the second form above), all matches of <I>pattern</I> are
+replaced with <I>string</I>.
+If <I>pattern</I> is preceded by <B>#</B> (the third form above),
+it must match at the beginning of the expanded value of <I>parameter</I>.
+If <I>pattern</I> is preceded by <B>%</B> (the fourth form above),
+it must match at the end of the expanded value of <I>parameter</I>.
+If the expansion of <I>string</I> is null,
+matches of <I>pattern</I> are deleted.
+If <I>string</I> is null,
+matches of <I>pattern</I> are deleted
and the <B>/</B> following <I>pattern</I> may be omitted.
+<P>
+If the <B>patsub_replacement</B> shell option is enabled using <B>shopt</B>,
+any unquoted instances of <B>&amp;</B> in <I>string</I> are replaced with the
+matching portion of <I>pattern</I>.
+<P>
+Quoting any part of <I>string</I> inhibits replacement in the
+expansion of the quoted portion, including replacement strings stored
+in shell variables.
+Backslash will escape <B>&amp;</B> in <I>string</I>; the backslash is removed
+in order to permit a literal <B>&amp;</B> in the replacement string.
+Backslash can also be used to escape a backslash; <B>\\</B> results in
+a literal backslash in the replacement.
+Users should take care if <I>string</I> is double-quoted to avoid
+unwanted interactions between the backslash and double-quoting, since
+backslash has special meaning within double quotes.
+Pattern substitution performs the check for unquoted <B>&amp;</B> after
+expanding <I>string</I>;
+shell programmers should quote any occurrences of <B>&amp;</B>
+they want to be taken literally in the replacement
+and ensure any instances of <B>&amp;</B> they want to be replaced are unquoted.
+<P>
If the
<B>nocasematch</B>
@@ -4242,7 +4361,7 @@ format that can be reused as input.
<DD>
The expansion is a string that is the value of <I>parameter</I> with backslash
-escape sequences expanded as with the <B>$'...'</B> quoting mechanism.
+escape sequences expanded as with the <B>$aq...aq</B> quoting mechanism.
<DT><B>P</B>
<DD>
@@ -4266,6 +4385,11 @@ indexed and associative arrays as a sequence of quoted key-value pairs
<DD>
The expansion is a string consisting of flag values representing
<I>parameter</I>'s attributes.
+<DT><B>k</B>
+
+<DD>
+Like the K transformation, but expands the keys and values of
+indexed and associative arrays to separate words after word splitting.
</DL>
<P>
@@ -4364,8 +4488,10 @@ and the substitution of the result. The format for arithmetic expansion is:
The
<I>expression</I>
-is treated as if it were within double quotes, but a double quote
-inside the parentheses is not treated specially.
+undergoes the same expansions
+as if it were within double quotes,
+but double quote characters in <I>expression</I> are not treated specially
+and are removed.
All tokens in the expression undergo parameter and variable expansion,
command substitution, and quote removal.
The result is treated as the arithmetic expression to be evaluated.
@@ -4575,17 +4701,30 @@ must be matched explicitly, unless the shell option
<B>dotglob</B>
is set.
-The filenames
+In order to match the filenames
<B>``.''</B>
and
-<B>``..''</B>
+<B>``..''</B>,
-must always be matched explicitly, even if
+the pattern must begin with ``.'' (for example, ``.?''),
+even if
<B>dotglob</B>
is set.
-In other cases, the
+If the
+<B>globskipdots</B>
+
+shell option is enabled, the filenames
+<B>``.''</B>
+
+and
+<B>``..''</B>
+
+are never matched, even if the pattern begins with a
+<B>``.''</B>.
+
+When not matching pathnames, the
<B>``.''</B>
character is not treated specially.
@@ -4608,6 +4747,8 @@ for a description of the
<B>nullglob</B>,
+<B>globskipdots</B>,
+
<B>failglob</B>,
and
@@ -4729,7 +4870,9 @@ or a
<B>^</B>
then any character not enclosed is matched.
-The sorting order of characters in range expressions is determined by
+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
<FONT SIZE=-1><B>LC_COLLATE</B>
@@ -4827,7 +4970,7 @@ the syntax <B>[.</B><I>symbol</I><B>.]</B> matches the collating symbol
<P>
If the <B>extglob</B> shell option is enabled using the <B>shopt</B>
-builtin, several extended pattern matching operators are recognized.
+builtin, the shell recognizes several extended pattern matching operators.
In the following description, a <I>pattern-list</I> is a list of one
or more patterns separated by a <B>|</B>.
Composite patterns may be formed using one or more of the following
@@ -4851,6 +4994,24 @@ 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
+beginning with ``.'', but ``.'' and ``..'' must be matched by a
+pattern or sub-pattern that begins with a dot;
+when it is disabled, the set does not
+include any filenames beginning with ``.'' unless the pattern
+or sub-pattern begins with a ``.''.
+As above, ``.'' only has a special meaning when matching filenames.
+<P>
+
Complicated extended pattern matching against long strings is slow,
especially when the patterns contain alternations and the strings
contain multiple matches.
@@ -4875,7 +5036,7 @@ may be
<I>redirected</I>
using a special notation interpreted by the shell.
-Redirection allows commands' file handles to be
+<I>Redirection</I> allows commands' file handles to be
duplicated, opened, closed,
made to refer to different files,
and can change the files the command reads from and writes to.
@@ -4902,7 +5063,8 @@ by {<I>varname</I>}, the value of <I>varname</I> defines the file
descriptor to close.
If {<I>varname</I>} is supplied, the redirection persists beyond
the scope of the command, allowing the shell programmer to manage
-the file descriptor himself.
+the file descriptor's lifetime manually.
+The <B>varredir_close</B> shell option manages this behavior.
<P>
In the following descriptions, if the file descriptor number is
@@ -5448,7 +5610,7 @@ command.
<P>
There is no mechanism for using arguments in the replacement text.
-If arguments are needed, a shell function should be used (see
+If arguments are needed, use a shell function (see
<FONT SIZE=-1><B>FUNCTIONS</B>
</FONT>
@@ -5562,11 +5724,24 @@ been enabled.
Variables local to the function may be declared with the
<B>local</B>
-builtin command. Ordinarily, variables and their values
+builtin command (<I>local variables</I>).
+Ordinarily, variables and their values
are shared between the function and its caller.
If a variable is declared <B>local</B>, the variable's visible scope
is restricted to that function and its children (including the functions
it calls).
+<P>
+
+In the following description, the <I>current scope</I> is a currently-
+executing function.
+Previous scopes consist of that function's caller and so on,
+back to the &quot;global&quot; scope, where the shell is not executing
+any shell function.
+Consequently, a local variable at the current scope is a variable
+declared using the <B>local</B> or <B>declare</B> builtins in the
+function that is currently executing.
+<P>
+
Local variables &quot;shadow&quot; variables with the same name declared at
previous scopes.
For instance, a local variable declared in a function
@@ -5600,11 +5775,13 @@ variable is local to the current scope, <B>unset</B> will unset it;
otherwise the unset will refer to the variable found in any calling scope
as described above.
If a variable at the current local scope is unset, it will remain so
+(appearing as unset)
until it is reset in that scope or until the function returns.
Once the function returns, any instance of the variable at a previous
scope will become visible.
If the unset acts on a variable at a previous scope, any instance of a
-variable with that name that had been shadowed will become visible.
+variable with that name that had been shadowed will become visible
+(see below how the <B>localvar_unset</B> shell option changes this behavior).
<P>
The <B>FUNCNEST</B> variable, if set to a numeric value greater
@@ -5650,7 +5827,8 @@ or
will list the function names only
(and optionally the source file and line number, if the <B>extdebug</B>
shell option is enabled).
-Functions may be exported so that subshells
+Functions may be exported so that child shell processes
+(those created when executing a separate shell invocation)
automatically have them defined with the
<B>-f</B>
@@ -6054,7 +6232,11 @@ and quote removal before being assigned to the variable.
<P>
If no command name results, the variable assignments affect the current
-shell environment. Otherwise, the variables are added to the environment
+shell environment.
+In the case of such a command (one that consists only of assignment
+statements and redirections), assignment statements are performed before
+redirections.
+Otherwise, the variables are added to the environment
of the executed command and do not affect the current shell environment.
If any of the assignments attempts to assign a value to a readonly variable,
an error occurs, and the command exits with a non-zero status.
@@ -6134,8 +6316,10 @@ to the command are set to the arguments given, if any.
If this execution fails because the file is not in executable
format, and the file is not a directory, it is assumed to be
a <I>shell script</I>, a file
-containing shell commands. A subshell is spawned to execute
-it. This subshell reinitializes itself, so
+containing shell commands, and the shell creates a
+new instance of itself
+to execute it.
+This subshell reinitializes itself, so
that the effect is as if a new shell had been invoked
to handle the script, with the exception that the locations of
commands remembered by the parent (see
@@ -6199,8 +6383,8 @@ of <B>$$</B>, and the value of
When a simple command other than a builtin or shell function
is to be executed, it
is invoked in a separate execution environment that consists of
-the following. Unless otherwise noted, the values are inherited
-from the shell.
+the following.
+Unless otherwise noted, the values are inherited from the shell.
<DL COMPACT>
<DT>*<DD>
@@ -6223,6 +6407,9 @@ A command invoked in this separate environment cannot affect the
shell's execution environment.
<P>
+A <I>subshell</I> is a copy of the shell process.
+<P>
+
Command substitution, commands grouped with parentheses,
and asynchronous commands are invoked in a
subshell environment that is a duplicate of the shell environment,
@@ -6354,6 +6541,10 @@ All builtins return an exit status of 2 to indicate incorrect usage,
generally invalid options or missing arguments.
<P>
+The exit status of the last command is available in the special
+parameter $?.
+<P>
+
<B>Bash</B> itself returns the exit status of the last command
executed, unless a syntax error occurs, in which case it exits
with a non-zero value. See also the <B>exit</B> builtin
@@ -6475,6 +6666,79 @@ When <B>bash</B> is waiting for an asynchronous command via the <B>wait</B>
builtin, the reception of a signal for which a trap has been set will
cause the <B>wait</B> builtin to return immediately with an exit status
greater than 128, immediately after which the trap is executed.
+<P>
+
+When job control is not enabled, and <B>bash</B> is waiting for a foreground
+command to complete, the shell receives keyboard-generated signals
+such as
+<FONT SIZE=-1><B>SIGINT</B>
+
+</FONT>
+(usually generated by <B>^C</B>) that users commonly intend to send
+to that command.
+This happens because the shell and the command are in the
+same process group as the terminal, and <B>^C</B> sends
+<FONT SIZE=-1><B>SIGINT</B>
+
+</FONT>
+to all processes in that process group.
+<P>
+
+When <B>bash</B> is running without job control enabled and receives
+<FONT SIZE=-1><B>SIGINT</B>
+
+</FONT>
+while waiting for a foreground command, it waits until that foreground
+command terminates and then decides what to do about the
+<FONT SIZE=-1><B>SIGINT</B>:
+
+</FONT>
+<DL COMPACT>
+<DT>1.<DD>
+If the command terminates due to the
+<FONT SIZE=-1><B>SIGINT</B>,
+
+</FONT>
+<B>bash</B> concludes
+that the user meant to end the entire script, and acts on the
+<FONT SIZE=-1><B>SIGINT</B>
+
+</FONT>
+(e.g., by running a
+<FONT SIZE=-1><B>SIGINT</B>
+
+</FONT>
+trap or exiting itself);
+<DT>2.<DD>
+If the command does not terminate due to
+<FONT SIZE=-1><B>SIGINT</B>,
+
+</FONT>
+the program handled the
+<FONT SIZE=-1><B>SIGINT</B>
+
+</FONT>
+itself and did not treat it as a fatal signal.
+In that case, <B>bash</B> does not treat
+<FONT SIZE=-1><B>SIGINT</B>
+
+</FONT>
+as a fatal signal, either, instead assuming that the
+<FONT SIZE=-1><B>SIGINT</B>
+
+</FONT>
+was used as part of the program's normal operation
+(e.g., emacs uses it to abort editing
+commands) or deliberately discarded.
+However, <B>bash</B> will run any
+trap set on
+<FONT SIZE=-1><B>SIGINT</B>,
+
+</FONT>
+as it does with any other trapped signal it
+receives while it is waiting for the foreground command to
+complete, for compatibility.
+</DL>
<A NAME="lbCD">&nbsp;</A>
<H3>JOB CONTROL</H3>
@@ -6832,7 +7096,8 @@ the release of <B>bash</B>, version + patch level (e.g., 2.00.0)
<DT><B>\w</B>
<DD>
-the current working directory, with
+the value of the <B>PWD</B> shell variable (<B>$PWD</B>),
+with
<FONT SIZE=-1><B>$HOME</B>
</FONT>
@@ -6845,7 +7110,8 @@ variable)
<DT><B>\W</B>
<DD>
-the basename of the current working directory, with
+the basename of <B>$PWD</B>,
+with
<FONT SIZE=-1><B>$HOME</B>
</FONT>
@@ -7316,6 +7582,32 @@ The variables and their default values are:
<DL COMPACT>
+<DT><B>active-region-start-color </B>
+
+<DD>
+A string variable that controls the text color and background when displaying
+the text in the active region (see the description of
+<B>enable-active-region</B> below).
+This string must not take up any physical character positions on the display,
+so it should consist only of terminal escape sequences.
+It is output to the terminal before displaying the text in the active region.
+This variable is reset to the default value whenever the terminal type changes.
+The default value is the string that puts the terminal in standout mode,
+as obtained from the terminal's terminfo description.
+A sample value might be <TT>&quot;\e[01;33m&quot;</TT>.
+<DT><B>active-region-end-color </B>
+
+<DD>
+A string variable that &quot;undoes&quot; the effects of <B>active-region-start-color</B>
+and restores &quot;normal&quot; terminal display appearance after displaying text
+in the active region.
+This string must not take up any physical character positions on the display,
+so it should consist only of terminal escape sequences.
+It is output to the terminal after displaying the text in the active region.
+This variable is reset to the default value whenever the terminal type changes.
+The default value is the string that restores the terminal from standout mode,
+as obtained from the terminal's terminfo description.
+A sample value might be <TT>&quot;\e[0m&quot;</TT>.
<DT><B>bell-style (audible)</B>
<DD>
@@ -7341,6 +7633,9 @@ If set to <B>On</B>, when listing completions, readline displays the
common prefix of the set of possible completions using a different color.
The color definitions are taken from the value of the <B>LS_COLORS</B>
environment variable.
+If there is a color definition in <B>$LS_COLORS</B> for the custom suffix
+&quot;readline-colored-completion-prefix&quot;, readline uses this color for
+the common prefix instead of its default.
<DT><B>colored-stats (Off)</B>
<DD>
@@ -7400,6 +7695,8 @@ If the number of possible completions is greater than
or equal to the value of this variable,
readline will ask whether or not the user wishes to view them;
otherwise they are simply listed on the terminal.
+A zero value means readline should never ask; negative values are
+treated as zero.
<DT><B>convert-meta (On)</B>
<DD>
@@ -7409,6 +7706,8 @@ by stripping the eighth bit and prefixing an
escape character (in effect, using escape as the <I>meta prefix</I>).
The default is <I>On</I>, but readline will set it to <I>Off</I> if the
locale contains eight-bit characters.
+This variable is dependent on the <B>LC_CTYPE</B> locale category, and
+may change if the locale is changed.
<DT><B>disable-completion (Off)</B>
<DD>
@@ -7445,14 +7744,28 @@ backslash escape sequences is available.
Use the \1 and \2 escapes to begin and end sequences of
non-printing characters, which can be used to embed a terminal control
sequence into the mode string.
+<DT><B>enable-active-region (On)</B>
+
+<DD>
+The <I>point</I> is the current cursor position, and <I>mark</I> refers
+to a saved cursor position.
+The text between the point and mark is referred to as the <I>region</I>.
+When this variable is set to <I>On</I>, readline allows certain commands
+to designate the region as <I>active</I>.
+When the region is active, readline highlights the text in the region using
+the value of the <B>active-region-start-color</B>, which defaults to the
+string that enables
+the terminal's standout mode.
+The active region shows the text inserted by bracketed-paste and any
+matching text found by incremental and non-incremental history searches.
<DT><B>enable-bracketed-paste (On)</B>
<DD>
-When set to <B>On</B>, readline will configure the terminal in a way
-that will enable it to insert each paste into the editing buffer as a
-single string of characters, instead of treating each character as if
-it had been read from the keyboard. This can prevent pasted characters
-from being interpreted as editing commands.
+When set to <B>On</B>, readline configures the terminal to insert each
+paste into the editing buffer as a single string of characters, instead
+of treating each character as if it had been read from the keyboard.
+This prevents readline from executing any editing commands bound to key
+sequences appearing in the pasted text.
<DT><B>enable-keypad (Off)</B>
<DD>
@@ -7506,6 +7819,8 @@ regardless of what the terminal claims it can support. The name
is a synonym for this variable.
The default is <I>Off</I>, but readline will set it to <I>On</I> if the
locale contains eight-bit characters.
+This variable is dependent on the <B>LC_CTYPE</B> locale category, and
+may change if the locale is changed.
<DT><B>isearch-terminators (``C-[C-J'')</B>
<DD>
@@ -7581,6 +7896,8 @@ eighth bit set directly rather than as a meta-prefixed escape
sequence.
The default is <I>Off</I>, but readline will set it to <I>On</I> if the
locale contains eight-bit characters.
+This variable is dependent on the <B>LC_CTYPE</B> locale category, and
+may change if the locale is changed.
<DT><B>page-completions (On)</B>
<DD>
@@ -7892,15 +8209,15 @@ Words are delimited by non-quoted shell metacharacters.
<DD>
Attempt to move point to the same physical screen column on the previous
physical screen line. This will not have the desired effect if the current
-Readline line does not take up more than one physical line or if point is not
+readline line does not take up more than one physical line or if point is not
greater than the length of the prompt plus the screen width.
<DT><B>next-screen-line</B>
<DD>
Attempt to move point to the same physical screen column on the next
physical screen line. This will not have the desired effect if the current
-Readline line does not take up more than one physical line or if the length
-of the current Readline line is not greater than the length of the prompt
+readline line does not take up more than one physical line or if the length
+of the current readline line is not greater than the length of the prompt
plus the screen width.
<DT><B>clear-display (M-C-l)</B>
@@ -7956,6 +8273,19 @@ Move to the first line in the history.
<DD>
Move to the end of the input history, i.e., the line currently being
entered.
+<DT><B>operate-and-get-next (C-o)</B>
+
+<DD>
+Accept the current line for execution and fetch the next line
+relative to the current line from the history for editing.
+A numeric argument, if supplied, specifies the history entry to use instead
+of the current line.
+<DT><B>fetch-history</B>
+
+<DD>
+With a numeric argument, fetch that entry from the history list
+and make it the current line.
+Without an argument, move back to the first entry in the history list.
<DT><B>reverse-search-history (C-r)</B>
<DD>
@@ -8075,13 +8405,6 @@ Perform history and alias expansion on the current line.
<DD>
A synonym for <B>yank-last-arg</B>.
-<DT><B>operate-and-get-next (C-o)</B>
-
-<DD>
-Accept the current line for execution and fetch the next line
-relative to the current line from the history for editing.
-A numeric argument, if supplied, specifies the history entry to use instead
-of the current line.
<DT><B>edit-and-execute-command (C-x C-e)</B>
<DD>
@@ -8109,7 +8432,7 @@ The character indicating end-of-file as set, for example, by
<TT>stty</TT>.
If this character is read when there are no characters
-on the line, and point is at the beginning of the line, Readline
+on the line, and point is at the beginning of the line, readline
interprets it as the end of input and returns
<FONT SIZE=-1><B>EOF</B>.
@@ -8529,12 +8852,12 @@ the saved position, and the old cursor position is saved as the mark.
<DD>
A character is read and point is moved to the next occurrence of that
-character. A negative count searches for previous occurrences.
+character. A negative argument searches for previous occurrences.
<DT><B>character-search-backward (M-C-])</B>
<DD>
A character is read and point is moved to the previous occurrence of that
-character. A negative count searches for subsequent occurrences.
+character. A negative argument searches for subsequent occurrences.
<DT><B>skip-csi-sequence</B>
<DD>
@@ -8563,6 +8886,12 @@ The default value of
a shell comment.
If a numeric argument causes the comment character to be removed, the line
will be executed by the shell.
+<DT><B>spell-correct-word (C-x s)</B>
+
+<DD>
+Perform spelling correction on the current word, treating it as a directory
+or filename, in the same way as the <B>cdspell</B> shell option.
+Word boundaries are the same as those used by <B>shell-forward-word</B>.
<DT><B>glob-complete-word (M-g)</B>
<DD>
@@ -9445,15 +9774,16 @@ does not contain a slash, filenames in
</FONT>
are used to find the directory containing
-<I>filename</I>.
+<I>filename</I>,
+but <I>filename</I> does not need to be executable.
The file searched for in
<FONT SIZE=-1><B>PATH</B>
</FONT>
need not be executable.
-When <B>bash</B> is not in <I>posix mode</I>, the current directory is
-searched if no file is found in
+When <B>bash</B> is not in <I>posix mode</I>, it searches
+the current directory if no file is found in
<FONT SIZE=-1><B>PATH</B>.
</FONT>
@@ -9471,12 +9801,12 @@ is not searched.
If any <I>arguments</I> are supplied, they become the positional
parameters when <I>filename</I> is executed. Otherwise the positional
parameters are unchanged.
-If the <B>-T</B> option is enabled, <B>source</B> inherits any trap on
+If the <B>-T</B> option is enabled, <B>.</B> inherits any trap on
<B>DEBUG</B>; if it is not, any <B>DEBUG</B> trap string is saved and
-restored around the call to <B>source</B>, and <B>source</B> unsets the
+restored around the call to <B>.</B>, and <B>.</B> unsets the
<B>DEBUG</B> trap while it executes.
If <B>-T</B> is not set, and the sourced file changes
-the <B>DEBUG</B> trap, the new value is retained when <B>source</B> completes.
+the <B>DEBUG</B> trap, the new value is retained when <B>.</B> completes.
The return status is the status of the last command exited within
the script (0 if no commands are executed), and false if
<I>filename</I>
@@ -9519,6 +9849,7 @@ or was started without job control.
<DT><B>bind</B> [<B>-m</B> <I>keymap</I>] <B>-x</B> <I>keyseq</I>:<I>shell-command</I><DD>
<DT><B>bind</B> [<B>-m</B> <I>keymap</I>] <I>keyseq</I>:<I>function-name</I><DD>
<DT><B>bind</B> [<B>-m</B> <I>keymap</I>] <I>keyseq</I>:<I>readline-command</I><DD>
+<DT><B>bind</B> <I>readline-command-line</I><DD>
Display current
<B>readline</B>
@@ -9530,7 +9861,10 @@ function or macro, or set a
<B>readline</B>
variable.
-Each non-option argument is a command as it would appear in
+Each non-option argument is a command as it would appear in a
+<B>readline</B>
+
+initialization file such as
<I>.inputrc</I>,
but each binding or command must be passed as a separate argument;
@@ -9624,6 +9958,12 @@ and
</FONT>
variables to the current location of the insertion point and the saved
insertion point (the mark), respectively.
+The shell assigns any numeric argument the user supplied to the
+<FONT SIZE=-1><B>READLINE_ARGUMENT</B>
+
+</FONT>
+variable.
+If there was no argument, that variable is not set.
If the executed command changes the value of any of
<FONT SIZE=-1><B>READLINE_LINE</B>,
@@ -9702,7 +10042,6 @@ if <I>dir</I> is not supplied, the value of the
</FONT>
shell variable is the default.
-Any additional arguments following <I>dir</I> are ignored.
The variable
<FONT SIZE=-1><B>CDPATH</B>
@@ -9777,6 +10116,10 @@ is used, or if
<B>-</B> is the first argument, and the directory change is
successful, the absolute pathname of the new working directory is
written to the standard output.
+If the directory change is successful, <B>cd</B> sets the value of the
+<B>PWD</B> environment variable to the new directory name, and sets the
+<B>OLDPWD</B> environment variable to the value of the current working
+directory before the change.
The return value is true if the directory was successfully changed;
false otherwise.
<DT><B>command</B> [<B>-pVv</B>] <I>command</I> [<I>arg</I> ...]<DD>
@@ -9891,7 +10234,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
@@ -10062,6 +10407,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.
@@ -10230,6 +10576,7 @@ to give variables attributes:
Each <I>name</I> is an indexed array variable (see
<B>Arrays</B>
+
above).
<DT><B>-A</B>
@@ -10237,6 +10584,7 @@ above).
Each <I>name</I> is an associative array variable (see
<B>Arrays</B>
+
above).
<DT><B>-f</B>
@@ -10249,7 +10597,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>
@@ -10324,7 +10674,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>.
@@ -10538,7 +10890,11 @@ option means to load the new builtin command
from shared object
<I>filename</I>,
-on systems that support dynamic loading. The
+on systems that support dynamic loading.
+Bash will use the value of the <B>BASH_LOADABLES_PATH</B> variable as a
+colon-separated list of directories in which to search for <I>filename</I>.
+The default is system-dependent.
+The
<B>-d</B>
option will delete a builtin previously loaded with
@@ -10555,6 +10911,11 @@ If <B>-a</B> is supplied, the list printed includes all builtins, with an
indication of whether or not each is enabled.
If <B>-s</B> is supplied, the output is restricted to the POSIX
<I>special</I> builtins.
+If no options are supplied and a <I>name</I> is not a shell builtin,
+<B>enable</B> will attempt to load <I>name</I> from a shared object named
+<I>name</I>, as if the command were
+<TT>enable -f</TT> <I>name name</I> .
+
The return value is 0 unless a
<I>name</I>
@@ -11080,8 +11441,9 @@ than the last history position, so negative indices count back from the
end of the history, and an index of -1 refers to the current
<B>history -d</B> command.
<DT><B>-d</B> <I>start</I>-<I>end</I><DD>
-Delete the history entries between positions <I>start</I> and <I>end</I>,
-inclusive. Positive and negative values for <I>start</I> and <I>end</I>
+Delete the range of history entries between positions <I>start</I> and
+<I>end</I>, inclusive.
+Positive and negative values for <I>start</I> and <I>end</I>
are interpreted as described above.
<DT><B>-a</B>
@@ -11140,7 +11502,7 @@ comment character followed immediately by a digit are interpreted
as timestamps for the following history entry.
The return value is 0 unless an invalid option is encountered, an
error occurs while reading or writing the history file, an invalid
-<I>offset</I> is supplied as an argument to <B>-d</B>, or the
+<I>offset</I> or range is supplied as an argument to <B>-d</B>, or the
history expansion supplied as an argument to <B>-p</B> fails.
</DL>
@@ -11283,6 +11645,7 @@ is an arithmetic expression to be evaluated (see
<FONT SIZE=-1><B>ARITHMETIC EVALUATION</B>
</FONT>
+
above).
If the last
<I>arg</I>
@@ -11433,11 +11796,12 @@ argument is supplied, <I>array</I> is invalid or unassignable, or if
</DL>
<DT><B>popd</B> [-<B>n</B>] [+<I>n</I>] [-<I>n</I>]<DD>
-Removes entries from the directory stack. With no arguments,
-removes the top directory from the stack, and performs a
-<B>cd</B>
-
-to the new top directory.
+Removes entries from the directory stack.
+The elements are numbered from 0 starting at the first directory
+listed by <B>dirs</B>.
+With no arguments, <B>popd</B>
+removes the top directory from the stack, and
+changes to the new top directory.
Arguments, if supplied, have the following meanings:
<DL COMPACT><DT><DD>
@@ -11452,7 +11816,8 @@ Removes the <I>n</I>th entry counting from the left of the list
shown by
<B>dirs</B>,
-starting with zero. For example:
+starting with zero, from the stack.
+For example:
<TT>popd +0</TT>
removes the first directory,
@@ -11475,18 +11840,28 @@ the next to last.
</DL>
<P>
-If the
+If the top element of the directory stack is modified, and
+the <I>-n</I> option was not supplied, <B>popd</B> uses the <B>cd</B>
+builtin to change to the directory at the top of the stack.
+If the <B>cd</B> fails, <B>popd</B> returns a non-zero value.
+<P>
+
+Otherwise,
<B>popd</B>
-command is successful, a
-<B>dirs</B>
+returns false if an invalid option is encountered, the directory stack
+is empty, or a non-existent directory stack entry is specified.
+<P>
-is performed as well, and the return status is 0.
+If the
<B>popd</B>
-returns false if an invalid option is encountered, the directory stack
-is empty, a non-existent directory stack entry is specified, or the
-directory change fails.
+command is successful,
+bash runs
+<B>dirs</B>
+
+to show the final contents of the directory stack,
+and the return status is 0.
</DL>
<DT><B>printf</B> [<B>-v</B> <I>var</I>] <I>format</I> [<I>arguments</I>]<DD>
@@ -11517,6 +11892,11 @@ in the same way as <B>echo -e</B>.
<DD>
causes <B>printf</B> to output the corresponding
<I>argument</I> in a format that can be reused as shell input.
+<DT><B>%Q</B>
+
+<DD>
+like <B>%q</B>, but applies any supplied precision to the <I>argument</I>
+before quoting it.
<DT><B>%(</B><I>datefmt</I>)T
<DD>
@@ -11557,8 +11937,9 @@ The return value is zero on success, non-zero on failure.
Adds a directory to the top of the directory stack, or rotates
the stack, making the new top of the stack the current working
-directory. With no arguments, <B>pushd</B> exchanges the top two directories
-and returns 0, unless the directory stack is empty.
+directory.
+With no arguments, <B>pushd</B> exchanges the top two elements of
+the directory stack.
Arguments, if supplied, have the following meanings:
<DL COMPACT><DT><DD>
@@ -11587,33 +11968,36 @@ starting with zero) is at the top.
Adds
<I>dir</I>
-to the directory stack at the top, making it the
-new current working directory as if it had been supplied as the argument
-to the <B>cd</B> builtin.
+to the directory stack at the top
</DL>
<P>
-If the
-<B>pushd</B>
+After the stack has been modified, if the <B>-n</B> option was not
+supplied, <B>pushd</B> uses the <B>cd</B> builtin to change to the
+directory at the top of the stack.
+If the <B>cd</B> fails, <B>pushd</B> returns a non-zero value.
+<P>
-command is successful, a
-<B>dirs</B>
+Otherwise, if no arguments are supplied,
+<B>pushd</B>
-is performed as well.
-If the first form is used,
+returns 0 unless the directory stack is empty.
+When rotating the directory stack,
<B>pushd</B>
-returns 0 unless the cd to
-<I>dir</I>
+returns 0 unless the directory stack is empty or
+a non-existent directory stack element is specified.
+<P>
-fails. With the second form,
+If the
<B>pushd</B>
-returns 0 unless the directory stack is empty,
-a non-existent directory stack element is specified,
-or the directory change to the specified new current directory
-fails.
+command is successful,
+bash runs
+<B>dirs</B>
+
+to show the final contents of the directory stack.
</DL>
<DT><B>pwd</B> [<B>-LP</B>]<DD>
@@ -11638,7 +12022,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>,
@@ -11658,7 +12045,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:
@@ -11695,9 +12085,11 @@ 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.
+active) editing settings, but uses readline's default filename completion.
<DT><B>-i </B><I>text</I>
<DD>
@@ -11756,8 +12148,10 @@ from regular files.
If <B>read</B> times out, <B>read</B> saves any partial input read into
the specified variable <I>name</I>.
If <I>timeout</I> is 0, <B>read</B> returns immediately, without trying to
-read any data. The exit status is 0 if input is available on
-the specified file descriptor, non-zero otherwise.
+read any data.
+The exit status is 0 if input is available on the specified file descriptor,
+or the read will return EOF,
+non-zero otherwise.
The exit status is greater than 128 if the timeout is exceeded.
<DT><B>-u </B><I>fd</I>
@@ -11871,11 +12265,11 @@ is used outside a
function and not during execution of a script by <B>.</B> or <B>source</B>.
Any command associated with the <B>RETURN</B> trap is executed
before execution resumes after the function or script.
-<DT><B>set</B> [<B>--abefhkmnptuvxBCEHPT</B>] [<B>-o</B> <I>option-name</I>] [<I>arg</I> ...]<DD>
+<DT><B>set</B> [<B>-abefhkmnptuvxBCEHPT</B>] [<B>-o</B> <I>option-name</I>] [<B>--</B>] [<B>-</B>] [<I>arg</I> ...]<DD>
-<DT><B>set</B> [<B>+abefhkmnptuvxBCEHPT</B>] [<B>+o</B> <I>option-name</I>] [<I>arg</I> ...]<DD>
+<DT><B>set</B> [<B>+abefhkmnptuvxBCEHPT</B>] [<B>+o</B> <I>option-name</I>] [<B>--</B>] [<B>-</B>] [<I>arg</I> ...]<DD>
-Without options, the name and value of each shell variable are displayed
+Without options, display the name and value of each shell variable
in a format that can be reused as input
for setting or resetting the currently-set variables.
Read-only variables cannot be reset.
@@ -11919,7 +12313,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>
@@ -11955,7 +12351,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>
@@ -11993,6 +12391,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
@@ -12064,7 +12463,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>
@@ -12079,6 +12481,7 @@ had been executed
(see
<B>Shell Variables</B>
+
above).
<DT><B>keyword</B>
@@ -12157,7 +12560,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>
@@ -12238,6 +12643,11 @@ If the <B>-p</B> option is supplied at startup, the effective user id is
not reset.
Turning this option off causes the effective user
and group ids to be set to the real user and group ids.
+<DT><B>-r</B>
+
+<DD>
+Enable restricted shell mode.
+This option cannot be unset once it has been set.
<DT><B>-t</B>
<DD>
@@ -12246,7 +12656,9 @@ Exit after reading and executing one command.
<DD>
Treat unset variables and parameters other than the special
-parameters &quot;@&quot; and &quot;*&quot; as an error when performing
+parameters &quot;@&quot; and &quot;*&quot;,
+or array variables subscripted with &quot;@&quot; or &quot;*&quot;,
+as an error when performing
parameter expansion. If expansion is attempted on an
unset variable or parameter, the shell prints an error message, and,
if not interactive, exits with a non-zero status.
@@ -12271,7 +12683,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>
@@ -12522,8 +12936,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>
@@ -12547,7 +12962,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>
@@ -12573,12 +12991,16 @@ history is enabled, as described above under
<DT><B>compat44</B>
<DD>
+<DT><B>compat50</B>
+
+<DD>
These control aspects of the shell's compatibility mode
(see
<FONT SIZE=-1><B>SHELL COMPATIBILITY MODE</B>
</FONT>
+
below).
<DT><B>complete_fullquote</B>
@@ -12655,7 +13077,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>
@@ -12698,7 +13123,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>
@@ -12716,7 +13143,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>
@@ -12741,7 +13171,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>
@@ -12753,7 +13185,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>
@@ -12765,6 +13199,19 @@ and
<B>B</B>,
and upper-case and lower-case ASCII characters will collate together.
+<DT><B>globskipdots</B>
+
+<DD>
+If set, pathname expansion will never match the filenames
+<B>``.''</B>
+
+and
+<B>``..''</B>,
+
+even if the pattern begins with a
+<B>``.''</B>.
+
+This option is enabled by default.
<DT><B>globstar</B>
<DD>
@@ -12817,6 +13264,7 @@ under
<FONT SIZE=-1><B>READLINE</B>
</FONT>
+
above).
This is enabled by default.
<DT><B>huponexit</B>
@@ -12844,7 +13292,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>
@@ -12878,6 +13328,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>
@@ -12911,6 +13362,7 @@ matches filenames in a case-insensitive fashion when performing pathname
expansion (see
<B>Pathname Expansion</B>
+
above).
<DT><B>nocasematch</B>
@@ -12922,6 +13374,15 @@ matches patterns in a case-insensitive fashion when performing matching
while executing <B>case</B> or <B>[[</B> conditional commands,
when performing pattern substitution word expansions,
or when filtering possible completions as part of programmable completion.
+<DT><B>noexpand_translation</B>
+
+<DD>
+If set,
+<B>bash</B>
+
+encloses the translated results of $&quot;...&quot; quoting in single quotes
+instead of double quotes.
+If the string is not translated, this has no effect.
<DT><B>nullglob</B>
<DD>
@@ -12932,13 +13393,27 @@ 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>
+
+<DD>
+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.
+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>
@@ -12956,14 +13431,18 @@ 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>
-The shell sets this option if it is started in restricted mode (see
+The shell sets this option if it is started in restricted mode
+(see
<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
@@ -12980,12 +13459,23 @@ number of positional parameters.
<DD>
If set, the
-<B>source</B> (<B>.</B>) builtin uses the value of
+<B>.</B> (<B>source</B>) builtin uses the value of
<FONT SIZE=-1><B>PATH</B>
</FONT>
to find the directory containing the file supplied as an argument.
This option is enabled by default.
+<DT><B>varredir_close</B>
+
+<DD>
+If set, the shell automatically closes file descriptors assigned using the
+<I>{varname}</I> redirection syntax (see
+<FONT SIZE=-1><B>REDIRECTION</B>
+
+</FONT>
+
+above)
+instead of leaving them open when the command completes.
<DT><B>xpg_echo</B>
<DD>
@@ -12999,14 +13489,18 @@ Suspend the execution of this shell until it receives a
<FONT SIZE=-1><B>SIGCONT</B>
</FONT>
-signal. A login shell cannot be suspended; the
+signal. A login shell,
+or a shell without job control enabled,
+cannot be suspended; the
<B>-f</B>
option can be used to override this and force the suspension.
-The return status is 0 unless the shell is a login shell and
+The return status is 0 unless the shell is a login shell
+or job control is not enabled
+and
<B>-f</B>
-is not supplied, or if job control is not enabled.
+is not supplied.
<DT><B>test</B> <I>expr</I><DD>
<DT><B>[</B> <I>expr</I> <B>]</B><DD>
@@ -13015,8 +13509,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>
@@ -13078,7 +13574,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>,
@@ -13088,7 +13586,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>,
@@ -13104,8 +13604,13 @@ exactly <B>)</B>, the result is the one-argument test of the second
argument.
Otherwise, the expression is false.
<DT>4 arguments<DD>
+The following conditions are applied in the order listed.
If the first argument is <B>!</B>, the result is the negation of
the three-argument expression composed of the remaining arguments.
+the two-argument test using the second and third arguments.
+If the first argument is exactly <B>(</B> and the fourth argument is
+exactly <B>)</B>, the result is the two-argument test of the second
+and third arguments.
Otherwise, the expression is parsed and evaluated according to
precedence using the rules listed above.
<DT>5 or more arguments<DD>
@@ -13213,6 +13718,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.
@@ -13696,7 +14202,7 @@ are unset, they lose their special properties, even if they are
subsequently reset. The exit status is true unless a
<I>name</I>
-is readonly.
+is readonly or may not be unset.
<DT><B>wait</B> [<B>-fn</B>] [-p <I>varname</I>] [<I>id ...</I>]<DD>
Wait for each specified child process and return its termination status.
Each
@@ -13730,15 +14236,21 @@ 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>
<H3>SHELL COMPATIBILITY MODE</H3>
-Bash-4.0 introduced the concept of a `shell compatibility level', specified
-as a set of options to the shopt builtin
+Bash-4.0 introduced the concept of a <I>shell compatibility level</I>,
+specified as a set of options to the shopt builtin (
<B>compat31</B>,
<B>compat32</B>,
@@ -13759,7 +14271,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
@@ -13896,7 +14408,7 @@ are not special within double-quoted word expansions
<DT>*<DD>
the shell does not print a warning message if an attempt is made to
use a quoted compound assignment as an argument to declare
-(declare -a foo='(1 2)'). Later versions warn that this usage is
+(e.g., declare -a foo=aq(1 2)aq). Later versions warn that this usage is
deprecated
<DT>*<DD>
word expansion errors are considered non-fatal errors that cause the
@@ -13963,6 +14475,17 @@ when the <B>-l</B> option is supplied.
</DL></DL>
+<DT><B>compat51</B><DD>
+
+<DL COMPACT><DT><DD>
+<DL COMPACT>
+<DT>*<DD>
+The <B>unset</B> builtin treats attempts to unset array subscripts <B>@</B>
+and <B>*</B> differently depending on whether the array is indexed or
+associative, and differently than in previous versions.
+</DL></DL>
+
+
</DL>
@@ -14074,7 +14597,7 @@ option to the
builtin command
<DT>*<DD>
turning off restricted mode with
-<B>set +r</B> or <B>set +o restricted</B>.
+<B>set +r</B> or <B>shopt -u restricted_shell</B>.
</DL>
<P>
@@ -14143,6 +14666,12 @@ The individual per-interactive-shell startup file
<DD>
The individual login shell cleanup file, executed when a login shell exits
<DT>
+<A HREF="file:~/.bash_history"><I>~/.bash_history</I></A>
+
+<DD>
+The default value of <B>HISTFILE</B>, the file in which bash saves the
+command history
+<DT>
<A HREF="file:~/.inputrc"><I>~/.inputrc</I></A>
<DD>
@@ -14174,7 +14703,8 @@ version of
<B>bash</B>.
The latest version is always available from
-<I><A HREF="ftp://ftp.gnu.org/pub/gnu/bash/">ftp://ftp.gnu.org/pub/gnu/bash/</A></I>.
+<I><A HREF="ftp://ftp.gnu.org/pub/gnu/bash/">ftp://ftp.gnu.org/pub/gnu/bash/</A></I> and
+<I><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></I>.
<P>
Once you have determined that a bug actually exists, use the
@@ -14257,7 +14787,7 @@ There may be only one active coprocess at a time.
<HR>
<TABLE WIDTH=100%>
<TR>
-<TH ALIGN=LEFT width=33%>GNU Bash 5.1<TH ALIGN=CENTER width=33%>2020 October 29<TH ALIGN=RIGHT width=33%>BASH(1)
+<TH ALIGN=LEFT width=33%>GNU Bash 5.2<TH ALIGN=CENTER width=33%>2022 September 19<TH ALIGN=RIGHT width=33%>BASH(1)
</TR>
</TABLE>
<HR>
@@ -14363,7 +14893,7 @@ There may be only one active coprocess at a time.
<DT><A HREF="#lbDI">BUGS</A><DD>
</DL>
<HR>
-This document was created by man2html from bash.1.<BR>
-Time: 18 November 2020 15:13:09 EST
+This document was created by man2html from /usr/local/src/bash/bash-20220907/doc/bash.1.<BR>
+Time: 19 September 2022 12:02:51 EDT
</BODY>
</HTML>
diff --git a/doc/bash.info b/doc/bash.info
index 2fd137a9..6d31de62 100644
--- a/doc/bash.info
+++ b/doc/bash.info
@@ -1,13 +1,12 @@
-This is bash.info, produced by makeinfo version 6.7 from
-bashref.texi.
+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.1, 29 October 2020).
+Bash shell (version 5.2, 19 September 2022).
- This is Edition 5.1, last updated 29 October 2020, of 'The GNU Bash
-Reference Manual', for 'Bash', Version 5.1.
+ This is Edition 5.2, last updated 19 September 2022, of 'The GNU Bash
+Reference Manual', for 'Bash', Version 5.2.
- Copyright (C) 1988-2020 Free Software Foundation, Inc.
+ Copyright (C) 1988-2022 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@@ -27,11 +26,11 @@ Bash Features
*************
This text is a brief description of the features that are present in the
-Bash shell (version 5.1, 29 October 2020). The Bash home page is
+Bash shell (version 5.2, 19 September 2022). The Bash home page is
<http://www.gnu.org/software/bash/>.
- This is Edition 5.1, last updated 29 October 2020, of 'The GNU Bash
-Reference Manual', for 'Bash', Version 5.1.
+ This is Edition 5.2, last updated 19 September 2022, of 'The GNU Bash
+Reference Manual', for 'Bash', Version 5.2.
Bash contains features that appear in other popular shells, and some
features that only appear in Bash. Some of the shells that Bash has
@@ -359,11 +358,11 @@ as such, and to prevent parameter expansion.
Each of the shell metacharacters (*note Definitions::) has special
meaning to the shell and must be quoted if it is to represent itself.
When the command history expansion facilities are being used (*note
-History Interaction::), the HISTORY EXPANSION character, usually '!',
+History Interaction::), the "history expansion" character, usually '!',
must be quoted to prevent history expansion. *Note Bash History
Facilities::, for more details concerning history expansion.
- There are three quoting mechanisms: the ESCAPE CHARACTER, single
+ There are three quoting mechanisms: the "escape character", single
quotes, and double quotes.

@@ -419,10 +418,11 @@ File: bash.info, Node: ANSI-C Quoting, Next: Locale Translation, Prev: Double
3.1.2.4 ANSI-C Quoting
......................
-Words of the form '$'STRING'' are treated specially. The word expands
-to STRING, with backslash-escaped characters replaced as specified by
-the ANSI C standard. Backslash escape sequences, if present, are
-decoded as follows:
+Character sequences of the form $'STRING' are treated as a special kind
+of single quotes. The sequence expands to STRING, with
+backslash-escaped characters in STRING replaced as specified by the ANSI
+C standard. Backslash escape sequences, if present, are decoded as
+follows:
'\a'
alert (bell)
@@ -473,22 +473,114 @@ File: bash.info, Node: Locale Translation, Prev: ANSI-C Quoting, Up: Quoting
3.1.2.5 Locale-Specific Translation
...................................
-A double-quoted string preceded by a dollar sign ('$') will cause the
-string to be translated according to the current locale. The GETTEXT
-infrastructure performs the message catalog lookup and translation,
-using the 'LC_MESSAGES' and 'TEXTDOMAIN' shell variables, as explained
-below. See the gettext documentation for additional details. If the
-current locale is 'C' or 'POSIX', or if there are no translations
-available, the dollar sign is ignored. If the string is translated and
-replaced, the replacement is double-quoted.
+* Menu:
- Some systems use the message catalog selected by the 'LC_MESSAGES'
-shell variable. Others create the name of the message catalog from the
-value of the 'TEXTDOMAIN' shell variable, possibly adding a suffix of
-'.mo'. If you use the 'TEXTDOMAIN' variable, you may need to set the
-'TEXTDOMAINDIR' variable to the location of the message catalog files.
-Still others use both variables in this fashion:
-'TEXTDOMAINDIR'/'LC_MESSAGES'/LC_MESSAGES/'TEXTDOMAIN'.mo.
+* Creating Internationalized Scripts:: How to use translations and different
+ languages in your scripts.
+
+Prefixing a double-quoted string with a dollar sign ('$'), such as
+$"hello, world", will cause the string to be translated according to the
+current locale. The 'gettext' infrastructure performs the lookup and
+translation, using the 'LC_MESSAGES', 'TEXTDOMAINDIR', and 'TEXTDOMAIN'
+shell variables, as explained below. See the gettext documentation for
+additional details not covered here. If the current locale is 'C' or
+'POSIX', if there are no translations available, of if the string is not
+translated, the dollar sign is ignored. Since this is a form of double
+quoting, the string remains double-quoted by default, whether or not it
+is translated and replaced. If the 'noexpand_translation' option is
+enabled using the 'shopt' builtin (*note The Shopt Builtin::),
+translated strings are single-quoted instead of double-quoted.
+
+ The rest of this section is a brief overview of how you use gettext
+to create translations for strings in a shell script named SCRIPTNAME.
+There are more details in the gettext documentation.
+
+
+File: bash.info, Node: Creating Internationalized Scripts, Up: Locale Translation
+
+Once you've marked the strings in your script that you want to translate
+using $"...", you create a gettext "template" file using the command
+
+ bash --dump-po-strings SCRIPTNAME > DOMAIN.pot
+
+The DOMAIN is your "message domain". It's just an arbitrary string
+that's used to identify the files gettext needs, like a package or
+script name. It needs to be unique among all the message domains on
+systems where you install the translations, so gettext knows which
+translations correspond to your script. You'll use the template file to
+create translations for each target language. The template file
+conventionally has the suffix '.pot'.
+
+ You copy this template file to a separate file for each target
+language you want to support (called "PO" files, which use the suffix
+'.po'). PO files use various naming conventions, but when you are
+working to translate a template file into a particular language, you
+first copy the template file to a file whose name is the language you
+want to target, with the '.po' suffix. For instance, the Spanish
+translations of your strings would be in a file named 'es.po', and to
+get started using a message domain named "example," you would run
+
+ cp example.pot es.po
+
+Ultimately, PO files are often named DOMAIN.po and installed in
+directories that contain multiple translation files for a particular
+language.
+
+ Whichever naming convention you choose, you will need to translate
+the strings in the PO files into the appropriate languages. This has to
+be done manually.
+
+ When you have the translations and PO files complete, you'll use the
+gettext tools to produce what are called "MO" files, which are compiled
+versions of the PO files the gettext tools use to look up translations
+efficiently. MO files are also called "message catalog" files. You use
+the 'msgfmt' program to do this. For instance, if you had a file with
+Spanish translations, you could run
+
+ msgfmt -o es.mo es.po
+
+to produce the corresponding MO file.
+
+ Once you have the MO files, you decide where to install them and use
+the 'TEXTDOMAINDIR' shell variable to tell the gettext tools where they
+are. Make sure to use the same message domain to name the MO files as
+you did for the PO files when you install them.
+
+ Your users will use the 'LANG' or 'LC_MESSAGES' shell variables to
+select the desired language.
+
+ You set the 'TEXTDOMAIN' variable to the script's message domain. As
+above, you use the message domain to name your translation files.
+
+ You, or possibly your users, set the 'TEXTDOMAINDIR' variable to the
+name of a directory where the message catalog files are stored. If you
+install the message files into the system's standard message catalog
+directory, you don't need to worry about this variable.
+
+ The directory where the message catalog files are stored varies
+between systems. Some use the message catalog selected by the
+'LC_MESSAGES' shell variable. Others create the name of the message
+catalog from the value of the 'TEXTDOMAIN' shell variable, possibly
+adding the '.mo' suffix. If you use the 'TEXTDOMAIN' variable, you may
+need to set the 'TEXTDOMAINDIR' variable to the location of the message
+catalog files, as above. It's common to use both variables in this
+fashion: '$TEXTDOMAINDIR'/'$LC_MESSAGES'/LC_MESSAGES/'$TEXTDOMAIN'.mo.
+
+ If you used that last convention, and you wanted to store the message
+catalog files with Spanish (es) and Esperanto (eo) translations into a
+local directory you use for custom translation files, you could run
+
+ TEXTDOMAIN=example
+ TEXTDOMAINDIR=/usr/local/share/locale
+
+ cp es.mo ${TEXTDOMAINDIR}/es/LC_MESSAGES/${TEXTDOMAIN}.mo
+ cp eo.mo ${TEXTDOMAINDIR}/eo/LC_MESSAGES/${TEXTDOMAIN}.mo
+
+ When all of this is done, and the message catalog files containing
+the compiled translations are installed in the correct location, your
+users will be able to see translated strings in any of the supported
+languages by setting the 'LANG' or 'LC_MESSAGES' environment variables
+before running your script.

File: bash.info, Node: Comments, Prev: Quoting, Up: Shell Syntax
@@ -582,13 +674,13 @@ the control operators '|' or '|&'.
The output of each command in the pipeline is connected via a pipe to
the input of the next command. That is, each command reads the previous
command's output. This connection is performed before any redirections
-specified by the command.
+specified by COMMAND1.
If '|&' is used, COMMAND1's standard error, in addition to its
standard output, is connected to COMMAND2's standard input through the
pipe; it is shorthand for '2>&1 |'. This implicit redirection of the
standard error to the standard output is performed after any
-redirections specified by the command.
+redirections specified by COMMAND1.
The reserved word 'time' causes timing statistics to be printed for
the pipeline once it finishes. The statistics currently consist of
@@ -612,11 +704,12 @@ information.
If the pipeline is not executed asynchronously (*note Lists::), the
shell waits for all commands in the pipeline to complete.
- Each command in a pipeline is executed in its own subshell, which is
-a separate process (*note Command Execution Environment::). If the
-'lastpipe' option is enabled using the 'shopt' builtin (*note The Shopt
-Builtin::), the last element of a pipeline may be run by the shell
-process.
+ Each command in a multi-command pipeline, where pipes are created, is
+executed in its own "subshell", which is a separate process (*note
+Command Execution Environment::). If the 'lastpipe' option is enabled
+using the 'shopt' builtin (*note The Shopt Builtin::), the last element
+of a pipeline may be run by the shell process when job control is not
+active.
The exit status of a pipeline is the exit status of the last command
in the pipeline, unless the 'pipefail' option is enabled (*note The Set
@@ -645,8 +738,8 @@ commands, equivalent to a semicolon.
If a command is terminated by the control operator '&', the shell
executes the command asynchronously in a subshell. This is known as
-executing the command in the BACKGROUND, and these are referred to as
-ASYNCHRONOUS commands. The shell does not wait for the command to
+executing the command in the "background", and these are referred to as
+"asynchronous" commands. The shell does not wait for the command to
finish, and the return status is 0 (true). When job control is not
active (*note Job Control::), the standard input for asynchronous
commands, in the absence of any explicit redirections, is redirected
@@ -814,7 +907,8 @@ File: bash.info, Node: Conditional Constructs, Next: Command Grouping, Prev:
substitution, arithmetic expansion, and quote removal (*note Shell
Parameter Expansion::) before matching is attempted. Each PATTERN
undergoes tilde expansion, parameter expansion, command
- substitution, and arithmetic expansion.
+ substitution, arithmetic expansion, process substitution, and quote
+ removal.
There may be an arbitrary number of 'case' clauses, each terminated
by a ';;', ';&', or ';;&'. The first pattern that matches
@@ -855,16 +949,16 @@ File: bash.info, Node: Conditional Constructs, Next: Command Grouping, Prev:
select NAME [in WORDS ...]; do COMMANDS; done
The list of words following 'in' is expanded, generating a list of
- items. The set of expanded words is printed on the standard error
- output stream, each preceded by a number. If the 'in WORDS' is
- omitted, the positional parameters are printed, as if 'in "$@"' had
- been specified. The 'PS3' prompt is then displayed and a line is
- read from the standard input. If the line consists of a number
- corresponding to one of the displayed words, then the value of NAME
- is set to that word. If the line is empty, the words and prompt
- are displayed again. If 'EOF' is read, the 'select' command
- completes. Any other value read causes NAME to be set to null.
- The line read is saved in the variable 'REPLY'.
+ items, and the set of expanded words is printed on the standard
+ error output stream, each preceded by a number. If the 'in WORDS'
+ is omitted, the positional parameters are printed, as if 'in "$@"'
+ had been specified. 'select' then displays the 'PS3' 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 NAME is set to that word. If the line is empty, the words and
+ prompt are displayed again. If 'EOF' is read, the 'select' command
+ completes and returns 1. Any other value read causes NAME to be
+ set to null. The line read is saved in the variable 'REPLY'.
The COMMANDS are executed after each selection until a 'break'
command is executed, at which point the 'select' command completes.
@@ -883,11 +977,11 @@ File: bash.info, Node: Conditional Constructs, Next: Command Grouping, Prev:
(( EXPRESSION ))
The arithmetic EXPRESSION is evaluated according to the rules
- described below (*note Shell Arithmetic::). If the value of the
- expression is non-zero, the return status is 0; otherwise the
- return status is 1. This is exactly equivalent to
- let "EXPRESSION"
- *Note Bash Builtins::, for a full description of the 'let' builtin.
+ described below (*note Shell Arithmetic::). The EXPRESSION
+ undergoes the same expansions as if it were within double quotes,
+ but double quote characters in EXPRESSION are not treated specially
+ are removed. If the value of the expression is non-zero, the
+ return status is 0; otherwise the return status is 1.
'[[...]]'
[[ EXPRESSION ]]
@@ -895,12 +989,13 @@ File: bash.info, Node: Conditional Constructs, Next: Command Grouping, Prev:
Return a status of 0 or 1 depending on the evaluation of the
conditional expression EXPRESSION. Expressions are composed of the
primaries described below in *note Bash Conditional Expressions::.
- Word splitting and filename expansion are not performed on the
- words between the '[[' and ']]'; tilde expansion, parameter and
- variable expansion, arithmetic expansion, command substitution,
- process substitution, and quote removal are performed. Conditional
- operators such as '-f' must be unquoted to be recognized as
- primaries.
+ The words between the '[[' and ']]' do not undergo word splitting
+ and filename expansion. The shell performs tilde expansion,
+ parameter and variable expansion, arithmetic expansion, command
+ substitution, process substitution, and quote removal on those
+ words (the expansions that would occur if the words were enclosed
+ in double quotes). Conditional operators such as '-f' must be
+ unquoted to be recognized as primaries.
When used with '[[', the '<' and '>' operators sort
lexicographically using the current locale.
@@ -913,67 +1008,92 @@ File: bash.info, Node: Conditional Constructs, Next: Command Grouping, Prev:
'shopt' in *note The Shopt Builtin::) is enabled, the match is
performed without regard to the case of alphabetic characters. The
return value is 0 if the string matches ('==') or does not match
- ('!=') the pattern, and 1 otherwise. Any part of the pattern may
- be quoted to force the quoted portion to be matched as a string.
+ ('!=') the pattern, and 1 otherwise.
+
+ If you quote any part of the pattern, using any of the shell's
+ quoting mechanisms, the quoted portion is matched literally. This
+ means every character in the quoted portion matches itself, instead
+ of having any special pattern matching meaning.
An additional binary operator, '=~', is available, with the same
- precedence as '==' and '!='. When it is used, the string to the
+ precedence as '==' and '!='. When you use '=~', the string to the
right of the operator is considered a POSIX extended regular
- expression and matched accordingly (using the POSIX 'regcomp' and
- 'regexec' interfaces usually described in regex(3)). The return
- value is 0 if the string matches the pattern, and 1 otherwise. If
- the regular expression is syntactically incorrect, the conditional
- expression's return value is 2. If the 'nocasematch' shell option
- (see the description of 'shopt' in *note The Shopt Builtin::) is
- enabled, the match is performed without regard to the case of
- alphabetic characters. Any part of the pattern may be quoted to
- force the quoted portion to be matched as a string. Bracket
- expressions in regular expressions must be treated carefully, since
- normal quoting characters lose their meanings between brackets. If
- the pattern is stored in a shell variable, quoting the variable
- expansion forces the entire pattern to be matched as a string.
-
- The pattern will match if it matches any part of the string.
- Anchor the pattern using the '^' and '$' regular expression
- operators to force it to match the entire string. The array
- variable 'BASH_REMATCH' records which parts of the string matched
- the pattern. The element of 'BASH_REMATCH' with index 0 contains
- the portion of the string matching the entire regular expression.
- Substrings matched by parenthesized subexpressions within the
- regular expression are saved in the remaining 'BASH_REMATCH'
- indices. The element of 'BASH_REMATCH' with index N is the portion
- of the string matching the Nth parenthesized subexpression.
+ expression pattern and matched accordingly (using the POSIX
+ 'regcomp' and 'regexec' interfaces usually described in regex(3)).
+ The return value is 0 if the string matches the pattern, and 1 if
+ it does not. If the regular expression is syntactically incorrect,
+ the conditional expression returns 2. If the 'nocasematch' shell
+ option (see the description of 'shopt' in *note The Shopt
+ Builtin::) is enabled, the match is performed without regard to the
+ case of alphabetic characters.
+
+ You can quote any part of the pattern to force the quoted portion
+ to be matched literally instead of as a regular expression (see
+ above). If the pattern is stored in a shell variable, quoting the
+ variable expansion forces the entire pattern to be matched
+ literally.
+
+ The pattern will match if it matches any part of the string. If
+ you want to force the pattern to match the entire string, anchor
+ the pattern using the '^' and '$' regular expression operators.
For example, the following will match a line (stored in the shell
- variable LINE) if there is a sequence of characters anywhere in the
- value consisting of any number, including zero, of characters in
- the 'space' character class, zero or one instances of 'a', then a
- 'b':
+ variable 'line') if there is a sequence of characters anywhere in
+ the value consisting of any number, including zero, of characters
+ in the 'space' character class, immediately followed by zero or one
+ instances of 'a', then a 'b':
+
[[ $line =~ [[:space:]]*(a)?b ]]
- That means values like 'aab' and ' aaaaaab' will match, as will a
- line containing a 'b' anywhere in its value.
-
- Storing the regular expression in a shell variable is often a
- useful way to avoid problems with quoting characters that are
- special to the shell. It is sometimes difficult to specify a
- regular expression literally without using quotes, or to keep track
- of the quoting used by regular expressions while paying attention
- to the shell's quote removal. Using a shell variable to store the
- pattern decreases these problems. For example, the following is
- equivalent to the above:
+ That means values for 'line' like 'aab', ' aaaaaab', 'xaby', and '
+ ab' will all match, as will a line containing a 'b' anywhere in its
+ value.
+
+ If you want to match a character that's special to the regular
+ expression grammar ('^$|[]()\.*+?'), it has to be quoted to remove
+ its special meaning. This means that in the pattern 'xxx.txt', the
+ '.' matches any character in the string (its usual regular
+ expression meaning), but in the pattern '"xxx.txt"', it can only
+ match a literal '.'.
+
+ Likewise, if you want to include a character in your pattern that
+ has a special meaning to the regular expression grammar, you must
+ make sure it's not quoted. If you want to anchor a pattern at the
+ beginning or end of the string, for instance, you cannot quote the
+ '^' or '$' characters using any form of shell quoting.
+
+ If you want to match 'initial string' at the start of a line, the
+ following will work:
+ [[ $line =~ ^"initial string" ]]
+ but this will not:
+ [[ $line =~ "^initial string" ]]
+ because in the second example the '^' is quoted and doesn't have
+ its usual special meaning.
+
+ It is sometimes difficult to specify a regular expression properly
+ without using quotes, or to keep track of the quoting used by
+ regular expressions while paying attention to shell quoting and the
+ shell's quote removal. Storing the regular expression in a shell
+ variable is often a useful way to avoid problems with quoting
+ characters that are special to the shell. For example, the
+ following is equivalent to the pattern used above:
+
pattern='[[:space:]]*(a)?b'
[[ $line =~ $pattern ]]
- If you want to match a character that's special to the regular
- expression grammar, it has to be quoted to remove its special
- meaning. This means that in the pattern 'xxx.txt', the '.' matches
- any character in the string (its usual regular expression meaning),
- but in the pattern '"xxx.txt"' it can only match a literal '.'.
Shell programmers should take special care with backslashes, since
- backslashes are used both by the shell and regular expressions to
- remove the special meaning from the following character. The
- following two sets of commands are _not_ equivalent:
+ backslashes are used by both the shell and regular expressions to
+ remove the special meaning from the following character. This
+ means that after the shell's word expansions complete (*note Shell
+ Expansions::), any backslashes remaining in parts of the pattern
+ that were originally not quoted can remove the special meaning of
+ pattern characters. If any part of the pattern is quoted, the
+ shell does its best to ensure that the regular expression treats
+ those remaining backslashes as literal, if they appeared in a
+ quoted portion.
+
+ The following two sets of commands are _not_ equivalent:
+
pattern='\.'
[[ . =~ $pattern ]]
@@ -984,12 +1104,49 @@ File: bash.info, Node: Conditional Constructs, Next: Command Grouping, Prev:
The first two matches will succeed, but the second two will not,
because in the second two the backslash will be part of the pattern
- to be matched. In the first two examples, the backslash removes
- the special meaning from '.', so the literal '.' matches. If the
+ to be matched. In the first two examples, the pattern passed to
+ the regular expression parser is '\.'. The backslash removes the
+ special meaning from '.', so the literal '.' matches. In the
+ second two examples, the pattern passed to the regular expression
+ parser has the backslash quoted (e.g., '\\\.'), which will not
+ match the string, since it does not contain a backslash. If the
string in the first examples were anything other than '.', say 'a',
the pattern would not match, because the quoted '.' in the pattern
loses its special meaning of matching any single character.
+ Bracket expressions in regular expressions can be sources of errors
+ as well, since characters that are normally special in regular
+ expressions lose their special meanings between brackets. However,
+ you can use bracket expressions to match special pattern characters
+ without quoting them, so they are sometimes useful for this
+ purpose.
+
+ Though it might seem like a strange way to write it, the following
+ pattern will match a '.' in the string:
+
+ [[ . =~ [.] ]]
+
+ The shell performs any word expansions before passing the pattern
+ to the regular expression functions, so you can assume that the
+ shell's quoting takes precedence. As noted above, the regular
+ expression parser will interpret any unquoted backslashes remaining
+ in the pattern after shell expansion according to its own rules.
+ The intention is to avoid making shell programmers quote things
+ twice as much as possible, so shell quoting should be sufficient to
+ quote special pattern characters where that's necessary.
+
+ The array variable 'BASH_REMATCH' records which parts of the string
+ matched the pattern. The element of 'BASH_REMATCH' with index 0
+ contains the portion of the string matching the entire regular
+ expression. Substrings matched by parenthesized subexpressions
+ within the regular expression are saved in the remaining
+ 'BASH_REMATCH' indices. The element of 'BASH_REMATCH' with index N
+ is the portion of the string matching the Nth parenthesized
+ subexpression.
+
+ Bash sets 'BASH_REMATCH' in the global scope; declaring it as a
+ local variable will lead to unexpected results.
+
Expressions may be combined using the following operators, listed
in decreasing order of precedence:
@@ -1024,9 +1181,9 @@ list may be redirected to a single stream.
'()'
( LIST )
- Placing a list of commands between parentheses causes a subshell
- environment to be created (*note Command Execution Environment::),
- and each of the commands in LIST to be executed in that subshell.
+ Placing a list of commands between parentheses forces the shell to
+ create a subshell (*note Command Execution Environment::), and each
+ of the commands in LIST is executed in that subshell environment.
Since the LIST is executed in a subshell, variable assignments do
not remain in effect after the subshell completes.
@@ -1039,10 +1196,10 @@ list may be redirected to a single stream.
In addition to the creation of a subshell, there is a subtle
difference between these two constructs due to historical reasons. The
-braces are 'reserved words', so they must be separated from the LIST by
-'blank's or other shell metacharacters. The parentheses are
-'operators', and are recognized as separate tokens by the shell even if
-they are not separated from the LIST by whitespace.
+braces are reserved words, so they must be separated from the LIST by
+'blank's or other shell metacharacters. The parentheses are operators,
+and are recognized as separate tokens by the shell even if they are not
+separated from the LIST by whitespace.
The exit status of both of these constructs is the exit status of
LIST.
@@ -1058,29 +1215,51 @@ A coprocess is executed asynchronously in a subshell, as if the command
had been terminated with the '&' control operator, with a two-way pipe
established between the executing shell and the coprocess.
- The format for a coprocess is:
+ The syntax for a coprocess is:
+
coproc [NAME] COMMAND [REDIRECTIONS]
-This creates a coprocess named NAME. If NAME is not supplied, the
-default name is COPROC. NAME must not be supplied if COMMAND is a
-simple command (*note Simple Commands::); otherwise, it is interpreted
-as the first word of the simple command.
+This creates a coprocess named NAME. COMMAND may be either a simple
+command (*note Simple Commands::) or a compound command (*note Compound
+Commands::). NAME is a shell variable name. If NAME is not supplied,
+the default name is 'COPROC'.
+
+ The recommended form to use for a coprocess is
+
+ coproc NAME { COMMAND; }
+
+This form is recommended because simple commands result in the coprocess
+always being named 'COPROC', and it is simpler to use and more complete
+than the other compound commands.
+
+ There are other forms of coprocesses:
+
+ coproc NAME COMPOUND-COMMAND
+ coproc COMPOUND-COMMAND
+ coproc SIMPLE-COMMAND
+
+If COMMAND is a compound command, NAME is optional. The word following
+'coproc' determines whether that word is interpreted as a variable name:
+it is interpreted as NAME if it is not a reserved word that introduces a
+compound command. If COMMAND is a simple command, NAME is not allowed;
+this is to avoid confusion between NAME and the first word of the simple
+command.
When the coprocess is executed, the shell creates an array variable
-(*note Arrays::) named 'NAME' in the context of the executing shell.
-The standard output of COMMAND is connected via a pipe to a file
+(*note Arrays::) named NAME in the context of the executing shell. The
+standard output of COMMAND is connected via a pipe to a file descriptor
+in the executing shell, and that file descriptor is assigned to NAME[0].
+The standard input of COMMAND is connected via a pipe to a file
descriptor in the executing shell, and that file descriptor is assigned
-to 'NAME'[0]. The standard input of COMMAND is connected via a pipe to
-a file descriptor in the executing shell, and that file descriptor is
-assigned to 'NAME'[1]. This pipe is established before any redirections
-specified by the command (*note Redirections::). The file descriptors
-can be utilized as arguments to shell commands and redirections using
-standard word expansions. Other than those created to execute command
-and process substitutions, the file descriptors are not available in
+to NAME[1]. This pipe is established before any redirections specified
+by the command (*note Redirections::). The file descriptors can be
+utilized as arguments to shell commands and redirections using standard
+word expansions. Other than those created to execute command and
+process substitutions, the file descriptors are not available in
subshells.
The process ID of the shell spawned to execute the coprocess is
-available as the value of the variable 'NAME'_PID. The 'wait' builtin
+available as the value of the variable 'NAME_PID'. The 'wait' builtin
command may be used to wait for the coprocess to terminate.
Since the coprocess is created as an asynchronous command, the
@@ -1105,88 +1284,9 @@ line, different ways to specify the input source, and so on). Parallel
can replace 'xargs' or feed commands from its input sources to several
different instances of Bash.
- For a complete description, refer to the GNU Parallel documentation.
-A few examples should provide a brief introduction to its use.
-
- For example, it is easy to replace 'xargs' to gzip all html files in
-the current directory and its subdirectories:
- find . -type f -name '*.html' -print | parallel gzip
-If you need to protect special characters such as newlines in file
-names, use find's '-print0' option and parallel's '-0' option.
-
- You can use Parallel to move files from the current directory when
-the number of files is too large to process with one 'mv' invocation:
- printf '%s\n' * | parallel mv {} destdir
-
- As you can see, the {} is replaced with each line read from standard
-input. While using 'ls' will work in most instances, it is not
-sufficient to deal with all filenames. 'printf' is a shell builtin, and
-therefore is not subject to the kernel's limit on the number of
-arguments to a program, so you can use '*' (but see below about the
-'dotglob' shell option). If you need to accommodate special characters
-in filenames, you can use
-
- printf '%s\0' * | parallel -0 mv {} destdir
-
-as alluded to above.
-
- This will run as many 'mv' commands as there are files in the current
-directory. You can emulate a parallel 'xargs' by adding the '-X'
-option:
- printf '%s\0' * | parallel -0 -X mv {} destdir
-
- (You may have to modify the pattern if you have the 'dotglob' option
-enabled.)
-
- GNU Parallel can replace certain common idioms that operate on lines
-read from a file (in this case, filenames listed one per line):
- while IFS= read -r x; do
- do-something1 "$x" "config-$x"
- do-something2 < "$x"
- done < file | process-output
-
-with a more compact syntax reminiscent of lambdas:
- cat list | parallel "do-something1 {} config-{} ; do-something2 < {}" |
- process-output
-
- Parallel provides a built-in mechanism to remove filename extensions,
-which lends itself to batch file transformations or renaming:
- ls *.gz | parallel -j+0 "zcat {} | bzip2 >{.}.bz2 && rm {}"
-This will recompress all files in the current directory with names
-ending in .gz using bzip2, running one job per CPU (-j+0) in parallel.
-(We use 'ls' for brevity here; using 'find' as above is more robust in
-the face of filenames containing unexpected characters.) Parallel can
-take arguments from the command line; the above can also be written as
-
- parallel "zcat {} | bzip2 >{.}.bz2 && rm {}" ::: *.gz
-
- If a command generates output, you may want to preserve the input
-order in the output. For instance, the following command
- {
- echo foss.org.my ;
- echo debian.org ;
- echo freenetproject.org ;
- } | parallel traceroute
-will display as output the traceroute invocation that finishes first.
-Adding the '-k' option
- {
- echo foss.org.my ;
- echo debian.org ;
- echo freenetproject.org ;
- } | parallel -k traceroute
-will ensure that the output of 'traceroute foss.org.my' is displayed
-first.
-
- Finally, Parallel can be used to run a sequence of shell commands in
-parallel, similar to 'cat file | bash'. It is not uncommon to take a
-list of filenames, create a series of shell commands to operate on them,
-and feed that list of commands to a shell. Parallel can speed this up.
-Assuming that 'file' contains a list of shell commands, one per line,
-
- parallel -j 10 < file
-
-will evaluate the commands using the shell (since no explicit command is
-supplied as an argument), in blocks of ten shell jobs at a time.
+ For a complete description, refer to the GNU Parallel documentation,
+which is available at
+<https://www.gnu.org/software/parallel/parallel_tutorial.html>.

File: bash.info, Node: Shell Functions, Next: Shell Parameters, Prev: Shell Commands, Up: Basic Shell Features
@@ -1210,15 +1310,15 @@ new process is created to interpret them.
This defines a shell function named FNAME. The reserved word
'function' is optional. If the 'function' reserved word is supplied,
-the parentheses are optional. The BODY of the function is the compound
-command COMPOUND-COMMAND (*note Compound Commands::). That command is
-usually a LIST enclosed between { and }, but may be any compound command
-listed above, with one exception: If the 'function' reserved word is
-used, but the parentheses are not supplied, the braces are required.
+the parentheses are optional. The "body" of the function is the
+compound command COMPOUND-COMMAND (*note Compound Commands::). That
+command is usually a LIST enclosed between { and }, but may be any
+compound command listed above. If the 'function' reserved word is used,
+but the parentheses are not supplied, the braces are recommended.
COMPOUND-COMMAND is executed whenever FNAME is specified as the name of
-a command. When the shell is in POSIX mode (*note Bash POSIX Mode::),
-FNAME must be a valid shell NAME and may not be the same as one of the
-special builtins (*note Special Builtins::). In default mode, a
+a simple command. When the shell is in POSIX mode (*note Bash POSIX
+Mode::), FNAME must be a valid shell name and may not be the same as one
+of the special builtins (*note Special Builtins::). In default mode, a
function name can be any unquoted shell word that does not contain '$'.
Any redirections (*note Redirections::) associated with the shell
function are performed when the function is executed. A function
@@ -1271,9 +1371,17 @@ status; otherwise the function's return status is the exit status of the
last command executed before the 'return'.
Variables local to the function may be declared with the 'local'
-builtin. These variables are visible only to the function and the
-commands it invokes. This is particularly important when a shell
-function calls other functions.
+builtin ("local variables"). Ordinarily, variables and their values are
+shared between a function and its caller. These variables are visible
+only to the function and the commands it invokes. This is particularly
+important when a shell function calls other functions.
+
+ In the following description, the "current scope" is a currently-
+executing function. Previous scopes consist of that function's caller
+and so on, back to the "global" scope, where the shell is not executing
+any shell function. Consequently, a local variable at the current local
+scope is a variable declared using the 'local' or 'declare' builtins in
+the function that is currently executing.
Local variables "shadow" variables with the same name declared at
previous scopes. For instance, a local variable declared in a function
@@ -1281,7 +1389,7 @@ hides a global variable of the same name: references and assignments
refer to the local variable, leaving the global variable unmodified.
When the function returns, the global variable is once again visible.
- The shell uses DYNAMIC SCOPING to control a variable's visibility
+ The shell uses "dynamic scoping" to control a variable's visibility
within functions. With dynamic scoping, visible variables and their
values are a result of the sequence of function calls that caused
execution to reach the current function. The value of a variable that a
@@ -1290,10 +1398,10 @@ that caller is the "global" scope or another shell function. This is
also the value that a local variable declaration "shadows", and the
value that is restored when the function returns.
- For example, if a variable VAR is declared as local in function
-FUNC1, and FUNC1 calls another function FUNC2, references to VAR made
-from within FUNC2 will resolve to the local variable VAR from FUNC1,
-shadowing any global variable named VAR.
+ For example, if a variable 'var' is declared as local in function
+'func1', and 'func1' calls another function 'func2', references to 'var'
+made from within 'func2' will resolve to the local variable 'var' from
+'func1', shadowing any global variable named 'var'.
The following script demonstrates this behavior. When executed, the
script displays
@@ -1318,17 +1426,19 @@ script displays
variable is local to the current scope, 'unset' will unset it; otherwise
the unset will refer to the variable found in any calling scope as
described above. If a variable at the current local scope is unset, it
-will remain so until it is reset in that scope or until the function
-returns. Once the function returns, any instance of the variable at a
-previous scope will become visible. If the unset acts on a variable at
-a previous scope, any instance of a variable with that name that had
-been shadowed will become visible.
+will remain so (appearing as unset) until it is reset in that scope or
+until the function returns. Once the function returns, any instance of
+the variable at a previous scope will become visible. If the unset acts
+on a variable at a previous scope, any instance of a variable with that
+name that had been shadowed will become visible (see below how
+'localvar_unset'shell option changes this behavior).
Function names and definitions may be listed with the '-f' option to
the 'declare' ('typeset') builtin command (*note Bash Builtins::). The
'-F' option to 'declare' or 'typeset' will list the function names only
(and optionally the source file and line number, if the 'extdebug' shell
-option is enabled). Functions may be exported so that subshells
+option is enabled). Functions may be exported so that child shell
+processes (those created when executing a separate shell invocation)
automatically have them defined with the '-f' option to the 'export'
builtin (*note Bourne Shell Builtins::).
@@ -1348,11 +1458,12 @@ File: bash.info, Node: Shell Parameters, Next: Shell Expansions, Prev: Shell
* Positional Parameters:: The shell's command-line arguments.
* Special Parameters:: Parameters denoted by special characters.
-A PARAMETER is an entity that stores values. It can be a 'name', a
-number, or one of the special characters listed below. A VARIABLE is a
-parameter denoted by a 'name'. A variable has a VALUE and zero or more
-ATTRIBUTES. Attributes are assigned using the 'declare' builtin command
-(see the description of the 'declare' builtin in *note Bash Builtins::).
+A "parameter" is an entity that stores values. It can be a 'name', a
+number, or one of the special characters listed below. A "variable" is
+a parameter denoted by a 'name'. A variable has a 'value' and zero or
+more 'attributes'. Attributes are assigned using the 'declare' builtin
+command (see the description of the 'declare' builtin in *note Bash
+Builtins::).
A parameter is set if it has been assigned a value. The null string
is a valid value. Once a variable is set, it may be unset only by using
@@ -1362,24 +1473,23 @@ the 'unset' builtin command.
NAME=[VALUE]
If VALUE is not given, the variable is assigned the null string. All
VALUEs undergo tilde expansion, parameter and variable expansion,
-command substitution, arithmetic expansion, and quote removal (detailed
-below). If the variable has its 'integer' attribute set, then VALUE is
-evaluated as an arithmetic expression even if the '$((...))' expansion
-is not used (*note Arithmetic Expansion::). Word splitting is not
-performed, with the exception of '"$@"' as explained below. Filename
-expansion is not performed. Assignment statements may also appear as
-arguments to the 'alias', 'declare', 'typeset', 'export', 'readonly',
-and 'local' builtin commands (DECLARATION commands). When in POSIX mode
-(*note Bash POSIX Mode::), these builtins may appear in a command after
-one or more instances of the 'command' builtin and retain these
-assignment statement properties.
+command substitution, arithmetic expansion, and quote removal (*note
+Shell Parameter Expansion::). If the variable has its 'integer'
+attribute set, then VALUE is evaluated as an arithmetic expression even
+if the '$((...))' expansion is not used (*note Arithmetic Expansion::).
+Word splitting and filename expansion are not performed. Assignment
+statements may also appear as arguments to the 'alias', 'declare',
+'typeset', 'export', 'readonly', and 'local' builtin commands
+("declaration" commands). When in POSIX mode (*note Bash POSIX Mode::),
+these builtins may appear in a command after one or more instances of
+the 'command' builtin and retain these assignment statement properties.
In the context where an assignment statement is assigning a value to
a shell variable or array index (*note Arrays::), the '+=' operator can
be used to append to or add to the variable's previous value. This
includes arguments to builtin commands such as 'declare' that accept
-assignment statements (DECLARATION commands). When '+=' is applied to a
-variable for which the INTEGER attribute has been set, VALUE is
+assignment statements (declaration commands). When '+=' is applied to a
+variable for which the 'integer' attribute has been set, VALUE is
evaluated as an arithmetic expression and added to the variable's
current value, which is also evaluated. When '+=' is applied to an
array variable using compound assignment (*note Arrays::), the
@@ -1389,9 +1499,9 @@ maximum index (for indexed arrays), or added as additional key-value
pairs in an associative array. When applied to a string-valued
variable, VALUE is expanded and appended to the variable's value.
- A variable can be assigned the NAMEREF attribute using the '-n'
+ A variable can be assigned the 'nameref' attribute using the '-n'
option to the 'declare' or 'local' builtin commands (*note Bash
-Builtins::) to create a NAMEREF, or a reference to another variable.
+Builtins::) to create a "nameref", or a reference to another variable.
This allows variables to be manipulated indirectly. Whenever the
nameref variable is referenced, assigned to, unset, or has its
attributes modified (other than using or changing the nameref attribute
@@ -1401,9 +1511,9 @@ shell functions to refer to a variable whose name is passed as an
argument to the function. For instance, if a variable name is passed to
a shell function as its first argument, running
declare -n ref=$1
-inside the function creates a nameref variable REF whose value is the
+inside the function creates a nameref variable 'ref' whose value is the
variable name passed as the first argument. References and assignments
-to REF, and changes to its attributes, are treated as references,
+to 'ref', and changes to its attributes, are treated as references,
assignments, and attribute modifications to the variable whose name was
passed as '$1'.
@@ -1423,7 +1533,7 @@ File: bash.info, Node: Positional Parameters, Next: Special Parameters, Up: S
3.4.1 Positional Parameters
---------------------------
-A POSITIONAL PARAMETER is a parameter denoted by one or more digits,
+A "positional parameter" is a parameter denoted by one or more digits,
other than the single digit '0'. Positional parameters are assigned
from the shell's arguments when it is invoked, and may be reassigned
using the 'set' builtin command. Positional parameter 'N' may be
@@ -1488,9 +1598,8 @@ only be referenced; assignment to them is not allowed.
shell itself (such as the '-i' option).
'$'
- ($$) Expands to the process ID of the shell. In a '()' subshell,
- it expands to the process ID of the invoking shell, not the
- subshell.
+ ($$) Expands to the process ID of the shell. In a subshell, it
+ expands to the process ID of the invoking shell, not the subshell.
'!'
($!) Expands to the process ID of the job most recently placed
@@ -1544,13 +1653,13 @@ substitution (done in a left-to-right fashion); word splitting; and
filename expansion.
On systems that can support it, there is an additional expansion
-available: PROCESS SUBSTITUTION. This is performed at the same time as
-tilde, parameter, variable, and arithmetic expansion and command
+available: "process substitution". This is performed at the same time
+as tilde, parameter, variable, and arithmetic expansion and command
substitution.
After these expansions are performed, quote characters present in the
-original word are removed unless they have been quoted themselves (QUOTE
-REMOVAL).
+original word are removed unless they have been quoted themselves
+("quote removal").
Only brace expansion, word splitting, and filename expansion can
increase the number of words of the expansion; other expansions expand a
@@ -1568,7 +1677,7 @@ File: bash.info, Node: Brace Expansion, Next: Tilde Expansion, Up: Shell Expa
---------------------
Brace expansion is a mechanism by which arbitrary strings may be
-generated. This mechanism is similar to FILENAME EXPANSION (*note
+generated. This mechanism is similar to "filename expansion" (*note
Filename Expansion::), but the filenames generated need not exist.
Patterns to be brace expanded take the form of an optional PREAMBLE,
followed by either a series of comma-separated strings or a sequence
@@ -1583,17 +1692,17 @@ are not sorted; left to right order is preserved. For example,
ade ace abe
A sequence expression takes the form '{X..Y[..INCR]}', where X and Y
-are either integers or single characters, and INCR, an optional
-increment, is an integer. When integers are supplied, the expression
-expands to each number between X and Y, inclusive. Supplied integers
-may be prefixed with '0' to force each term to have the same width.
-When either X or Y begins with a zero, the shell attempts to force all
-generated terms to contain the same number of digits, zero-padding where
-necessary. When characters are supplied, the expression expands to each
-character lexicographically between X and Y, inclusive, using the
-default C locale. Note that both X and Y must be of the same type.
-When the increment is supplied, it is used as the difference between
-each term. The default increment is 1 or -1 as appropriate.
+are either integers or letters, and INCR, an optional increment, is an
+integer. When integers are supplied, the expression expands to each
+number between X and Y, inclusive. Supplied integers may be prefixed
+with '0' to force each term to have the same width. When either X or Y
+begins with a zero, the shell attempts to force all generated terms to
+contain the same number of digits, zero-padding where necessary. When
+letters are supplied, the expression expands to each character
+lexicographically between X and Y, inclusive, using the default C
+locale. Note that both X and Y must be of the same type (integer or
+letter). When the increment is supplied, it is used as the difference
+between each term. The default increment is 1 or -1 as appropriate.
Brace expansion is performed before any other expansions, and any
characters special to other expansions are preserved in the result. It
@@ -1623,9 +1732,9 @@ File: bash.info, Node: Tilde Expansion, Next: Shell Parameter Expansion, Prev
If a word begins with an unquoted tilde character ('~'), all of the
characters up to the first unquoted slash (or all characters, if there
-is no unquoted slash) are considered a TILDE-PREFIX. If none of the
+is no unquoted slash) are considered a "tilde-prefix". If none of the
characters in the tilde-prefix are quoted, the characters in the
-tilde-prefix following the tilde are treated as a possible LOGIN NAME.
+tilde-prefix following the tilde are treated as a possible "login name".
If this login name is the null string, the tilde is replaced with the
value of the 'HOME' shell variable. If 'HOME' is unset, the home
directory of the user executing the shell is substituted instead.
@@ -1681,7 +1790,7 @@ assigns the expanded value.
Bash also performs tilde expansion on words satisfying the conditions
of variable assignments (*note Shell Parameters::) when they appear as
arguments to simple commands. Bash does not do this, except for the
-DECLARATION commands listed above, when in POSIX mode.
+declaration commands listed above, when in POSIX mode.

File: bash.info, Node: Shell Parameter Expansion, Next: Command Substitution, Prev: Tilde Expansion, Up: Shell Expansions
@@ -1708,7 +1817,7 @@ parameter with more than one digit, or when PARAMETER is followed by a
character that is not to be interpreted as part of its name.
If the first character of PARAMETER is an exclamation point (!), and
-PARAMETER is not a NAMEREF, it introduces a level of indirection. Bash
+PARAMETER is not a nameref, it introduces a level of indirection. Bash
uses the value formed by expanding the rest of PARAMETER as the new
PARAMETER; this is then expanded and that value is used in the rest of
the expansion, rather than the expansion of the original PARAMETER.
@@ -1734,31 +1843,48 @@ omitted, the operator tests only for existence.
If PARAMETER is unset or null, the expansion of WORD is
substituted. Otherwise, the value of PARAMETER is substituted.
+ $ v=123
+ $ echo ${v-unset}
+ 123
+
'${PARAMETER:=WORD}'
If PARAMETER is unset or null, the expansion of WORD is assigned to
PARAMETER. The value of PARAMETER is then substituted. Positional
parameters and special parameters may not be assigned to in this
way.
+ $ var=
+ $ : ${var:=DEFAULT}
+ $ echo $var
+ DEFAULT
+
'${PARAMETER:?WORD}'
If PARAMETER is null or unset, the expansion of WORD (or a message
to that effect if WORD is not present) is written to the standard
error and the shell, if it is not interactive, exits. Otherwise,
the value of PARAMETER is substituted.
+ $ var=
+ $ : ${var:?var is unset or null}
+ bash: var: var is unset or null
+
'${PARAMETER:+WORD}'
If PARAMETER is null or unset, nothing is substituted, otherwise
the expansion of WORD is substituted.
+ $ var=123
+ $ echo ${var:+var is set and not null}
+ var is set and not null
+
'${PARAMETER:OFFSET}'
'${PARAMETER:OFFSET:LENGTH}'
This is referred to as Substring Expansion. It expands to up to
LENGTH characters of the value of PARAMETER starting at the
- character specified by OFFSET. If PARAMETER is '@', an indexed
- array subscripted by '@' or '*', or an associative array name, the
- results differ as described below. If LENGTH is omitted, it
- expands to the substring of the value of PARAMETER starting at the
- character specified by OFFSET and extending to the end of the
+ character specified by OFFSET. If PARAMETER is '@' or '*', an
+ indexed array subscripted by '@' or '*', or an associative array
+ name, the results differ as described below. If LENGTH is omitted,
+ it expands to the substring of the value of PARAMETER starting at
+ the character specified by OFFSET and extending to the end of the
value. LENGTH and OFFSET are arithmetic expressions (*note Shell
Arithmetic::).
@@ -1826,11 +1952,11 @@ omitted, the operator tests only for existence.
$ echo ${array[0]: -7:-2}
bcdef
- If PARAMETER is '@', the result is LENGTH positional parameters
- beginning at OFFSET. A negative OFFSET is taken relative to one
- greater than the greatest positional parameter, so an offset of -1
- evaluates to the last positional parameter. It is an expansion
- error if LENGTH evaluates to a number less than zero.
+ If PARAMETER is '@' or '*', the result is LENGTH positional
+ parameters beginning at OFFSET. A negative OFFSET is taken
+ relative to one greater than the greatest positional parameter, so
+ an offset of -1 evaluates to the last positional parameter. It is
+ an expansion error if LENGTH evaluates to a number less than zero.
The following examples illustrate substring expansion using
positional parameters:
@@ -1940,26 +2066,92 @@ omitted, the operator tests only for existence.
array in turn, and the expansion is the resultant list.
'${PARAMETER/PATTERN/STRING}'
-
+'${PARAMETER//PATTERN/STRING}'
+'${PARAMETER/#PATTERN/STRING}'
+'${PARAMETER/%PATTERN/STRING}'
The PATTERN is expanded to produce a pattern just as in filename
expansion. PARAMETER is expanded and the longest match of PATTERN
- against its value is replaced with STRING. The match is performed
- according to the rules described below (*note Pattern Matching::).
- If PATTERN begins with '/', all matches of PATTERN are replaced
- with STRING. Normally only the first match is replaced. If
- PATTERN begins with '#', it must match at the beginning of the
- expanded value of PARAMETER. If PATTERN begins with '%', it must
- match at the end of the expanded value of PARAMETER. If STRING is
- null, matches of PATTERN are deleted and the '/' following PATTERN
- may be omitted. If the 'nocasematch' shell option (see the
- description of 'shopt' in *note The Shopt Builtin::) is enabled,
- the match is performed without regard to the case of alphabetic
- characters. If PARAMETER is '@' or '*', the substitution operation
- is applied to each positional parameter in turn, and the expansion
- is the resultant list. If PARAMETER is an array variable
- subscripted with '@' or '*', the substitution operation is applied
- to each member of the array in turn, and the expansion is the
- resultant list.
+ against its value is replaced with STRING. STRING undergoes tilde
+ expansion, parameter and variable expansion, arithmetic expansion,
+ command and process substitution, and quote removal. The match is
+ performed according to the rules described below (*note Pattern
+ Matching::).
+
+ In the first form above, only the first match is replaced. If
+ there are two slashes separating PARAMETER and PATTERN (the second
+ form above), all matches of PATTERN are replaced with STRING. If
+ PATTERN is preceded by '#' (the third form above), it must match at
+ the beginning of the expanded value of PARAMETER. If PATTERN is
+ preceded by '%' (the fourth form above), it must match at the end
+ of the expanded value of PARAMETER. If the expansion of STRING is
+ null, matches of PATTERN are deleted. If STRING is null, matches
+ of PATTERN are deleted and the '/' following PATTERN may be
+ omitted.
+
+ If the 'patsub_replacement' shell option is enabled using 'shopt',
+ any unquoted instances of '&' in STRING are replaced with the
+ matching portion of PATTERN. This is intended to duplicate a
+ common 'sed' idiom.
+
+ Quoting any part of STRING inhibits replacement in the expansion of
+ the quoted portion, including replacement strings stored in shell
+ variables. Backslash will escape '&' in STRING; the backslash is
+ removed in order to permit a literal '&' in the replacement string.
+ Users should take care if STRING is double-quoted to avoid unwanted
+ interactions between the backslash and double-quoting, since
+ backslash has special meaning within double quotes. Pattern
+ substitution performs the check for unquoted '&' after expanding
+ STRING, so users should ensure to properly quote any occurrences of
+ '&' they want to be taken literally in the replacement and ensure
+ any instances of '&' they want to be replaced are unquoted.
+
+ For instance,
+
+ var=abcdef
+ rep='& '
+ echo ${var/abc/& }
+ echo "${var/abc/& }"
+ echo ${var/abc/$rep}
+ echo "${var/abc/$rep}"
+
+ will display four lines of "abc def", while
+
+ var=abcdef
+ rep='& '
+ echo ${var/abc/\& }
+ echo "${var/abc/\& }"
+ echo ${var/abc/"& "}
+ echo ${var/abc/"$rep"}
+
+ will display four lines of "& def". Like the pattern removal
+ operators, double quotes surrounding the replacement string quote
+ the expanded characters, while double quotes enclosing the entire
+ parameter substitution do not, since the expansion is performed in
+ a context that doesn't take any enclosing double quotes into
+ account.
+
+ Since backslash can escape '&', it can also escape a backslash in
+ the replacement string. This means that '\\' will insert a literal
+ backslash into the replacement, so these two 'echo' commands
+
+ var=abcdef
+ rep='\\&xyz'
+ echo ${var/abc/\\&xyz}
+ echo ${var/abc/$rep}
+
+ will both output '\abcxyzdef'.
+
+ It should rarely be necessary to enclose only STRING in double
+ quotes.
+
+ If the 'nocasematch' shell option (see the description of 'shopt'
+ in *note The Shopt Builtin::) is enabled, the match is performed
+ without regard to the case of alphabetic characters. If PARAMETER
+ is '@' or '*', the substitution operation is applied to each
+ positional parameter in turn, and the expansion is the resultant
+ list. If PARAMETER is an array variable subscripted with '@' or
+ '*', the substitution operation is applied to each member of the
+ array in turn, and the expansion is the resultant list.
'${PARAMETER^PATTERN}'
'${PARAMETER^^PATTERN}'
@@ -1970,18 +2162,22 @@ omitted, the operator tests only for existence.
filename expansion. Each character in the expanded value of
PARAMETER is tested against PATTERN, and, if it matches the
pattern, its case is converted. The pattern should not attempt to
- match more than one character. The '^' operator converts lowercase
- letters matching PATTERN to uppercase; the ',' operator converts
- matching uppercase letters to lowercase. The '^^' and ',,'
- expansions convert each matched character in the expanded value;
- the '^' and ',' expansions match and convert only the first
- character in the expanded value. If PATTERN is omitted, it is
- treated like a '?', which matches every character. If PARAMETER is
- '@' or '*', the case modification operation is applied to each
- positional parameter in turn, and the expansion is the resultant
- list. If PARAMETER is an array variable subscripted with '@' or
- '*', the case modification operation is applied to each member of
- the array in turn, and the expansion is the resultant list.
+ match more than one character.
+
+ The '^' operator converts lowercase letters matching PATTERN to
+ uppercase; the ',' operator converts matching uppercase letters to
+ lowercase. The '^^' and ',,' expansions convert each matched
+ character in the expanded value; the '^' and ',' expansions match
+ and convert only the first character in the expanded value. If
+ PATTERN is omitted, it is treated like a '?', which matches every
+ character.
+
+ If PARAMETER is '@' or '*', the case modification operation is
+ applied to each positional parameter in turn, and the expansion is
+ the resultant list. If PARAMETER is an array variable subscripted
+ with '@' or '*', the case modification operation is applied to each
+ member of the array in turn, and the expansion is the resultant
+ list.
'${PARAMETER@OPERATOR}'
The expansion is either a transformation of the value of PARAMETER
@@ -2021,6 +2217,10 @@ omitted, the operator tests only for existence.
'a'
The expansion is a string consisting of flag values
representing PARAMETER's attributes.
+ 'k'
+ Like the 'K' transformation, but expands the keys and values
+ of indexed and associative arrays to separate words after word
+ splitting.
If PARAMETER is '@' or '*', the operation is applied to each
positional parameter in turn, and the expansion is the resultant
@@ -2075,12 +2275,12 @@ is:
$(( EXPRESSION ))
- The expression is treated as if it were within double quotes, but a
-double quote inside the parentheses is not treated specially. All
-tokens in the expression undergo parameter and variable expansion,
-command substitution, and quote removal. The result is treated as the
-arithmetic expression to be evaluated. Arithmetic expansions may be
-nested.
+ The EXPRESSION undergoes the same expansions as if it were within
+double quotes, but double quote characters in EXPRESSION are not treated
+specially and are removed. All tokens in the expression undergo
+parameter and variable expansion, command substitution, and quote
+removal. The result is treated as the arithmetic expression to be
+evaluated. Arithmetic expansions may be nested.
The evaluation is performed according to the rules listed below
(*note Shell Arithmetic::). If the expression is invalid, Bash prints a
@@ -2175,9 +2375,12 @@ characters.
When a pattern is used for filename expansion, the character '.' at
the start of a filename or immediately following a slash must be matched
-explicitly, unless the shell option 'dotglob' is set. The filenames '.'
-and '..' must always be matched explicitly, even if 'dotglob' is set.
-In other cases, the '.' character is not treated specially.
+explicitly, unless the shell option 'dotglob' is set. In order to match
+the filenames '.' and '..', the pattern must begin with '.' (for
+example, '.?'), even if 'dotglob' is set. If the 'globskipdots' shell
+option is enabled, the filenames '.' and '..' are never matched, even if
+the pattern begins with a '.'. When not matching filenames, the '.'
+character is not treated specially.
When matching a filename, the slash character must always be matched
explicitly by a slash in the pattern, but in other matching contexts it
@@ -2185,8 +2388,8 @@ can be matched by a special pattern character as described below (*note
Pattern Matching::).
See the description of 'shopt' in *note The Shopt Builtin::, for a
-description of the 'nocaseglob', 'nullglob', 'failglob', and 'dotglob'
-options.
+description of the 'nocaseglob', 'nullglob', 'globskipdots', 'failglob',
+and 'dotglob' options.
The 'GLOBIGNORE' shell variable may be used to restrict the set of
file names matching a pattern. If 'GLOBIGNORE' is set, each matching
@@ -2232,20 +2435,21 @@ characters must be quoted if they are to be matched literally.
character not enclosed is matched. A '-' may be matched by
including it as the first or last character in the set. A ']' may
be matched by including it as the first character in the set. The
- sorting order of characters in range expressions is determined by
- the current locale and the values of the 'LC_COLLATE' and 'LC_ALL'
- shell variables, if set.
+ 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.
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 '[aBbCcDdxXyYz]', for
+ '[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.
- Within '[' and ']', CHARACTER CLASSES can be specified using the
+ Within '[' and ']', "character classes" can be specified using the
syntax '[:'CLASS':]', where CLASS is one of the following classes
defined in the POSIX standard:
alnum alpha ascii blank cntrl digit graph lower
@@ -2254,8 +2458,8 @@ characters must be quoted if they are to be matched literally.
The 'word' character class matches letters, digits, and the
character '_'.
- Within '[' and ']', an EQUIVALENCE CLASS can be specified using the
- syntax '[='C'=]', which matches all characters with the same
+ Within '[' and ']', an "equivalence class" can be specified using
+ the syntax '[='C'=]', which matches all characters with the same
collation weight (as defined by the current locale) as the
character C.
@@ -2263,10 +2467,12 @@ characters must be quoted if they are to be matched literally.
symbol SYMBOL.
If the 'extglob' shell option is enabled using the 'shopt' builtin,
-several extended pattern matching operators are recognized. In the
-following description, a PATTERN-LIST is a list of one or more patterns
-separated by a '|'. Composite patterns may be formed using one or more
-of the following sub-patterns:
+the shell recognizes several extended pattern matching operators. In
+the following description, a PATTERN-LIST is a list of one or more
+patterns separated by a '|'. When matching filenames, the 'dotglob'
+shell option determines the set of filenames that are tested, as
+described above. Composite patterns may be formed using one or more of
+the following sub-patterns:
'?(PATTERN-LIST)'
Matches zero or one occurrence of the given patterns.
@@ -2283,6 +2489,20 @@ of 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 '.'
+and '..' must be matched by a pattern or sub-pattern that begins with a
+dot; when it is disabled, the set does not include any filenames
+beginning with "." unless the pattern or sub-pattern begins with a '.'.
+As above, '.' only has a special meaning when matching filenames.
+
Complicated extended pattern matching against long strings is slow,
especially when the patterns contain alternations and the strings
contain multiple matches. Using separate matches against shorter
@@ -2305,8 +2525,8 @@ File: bash.info, Node: Redirections, Next: Executing Commands, Prev: Shell Ex
3.6 Redirections
================
-Before a command is executed, its input and output may be REDIRECTED
-using a special notation interpreted by the shell. Redirection allows
+Before a command is executed, its input and output may be "redirected"
+using a special notation interpreted by the shell. "Redirection" allows
commands' file handles to be duplicated, opened, closed, made to refer
to different files, and can change the files the command reads from and
writes to. Redirection may also be used to modify file handles in the
@@ -2322,7 +2542,8 @@ file descriptor greater than 10 and assign it to {VARNAME}. If >&- or
<&- is preceded by {VARNAME}, the value of VARNAME defines the file
descriptor to close. If {VARNAME} is supplied, the redirection persists
beyond the scope of the command, allowing the shell programmer to manage
-the file descriptor's lifetime manually.
+the file descriptor's lifetime manually. The 'varredir_close' shell
+option manages this behavior (*note The Shopt Builtin::).
In the following descriptions, if the file descriptor number is
omitted, and the first character of the redirection operator is '<', the
@@ -2584,11 +2805,13 @@ following order.
expansion, and quote removal before being assigned to the variable.
If no command name results, the variable assignments affect the
-current shell environment. Otherwise, the variables are added to the
-environment of the executed command and do not affect the current shell
-environment. If any of the assignments attempts to assign a value to a
-readonly variable, an error occurs, and the command exits with a
-non-zero status.
+current shell environment. In the case of such a command (one that
+consists only of assignment statements and redirections), assignment
+statements are performed before redirections. Otherwise, the variables
+are added to the environment of the executed command and do not affect
+the current shell environment. If any of the assignments attempts to
+assign a value to a readonly variable, an error occurs, and the command
+exits with a non-zero status.
If no command name results, redirections are performed, but do not
affect the current shell environment. A redirection error causes the
@@ -2642,8 +2865,8 @@ taken.
5. If this execution fails because the file is not in executable
format, and the file is not a directory, it is assumed to be a
- SHELL SCRIPT and the shell executes it as described in *note Shell
- Scripts::.
+ "shell script" and the shell executes it as described in *note
+ Shell Scripts::.
6. If the command was not begun asynchronously, the shell waits for
the command to complete and collects its exit status.
@@ -2654,7 +2877,8 @@ File: bash.info, Node: Command Execution Environment, Next: Environment, Prev
3.7.3 Command Execution Environment
-----------------------------------
-The shell has an EXECUTION ENVIRONMENT, which consists of the following:
+The shell has an "execution environment", which consists of the
+following:
* open files inherited by the shell at invocation, as modified by
redirections supplied to the 'exec' builtin
@@ -2705,6 +2929,8 @@ inherited from the shell.
A command invoked in this separate environment cannot affect the
shell's execution environment.
+ A "subshell" is a copy of the shell process.
+
Command substitution, commands grouped with parentheses, and
asynchronous commands are invoked in a subshell environment that is a
duplicate of the shell environment, except that traps caught by the
@@ -2729,12 +2955,12 @@ File: bash.info, Node: Environment, Next: Exit Status, Prev: Command Executio
-----------------
When a program is invoked it is given an array of strings called the
-ENVIRONMENT. This is a list of name-value pairs, of the form
+"environment". This is a list of name-value pairs, of the form
'name=value'.
Bash provides several ways to manipulate the environment. On
invocation, the shell scans its own environment and creates a parameter
-for each name found, automatically marking it for EXPORT to child
+for each name found, automatically marking it for 'export' to child
processes. Executed commands inherit the environment. The 'export' and
'declare -x' commands allow parameters and functions to be added to and
deleted from the environment. If the value of a parameter in the
@@ -2765,11 +2991,11 @@ File: bash.info, Node: Exit Status, Next: Signals, Prev: Environment, Up: Ex
-----------------
The exit status of an executed command is the value returned by the
-WAITPID system call or equivalent function. Exit statuses fall between
-0 and 255, though, as explained below, the shell may use values above
-125 specially. Exit statuses from shell builtins and compound commands
-are also limited to this range. Under certain circumstances, the shell
-will use special values to indicate specific failure modes.
+'waitpid' system call or equivalent function. Exit statuses fall
+between 0 and 255, though, as explained below, the shell may use values
+above 125 specially. Exit statuses from shell builtins and compound
+commands are also limited to this range. Under certain circumstances,
+the shell will use special values to indicate specific failure modes.
For the shell's purposes, a command which exits with a zero exit
status has succeeded. A non-zero exit status indicates failure. This
@@ -2795,6 +3021,9 @@ conditional and list constructs. All builtins return an exit status of
2 to indicate incorrect usage, generally invalid options or missing
arguments.
+ The exit status of the last command is available in the special
+parameter $? (*note Special Parameters::).
+

File: bash.info, Node: Signals, Prev: Exit Status, Up: Executing Commands
@@ -2835,6 +3064,33 @@ the 'wait' builtin, the reception of a signal for which a trap has been
set will cause the 'wait' builtin to return immediately with an exit
status greater than 128, immediately after which the trap is executed.
+ When job control is not enabled, and Bash is waiting for a foreground
+command to complete, the shell receives keyboard-generated signals such
+as 'SIGINT' (usually generated by '^C') that users commonly intend to
+send to that command. This happens because the shell and the command
+are in the same process group as the terminal, and '^C' sends 'SIGINT'
+to all processes in that process group. See *note Job Control::, for a
+more in-depth discussion of process groups.
+
+ When Bash is running without job control enabled and receives
+'SIGINT' while waiting for a foreground command, it waits until that
+foreground command terminates and then decides what to do about the
+'SIGINT':
+
+ 1. If the command terminates due to the 'SIGINT', Bash concludes that
+ the user meant to end the entire script, and acts on the 'SIGINT'
+ (e.g., by running a 'SIGINT' trap or exiting itself);
+
+ 2. If the pipeline does not terminate due to 'SIGINT', the program
+ handled the 'SIGINT' itself and did not treat it as a fatal signal.
+ In that case, Bash does not treat 'SIGINT' as a fatal signal,
+ either, instead assuming that the 'SIGINT' was used as part of the
+ program's normal operation (e.g., 'emacs' uses it to abort editing
+ commands) or deliberately discarded. However, Bash will run any
+ trap set on 'SIGINT', as it does with any other trapped signal it
+ receives while it is waiting for the foreground command to
+ complete, for compatibility.
+

File: bash.info, Node: Shell Scripts, Prev: Executing Commands, Up: Basic Shell Features
@@ -2857,8 +3113,8 @@ parameters are unset.
A shell script may be made executable by using the 'chmod' command to
turn on the execute bit. When Bash finds such a file while searching
-the '$PATH' for a command, it spawns a subshell to execute it. In other
-words, executing
+the '$PATH' for a command, it creates a new instance of itself to
+execute it. In other words, executing
filename ARGUMENTS
is equivalent to executing
bash filename ARGUMENTS
@@ -2962,19 +3218,20 @@ standard.
Read and execute commands from the FILENAME argument in the current
shell context. If FILENAME does not contain a slash, the 'PATH'
- variable is used to find FILENAME. When Bash is not in POSIX mode,
- the current directory is searched if FILENAME is not found in
- '$PATH'. If any ARGUMENTS are supplied, they become the positional
- parameters when FILENAME is executed. Otherwise the positional
- parameters are unchanged. If the '-T' option is enabled, 'source'
- inherits any trap on 'DEBUG'; if it is not, any 'DEBUG' trap string
- is saved and restored around the call to 'source', and 'source'
- unsets the 'DEBUG' trap while it executes. If '-T' is not set, and
- the sourced file changes the 'DEBUG' trap, the new value is
- retained when 'source' completes. The return status is the exit
- status of the last command executed, or zero if no commands are
- executed. If FILENAME is not found, or cannot be read, the return
- status is non-zero. This builtin is equivalent to 'source'.
+ variable is used to find FILENAME, but FILENAME does not need to be
+ executable. When Bash is not in POSIX mode, it searches the
+ current directory if FILENAME is not found in '$PATH'. If any
+ ARGUMENTS are supplied, they become the positional parameters when
+ FILENAME is executed. Otherwise the positional parameters are
+ unchanged. If the '-T' option is enabled, '.' inherits any trap on
+ 'DEBUG'; if it is not, any 'DEBUG' trap string is saved and
+ restored around the call to '.', and '.' unsets the 'DEBUG' trap
+ while it executes. If '-T' is not set, and the sourced file
+ changes the 'DEBUG' trap, the new value is retained when '.'
+ completes. The return status is the exit status of the last
+ command executed, or zero if no commands are executed. If FILENAME
+ is not found, or cannot be read, the return status is non-zero.
+ This builtin is equivalent to 'source'.
'break'
break [N]
@@ -2988,10 +3245,9 @@ standard.
cd [-L|[-P [-e]] [-@] [DIRECTORY]
Change the current working directory to DIRECTORY. If DIRECTORY is
- not supplied, the value of the 'HOME' shell variable is used. Any
- additional arguments following DIRECTORY are ignored. If the shell
- variable 'CDPATH' exists, it is used as a search path: each
- directory name in 'CDPATH' is searched for DIRECTORY, with
+ not supplied, the value of the 'HOME' shell variable is used. If
+ the shell variable 'CDPATH' exists, it is used as a search path:
+ each directory name in 'CDPATH' is searched for DIRECTORY, with
alternative directory names in 'CDPATH' separated by a colon (':').
If DIRECTORY begins with a slash, 'CDPATH' is not used.
@@ -3022,6 +3278,11 @@ standard.
absolute pathname of the new working directory is written to the
standard output.
+ If the directory change is successful, 'cd' sets the value of the
+ 'PWD' environment variable to the new directory name, and sets the
+ 'OLDPWD' environment variable to the value of the current working
+ directory before the change.
+
The return status is zero if the directory is successfully changed,
non-zero otherwise.
@@ -3073,7 +3334,7 @@ standard.
Mark each NAME to be passed to child processes in the environment.
If the '-f' option is supplied, the NAMEs refer to shell functions;
otherwise the names refer to shell variables. The '-n' option
- means to no longer mark each NAME for export. If no NAMES are
+ means to no longer mark each NAME for export. If no NAMEs are
supplied, or if the '-p' option is given, a list of names of all
exported variables is displayed. The '-p' option displays output
in a form that may be reused as input. If a variable name is
@@ -3277,10 +3538,16 @@ standard.
4. Otherwise, the expression is false.
4 arguments
- If the first argument is '!', the result is the negation of
- the three-argument expression composed of the remaining
- arguments. Otherwise, the expression is parsed and evaluated
- according to precedence using the rules listed above.
+ The following conditions are applied in the order listed.
+
+ 1. If the first argument is '!', the result is the negation
+ of the three-argument expression composed of the
+ remaining arguments.
+ 2. If the first argument is exactly '(' and the fourth
+ argument is exactly ')', the result is the two-argument
+ test of the second and third arguments.
+ 3. Otherwise, the expression is parsed and evaluated
+ according to precedence using the rules listed above.
5 or more arguments
The expression is parsed and evaluated according to precedence
@@ -3369,7 +3636,7 @@ standard.
given, each NAME refers to a shell variable and that variable is
removed. If the '-f' option is given, the NAMEs refer to shell
functions, and the function definition is removed. If the '-n'
- option is supplied, and NAME is a variable with the NAMEREF
+ option is supplied, and NAME is a variable with the 'nameref'
attribute, NAME will be unset rather than the variable it
references. '-n' has no effect if the '-f' option is supplied. If
no options are supplied, each NAME refers to a variable; if there
@@ -3377,7 +3644,8 @@ standard.
unset. Readonly variables and functions may not be unset. Some
shell variables lose their special behavior if they are unset; such
behavior is noted in the description of the individual variables.
- The return status is zero unless a NAME is readonly.
+ The return status is zero unless a NAME is readonly or may not be
+ unset.

File: bash.info, Node: Bash Builtins, Next: Modifying Shell Behavior, Prev: Bourne Shell Builtins, Up: Shell Builtin Commands
@@ -3406,6 +3674,7 @@ standard.
bind [-m KEYMAP] -x KEYSEQ:SHELL-COMMAND
bind [-m KEYMAP] KEYSEQ:FUNCTION-NAME
bind [-m KEYMAP] KEYSEQ:READLINE-COMMAND
+ bind READLINE-COMMAND-LINE
Display current Readline (*note Command Line Editing::) key and
function bindings, bind a key sequence to a Readline function or
@@ -3470,10 +3739,13 @@ standard.
'READLINE_LINE' variable to the contents of the Readline line
buffer and the 'READLINE_POINT' and 'READLINE_MARK' variables
to the current location of the insertion point and the saved
- insertion point (the MARK), respectively. If the executed
- command changes the value of any of 'READLINE_LINE',
- 'READLINE_POINT', or 'READLINE_MARK', those new values will be
- reflected in the editing state.
+ insertion point (the MARK), respectively. The shell assigns
+ any numeric argument the user supplied to the
+ 'READLINE_ARGUMENT' variable. If there was no argument, that
+ variable is not set. If the executed command changes the
+ value of any of 'READLINE_LINE', 'READLINE_POINT', or
+ 'READLINE_MARK', those new values will be reflected in the
+ editing state.
'-X'
List all key sequences bound to shell commands and the
@@ -3556,7 +3828,7 @@ standard.
It is ignored in all other cases.
The '-I' option causes local variables to inherit the attributes
- (except the NAMEREF attribute) and value of any existing variable
+ (except the 'nameref' attribute) and value of any existing variable
with the same NAME at a surrounding scope. If there is no existing
variable, the local variable is initially unset.
@@ -3583,7 +3855,7 @@ standard.
attribute is disabled.
'-n'
- Give each NAME the NAMEREF attribute, making it a name
+ Give each NAME the 'nameref' attribute, making it a name
reference to another variable. That other variable is defined
by the value of NAME. All references, assignments, and
attribute modifications to NAME, except for those using or
@@ -3626,7 +3898,7 @@ standard.
attempt is made to assign a value to a readonly variable, an
attempt is made to assign a value to an array variable without
using the compound assignment syntax (*note Arrays::), one of the
- NAMES is not a valid shell variable name, an attempt is made to
+ NAMEs 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 '-f'.
@@ -3699,13 +3971,20 @@ standard.
The '-f' option means to load the new builtin command NAME from
shared object FILENAME, on systems that support dynamic loading.
- The '-d' option will delete a builtin loaded with '-f'.
+ Bash will use the value of the 'BASH_LOADABLES_PATH' variable as a
+ colon-separated list of directories in which to search for
+ FILENAME. The default is system-dependent. The '-d' option will
+ delete a builtin loaded with '-f'.
If there are no options, a list of the shell builtins is displayed.
The '-s' option restricts 'enable' to the POSIX special builtins.
If '-s' is used with '-f', the new builtin becomes a special
builtin (*note Special Builtins::).
+ If no options are supplied and a NAME is not a shell builtin,
+ 'enable' will attempt to load NAME from a shared object named NAME,
+ as if the command were 'enable -f NAME NAME'.
+
The return status is zero unless a NAME is not a shell builtin or
there is an error loading a new builtin from a shared object.
@@ -3826,6 +4105,9 @@ standard.
'%q'
Causes 'printf' to output the corresponding ARGUMENT in a
format that can be reused as shell input.
+ '%Q'
+ like '%q', but applies any supplied precision to the ARGUMENT
+ before quoting it.
'%(DATEFMT)T'
Causes 'printf' to output the date-time string resulting from
using DATEFMT as a format string for 'strftime'(3). The
@@ -3934,8 +4216,9 @@ standard.
partial input read into the specified variable NAME. If
TIMEOUT is 0, 'read' returns immediately, without trying to
read any data. The exit status is 0 if input is available on
- the specified file descriptor, non-zero otherwise. The exit
- status is greater than 128 if the timeout is exceeded.
+ the specified file descriptor, or the read will return EOF,
+ non-zero otherwise. The exit status is greater than 128 if
+ the timeout is exceeded.
'-u FD'
Read input from file descriptor FD.
@@ -3991,7 +4274,7 @@ standard.
If the '-f' option is used, 'type' does not attempt to find shell
functions, as with the 'command' builtin.
- The return status is zero if all of the NAMES are found, non-zero
+ The return status is zero if all of the NAMEs are found, non-zero
if any are not found.
'typeset'
@@ -4135,8 +4418,8 @@ allows you to change the values of shell options and set the positional
parameters, or to display the names and values of shell variables.
'set'
- set [--abefhkmnptuvxBCEHPT] [-o OPTION-NAME] [ARGUMENT ...]
- set [+abefhkmnptuvxBCEHPT] [+o OPTION-NAME] [ARGUMENT ...]
+ set [-abefhkmnptuvxBCEHPT] [-o OPTION-NAME] [--] [-] [ARGUMENT ...]
+ set [+abefhkmnptuvxBCEHPT] [+o OPTION-NAME] [--] [-] [ARGUMENT ...]
If no options or arguments are supplied, 'set' displays the names
and values of all shell variables and functions, sorted according
@@ -4317,14 +4600,19 @@ parameters, or to display the names and values of shell variables.
causes the effective user and group ids to be set to the real
user and group ids.
+ '-r'
+ Enable restricted shell mode. This option cannot be unset
+ once it has been set.
+
'-t'
Exit after reading and executing one command.
'-u'
Treat unset variables and parameters other than the special
- parameters '@' or '*' as an error when performing parameter
- expansion. An error message will be written to the standard
- error, and a non-interactive shell will exit.
+ parameters '@' or '*', or array variables subscripted with '@'
+ or '*', as an error when performing parameter expansion. An
+ error message will be written to the standard error, and a
+ non-interactive shell will exit.
'-v'
Print shell input lines as they are read.
@@ -4421,7 +4709,7 @@ This builtin allows you to change additional shell optional behavior.
option is used, those available with the '-o' option to the 'set'
builtin command (*note The Set Builtin::). With no options, or
with the '-p' option, a list of all settable options is displayed,
- with an indication of whether or not each is set; if OPTNAMES are
+ with an indication of whether or not each is set; if OPTNAMEs are
supplied, the output is restricted to those options. The '-p'
option causes output to be displayed in a form that may be reused
as input. Other options have the following meanings:
@@ -4435,7 +4723,7 @@ This builtin allows you to change additional shell optional behavior.
'-q'
Suppresses normal output; the return status indicates whether
the OPTNAME is set or unset. If multiple OPTNAME arguments
- are given with '-q', the return status is zero if all OPTNAMES
+ are given with '-q', the return status is zero if all OPTNAMEs
are enabled; non-zero otherwise.
'-o'
@@ -4448,7 +4736,7 @@ This builtin allows you to change additional shell optional behavior.
Unless otherwise noted, the 'shopt' options are disabled (off) by
default.
- The return status when listing options is zero if all OPTNAMES are
+ The return status when listing options is zero if all OPTNAMEs are
enabled, non-zero otherwise. When setting or unsetting options,
the return status is zero unless an OPTNAME is not a valid shell
option.
@@ -4532,7 +4820,7 @@ This builtin allows you to change additional shell optional behavior.
'direxpand'
If set, Bash replaces directory names with the results of word
expansion when performing filename completion. This changes
- the contents of the readline editing buffer. If not set, Bash
+ the contents of the Readline editing buffer. If not set, Bash
attempts to preserve what the user typed.
'dirspell'
@@ -4616,6 +4904,11 @@ This builtin allows you to change additional shell optional behavior.
upper-case and lower-case ASCII characters will collate
together.
+ 'globskipdots'
+ If set, filename expansion will never match the filenames '.'
+ and '..', even if the pattern begins with a '.'. This option
+ is enabled by default.
+
'globstar'
If set, the pattern '**' used in a filename expansion context
will match all files and zero or more directories and
@@ -4675,7 +4968,7 @@ This builtin allows you to change additional shell optional behavior.
'localvar_inherit'
If set, local variables inherit the value and attributes of a
variable of the same name that exists at a previous scope
- before any new value is assigned. The NAMEREF attribute is
+ before any new value is assigned. The 'nameref' attribute is
not inherited.
'localvar_unset'
@@ -4706,14 +4999,26 @@ This builtin allows you to change additional shell optional behavior.
'nocasematch'
If set, Bash matches patterns in a case-insensitive fashion
when performing matching while executing 'case' or '[['
- conditional commands, when performing pattern substitution
- word expansions, or when filtering possible completions as
- part of programmable completion.
+ conditional commands (*note Conditional Constructs::, when
+ performing pattern substitution word expansions, or when
+ filtering possible completions as part of programmable
+ completion.
+
+ 'noexpand_translation'
+ If set, Bash encloses the translated results of $"..."
+ quoting in single quotes instead of double quotes. If the
+ string is not translated, this has no effect.
'nullglob'
If set, Bash allows filename patterns which match no files to
expand to a null string, rather than themselves.
+ 'patsub_replacement'
+ If set, Bash expands occurrences of '&' in the replacement
+ string of pattern substitution to the text matched by the
+ pattern, as described above (*note Shell Parameter
+ Expansion::). This option is enabled by default.
+
'progcomp'
If set, the programmable completion facilities (*note
Programmable Completion::) are enabled. This option is
@@ -4745,9 +5050,15 @@ This builtin allows you to change additional shell optional behavior.
parameters.
'sourcepath'
- If set, the 'source' builtin uses the value of 'PATH' to find
- the directory containing the file supplied as an argument.
- This option is enabled by default.
+ If set, the '.' ('source') builtin uses the value of 'PATH' to
+ find the directory containing the file supplied as an
+ argument. This option is enabled by default.
+
+ 'varredir_close'
+ If set, the shell automatically closes file descriptors
+ assigned using the '{varname}' redirection syntax (*note
+ Redirections::) instead of leaving them open when the command
+ completes.
'xpg_echo'
If set, the 'echo' builtin expands backslash-escape sequences
@@ -4980,7 +5291,7 @@ Variables::).
'BASH_LINENO'
An array variable whose members are the line numbers in source
- files where each corresponding member of FUNCNAME was invoked.
+ files where each corresponding member of 'FUNCNAME' was invoked.
'${BASH_LINENO[$i]}' is the line number in the source file
('${BASH_SOURCE[$i+1]}') where '${FUNCNAME[$i]}' was called (or
'${BASH_LINENO[$i-1]}' if referenced within another shell
@@ -5017,10 +5328,10 @@ Variables::).
to the array members are as follows:
'BASH_VERSINFO[0]'
- The major version number (the RELEASE).
+ The major version number (the "release").
'BASH_VERSINFO[1]'
- The minor version number (the VERSION).
+ The minor version number (the "version").
'BASH_VERSINFO[2]'
The patch level.
@@ -5029,7 +5340,7 @@ Variables::).
The build version.
'BASH_VERSINFO[4]'
- The release status (e.g., BETA1).
+ The release status (e.g., 'beta1').
'BASH_VERSINFO[5]'
The value of 'MACHTYPE'.
@@ -5082,12 +5393,12 @@ Variables::).
'COMP_TYPE'
Set to an integer value corresponding to the type of completion
- attempted that caused a completion function to be called: TAB, for
- normal completion, '?', for listing completions after successive
- tabs, '!', for listing alternatives on partial word completion,
- '@', to list completions if the word is not unmodified, or '%', for
- menu completion. This variable is available only in shell
- functions and external commands invoked by the programmable
+ attempted that caused a completion function to be called: <TAB>,
+ for normal completion, '?', for listing completions after
+ successive tabs, '!', for listing alternatives on partial word
+ completion, '@', to list completions if the word is not unmodified,
+ or '%', for menu completion. This variable is available only in
+ shell functions and external commands invoked by the programmable
completion facilities (*note Programmable Completion::).
'COMP_KEY'
@@ -5133,7 +5444,7 @@ Variables::).
Emacs shell buffer and disables line editing.
'ENV'
- Expanded and executed similarlty to 'BASH_ENV' (*note Bash Startup
+ Expanded and executed similarly to 'BASH_ENV' (*note Bash Startup
Files::) when an interactive shell is invoked in POSIX Mode (*note
Bash POSIX Mode::).
@@ -5141,16 +5452,16 @@ Variables::).
Each time this parameter is referenced, it expands to the number of
seconds since the Unix Epoch as a floating point value with
micro-second granularity (see the documentation for the C library
- function TIME for the definition of Epoch). Assignments to
+ function 'time' for the definition of Epoch). Assignments to
'EPOCHREALTIME' are ignored. If 'EPOCHREALTIME' is unset, it loses
its special properties, even if it is subsequently reset.
'EPOCHSECONDS'
Each time this parameter is referenced, it expands to the number of
seconds since the Unix Epoch (see the documentation for the C
- library function TIME for the definition of Epoch). Assignments to
- 'EPOCHSECONDS' are ignored. If 'EPOCHSECONDS' is unset, it loses
- its special properties, even if it is subsequently reset.
+ library function 'time' for the definition of Epoch). Assignments
+ to 'EPOCHSECONDS' are ignored. If 'EPOCHSECONDS' is unset, it
+ loses its special properties, even if it is subsequently reset.
'EUID'
The numeric effective user id of the current user. This variable
@@ -5217,7 +5528,7 @@ Variables::).
'histchars'
Up to three characters which control history expansion, quick
substitution, and tokenization (*note History Interaction::). The
- first character is the HISTORY EXPANSION character, that is, the
+ first character is the "history expansion" character, that is, the
character which signifies the start of a history expansion,
normally '!'. The second character is the character which
signifies 'quick substitution' when seen as the first character on
@@ -5295,7 +5606,7 @@ Variables::).
'HISTTIMEFORMAT'
If this variable is set and not null, its value is used as a format
- string for STRFTIME to print the time stamp associated with each
+ string for 'strftime' to print the time stamp associated with each
history entry displayed by the 'history' builtin. If this variable
is set, time stamps are written to the history file so they may be
preserved across shell sessions. This uses the history comment
@@ -5449,7 +5760,7 @@ Variables::).
with '#? '
'PS4'
- The value of this parameter is expanded like PS1 and the expanded
+ The value of this parameter is expanded like 'PS1' and the expanded
value is the prompt printed before the command line is echoed when
the '-x' option is set (*note The Set Builtin::). The first
character of the expanded value is replicated multiple times, as
@@ -5465,15 +5776,19 @@ Variables::).
seeds the random number generator. If 'RANDOM' is unset, it loses
its special properties, even if it is subsequently reset.
+'READLINE_ARGUMENT'
+ Any numeric argument given to a Readline command that was defined
+ using 'bind -x' (*note Bash Builtins:: when it was invoked.
+
'READLINE_LINE'
The contents of the Readline line buffer, for use with 'bind -x'
(*note Bash Builtins::).
'READLINE_MARK'
- The position of the MARK (saved insertion point) in the Readline
+ The position of the "mark" (saved insertion point) in the Readline
line buffer, for use with 'bind -x' (*note Bash Builtins::). The
characters between the insertion point and the mark are often
- called the REGION.
+ called the "region".
'READLINE_POINT'
The position of the insertion point in the Readline line buffer,
@@ -5487,7 +5802,7 @@ Variables::).
started. Assignment to this variable resets the count to the value
assigned, and the expanded value becomes the value assigned plus
the number of seconds since the assignment. The number of seconds
- at shell invocation and the current time is always determined by
+ at shell invocation and the current time are always determined by
querying the system clock. If 'SECONDS' is unset, it loses its
special properties, even if it is subsequently reset.
@@ -5843,14 +6158,15 @@ Invoked by remote shell daemon
..............................
Bash attempts to determine when it is being run with its standard input
-connected to a network connection, as when executed by the remote shell
-daemon, usually 'rshd', or the secure shell daemon 'sshd'. If Bash
-determines it is being run in this fashion, it reads and executes
-commands from '~/.bashrc', if that file exists and is readable. It will
-not do this if invoked as 'sh'. The '--norc' option may be used to
-inhibit this behavior, and the '--rcfile' option may be used to force
-another file to be read, but neither 'rshd' nor 'sshd' generally invoke
-the shell with those options or allow them to be specified.
+connected to a network connection, as when executed by the historical
+remote shell daemon, usually 'rshd', or the secure shell daemon 'sshd'.
+If Bash determines it is being run non-interactively in this fashion, it
+reads and executes commands from '~/.bashrc', if that file exists and is
+readable. It will not do this if invoked as 'sh'. The '--norc' option
+may be used to inhibit this behavior, and the '--rcfile' option may be
+used to force another file to be read, but neither 'rshd' nor 'sshd'
+generally invoke the shell with those options or allow them to be
+specified.
Invoked with unequal effective and real UID/GIDs
................................................
@@ -5874,7 +6190,7 @@ File: bash.info, Node: Interactive Shells, Next: Bash Conditional Expressions,
* What is an Interactive Shell?:: What determines whether a shell is Interactive.
* Is this Shell Interactive?:: How to tell if a shell is interactive.
-* Interactive Shell Behavior:: What changes in a interactive shell?
+* Interactive Shell Behavior:: What changes in an interactive shell?

File: bash.info, Node: What is an Interactive Shell?, Next: Is this Shell Interactive?, Up: Interactive Shells
@@ -5882,8 +6198,8 @@ File: bash.info, Node: What is an Interactive Shell?, Next: Is this Shell Inte
6.3.1 What is an Interactive Shell?
-----------------------------------
-An interactive shell is one started without non-option arguments, unless
-'-s' is specified, without specifying the '-c' option, and whose input
+An interactive shell is one started without non-option arguments (unless
+'-s' is specified) and without specifying the '-c' option, whose input
and error output are both connected to terminals (as determined by
'isatty(3)'), or one started with the '-i' option.
@@ -5941,7 +6257,7 @@ several ways.
string escape sequences.
4. Bash executes the values of the set elements of the
- 'PROMPT_COMMANDS' array variable as commands before printing the
+ 'PROMPT_COMMAND' array variable as commands before printing the
primary prompt, '$PS1' (*note Bash Variables::).
5. Readline (*note Command Line Editing::) is used to read commands
@@ -5993,9 +6309,11 @@ several ways.
19. Parser syntax errors will not cause the shell to exit.
- 20. Simple spelling correction for directory arguments to the 'cd'
- builtin is enabled by default (see the description of the 'cdspell'
- option to the 'shopt' builtin in *note The Shopt Builtin::).
+ 20. If the 'cdspell' shell option is enabled, the shell will attempt
+ simple spelling correction for directory arguments to the 'cd'
+ builtin (see the description of the 'cdspell' option to the 'shopt'
+ builtin in *note The Shopt Builtin::). The 'cdspell' option is
+ only effective in interactive shells.
21. The shell will check the value of the 'TMOUT' variable and exit if
a command is not read within the specified number of seconds after
@@ -6007,10 +6325,11 @@ File: bash.info, Node: Bash Conditional Expressions, Next: Shell Arithmetic,
6.4 Bash Conditional Expressions
================================
-Conditional expressions are used by the '[[' compound command and the
-'test' and '[' builtin commands. The 'test' and '[' commands determine
-their behavior based on the number of arguments; see the descriptions of
-those commands for any other command-specific actions.
+Conditional expressions are used by the '[[' compound command (*note
+Conditional Constructs::) and the 'test' and '[' builtin commands (*note
+Bourne Shell Builtins::). The 'test' and '[' commands determine their
+behavior based on the number of arguments; see the descriptions of those
+commands for any other command-specific actions.
Expressions may be unary or binary, and are formed from the following
primaries. Unary expressions are often used to examine the status of a
@@ -6228,8 +6547,8 @@ parameter expansion syntax. A shell variable that is null or unset
evaluates to 0 when referenced by name without using the parameter
expansion syntax. The value of a variable is evaluated as an arithmetic
expression when it is referenced, or when a variable which has been
-given the INTEGER attribute using 'declare -i' is assigned a value. A
-null value evaluates to 0. A shell variable need not have its INTEGER
+given the 'integer' attribute using 'declare -i' is assigned a value. A
+null value evaluates to 0. A shell variable need not have its 'integer'
attribute turned on to be used in an expression.
Integer constants follow the C language definition, without suffixes
@@ -6254,7 +6573,7 @@ File: bash.info, Node: Aliases, Next: Arrays, Prev: Shell Arithmetic, Up: Ba
6.6 Aliases
===========
-ALIASES allow a string to be substituted for a word when it is used as
+"Aliases" allow a string to be substituted for a word when it is used as
the first word of a simple command. The shell maintains a list of
aliases that may be set and unset with the 'alias' and 'unalias' builtin
commands.
@@ -6269,15 +6588,15 @@ is tested for aliases, but a word that is identical to an alias being
expanded is not expanded a second time. This means that one may alias
'ls' to '"ls -F"', for instance, and Bash does not try to recursively
expand the replacement text. If the last character of the alias value
-is a BLANK, then the next command word following the alias is also
+is a 'blank', then the next command word following the alias is also
checked for alias expansion.
Aliases are created and listed with the 'alias' command, and removed
with the 'unalias' command.
There is no mechanism for using arguments in the replacement text, as
-in 'csh'. If arguments are needed, a shell function should be used
-(*note Shell Functions::).
+in 'csh'. If arguments are needed, use a shell function (*note Shell
+Functions::).
Aliases are not expanded when the shell is not interactive, unless
the 'expand_aliases' shell option is set using 'shopt' (*note The Shopt
@@ -6363,6 +6682,10 @@ negative number, that number is interpreted as relative to one greater
than the maximum index of NAME, so negative indices count back from the
end of the array, and an index of -1 references the last element.
+ The '+=' operator will append to an array variable when assigning
+using the compound assignment syntax; see *note Shell Parameters::
+above.
+
Any element of an array may be referenced using '${NAME[SUBSCRIPT]}'.
The braces are required to avoid conflicts with the shell's filename
expansion operators. If the SUBSCRIPT is '@' or '*', the word expands
@@ -6402,7 +6725,11 @@ NAME[SUBSCRIPT]' destroys the array element at index SUBSCRIPT.
Negative subscripts to indexed arrays are interpreted as described
above. Unsetting the last element of an array variable does not unset
the variable. 'unset NAME', where NAME is an array, removes the entire
-array. A subscript of '*' or '@' also removes the entire array.
+array. 'unset NAME[SUBSCRIPT]' behaves differently depending on the
+array type when given a subscript of '*' or '@'. When NAME is an
+associative array, it removes the element with key '*' or '@'. If NAME
+is an indexed array, 'unset' removes all of the elements, but does not
+remove the array itself.
When using a variable name with a subscript as an argument to a
command, such as with 'unset', without using the word expansion syntax
@@ -6477,10 +6804,14 @@ File: bash.info, Node: Directory Stack Builtins, Up: The Directory Stack
'popd'
popd [-n] [+N | -N]
+ Removes elements from the directory stack. The elements are
+ numbered from 0 starting at the first directory listed by 'dirs';
+ that is, 'popd' is equivalent to 'popd +0'.
+
When no arguments are given, 'popd' removes the top directory from
- the stack and performs a 'cd' to the new top directory. The
- elements are numbered from 0 starting at the first directory listed
- with 'dirs'; that is, 'popd' is equivalent to 'popd +0'.
+ the stack and changes to the new top directory.
+
+ Arguments, if supplied, have the following meanings:
'-n'
Suppresses the normal change of directory when removing
@@ -6488,17 +6819,32 @@ File: bash.info, Node: Directory Stack Builtins, Up: The Directory Stack
manipulated.
'+N'
Removes the Nth directory (counting from the left of the list
- printed by 'dirs'), starting with zero.
+ printed by 'dirs'), starting with zero, from the stack.
'-N'
Removes the Nth directory (counting from the right of the list
- printed by 'dirs'), starting with zero.
+ printed by 'dirs'), starting with zero, from the stack.
+
+ If the top element of the directory stack is modified, and the '-n'
+ option was not supplied, 'popd' uses the 'cd' builtin to change to
+ the directory at the top of the stack. If the 'cd' fails, 'popd'
+ returns a non-zero value.
+
+ Otherwise, 'popd' returns an unsuccessful status if an invalid
+ option is encountered, the directory stack is empty, or a
+ non-existent directory stack entry is specified.
+
+ If the 'popd' command is successful, Bash runs 'dirs' to show the
+ final contents of the directory stack, and the return status is 0.
'pushd'
pushd [-n] [+N | -N | DIR]
- Save the current directory on the top of the directory stack and
- then 'cd' to DIR. With no arguments, 'pushd' exchanges the top two
- directories and makes the new top the current directory.
+ Adds a directory to the top of the directory stack, or rotates the
+ stack, making the new top of the stack the current working
+ directory. With no arguments, 'pushd' exchanges the top two
+ elements of the directory stack.
+
+ Arguments, if supplied, have the following meanings:
'-n'
Suppresses the normal change of directory when rotating or
@@ -6513,9 +6859,20 @@ File: bash.info, Node: Directory Stack Builtins, Up: The Directory Stack
printed by 'dirs', starting with zero) to the top of the list
by rotating the stack.
'DIR'
- Makes DIR be the top of the stack, making it the new current
- directory as if it had been supplied as an argument to the
- 'cd' builtin.
+ Makes DIR be the top of the stack.
+
+ After the stack has been modified, if the '-n' option was not
+ supplied, 'pushd' uses the 'cd' builtin to change to the directory
+ at the top of the stack. If the 'cd' fails, 'pushd' returns a
+ non-zero value.
+
+ Otherwise, if no arguments are supplied, 'pushd' returns 0 unless
+ the directory stack is empty. When rotating the directory stack,
+ 'pushd' returns 0 unless the directory stack is empty or a
+ non-existent directory stack element is specified.
+
+ If the 'pushd' command is successful, Bash runs 'dirs' to show the
+ final contents of the directory stack.

File: bash.info, Node: Controlling the Prompt, Next: The Restricted Shell, Prev: The Directory Stack, Up: Bash Features
@@ -6523,9 +6880,9 @@ File: bash.info, Node: Controlling the Prompt, Next: The Restricted Shell, Pr
6.9 Controlling the Prompt
==========================
-Bash examines the value of the array variable 'PROMPT_COMMANDS' just
+Bash examines the value of the array variable 'PROMPT_COMMAND' just
before printing each primary prompt. If any elements in
-'PROMPT_COMMANDS' are set and non-null, Bash executes each value, in
+'PROMPT_COMMAND' are set and non-null, Bash executes each value, in
numeric order, just as if it had been typed on the command line.
In addition, the following table describes the special characters
@@ -6571,8 +6928,8 @@ which can appear in the prompt variables 'PS0', 'PS1', 'PS2', and 'PS4':
'\V'
The release of Bash, version + patchlevel (e.g., 2.00.0)
'\w'
- The current working directory, with '$HOME' abbreviated with a
- tilde (uses the '$PROMPT_DIRTRIM' variable).
+ The value of the 'PWD' shell variable ('$PWD'), with '$HOME'
+ abbreviated with a tilde (uses the '$PROMPT_DIRTRIM' variable).
'\W'
The basename of '$PWD', with '$HOME' abbreviated with a tilde.
'\!'
@@ -6638,7 +6995,8 @@ with the exception that the following are disallowed or not performed:
* Using the 'enable' builtin command to enable disabled shell
builtins.
* Specifying the '-p' option to the 'command' builtin.
- * Turning off restricted mode with 'set +r' or 'set +o restricted'.
+ * Turning off restricted mode with 'set +r' or 'shopt -u
+ restricted_shell'.
These restrictions are enforced after any startup files are read.
@@ -6649,11 +7007,11 @@ spawned to execute the script.
The restricted shell mode is only one component of a useful
restricted environment. It should be accompanied by setting 'PATH' to a
value that allows execution of only a few verified commands (commands
-that allow shell escapes are particularly vulnerable), leaving the user
-in a non-writable directory other than his home directory after login,
-not allowing the restricted shell to execute shell scripts, and cleaning
-the environment of variables that cause some commands to modify their
-behavior (e.g., 'VISUAL' or 'PAGER').
+that allow shell escapes are particularly vulnerable), changing the
+current directory to a non-writable directory other than '$HOME' after
+login, not allowing the restricted shell to execute shell scripts, and
+cleaning the environment of variables that cause some commands to modify
+their behavior (e.g., 'VISUAL' or 'PAGER').
Modern systems provide more secure ways to implement a restricted
environment, such as 'jails', 'zones', or 'containers'.
@@ -6696,203 +7054,219 @@ startup files.
7. Reserved words appearing in a context where reserved words are
recognized do not undergo alias expansion.
- 8. The POSIX 'PS1' and 'PS2' expansions of '!' to the history number
+ 8. Alias expansion is performed when initially parsing a command
+ substitution. The default mode generally defers it, when enabled,
+ until the command substitution is executed. This means that
+ command substitution will not expand aliases that are defined after
+ the command substitution is initially parsed (e.g., as part of a
+ function definition).
+
+ 9. The POSIX 'PS1' and 'PS2' expansions of '!' to the history number
and '!!' to '!' are enabled, and parameter expansion is performed
on the values of 'PS1' and 'PS2' regardless of the setting of the
'promptvars' option.
- 9. The POSIX startup files are executed ('$ENV') rather than the
+ 10. The POSIX startup files are executed ('$ENV') rather than the
normal Bash files.
- 10. Tilde expansion is only performed on assignments preceding a
+ 11. Tilde expansion is only performed on assignments preceding a
command name, rather than on all assignment statements on the line.
- 11. The default history file is '~/.sh_history' (this is the default
+ 12. The default history file is '~/.sh_history' (this is the default
value of '$HISTFILE').
- 12. Redirection operators do not perform filename expansion on the
+ 13. Redirection operators do not perform filename expansion on the
word in the redirection unless the shell is interactive.
- 13. Redirection operators do not perform word splitting on the word in
+ 14. Redirection operators do not perform word splitting on the word in
the redirection.
- 14. Function names must be valid shell 'name's. That is, they may not
+ 15. Function names must be valid shell 'name's. That is, they may not
contain characters other than letters, digits, and underscores, and
may not start with a digit. Declaring a function with an invalid
name causes a fatal syntax error in non-interactive shells.
- 15. Function names may not be the same as one of the POSIX special
+ 16. Function names may not be the same as one of the POSIX special
builtins.
- 16. POSIX special builtins are found before shell functions during
+ 17. POSIX special builtins are found before shell functions during
command lookup.
- 17. When printing shell function definitions (e.g., by 'type'), Bash
+ 18. When printing shell function definitions (e.g., by 'type'), Bash
does not print the 'function' keyword.
- 18. Literal tildes that appear as the first character in elements of
+ 19. Literal tildes that appear as the first character in elements of
the 'PATH' variable are not expanded as described above under *note
Tilde Expansion::.
- 19. The 'time' reserved word may be used by itself as a command. When
+ 20. The 'time' reserved word may be used by itself as a command. When
used in this way, it displays timing statistics for the shell and
its completed children. The 'TIMEFORMAT' variable controls the
format of the timing information.
- 20. When parsing and expanding a ${...} expansion that appears within
+ 21. When parsing and expanding a ${...} expansion that appears within
double quotes, single quotes are no longer special and cannot be
used to quote a closing brace or other special character, unless
the operator is one of those defined to perform pattern removal.
In this case, they do not have to appear as matched pairs.
- 21. The parser does not recognize 'time' as a reserved word if the
+ 22. The parser does not recognize 'time' as a reserved word if the
next token begins with a '-'.
- 22. The '!' character does not introduce history expansion within a
+ 23. The '!' character does not introduce history expansion within a
double-quoted string, even if the 'histexpand' option is enabled.
- 23. If a POSIX special builtin returns an error status, a
+ 24. If a POSIX special builtin returns an error status, a
non-interactive shell exits. The fatal errors are those listed in
the POSIX standard, and include things like passing incorrect
options, redirection errors, variable assignment errors for
assignments preceding the command name, and so on.
- 24. A non-interactive shell exits with an error status if a variable
+ 25. A non-interactive shell exits with an error status if a variable
assignment error occurs when no command name follows the assignment
statements. A variable assignment error occurs, for example, when
trying to assign a value to a readonly variable.
- 25. A non-interactive shell exits with an error status if a variable
+ 26. A non-interactive shell exits with an error status if a variable
assignment error occurs in an assignment statement preceding a
- special builtin, but not with any other simple command.
+ special builtin, but not with any other simple command. For any
+ other simple command, the shell aborts execution of that command,
+ and execution continues at the top level ("the shell shall not
+ perform any further processing of the command in which the error
+ occurred").
- 26. A non-interactive shell exits with an error status if the
+ 27. A non-interactive shell exits with an error status if the
iteration variable in a 'for' statement or the selection variable
in a 'select' statement is a readonly variable.
- 27. Non-interactive shells exit if FILENAME in '.' FILENAME is not
+ 28. Non-interactive shells exit if FILENAME in '.' FILENAME is not
found.
- 28. Non-interactive shells exit if a syntax error in an arithmetic
+ 29. Non-interactive shells exit if a syntax error in an arithmetic
expansion results in an invalid expression.
- 29. Non-interactive shells exit if a parameter expansion error occurs.
+ 30. Non-interactive shells exit if a parameter expansion error occurs.
- 30. Non-interactive shells exit if there is a syntax error in a script
+ 31. Non-interactive shells exit if there is a syntax error in a script
read with the '.' or 'source' builtins, or in a string processed by
the 'eval' builtin.
- 31. While variable indirection is available, it may not be applied to
+ 32. While variable indirection is available, it may not be applied to
the '#' and '?' special parameters.
- 32. When expanding the '*' special parameter in a pattern context
- where the expansion is double-quoted does not treat the '$*' as if
- it were double-quoted.
+ 33. Expanding the '*' special parameter in a pattern context where the
+ expansion is double-quoted does not treat the '$*' as if it were
+ double-quoted.
- 33. Assignment statements preceding POSIX special builtins persist in
+ 34. Assignment statements preceding POSIX special builtins persist in
the shell environment after the builtin completes.
- 34. The 'command' builtin does not prevent builtins that take
+ 35. The 'command' builtin does not prevent builtins that take
assignment statements as arguments from expanding them as
assignment statements; when not in POSIX mode, assignment builtins
lose their assignment statement expansion properties when preceded
by 'command'.
- 35. The 'bg' builtin uses the required format to describe each job
+ 36. The 'bg' builtin uses the required format to describe each job
placed in the background, which does not include an indication of
whether the job is the current or previous job.
- 36. The output of 'kill -l' prints all the signal names on a single
+ 37. The output of 'kill -l' prints all the signal names on a single
line, separated by spaces, without the 'SIG' prefix.
- 37. The 'kill' builtin does not accept signal names with a 'SIG'
+ 38. The 'kill' builtin does not accept signal names with a 'SIG'
prefix.
- 38. The 'export' and 'readonly' builtin commands display their output
+ 39. The 'export' and 'readonly' builtin commands display their output
in the format required by POSIX.
- 39. The 'trap' builtin displays signal names without the leading
+ 40. The 'trap' builtin displays signal names without the leading
'SIG'.
- 40. The 'trap' builtin doesn't check the first argument for a possible
+ 41. The 'trap' builtin doesn't check the first argument for a possible
signal specification and revert the signal handling to the original
disposition if it is, unless that argument consists solely of
digits and is a valid signal number. If users want to reset the
handler for a given signal to the original disposition, they should
use '-' as the first argument.
- 41. 'trap -p' displays signals whose dispositions are set to SIG_DFL
+ 42. 'trap -p' displays signals whose dispositions are set to SIG_DFL
and those that were ignored when the shell started.
- 42. The '.' and 'source' builtins do not search the current directory
+ 43. The '.' and 'source' builtins do not search the current directory
for the filename argument if it is not found by searching 'PATH'.
- 43. Enabling POSIX mode has the effect of setting the
+ 44. Enabling POSIX mode has the effect of setting the
'inherit_errexit' option, so subshells spawned to execute command
substitutions inherit the value of the '-e' option from the parent
shell. When the 'inherit_errexit' option is not enabled, Bash
clears the '-e' option in such subshells.
- 44. Enabling POSIX mode has the effect of setting the 'shift_verbose'
+ 45. Enabling POSIX mode has the effect of setting the 'shift_verbose'
option, so numeric arguments to 'shift' that exceed the number of
positional parameters will result in an error message.
- 45. When the 'alias' builtin displays alias definitions, it does not
+ 46. When the 'alias' builtin displays alias definitions, it does not
display them with a leading 'alias ' unless the '-p' option is
supplied.
- 46. When the 'set' builtin is invoked without options, it does not
+ 47. When the 'set' builtin is invoked without options, it does not
display shell function names and definitions.
- 47. When the 'set' builtin is invoked without options, it displays
+ 48. When the 'set' builtin is invoked without options, it displays
variable values without quotes, unless they contain shell
metacharacters, even if the result contains nonprinting characters.
- 48. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname
+ 49. When the 'cd' builtin is invoked in logical mode, and the pathname
constructed from '$PWD' and the directory name supplied as an
argument does not refer to an existing directory, 'cd' will fail
- instead of falling back to PHYSICAL mode.
+ instead of falling back to physical mode.
- 49. When the 'cd' builtin cannot change a directory because the length
+ 50. When the 'cd' builtin cannot change a directory because the length
of the pathname constructed from '$PWD' and the directory name
- supplied as an argument exceeds PATH_MAX when all symbolic links
+ supplied as an argument exceeds 'PATH_MAX' when all symbolic links
are expanded, 'cd' will fail instead of attempting to use only the
supplied directory name.
- 50. The 'pwd' builtin verifies that the value it prints is the same as
+ 51. The 'pwd' builtin verifies that the value it prints is the same as
the current directory, even if it is not asked to check the file
system with the '-P' option.
- 51. When listing the history, the 'fc' builtin does not include an
+ 52. When listing the history, the 'fc' builtin does not include an
indication of whether or not a history entry has been modified.
- 52. The default editor used by 'fc' is 'ed'.
+ 53. The default editor used by 'fc' is 'ed'.
- 53. The 'type' and 'command' builtins will not report a non-executable
+ 54. The 'type' and 'command' builtins will not report a non-executable
file as having been found, though the shell will attempt to execute
such a file if it is the only so-named file found in '$PATH'.
- 54. The 'vi' editing mode will invoke the 'vi' editor directly when
+ 55. The 'vi' editing mode will invoke the 'vi' editor directly when
the 'v' command is run, instead of checking '$VISUAL' and
'$EDITOR'.
- 55. When the 'xpg_echo' option is enabled, Bash does not attempt to
+ 56. When the 'xpg_echo' option is enabled, Bash does not attempt to
interpret any arguments to 'echo' as options. Each argument is
displayed, after escape characters are converted.
- 56. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
+ 57. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
and '-f' options.
- 57. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
+ 58. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
interrupt the 'wait' builtin and cause it to return immediately.
The trap command is run once for each child that exits.
- 58. The 'read' builtin may be interrupted by a signal for which a trap
+ 59. The 'read' builtin may be interrupted by a signal for which a trap
has been set. If Bash receives a trapped signal while executing
'read', the trap handler executes and 'read' returns an exit status
greater than 128.
- 59. Bash removes an exited background process's status from the list
+ 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.
+
+ 61. Bash removes an exited background process's status from the list
of such statuses after the 'wait' builtin is used to obtain it.
There is other POSIX behavior that Bash does not implement by default
@@ -6915,7 +7289,7 @@ File: bash.info, Node: Shell Compatibility Mode, Prev: Bash POSIX Mode, Up: B
6.12 Shell Compatibility Mode
=============================
-Bash-4.0 introduced the concept of a 'shell compatibility level',
+Bash-4.0 introduced the concept of a "shell compatibility level",
specified as a set of options to the shopt builtin ('compat31',
'compat32', 'compat40', 'compat41', and so on). There is only one
current compatibility level - each option is mutually exclusive. The
@@ -6927,7 +7301,7 @@ be a temporary solution.
This section does not mention behavior that is standard for a
particular version (e.g., setting 'compat32' 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).
+word, which is default behavior in bash-3.2 and subsequent versions).
If a user enables, say, 'compat32', it may affect the behavior of
other compatibility levels up to and including the current compatibility
@@ -7004,8 +7378,8 @@ required for bash-5.1 and later versions.
'compat43'
* the shell does not print a warning message if an attempt is
made to use a quoted compound assignment as an argument to
- declare (declare -a foo='(1 2)'). Later versions warn that
- this usage is deprecated
+ declare (e.g., declare -a foo='(1 2)'). Later versions warn
+ that this usage is deprecated
* word expansion errors are considered non-fatal errors that
cause the current command to fail, even in posix mode (the
default behavior is to make them fatal errors that cause the
@@ -7040,6 +7414,38 @@ required for bash-5.1 and later versions.
when producing output that can be reused as input. Bash-5.1
suppresses that message when the '-l' option is supplied.
+'compat51 (set using BASH_COMPAT)'
+ * The 'unset' builtin will unset the array 'a' given an argument
+ like 'a[@]'. Bash-5.2 will unset an element with key '@'
+ (associative arrays) or remove all the elements without
+ unsetting the array (indexed arrays)
+ * arithmetic commands ( ((...)) ) and the expressions in an
+ arithmetic for statement can be expanded more than once
+ * expressions used as arguments to arithmetic operators in the
+ '[[' conditional command can be expanded more than once
+ * the expressions in substring parameter brace expansion can be
+ expanded more than once
+ * the expressions in the $(( ... )) word expansion can be
+ expanded more than once
+ * arithmetic expressions used as indexed array subscripts can be
+ expanded more than once
+ * 'test -v', when given an argument of 'A[@]', where A is an
+ existing associative array, will return true if the array has
+ any set elements. Bash-5.2 will look for and report on a key
+ named '@'
+ * the ${PARAMETER[:]=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.
+ * 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
@@ -7093,19 +7499,19 @@ when 'stty tostop' is in effect) the terminal are sent a 'SIGTTIN'
caught, suspends the process.
If the operating system on which Bash is running supports job
-control, Bash contains facilities to use it. Typing the SUSPEND
+control, Bash contains facilities to use it. Typing the "suspend"
character (typically '^Z', Control-Z) while a process is running causes
that process to be stopped and returns control to Bash. Typing the
-DELAYED SUSPEND character (typically '^Y', Control-Y) causes the process
-to be stopped when it attempts to read input from the terminal, and
-control to be returned to Bash. The user then manipulates the state of
-this job, using the 'bg' command to continue it in the background, the
-'fg' command to continue it in the foreground, or the 'kill' command to
-kill it. A '^Z' takes effect immediately, and has the additional side
-effect of causing pending output and typeahead to be discarded.
+"delayed suspend" character (typically '^Y', Control-Y) causes the
+process to be stopped when it attempts to read input from the terminal,
+and control to be returned to Bash. The user then manipulates the state
+of this job, using the 'bg' command to continue it in the background,
+the 'fg' command to continue it in the foreground, or the 'kill' command
+to kill it. A '^Z' takes effect immediately, and has the additional
+side effect of causing pending output and typeahead to be discarded.
There are a number of ways to refer to a job in the shell. The
-character '%' introduces a job specification (JOBSPEC).
+character '%' introduces a job specification ("jobspec").
Job number 'n' may be referred to as '%n'. The symbols '%%' and '%+'
refer to the shell's notion of the current job, which is the last job
@@ -7234,7 +7640,7 @@ File: bash.info, Node: Job Control Builtins, Next: Job Control Variables, Pre
for all running background jobs and the last-executed process
substitution, if its process id is the same as $!, and the return
status is zero. If the '-n' option is supplied, 'wait' waits for a
- single job from the list of PIDS or JOBSPECS or, if no arguments
+ single job from the list of PIDs or JOBSPECs or, if no arguments
are supplied, any job, to complete and returns its exit status. If
none of the supplied arguments is a child of the shell, or if no
arguments are supplied and the shell has no unwaited-for children,
@@ -7245,9 +7651,12 @@ 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.
+ shell, the return status is 127. If 'wait' is interrupted by a
+ signal, the return status will be greater than 128, as described
+ above (*note Signals::). Otherwise, the return status is the exit
+ status of the last process or job waited for.
'disown'
disown [-ar] [-h] [JOBSPEC ... | PID ... ]
@@ -7265,8 +7674,11 @@ File: bash.info, Node: Job Control Builtins, Next: Job Control Variables, Pre
suspend [-f]
Suspend the execution of this shell until it receives a 'SIGCONT'
- signal. A login shell cannot be suspended; the '-f' option can be
- used to override this and force the suspension.
+ signal. A login shell, or a shell without job control enabled,
+ cannot be suspended; the '-f' 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 '-f' is not
+ supplied.
When job control is not active, the 'kill' and 'wait' builtins do not
accept JOBSPEC arguments. They must be supplied process IDs.
@@ -7427,9 +7839,9 @@ Printing characters
Undo the last editing command. You can undo all the way back to an
empty line.
-(Depending on your configuration, the <Backspace> key be set to delete
-the character to the left of the cursor and the <DEL> key set to delete
-the character underneath the cursor, like 'C-d', rather than the
+(Depending on your configuration, the <Backspace> key might be set to
+delete the character to the left of the cursor and the <DEL> key set to
+delete the character underneath the cursor, like 'C-d', rather than the
character to the left of the cursor.)

@@ -7491,9 +7903,9 @@ available to be yanked back later, when you are typing another line.
as those used by 'M-f'.
'M-<DEL>'
- Kill from the cursor the start of the current word, or, if between
- words, to the start of the previous word. Word boundaries are the
- same as those used by 'M-b'.
+ Kill from the cursor to the start of the current word, or, if
+ between words, to the start of the previous word. Word boundaries
+ are the same as those used by 'M-b'.
'C-w'
Kill from the cursor to the previous whitespace. This is different
@@ -7582,7 +7994,7 @@ File: bash.info, Node: Readline Init File, Next: Bindable Readline Commands,
Although the Readline library comes with a set of Emacs-like keybindings
installed by default, it is possible to use a different set of
keybindings. Any user can customize programs that use Readline by
-putting commands in an "inputrc" file, conventionally in his home
+putting commands in an "inputrc" file, conventionally in their home
directory. The name of this file is taken from the value of the shell
variable 'INPUTRC'. If that variable is unset, the default is
'~/.inputrc'. If that file does not exist or cannot be read, the
@@ -7641,6 +8053,32 @@ Variable Settings
A great deal of run-time behavior is changeable with the following
variables.
+ 'active-region-start-color'
+ A string variable that controls the text color and background
+ when displaying the text in the active region (see the
+ description of 'enable-active-region' below). This string
+ must not take up any physical character positions on the
+ display, so it should consist only of terminal escape
+ sequences. It is output to the terminal before displaying the
+ text in the active region. This variable is reset to the
+ default value whenever the terminal type changes. The default
+ value is the string that puts the terminal in standout mode,
+ as obtained from the terminal's terminfo description. A
+ sample value might be '\e[01;33m'.
+
+ 'active-region-end-color'
+ A string variable that "undoes" the effects of
+ 'active-region-start-color' and restores "normal" terminal
+ display appearance after displaying text in the active region.
+ This string must not take up any physical character positions
+ on the display, so it should consist only of terminal escape
+ sequences. It is output to the terminal after displaying the
+ text in the active region. This variable is reset to the
+ default value whenever the terminal type changes. The default
+ value is the string that restores the terminal from standout
+ mode, as obtained from the terminal's terminfo description. A
+ sample value might be '\e[0m'.
+
'bell-style'
Controls what happens when Readline wants to ring the terminal
bell. If set to 'none', Readline never rings the bell. If
@@ -7662,7 +8100,10 @@ Variable Settings
If set to 'on', when listing completions, Readline displays
the common prefix of the set of possible completions using a
different color. The color definitions are taken from the
- value of the 'LS_COLORS' environment variable. The default is
+ value of the 'LS_COLORS' environment variable. If there is a
+ color definition in 'LS_COLORS' for the custom suffix
+ 'readline-colored-completion-prefix', Readline uses this color
+ for the common prefix instead of its default. The default is
'off'.
'colored-stats'
@@ -7708,8 +8149,9 @@ Variable Settings
than or equal to this value, Readline will ask whether or not
the user wishes to view them; otherwise, they are simply
listed. This variable must be set to an integer value greater
- than or equal to 0. A negative value means Readline should
- never ask. The default limit is '100'.
+ than or equal to zero. A zero value means Readline should
+ never ask; negative values are treated as zero. The default
+ limit is '100'.
'convert-meta'
If set to 'on', Readline will convert characters with the
@@ -7717,7 +8159,9 @@ Variable Settings
eighth bit and prefixing an <ESC> character, converting them
to a meta-prefixed key sequence. The default value is 'on',
but will be set to 'off' if the locale is one that contains
- eight-bit characters.
+ eight-bit characters. This variable is dependent on the
+ 'LC_CTYPE' locale category, and may change if the locale is
+ changed.
'disable-completion'
If set to 'On', Readline will inhibit word completion.
@@ -7726,7 +8170,7 @@ Variable Settings
'echo-control-characters'
When set to 'on', on operating systems that indicate they
- support it, readline echoes a character corresponding to a
+ support it, Readline echoes a character corresponding to a
signal generated from the keyboard. The default is 'on'.
'editing-mode'
@@ -7745,13 +8189,27 @@ Variable Settings
non-printing characters, which can be used to embed a terminal
control sequence into the mode string. The default is '@'.
+ 'enable-active-region'
+ The "point" is the current cursor position, and "mark" refers
+ to a saved cursor position (*note Commands For Moving::). The
+ text between the point and mark is referred to as the
+ "region". When this variable is set to 'On', Readline allows
+ certain commands to designate the region as "active". When
+ the region is active, Readline highlights the text in the
+ region using the value of the 'active-region-start-color',
+ which defaults to the string that enables the terminal's
+ standout mode. The active region shows the text inserted by
+ bracketed-paste and any matching text found by incremental and
+ non-incremental history searches. The default is 'On'.
+
'enable-bracketed-paste'
- When set to 'On', Readline will configure the terminal in a
- way that will enable it to insert each paste into the editing
- buffer as a single string of characters, instead of treating
- each character as if it had been read from the keyboard. This
- can prevent pasted characters from being interpreted as
- editing commands. The default is 'On'.
+ When set to 'On', Readline configures the terminal to insert
+ each paste into the editing buffer as a single string of
+ characters, instead of treating each character as if it had
+ been read from the keyboard. This is called putting the
+ terminal into "bracketed paste mode"; it prevents Readline
+ from executing any editing commands bound to key sequences
+ appearing in the pasted text. The default is 'On'.
'enable-keypad'
When set to 'on', Readline will try to enable the application
@@ -7798,7 +8256,9 @@ Variable Settings
regardless of what the terminal claims it can support. The
default value is 'off', but Readline will set it to 'on' if
the locale contains eight-bit characters. The name
- 'meta-flag' is a synonym for this variable.
+ 'meta-flag' is a synonym for this variable. This variable is
+ dependent on the 'LC_CTYPE' locale category, and may change if
+ the locale is changed.
'isearch-terminators'
The string of characters that should terminate an incremental
@@ -7863,7 +8323,9 @@ Variable Settings
If set to 'on', Readline will display characters with the
eighth bit set directly rather than as a meta-prefixed escape
sequence. The default is 'off', but Readline will set it to
- 'on' if the locale contains eight-bit characters.
+ 'on' if the locale contains eight-bit characters. This
+ variable is dependent on the 'LC_CTYPE' locale category, and
+ may change if the locale is changed.
'page-completions'
If set to 'on', Readline uses an internal 'more'-like pager to
@@ -7879,7 +8341,8 @@ Variable Settings
If set to 'on', Readline will undo all changes to history
lines before returning when 'accept-line' is executed. By
default, history lines may be modified and retain individual
- undo lists across calls to 'readline'. The default is 'off'.
+ undo lists across calls to 'readline()'. The default is
+ 'off'.
'show-all-if-ambiguous'
This alters the default behavior of the completion functions.
@@ -7906,7 +8369,7 @@ Variable Settings
If set to 'on', this alters the default completion behavior
when inserting a single match into the line. It's only active
when performing completion in the middle of a word. If
- enabled, readline does not insert characters from the
+ enabled, Readline does not insert characters from the
completion that match characters after point in the word being
completed, so portions of the word following the cursor are
not duplicated. For instance, if this is enabled, attempting
@@ -7956,11 +8419,11 @@ Key Bindings
part of the key name. The name of the key can be expressed in
different ways, depending on what you find most comfortable.
- In addition to command names, readline allows keys to be bound to a
+ In addition to command names, Readline allows keys to be bound to a
string that is inserted when the key is pressed (a MACRO).
The 'bind -p' command displays Readline function names and bindings
- in a format that can put directly into an initialization file.
+ in a format that can be put directly into an initialization file.
*Note Bash Builtins::.
KEYNAME: FUNCTION-NAME or MACRO
@@ -8438,6 +8901,11 @@ File: bash.info, Node: Commands For History, Next: Commands For Text, Prev: C
supplied, specifies the history entry to use instead of the current
line.
+'fetch-history ()'
+ With a numeric argument, fetch that entry from the history list and
+ make it the current line. Without an argument, move back to the
+ first entry in the history list.
+

File: bash.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands
@@ -8754,7 +9222,7 @@ File: bash.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev: C
characters in the macro appear as if typed at the keyboard.
'print-last-kbd-macro ()'
- Print the last keboard macro defined in a format suitable for the
+ Print the last keyboard macro defined in a format suitable for the
INPUTRC file.

@@ -8801,12 +9269,12 @@ File: bash.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bin
'character-search (C-])'
A character is read and point is moved to the next occurrence of
- that character. A negative count searches for previous
+ that character. A negative argument searches for previous
occurrences.
'character-search-backward (M-C-])'
A character is read and point is moved to the previous occurrence
- of that character. A negative count searches for subsequent
+ of that character. A negative argument searches for subsequent
occurrences.
'skip-csi-sequence ()'
@@ -8814,7 +9282,7 @@ File: bash.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bin
those defined for keys like Home and End. Such sequences begin
with a Control Sequence Indicator (CSI), usually ESC-[. If this
sequence is bound to "\e[", keys producing such sequences will have
- no effect unless explicitly bound to a readline command, instead of
+ no effect unless explicitly bound to a Readline command, instead of
inserting stray characters into the editing buffer. This is
unbound by default, but usually bound to ESC-[.
@@ -8849,6 +9317,12 @@ File: bash.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up: Bin
is formatted in such a way that it can be made part of an INPUTRC
file. This command is unbound by default.
+'spell-correct-word (C-x s)'
+ Perform spelling correction on the current word, treating it as a
+ directory or filename, in the same way as the 'cdspell' shell
+ option. Word boundaries are the same as those used by
+ 'shell-forward-word'.
+
'glob-complete-word (M-g)'
The word before point is treated as a pattern for pathname
expansion, with an asterisk implicitly appended. This pattern is
@@ -9249,7 +9723,8 @@ happening.
'-C COMMAND'
COMMAND is executed in a subshell environment, and its output
- is used as the possible completions.
+ is used as the possible completions. Arguments are passed as
+ with the '-F' option.
'-F FUNCTION'
The shell function FUNCTION is executed in the current shell
@@ -9411,7 +9886,7 @@ CDPATH: Readline can't tell those completions are directories). The '-o
nospace' option tells Readline to not append a space character to the
directory name, in case we want to append to it. The '-o bashdefault'
option brings in the rest of the "Bash default" completions - possible
-completion that Bash adds to the default Readline set. These include
+completions that Bash adds to the default Readline set. These include
things like command name completion, variable completion for words
beginning with '$' or '${', completions containing pathname expansion
patterns (*note Filename Expansion::), and so on.
@@ -9578,9 +10053,9 @@ history file.
-d' command.
'-d START-END'
- Delete the history entries between positions START and END,
- inclusive. Positive and negative values for START and END are
- interpreted as described above.
+ Delete the range of history entries between positions START
+ and END, inclusive. Positive and negative values for START
+ and END are interpreted as described above.
'-a'
Append the new history lines to the history file. These are
@@ -9609,9 +10084,14 @@ history file.
The ARGs are added to the end of the history list as a single
entry.
- When any of the '-w', '-r', '-a', or '-n' options is used, if
- FILENAME is given, then it is used as the history file. If not,
- then the value of the 'HISTFILE' variable is used.
+ If a FILENAME argument is supplied when any of the '-w', '-r',
+ '-a', or '-n' options is used, Bash uses FILENAME as the history
+ file. If not, then the value of the 'HISTFILE' variable is used.
+
+ The return value is 0 unless an invalid option is encountered, an
+ error occurs while reading or writing the history file, an invalid
+ OFFSET or range is supplied as an argument to '-d', or the history
+ expansion supplied as an argument to '-p' fails.

File: bash.info, Node: History Interaction, Prev: Bash History Builtins, Up: Using History Interactively
@@ -9828,7 +10308,7 @@ or edit, the word or words selected from the history event.
'&' appears in NEW, it is replaced by OLD. A single backslash will
quote the '&'. If OLD is null, it is set to the last OLD
substituted, or, if no previous history substitutions took place,
- the last STRING in a !?STRING'[?]' search. If NEW is is null, each
+ the last STRING in a !?STRING'[?]' search. If NEW is null, each
matching OLD is deleted. The final delimiter is optional if it is
the last character on the input line.
@@ -9897,20 +10377,28 @@ These are installation instructions for Bash.
3. Optionally, type 'make tests' to run the Bash test suite.
4. Type 'make install' to install 'bash' and 'bashbug'. This will
- also install the manual pages and Info file.
+ also install the manual pages and Info file, message translation
+ files, some supplemental documentation, a number of example
+ loadable builtin commands, and a set of header files for developing
+ loadable builtins. You may need additional privileges to install
+ 'bash' to your desired destination, so 'sudo make install' might be
+ required. More information about controlling the locations where
+ 'bash' and other files are installed is below (*note Installation
+ Names::).
The 'configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a 'Makefile' in each directory of the package
-(the top directory, the 'builtins', 'doc', and 'support' directories,
-each directory under 'lib', and several others). It also creates a
-'config.h' file containing system-dependent definitions. Finally, it
-creates a shell script named 'config.status' that you can run in the
-future to recreate the current configuration, a file 'config.cache' that
-saves the results of its tests to speed up reconfiguring, and a file
-'config.log' containing compiler output (useful mainly for debugging
-'configure'). If at some point 'config.cache' contains results you
-don't want to keep, you may remove or edit it.
+(the top directory, the 'builtins', 'doc', 'po', and 'support'
+directories, each directory under 'lib', and several others). It also
+creates a 'config.h' file containing system-dependent definitions.
+Finally, it creates a shell script named 'config.status' that you can
+run in the future to recreate the current configuration, a file
+'config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file 'config.log' containing compiler output
+(useful mainly for debugging 'configure'). If at some point
+'config.cache' contains results you don't want to keep, you may remove
+or edit it.
To find out more about the options and arguments that the 'configure'
script understands, type
@@ -9941,7 +10429,7 @@ considered for the next release.
The file 'configure.ac' is used to create 'configure' by a program
called Autoconf. You only need 'configure.ac' if you want to change it
or regenerate 'configure' using a newer version of Autoconf. If you do
-this, make sure you are using Autoconf version 2.50 or newer.
+this, make sure you are using Autoconf version 2.69 or newer.
You can remove the program binaries and object files from the source
code directory by typing 'make clean'. To also remove the files that
@@ -9984,7 +10472,7 @@ need to supply the '--srcdir=PATH' argument to tell 'configure' where
the source files are. 'configure' automatically checks for the source
code in the directory that 'configure' is in and in '..'.
- If you have to use a 'make' that does not supports the 'VPATH'
+ If you have to use a 'make' that does not support the 'VPATH'
variable, you can compile Bash for one architecture at a time in the
source code directory. After you have installed Bash for one
architecture, use 'make distclean' before reconfiguring for another
@@ -10009,10 +10497,13 @@ File: bash.info, Node: Installation Names, Next: Specifying the System Type,
=======================
By default, 'make install' will install into '/usr/local/bin',
-'/usr/local/man', etc. You can specify an installation prefix other
-than '/usr/local' by giving 'configure' the option '--prefix=PATH', or
-by specifying a value for the 'DESTDIR' 'make' variable when running
-'make install'.
+'/usr/local/man', etc.; that is, the "installation prefix" defaults to
+'/usr/local'. You can specify an installation prefix other than
+'/usr/local' by giving 'configure' the option '--prefix=PATH', or by
+specifying a value for the 'prefix' 'make' variable when running 'make
+install' (e.g., 'make install prefix=PATH'). The 'prefix' variable
+provides a default for 'exec_prefix' and other variables used when
+installing bash.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
@@ -10020,6 +10511,30 @@ give 'configure' the option '--exec-prefix=PATH', 'make install' will
use PATH as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
+ If you would like to change the installation locations for a single
+run, you can specify these variables as arguments to 'make': 'make
+install exec_prefix=/' will install 'bash' and 'bashbug' into '/bin'
+instead of the default '/usr/local/bin'.
+
+ If you want to see the files bash will install and where it will
+install them without changing anything on your system, specify the
+variable 'DESTDIR' as an argument to 'make'. Its value should be the
+absolute directory path you'd like to use as the root of your sample
+installation tree. For example,
+
+ mkdir /fs1/bash-install
+ make install DESTDIR=/fs1/bash-install
+
+will install 'bash' into '/fs1/bash-install/usr/local/bin/bash', the
+documentation into directories within
+'/fs1/bash-install/usr/local/share', the example loadable builtins into
+'/fs1/bash-install/usr/local/lib/bash', and so on. You can use the
+usual 'exec_prefix' and 'prefix' variables to alter the directory paths
+beneath the value of 'DESTDIR'.
+
+ The GNU Makefile standards provide a more complete description of
+these variables and their effects.
+

File: bash.info, Node: Specifying the System Type, Next: Sharing Defaults, Prev: Installation Names, Up: Installing Bash
@@ -10027,7 +10542,7 @@ File: bash.info, Node: Specifying the System Type, Next: Sharing Defaults, Pr
===============================
There may be some features 'configure' can not figure out automatically,
-but need to determine by the type of host Bash will run on. Usually
+but needs to determine by the type of host Bash will run on. Usually
'configure' can figure that out, but if it prints a message saying it
can not guess the host type, give it the '--host=TYPE' option. 'TYPE'
can either be a short name for the system type, such as 'sun4', or a
@@ -10135,16 +10650,20 @@ the Bash 'configure' recognizes.
subdirectories of that directory (include files in PREFIX/'include'
and the library in PREFIX/'lib').
-'--with-purify'
- Define this to use the Purify memory allocation checker from
- Rational Software.
+'--with-libintl-prefix[=PREFIX]'
+ Define this to make Bash link with a locally-installed version of
+ 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
+ standard system locations. There is no version included with Bash.
'--enable-minimal-config'
This produces a shell with minimal features, close to the
historical Bourne shell.
- There are several '--enable-' options that alter how Bash is compiled
-and linked, rather than changing run-time features.
+ There are several '--enable-' options that alter how Bash is
+compiled, linked, and installed, rather than changing run-time features.
'--enable-largefile'
Enable support for large files
@@ -10157,6 +10676,10 @@ and linked, rather than changing run-time features.
This builds a Bash binary that produces profiling information to be
processed by 'gprof' each time it is executed.
+'--enable-separate-helpfiles'
+ Use external files for the documentation displayed by the 'help'
+ builtin instead of storing the text internally.
+
'--enable-static-link'
This causes Bash to be linked statically, if 'gcc' is being used.
This could be used to build a version to use as root's shell.
@@ -10165,14 +10688,21 @@ and linked, rather than changing run-time features.
following options, but it is processed first, so individual options may
be enabled using 'enable-FEATURE'.
- All of the following options except for 'disabled-builtins',
-'direxpand-default', and 'xpg-echo-default' are enabled by default,
-unless the operating system does not provide the necessary support.
+ All of the following options except for 'alt-array-implementation',
+'disabled-builtins', 'direxpand-default', 'strict-posix-default', and
+'xpg-echo-default' are enabled by default, unless the operating system
+does not provide the necessary support.
'--enable-alias'
Allow alias expansion and include the 'alias' and 'unalias'
builtins (*note Aliases::).
+'--enable-alt-array-implementation'
+ This builds bash using an alternate implementation of arrays (*note
+ Arrays::) that provides faster access at the expense of using more
+ memory (sometimes many times more, depending on how sparse an array
+ is).
+
'--enable-arith-for-command'
Include support for the alternate form of the 'for' command that
behaves like the C language 'for' statement (*note Looping
@@ -10192,7 +10722,7 @@ unless the operating system does not provide the necessary support.
'--enable-casemod-attributes'
Include support for case-modifying attributes in the 'declare'
- builtin and assignment statements. Variables with the UPPERCASE
+ builtin and assignment statements. Variables with the 'uppercase'
attribute, for example, will have their values converted to
uppercase upon assignment.
@@ -10251,7 +10781,7 @@ unless the operating system does not provide the necessary support.
described above under *note Pattern Matching::.
'--enable-extended-glob-default'
- Set the default value of the EXTGLOB shell option described above
+ Set the default value of the 'extglob' shell option described above
under *note The Shopt Builtin:: to be enabled.
'--enable-function-import'
@@ -10260,10 +10790,10 @@ unless the operating system does not provide the necessary support.
enabled by default.
'--enable-glob-asciirange-default'
- Set the default value of the GLOBASCIIRANGES shell option described
- above under *note The Shopt Builtin:: to be enabled. This controls
- the behavior of character ranges when used in pattern matching
- bracket expressions.
+ Set the default value of the 'globasciiranges' shell option
+ described above under *note The Shopt Builtin:: to be enabled.
+ This controls the behavior of character ranges when used in pattern
+ matching bracket expressions.
'--enable-help-builtin'
Include the 'help' builtin, which displays help on shell builtins
@@ -10314,10 +10844,6 @@ unless the operating system does not provide the necessary support.
Include the 'select' compound command, which allows the generation
of simple menus (*note Conditional Constructs::).
-'--enable-separate-helpfiles'
- Use external files for the documentation displayed by the 'help'
- builtin instead of storing the text internally.
-
'--enable-single-help-strings'
Store the text displayed by the 'help' builtin as a single string
for each help topic. This aids in translating the text to
@@ -10327,6 +10853,10 @@ unless the operating system does not provide the necessary support.
'--enable-strict-posix-default'
Make Bash POSIX-conformant by default (*note Bash POSIX Mode::).
+'--enable-translatable-strings'
+ Enable support for '$"STRING"' translatable strings (*note Locale
+ Translation::).
+
'--enable-usg-echo-default'
A synonym for '--enable-xpg-echo-default'.
@@ -10353,7 +10883,8 @@ Appendix A Reporting Bugs
Please report all bugs you find in Bash. But first, you should make
sure that it really is a bug, and that it appears in the latest version
of Bash. The latest version of Bash is always available for FTP from
-<ftp://ftp.gnu.org/pub/gnu/bash/>.
+<ftp://ftp.gnu.org/pub/gnu/bash/> and from
+<http://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz>.
Once you have determined that a bug actually exists, use the
'bashbug' command to submit a bug report. If you have a fix, you are
@@ -10479,15 +11010,15 @@ the baseline reference.
substring of 'var''s value of length LENGTH, beginning at OFFSET,
is present (*note Shell Parameter Expansion::).
- * The expansion '${var/[/]'PATTERN'[/'REPLACEMENT']}', which matches
- PATTERN and replaces it with REPLACEMENT in the value of 'var', is
+ * The expansion '${VAR/[/]'PATTERN'[/'REPLACEMENT']}', which matches
+ PATTERN and replaces it with REPLACEMENT in the value of VAR, is
available (*note Shell Parameter Expansion::).
* The expansion '${!PREFIX*}' expansion, which expands to the names
of all shell variables whose names begin with PREFIX, is available
(*note Shell Parameter Expansion::).
- * Bash has INDIRECT variable expansion using '${!word}' (*note Shell
+ * Bash has indirect variable expansion using '${!word}' (*note Shell
Parameter Expansion::).
* Bash can expand positional parameters beyond '$9' using '${NUM}'.
@@ -10513,8 +11044,8 @@ the baseline reference.
shell uses only '!'.
* Bash implements the full set of POSIX filename expansion operators,
- including CHARACTER CLASSES, EQUIVALENCE CLASSES, and COLLATING
- SYMBOLS (*note Filename Expansion::).
+ including character classes, equivalence classes, and collating
+ symbols (*note Filename Expansion::).
* Bash implements extended pattern matching features when the
'extglob' shell option is enabled (*note Pattern Matching::).
@@ -10631,7 +11162,7 @@ the baseline reference.
* Bash includes the 'caller' builtin, which displays the context of
any active subroutine call (a shell function or a script executed
- with the '.' or 'source' builtins). This supports the bash
+ with the '.' or 'source' builtins). This supports the Bash
debugger.
* The 'trap' builtin (*note Bourne Shell Builtins::) allows a 'DEBUG'
@@ -10653,7 +11184,7 @@ the baseline reference.
The 'trap' builtin (*note Bourne Shell Builtins::) allows a
'RETURN' pseudo-signal specification, similar to 'EXIT' and
- 'DEBUG'. Commands specified with an 'RETURN' trap are executed
+ 'DEBUG'. Commands specified with a 'RETURN' trap are executed
before execution resumes after a shell function or a shell script
executed with '.' or 'source' returns. The 'RETURN' trap is not
inherited by shell functions unless the function has been given the
@@ -11252,94 +11783,94 @@ D.1 Index of Shell Builtin Commands
* :: Bourne Shell Builtins.
(line 11)
* [: Bourne Shell Builtins.
- (line 270)
+ (line 275)
* alias: Bash Builtins. (line 11)
* bg: Job Control Builtins.
(line 7)
* bind: Bash Builtins. (line 21)
* break: Bourne Shell Builtins.
- (line 36)
-* builtin: Bash Builtins. (line 104)
-* caller: Bash Builtins. (line 113)
+ (line 37)
+* builtin: Bash Builtins. (line 108)
+* caller: Bash Builtins. (line 117)
* cd: Bourne Shell Builtins.
- (line 44)
-* command: Bash Builtins. (line 130)
+ (line 45)
+* command: Bash Builtins. (line 134)
* compgen: Programmable Completion Builtins.
(line 12)
* complete: Programmable Completion Builtins.
(line 30)
* compopt: Programmable Completion Builtins.
- (line 237)
+ (line 238)
* continue: Bourne Shell Builtins.
- (line 85)
-* declare: Bash Builtins. (line 150)
+ (line 90)
+* declare: Bash Builtins. (line 154)
* dirs: Directory Stack Builtins.
(line 7)
* disown: Job Control Builtins.
- (line 101)
-* echo: Bash Builtins. (line 253)
-* enable: Bash Builtins. (line 302)
+ (line 104)
+* echo: Bash Builtins. (line 257)
+* enable: Bash Builtins. (line 306)
* eval: Bourne Shell Builtins.
- (line 94)
+ (line 99)
* exec: Bourne Shell Builtins.
- (line 102)
+ (line 107)
* exit: Bourne Shell Builtins.
- (line 120)
+ (line 125)
* export: Bourne Shell Builtins.
- (line 127)
+ (line 132)
* fc: Bash History Builtins.
(line 10)
* fg: Job Control Builtins.
(line 17)
* getopts: Bourne Shell Builtins.
- (line 143)
+ (line 148)
* hash: Bourne Shell Builtins.
- (line 187)
-* help: Bash Builtins. (line 331)
+ (line 192)
+* help: Bash Builtins. (line 342)
* history: Bash History Builtins.
(line 46)
* jobs: Job Control Builtins.
(line 27)
* kill: Job Control Builtins.
(line 58)
-* let: Bash Builtins. (line 350)
-* local: Bash Builtins. (line 358)
-* logout: Bash Builtins. (line 374)
-* mapfile: Bash Builtins. (line 379)
+* let: Bash Builtins. (line 361)
+* local: Bash Builtins. (line 369)
+* logout: Bash Builtins. (line 385)
+* mapfile: Bash Builtins. (line 390)
* popd: Directory Stack Builtins.
(line 35)
-* printf: Bash Builtins. (line 425)
+* printf: Bash Builtins. (line 436)
* pushd: Directory Stack Builtins.
- (line 53)
+ (line 69)
* pwd: Bourne Shell Builtins.
- (line 207)
-* read: Bash Builtins. (line 474)
-* readarray: Bash Builtins. (line 570)
+ (line 212)
+* read: Bash Builtins. (line 488)
+* readarray: Bash Builtins. (line 585)
* readonly: Bourne Shell Builtins.
- (line 217)
+ (line 222)
* return: Bourne Shell Builtins.
- (line 236)
+ (line 241)
* set: The Set Builtin. (line 11)
* shift: Bourne Shell Builtins.
- (line 257)
+ (line 262)
* shopt: The Shopt Builtin. (line 9)
-* source: Bash Builtins. (line 579)
+* source: Bash Builtins. (line 594)
* suspend: Job Control Builtins.
- (line 113)
+ (line 116)
* test: Bourne Shell Builtins.
- (line 270)
+ (line 275)
* times: Bourne Shell Builtins.
- (line 349)
+ (line 360)
* trap: Bourne Shell Builtins.
- (line 355)
-* type: Bash Builtins. (line 584)
-* typeset: Bash Builtins. (line 616)
-* ulimit: Bash Builtins. (line 622)
+ (line 366)
+* type: Bash Builtins. (line 599)
+* typeset: Bash Builtins. (line 631)
+* ulimit: Bash Builtins. (line 637)
* umask: Bourne Shell Builtins.
- (line 404)
-* unalias: Bash Builtins. (line 728)
+ (line 415)
+* unalias: Bash Builtins. (line 743)
* unset: Bourne Shell Builtins.
- (line 422)
+ (line 433)
* wait: Job Control Builtins.
(line 76)
@@ -11354,9 +11885,9 @@ D.2 Index of Shell Reserved Words
* !: Pipelines. (line 9)
* [[: Conditional Constructs.
- (line 125)
+ (line 126)
* ]]: Conditional Constructs.
- (line 125)
+ (line 126)
* {: Command Grouping. (line 21)
* }: Command Grouping. (line 21)
* case: Conditional Constructs.
@@ -11378,7 +11909,7 @@ D.2 Index of Shell Reserved Words
* in: Conditional Constructs.
(line 28)
* select: Conditional Constructs.
- (line 83)
+ (line 84)
* then: Conditional Constructs.
(line 7)
* time: Pipelines. (line 9)
@@ -11394,24 +11925,28 @@ D.3 Parameter and Variable Index
* Menu:
-* !: Special Parameters. (line 56)
+* !: Special Parameters. (line 55)
* #: Special Parameters. (line 39)
* $: Special Parameters. (line 51)
-* $!: Special Parameters. (line 57)
+* $!: Special Parameters. (line 56)
* $#: Special Parameters. (line 40)
* $$: Special Parameters. (line 52)
* $*: Special Parameters. (line 10)
* $-: Special Parameters. (line 47)
-* $0: Special Parameters. (line 62)
+* $0: Special Parameters. (line 61)
* $?: Special Parameters. (line 43)
* $@: Special Parameters. (line 23)
* $_: Bash Variables. (line 14)
* *: Special Parameters. (line 9)
* -: Special Parameters. (line 46)
-* 0: Special Parameters. (line 61)
+* 0: Special Parameters. (line 60)
* ?: Special Parameters. (line 42)
* @: Special Parameters. (line 22)
* _: Bash Variables. (line 13)
+* active-region-end-color: Readline Init File Syntax.
+ (line 51)
+* active-region-start-color: Readline Init File Syntax.
+ (line 38)
* auto_resume: Job Control Variables.
(line 6)
* BASH: Bash Variables. (line 23)
@@ -11435,31 +11970,31 @@ D.3 Parameter and Variable Index
* BASH_VERSION: Bash Variables. (line 181)
* BASH_XTRACEFD: Bash Variables. (line 184)
* bell-style: Readline Init File Syntax.
- (line 38)
+ (line 64)
* bind-tty-special-chars: Readline Init File Syntax.
- (line 45)
+ (line 71)
* blink-matching-paren: Readline Init File Syntax.
- (line 50)
+ (line 76)
* CDPATH: Bourne Shell Variables.
(line 9)
* CHILD_MAX: Bash Variables. (line 195)
* colored-completion-prefix: Readline Init File Syntax.
- (line 55)
+ (line 81)
* colored-stats: Readline Init File Syntax.
- (line 62)
+ (line 91)
* COLUMNS: Bash Variables. (line 202)
* comment-begin: Readline Init File Syntax.
- (line 68)
+ (line 97)
* completion-display-width: Readline Init File Syntax.
- (line 73)
+ (line 102)
* completion-ignore-case: Readline Init File Syntax.
- (line 80)
+ (line 109)
* completion-map-case: Readline Init File Syntax.
- (line 85)
+ (line 114)
* completion-prefix-display-length: Readline Init File Syntax.
- (line 91)
+ (line 120)
* completion-query-items: Readline Init File Syntax.
- (line 98)
+ (line 127)
* COMPREPLY: Bash Variables. (line 254)
* COMP_CWORD: Bash Variables. (line 208)
* COMP_KEY: Bash Variables. (line 237)
@@ -11469,29 +12004,31 @@ D.3 Parameter and Variable Index
* COMP_WORDBREAKS: Bash Variables. (line 241)
* COMP_WORDS: Bash Variables. (line 247)
* convert-meta: Readline Init File Syntax.
- (line 108)
+ (line 138)
* COPROC: Bash Variables. (line 260)
* DIRSTACK: Bash Variables. (line 264)
* disable-completion: Readline Init File Syntax.
- (line 116)
+ (line 148)
* echo-control-characters: Readline Init File Syntax.
- (line 121)
+ (line 153)
* editing-mode: Readline Init File Syntax.
- (line 126)
+ (line 158)
* EMACS: Bash Variables. (line 274)
* emacs-mode-string: Readline Init File Syntax.
- (line 132)
+ (line 164)
+* enable-active-region: Readline Init File Syntax.
+ (line 174)
* enable-bracketed-paste: Readline Init File Syntax.
- (line 142)
+ (line 187)
* enable-keypad: Readline Init File Syntax.
- (line 150)
+ (line 196)
* ENV: Bash Variables. (line 279)
* EPOCHREALTIME: Bash Variables. (line 284)
* EPOCHSECONDS: Bash Variables. (line 292)
* EUID: Bash Variables. (line 299)
* EXECIGNORE: Bash Variables. (line 303)
* expand-tilde: Readline Init File Syntax.
- (line 161)
+ (line 207)
* FCEDIT: Bash Variables. (line 316)
* FIGNORE: Bash Variables. (line 320)
* FUNCNAME: Bash Variables. (line 326)
@@ -11505,15 +12042,15 @@ D.3 Parameter and Variable Index
* HISTFILESIZE: Bash Variables. (line 402)
* HISTIGNORE: Bash Variables. (line 413)
* history-preserve-point: Readline Init File Syntax.
- (line 165)
+ (line 211)
* history-size: Readline Init File Syntax.
- (line 171)
+ (line 217)
* HISTSIZE: Bash Variables. (line 433)
* HISTTIMEFORMAT: Bash Variables. (line 440)
* HOME: Bourne Shell Variables.
(line 13)
* horizontal-scroll-mode: Readline Init File Syntax.
- (line 180)
+ (line 226)
* HOSTFILE: Bash Variables. (line 448)
* HOSTNAME: Bash Variables. (line 459)
* HOSTTYPE: Bash Variables. (line 462)
@@ -11521,18 +12058,21 @@ D.3 Parameter and Variable Index
(line 18)
* IGNOREEOF: Bash Variables. (line 465)
* input-meta: Readline Init File Syntax.
- (line 189)
+ (line 235)
* INPUTRC: Bash Variables. (line 475)
* INSIDE_EMACS: Bash Variables. (line 479)
* isearch-terminators: Readline Init File Syntax.
- (line 197)
+ (line 245)
* keymap: Readline Init File Syntax.
- (line 204)
-* LANG: Bash Variables. (line 485)
+ (line 252)
+* LANG: Creating Internationalized Scripts.
+ (line 51)
+* LANG <1>: Bash Variables. (line 485)
* LC_ALL: Bash Variables. (line 489)
* LC_COLLATE: Bash Variables. (line 493)
* LC_CTYPE: Bash Variables. (line 500)
-* LC_MESSAGES: Locale Translation. (line 15)
+* LC_MESSAGES: Creating Internationalized Scripts.
+ (line 51)
* LC_MESSAGES <1>: Bash Variables. (line 505)
* LC_NUMERIC: Bash Variables. (line 509)
* LC_TIME: Bash Variables. (line 513)
@@ -11546,15 +12086,15 @@ D.3 Parameter and Variable Index
(line 27)
* MAPFILE: Bash Variables. (line 540)
* mark-modified-lines: Readline Init File Syntax.
- (line 234)
+ (line 282)
* mark-symlinked-directories: Readline Init File Syntax.
- (line 239)
+ (line 287)
* match-hidden-files: Readline Init File Syntax.
- (line 244)
+ (line 292)
* menu-complete-display-prefix: Readline Init File Syntax.
- (line 251)
+ (line 299)
* meta-flag: Readline Init File Syntax.
- (line 189)
+ (line 235)
* OLDPWD: Bash Variables. (line 544)
* OPTARG: Bourne Shell Variables.
(line 34)
@@ -11563,9 +12103,9 @@ D.3 Parameter and Variable Index
(line 38)
* OSTYPE: Bash Variables. (line 551)
* output-meta: Readline Init File Syntax.
- (line 256)
+ (line 304)
* page-completions: Readline Init File Syntax.
- (line 262)
+ (line 312)
* PATH: Bourne Shell Variables.
(line 42)
* PIPESTATUS: Bash Variables. (line 554)
@@ -11582,37 +12122,40 @@ D.3 Parameter and Variable Index
* PS4: Bash Variables. (line 595)
* PWD: Bash Variables. (line 603)
* RANDOM: Bash Variables. (line 606)
-* READLINE_LINE: Bash Variables. (line 612)
-* READLINE_MARK: Bash Variables. (line 616)
-* READLINE_POINT: Bash Variables. (line 622)
-* REPLY: Bash Variables. (line 626)
+* READLINE_ARGUMENT: Bash Variables. (line 612)
+* READLINE_LINE: Bash Variables. (line 616)
+* READLINE_MARK: Bash Variables. (line 620)
+* READLINE_POINT: Bash Variables. (line 626)
+* REPLY: Bash Variables. (line 630)
* revert-all-at-newline: Readline Init File Syntax.
- (line 272)
-* SECONDS: Bash Variables. (line 629)
-* SHELL: Bash Variables. (line 638)
-* SHELLOPTS: Bash Variables. (line 643)
-* SHLVL: Bash Variables. (line 652)
+ (line 322)
+* SECONDS: Bash Variables. (line 633)
+* SHELL: Bash Variables. (line 642)
+* SHELLOPTS: Bash Variables. (line 647)
+* SHLVL: Bash Variables. (line 656)
* show-all-if-ambiguous: Readline Init File Syntax.
- (line 278)
+ (line 329)
* show-all-if-unmodified: Readline Init File Syntax.
- (line 284)
+ (line 335)
* show-mode-in-prompt: Readline Init File Syntax.
- (line 293)
+ (line 344)
* skip-completed-text: Readline Init File Syntax.
- (line 299)
-* SRANDOM: Bash Variables. (line 657)
-* TEXTDOMAIN: Locale Translation. (line 15)
-* TEXTDOMAINDIR: Locale Translation. (line 15)
-* TIMEFORMAT: Bash Variables. (line 666)
-* TMOUT: Bash Variables. (line 704)
-* TMPDIR: Bash Variables. (line 716)
-* UID: Bash Variables. (line 720)
+ (line 350)
+* SRANDOM: Bash Variables. (line 661)
+* TEXTDOMAIN: Creating Internationalized Scripts.
+ (line 51)
+* TEXTDOMAINDIR: Creating Internationalized Scripts.
+ (line 51)
+* TIMEFORMAT: Bash Variables. (line 670)
+* TMOUT: Bash Variables. (line 708)
+* TMPDIR: Bash Variables. (line 720)
+* UID: Bash Variables. (line 724)
* vi-cmd-mode-string: Readline Init File Syntax.
- (line 312)
+ (line 363)
* vi-ins-mode-string: Readline Init File Syntax.
- (line 323)
+ (line 374)
* visible-stats: Readline Init File Syntax.
- (line 334)
+ (line 385)

File: bash.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes
@@ -11628,7 +12171,7 @@ D.4 Function Index
* accept-line (Newline or Return): Commands For History.
(line 6)
* alias-expand-line (): Miscellaneous Commands.
- (line 125)
+ (line 131)
* backward-char (C-b): Commands For Moving. (line 15)
* backward-delete-char (Rubout): Commands For Text. (line 17)
* backward-kill-line (C-x Rubout): Commands For Killing.
@@ -11677,7 +12220,7 @@ D.4 Function Index
(line 57)
* digit-argument (M-0, M-1, ... M--): Numeric Arguments. (line 6)
* display-shell-version (C-x C-v): Miscellaneous Commands.
- (line 110)
+ (line 116)
* do-lowercase-version (M-A, M-B, M-X, ...): Miscellaneous Commands.
(line 14)
* downcase-word (M-l): Commands For Text. (line 62)
@@ -11690,7 +12233,7 @@ D.4 Function Index
* dynamic-complete-history (M-<TAB>): Commands For Completion.
(line 90)
* edit-and-execute-command (C-x C-e): Miscellaneous Commands.
- (line 134)
+ (line 140)
* end-kbd-macro (C-x )): Keyboard Macros. (line 9)
* end-of-file (usually C-d): Commands For Text. (line 6)
* end-of-history (M->): Commands For History.
@@ -11698,21 +12241,23 @@ D.4 Function Index
* end-of-line (C-e): Commands For Moving. (line 9)
* exchange-point-and-mark (C-x C-x): Miscellaneous Commands.
(line 37)
+* fetch-history (): Commands For History.
+ (line 103)
* forward-backward-delete-char (): Commands For Text. (line 21)
* forward-char (C-f): Commands For Moving. (line 12)
* forward-search-history (C-s): Commands For History.
(line 33)
* forward-word (M-f): Commands For Moving. (line 18)
* glob-complete-word (M-g): Miscellaneous Commands.
- (line 92)
-* glob-expand-word (C-x *): Miscellaneous Commands.
(line 98)
-* glob-list-expansions (C-x g): Miscellaneous Commands.
+* glob-expand-word (C-x *): Miscellaneous Commands.
(line 104)
+* glob-list-expansions (C-x g): Miscellaneous Commands.
+ (line 110)
* history-and-alias-expand-line (): Miscellaneous Commands.
- (line 128)
+ (line 134)
* history-expand-line (M-^): Miscellaneous Commands.
- (line 118)
+ (line 124)
* history-search-backward (): Commands For History.
(line 57)
* history-search-forward (): Commands For History.
@@ -11726,7 +12271,7 @@ D.4 Function Index
* insert-completions (M-*): Commands For Completion.
(line 22)
* insert-last-argument (M-. or M-_): Miscellaneous Commands.
- (line 131)
+ (line 137)
* kill-line (C-k): Commands For Killing.
(line 6)
* kill-region (): Commands For Killing.
@@ -11736,7 +12281,7 @@ D.4 Function Index
* kill-word (M-d): Commands For Killing.
(line 23)
* magic-space (): Miscellaneous Commands.
- (line 121)
+ (line 127)
* menu-complete (): Commands For Completion.
(line 26)
* menu-complete-backward (): Commands For Completion.
@@ -11784,7 +12329,7 @@ D.4 Function Index
(line 37)
* shell-backward-word (M-C-b): Commands For Moving. (line 30)
* shell-expand-line (M-C-e): Miscellaneous Commands.
- (line 113)
+ (line 119)
* shell-forward-word (M-C-f): Commands For Moving. (line 26)
* shell-kill-word (M-C-d): Commands For Killing.
(line 32)
@@ -11792,6 +12337,8 @@ D.4 Function Index
(line 41)
* skip-csi-sequence (): Miscellaneous Commands.
(line 52)
+* spell-correct-word (C-x s): Miscellaneous Commands.
+ (line 92)
* start-kbd-macro (C-x (): Keyboard Macros. (line 6)
* tilde-expand (M-&): Miscellaneous Commands.
(line 30)
@@ -11913,6 +12460,8 @@ D.5 Concept Index
* interactive shell: Invoking Bash. (line 131)
* interactive shell <1>: Interactive Shells. (line 6)
* internationalization: Locale Translation. (line 6)
+* internationalized scripts: Creating Internationalized Scripts.
+ (line 3)
* job: Definitions. (line 38)
* job control: Definitions. (line 42)
* job control <1>: Job Control Basics. (line 6)
@@ -11968,6 +12517,8 @@ D.5 Concept Index
* special builtin: Definitions. (line 82)
* special builtin <1>: Special Builtins. (line 6)
* startup files: Bash Startup Files. (line 6)
+* string translations: Creating Internationalized Scripts.
+ (line 3)
* suspending jobs: Job Control Basics. (line 6)
* tilde expansion: Tilde Expansion. (line 6)
* token: Definitions. (line 86)
@@ -11983,137 +12534,138 @@ D.5 Concept Index

Tag Table:
-Node: Top895
-Node: Introduction2813
-Node: What is Bash?3029
-Node: What is a shell?4143
-Node: Definitions6681
-Node: Basic Shell Features9632
-Node: Shell Syntax10851
-Node: Shell Operation11877
-Node: Quoting13170
-Node: Escape Character14470
-Node: Single Quotes14955
-Node: Double Quotes15303
-Node: ANSI-C Quoting16581
-Node: Locale Translation17840
-Node: Comments18993
-Node: Shell Commands19611
-Node: Reserved Words20549
-Node: Simple Commands21305
-Node: Pipelines21959
-Node: Lists24891
-Node: Compound Commands26682
-Node: Looping Constructs27694
-Node: Conditional Constructs30189
-Node: Command Grouping41760
-Node: Coprocesses43239
-Node: GNU Parallel45142
-Node: Shell Functions49443
-Node: Shell Parameters56650
-Node: Positional Parameters61063
-Node: Special Parameters61963
-Node: Shell Expansions65187
-Node: Brace Expansion67310
-Node: Tilde Expansion70033
-Node: Shell Parameter Expansion72650
-Node: Command Substitution87779
-Node: Arithmetic Expansion89134
-Node: Process Substitution90066
-Node: Word Splitting91186
-Node: Filename Expansion93130
-Node: Pattern Matching95679
-Node: Quote Removal99665
-Node: Redirections99960
-Node: Executing Commands109530
-Node: Simple Command Expansion110200
-Node: Command Search and Execution112154
-Node: Command Execution Environment114530
-Node: Environment117514
-Node: Exit Status119173
-Node: Signals120843
-Node: Shell Scripts122810
-Node: Shell Builtin Commands125822
-Node: Bourne Shell Builtins127860
-Node: Bash Builtins148789
-Node: Modifying Shell Behavior178898
-Node: The Set Builtin179243
-Node: The Shopt Builtin189656
-Node: Special Builtins204566
-Node: Shell Variables205545
-Node: Bourne Shell Variables205982
-Node: Bash Variables208086
-Node: Bash Features240720
-Node: Invoking Bash241733
-Node: Bash Startup Files247746
-Node: Interactive Shells252849
-Node: What is an Interactive Shell?253259
-Node: Is this Shell Interactive?253908
-Node: Interactive Shell Behavior254723
-Node: Bash Conditional Expressions258237
-Node: Shell Arithmetic262814
-Node: Aliases265754
-Node: Arrays268374
-Node: The Directory Stack274383
-Node: Directory Stack Builtins275167
-Node: Controlling the Prompt278135
-Node: The Restricted Shell281085
-Node: Bash POSIX Mode283679
-Node: Shell Compatibility Mode294715
-Node: Job Control301371
-Node: Job Control Basics301831
-Node: Job Control Builtins306827
-Node: Job Control Variables312227
-Node: Command Line Editing313383
-Node: Introduction and Notation315054
-Node: Readline Interaction316677
-Node: Readline Bare Essentials317868
-Node: Readline Movement Commands319651
-Node: Readline Killing Commands320611
-Node: Readline Arguments322529
-Node: Searching323573
-Node: Readline Init File325759
-Node: Readline Init File Syntax327018
-Node: Conditional Init Constructs347556
-Node: Sample Init File351752
-Node: Bindable Readline Commands354876
-Node: Commands For Moving356080
-Node: Commands For History358131
-Node: Commands For Text362924
-Node: Commands For Killing366573
-Node: Numeric Arguments369606
-Node: Commands For Completion370745
-Node: Keyboard Macros374936
-Node: Miscellaneous Commands375623
-Node: Readline vi Mode381307
-Node: Programmable Completion382214
-Node: Programmable Completion Builtins389994
-Node: A Programmable Completion Example400689
-Node: Using History Interactively405936
-Node: Bash History Facilities406620
-Node: Bash History Builtins409625
-Node: History Interaction414354
-Node: Event Designators417974
-Node: Word Designators419328
-Node: Modifiers421088
-Node: Installing Bash422899
-Node: Basic Installation424036
-Node: Compilers and Options427294
-Node: Compiling For Multiple Architectures428035
-Node: Installation Names429728
-Node: Specifying the System Type430546
-Node: Sharing Defaults431262
-Node: Operation Controls431935
-Node: Optional Features432893
-Node: Reporting Bugs443411
-Node: Major Differences From The Bourne Shell444605
-Node: GNU Free Documentation License461457
-Node: Indexes486634
-Node: Builtin Index487088
-Node: Reserved Word Index493915
-Node: Variable Index496363
-Node: Function Index512260
-Node: Concept Index525770
+Node: Top896
+Node: Introduction2815
+Node: What is Bash?3028
+Node: What is a shell?4139
+Node: Definitions6674
+Node: Basic Shell Features9622
+Node: Shell Syntax10838
+Node: Shell Operation11861
+Node: Quoting13151
+Node: Escape Character14452
+Node: Single Quotes14934
+Node: Double Quotes15279
+Node: ANSI-C Quoting16554
+Node: Locale Translation17861
+Node: Creating Internationalized Scripts19169
+Node: Comments23283
+Node: Shell Commands23898
+Node: Reserved Words24833
+Node: Simple Commands25586
+Node: Pipelines26237
+Node: Lists29233
+Node: Compound Commands31025
+Node: Looping Constructs32034
+Node: Conditional Constructs34526
+Node: Command Grouping49011
+Node: Coprocesses50486
+Node: GNU Parallel53146
+Node: Shell Functions54060
+Node: Shell Parameters61942
+Node: Positional Parameters66327
+Node: Special Parameters67226
+Node: Shell Expansions70437
+Node: Brace Expansion72561
+Node: Tilde Expansion75292
+Node: Shell Parameter Expansion77910
+Node: Command Substitution96258
+Node: Arithmetic Expansion97610
+Node: Process Substitution98575
+Node: Word Splitting99692
+Node: Filename Expansion101633
+Node: Pattern Matching104379
+Node: Quote Removal109378
+Node: Redirections109670
+Node: Executing Commands119327
+Node: Simple Command Expansion119994
+Node: Command Search and Execution122101
+Node: Command Execution Environment124476
+Node: Environment127508
+Node: Exit Status129168
+Node: Signals130949
+Node: Shell Scripts134395
+Node: Shell Builtin Commands137419
+Node: Bourne Shell Builtins139454
+Node: Bash Builtins160917
+Node: Modifying Shell Behavior191770
+Node: The Set Builtin192112
+Node: The Shopt Builtin202710
+Node: Special Builtins218619
+Node: Shell Variables219595
+Node: Bourne Shell Variables220029
+Node: Bash Variables222130
+Node: Bash Features254942
+Node: Invoking Bash255952
+Node: Bash Startup Files261962
+Node: Interactive Shells267090
+Node: What is an Interactive Shell?267498
+Node: Is this Shell Interactive?268144
+Node: Interactive Shell Behavior268956
+Node: Bash Conditional Expressions272582
+Node: Shell Arithmetic277221
+Node: Aliases280162
+Node: Arrays282772
+Node: The Directory Stack289160
+Node: Directory Stack Builtins289941
+Node: Controlling the Prompt294198
+Node: The Restricted Shell297160
+Node: Bash POSIX Mode299767
+Node: Shell Compatibility Mode311682
+Node: Job Control320246
+Node: Job Control Basics320703
+Node: Job Control Builtins325702
+Node: Job Control Variables331494
+Node: Command Line Editing332647
+Node: Introduction and Notation334315
+Node: Readline Interaction335935
+Node: Readline Bare Essentials337123
+Node: Readline Movement Commands338909
+Node: Readline Killing Commands339866
+Node: Readline Arguments341784
+Node: Searching342825
+Node: Readline Init File345008
+Node: Readline Init File Syntax346266
+Node: Conditional Init Constructs369849
+Node: Sample Init File374042
+Node: Bindable Readline Commands377163
+Node: Commands For Moving378364
+Node: Commands For History380412
+Node: Commands For Text385403
+Node: Commands For Killing389049
+Node: Numeric Arguments392079
+Node: Commands For Completion393215
+Node: Keyboard Macros397403
+Node: Miscellaneous Commands398088
+Node: Readline vi Mode404030
+Node: Programmable Completion404934
+Node: Programmable Completion Builtins412711
+Node: A Programmable Completion Example423460
+Node: Using History Interactively428705
+Node: Bash History Facilities429386
+Node: Bash History Builtins432388
+Node: History Interaction437409
+Node: Event Designators441026
+Node: Word Designators442377
+Node: Modifiers444134
+Node: Installing Bash445939
+Node: Basic Installation447073
+Node: Compilers and Options450792
+Node: Compiling For Multiple Architectures451530
+Node: Installation Names453219
+Node: Specifying the System Type455325
+Node: Sharing Defaults456039
+Node: Operation Controls456709
+Node: Optional Features457664
+Node: Reporting Bugs468880
+Node: Major Differences From The Bourne Shell470152
+Node: GNU Free Documentation License486998
+Node: Indexes512172
+Node: Builtin Index512623
+Node: Reserved Word Index519447
+Node: Variable Index521892
+Node: Function Index538663
+Node: Concept Index552444

End Tag Table
diff --git a/doc/bash.pdf b/doc/bash.pdf
index d8d784ee..b8f7dd69 100644
--- a/doc/bash.pdf
+++ b/doc/bash.pdf
Binary files differ
diff --git a/doc/bash.ps b/doc/bash.ps
index bd38ef3b..b6a4bbe8 100644
--- a/doc/bash.ps
+++ b/doc/bash.ps
@@ -1,13 +1,13 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.22.4
-%%CreationDate: Wed Nov 18 15:13:06 2020
+%%CreationDate: Mon Sep 19 12:02:42 2022
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
%%+ font Courier
%%+ font Symbol
%%DocumentSuppliedResources: procset grops 1.22 4
-%%Pages: 83
+%%Pages: 87
%%PageOrder: Ascend
%%DocumentMedia: Default 612 792 0 () ()
%%Orientation: Portrait
@@ -245,7 +245,7 @@ BP
108 96 Q(ain SHell)-.05 E F1(SYNOPSIS)72 112.8 Q/F2 10/Times-Bold@0 SF
(bash)108 124.8 Q F0([options] [command_string | \214le])2.5 E F1
(COPYRIGHT)72 141.6 Q F0(Bash is Cop)108 153.6 Q
-(yright \251 1989-2020 by the Free Softw)-.1 E(are F)-.1 E
+(yright \251 1989-2022 by the Free Softw)-.1 E(are F)-.1 E
(oundation, Inc.)-.15 E F1(DESCRIPTION)72 170.4 Q F2(Bash)108 182.4 Q F0
.973(is an)3.474 F F2(sh)3.473 E F0 .973
(-compatible command language interpreter that e)B -.15(xe)-.15 G .973
@@ -339,8 +339,8 @@ F .475(xtended deb)-.15 F(ug-)-.2 E
1.598(instead of the standard personal initialization \214le)4.279 F F3
(~/.bashr)3.598 E(c)-.37 E F0 1.598(if the)4.408 F(shell is interacti)
144 710.4 Q .3 -.15(ve \()-.25 H(see).15 E F4(INV)2.5 E(OCA)-.405 E
-(TION)-.855 E F0(belo)2.25 E(w\).)-.25 E(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(1)195.395 E 0 Cg EP
+(TION)-.855 E F0(belo)2.25 E(w\).)-.25 E(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(1)190.115 E 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
@@ -409,9 +409,9 @@ F4(INV)72 463.2 Q(OCA)-.493 E(TION)-1.04 E F0(A)108 475.2 Q F2(lo)2.5 E
108 492 Q F2(inter)2.734 E(active)-.15 E F0 .234
(shell is one started without non-option ar)2.734 F .234
(guments \(unless)-.18 F F1<ad73>2.734 E F0 .233
-(is speci\214ed\) and without the)2.734 F F1<ad63>2.733 E F0 .509(optio\
-n whose standard input and error are both connected to terminals \(as d\
-etermined by)108 504 R F2(isatty)3.019 E F0 .509(\(3\)\), or one).32 F
+(is speci\214ed\) and without the)2.734 F F1<ad63>2.733 E F0 .352(optio\
+n, whose standard input and error are both connected to terminals \(as \
+determined by)108 504 R F2(isatty)2.863 E F0 .353(\(3\)\), or one).32 F
.946(started with the)108 516 R F1<ad69>3.445 E F0(option.)3.445 E F3
(PS1)5.945 E F0 .945(is set and)3.195 F F1<24ad>3.445 E F0(includes)
3.445 E F1(i)3.445 E F0(if)3.445 E F1(bash)3.445 E F0 .945(is interacti)
@@ -463,8 +463,8 @@ F2(~/.bashr)108 691.2 Q(c)-.37 E F0 2.535(,i)C 2.535(ft)-2.535 G .035
Q F1(bash)5.306 E F0 2.806(is started non-interacti)5.306 F -.15(ve)-.25
G(ly).15 E 5.306(,t)-.65 G 5.306(or)-5.306 G 2.806
(un a shell script, for e)-5.306 F 2.805(xample, it looks for the v)-.15
-F(ariable)-.25 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(2)
-195.395 E 0 Cg EP
+F(ariable)-.25 E(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(2)
+190.115 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
@@ -527,24 +527,25 @@ F .341(xpand the)-.15 F F1(ENV)2.841 E F0 -.25(va)2.591 G .342
(cuted from the \214le whose name is the e).15 E(xpanded v)-.15 E 2.5
(alue. No)-.25 F(other startup \214les are read.)2.5 E F2(Bash)108 302.4
Q F0 .224(attempts to determine when it is being run with its standard \
-input connected to a netw)2.724 F .223(ork connection,)-.1 F .025
-(as when e)108 314.4 R -.15(xe)-.15 G .025
-(cuted by the remote shell daemon, usually).15 F F4 -.1(rs)2.525 G(hd).1
-E F0 2.525(,o)C 2.525(rt)-2.525 G .025(he secure shell daemon)-2.525 F
-F4(sshd)2.525 E F0 5.025(.I)C(f)-5.025 E F2(bash)2.525 E F0(deter)2.525
-E(-)-.2 E .134(mines it is being run in this f)108 326.4 R .134
-(ashion, it reads and e)-.1 F -.15(xe)-.15 G .133(cutes commands from)
-.15 F F4(~/.bashr)2.633 E(c)-.37 E F0 2.633(,i)C 2.633(ft)-2.633 G .133
-(hat \214le e)-2.633 F .133(xists and is)-.15 F 2.869(readable. It)108
-338.4 R .369(will not do this if in)2.869 F -.2(vo)-.4 G -.1(ke).2 G
-2.869(da).1 G(s)-2.869 E F2(sh)2.869 E F0 5.369(.T)C(he)-5.369 E F2
-<adad6e6f72>2.869 E(c)-.18 E F0 .369
-(option may be used to inhibit this beha)2.869 F(vior)-.2 E 2.869(,a)-.4
-G(nd)-2.869 E(the)108 350.4 Q F2<adad72>2.919 E(c\214le)-.18 E F0 .419
-(option may be used to force another \214le to be read, b)2.919 F .419
-(ut neither)-.2 F F4 -.1(rs)2.919 G(hd).1 E F0(nor)2.919 E F4(sshd)2.919
-E F0 .418(generally in)2.919 F -.2(vo)-.4 G -.1(ke).2 G
-(the shell with those options or allo)108 362.4 Q 2.5(wt)-.25 G
+input connected to a netw)2.724 F .223(ork connection,)-.1 F .521
+(as when e)108 314.4 R -.15(xe)-.15 G .521
+(cuted by the historical remote shell daemon, usually).15 F F4 -.1(rs)
+3.021 G(hd).1 E F0 3.021(,o)C 3.021(rt)-3.021 G .521
+(he secure shell daemon)-3.021 F F4(sshd)3.022 E F0 5.522(.I)C(f)-5.522
+E F2(bash)108 326.4 Q F0 1.523(determines it is being run non-interacti)
+4.023 F -.15(ve)-.25 G 1.523(ly in this f).15 F 1.522
+(ashion, it reads and e)-.1 F -.15(xe)-.15 G 1.522(cutes commands from)
+.15 F F4(~/.bashr)108 338.4 Q(c)-.37 E F0 2.847(,i)C 2.847(ft)-2.847 G
+.347(hat \214le e)-2.847 F .347(xists and is readable.)-.15 F .348
+(It will not do this if in)5.347 F -.2(vo)-.4 G -.1(ke).2 G 2.848(da).1
+G(s)-2.848 E F2(sh)2.848 E F0 5.348(.T)C(he)-5.348 E F2<adad6e6f72>2.848
+E(c)-.18 E F0 .348(option may be)2.848 F .61(used to inhibit this beha)
+108 350.4 R(vior)-.2 E 3.11(,a)-.4 G .61(nd the)-3.11 F F2<adad72>3.11 E
+(c\214le)-.18 E F0 .609
+(option may be used to force another \214le to be read, b)3.11 F .609
+(ut nei-)-.2 F(ther)108 362.4 Q F4 -.1(rs)2.5 G(hd).1 E F0(nor)2.5 E F4
+(sshd)2.5 E F0(generally in)2.5 E -.2(vo)-.4 G .2 -.1(ke t).2 H
+(he shell with those options or allo).1 E 2.5(wt)-.25 G
(hem to be speci\214ed.)-2.5 E .433(If the shell is started with the ef)
108 379.2 R(fecti)-.25 E .733 -.15(ve u)-.25 H .433
(ser \(group\) id not equal to the real user \(group\) id, and the).15 F
@@ -591,9469 +592,9878 @@ F2(case)3.144 E F0(or)3.144 E F2(select)3.143 E F0 .643(command \(only)
(are v)108 640.8 Q(alid\):)-.25 E F2 11.295(!c)144 657.6 S 8.795
(ase copr)-11.295 F 8.795(oc do done elif else esac \214 f)-.18 F 8.795
(or function if in select then)-.25 F 7.5(until while { } time [[ ]])144
-669.6 R F6(SHELL GRAMMAR)72 686.4 Q F2(Simple Commands)87 698.4 Q F0(A)
-108 710.4 Q F4 .389(simple command)2.889 F F0 .389
-(is a sequence of optional v)2.889 F .388(ariable assignments follo)-.25
-F .388(wed by)-.25 F F2(blank)2.888 E F0 .388(-separated w)B .388
-(ords and)-.1 F .815(redirections, and terminated by a)108 722.4 R F4
-(contr)3.315 E .815(ol oper)-.45 F(ator)-.15 E F0 5.815(.T)C .815
-(he \214rst w)-5.815 F .816(ord speci\214es the command to be e)-.1 F
--.15(xe)-.15 G(cuted,).15 E(GNU Bash 5.1)72 768 Q(2020 October 29)
-141.235 E(3)195.395 E 0 Cg EP
+669.6 R F6(SHELL GRAMMAR)72 686.4 Q F0
+(This section describes the syntax of the v)108 698.4 Q
+(arious forms of shell commands.)-.25 E(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(3)190.115 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E
-(and is passed as ar)108 84 Q(gument zero.)-.18 E(The remaining w)5 E
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(Simple Commands)87 84 Q F0(A)108 96 Q/F2 10/Times-Italic@0 SF .389
+(simple command)2.889 F F0 .389(is a sequence of optional v)2.889 F .388
+(ariable assignments follo)-.25 F .388(wed by)-.25 F F1(blank)2.888 E F0
+.388(-separated w)B .388(ords and)-.1 F .815
+(redirections, and terminated by a)108 108 R F2(contr)3.315 E .815
+(ol oper)-.45 F(ator)-.15 E F0 5.815(.T)C .815(he \214rst w)-5.815 F
+.816(ord speci\214es the command to be e)-.1 F -.15(xe)-.15 G(cuted,).15
+E(and is passed as ar)108 120 Q(gument zero.)-.18 E(The remaining w)5 E
(ords are passed as ar)-.1 E(guments to the in)-.18 E -.2(vo)-.4 G -.1
-(ke).2 G 2.5(dc).1 G(ommand.)-2.5 E(The return v)108 100.8 Q(alue of a)
--.25 E/F1 10/Times-Italic@0 SF(simple command)2.5 E F0(is its e)2.5 E
-(xit status, or 128+)-.15 E F1(n)A F0
-(if the command is terminated by signal)3.333 E F1(n)2.86 E F0(.).24 E
-/F2 10/Times-Bold@0 SF(Pipelines)87 117.6 Q F0(A)108 129.6 Q F1
-(pipeline)2.996 E F0 .496(is a sequence of one or more commands separat\
-ed by one of the control operators)2.996 F F2(|)2.996 E F0(or)2.996 E F2
-(|&)2.996 E F0 5.496(.T)C(he)-5.496 E(format for a pipeline is:)108
-141.6 Q([)144 158.4 Q F2(time)A F0([)2.5 E F2<ad70>A F0(]] [ ! ])A F1
-(command)2.5 E F0 2.5([[)2.5 G F2(|)-2.5 E/F3 10/Symbol SF<ef>A F2(|&)A
-F0(])A F1(command2)2.5 E F0(... ])2.5 E .231(The standard output of)108
-175.2 R F1(command)2.931 E F0 .232
-(is connected via a pipe to the standard input of)3.502 F F1(command2)
-2.932 E F0 5.232(.T).02 G .232(his connec-)-5.232 F .643
-(tion is performed before an)108 187.2 R 3.143(yr)-.15 G .642
-(edirections speci\214ed by the command \(see)-3.143 F/F4 9/Times-Bold@0
-SF(REDIRECTION)3.142 E F0(belo)2.892 E 3.142(w\). If)-.25 F F2(|&)3.142
-E F0(is)3.142 E(used,)108 199.2 Q F1(command)2.663 E F0 1.263 -.55('s s)
-D .163(tandard error).55 F 2.663(,i)-.4 G 2.663(na)-2.663 G .163
-(ddition to its standard output, is connected to)-2.663 F F1(command2)
-2.664 E F0 1.264 -.55('s s)D .164(tandard in-).55 F .438
-(put through the pipe; it is shorthand for)108 211.2 R F2 .437(2>&1 |)
-2.937 F F0 5.437(.T)C .437
-(his implicit redirection of the standard error to the stan-)-5.437 F
-(dard output is performed after an)108 223.2 Q 2.5(yr)-.15 G
-(edirections speci\214ed by the command.)-2.5 E .48
-(The return status of a pipeline is the e)108 240 R .48
-(xit status of the last command, unless the)-.15 F F2(pipefail)2.98 E F0
-.48(option is enabled.)2.98 F(If)108 252 Q F2(pipefail)2.687 E F0 .187
+(ke).2 G 2.5(dc).1 G(ommand.)-2.5 E(The return v)108 136.8 Q(alue of a)
+-.25 E F2(simple command)2.5 E F0(is its e)2.5 E(xit status, or 128+)
+-.15 E F2(n)A F0(if the command is terminated by signal)3.333 E F2(n)
+2.86 E F0(.).24 E F1(Pipelines)87 153.6 Q F0(A)108 165.6 Q F2(pipeline)
+2.996 E F0 .496(is a sequence of one or more commands separated by one \
+of the control operators)2.996 F F1(|)2.996 E F0(or)2.996 E F1(|&)2.996
+E F0 5.496(.T)C(he)-5.496 E(format for a pipeline is:)108 177.6 Q([)144
+194.4 Q F1(time)A F0([)2.5 E F1<ad70>A F0(]] [ ! ])A F2(command1)2.5 E
+F0 2.5([[)2.5 G F1(|)-2.5 E/F3 10/Symbol SF<ef>A F1(|&)A F0(])A F2
+(command2)2.5 E F0(... ])2.5 E .799(The standard output of)108 211.2 R
+F2(command1)3.499 E F0 .799
+(is connected via a pipe to the standard input of)3.299 F F2(command2)
+3.5 E F0 5.8(.T).02 G .8(his con-)-5.8 F .215
+(nection is performed before an)108 223.2 R 2.715(yr)-.15 G .214
+(edirections speci\214ed by the)-2.715 F F2(command1)2.914 E F0(\(see)A
+/F4 9/Times-Bold@0 SF(REDIRECTION)2.714 E F0(belo)2.464 E 2.714(w\). If)
+-.25 F F1(|&)2.714 E F0 .126(is used,)108 235.2 R F2(command1)2.626 E F0
+1.226 -.55('s s)D .126(tandard error).55 F 2.626(,i)-.4 G 2.626(na)
+-2.626 G .126(ddition to its standard output, is connected to)-2.626 F
+F2(command2)2.626 E F0 1.226 -.55('s s)D(tandard).55 E .028
+(input through the pipe; it is shorthand for)108 247.2 R F1 .028(2>&1 |)
+2.528 F F0 5.028(.T)C .028
+(his implicit redirection of the standard error to the stan-)-5.028 F
+(dard output is performed after an)108 259.2 Q 2.5(yr)-.15 G
+(edirections speci\214ed by)-2.5 E F2(command1)2.5 E F0(.)A .48
+(The return status of a pipeline is the e)108 276 R .48
+(xit status of the last command, unless the)-.15 F F1(pipefail)2.98 E F0
+.48(option is enabled.)2.98 F(If)108 288 Q F1(pipefail)2.687 E F0 .187
(is enabled, the pipeline')2.687 F 2.687(sr)-.55 G .186
(eturn status is the v)-2.687 F .186
(alue of the last \(rightmost\) command to e)-.25 F .186(xit with a)-.15
-F .61(non-zero status, or zero if all commands e)108 264 R .611
+F .61(non-zero status, or zero if all commands e)108 300 R .611
(xit successfully)-.15 F 5.611(.I)-.65 G 3.111(ft)-5.611 G .611
-(he reserv)-3.111 F .611(ed w)-.15 F(ord)-.1 E F2(!)3.111 E F0 .611
-(precedes a pipeline, the)5.611 F -.15(ex)108 276 S .55
+(he reserv)-3.111 F .611(ed w)-.15 F(ord)-.1 E F1(!)3.111 E F0 .611
+(precedes a pipeline, the)5.611 F -.15(ex)108 312 S .55
(it status of that pipeline is the logical ne).15 F -.05(ga)-.15 G .55
(tion of the e).05 F .55(xit status as described abo)-.15 F -.15(ve)-.15
G 5.55(.T).15 G .55(he shell w)-5.55 F .55(aits for)-.1 F
-(all commands in the pipeline to terminate before returning a v)108 288
-Q(alue.)-.25 E .298(If the)108 304.8 R F2(time)2.799 E F0(reserv)2.799 E
+(all commands in the pipeline to terminate before returning a v)108 324
+Q(alue.)-.25 E .298(If the)108 340.8 R F1(time)2.799 E F0(reserv)2.799 E
.299(ed w)-.15 F .299(ord precedes a pipeline, the elapsed as well as u\
-ser and system time consumed by its)-.1 F -.15(exe)108 316.8 S .14
-(cution are reported when the pipeline terminates.).15 F(The)5.139 E F2
+ser and system time consumed by its)-.1 F -.15(exe)108 352.8 S .14
+(cution are reported when the pipeline terminates.).15 F(The)5.139 E F1
<ad70>2.639 E F0 .139(option changes the output format to that spec-)
-2.639 F .302(i\214ed by POSIX.)108 328.8 R .303(When the shell is in)
-5.302 F F1 .303(posix mode)2.803 F F0 2.803(,i)C 2.803(td)-2.803 G .303
-(oes not recognize)-2.803 F F2(time)2.803 E F0 .303(as a reserv)2.803 F
-.303(ed w)-.15 F .303(ord if the ne)-.1 F(xt)-.15 E(tok)108 340.8 Q .736
+2.639 F .302(i\214ed by POSIX.)108 364.8 R .303(When the shell is in)
+5.302 F F2 .303(posix mode)2.803 F F0 2.803(,i)C 2.803(td)-2.803 G .303
+(oes not recognize)-2.803 F F1(time)2.803 E F0 .303(as a reserv)2.803 F
+.303(ed w)-.15 F .303(ord if the ne)-.1 F(xt)-.15 E(tok)108 376.8 Q .736
(en be)-.1 F .736(gins with a `-'.)-.15 F(The)5.736 E F4(TIMEFORMA)3.236
E(T)-.855 E F0 -.25(va)2.986 G .736
(riable may be set to a format string that speci\214es ho).25 F 3.235
(wt)-.25 G(he)-3.235 E .879
(timing information should be displayed; see the description of)108
-352.8 R F4(TIMEFORMA)3.38 E(T)-.855 E F0(under)3.13 E F2 .88(Shell V)
-3.38 F(ariables)-.92 E F0(be-)3.38 E(lo)108 364.8 Q -.65(w.)-.25 G .162
-(When the shell is in)108 381.6 R F1 .162(posix mode)2.662 F F0(,)A F2
+388.8 R F4(TIMEFORMA)3.38 E(T)-.855 E F0(under)3.13 E F1 .88(Shell V)
+3.38 F(ariables)-.92 E F0(be-)3.38 E(lo)108 400.8 Q -.65(w.)-.25 G .162
+(When the shell is in)108 417.6 R F2 .162(posix mode)2.662 F F0(,)A F1
(time)2.662 E F0 .162(may be follo)2.662 F .161(wed by a ne)-.25 F 2.661
(wline. In)-.25 F .161(this case, the shell displays the to-)2.661 F
.243(tal user and system time consumed by the shell and its children.)
-108 393.6 R(The)5.243 E F4(TIMEFORMA)2.743 E(T)-.855 E F0 -.25(va)2.493
+108 429.6 R(The)5.243 E F4(TIMEFORMA)2.743 E(T)-.855 E F0 -.25(va)2.493
G .243(riable may be used).25 F
-(to specify the format of the time information.)108 405.6 Q .656
-(Each command in a pipeline is e)108 422.4 R -.15(xe)-.15 G .655
-(cuted as a separate process \(i.e., in a subshell\).).15 F(See)5.655 E
-F4 .655(COMMAND EXE-)3.155 F .05(CUTION ENVIR)108 434.4 R(ONMENT)-.27 E
-F0 .051(for a description of a subshell en)2.3 F 2.551(vironment. If)-.4
-F(the)2.551 E F2(lastpipe)2.551 E F0 .051(option is enabled us-)2.551 F
-.416(ing the)108 446.4 R F2(shopt)2.916 E F0 -.2(bu)2.916 G .416
-(iltin \(see the description of).2 F F2(shopt)2.916 E F0(belo)2.916 E
-.416(w\), the last element of a pipeline may be run by the)-.25 F
-(shell process.)108 458.4 Q F2(Lists)87 475.2 Q F0(A)108 487.2 Q F1
-(list)2.849 E F0 .349(is a sequence of one or more pipelines separated \
-by one of the operators)2.849 F F2(;)2.85 E F0(,)A F2(&)2.85 E F0(,)A F2
-(&&)2.85 E F0 2.85(,o)C(r)-2.85 E F2(||)2.85 E F0 2.85(,a)C .35
-(nd option-)-2.85 F(ally terminated by one of)108 499.2 Q F2(;)2.5 E F0
-(,)A F2(&)2.5 E F0 2.5(,o)C(r)-2.5 E F2(<newline>)2.5 E F0(.)A .961
-(Of these list operators,)108 516 R F2(&&)3.461 E F0(and)3.461 E F2(||)
+(to specify the format of the time information.)108 441.6 Q .304(Each c\
+ommand in a multi-command pipeline, where pipes are created, is e)108
+458.4 R -.15(xe)-.15 G .303(cuted in a).15 F F2(subshell)2.803 E F0
+2.803(,w)C .303(hich is a)-2.803 F .207(separate process.)108 470.4 R
+(See)5.207 E F4 .208(COMMAND EXECUTION ENVIR)2.708 F(ONMENT)-.27 E F0
+.208(for a description of subshells and a sub-)2.458 F .927(shell en)108
+482.4 R 3.427(vironment. If)-.4 F(the)3.427 E F1(lastpipe)3.427 E F0
+.927(option is enabled using the)3.427 F F1(shopt)3.427 E F0 -.2(bu)
+3.427 G .927(iltin \(see the description of).2 F F1(shopt)3.426 E F0
+(belo)108 494.4 Q(w\), the last element of a pipeline may be run by the\
+ shell process when job control is not acti)-.25 E -.15(ve)-.25 G(.).15
+E F1(Lists)87 511.2 Q F0(A)108 523.2 Q F2(list)2.849 E F0 .349(is a seq\
+uence of one or more pipelines separated by one of the operators)2.849 F
+F1(;)2.85 E F0(,)A F1(&)2.85 E F0(,)A F1(&&)2.85 E F0 2.85(,o)C(r)-2.85
+E F1(||)2.85 E F0 2.85(,a)C .35(nd option-)-2.85 F
+(ally terminated by one of)108 535.2 Q F1(;)2.5 E F0(,)A F1(&)2.5 E F0
+2.5(,o)C(r)-2.5 E F1(<newline>)2.5 E F0(.)A .961
+(Of these list operators,)108 552 R F1(&&)3.461 E F0(and)3.461 E F1(||)
3.461 E F0(ha)3.461 E 1.261 -.15(ve e)-.2 H .961(qual precedence, follo)
-.15 F .96(wed by)-.25 F F2(;)3.46 E F0(and)3.46 E F2(&)3.46 E F0 3.46
+.15 F .96(wed by)-.25 F F1(;)3.46 E F0(and)3.46 E F1(&)3.46 E F0 3.46
(,w)C .96(hich ha)-3.46 F 1.26 -.15(ve e)-.2 H .96(qual prece-).15 F
-(dence.)108 528 Q 2.5(As)108 544.8 S(equence of one or more ne)-2.5 E
-(wlines may appear in a)-.25 E F1(list)2.5 E F0
+(dence.)108 564 Q 2.5(As)108 580.8 S(equence of one or more ne)-2.5 E
+(wlines may appear in a)-.25 E F2(list)2.5 E F0
(instead of a semicolon to delimit commands.)2.5 E .029
-(If a command is terminated by the control operator)108 561.6 R F2(&)
+(If a command is terminated by the control operator)108 597.6 R F1(&)
2.529 E F0 2.529(,t)C .029(he shell e)-2.529 F -.15(xe)-.15 G .029
-(cutes the command in the).15 F F1(bac)2.529 E(kgr)-.2 E(ound)-.45 E F0
-(in)2.529 E 2.678(as)108 573.6 S 2.678(ubshell. The)-2.678 F .178
+(cutes the command in the).15 F F2(bac)2.529 E(kgr)-.2 E(ound)-.45 E F0
+(in)2.529 E 2.678(as)108 609.6 S 2.678(ubshell. The)-2.678 F .178
(shell does not w)2.678 F .178
(ait for the command to \214nish, and the return status is 0.)-.1 F .178
-(These are referred)5.178 F .778(to as)108 585.6 R F1(async)3.278 E(hr)
+(These are referred)5.178 F .778(to as)108 621.6 R F2(async)3.278 E(hr)
-.15 E(onous)-.45 E F0 3.278(commands. Commands)3.278 F .779
-(separated by a)3.278 F F2(;)3.279 E F0 .779(are e)3.279 F -.15(xe)-.15
+(separated by a)3.278 F F1(;)3.279 E F0 .779(are e)3.279 F -.15(xe)-.15
G .779(cuted sequentially; the shell w).15 F .779(aits for)-.1 F
-(each command to terminate in turn.)108 597.6 Q
+(each command to terminate in turn.)108 633.6 Q
(The return status is the e)5 E(xit status of the last command e)-.15 E
-.15(xe)-.15 G(cuted.).15 E .172(AND and OR lists are sequences of one \
-or more pipelines separated by the)108 614.4 R F2(&&)2.671 E F0(and)
-2.671 E F2(||)2.671 E F0 .171(control operators, re-)2.671 F(specti)108
-626.4 Q -.15(ve)-.25 G(ly).15 E 5(.A)-.65 G(ND and OR lists are e)-5 E
+or more pipelines separated by the)108 650.4 R F1(&&)2.671 E F0(and)
+2.671 E F1(||)2.671 E F0 .171(control operators, re-)2.671 F(specti)108
+662.4 Q -.15(ve)-.25 G(ly).15 E 5(.A)-.65 G(ND and OR lists are e)-5 E
-.15(xe)-.15 G(cuted with left associati).15 E(vity)-.25 E 5(.A)-.65 G
-2.5(nA)-5 G(ND list has the form)-2.5 E F1(command1)144 643.2 Q F2(&&)
-2.5 E F1(command2)2.5 E(command2)108.2 660 Q F0(is e)2.52 E -.15(xe)-.15
-G(cuted if, and only if,).15 E F1(command1)2.7 E F0(returns an e)2.5 E
+2.5(nA)-5 G(ND list has the form)-2.5 E F2(command1)144 679.2 Q F1(&&)
+2.5 E F2(command2)2.5 E(command2)108.2 696 Q F0(is e)2.52 E -.15(xe)-.15
+G(cuted if, and only if,).15 E F2(command1)2.7 E F0(returns an e)2.5 E
(xit status of zero \(success\).)-.15 E(An OR list has the form)108
-676.8 Q F1(command1)144 693.6 Q F2(||)2.5 E F1(command2)2.5 E(command2)
-108.2 710.4 Q F0 .434(is e)2.954 F -.15(xe)-.15 G .434
-(cuted if, and only if,).15 F F1(command1)3.135 E F0 .435
-(returns a non-zero e)2.935 F .435(xit status.)-.15 F .435
-(The return status of AND)5.435 F(and OR lists is the e)108 722.4 Q
-(xit status of the last command e)-.15 E -.15(xe)-.15 G
-(cuted in the list.).15 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235
-E(4)195.395 E 0 Cg EP
+712.8 Q F2(command1)144 729.6 Q F1(||)2.5 E F2(command2)2.5 E F0
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(4)190.115 E 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(Compound Commands)87 84 Q F0(A)108 96 Q/F2 10/Times-Italic@0 SF 1.054
-(compound command)3.554 F F0 1.054(is one of the follo)3.554 F 3.553
-(wing. In)-.25 F 1.053(most cases a)3.553 F F2(list)3.553 E F0 1.053
-(in a command')3.553 F 3.553(sd)-.55 G 1.053(escription may be)-3.553 F
-1.026(separated from the rest of the command by one or more ne)108 108 R
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10
+/Times-Italic@0 SF(command2)108.2 84 Q F0 .434(is e)2.954 F -.15(xe)-.15
+G .434(cuted if, and only if,).15 F F1(command1)3.135 E F0 .435
+(returns a non-zero e)2.935 F .435(xit status.)-.15 F .435
+(The return status of AND)5.435 F(and OR lists is the e)108 96 Q
+(xit status of the last command e)-.15 E -.15(xe)-.15 G
+(cuted in the list.).15 E/F2 10/Times-Bold@0 SF(Compound Commands)87
+112.8 Q F0(A)108 124.8 Q F1 1.054(compound command)3.554 F F0 1.054
+(is one of the follo)3.554 F 3.553(wing. In)-.25 F 1.053(most cases a)
+3.553 F F1(list)3.553 E F0 1.053(in a command')3.553 F 3.553(sd)-.55 G
+1.053(escription may be)-3.553 F 1.026
+(separated from the rest of the command by one or more ne)108 136.8 R
1.026(wlines, and may be follo)-.25 F 1.027(wed by a ne)-.25 F 1.027
-(wline in)-.25 F(place of a semicolon.)108 120 Q(\()108 136.8 Q F2(list)
-A F0(\))A F2(list)144 136.8 Q F0 .011(is e)2.512 F -.15(xe)-.15 G .011
-(cuted in a subshell en).15 F .011(vironment \(see)-.4 F/F3 9
-/Times-Bold@0 SF .011(COMMAND EXECUTION ENVIR)2.511 F(ONMENT)-.27 E F0
-(belo)2.261 E(w\).)-.25 E -1.11(Va)144 148.8 S .016
-(riable assignments and b)1.11 F .016(uiltin commands that af)-.2 F .016
-(fect the shell')-.25 F 2.517(se)-.55 G -.4(nv)-2.517 G .017
-(ironment do not remain in ef-).4 F(fect after the command completes.)
-144 160.8 Q(The return status is the e)5 E(xit status of)-.15 E F2(list)
-2.5 E F0(.)A({)108 177.6 Q F2(list)2.5 E F0 2.5(;})C F2(list)144 177.6 Q
-F0 .402(is simply e)2.902 F -.15(xe)-.15 G .401
-(cuted in the current shell en).15 F(vironment.)-.4 E F2(list)5.401 E F0
-.401(must be terminated with a ne)2.901 F .401(wline or)-.25 F 3.214
-(semicolon. This)144 189.6 R .714(is kno)3.214 F .714(wn as a)-.25 F F2
+(wline in)-.25 F(place of a semicolon.)108 148.8 Q(\()108 165.6 Q F1
+(list)A F0(\))A F1(list)144 165.6 Q F0 .215(is e)2.715 F -.15(xe)-.15 G
+.215(cuted in a subshell \(see).15 F/F3 9/Times-Bold@0 SF .215
+(COMMAND EXECUTION ENVIR)2.715 F(ONMENT)-.27 E F0(belo)2.465 E 2.714(wf)
+-.25 G .214(or a descrip-)-2.714 F .209(tion of a subshell en)144 177.6
+R 2.709(vironment\). V)-.4 F .209(ariable assignments and b)-1.11 F .209
+(uiltin commands that af)-.2 F .21(fect the shell')-.25 F(s)-.55 E(en)
+144 189.6 Q 1.069(vironment do not remain in ef)-.4 F 1.069
+(fect after the command completes.)-.25 F 1.068
+(The return status is the e)6.069 F(xit)-.15 E(status of)144 201.6 Q F1
+(list)2.5 E F0(.)A({)108 218.4 Q F1(list)2.5 E F0 2.5(;})C F1(list)144
+218.4 Q F0 .401(is simply e)2.901 F -.15(xe)-.15 G .401
+(cuted in the current shell en).15 F(vironment.)-.4 E F1(list)5.401 E F0
+.402(must be terminated with a ne)2.901 F .402(wline or)-.25 F 3.215
+(semicolon. This)144 230.4 R .715(is kno)3.215 F .715(wn as a)-.25 F F1
(gr)3.215 E .715(oup command)-.45 F F0 5.715(.T)C .715
-(he return status is the e)-5.715 F .715(xit status of)-.15 F F2(list)
-3.215 E F0 5.715(.N)C(ote)-5.715 E .22(that unlik)144 201.6 R 2.72(et)
--.1 G .22(he metacharacters)-2.72 F F1(\()2.72 E F0(and)2.72 E F1(\))
-2.72 E F0(,)A F1({)2.72 E F0(and)2.72 E F1(})2.719 E F0(are)2.719 E F2
--.37(re)2.719 G .219(served wor).37 F(ds)-.37 E F0 .219
-(and must occur where a reserv)2.719 F(ed)-.15 E -.1(wo)144 213.6 S .256
-(rd is permitted to be recognized.).1 F .256(Since the)5.256 F 2.756(yd)
--.15 G 2.756(on)-2.756 G .257(ot cause a w)-2.756 F .257(ord break, the)
--.1 F 2.757(ym)-.15 G .257(ust be separated)-2.757 F(from)144 225.6 Q F2
+(he return status is the e)-5.715 F .714(xit status of)-.15 F F1(list)
+3.214 E F0 5.714(.N)C(ote)-5.714 E .219(that unlik)144 242.4 R 2.719(et)
+-.1 G .219(he metacharacters)-2.719 F F2(\()2.719 E F0(and)2.719 E F2
+(\))2.719 E F0(,)A F2({)2.719 E F0(and)2.719 E F2(})2.719 E F0(are)2.719
+E F1 -.37(re)2.72 G .22(served wor).37 F(ds)-.37 E F0 .22
+(and must occur where a reserv)2.72 F(ed)-.15 E -.1(wo)144 254.4 S .257
+(rd is permitted to be recognized.).1 F .257(Since the)5.257 F 2.757(yd)
+-.15 G 2.756(on)-2.757 G .256(ot cause a w)-2.756 F .256(ord break, the)
+-.1 F 2.756(ym)-.15 G .256(ust be separated)-2.756 F(from)144 266.4 Q F1
(list)2.5 E F0(by whitespace or another shell metacharacter)2.5 E(.)-.55
-E(\(\()108 242.4 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F0(\)\))A(The)144
-254.4 Q F2 -.2(ex)2.552 G(pr).2 E(ession)-.37 E F0 .052(is e)2.552 F
+E(\(\()108 283.2 Q F1 -.2(ex)C(pr).2 E(ession)-.37 E F0(\)\))A(The)144
+295.2 Q F1 -.2(ex)2.551 G(pr).2 E(ession)-.37 E F0 .051(is e)2.551 F
-.25(va)-.25 G .051(luated according to the rules described belo).25 F
-2.551(wu)-.25 G(nder)-2.551 E F3 .051(ARITHMETIC EV)2.551 F(ALU)-1.215 E
-(A-)-.54 E(TION)144 266.4 Q/F4 9/Times-Roman@0 SF(.)A F0 .411(If the v)
-4.91 F .411(alue of the e)-.25 F .411(xpression is non-zero, the return\
- status is 0; otherwise the return status)-.15 F(is 1.)144 278.4 Q
-(This is e)5 E(xactly equi)-.15 E -.25(va)-.25 G(lent to).25 E F1(let ")
-2.5 E F2 -.2(ex)C(pr).2 E(ession)-.37 E F1(")A F0(.)A F1([[)108 295.2 Q
-F2 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F1(]])2.5 E F0 .003
-(Return a status of 0 or 1 depending on the e)144 307.2 R -.25(va)-.25 G
-.003(luation of the conditional e).25 F(xpression)-.15 E F2 -.2(ex)2.503
-G(pr).2 E(ession)-.37 E F0 5.003(.E)C(x-)-5.003 E .758
-(pressions are composed of the primaries described belo)144 319.2 R
-3.259(wu)-.25 G(nder)-3.259 E F3(CONDITION)3.259 E .759(AL EXPRESSIONS)
--.18 F F4(.)A F0 -.8(Wo)144 331.2 S .029(rd splitting and pathname e).8
-F .029(xpansion are not performed on the w)-.15 F .029(ords between the)
--.1 F F1([[)2.528 E F0(and)2.528 E F1(]])2.528 E F0 2.528(;t)C(ilde)
--2.528 E -.15(ex)144 343.2 S 3.968(pansion, parameter and v).15 F 3.969
-(ariable e)-.25 F 3.969(xpansion, arithmetic e)-.15 F 3.969
-(xpansion, command substitution,)-.15 F .571
-(process substitution, and quote remo)144 355.2 R -.25(va)-.15 G 3.071
-(la).25 G .571(re performed.)-3.071 F .571
-(Conditional operators such as)5.571 F F1<ad66>3.07 E F0 .57(must be)
-3.07 F(unquoted to be recognized as primaries.)144 367.2 Q
-(When used with)144 385.2 Q F1([[)2.5 E F0 2.5(,t)C(he)-2.5 E F1(<)2.5 E
-F0(and)2.5 E F1(>)2.5 E F0(operators sort le)2.5 E
-(xicographically using the current locale.)-.15 E .502(When the)144
-403.2 R F1(==)3.002 E F0(and)3.002 E F1(!=)3.002 E F0 .502(operators ar\
-e used, the string to the right of the operator is considered a pat-)
-3.002 F .81(tern and matched according to the rules described belo)144
-415.2 R 3.31(wu)-.25 G(nder)-3.31 E F1 -.1(Pa)3.31 G(tter).1 E 3.31(nM)
--.15 G(atching)-3.31 E F0 3.31(,a)C 3.31(si)-3.31 G 3.31(ft)-3.31 G(he)
--3.31 E F1(ext-)3.31 E(glob)144 427.2 Q F0 .313
-(shell option were enabled.)2.813 F(The)5.313 E F1(=)2.813 E F0 .313
-(operator is equi)2.813 F -.25(va)-.25 G .313(lent to).25 F F1(==)2.813
-E F0 5.313(.I)C 2.813(ft)-5.313 G(he)-2.813 E F1(nocasematch)2.813 E F0
-.314(shell op-)2.814 F .03
-(tion is enabled, the match is performed without re)144 439.2 R -.05(ga)
--.15 G .029(rd to the case of alphabetic characters.).05 F .029(The re-)
-5.029 F .258(turn v)144 451.2 R .259(alue is 0 if the string matches \()
--.25 F F1(==)A F0 2.759(\)o)C 2.759(rd)-2.759 G .259(oes not match \()
--2.759 F F1(!=)A F0 2.759(\)t)C .259(he pattern, and 1 otherwise.)-2.759
-F(An)5.259 E(y)-.15 E(part of the pattern may be quoted to force the qu\
-oted portion to be matched as a string.)144 463.2 Q .243
-(An additional binary operator)144 481.2 R(,)-.4 E F1(=~)2.743 E F0
-2.743(,i)C 2.743(sa)-2.743 G -.25(va)-2.943 G .243
-(ilable, with the same precedence as).25 F F1(==)2.743 E F0(and)2.743 E
-F1(!=)2.743 E F0 5.243(.W)C .243(hen it is)-5.243 F .182
+2.552(wu)-.25 G(nder)-2.552 E F3 .052(ARITHMETIC EV)2.552 F(ALU)-1.215 E
+(A-)-.54 E(TION)144 307.2 Q/F4 9/Times-Roman@0 SF(.)A F0 .411(If the v)
+4.911 F .411(alue of the e)-.25 F .411(xpression is non-zero, the retur\
+n status is 0; otherwise the return status)-.15 F .186(is 1.)144 319.2 R
+(The)5.186 E F1 -.2(ex)2.686 G(pr).2 E(ession)-.37 E F0(under)2.686 E
+.186(goes the same e)-.18 F .186
+(xpansions as if it were within double quotes, b)-.15 F .187(ut double)
+-.2 F(quote characters in)144 331.2 Q F1 -.2(ex)2.5 G(pr).2 E(ession)
+-.37 E F0(are not treated specially and are remo)2.5 E -.15(ve)-.15 G
+(d.).15 E F2([[)108 348 Q F1 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F2(]])
+2.5 E F0 .003(Return a status of 0 or 1 depending on the e)144 360 R
+-.25(va)-.25 G .003(luation of the conditional e).25 F(xpression)-.15 E
+F1 -.2(ex)2.503 G(pr).2 E(ession)-.37 E F0 5.003(.E)C(x-)-5.003 E .758
+(pressions are composed of the primaries described belo)144 372 R 3.259
+(wu)-.25 G(nder)-3.259 E F3(CONDITION)3.259 E .759(AL EXPRESSIONS)-.18 F
+F4(.)A F0 .065(The w)144 384 R .065(ords between the)-.1 F F2([[)2.565 E
+F0(and)2.565 E F2(]])2.565 E F0 .065(do not under)2.565 F .065(go w)-.18
+F .065(ord splitting and pathname e)-.1 F 2.565(xpansion. The)-.15 F
+(shell)2.565 E .483(performs tilde e)144 396 R .483
+(xpansion, parameter and v)-.15 F .483(ariable e)-.25 F .483
+(xpansion, arithmetic e)-.15 F .483(xpansion, command sub-)-.15 F .201
+(stitution, process substitution, and quote remo)144 408 R -.25(va)-.15
+G 2.701(lo).25 G 2.701(nt)-2.701 G .201(hose w)-2.701 F .201
+(ords \(the e)-.1 F .2(xpansions that w)-.15 F .2(ould occur)-.1 F .382
+(if the w)144 420 R .382(ords were enclosed in double quotes\).)-.1 F
+.382(Conditional operators such as)5.382 F F2<ad66>2.882 E F0 .382
+(must be unquoted)2.882 F(to be recognized as primaries.)144 432 Q
+(When used with)144 450 Q F2([[)2.5 E F0 2.5(,t)C(he)-2.5 E F2(<)2.5 E
+F0(and)2.5 E F2(>)2.5 E F0(operators sort le)2.5 E
+(xicographically using the current locale.)-.15 E .503(When the)144 468
+R F2(==)3.003 E F0(and)3.002 E F2(!=)3.002 E F0 .502(operators are used\
+, the string to the right of the operator is considered a pat-)3.002 F
+.81(tern and matched according to the rules described belo)144 480 R
+3.31(wu)-.25 G(nder)-3.31 E F2 -.1(Pa)3.31 G(tter).1 E 3.31(nM)-.15 G
+(atching)-3.31 E F0 3.31(,a)C 3.31(si)-3.31 G 3.31(ft)-3.31 G(he)-3.31 E
+F2(ext-)3.31 E(glob)144 492 Q F0 .313(shell option were enabled.)2.814 F
+(The)5.313 E F2(=)2.813 E F0 .313(operator is equi)2.813 F -.25(va)-.25
+G .313(lent to).25 F F2(==)2.813 E F0 5.313(.I)C 2.813(ft)-5.313 G(he)
+-2.813 E F2(nocasematch)2.813 E F0 .313(shell op-)2.813 F .029
+(tion is enabled, the match is performed without re)144 504 R -.05(ga)
+-.15 G .03(rd to the case of alphabetic characters.).05 F .03(The re-)
+5.03 F .259(turn v)144 516 R .259(alue is 0 if the string matches \()
+-.25 F F2(==)A F0 2.759(\)o)C 2.759(rd)-2.759 G .259(oes not match \()
+-2.759 F F2(!=)A F0 2.759(\)t)C .259(he pattern, and 1 otherwise.)-2.759
+F(An)5.258 E(y)-.15 E(part of the pattern may be quoted to force the qu\
+oted portion to be matched as a string.)144 528 Q .243
+(An additional binary operator)144 546 R(,)-.4 E F2(=~)2.743 E F0 2.743
+(,i)C 2.743(sa)-2.743 G -.25(va)-2.943 G .243
+(ilable, with the same precedence as).25 F F2(==)2.743 E F0(and)2.743 E
+F2(!=)2.743 E F0 5.243(.W)C .243(hen it is)-5.243 F .182
(used, the string to the right of the operator is considered a POSIX e)
-144 493.2 R .182(xtended re)-.15 F .182(gular e)-.15 F .182
-(xpression and)-.15 F 2.624(matched accordingly \(using the POSIX)144
-505.2 R F2 -.37(re)5.124 G(gcomp)-.03 E F0(and)5.124 E F2 -.37(re)5.124
-G -.1(ge)-.03 G(xec)-.1 E F0(interf)5.123 E 2.623
-(aces usually described in)-.1 F F2 -.37(re)144 517.2 S -.1(ge)-.03 G(x)
--.1 E F0 3.271(\(3\)\). The)B .771(return v)3.271 F .772
+144 558 R .182(xtended re)-.15 F .181(gular e)-.15 F .181(xpression and)
+-.15 F 2.623(matched accordingly \(using the POSIX)144 570 R F1 -.37(re)
+5.124 G(gcomp)-.03 E F0(and)5.124 E F1 -.37(re)5.124 G -.1(ge)-.03 G
+(xec)-.1 E F0(interf)5.124 E 2.624(aces usually described in)-.1 F F1
+-.37(re)144 582 S -.1(ge)-.03 G(x)-.1 E F0 3.272(\(3\)\). The)B .772
+(return v)3.272 F .772
(alue is 0 if the string matches the pattern, and 1 otherwise.)-.25 F
-.772(If the re)5.772 F(gular)-.15 E -.15(ex)144 529.2 S .509
+.771(If the re)5.771 F(gular)-.15 E -.15(ex)144 594 S .508
(pression is syntactically incorrect, the conditional e).15 F
-(xpression')-.15 E 3.008(sr)-.55 G .508(eturn v)-3.008 F .508
-(alue is 2.)-.25 F .508(If the)5.508 F F1(nocase-)3.008 E(match)144
-541.2 Q F0 1.307
-(shell option is enabled, the match is performed without re)3.806 F -.05
-(ga)-.15 G 1.307(rd to the case of alphabetic).05 F 3.063
-(characters. An)144 553.2 R 3.063(yp)-.15 G .563(art of the pattern may\
- be quoted to force the quoted portion to be matched as a)-3.063 F 2.943
-(string. Brack)144 565.2 R .443(et e)-.1 F .443(xpressions in re)-.15 F
-.443(gular e)-.15 F .443(xpressions must be treated carefully)-.15 F
-2.944(,s)-.65 G .444(ince normal quoting)-2.944 F .615
-(characters lose their meanings between brack)144 577.2 R 3.115(ets. If)
--.1 F .614(the pattern is stored in a shell v)3.115 F .614
-(ariable, quot-)-.25 F(ing the v)144 589.2 Q(ariable e)-.25 E
-(xpansion forces the entire pattern to be matched as a string.)-.15 E
-.838(The pattern will match if it matches an)144 607.2 R 3.338(yp)-.15 G
-.838(art of the string.)-3.338 F .839(Anchor the pattern using the)5.839
-F F1(^)3.339 E F0(and)3.339 E F1($)3.339 E F0(re)144 619.2 Q .847
-(gular e)-.15 F .846
+(xpression')-.15 E 3.008(sr)-.55 G .509(eturn v)-3.008 F .509
+(alue is 2.)-.25 F .509(If the)5.509 F F2(nocase-)3.009 E(match)144 606
+Q F0 1.307(shell option is enabled, the match is performed without re)
+3.807 F -.05(ga)-.15 G 1.306(rd to the case of alphabetic).05 F 2.599
+(characters. If)144 618 R(an)2.599 E 2.599(yp)-.15 G .099
+(art of the pattern is quoted, the quoted portion is matched literally)
+-2.599 F 5.1(.T)-.65 G .1(his means)-5.1 F -2.15 -.25(ev e)144 630 T
+.032(ry character in the quoted portion matches itself, instead of ha)
+.25 F .031(ving an)-.2 F 2.531(ys)-.15 G .031(pecial pattern matching)
+-2.531 F 3.041(meaning. If)144 642 R .542
+(the pattern is stored in a shell v)3.041 F .542(ariable, quoting the v)
+-.25 F .542(ariable e)-.25 F .542(xpansion forces the en-)-.15 F 1.825
+(tire pattern to be matched literally)144 654 R 6.825(.T)-.65 G 1.825
+(reat brack)-7.175 F 1.825(et e)-.1 F 1.825(xpressions in re)-.15 F
+1.825(gular e)-.15 F 1.825(xpressions carefully)-.15 F(,)-.65 E(since n\
+ormal quoting and pattern characters lose their meanings between brack)
+144 666 Q(ets.)-.1 E .838(The pattern will match if it matches an)144
+684 R 3.338(yp)-.15 G .838(art of the string.)-3.338 F .839
+(Anchor the pattern using the)5.839 F F2(^)3.339 E F0(and)3.339 E F2($)
+3.339 E F0(re)144 696 Q .847(gular e)-.15 F .846
(xpression operators to force it to match the entire string.)-.15 F .846
(The array v)5.846 F(ariable)-.25 E F3 -.27(BA)3.346 G(SH_RE-).27 E(MA)
-144 631.2 Q(TCH)-.855 E F0 .321
+144 708 Q(TCH)-.855 E F0 .321
(records which parts of the string matched the pattern.)2.571 F .322
(The element of)5.322 F F3 -.27(BA)2.822 G(SH_REMA).27 E(TCH)-.855 E F0
-.583(with inde)144 643.2 R 3.083(x0)-.15 G .582
+.583(with inde)144 720 R 3.083(x0)-.15 G .582
(contains the portion of the string matching the entire re)-.001 F .582
-(gular e)-.15 F 3.082(xpression. Substrings)-.15 F .249
-(matched by parenthesized sube)144 655.2 R .249
-(xpressions within the re)-.15 F .249(gular e)-.15 F .249
-(xpression are sa)-.15 F -.15(ve)-.2 G 2.749(di).15 G 2.75(nt)-2.749 G
-.25(he remaining)-2.75 F F3 -.27(BA)144 667.2 S(SH_REMA).27 E(TCH)-.855
-E F0 1.13(indices. The element of)3.38 F F3 -.27(BA)3.63 G(SH_REMA).27 E
-(TCH)-.855 E F0 1.13(with inde)3.38 F(x)-.15 E F2(n)3.63 E F0 1.13
-(is the portion of the)3.63 F(string matching the)144 679.2 Q F2(n)2.5 E
-F0(th parenthesized sube)A(xpression.)-.15 E .785
-(Expressions may be combined using the follo)144 697.2 R .786
-(wing operators, listed in decreasing order of prece-)-.25 F(dence:)144
-709.2 Q(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(5)195.395 E 0 Cg
-EP
+(gular e)-.15 F 3.082(xpression. Substrings)-.15 F(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(5)190.115 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(\()144 84 Q/F2 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E(ession)-.37
-E F1(\))2.5 E F0 .523(Returns the v)180 96 R .522(alue of)-.25 F F2 -.2
-(ex)3.022 G(pr).2 E(ession)-.37 E F0 5.522(.T)C .522
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .249
+(matched by parenthesized sube)144 84 R .249(xpressions within the re)
+-.15 F .249(gular e)-.15 F .249(xpression are sa)-.15 F -.15(ve)-.2 G
+2.749(di).15 G 2.75(nt)-2.749 G .25(he remaining)-2.75 F/F1 9
+/Times-Bold@0 SF -.27(BA)144 96 S(SH_REMA).27 E(TCH)-.855 E F0 1.13
+(indices. The element of)3.38 F F1 -.27(BA)3.63 G(SH_REMA).27 E(TCH)
+-.855 E F0 1.13(with inde)3.38 F(x)-.15 E/F2 10/Times-Italic@0 SF(n)3.63
+E F0 1.13(is the portion of the)3.63 F 1.125(string matching the)144 108
+R F2(n)3.625 E F0 1.125(th parenthesized sube)B 3.625(xpression. Bash)
+-.15 F(sets)3.626 E F1 -.27(BA)3.626 G(SH_REMA).27 E(TCH)-.855 E F0
+1.126(in the global)3.376 F(scope; declaring it as a local v)144 120 Q
+(ariable will lead to une)-.25 E(xpected results.)-.15 E .786
+(Expressions may be combined using the follo)144 138 R .785
+(wing operators, listed in decreasing order of prece-)-.25 F(dence:)144
+150 Q/F3 10/Times-Bold@0 SF(\()144 168 Q F2 -.2(ex)2.5 G(pr).2 E(ession)
+-.37 E F3(\))2.5 E F0 .522(Returns the v)180 180 R .522(alue of)-.25 F
+F2 -.2(ex)3.022 G(pr).2 E(ession)-.37 E F0 5.522(.T)C .522
(his may be used to o)-5.522 F -.15(ve)-.15 G .522
-(rride the normal precedence of).15 F(operators.)180 108 Q F1(!)144 120
-Q F2 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F0 -.35(Tr)180 132 S(ue if).35 E
+(rride the normal precedence of).15 F(operators.)180 192 Q F3(!)144 204
+Q F2 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F0 -.35(Tr)180 216 S(ue if).35 E
F2 -.2(ex)2.5 G(pr).2 E(ession)-.37 E F0(is f)2.74 E(alse.)-.1 E F2 -.2
-(ex)144 144 S(pr).2 E(ession1)-.37 E F1(&&)2.5 E F2 -.2(ex)2.5 G(pr).2 E
-(ession2)-.37 E F0 -.35(Tr)180 156 S(ue if both).35 E F2 -.2(ex)2.5 G
+(ex)144 228 S(pr).2 E(ession1)-.37 E F3(&&)2.5 E F2 -.2(ex)2.5 G(pr).2 E
+(ession2)-.37 E F0 -.35(Tr)180 240 S(ue if both).35 E F2 -.2(ex)2.5 G
(pr).2 E(ession1)-.37 E F0(and)2.5 E F2 -.2(ex)2.5 G(pr).2 E(ession2)
--.37 E F0(are true.)2.52 E F2 -.2(ex)144 168 S(pr).2 E(ession1)-.37 E F1
-(||)2.5 E F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0 -.35(Tr)180 180 S
+-.37 E F0(are true.)2.52 E F2 -.2(ex)144 252 S(pr).2 E(ession1)-.37 E F3
+(||)2.5 E F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0 -.35(Tr)180 264 S
(ue if either).35 E F2 -.2(ex)2.5 G(pr).2 E(ession1)-.37 E F0(or)2.5 E
-F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0(is true.)2.52 E(The)144 196.8
-Q F1(&&)2.675 E F0(and)2.675 E F1(||)2.675 E F0 .175(operators do not e)
-2.675 F -.25(va)-.25 G(luate).25 E F2 -.2(ex)2.675 G(pr).2 E(ession2)
--.37 E F0 .175(if the v)2.675 F .175(alue of)-.25 F F2 -.2(ex)2.676 G
-(pr).2 E(ession1)-.37 E F0 .176(is suf)2.676 F .176(\214cient to de-)
--.25 F(termine the return v)144 208.8 Q
-(alue of the entire conditional e)-.25 E(xpression.)-.15 E F1 -.25(fo)
-108 225.6 S(r).25 E F2(name)2.5 E F0 2.5([[)2.5 G F1(in)A F0([)2.5 E F2
-(wor)2.5 E 2.5(d.)-.37 G(..)-2.5 E F0 2.5(]];])2.5 G F1(do)A F2(list)2.5
-E F0(;)2.5 E F1(done)2.5 E F0 .424(The list of w)144 237.6 R .424
-(ords follo)-.1 F(wing)-.25 E F1(in)2.924 E F0 .423(is e)2.924 F .423
-(xpanded, generating a list of items.)-.15 F .423(The v)5.423 F(ariable)
--.25 E F2(name)2.923 E F0 .423(is set to)2.923 F .653
-(each element of this list in turn, and)144 249.6 R F2(list)3.153 E F0
+F2 -.2(ex)2.5 G(pr).2 E(ession2)-.37 E F0(is true.)2.52 E(The)144 280.8
+Q F3(&&)2.676 E F0(and)2.676 E F3(||)2.676 E F0 .175(operators do not e)
+2.676 F -.25(va)-.25 G(luate).25 E F2 -.2(ex)2.675 G(pr).2 E(ession2)
+-.37 E F0 .175(if the v)2.675 F .175(alue of)-.25 F F2 -.2(ex)2.675 G
+(pr).2 E(ession1)-.37 E F0 .175(is suf)2.675 F .175(\214cient to de-)
+-.25 F(termine the return v)144 292.8 Q
+(alue of the entire conditional e)-.25 E(xpression.)-.15 E F3 -.25(fo)
+108 309.6 S(r).25 E F2(name)2.5 E F0 2.5([[)2.5 G F3(in)A F0([)2.5 E F2
+(wor)2.5 E 2.5(d.)-.37 G(..)-2.5 E F0 2.5(]];])2.5 G F3(do)A F2(list)2.5
+E F0(;)2.5 E F3(done)2.5 E F0 .423(The list of w)144 321.6 R .423
+(ords follo)-.1 F(wing)-.25 E F3(in)2.923 E F0 .423(is e)2.923 F .423
+(xpanded, generating a list of items.)-.15 F .424(The v)5.424 F(ariable)
+-.25 E F2(name)2.924 E F0 .424(is set to)2.924 F .653
+(each element of this list in turn, and)144 333.6 R F2(list)3.153 E F0
.653(is e)3.153 F -.15(xe)-.15 G .653(cuted each time.).15 F .653
-(If the)5.653 F F1(in)3.153 E F2(wor)3.153 E(d)-.37 E F0 .653
-(is omitted, the)3.153 F F1 -.25(fo)3.153 G(r).25 E F0 .649(command e)
-144 261.6 R -.15(xe)-.15 G(cutes).15 E F2(list)3.149 E F0 .648
-(once for each positional parameter that is set \(see)3.148 F/F3 9
-/Times-Bold@0 SF -.666(PA)3.148 G(RAMETERS).666 E F0(belo)2.898 E(w\).)
--.25 E .153(The return status is the e)144 273.6 R .153
-(xit status of the last command that e)-.15 F -.15(xe)-.15 G 2.654
-(cutes. If).15 F .154(the e)2.654 F .154(xpansion of the items)-.15 F
-(follo)144 285.6 Q(wing)-.25 E F1(in)2.5 E F0
+(If the)5.653 F F3(in)3.153 E F2(wor)3.153 E(d)-.37 E F0 .653
+(is omitted, the)3.153 F F3 -.25(fo)3.153 G(r).25 E F0 .648(command e)
+144 345.6 R -.15(xe)-.15 G(cutes).15 E F2(list)3.148 E F0 .648
+(once for each positional parameter that is set \(see)3.148 F F1 -.666
+(PA)3.149 G(RAMETERS).666 E F0(belo)2.899 E(w\).)-.25 E .154
+(The return status is the e)144 357.6 R .153
+(xit status of the last command that e)-.15 F -.15(xe)-.15 G 2.653
+(cutes. If).15 F .153(the e)2.653 F .153(xpansion of the items)-.15 F
+(follo)144 369.6 Q(wing)-.25 E F3(in)2.5 E F0
(results in an empty list, no commands are e)2.5 E -.15(xe)-.15 G
-(cuted, and the return status is 0.).15 E F1 -.25(fo)108 302.4 S(r).25 E
+(cuted, and the return status is 0.).15 E F3 -.25(fo)108 386.4 S(r).25 E
F0(\(\()2.5 E F2 -.2(ex)2.5 G(pr1).2 E F0(;)2.5 E F2 -.2(ex)2.5 G(pr2).2
-E F0(;)2.5 E F2 -.2(ex)2.5 G(pr3).2 E F0(\)\) ;)2.5 E F1(do)2.5 E F2
-(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0 1.236(First, the arithmetic e)
-144 314.4 R(xpression)-.15 E F2 -.2(ex)3.736 G(pr1).2 E F0 1.235(is e)
-3.736 F -.25(va)-.25 G 1.235
-(luated according to the rules described belo).25 F 3.735(wu)-.25 G
-(nder)-3.735 E F3 .561(ARITHMETIC EV)144 326.4 R(ALU)-1.215 E -.855(AT)
--.54 G(ION).855 E/F4 9/Times-Roman@0 SF(.)A F0 .561(The arithmetic e)
-5.061 F(xpression)-.15 E F2 -.2(ex)3.061 G(pr2).2 E F0 .562(is then e)
-3.062 F -.25(va)-.25 G .562(luated repeatedly until).25 F .592(it e)144
-338.4 R -.25(va)-.25 G .592(luates to zero.).25 F .592(Each time)5.592 F
+E F0(;)2.5 E F2 -.2(ex)2.5 G(pr3).2 E F0(\)\) ;)2.5 E F3(do)2.5 E F2
+(list)2.5 E F0(;)2.5 E F3(done)2.5 E F0 1.235(First, the arithmetic e)
+144 398.4 R(xpression)-.15 E F2 -.2(ex)3.735 G(pr1).2 E F0 1.235(is e)
+3.735 F -.25(va)-.25 G 1.236
+(luated according to the rules described belo).25 F 3.736(wu)-.25 G
+(nder)-3.736 E F1 .562(ARITHMETIC EV)144 410.4 R(ALU)-1.215 E -.855(AT)
+-.54 G(ION).855 E/F4 9/Times-Roman@0 SF(.)A F0 .562(The arithmetic e)
+5.062 F(xpression)-.15 E F2 -.2(ex)3.062 G(pr2).2 E F0 .561(is then e)
+3.061 F -.25(va)-.25 G .561(luated repeatedly until).25 F .591(it e)144
+422.4 R -.25(va)-.25 G .591(luates to zero.).25 F .592(Each time)5.591 F
F2 -.2(ex)3.092 G(pr2).2 E F0 -.25(eva)3.092 G .592
-(luates to a non-zero v).25 F(alue,)-.25 E F2(list)3.092 E F0 .591(is e)
-3.092 F -.15(xe)-.15 G .591(cuted and the arith-).15 F .228(metic e)144
-350.4 R(xpression)-.15 E F2 -.2(ex)2.728 G(pr3).2 E F0 .229(is e)2.728 F
+(luates to a non-zero v).25 F(alue,)-.25 E F2(list)3.092 E F0 .592(is e)
+3.092 F -.15(xe)-.15 G .592(cuted and the arith-).15 F .229(metic e)144
+434.4 R(xpression)-.15 E F2 -.2(ex)2.729 G(pr3).2 E F0 .229(is e)2.729 F
-.25(va)-.25 G 2.729(luated. If).25 F(an)2.729 E 2.729(ye)-.15 G .229
(xpression is omitted, it beha)-2.879 F -.15(ve)-.2 G 2.729(sa).15 G
-2.729(si)-2.729 G 2.729(fi)-2.729 G 2.729(te)-2.729 G -.25(va)-2.979 G
-.229(luates to 1.).25 F .228(The return v)144 362.4 R .228
-(alue is the e)-.25 F .228(xit status of the last command in)-.15 F F2
-(list)2.728 E F0 .227(that is e)2.728 F -.15(xe)-.15 G .227(cuted, or f)
-.15 F .227(alse if an)-.1 F 2.727(yo)-.15 G 2.727(ft)-2.727 G(he)-2.727
-E -.15(ex)144 374.4 S(pressions is in).15 E -.25(va)-.4 G(lid.).25 E F1
-(select)108 391.2 Q F2(name)2.5 E F0([)2.5 E F1(in)2.5 E F2(wor)2.5 E(d)
--.37 E F0 2.5(];)2.5 G F1(do)A F2(list)2.5 E F0(;)2.5 E F1(done)2.5 E F0
-.432(The list of w)144 403.2 R .432(ords follo)-.1 F(wing)-.25 E F1(in)
-2.932 E F0 .432(is e)2.932 F .432(xpanded, generating a list of items.)
--.15 F .433(The set of e)5.433 F .433(xpanded w)-.15 F(ords)-.1 E .843
-(is printed on the standard error)144 415.2 R 3.342(,e)-.4 G .842
-(ach preceded by a number)-3.342 F 5.842(.I)-.55 G 3.342(ft)-5.842 G(he)
--3.342 E F1(in)3.342 E F2(wor)3.342 E(d)-.37 E F0 .842
-(is omitted, the posi-)3.342 F .201(tional parameters are printed \(see)
-144 427.2 R F3 -.666(PA)2.701 G(RAMETERS).666 E F0(belo)2.451 E 2.701
-(w\). The)-.25 F F3(PS3)2.701 E F0 .201(prompt is then displayed and a)
-2.451 F .214(line read from the standard input.)144 439.2 R .213
-(If the line consists of a number corresponding to one of the dis-)5.214
-F 1.537(played w)144 451.2 R 1.537(ords, then the v)-.1 F 1.537(alue of)
--.25 F F2(name)4.397 E F0 1.537(is set to that w)4.217 F 4.037(ord. If)
--.1 F 1.538(the line is empty)4.038 F 4.038(,t)-.65 G 1.538(he w)-4.038
-F 1.538(ords and)-.1 F .066(prompt are displayed ag)144 463.2 R 2.566
-(ain. If)-.05 F .065(EOF is read, the command completes.)2.566 F(An)
-5.065 E 2.565(yo)-.15 G .065(ther v)-2.565 F .065(alue read causes)-.25
-F F2(name)144.36 475.2 Q F0 .953(to be set to null.)3.633 F .953
-(The line read is sa)5.953 F -.15(ve)-.2 G 3.454(di).15 G 3.454(nt)
--3.454 G .954(he v)-3.454 F(ariable)-.25 E F3(REPL)3.454 E(Y)-.828 E F4
-(.)A F0(The)5.454 E F2(list)3.544 E F0 .954(is e)4.134 F -.15(xe)-.15 G
-.954(cuted after).15 F .072(each selection until a)144 487.2 R F1(br)
-2.571 E(eak)-.18 E F0 .071(command is e)2.571 F -.15(xe)-.15 G 2.571
-(cuted. The).15 F -.15(ex)2.571 G .071(it status of).15 F F1(select)
-2.571 E F0 .071(is the e)2.571 F .071(xit status of the)-.15 F
-(last command e)144 499.2 Q -.15(xe)-.15 G(cuted in).15 E F2(list)2.59 E
-F0 2.5(,o).68 G 2.5(rz)-2.5 G(ero if no commands were e)-2.5 E -.15(xe)
--.15 G(cuted.).15 E F1(case)108 516 Q F2(wor)2.5 E(d)-.37 E F1(in)2.5 E
-F0 2.5([[)2.5 G(\(])-2.5 E F2(pattern)2.5 E F0([)2.5 E F1(|)2.5 E F2
-(pattern)2.5 E F0 2.5(].)2.5 G(.. \))-2.5 E F2(list)2.5 E F0(;; ] ...)
-2.5 E F1(esac)2.5 E F0(A)144 528 Q F1(case)3.264 E F0 .764
-(command \214rst e)3.264 F(xpands)-.15 E F2(wor)3.264 E(d)-.37 E F0
+2.729(si)-2.729 G 2.729(fi)-2.729 G 2.728(te)-2.729 G -.25(va)-2.978 G
+.228(luates to 1.).25 F .227(The return v)144 446.4 R .227
+(alue is the e)-.25 F .227(xit status of the last command in)-.15 F F2
+(list)2.728 E F0 .228(that is e)2.728 F -.15(xe)-.15 G .228(cuted, or f)
+.15 F .228(alse if an)-.1 F 2.728(yo)-.15 G 2.728(ft)-2.728 G(he)-2.728
+E -.15(ex)144 458.4 S(pressions is in).15 E -.25(va)-.4 G(lid.).25 E F3
+(select)108 475.2 Q F2(name)2.5 E F0([)2.5 E F3(in)2.5 E F2(wor)2.5 E(d)
+-.37 E F0 2.5(];)2.5 G F3(do)A F2(list)2.5 E F0(;)2.5 E F3(done)2.5 E F0
+1.358(The list of w)144 487.2 R 1.358(ords follo)-.1 F(wing)-.25 E F3
+(in)3.858 E F0 1.358(is e)3.858 F 1.357
+(xpanded, generating a list of items, and the set of e)-.15 F(xpanded)
+-.15 E -.1(wo)144 499.2 S .601(rds is printed on the standard error).1 F
+3.101(,e)-.4 G .601(ach preceded by a number)-3.101 F 5.601(.I)-.55 G
+3.101(ft)-5.601 G(he)-3.101 E F3(in)3.101 E F2(wor)3.101 E(d)-.37 E F0
+.602(is omitted, the)3.101 F .188
+(positional parameters are printed \(see)144 511.2 R F1 -.666(PA)2.688 G
+(RAMETERS).666 E F0(belo)2.438 E(w\).)-.25 E F3(select)5.188 E F0 .188
+(then displays the)2.688 F F1(PS3)2.687 E F0(prompt)2.437 E .46
+(and reads a line from the standard input.)144 523.2 R .461
+(If the line consists of a number corresponding to one of)5.46 F .141
+(the displayed w)144 535.2 R .141(ords, then the v)-.1 F .141(alue of)
+-.25 F F2(name)3.001 E F0 .141(is set to that w)2.821 F 2.641(ord. If)
+-.1 F .141(the line is empty)2.641 F 2.641(,t)-.65 G .141(he w)-2.641 F
+.141(ords and)-.1 F 1.048(prompt are displayed ag)144 547.2 R 3.548
+(ain. If)-.05 F 1.048(EOF is read, the)3.548 F F3(select)3.548 E F0
+1.048(command completes and returns 1.)3.548 F(An)6.048 E(y)-.15 E .32
+(other v)144 559.2 R .32(alue read causes)-.25 F F2(name)3.18 E F0 .32
+(to be set to null.)3 F .32(The line read is sa)5.32 F -.15(ve)-.2 G
+2.82(di).15 G 2.82(nt)-2.82 G .319(he v)-2.82 F(ariable)-.25 E F1(REPL)
+2.819 E(Y)-.828 E F4(.)A F0(The)4.819 E F2(list)144.09 571.2 Q F0 .055
+(is e)3.235 F -.15(xe)-.15 G .056(cuted after each selection until a).15
+F F3(br)2.556 E(eak)-.18 E F0 .056(command is e)2.556 F -.15(xe)-.15 G
+2.556(cuted. The).15 F -.15(ex)2.556 G .056(it status of).15 F F3
+(select)2.556 E F0(is)2.556 E(the e)144 583.2 Q
+(xit status of the last command e)-.15 E -.15(xe)-.15 G(cuted in).15 E
+F2(list)2.59 E F0 2.5(,o).68 G 2.5(rz)-2.5 G(ero if no commands were e)
+-2.5 E -.15(xe)-.15 G(cuted.).15 E F3(case)108 600 Q F2(wor)2.5 E(d)-.37
+E F3(in)2.5 E F0 2.5([[)2.5 G(\(])-2.5 E F2(pattern)2.5 E F0([)2.5 E F3
+(|)2.5 E F2(pattern)2.5 E F0 2.5(].)2.5 G(.. \))-2.5 E F2(list)2.5 E F0
+(;; ] ...)2.5 E F3(esac)2.5 E F0(A)144 612 Q F3(case)3.265 E F0 .764
+(command \214rst e)3.265 F(xpands)-.15 E F2(wor)3.264 E(d)-.37 E F0
3.264(,a)C .764(nd tries to match it ag)-3.264 F .764(ainst each)-.05 F
-F2(pattern)3.264 E F0 .765(in turn, using the)3.264 F .884
-(matching rules described under)144 540 R F1 -.1(Pa)3.384 G(tter).1 E
+F2(pattern)3.264 E F0 .764(in turn, using the)3.264 F .883
+(matching rules described under)144 624 R F3 -.1(Pa)3.384 G(tter).1 E
3.384(nM)-.15 G(atching)-3.384 E F0(belo)3.384 E 4.684 -.65(w. T)-.25 H
-(he).65 E F2(wor)3.384 E(d)-.37 E F0 .884(is e)3.384 F .883
+(he).65 E F2(wor)3.384 E(d)-.37 E F0 .884(is e)3.384 F .884
(xpanded using tilde e)-.15 F(x-)-.15 E .95(pansion, parameter and v)144
-552 R .95(ariable e)-.25 F .95(xpansion, arithmetic e)-.15 F .95
-(xpansion, command substitution, process)-.15 F .181
-(substitution and quote remo)144 564 R -.25(va)-.15 G 2.681(l. Each).25
+636 R .95(ariable e)-.25 F .95(xpansion, arithmetic e)-.15 F .95
+(xpansion, command substitution, process)-.15 F .18
+(substitution and quote remo)144 648 R -.25(va)-.15 G 2.681(l. Each).25
F F2(pattern)2.681 E F0 -.15(ex)2.681 G .181(amined is e).15 F .181
-(xpanded using tilde e)-.15 F .18(xpansion, param-)-.15 F .103
-(eter and v)144 576 R .103(ariable e)-.25 F .103(xpansion, arithmetic e)
--.15 F .103(xpansion, command substitution, and process substitution.)
--.15 F .687(If the)144 588 R F1(nocasematch)3.187 E F0 .687
-(shell option is enabled, the match is performed without re)3.187 F -.05
-(ga)-.15 G .687(rd to the case of).05 F .464(alphabetic characters.)144
-600 R .464(When a match is found, the corresponding)5.464 F F2(list)
-2.964 E F0 .464(is e)2.964 F -.15(xe)-.15 G 2.964(cuted. If).15 F(the)
-2.964 E F1(;;)2.964 E F0(opera-)2.964 E .675(tor is used, no subsequent\
- matches are attempted after the \214rst pattern match.)144 612 R(Using)
-5.674 E F1(;&)3.174 E F0 .674(in place)3.174 F(of)144 624 Q F1(;;)2.866
-E F0 .366(causes e)2.866 F -.15(xe)-.15 G .366
-(cution to continue with the).15 F F2(list)2.866 E F0 .367
-(associated with the ne)2.866 F .367(xt set of patterns.)-.15 F(Using)
-5.367 E F1(;;&)2.867 E F0 .596(in place of)144 636 R F1(;;)3.096 E F0
-.596(causes the shell to test the ne)3.096 F .595
-(xt pattern list in the statement, if an)-.15 F 1.895 -.65(y, a)-.15 H
-.595(nd e).65 F -.15(xe)-.15 G .595(cute an).15 F(y)-.15 E(associated)
-144 648 Q F2(list)2.96 E F0 .461
-(on a successful match, continuing the case statement e)2.96 F -.15(xe)
--.15 G .461(cution as if the pattern list).15 F .677(had not matched.)
-144 660 R .677(The e)5.677 F .677
-(xit status is zero if no pattern matches.)-.15 F .676
-(Otherwise, it is the e)5.677 F .676(xit status of)-.15 F
-(the last command e)144 672 Q -.15(xe)-.15 G(cuted in).15 E F2(list)2.5
-E F0(.)A F1(if)108 688.8 Q F2(list)2.5 E F0(;)A F1(then)2.5 E F2(list)
-2.5 E F0 2.5(;[)C F1(elif)A F2(list)2.5 E F0(;)A F1(then)2.5 E F2(list)
-2.5 E F0 2.5(;].)C(.. [)-2.5 E F1(else)2.5 E F2(list)2.5 E F0 2.5(;])C
-F1<8c>A F0(The)144 700.8 Q F1(if)2.977 E F2(list)3.067 E F0 .478(is e)
-3.658 F -.15(xe)-.15 G 2.978(cuted. If).15 F .478(its e)2.978 F .478
-(xit status is zero, the)-.15 F F1(then)2.978 E F2(list)2.978 E F0 .478
-(is e)2.978 F -.15(xe)-.15 G 2.978(cuted. Otherwise,).15 F(each)2.978 E
-F1(elif)2.978 E F2(list)2.978 E F0 1.088(is e)144 712.8 R -.15(xe)-.15 G
-1.088(cuted in turn, and if its e).15 F 1.087
-(xit status is zero, the corresponding)-.15 F F1(then)3.587 E F2(list)
-3.587 E F0 1.087(is e)3.587 F -.15(xe)-.15 G 1.087(cuted and the).15 F
-1.239(command completes.)144 724.8 R 1.239(Otherwise, the)6.239 F F1
-(else)3.739 E F2(list)3.739 E F0 1.239(is e)3.739 F -.15(xe)-.15 G 1.239
-(cuted, if present.).15 F 1.24(The e)6.239 F 1.24(xit status is the e)
--.15 F(xit)-.15 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(6)
-195.395 E 0 Cg EP
+(xpanded using tilde e)-.15 F .181(xpansion, param-)-.15 F .103
+(eter and v)144 660 R .103(ariable e)-.25 F .103(xpansion, arithmetic e)
+-.15 F .103(xpansion, command substitution, process substitution, and)
+-.15 F .138(quote remo)144 672 R -.25(va)-.15 G 2.638(l. If).25 F(the)
+2.638 E F3(nocasematch)2.638 E F0 .139
+(shell option is enabled, the match is performed without re)2.638 F -.05
+(ga)-.15 G(rd).05 E .209(to the case of alphabetic characters.)144 684 R
+.209(When a match is found, the corresponding)5.209 F F2(list)2.708 E F0
+.208(is e)2.708 F -.15(xe)-.15 G 2.708(cuted. If).15 F(the)144 696 Q F3
+(;;)3.349 E F0 .849(operator is used, no subsequent matches are attempt\
+ed after the \214rst pattern match.)3.349 F(Using)5.85 E F3(;&)144 708 Q
+F0 .254(in place of)2.754 F F3(;;)2.754 E F0 .254(causes e)2.754 F -.15
+(xe)-.15 G .254(cution to continue with the).15 F F2(list)2.754 E F0
+.254(associated with the ne)2.754 F .253(xt set of patterns.)-.15 F
+(Using)144 720 Q F3(;;&)3.378 E F0 .878(in place of)3.378 F F3(;;)3.378
+E F0 .878(causes the shell to test the ne)3.378 F .878
+(xt pattern list in the statement, if an)-.15 F 2.178 -.65(y, a)-.15 H
+(nd).65 E(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(6)190.115 E
+0 Cg EP
%%Page: 7 7
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E
-(status of the last command e)144 84 Q -.15(xe)-.15 G
-(cuted, or zero if no condition tested true.).15 E/F1 10/Times-Bold@0 SF
-(while)108 100.8 Q/F2 10/Times-Italic@0 SF(list-1)2.5 E F0(;)A F1(do)2.5
-E F2(list-2)2.5 E F0(;)A F1(done)2.5 E(until)108 112.8 Q F2(list-1)2.5 E
-F0(;)A F1(do)2.5 E F2(list-2)2.5 E F0(;)A F1(done)2.5 E F0(The)144 124.8
-Q F1(while)3.45 E F0 .95(command continuously e)3.45 F -.15(xe)-.15 G
-.95(cutes the list).15 F F2(list-2)3.45 E F0 .95
-(as long as the last command in the list)3.45 F F2(list-1)144 136.8 Q F0
-.205(returns an e)2.705 F .205(xit status of zero.)-.15 F(The)5.205 E F1
-(until)2.705 E F0 .205(command is identical to the)2.705 F F1(while)
-2.705 E F0 .205(command, e)2.705 F(xcept)-.15 E .6(that the test is ne)
-144 148.8 R -.05(ga)-.15 G(ted:).05 E F2(list-2)3.19 E F0 .6(is e)3.12 F
--.15(xe)-.15 G .599(cuted as long as the last command in).15 F F2
-(list-1)3.189 E F0 .599(returns a non-zero)3.099 F -.15(ex)144 160.8 S
-.204(it status.).15 F .204(The e)5.204 F .204(xit status of the)-.15 F
-F1(while)2.704 E F0(and)2.704 E F1(until)2.704 E F0 .205
-(commands is the e)2.704 F .205(xit status of the last command)-.15 F
--.15(exe)144 172.8 S(cuted in).15 E F2(list-2)2.5 E F0 2.5(,o)C 2.5(rz)
--2.5 G(ero if none w)-2.5 E(as e)-.1 E -.15(xe)-.15 G(cuted.).15 E F1
-(Copr)87 189.6 Q(ocesses)-.18 E F0(A)108 201.6 Q F2(copr)3.713 E(ocess)
--.45 E F0 1.213(is a shell command preceded by the)3.713 F F1(copr)3.712
-E(oc)-.18 E F0(reserv)3.712 E 1.212(ed w)-.15 F 3.712(ord. A)-.1 F 1.212
-(coprocess is e)3.712 F -.15(xe)-.15 G 1.212(cuted asyn-).15 F .574(chr\
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E -.15(exe)144 84 S
+.159(cute an).15 F 2.659(ya)-.15 G(ssociated)-2.659 E/F1 10
+/Times-Italic@0 SF(list)2.659 E F0 .159
+(on a successful match, continuing the case statement e)2.659 F -.15(xe)
+-.15 G .158(cution as if the).15 F .182(pattern list had not matched.)
+144 96 R .183(The e)5.183 F .183
+(xit status is zero if no pattern matches.)-.15 F .183
+(Otherwise, it is the e)5.183 F(xit)-.15 E(status of the last command e)
+144 108 Q -.15(xe)-.15 G(cuted in).15 E F1(list)2.5 E F0(.)A/F2 10
+/Times-Bold@0 SF(if)108 124.8 Q F1(list)2.5 E F0(;)A F2(then)2.5 E F1
+(list)2.5 E F0 2.5(;[)C F2(elif)A F1(list)2.5 E F0(;)A F2(then)2.5 E F1
+(list)2.5 E F0 2.5(;].)C(.. [)-2.5 E F2(else)2.5 E F1(list)2.5 E F0 2.5
+(;])C F2<8c>A F0(The)144 136.8 Q F2(if)2.978 E F1(list)3.068 E F0 .478
+(is e)3.658 F -.15(xe)-.15 G 2.978(cuted. If).15 F .478(its e)2.978 F
+.478(xit status is zero, the)-.15 F F2(then)2.978 E F1(list)2.978 E F0
+.478(is e)2.978 F -.15(xe)-.15 G 2.978(cuted. Otherwise,).15 F(each)
+2.978 E F2(elif)2.977 E F1(list)2.977 E F0 1.087(is e)144 148.8 R -.15
+(xe)-.15 G 1.087(cuted in turn, and if its e).15 F 1.087
+(xit status is zero, the corresponding)-.15 F F2(then)3.587 E F1(list)
+3.587 E F0 1.088(is e)3.588 F -.15(xe)-.15 G 1.088(cuted and the).15 F
+.104(command completes.)144 160.8 R .103(Otherwise, the)5.104 F F2(else)
+2.603 E F1(list)2.603 E F0 .103(is e)2.603 F -.15(xe)-.15 G .103
+(cuted, if present.).15 F .103(The e)5.103 F .103(xit status is the e)
+-.15 F .103(xit sta-)-.15 F(tus of the last command e)144 172.8 Q -.15
+(xe)-.15 G(cuted, or zero if no condition tested true.).15 E F2(while)
+108 189.6 Q F1(list-1)2.5 E F0(;)A F2(do)2.5 E F1(list-2)2.5 E F0(;)A F2
+(done)2.5 E(until)108 201.6 Q F1(list-1)2.5 E F0(;)A F2(do)2.5 E F1
+(list-2)2.5 E F0(;)A F2(done)2.5 E F0(The)144 213.6 Q F2(while)3.45 E F0
+.95(command continuously e)3.45 F -.15(xe)-.15 G .95(cutes the list).15
+F F1(list-2)3.45 E F0 .95(as long as the last command in the list)3.45 F
+F1(list-1)144 225.6 Q F0 .205(returns an e)2.705 F .205
+(xit status of zero.)-.15 F(The)5.205 E F2(until)2.705 E F0 .205
+(command is identical to the)2.705 F F2(while)2.705 E F0 .205
+(command, e)2.705 F(xcept)-.15 E .599(that the test is ne)144 237.6 R
+-.05(ga)-.15 G(ted:).05 E F1(list-2)3.189 E F0 .599(is e)3.119 F -.15
+(xe)-.15 G .6(cuted as long as the last command in).15 F F1(list-1)3.19
+E F0 .6(returns a non-zero)3.1 F -.15(ex)144 249.6 S .205(it status.).15
+F .205(The e)5.205 F .205(xit status of the)-.15 F F2(while)2.705 E F0
+(and)2.705 E F2(until)2.704 E F0 .204(commands is the e)2.704 F .204
+(xit status of the last command)-.15 F -.15(exe)144 261.6 S(cuted in).15
+E F1(list-2)2.5 E F0 2.5(,o)C 2.5(rz)-2.5 G(ero if none w)-2.5 E(as e)
+-.1 E -.15(xe)-.15 G(cuted.).15 E F2(Copr)87 278.4 Q(ocesses)-.18 E F0
+(A)108 290.4 Q F1(copr)3.712 E(ocess)-.45 E F0 1.212
+(is a shell command preceded by the)3.712 F F2(copr)3.713 E(oc)-.18 E F0
+(reserv)3.713 E 1.213(ed w)-.15 F 3.713(ord. A)-.1 F 1.213
+(coprocess is e)3.713 F -.15(xe)-.15 G 1.213(cuted asyn-).15 F .575(chr\
onously in a subshell, as if the command had been terminated with the)
-108 213.6 R F1(&)3.075 E F0 .575(control operator)3.075 F 3.075(,w)-.4 G
-.575(ith a tw)-3.075 F(o-)-.1 E -.1(wa)108 225.6 S 2.5(yp).1 G
+108 302.4 R F2(&)3.074 E F0 .574(control operator)3.074 F 3.074(,w)-.4 G
+.574(ith a tw)-3.074 F(o-)-.1 E -.1(wa)108 314.4 S 2.5(yp).1 G
(ipe established between the e)-2.5 E -.15(xe)-.15 G
-(cuting shell and the coprocess.).15 E(The format for a coprocess is:)
-108 242.4 Q F1(copr)144 259.2 Q(oc)-.18 E F0([)2.5 E F2 -.27(NA)C(ME).27
-E F0(])A F2(command)2.5 E F0([)2.5 E F2 -.37(re)C(dir).37 E(ections)-.37
-E F0(])A .709(This creates a coprocess named)108 276 R F2 -.27(NA)3.208
-G(ME).27 E F0 5.708(.I)C(f)-5.708 E F2 -.27(NA)3.208 G(ME).27 E F0 .708
-(is not supplied, the def)3.208 F .708(ault name is)-.1 F F1(COPR)3.208
-E(OC)-.3 E F0(.)A F2 -.27(NA)5.708 G(ME).27 E F0 .64
-(must not be supplied if)108 288 R F2(command)3.14 E F0 .64(is a)3.14 F
-F2 .64(simple command)3.14 F F0 .64(\(see abo)3.14 F -.15(ve)-.15 G .64
-(\); otherwise, it is interpreted as the \214rst).15 F -.1(wo)108 300 S
-.349(rd of the simple command.).1 F .348(When the coprocess is e)5.348 F
--.15(xe)-.15 G .348(cuted, the shell creates an array v).15 F .348
-(ariable \(see)-.25 F F1(Ar)2.848 E(-)-.37 E(rays)108 312 Q F0(belo)
-3.095 E .595(w\) named)-.25 F F2 -.27(NA)3.095 G(ME).27 E F0 .595
-(in the conte)3.095 F .595(xt of the e)-.15 F -.15(xe)-.15 G .595
-(cuting shell.).15 F .596(The standard output of)5.595 F F2(command)
-3.296 E F0 .596(is con-)3.866 F .387
-(nected via a pipe to a \214le descriptor in the e)108 324 R -.15(xe)
--.15 G .387(cuting shell, and that \214le descriptor is assigned to).15
-F F2 -.27(NA)2.886 G(ME).27 E F0([0].)A .57(The standard input of)108
-336 R F2(command)3.27 E F0 .571
-(is connected via a pipe to a \214le descriptor in the e)3.84 F -.15(xe)
--.15 G .571(cuting shell, and that).15 F 1.221
-(\214le descriptor is assigned to)108 348 R F2 -.27(NA)3.721 G(ME).27 E
-F0 3.721([1]. This)B 1.221(pipe is established before an)3.721 F 3.72
-(yr)-.15 G 1.22(edirections speci\214ed by the)-3.72 F 1.58
-(command \(see)108 360 R/F3 9/Times-Bold@0 SF(REDIRECTION)4.08 E F0
-(belo)3.83 E 4.08(w\). The)-.25 F 1.581
-(\214le descriptors can be utilized as ar)4.08 F 1.581
-(guments to shell com-)-.18 F .149
-(mands and redirections using standard w)108 372 R .149(ord e)-.1 F
-2.649(xpansions. Other)-.15 F .148(than those created to e)2.649 F -.15
-(xe)-.15 G .148(cute command and).15 F 2.462
-(process substitutions, the \214le descriptors are not a)108 384 R -.25
-(va)-.2 G 2.463(ilable in subshells.).25 F 2.463
-(The process ID of the shell)7.463 F(spa)108 396 Q 1.115(wned to e)-.15
-F -.15(xe)-.15 G 1.115(cute the coprocess is a).15 F -.25(va)-.2 G 1.115
-(ilable as the v).25 F 1.115(alue of the v)-.25 F(ariable)-.25 E F2 -.27
-(NA)3.615 G(ME).27 E F0 3.615(_PID. The)B F1(wait)3.615 E F0 -.2(bu)
-3.615 G(iltin).2 E(command may be used to w)108 408 Q
+(cuting shell and the coprocess.).15 E(The syntax for a coprocess is:)
+108 331.2 Q F2(copr)144 348 Q(oc)-.18 E F0([)2.5 E F1 -.27(NA)C(ME).27 E
+F0(])A F1(command)2.5 E F0([)2.5 E F1 -.37(re)C(dir).37 E(ections)-.37 E
+F0(])A .598(This creates a coprocess named)108 364.8 R F1 -.27(NA)3.099
+G(ME).27 E F0(.)A F1(command)5.599 E F0 .599
+(may be either a simple command or a compound com-)3.099 F 1.4
+(mand \(see abo)108 376.8 R -.15(ve)-.15 G(\).).15 E F1 -.27(NA)6.4 G
+(ME).27 E F0 1.4(is a shell v)3.9 F 1.4(ariable name.)-.25 F(If)6.4 E F1
+-.27(NA)3.9 G(ME).27 E F0 1.4(is not supplied, the def)3.9 F 1.4
+(ault name is)-.1 F F2(CO-)3.9 E(PR)108 388.8 Q(OC)-.3 E F0(.)A
+(The recommended form to use for a coprocess is)108 405.6 Q F2(copr)144
+422.4 Q(oc)-.18 E F1 -.27(NA)2.5 G(ME).27 E F0({)2.5 E F1(command)2.5 E
+F0([)2.5 E F1 -.37(re)C(dir).37 E(ections)-.37 E F0(]; })A 1.313(This f\
+orm is recommended because simple commands result in the coprocess al)
+108 439.2 R -.1(wa)-.1 G 1.313(ys being named).1 F F2(CO-)3.813 E(PR)108
+451.2 Q(OC)-.3 E F0 2.5(,a)C(nd it is simpler to use and more complete \
+than the other compound commands.)-2.5 E(If)108 468 Q F1(command)3.062 E
+F0 .562(is a compound command,)3.062 F F1 -.27(NA)3.062 G(ME).27 E F0
+.561(is optional. The w)3.061 F .561(ord follo)-.1 F(wing)-.25 E F2
+(copr)3.061 E(oc)-.18 E F0 .561(determines whether)3.061 F .338(that w)
+108 480 R .338(ord is interpreted as a v)-.1 F .338
+(ariable name: it is interpreted as)-.25 F F1 -.27(NA)2.839 G(ME).27 E
+F0 .339(if it is not a reserv)2.839 F .339(ed w)-.15 F .339
+(ord that intro-)-.1 F 1.122(duces a compound command.)108 492 R(If)
+6.121 E F1(command)3.621 E F0 1.121(is a simple command,)3.621 F F1 -.27
+(NA)3.621 G(ME).27 E F0 1.121(is not allo)3.621 F 1.121
+(wed; this is to a)-.25 F -.2(vo)-.2 G(id).2 E(confusion between)108 504
+Q F1 -.27(NA)2.5 G(ME).27 E F0(and the \214rst w)2.5 E
+(ord of the simple command.)-.1 E .09(When the coprocess is e)108 520.8
+R -.15(xe)-.15 G .09(cuted, the shell creates an array v).15 F .09
+(ariable \(see)-.25 F F2(Arrays)2.59 E F0(belo)2.59 E .09(w\) named)-.25
+F F1 -.27(NA)2.59 G(ME).27 E F0 .09(in the)2.59 F(conte)108 532.8 Q .303
+(xt of the e)-.15 F -.15(xe)-.15 G .303(cuting shell.).15 F .302
+(The standard output of)5.302 F F1(command)3.002 E F0 .302
+(is connected via a pipe to a \214le descriptor)3.572 F .587(in the e)
+108 544.8 R -.15(xe)-.15 G .587
+(cuting shell, and that \214le descriptor is assigned to).15 F F1 -.27
+(NA)3.087 G(ME).27 E F0 3.087([0]. The)B .587(standard input of)3.087 F
+F1(command)3.287 E F0(is)3.858 E 2.029
+(connected via a pipe to a \214le descriptor in the e)108 556.8 R -.15
+(xe)-.15 G 2.029
+(cuting shell, and that \214le descriptor is assigned to).15 F F1 -.27
+(NA)108 568.8 S(ME).27 E F0 2.879([1]. This)B .379
+(pipe is established before an)2.879 F 2.879(yr)-.15 G .379
+(edirections speci\214ed by the command \(see)-2.879 F/F3 9/Times-Bold@0
+SF(REDIRECTION)2.879 E F0(belo)108 580.8 Q 3.426(w\). The)-.25 F .926
+(\214le descriptors can be utilized as ar)3.426 F .925
+(guments to shell commands and redirections using stan-)-.18 F .286
+(dard w)108 592.8 R .286(ord e)-.1 F 2.786(xpansions. Other)-.15 F .286
+(than those created to e)2.786 F -.15(xe)-.15 G .286
+(cute command and process substitutions, the \214le de-).15 F
+(scriptors are not a)108 604.8 Q -.25(va)-.2 G(ilable in subshells.).25
+E 1.676(The process ID of the shell spa)108 621.6 R 1.676(wned to e)-.15
+F -.15(xe)-.15 G 1.676(cute the coprocess is a).15 F -.25(va)-.2 G 1.676
+(ilable as the v).25 F 1.676(alue of the v)-.25 F(ariable)-.25 E F1 -.27
+(NA)108 633.6 S(ME).27 E F0 2.5(_PID. The)B F2(wait)2.5 E F0 -.2(bu)2.5
+G(iltin command may be used to w).2 E
(ait for the coprocess to terminate.)-.1 E .336
(Since the coprocess is created as an asynchronous command, the)108
-424.8 R F1(copr)2.836 E(oc)-.18 E F0 .336(command al)2.836 F -.1(wa)-.1
+650.4 R F2(copr)2.836 E(oc)-.18 E F0 .336(command al)2.836 F -.1(wa)-.1
G .336(ys returns success.).1 F
-(The return status of a coprocess is the e)108 436.8 Q(xit status of)
--.15 E F2(command)2.5 E F0(.)A F1(Shell Function De\214nitions)87 453.6
-Q F0 2.698(As)108 465.6 S .198
+(The return status of a coprocess is the e)108 662.4 Q(xit status of)
+-.15 E F1(command)2.5 E F0(.)A F2(Shell Function De\214nitions)87 679.2
+Q F0 2.698(As)108 691.2 S .198
(hell function is an object that is called lik)-2.698 F 2.698(eas)-.1 G
.198(imple command and e)-2.698 F -.15(xe)-.15 G .197
-(cutes a compound command with).15 F 2.5(an)108 477.6 S .5 -.25(ew s)
+(cutes a compound command with).15 F 2.5(an)108 703.2 S .5 -.25(ew s)
-2.5 H(et of positional parameters.).25 E
-(Shell functions are declared as follo)5 E(ws:)-.25 E F2(fname)108 494.4
-Q F0(\(\))2.5 E F2(compound\255command)2.5 E F0([)2.5 E F2 -.37(re)C
-(dir).37 E(ection)-.37 E F0(])A F1(function)108 506.4 Q F2(fname)2.5 E
-F0([\(\)])2.5 E F2(compound\255command)2.5 E F0([)2.5 E F2 -.37(re)C
-(dir).37 E(ection)-.37 E F0(])A .216(This de\214nes a function named)144
-518.4 R F2(fname)2.716 E F0 5.217(.T)C .217(he reserv)-5.217 F .217
-(ed w)-.15 F(ord)-.1 E F1(function)2.717 E F0 .217(is optional.)2.717 F
-.217(If the)5.217 F F1(function)2.717 E F0(re-)2.717 E(serv)144 530.4 Q
-.68(ed w)-.15 F .68(ord is supplied, the parentheses are optional.)-.1 F
-(The)5.68 E F2(body)3.18 E F0 .68(of the function is the compound)3.18 F
-(command)144 542.4 Q F2(compound\255command)2.784 E F0(\(see)3.354 E F1
-.084(Compound Commands)2.584 F F0(abo)2.584 E -.15(ve)-.15 G 2.584
-(\). That).15 F .084(command is usually a)2.584 F F2(list)144 554.4 Q F0
-.044(of commands between { and }, b)2.544 F .044(ut may be an)-.2 F
-2.544(yc)-.15 G .044(ommand listed under)-2.544 F F1 .044
-(Compound Commands)2.544 F F0(abo)144 566.4 Q -.15(ve)-.15 G 2.901(,w)
-.15 G .401(ith one e)-2.901 F .401(xception: If the)-.15 F F1(function)
-2.901 E F0(reserv)2.901 E .401(ed w)-.15 F .401(ord is used, b)-.1 F
-.402(ut the parentheses are not sup-)-.2 F 1.046
-(plied, the braces are required.)144 578.4 R F2(compound\255command)
-6.046 E F0 1.046(is e)3.546 F -.15(xe)-.15 G 1.046(cuted whene).15 F
--.15(ve)-.25 G(r).15 E F2(fname)3.546 E F0 1.045(is speci\214ed as)3.546
-F .365(the name of a simple command.)144 590.4 R .365(When in)5.365 F F2
-.366(posix mode)2.865 F F0(,)A F2(fname)2.866 E F0 .366(must be a v)
-2.866 F .366(alid shell)-.25 F F2(name)2.866 E F0 .366(and may)2.866 F
-.894(not be the name of one of the POSIX)144 602.4 R F2 .893(special b)
-3.393 F(uiltins)-.2 E F0 5.893(.I)C 3.393(nd)-5.893 G(ef)-3.393 E .893
-(ault mode, a function name can be)-.1 F(an)144 614.4 Q 3.649(yu)-.15 G
-1.149(nquoted shell w)-3.649 F 1.15(ord that does not contain)-.1 F F1
-($)3.65 E F0 6.15(.A)C 1.45 -.15(ny r)-6.15 H 1.15(edirections \(see).15
-F F3(REDIRECTION)3.65 E F0(belo)3.4 E(w\))-.25 E .417(speci\214ed when \
-a function is de\214ned are performed when the function is e)144 626.4 R
--.15(xe)-.15 G 2.916(cuted. The).15 F -.15(ex)2.916 G .416(it status).15
-F .733(of a function de\214nition is zero unless a syntax error occurs \
-or a readonly function with the same)144 638.4 R .178(name already e)144
-650.4 R 2.678(xists. When)-.15 F -.15(exe)2.678 G .178(cuted, the e).15
-F .178(xit status of a function is the e)-.15 F .177
-(xit status of the last com-)-.15 F(mand e)144 662.4 Q -.15(xe)-.15 G
-(cuted in the body).15 E 5(.\()-.65 G(See)-5 E F3(FUNCTIONS)2.5 E F0
+(Shell functions are declared as follo)5 E(ws:)-.25 E(GNU Bash 5.2)72
+768 Q(2022 September 19)135.955 E(7)190.115 E 0 Cg EP
+%%Page: 8 8
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10
+/Times-Italic@0 SF(fname)108 84 Q F0(\(\))2.5 E F1(compound\255command)
+2.5 E F0([)2.5 E F1 -.37(re)C(dir).37 E(ection)-.37 E F0(])A/F2 10
+/Times-Bold@0 SF(function)108 96 Q F1(fname)2.5 E F0([\(\)])2.5 E F1
+(compound\255command)2.5 E F0([)2.5 E F1 -.37(re)C(dir).37 E(ection)-.37
+E F0(])A .216(This de\214nes a function named)144 108 R F1(fname)2.716 E
+F0 5.217(.T)C .217(he reserv)-5.217 F .217(ed w)-.15 F(ord)-.1 E F2
+(function)2.717 E F0 .217(is optional.)2.717 F .217(If the)5.217 F F2
+(function)2.717 E F0(re-)2.717 E(serv)144 120 Q .68(ed w)-.15 F .68
+(ord is supplied, the parentheses are optional.)-.1 F(The)5.68 E F1
+(body)3.18 E F0 .68(of the function is the compound)3.18 F(command)144
+132 Q F1(compound\255command)2.784 E F0(\(see)3.354 E F2 .084
+(Compound Commands)2.584 F F0(abo)2.584 E -.15(ve)-.15 G 2.584(\). That)
+.15 F .084(command is usually a)2.584 F F1(list)144 144 Q F0 .044
+(of commands between { and }, b)2.544 F .044(ut may be an)-.2 F 2.544
+(yc)-.15 G .044(ommand listed under)-2.544 F F2 .044(Compound Commands)
+2.544 F F0(abo)144 156 Q -.15(ve)-.15 G 5.531(.I).15 G 3.031(ft)-5.531 G
+(he)-3.031 E F2(function)3.032 E F0(reserv)3.032 E .532(ed w)-.15 F .532
+(ord is used, b)-.1 F .532
+(ut the parentheses are not supplied, the braces are)-.2 F(recommended.)
+144 168 Q F1(compound\255command)6.254 E F0 1.254(is e)3.754 F -.15(xe)
+-.15 G 1.254(cuted whene).15 F -.15(ve)-.25 G(r).15 E F1(fname)3.753 E
+F0 1.253(is speci\214ed as the name of a)3.753 F 1.252(simple command.)
+144 180 R 1.252(When in)6.252 F F1 1.252(posix mode)3.752 F F0(,)A F1
+(fname)3.752 E F0 1.252(must be a v)3.752 F 1.252(alid shell)-.25 F F1
+(name)3.753 E F0 1.253(and may not be the)3.753 F .089
+(name of one of the POSIX)144 192 R F1 .089(special b)2.589 F(uiltins)
+-.2 E F0 5.089(.I)C 2.589(nd)-5.089 G(ef)-2.589 E .089
+(ault mode, a function name can be an)-.1 F 2.588(yu)-.15 G(nquoted)
+-2.588 E .164(shell w)144 204 R .164(ord that does not contain)-.1 F F2
+($)2.665 E F0 5.165(.A)C .465 -.15(ny r)-5.165 H .165(edirections \(see)
+.15 F/F3 9/Times-Bold@0 SF(REDIRECTION)2.665 E F0(belo)2.415 E .165
+(w\) speci\214ed when a)-.25 F .061
+(function is de\214ned are performed when the function is e)144 216 R
+-.15(xe)-.15 G 2.561(cuted. The).15 F -.15(ex)2.56 G .06
+(it status of a function de\214-).15 F .579(nition is zero unless a syn\
+tax error occurs or a readonly function with the same name already e)144
+228 R(x-)-.15 E 2.593(ists. When)144 240 R -.15(exe)2.593 G .093
+(cuted, the e).15 F .093(xit status of a function is the e)-.15 F .093
+(xit status of the last command e)-.15 F -.15(xe)-.15 G .092(cuted in)
+.15 F(the body)144 252 Q 5(.\()-.65 G(See)-5 E F3(FUNCTIONS)2.5 E F0
(belo)2.25 E -.65(w.)-.25 G(\)).65 E/F4 10.95/Times-Bold@0 SF(COMMENTS)
-72 679.2 Q F0 .982(In a non-interacti)108 691.2 R 1.282 -.15(ve s)-.25 H
+72 268.8 Q F0 .982(In a non-interacti)108 280.8 R 1.282 -.15(ve s)-.25 H
.982(hell, or an interacti).15 F 1.282 -.15(ve s)-.25 H .982
-(hell in which the).15 F F1(interacti)3.482 E -.1(ve)-.1 G(_comments).1
-E F0 .982(option to the)3.482 F F1(shopt)3.482 E F0 -.2(bu)108 703.2 S
+(hell in which the).15 F F2(interacti)3.482 E -.1(ve)-.1 G(_comments).1
+E F0 .982(option to the)3.482 F F2(shopt)3.482 E F0 -.2(bu)108 292.8 S
.952(iltin is enabled \(see).2 F F3 .952(SHELL B)3.452 F(UIL)-.09 E .952
(TIN COMMANDS)-.828 F F0(belo)3.202 E .952(w\), a w)-.25 F .952(ord be)
--.1 F .952(ginning with)-.15 F F1(#)3.451 E F0 .951(causes that w)3.451
+-.1 F .952(ginning with)-.15 F F2(#)3.451 E F0 .951(causes that w)3.451
F(ord)-.1 E .604
-(and all remaining characters on that line to be ignored.)108 715.2 R
+(and all remaining characters on that line to be ignored.)108 304.8 R
.605(An interacti)5.605 F .905 -.15(ve s)-.25 H .605(hell without the)
-.15 F F1(interacti)3.105 E -.1(ve)-.1 G(_com-).1 E(ments)108 727.2 Q F0
-1.337(option enabled does not allo)3.837 F 3.837(wc)-.25 G 3.836
-(omments. The)-3.837 F F1(interacti)3.836 E -.1(ve)-.1 G(_comments).1 E
-F0 1.336(option is on by def)3.836 F 1.336(ault in)-.1 F(GNU Bash 5.1)72
-768 Q(2020 October 29)141.235 E(7)195.395 E 0 Cg EP
-%%Page: 8 8
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(interacti)108 84 Q
-.3 -.15(ve s)-.25 H(hells.).15 E/F1 10.95/Times-Bold@0 SF -.11(QU)72
-100.8 S -.438(OT).11 G(ING).438 E/F2 10/Times-Italic@0 SF(Quoting)108
-112.8 Q F0 .477(is used to remo)2.977 F .777 -.15(ve t)-.15 H .477
-(he special meaning of certain characters or w).15 F .477
-(ords to the shell.)-.1 F .478(Quoting can be)5.478 F .185
+.15 F F2(interacti)3.105 E -.1(ve)-.1 G(_com-).1 E(ments)108 316.8 Q F0
+.34(option enabled does not allo)2.84 F 2.84(wc)-.25 G 2.84
+(omments. The)-2.84 F F2(interacti)2.84 E -.1(ve)-.1 G(_comments).1 E F0
+.34(option is on by def)2.84 F .34(ault in in-)-.1 F(teracti)108 328.8 Q
+.3 -.15(ve s)-.25 H(hells.).15 E F4 -.11(QU)72 345.6 S -.438(OT).11 G
+(ING).438 E F1(Quoting)108 357.6 Q F0 .477(is used to remo)2.977 F .777
+-.15(ve t)-.15 H .477(he special meaning of certain characters or w).15
+F .477(ords to the shell.)-.1 F .478(Quoting can be)5.478 F .185
(used to disable special treatment for special characters, to pre)108
-124.8 R -.15(ve)-.25 G .185(nt reserv).15 F .184(ed w)-.15 F .184
-(ords from being recognized as)-.1 F(such, and to pre)108 136.8 Q -.15
+369.6 R -.15(ve)-.25 G .185(nt reserv).15 F .184(ed w)-.15 F .184
+(ords from being recognized as)-.1 F(such, and to pre)108 381.6 Q -.15
(ve)-.25 G(nt parameter e).15 E(xpansion.)-.15 E .288(Each of the)108
-153.6 R F2(metac)2.788 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 .288
-(listed abo)2.788 F .588 -.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0
-SF(DEFINITIONS)2.788 E F0 .288
-(has special meaning to the shell and must be)2.538 F
-(quoted if it is to represent itself.)108 165.6 Q 1.345
-(When the command history e)108 182.4 R 1.344(xpansion f)-.15 F 1.344
+398.4 R F1(metac)2.788 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 .288
+(listed abo)2.788 F .588 -.15(ve u)-.15 H(nder).15 E F3(DEFINITIONS)
+2.788 E F0 .288(has special meaning to the shell and must be)2.538 F
+(quoted if it is to represent itself.)108 410.4 Q 1.345
+(When the command history e)108 427.2 R 1.344(xpansion f)-.15 F 1.344
(acilities are being used \(see)-.1 F F3(HIST)3.844 E(OR)-.162 E 3.594
(YE)-.315 G(XP)-3.594 E(ANSION)-.666 E F0(belo)3.594 E 1.344(w\), the)
--.25 F F2(history e)108 194.4 Q(xpansion)-.2 E F0(character)2.5 E 2.5
-(,u)-.4 G(sually)-2.5 E/F4 10/Times-Bold@0 SF(!)2.5 E F0 2.5(,m)C
-(ust be quoted to pre)-2.5 E -.15(ve)-.25 G(nt history e).15 E
-(xpansion.)-.15 E(There are three quoting mechanisms: the)108 211.2 Q F2
-(escape c)2.69 E(har)-.15 E(acter)-.15 E F0 2.5(,s).73 G
-(ingle quotes, and double quotes.)-2.5 E 2.962(An)108 228 S .463
-(on-quoted backslash \()-2.962 F F4(\\)A F0 2.963(\)i)C 2.963(st)-2.963
-G(he)-2.963 E F2 .463(escape c)3.153 F(har)-.15 E(acter)-.15 E F0 5.463
+-.25 F F1(history e)108 439.2 Q(xpansion)-.2 E F0(character)2.5 E 2.5
+(,u)-.4 G(sually)-2.5 E F2(!)2.5 E F0 2.5(,m)C(ust be quoted to pre)-2.5
+E -.15(ve)-.25 G(nt history e).15 E(xpansion.)-.15 E
+(There are three quoting mechanisms: the)108 456 Q F1(escape c)2.69 E
+(har)-.15 E(acter)-.15 E F0 2.5(,s).73 G
+(ingle quotes, and double quotes.)-2.5 E 2.962(An)108 472.8 S .463
+(on-quoted backslash \()-2.962 F F2(\\)A F0 2.963(\)i)C 2.963(st)-2.963
+G(he)-2.963 E F1 .463(escape c)3.153 F(har)-.15 E(acter)-.15 E F0 5.463
(.I).73 G 2.963(tp)-5.463 G(reserv)-2.963 E .463(es the literal v)-.15 F
-.463(alue of the ne)-.25 F .463(xt character that)-.15 F(follo)108 240 Q
-1.554(ws, with the e)-.25 F 1.553(xception of <ne)-.15 F 4.053
-(wline>. If)-.25 F(a)4.053 E F4(\\)4.053 E F0(<ne)A 1.553
+.463(alue of the ne)-.25 F .463(xt character that)-.15 F(follo)108 484.8
+Q 1.554(ws, with the e)-.25 F 1.553(xception of <ne)-.15 F 4.053
+(wline>. If)-.25 F(a)4.053 E F2(\\)4.053 E F0(<ne)A 1.553
(wline> pair appears, and the backslash is not itself)-.25 F .347
-(quoted, the)108 252 R F4(\\)2.847 E F0(<ne)A .347
+(quoted, the)108 496.8 R F2(\\)2.847 E F0(<ne)A .347
(wline> is treated as a line continuation \(that is, it is remo)-.25 F
-.15(ve)-.15 G 2.848(df).15 G .348(rom the input stream and ef-)-2.848 F
-(fecti)108 264 Q -.15(ve)-.25 G(ly ignored\).).15 E .295
-(Enclosing characters in single quotes preserv)108 280.8 R .295
+(fecti)108 508.8 Q -.15(ve)-.25 G(ly ignored\).).15 E .295
+(Enclosing characters in single quotes preserv)108 525.6 R .295
(es the literal v)-.15 F .295(alue of each character within the quotes.)
-.25 F 2.795(As)5.295 G(in-)-2.795 E
-(gle quote may not occur between single quotes, e)108 292.8 Q -.15(ve)
+(gle quote may not occur between single quotes, e)108 537.6 Q -.15(ve)
-.25 G 2.5(nw).15 G(hen preceded by a backslash.)-2.5 E .033
-(Enclosing characters in double quotes preserv)108 309.6 R .034
+(Enclosing characters in double quotes preserv)108 554.4 R .034
(es the literal v)-.15 F .034
(alue of all characters within the quotes, with the)-.25 F -.15(ex)108
-321.6 S .108(ception of).15 F F4($)2.608 E F0(,)A F4<92>2.608 E F0(,)A
-F4(\\)2.608 E F0 2.608(,a)C .107(nd, when history e)-2.608 F .107
-(xpansion is enabled,)-.15 F F4(!)2.607 E F0 5.107(.W)C .107
-(hen the shell is in)-5.107 F F2 .107(posix mode)2.607 F F0 2.607(,t)C
-(he)-2.607 E F4(!)2.607 E F0 .107(has no)2.607 F .46
-(special meaning within double quotes, e)108 333.6 R -.15(ve)-.25 G 2.96
+566.4 S .108(ception of).15 F F2($)2.608 E F0(,)A F2<92>2.608 E F0(,)A
+F2(\\)2.608 E F0 2.608(,a)C .107(nd, when history e)-2.608 F .107
+(xpansion is enabled,)-.15 F F2(!)2.607 E F0 5.107(.W)C .107
+(hen the shell is in)-5.107 F F1 .107(posix mode)2.607 F F0 2.607(,t)C
+(he)-2.607 E F2(!)2.607 E F0 .107(has no)2.607 F .46
+(special meaning within double quotes, e)108 578.4 R -.15(ve)-.25 G 2.96
(nw).15 G .46(hen history e)-2.96 F .46(xpansion is enabled.)-.15 F .46
-(The characters)5.46 F F4($)2.96 E F0(and)2.96 E F4<92>2.96 E F0(re-)
-2.96 E .563(tain their special meaning within double quotes.)108 345.6 R
+(The characters)5.46 F F2($)2.96 E F0(and)2.96 E F2<92>2.96 E F0(re-)
+2.96 E .563(tain their special meaning within double quotes.)108 590.4 R
.562(The backslash retains its special meaning only when fol-)5.563 F
-(lo)108 357.6 Q .601(wed by one of the follo)-.25 F .602
-(wing characters:)-.25 F F4($)3.102 E F0(,)A F4<92>3.102 E F0(,)A F4(")
-3.935 E F0(,).833 E F4(\\)3.102 E F0 3.102(,o)C(r)-3.102 E F4(<newline>)
+(lo)108 602.4 Q .601(wed by one of the follo)-.25 F .602
+(wing characters:)-.25 F F2($)3.102 E F0(,)A F2<92>3.102 E F0(,)A F2(")
+3.935 E F0(,).833 E F2(\\)3.102 E F0 3.102(,o)C(r)-3.102 E F2(<newline>)
3.102 E F0 5.602(.A)C .602(double quote may be quoted within)-2.5 F .131
-(double quotes by preceding it with a backslash.)108 369.6 R .131
+(double quotes by preceding it with a backslash.)108 614.4 R .131
(If enabled, history e)5.131 F .13(xpansion will be performed unless an)
--.15 F F4(!)2.63 E F0
-(appearing in double quotes is escaped using a backslash.)108 381.6 Q
-(The backslash preceding the)5 E F4(!)2.5 E F0(is not remo)5 E -.15(ve)
--.15 G(d.).15 E(The special parameters)108 398.4 Q F4(*)2.5 E F0(and)2.5
-E F4(@)2.5 E F0(ha)2.5 E .3 -.15(ve s)-.2 H
+-.15 F F2(!)2.63 E F0
+(appearing in double quotes is escaped using a backslash.)108 626.4 Q
+(The backslash preceding the)5 E F2(!)2.5 E F0(is not remo)5 E -.15(ve)
+-.15 G(d.).15 E(The special parameters)108 643.2 Q F2(*)2.5 E F0(and)2.5
+E F2(@)2.5 E F0(ha)2.5 E .3 -.15(ve s)-.2 H
(pecial meaning when in double quotes \(see).15 E F3 -.666(PA)2.5 G
-(RAMETERS).666 E F0(belo)2.25 E(w\).)-.25 E -.8(Wo)108 415.2 S .211
-(rds of the form).8 F F4($)2.711 E F0<08>A F2(string)A F0 2.711<0861>C
-.211(re treated specially)-2.711 F 5.211(.T)-.65 G .211(he w)-5.211 F
-.211(ord e)-.1 F .212(xpands to)-.15 F F2(string)2.712 E F0 2.712(,w)C
-.212(ith backslash-escaped char)-2.712 F(-)-.2 E .605
-(acters replaced as speci\214ed by the ANSI C standard.)108 427.2 R .604
-(Backslash escape sequences, if present, are decoded)5.605 F(as follo)
-108 439.2 Q(ws:)-.25 E F4(\\a)144 451.2 Q F0(alert \(bell\))180 451.2 Q
-F4(\\b)144 463.2 Q F0(backspace)180 463.2 Q F4(\\e)144 475.2 Q(\\E)144
-487.2 Q F0(an escape character)180 487.2 Q F4(\\f)144 499.2 Q F0
-(form feed)180 499.2 Q F4(\\n)144 511.2 Q F0(ne)180 511.2 Q 2.5(wl)-.25
-G(ine)-2.5 E F4(\\r)144 523.2 Q F0(carriage return)180 523.2 Q F4(\\t)
-144 535.2 Q F0(horizontal tab)180 535.2 Q F4(\\v)144 547.2 Q F0 -.15(ve)
-180 547.2 S(rtical tab).15 E F4(\\\\)144 559.2 Q F0(backslash)180 559.2
-Q F4<5c08>144 571.2 Q F0(single quote)180 571.2 Q F4(\\")144 583.2 Q F0
-(double quote)180 583.2 Q F4(\\?)144 595.2 Q F0(question mark)180 595.2
-Q F4(\\)144 607.2 Q F2(nnn)A F0(the eight-bit character whose v)180
-607.2 Q(alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0
-(\(one to three octal digits\))2.5 E F4(\\x)144 619.2 Q F2(HH)A F0
-(the eight-bit character whose v)180 619.2 Q(alue is the he)-.25 E
-(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh)
--.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F4(\\u)144 631.2 Q F2(HHHH)A F0
-1.506(the Unicode \(ISO/IEC 10646\) character whose v)180 643.2 R 1.507
-(alue is the he)-.25 F 1.507(xadecimal v)-.15 F(alue)-.25 E F2(HHHH)
-4.007 E F0(\(one to four he)180 655.2 Q 2.5(xd)-.15 G(igits\))-2.5 E F4
-(\\U)144 667.2 Q F2(HHHHHHHH)A F0 .548
-(the Unicode \(ISO/IEC 10646\) character whose v)180 679.2 R .547
-(alue is the he)-.25 F .547(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-)
-3.047 E(HHH)180 691.2 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G
-(igits\))-2.5 E F4(\\c)144 703.2 Q F2(x)A F0 2.5(ac)180 703.2 S(ontrol-)
--2.5 E F2(x)A F0(character)2.5 E(The e)108 720 Q(xpanded result is sing\
-le-quoted, as if the dollar sign had not been present.)-.15 E
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(8)195.395 E 0 Cg EP
+(RAMETERS).666 E F0(belo)2.25 E(w\).)-.25 E .148
+(Character sequences of the form)108 660 R F2($)2.649 E F0<08>A F1
+(string)A F0 2.649<0861>C .149(re treated as a special v)-2.649 F .149
+(ariant of single quotes.)-.25 F .149(The sequence e)5.149 F(x-)-.15 E
+.528(pands to)108 672 R F1(string)3.028 E F0 3.028(,w)C .528
+(ith backslash-escaped characters in)-3.028 F F1(string)3.027 E F0 .527
+(replaced as speci\214ed by the ANSI C standard.)3.027 F
+(Backslash escape sequences, if present, are decoded as follo)108 684 Q
+(ws:)-.25 E F2(\\a)144 696 Q F0(alert \(bell\))180 696 Q F2(\\b)144 708
+Q F0(backspace)180 708 Q(GNU Bash 5.2)72 768 Q(2022 September 19)135.955
+E(8)190.115 E 0 Cg EP
%%Page: 9 9
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 2.64(Ad)108 84 S
-.14(ouble-quoted string preceded by a dollar sign \()-2.64 F/F1 10
-/Times-Bold@0 SF($)A F0(")A/F2 10/Times-Italic@0 SF(string)A F0 .14
-("\) will cause the string to be translated according)B .31
-(to the current locale.)108 96 R(The)5.31 E F2 -.1(ge)2.809 G(tte).1 E
-(xt)-.2 E F0 .309(infrastructure performs the message catalog lookup an\
-d translation, using)2.809 F(the)108 108 Q F1(LC_MESSA)2.625 E(GES)-.55
-E F0(and)2.625 E F1(TEXTDOMAIN)2.625 E F0 .125(shell v)2.625 F 2.625
-(ariables. If)-.25 F .126(the current locale is)2.626 F F1(C)2.626 E F0
-(or)2.626 E F1(POSIX)2.626 E F0 2.626(,o)C 2.626(ri)-2.626 G 2.626(ft)
--2.626 G(here)-2.626 E .362(are no translations a)108 120 R -.25(va)-.2
-G .362(ilable, the dollar sign is ignored.).25 F .362
-(If the string is translated and replaced, the replace-)5.362 F
-(ment is double-quoted.)108 132 Q/F3 10.95/Times-Bold@0 SF -.81(PA)72
-148.8 S(RAMETERS).81 E F0(A)108 160.8 Q F2(par)4.574 E(ameter)-.15 E F0
-.824(is an entity that stores v)4.054 F 3.324(alues. It)-.25 F .824
-(can be a)3.324 F F2(name)3.685 E F0 3.325(,an).18 G(umber)-3.325 E
-3.325(,o)-.4 G 3.325(ro)-3.325 G .825(ne of the special characters)
--3.325 F .802(listed belo)108 172.8 R 3.302(wu)-.25 G(nder)-3.302 E F1
-.802(Special P)3.302 F(arameters)-.1 E F0 5.802(.A)C F2(variable)-2.21 E
-F0 .802(is a parameter denoted by a)3.482 F F2(name)3.662 E F0 5.801(.A)
-.18 G -.25(va)-2.5 G .801(riable has a).25 F F2(value)108 184.8 Q F0
-.368(and zero or more)2.868 F F2(attrib)2.868 E(utes)-.2 E F0 5.369(.A)C
-(ttrib)-5.369 E .369(utes are assigned using the)-.2 F F1(declar)2.869 E
-(e)-.18 E F0 -.2(bu)2.869 G .369(iltin command \(see).2 F F1(declar)
-2.869 E(e)-.18 E F0(belo)108 196.8 Q 2.5(wi)-.25 G(n)-2.5 E/F4 9
-/Times-Bold@0 SF(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E/F5 9
-/Times-Roman@0 SF(\).)A F0 2.755(Ap)108 213.6 S .255
-(arameter is set if it has been assigned a v)-2.755 F 2.754(alue. The)
--.25 F .254(null string is a v)2.754 F .254(alid v)-.25 F 2.754
-(alue. Once)-.25 F 2.754(av)2.754 G .254(ariable is set, it)-3.004 F
-(may be unset only by using the)108 225.6 Q F1(unset)2.5 E F0 -.2(bu)2.5
-G(iltin command \(see).2 E F4(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)
--.828 E F0(belo)2.25 E(w\).)-.25 E(A)108 242.4 Q F2(variable)2.79 E F0
-(may be assigned to by a statement of the form)2.68 E F2(name)144 259.2
-Q F0(=[)A F2(value)A F0(])A(If)108 276 Q F2(value)3.022 E F0 .232
-(is not gi)2.912 F -.15(ve)-.25 G .232(n, the v).15 F .232
-(ariable is assigned the null string.)-.25 F(All)5.233 E F2(values)3.023
-E F0(under)3.003 E .233(go tilde e)-.18 F .233(xpansion, parameter)-.15
-F .515(and v)108 288 R .515(ariable e)-.25 F .515
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(\\e)144 84 Q(\\E)144 96 Q F0(an escape character)180 96 Q F1(\\f)144
+108 Q F0(form feed)180 108 Q F1(\\n)144 120 Q F0(ne)180 120 Q 2.5(wl)
+-.25 G(ine)-2.5 E F1(\\r)144 132 Q F0(carriage return)180 132 Q F1(\\t)
+144 144 Q F0(horizontal tab)180 144 Q F1(\\v)144 156 Q F0 -.15(ve)180
+156 S(rtical tab).15 E F1(\\\\)144 168 Q F0(backslash)180 168 Q F1<5c08>
+144 180 Q F0(single quote)180 180 Q F1(\\")144 192 Q F0(double quote)180
+192 Q F1(\\?)144 204 Q F0(question mark)180 204 Q F1(\\)144 216 Q/F2 10
+/Times-Italic@0 SF(nnn)A F0(the eight-bit character whose v)180 216 Q
+(alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0
+(\(one to three octal digits\))2.5 E F1(\\x)144 228 Q F2(HH)A F0
+(the eight-bit character whose v)180 228 Q(alue is the he)-.25 E
+(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh)
+-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(\\u)144 240 Q F2(HHHH)A F0
+1.506(the Unicode \(ISO/IEC 10646\) character whose v)180 252 R 1.507
+(alue is the he)-.25 F 1.507(xadecimal v)-.15 F(alue)-.25 E F2(HHHH)
+4.007 E F0(\(one to four he)180 264 Q 2.5(xd)-.15 G(igits\))-2.5 E F1
+(\\U)144 276 Q F2(HHHHHHHH)A F0 .548
+(the Unicode \(ISO/IEC 10646\) character whose v)180 288 R .547
+(alue is the he)-.25 F .547(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-)
+3.047 E(HHH)180 300 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G(igits\))
+-2.5 E F1(\\c)144 312 Q F2(x)A F0 2.5(ac)180 312 S(ontrol-)-2.5 E F2(x)A
+F0(character)2.5 E(The e)108 328.8 Q(xpanded result is single-quoted, a\
+s if the dollar sign had not been present.)-.15 E 2.64(Ad)108 345.6 S
+.14(ouble-quoted string preceded by a dollar sign \()-2.64 F F1($)A F0
+(")A F2(string)A F0 .14
+("\) will cause the string to be translated according)B .785
+(to the current locale.)108 357.6 R(The)5.785 E F2 -.1(ge)3.284 G(tte).1
+E(xt)-.2 E F0 .784
+(infrastructure performs the lookup and translation, using the)3.284 F
+F1(LC_MES-)3.284 E(SA)108 369.6 Q(GES)-.55 E F0(,)A F1(TEXTDOMAINDIR)
+2.76 E F0 2.76(,a)C(nd)-2.76 E F1(TEXTDOMAIN)2.76 E F0 .261(shell v)
+2.761 F 2.761(ariables. If)-.25 F .261(the current locale is)2.761 F F1
+(C)2.761 E F0(or)2.761 E F1(POSIX)2.761 E F0(,)A .792
+(if there are no translations a)108 381.6 R -.25(va)-.2 G .791(ilable, \
+or if the string is not translated, the dollar sign is ignored.).25 F
+.791(This is a)5.791 F .534
+(form of double quoting, so the string remains double-quoted by def)108
+393.6 R .535(ault, whether or not it is translated and)-.1 F 2.798
+(replaced. If)108 405.6 R(the)2.798 E F1(noexpand_translation)2.797 E F0
+.297(option is enabled using the)2.797 F F1(shopt)2.797 E F0 -.2(bu)
+2.797 G .297(iltin, translated strings are sin-).2 F 2.044
+(gle-quoted instead of double-quoted.)108 417.6 R 2.044
+(See the description of)7.044 F F1(shopt)4.545 E F0(belo)4.545 E 4.545
+(wu)-.25 G(nder)-4.545 E/F3 9/Times-Bold@0 SF(SHELL)4.545 E/F4 9
+/Times-Roman@0 SF -.09(BU)C(IL).09 E(TIN)-.828 E F3(COM-)A(MANDS)108
+429.6 Q F4(.)A/F5 10.95/Times-Bold@0 SF -.81(PA)72 446.4 S(RAMETERS).81
+E F0(A)108 458.4 Q F2(par)4.575 E(ameter)-.15 E F0 .825
+(is an entity that stores v)4.055 F 3.325(alues. It)-.25 F .825
+(can be a)3.325 F F2(name)3.684 E F0 3.324(,an).18 G(umber)-3.324 E
+3.324(,o)-.4 G 3.324(ro)-3.324 G .824(ne of the special characters)
+-3.324 F .801(listed belo)108 470.4 R 3.301(wu)-.25 G(nder)-3.301 E F1
+.801(Special P)3.301 F(arameters)-.1 E F0 5.802(.A)C F2(variable)-2.21 E
+F0 .802(is a parameter denoted by a)3.482 F F2(name)3.662 E F0 5.802(.A)
+.18 G -.25(va)-2.5 G .802(riable has a).25 F F2(value)108 482.4 Q F0
+.369(and zero or more)2.869 F F2(attrib)2.869 E(utes)-.2 E F0 5.369(.A)C
+(ttrib)-5.369 E .369(utes are assigned using the)-.2 F F1(declar)2.868 E
+(e)-.18 E F0 -.2(bu)2.868 G .368(iltin command \(see).2 F F1(declar)
+2.868 E(e)-.18 E F0(belo)108 494.4 Q 2.5(wi)-.25 G(n)-2.5 E F3(SHELL B)
+2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F4(\).)A F0 2.754(Ap)108 511.2 S
+.254(arameter is set if it has been assigned a v)-2.754 F 2.754
+(alue. The)-.25 F .254(null string is a v)2.754 F .255(alid v)-.25 F
+2.755(alue. Once)-.25 F 2.755(av)2.755 G .255(ariable is set, it)-3.005
+F(may be unset only by using the)108 523.2 Q F1(unset)2.5 E F0 -.2(bu)
+2.5 G(iltin command \(see).2 E F3(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)
+-.828 E F0(belo)2.25 E(w\).)-.25 E(A)108 540 Q F2(variable)2.79 E F0
+(may be assigned to by a statement of the form)2.68 E F2(name)144 556.8
+Q F0(=[)A F2(value)A F0(])A(If)108 573.6 Q F2(value)3.023 E F0 .233
+(is not gi)2.913 F -.15(ve)-.25 G .233(n, the v).15 F .232
+(ariable is assigned the null string.)-.25 F(All)5.232 E F2(values)3.022
+E F0(under)3.002 E .232(go tilde e)-.18 F .232(xpansion, parameter)-.15
+F .515(and v)108 585.6 R .515(ariable e)-.25 F .515
(xpansion, command substitution, arithmetic e)-.15 F .515
(xpansion, and quote remo)-.15 F -.25(va)-.15 G 3.015(l\().25 G(see)
--3.015 E F4(EXP)3.015 E(ANSION)-.666 E F0(belo)108 300 Q 2.698(w\). If)
--.25 F .198(the v)2.698 F .198(ariable has its)-.25 F F1(integer)2.698 E
-F0(attrib)2.698 E .198(ute set, then)-.2 F F2(value)2.988 E F0 .198
-(is e)2.878 F -.25(va)-.25 G .199(luated as an arithmetic e).25 F .199
-(xpression e)-.15 F -.15(ve)-.25 G(n).15 E .902(if the $\(\(...\)\) e)
-108 312 R .902(xpansion is not used \(see)-.15 F F1 .901
-(Arithmetic Expansion)3.401 F F0(belo)3.401 E 3.401(w\). W)-.25 F .901
-(ord splitting is not performed,)-.8 F 1.178(with the e)108 324 R 1.178
-(xception of)-.15 F F1("$@")3.678 E F0 1.178(as e)3.678 F 1.179
-(xplained belo)-.15 F 3.679(wu)-.25 G(nder)-3.679 E F1 1.179(Special P)
-3.679 F(arameters)-.1 E F0 6.179(.P)C 1.179(athname e)-6.329 F 1.179
-(xpansion is not)-.15 F 3.649(performed. Assignment)108 336 R 1.149
-(statements may also appear as ar)3.649 F 1.148(guments to the)-.18 F F1
-(alias)3.648 E F0(,)A F1(declar)3.648 E(e)-.18 E F0(,)A F1(typeset)3.648
-E F0(,)A F1(export)3.648 E F0(,)A F1 -.18(re)108 348 S(adonly).18 E F0
-3.288(,a)C(nd)-3.288 E F1(local)3.288 E F0 -.2(bu)3.288 G .788
-(iltin commands \().2 F F2(declar)A(ation)-.15 E F0 3.288
-(commands\). When)3.288 F(in)3.289 E F2 .789(posix mode)3.289 F F0 3.289
-(,t)C .789(hese b)-3.289 F .789(uiltins may)-.2 F 1.496
-(appear in a command after one or more instances of the)108 360 R F1
-(command)3.996 E F0 -.2(bu)3.996 G 1.496
-(iltin and retain these assignment).2 F(statement properties.)108 372 Q
-.376(In the conte)108 388.8 R .376
-(xt where an assignment statement is assigning a v)-.15 F .376
-(alue to a shell v)-.25 F .377(ariable or array inde)-.25 F .377
+-3.015 E F3(EXP)3.015 E(ANSION)-.666 E F0(belo)108 597.6 Q 2.699
+(w\). If)-.25 F .199(the v)2.699 F .199(ariable has its)-.25 F F1
+(integer)2.698 E F0(attrib)2.698 E .198(ute set, then)-.2 F F2(value)
+2.988 E F0 .198(is e)2.878 F -.25(va)-.25 G .198
+(luated as an arithmetic e).25 F .198(xpression e)-.15 F -.15(ve)-.25 G
+(n).15 E .745(if the $\(\(...\)\) e)108 609.6 R .745
+(xpansion is not used \(see)-.15 F F1 .745(Arithmetic Expansion)3.245 F
+F0(belo)3.245 E 3.246(w\). W)-.25 F .746(ord splitting and pathname e)
+-.8 F(x-)-.15 E 1.364(pansion are not performed.)108 621.6 R 1.364
+(Assignment statements may also appear as ar)6.364 F 1.363
+(guments to the)-.18 F F1(alias)3.863 E F0(,)A F1(declar)3.863 E(e)-.18
+E F0(,)A F1(typeset)108 633.6 Q F0(,)A F1(export)3.964 E F0(,)A F1 -.18
+(re)3.964 G(adonly).18 E F0 3.964(,a)C(nd)-3.964 E F1(local)3.964 E F0
+-.2(bu)3.964 G 1.464(iltin commands \().2 F F2(declar)A(ation)-.15 E F0
+3.964(commands\). When)3.964 F(in)3.964 E F2 1.465(posix mode)3.965 F F0
+(,)A 1.142(these b)108 645.6 R 1.142
+(uiltins may appear in a command after one or more instances of the)-.2
+F F1(command)3.641 E F0 -.2(bu)3.641 G 1.141(iltin and retain).2 F
+(these assignment statement properties.)108 657.6 Q .376(In the conte)
+108 674.4 R .376(xt where an assignment statement is assigning a v)-.15
+F .376(alue to a shell v)-.25 F .377(ariable or array inde)-.25 F .377
(x, the +=)-.15 F 1.631
-(operator can be used to append to or add to the v)108 400.8 R(ariable')
+(operator can be used to append to or add to the v)108 686.4 R(ariable')
-.25 E 4.13(sp)-.55 G(re)-4.13 E 1.63(vious v)-.25 F 4.13(alue. This)
--.25 F 1.63(includes ar)4.13 F 1.63(guments to)-.18 F -.2(bu)108 412.8 S
+-.25 F 1.63(includes ar)4.13 F 1.63(guments to)-.18 F -.2(bu)108 698.4 S
.163(iltin commands such as).2 F F1(declar)2.664 E(e)-.18 E F0 .164
(that accept assignment statements \()2.664 F F2(declar)A(ation)-.15 E
-F0 2.664(commands\). When)2.664 F .164(+= is)2.664 F .252
-(applied to a v)108 424.8 R .252(ariable for which the)-.25 F F2(inte)
-2.752 E -.1(ge)-.4 G(r).1 E F0(attrib)2.752 E .252(ute has been set,)-.2
-F F2(value)2.752 E F0 .251(is e)2.751 F -.25(va)-.25 G .251
-(luated as an arithmetic e).25 F(xpres-)-.15 E .05
-(sion and added to the v)108 436.8 R(ariable')-.25 E 2.55(sc)-.55 G .05
-(urrent v)-2.55 F .05(alue, which is also e)-.25 F -.25(va)-.25 G 2.55
-(luated. When).25 F .05(+= is applied to an array v)2.55 F(ari-)-.25 E
-.459(able using compound assignment \(see)108 448.8 R F1(Arrays)2.959 E
-F0(belo)2.959 E .459(w\), the v)-.25 F(ariable')-.25 E 2.959(sv)-.55 G
-.459(alue is not unset \(as it is when using)-3.209 F .265(=\), and ne)
-108 460.8 R 2.765(wv)-.25 G .265(alues are appended to the array be)
--3.015 F .265(ginning at one greater than the array')-.15 F 2.765(sm)
--.55 G .265(aximum inde)-2.765 F 2.765(x\()-.15 G(for)-2.765 E(inde)108
-472.8 Q -.15(xe)-.15 G 3.402(da).15 G .902
-(rrays\) or added as additional k)-3.402 F -.15(ey)-.1 G<ad76>.15 E .901
-(alue pairs in an associati)-.25 F 1.201 -.15(ve a)-.25 H(rray).15 E
-5.901(.W)-.65 G .901(hen applied to a string-)-5.901 F -.25(va)108 484.8
-S(lued v).25 E(ariable,)-.25 E F2(value)2.5 E F0(is e)2.5 E
-(xpanded and appended to the v)-.15 E(ariable')-.25 E 2.5(sv)-.55 G
-(alue.)-2.75 E 3.382(Av)108 501.6 S .882(ariable can be assigned the)
--3.632 F F2(namer)3.382 E(ef)-.37 E F0(attrib)3.382 E .882
-(ute using the)-.2 F F1<ad6e>3.382 E F0 .882(option to the)3.382 F F1
-(declar)3.382 E(e)-.18 E F0(or)3.383 E F1(local)3.383 E F0 -.2(bu)3.383
-G .883(iltin com-).2 F .316(mands \(see the descriptions of)108 513.6 R
-F1(declar)2.816 E(e)-.18 E F0(and)2.816 E F1(local)2.816 E F0(belo)2.816
-E .316(w\) to create a)-.25 F F2(namer)2.815 E(ef)-.37 E F0 2.815(,o)C
-2.815(rar)-2.815 G .315(eference to another v)-2.815 F(ari-)-.25 E 2.918
-(able. This)108 525.6 R(allo)2.918 E .418(ws v)-.25 F .418
+F0 2.664(commands\). When)2.664 F .164(+= is)2.664 F .132
+(applied to a v)108 710.4 R .132(ariable for which the)-.25 F F1
+(integer)2.632 E F0(attrib)2.632 E .132(ute has been set,)-.2 F F2
+(value)2.632 E F0 .131(is e)2.631 F -.25(va)-.25 G .131
+(luated as an arithmetic e).25 F(xpres-)-.15 E 1.226
+(sion and added to the v)108 722.4 R(ariable')-.25 E 3.726(sc)-.55 G
+1.227(urrent v)-3.726 F 1.227(alue, which is also e)-.25 F -.25(va)-.25
+G 3.727(luated. When).25 F 1.227(+= is applied to an array)3.727 F
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(9)190.115 E 0 Cg EP
+%%Page: 10 10
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E -.25(va)108 84 S
+.115(riable using compound assignment \(see).25 F/F1 10/Times-Bold@0 SF
+(Arrays)2.615 E F0(belo)2.615 E .115(w\), the v)-.25 F(ariable')-.25 E
+2.615(sv)-.55 G .114(alue is not unset \(as it is when us-)-2.865 F .387
+(ing =\), and ne)108 96 R 2.887(wv)-.25 G .388
+(alues are appended to the array be)-3.137 F .388
+(ginning at one greater than the array')-.15 F 2.888(sm)-.55 G .388
+(aximum inde)-2.888 F(x)-.15 E 1.597(\(for inde)108 108 R -.15(xe)-.15 G
+4.097(da).15 G 1.596(rrays\) or added as additional k)-4.097 F -.15(ey)
+-.1 G<ad76>.15 E 1.596(alue pairs in an associati)-.25 F 1.896 -.15
+(ve a)-.25 H(rray).15 E 6.596(.W)-.65 G 1.596(hen applied to a)-6.596 F
+(string-v)108 120 Q(alued v)-.25 E(ariable,)-.25 E/F2 10/Times-Italic@0
+SF(value)2.5 E F0(is e)2.5 E(xpanded and appended to the v)-.15 E
+(ariable')-.25 E 2.5(sv)-.55 G(alue.)-2.75 E 3.382(Av)108 136.8 S .882
+(ariable can be assigned the)-3.632 F F2(namer)3.382 E(ef)-.37 E F0
+(attrib)3.382 E .882(ute using the)-.2 F F1<ad6e>3.382 E F0 .882
+(option to the)3.382 F F1(declar)3.382 E(e)-.18 E F0(or)3.383 E F1
+(local)3.383 E F0 -.2(bu)3.383 G .883(iltin com-).2 F .316
+(mands \(see the descriptions of)108 148.8 R F1(declar)2.816 E(e)-.18 E
+F0(and)2.816 E F1(local)2.816 E F0(belo)2.816 E .316(w\) to create a)
+-.25 F F2(namer)2.815 E(ef)-.37 E F0 2.815(,o)C 2.815(rar)-2.815 G .315
+(eference to another v)-2.815 F(ari-)-.25 E 2.918(able. This)108 160.8 R
+(allo)2.918 E .418(ws v)-.25 F .418
(ariables to be manipulated indirectly)-.25 F 5.419(.W)-.65 G(hene)
-5.419 E -.15(ve)-.25 G 2.919(rt).15 G .419(he nameref v)-2.919 F .419
(ariable is referenced, as-)-.25 F .133
-(signed to, unset, or has its attrib)108 537.6 R .132
+(signed to, unset, or has its attrib)108 172.8 R .132
(utes modi\214ed \(other than using or changing the)-.2 F F2(namer)2.632
E(ef)-.37 E F0(attrib)2.632 E .132(ute itself\), the)-.2 F 1.356
-(operation is actually performed on the v)108 549.6 R 1.357
+(operation is actually performed on the v)108 184.8 R 1.357
(ariable speci\214ed by the nameref v)-.25 F(ariable')-.25 E 3.857(sv)
-.55 G 3.857(alue. A)-4.107 F 1.357(nameref is)3.857 F .972
-(commonly used within shell functions to refer to a v)108 561.6 R .971
+(commonly used within shell functions to refer to a v)108 196.8 R .971
(ariable whose name is passed as an ar)-.25 F .971(gument to the)-.18 F
-2.5(function. F)108 573.6 R(or instance, if a v)-.15 E
+2.5(function. F)108 208.8 R(or instance, if a v)-.15 E
(ariable name is passed to a shell function as its \214rst ar)-.25 E
-(gument, running)-.18 E/F6 10/Courier@0 SF(declare -n ref=$1)144 591.6 Q
-F0 .302(inside the function creates a nameref v)108 609.6 R(ariable)-.25
+(gument, running)-.18 E/F3 10/Courier@0 SF(declare -n ref=$1)144 226.8 Q
+F0 .302(inside the function creates a nameref v)108 244.8 R(ariable)-.25
E F1 -.18(re)2.803 G(f).18 E F0 .303(whose v)2.803 F .303(alue is the v)
-.25 F .303(ariable name passed as the \214rst ar)-.25 F(gu-)-.18 E
-3.592(ment. References)108 621.6 R 1.092(and assignments to)3.592 F F1
+3.592(ment. References)108 256.8 R 1.092(and assignments to)3.592 F F1
-.18(re)3.592 G(f).18 E F0 3.592(,a)C 1.092(nd changes to its attrib)
-3.592 F 1.092(utes, are treated as references, assign-)-.2 F .143
-(ments, and attrib)108 633.6 R .144(ute modi\214cations to the v)-.2 F
+(ments, and attrib)108 268.8 R .144(ute modi\214cations to the v)-.2 F
.144(ariable whose name w)-.25 F .144(as passed as)-.1 F F1($1)2.644 E
F0 5.144(.I)C 2.644(ft)-5.144 G .144(he control v)-2.644 F .144
-(ariable in a)-.25 F F1 -.25(fo)108 645.6 S(r).25 E F0 .868
+(ariable in a)-.25 F F1 -.25(fo)108 280.8 S(r).25 E F0 .868
(loop has the nameref attrib)3.368 F .868(ute, the list of w)-.2 F .867
(ords can be a list of shell v)-.1 F .867
(ariables, and a name reference)-.25 F .509
-(will be established for each w)108 657.6 R .509
+(will be established for each w)108 292.8 R .509
(ord in the list, in turn, when the loop is e)-.1 F -.15(xe)-.15 G 3.009
(cuted. Array).15 F -.25(va)3.009 G .509(riables cannot be).25 F(gi)108
-669.6 Q -.15(ve)-.25 G 3.032(nt).15 G(he)-3.032 E F1(namer)3.032 E(ef)
+304.8 Q -.15(ve)-.25 G 3.032(nt).15 G(he)-3.032 E F1(namer)3.032 E(ef)
-.18 E F0(attrib)3.032 E 3.032(ute. Ho)-.2 F(we)-.25 E -.15(ve)-.25 G
1.332 -.4(r, n).15 H .532(ameref v).4 F .531
(ariables can reference array v)-.25 F .531(ariables and subscripted ar)
--.25 F(-)-.2 E .533(ray v)108 681.6 R 3.033(ariables. Namerefs)-.25 F
+-.25 F(-)-.2 E .533(ray v)108 316.8 R 3.033(ariables. Namerefs)-.25 F
.533(can be unset using the)3.033 F F1<ad6e>3.033 E F0 .533
(option to the)3.033 F F1(unset)3.033 E F0 -.2(bu)3.034 G 3.034
(iltin. Otherwise,).2 F(if)3.034 E F1(unset)3.034 E F0 .534(is e)3.034 F
--.15(xe)-.15 G(-).15 E .443(cuted with the name of a nameref v)108 693.6
+-.15(xe)-.15 G(-).15 E .443(cuted with the name of a nameref v)108 328.8
R .442(ariable as an ar)-.25 F .442(gument, the v)-.18 F .442
(ariable referenced by the nameref v)-.25 F(ariable)-.25 E
-(will be unset.)108 705.6 Q(GNU Bash 5.1)72 768 Q(2020 October 29)
-141.235 E(9)195.395 E 0 Cg EP
-%%Page: 10 10
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF -.2(Po)87 84 S(sitional P).2 E(arameters)-.1 E F0(A)108 96 Q/F2 10
-/Times-Italic@0 SF .705(positional par)4.455 F(ameter)-.15 E F0 .706(is\
- a parameter denoted by one or more digits, other than the single digit\
- 0.)3.935 F(Posi-)5.706 E .445
-(tional parameters are assigned from the shell')108 108 R 2.944(sa)-.55
-G -.18(rg)-2.944 G .444(uments when it is in).18 F -.2(vo)-.4 G -.1(ke)
-.2 G .444(d, and may be reassigned using).1 F(the)108 120 Q F1(set)3.333
-E F0 -.2(bu)3.333 G .833(iltin command.).2 F .834(Positional parameters\
- may not be assigned to with assignment statements.)5.833 F(The)5.834 E
-(positional parameters are temporarily replaced when a shell function i\
-s e)108 132 Q -.15(xe)-.15 G(cuted \(see).15 E/F3 9/Times-Bold@0 SF
-(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E 1.404(When a positional par\
-ameter consisting of more than a single digit is e)108 148.8 R 1.403
-(xpanded, it must be enclosed in)-.15 F(braces \(see)108 160.8 Q F3(EXP)
-2.5 E(ANSION)-.666 E F0(belo)2.25 E(w\).)-.25 E F1(Special P)87 177.6 Q
-(arameters)-.1 E F0 1.674(The shell treats se)108 189.6 R -.15(ve)-.25 G
-1.674(ral parameters specially).15 F 6.675(.T)-.65 G 1.675
-(hese parameters may only be referenced; assignment to)-6.675 F
-(them is not allo)108 201.6 Q(wed.)-.25 E F1(*)108 213.6 Q F0 .224
-(Expands to the positional parameters, starting from one.)144 213.6 R
-.223(When the e)5.224 F .223(xpansion is not within double)-.15 F .662
-(quotes, each positional parameter e)144 225.6 R .662
+(will be unset.)108 340.8 Q F1 -.2(Po)87 357.6 S(sitional P).2 E
+(arameters)-.1 E F0(A)108 369.6 Q F2 .705(positional par)4.455 F(ameter)
+-.15 E F0 .706(is a parameter denoted by one or more digits, other than\
+ the single digit 0.)3.935 F(Posi-)5.706 E .445
+(tional parameters are assigned from the shell')108 381.6 R 2.944(sa)
+-.55 G -.18(rg)-2.944 G .444(uments when it is in).18 F -.2(vo)-.4 G -.1
+(ke).2 G .444(d, and may be reassigned using).1 F(the)108 393.6 Q F1
+(set)3.333 E F0 -.2(bu)3.333 G .833(iltin command.).2 F .834(Positional\
+ parameters may not be assigned to with assignment statements.)5.833 F
+(The)5.834 E(positional parameters are temporarily replaced when a shel\
+l function is e)108 405.6 Q -.15(xe)-.15 G(cuted \(see).15 E/F4 9
+/Times-Bold@0 SF(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E 1.404(When \
+a positional parameter consisting of more than a single digit is e)108
+422.4 R 1.403(xpanded, it must be enclosed in)-.15 F(braces \(see)108
+434.4 Q F4(EXP)2.5 E(ANSION)-.666 E F0(belo)2.25 E(w\).)-.25 E F1
+(Special P)87 451.2 Q(arameters)-.1 E F0 1.674(The shell treats se)108
+463.2 R -.15(ve)-.25 G 1.674(ral parameters specially).15 F 6.675(.T)
+-.65 G 1.675(hese parameters may only be referenced; assignment to)
+-6.675 F(them is not allo)108 475.2 Q(wed.)-.25 E F1(*)108 487.2 Q F0
+.224(Expands to the positional parameters, starting from one.)144 487.2
+R .223(When the e)5.224 F .223(xpansion is not within double)-.15 F .662
+(quotes, each positional parameter e)144 499.2 R .662
(xpands to a separate w)-.15 F 3.162(ord. In)-.1 F(conte)3.162 E .662
-(xts where it is performed,)-.15 F 1.082(those w)144 237.6 R 1.082
+(xts where it is performed,)-.15 F 1.082(those w)144 511.2 R 1.082
(ords are subject to further w)-.1 F 1.081(ord splitting and pathname e)
-.1 F 3.581(xpansion. When)-.15 F 1.081(the e)3.581 F(xpansion)-.15 E
-.914(occurs within double quotes, it e)144 249.6 R .914
+.914(occurs within double quotes, it e)144 523.2 R .914
(xpands to a single w)-.15 F .915(ord with the v)-.1 F .915
(alue of each parameter sepa-)-.25 F .891
-(rated by the \214rst character of the)144 261.6 R F3(IFS)3.39 E F0 .89
+(rated by the \214rst character of the)144 535.2 R F4(IFS)3.39 E F0 .89
(special v)3.14 F 3.39(ariable. That)-.25 F .89(is, ")3.39 F F1($*)A F0
3.39("i)C 3.39(se)-3.39 G(qui)-3.39 E -.25(va)-.25 G .89(lent to ").25 F
-F1($1)A F2(c)A F1($2)A F2(c)A F1(...)A F0(",)A(where)144 273.6 Q F2(c)
+F1($1)A F2(c)A F1($2)A F2(c)A F1(...)A F0(",)A(where)144 547.2 Q F2(c)
3.532 E F0 .832(is the \214rst character of the v)3.642 F .832
-(alue of the)-.25 F F3(IFS)3.332 E F0 -.25(va)3.082 G 3.332(riable. If)
-.25 F F3(IFS)3.332 E F0 .833(is unset, the parameters are)3.082 F
-(separated by spaces.)144 285.6 Q(If)5 E F3(IFS)2.5 E F0
+(alue of the)-.25 F F4(IFS)3.332 E F0 -.25(va)3.082 G 3.332(riable. If)
+.25 F F4(IFS)3.332 E F0 .833(is unset, the parameters are)3.082 F
+(separated by spaces.)144 559.2 Q(If)5 E F4(IFS)2.5 E F0
(is null, the parameters are joined without interv)2.25 E
-(ening separators.)-.15 E F1(@)108 297.6 Q F0 .722
-(Expands to the positional parameters, starting from one.)144 297.6 R
+(ening separators.)-.15 E F1(@)108 571.2 Q F0 .722
+(Expands to the positional parameters, starting from one.)144 571.2 R
.722(In conte)5.722 F .722(xts where w)-.15 F .722(ord splitting is per)
--.1 F(-)-.2 E 1.165(formed, this e)144 309.6 R 1.165
+-.1 F(-)-.2 E 1.165(formed, this e)144 583.2 R 1.165
(xpands each positional parameter to a separate w)-.15 F 1.165
-(ord; if not within double quotes,)-.1 F .655(these w)144 321.6 R .655
+(ord; if not within double quotes,)-.1 F .655(these w)144 595.2 R .655
(ords are subject to w)-.1 F .655(ord splitting.)-.1 F .655(In conte)
5.655 F .655(xts where w)-.15 F .654
-(ord splitting is not performed, this)-.1 F -.15(ex)144 333.6 S .748
+(ord splitting is not performed, this)-.1 F -.15(ex)144 607.2 S .748
(pands to a single w).15 F .748
(ord with each positional parameter separated by a space.)-.1 F .748
(When the e)5.748 F(xpan-)-.15 E 1.091
-(sion occurs within double quotes, each parameter e)144 345.6 R 1.091
+(sion occurs within double quotes, each parameter e)144 619.2 R 1.091
(xpands to a separate w)-.15 F 3.59(ord. That)-.1 F 1.09(is, ")3.59 F F1
-($@)A F0 3.59("i)C(s)-3.59 E(equi)144 357.6 Q -.25(va)-.25 G .412
+($@)A F0 3.59("i)C(s)-3.59 E(equi)144 631.2 Q -.25(va)-.25 G .412
(lent to ").25 F F1($1)A F0 2.912("")C F1($2)-2.912 E F0 2.912(".)C
2.912(.. If)-2.912 F .413(the double-quoted e)2.913 F .413
(xpansion occurs within a w)-.15 F .413(ord, the e)-.1 F .413
(xpansion of)-.15 F .38(the \214rst parameter is joined with the be)144
-369.6 R .379(ginning part of the original w)-.15 F .379(ord, and the e)
+643.2 R .379(ginning part of the original w)-.15 F .379(ord, and the e)
-.1 F .379(xpansion of the)-.15 F .771
-(last parameter is joined with the last part of the original w)144 381.6
+(last parameter is joined with the last part of the original w)144 655.2
R 3.271(ord. When)-.1 F .772(there are no positional pa-)3.271 F
-(rameters, ")144 393.6 Q F1($@)A F0 2.5("a)C(nd)-2.5 E F1($@)2.5 E F0
+(rameters, ")144 667.2 Q F1($@)A F0 2.5("a)C(nd)-2.5 E F1($@)2.5 E F0
-.15(ex)2.5 G(pand to nothing \(i.e., the).15 E 2.5(ya)-.15 G(re remo)
--2.5 E -.15(ve)-.15 G(d\).).15 E F1(#)108 405.6 Q F0
-(Expands to the number of positional parameters in decimal.)144 405.6 Q
-F1(?)108 417.6 Q F0(Expands to the e)144 417.6 Q
+-2.5 E -.15(ve)-.15 G(d\).).15 E F1(#)108 679.2 Q F0
+(Expands to the number of positional parameters in decimal.)144 679.2 Q
+F1(?)108 691.2 Q F0(Expands to the e)144 691.2 Q
(xit status of the most recently e)-.15 E -.15(xe)-.15 G(cuted fore).15
-E(ground pipeline.)-.15 E F1<ad>108 429.6 Q F0 .882
-(Expands to the current option \215ags as speci\214ed upon in)144 429.6
+E(ground pipeline.)-.15 E F1<ad>108 703.2 Q F0 .882
+(Expands to the current option \215ags as speci\214ed upon in)144 703.2
R -.2(vo)-.4 G .881(cation, by the).2 F F1(set)3.381 E F0 -.2(bu)3.381 G
.881(iltin command, or).2 F(those set by the shell itself \(such as the)
-144 441.6 Q F1<ad69>2.5 E F0(option\).)2.5 E F1($)108 453.6 Q F0 .214
-(Expands to the process ID of the shell.)144 453.6 R .214
-(In a \(\) subshell, it e)5.214 F .214
-(xpands to the process ID of the current)-.15 F
-(shell, not the subshell.)144 465.6 Q F1(!)108 477.6 Q F0 .499(Expands \
-to the process ID of the job most recently placed into the background, \
-whether e)144 477.6 R -.15(xe)-.15 G(cuted).15 E
-(as an asynchronous command or using the)144 489.6 Q F1(bg)2.5 E F0 -.2
-(bu)2.5 G(iltin \(see).2 E F3(JOB CONTR)2.5 E(OL)-.27 E F0(belo)2.25 E
-(w\).)-.25 E F1(0)108 501.6 Q F0 .886
-(Expands to the name of the shell or shell script.)144 501.6 R .886
+144 715.2 Q F1<ad69>2.5 E F0(option\).)2.5 E(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(10)185.115 E 0 Cg EP
+%%Page: 11 11
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF($)108 84 Q F0 .839
+(Expands to the process ID of the shell. In a subshell, it e)144 84 R
+.839(xpands to the process ID of the current)-.15 F
+(shell, not the subshell.)144 96 Q F1(!)108 108 Q F0 .499(Expands to th\
+e process ID of the job most recently placed into the background, wheth\
+er e)144 108 R -.15(xe)-.15 G(cuted).15 E
+(as an asynchronous command or using the)144 120 Q F1(bg)2.5 E F0 -.2
+(bu)2.5 G(iltin \(see).2 E/F2 9/Times-Bold@0 SF(JOB CONTR)2.5 E(OL)-.27
+E F0(belo)2.25 E(w\).)-.25 E F1(0)108 132 Q F0 .886
+(Expands to the name of the shell or shell script.)144 132 R .886
(This is set at shell initialization.)5.886 F(If)5.887 E F1(bash)3.387 E
-F0 .887(is in-)3.387 F -.2(vo)144 513.6 S -.1(ke).2 G 2.668(dw).1 G .168
+F0 .887(is in-)3.387 F -.2(vo)144 144 S -.1(ke).2 G 2.668(dw).1 G .168
(ith a \214le of commands,)-2.668 F F1($0)2.668 E F0 .167
(is set to the name of that \214le.)2.667 F(If)5.167 E F1(bash)2.667 E
F0 .167(is started with the)2.667 F F1<ad63>2.667 E F0(op-)2.667 E .895
-(tion, then)144 525.6 R F1($0)3.395 E F0 .895(is set to the \214rst ar)
+(tion, then)144 156 R F1($0)3.395 E F0 .895(is set to the \214rst ar)
3.395 F .895(gument after the string to be e)-.18 F -.15(xe)-.15 G .896
(cuted, if one is present.).15 F(Other)5.896 E(-)-.2 E
-(wise, it is set to the \214lename used to in)144 537.6 Q -.2(vo)-.4 G
--.1(ke).2 G F1(bash)2.6 E F0 2.5(,a)C 2.5(sg)-2.5 G -2.15 -.25(iv e)-2.5
-H 2.5(nb).25 G 2.5(ya)-2.5 G -.18(rg)-2.5 G(ument zero.).18 E F1
-(Shell V)87 554.4 Q(ariables)-.92 E F0(The follo)108 566.4 Q(wing v)-.25
-E(ariables are set by the shell:)-.25 E F1(_)108 583.2 Q F0 1.526
-(At shell startup, set to the pathname used to in)144 583.2 R -.2(vo)-.4
+(wise, it is set to the \214lename used to in)144 168 Q -.2(vo)-.4 G -.1
+(ke).2 G F1(bash)2.6 E F0 2.5(,a)C 2.5(sg)-2.5 G -2.15 -.25(iv e)-2.5 H
+2.5(nb).25 G 2.5(ya)-2.5 G -.18(rg)-2.5 G(ument zero.).18 E F1(Shell V)
+87 184.8 Q(ariables)-.92 E F0(The follo)108 196.8 Q(wing v)-.25 E
+(ariables are set by the shell:)-.25 E F1(_)108 213.6 Q F0 1.526
+(At shell startup, set to the pathname used to in)144 213.6 R -.2(vo)-.4
G 1.725 -.1(ke t).2 H 1.525(he shell or shell script being e).1 F -.15
-(xe)-.15 G 1.525(cuted as).15 F .173(passed in the en)144 595.2 R .173
+(xe)-.15 G 1.525(cuted as).15 F .173(passed in the en)144 225.6 R .173
(vironment or ar)-.4 F .173(gument list.)-.18 F(Subsequently)5.173 E
2.673(,e)-.65 G .173(xpands to the last ar)-2.823 F .174
-(gument to the pre-)-.18 F .337(vious simple command e)144 607.2 R -.15
+(gument to the pre-)-.18 F .337(vious simple command e)144 237.6 R -.15
(xe)-.15 G .337(cuted in the fore).15 F .336(ground, after e)-.15 F
2.836(xpansion. Also)-.15 F .336(set to the full pathname)2.836 F .365
-(used to in)144 619.2 R -.2(vo)-.4 G .565 -.1(ke e).2 H .365
+(used to in)144 249.6 R -.2(vo)-.4 G .565 -.1(ke e).2 H .365
(ach command e).1 F -.15(xe)-.15 G .366(cuted and placed in the en).15 F
.366(vironment e)-.4 F .366(xported to that command.)-.15 F(When checki\
ng mail, this parameter holds the name of the mail \214le currently bei\
-ng check)144 631.2 Q(ed.)-.1 E F1 -.3(BA)108 643.2 S(SH).3 E F0
-(Expands to the full \214lename used to in)144 643.2 Q -.2(vo)-.4 G .2
+ng check)144 261.6 Q(ed.)-.1 E F1 -.3(BA)108 273.6 S(SH).3 E F0
+(Expands to the full \214lename used to in)144 273.6 Q -.2(vo)-.4 G .2
-.1(ke t).2 H(his instance of).1 E F1(bash)2.5 E F0(.)A F1 -.3(BA)108
-655.2 S(SHOPTS).3 E F0 2.549(Ac)144 667.2 S .049
+285.6 S(SHOPTS).3 E F0 2.549(Ac)144 297.6 S .049
(olon-separated list of enabled shell options.)-2.549 F .049(Each w)
5.049 F .049(ord in the list is a v)-.1 F .049(alid ar)-.25 F .049
-(gument for the)-.18 F F1<ad73>2.548 E F0 .115(option to the)144 679.2 R
-F1(shopt)2.616 E F0 -.2(bu)2.616 G .116(iltin command \(see).2 F F3 .116
+(gument for the)-.18 F F1<ad73>2.548 E F0 .115(option to the)144 309.6 R
+F1(shopt)2.616 E F0 -.2(bu)2.616 G .116(iltin command \(see).2 F F2 .116
(SHELL B)2.616 F(UIL)-.09 E .116(TIN COMMANDS)-.828 F F0(belo)2.366 E
2.616(w\). The)-.25 F .116(options ap-)2.616 F 1.067(pearing in)144
-691.2 R F3 -.27(BA)3.567 G(SHOPTS).27 E F0 1.067(are those reported as)
-3.317 F F2(on)3.797 E F0(by)3.807 E F1(shopt)3.567 E F0 6.066(.I)C 3.566
-(ft)-6.066 G 1.066(his v)-3.566 F 1.066(ariable is in the en)-.25 F
-(vironment)-.4 E(when)144 703.2 Q F1(bash)3.141 E F0 .642(starts up, ea\
-ch shell option in the list will be enabled before reading an)3.141 F
-3.142(ys)-.15 G .642(tartup \214les.)-3.142 F(This v)144 715.2 Q
-(ariable is read-only)-.25 E(.)-.65 E(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(10)190.395 E 0 Cg EP
-%%Page: 11 11
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF -.3(BA)108 84 S(SHPID).3 E F0 .188
-(Expands to the process ID of the current)144 96 R F1(bash)2.688 E F0
-2.687(process. This)2.687 F(dif)2.687 E .187(fers from)-.25 F F1($$)
-2.687 E F0 .187(under certain circum-)2.687 F .548
-(stances, such as subshells that do not require)144 108 R F1(bash)3.048
-E F0 .548(to be re-initialized.)3.048 F .549(Assignments to)5.549 F/F2 9
-/Times-Bold@0 SF -.27(BA)3.049 G(SHPID).27 E F0(ha)144 120 Q .3 -.15
-(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G 2.5(ect. If).25 F F1 -.3(BA)2.5
-G(SHPID).3 E F0(is unset, it loses its special properties, e)2.5 E -.15
-(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G
-(ubsequently reset.)-2.5 E F1 -.3(BA)108 132 S(SH_ALIASES).3 E F0 1.195
-(An associati)144 144 R 1.495 -.15(ve a)-.25 H 1.195(rray v).15 F 1.195
-(ariable whose members correspond to the internal list of aliases as ma\
-in-)-.25 F .16(tained by the)144 156 R F1(alias)2.66 E F0 -.2(bu)2.66 G
-2.66(iltin. Elements).2 F .16
+321.6 R F2 -.27(BA)3.567 G(SHOPTS).27 E F0 1.067(are those reported as)
+3.317 F/F3 10/Times-Italic@0 SF(on)3.797 E F0(by)3.807 E F1(shopt)3.567
+E F0 6.066(.I)C 3.566(ft)-6.066 G 1.066(his v)-3.566 F 1.066
+(ariable is in the en)-.25 F(vironment)-.4 E(when)144 333.6 Q F1(bash)
+3.141 E F0 .642(starts up, each shell option in the list will be enable\
+d before reading an)3.141 F 3.142(ys)-.15 G .642(tartup \214les.)-3.142
+F(This v)144 345.6 Q(ariable is read-only)-.25 E(.)-.65 E F1 -.3(BA)108
+357.6 S(SHPID).3 E F0 .188(Expands to the process ID of the current)144
+369.6 R F1(bash)2.688 E F0 2.687(process. This)2.687 F(dif)2.687 E .187
+(fers from)-.25 F F1($$)2.687 E F0 .187(under certain circum-)2.687 F
+.548(stances, such as subshells that do not require)144 381.6 R F1(bash)
+3.048 E F0 .548(to be re-initialized.)3.048 F .549(Assignments to)5.549
+F F2 -.27(BA)3.049 G(SHPID).27 E F0(ha)144 393.6 Q .3 -.15(ve n)-.2 H
+2.5(oe).15 G -.25(ff)-2.5 G 2.5(ect. If).25 F F1 -.3(BA)2.5 G(SHPID).3 E
+F0(is unset, it loses its special properties, e)2.5 E -.15(ve)-.25 G 2.5
+(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)
+-2.5 E F1 -.3(BA)108 405.6 S(SH_ALIASES).3 E F0 1.195(An associati)144
+417.6 R 1.495 -.15(ve a)-.25 H 1.195(rray v).15 F 1.195(ariable whose m\
+embers correspond to the internal list of aliases as main-)-.25 F .16
+(tained by the)144 429.6 R F1(alias)2.66 E F0 -.2(bu)2.66 G 2.66
+(iltin. Elements).2 F .16
(added to this array appear in the alias list; ho)2.66 F(we)-.25 E -.15
(ve)-.25 G .96 -.4(r, u).15 H(nsetting).4 E 4.503
-(array elements currently does not cause aliases to be remo)144 168 R
+(array elements currently does not cause aliases to be remo)144 441.6 R
-.15(ve)-.15 G 7.003(df).15 G 4.503(rom the alias list.)-7.003 F(If)
-9.502 E F1 -.3(BA)144 180 S(SH_ALIASES).3 E F0
+9.502 E F1 -.3(BA)144 453.6 S(SH_ALIASES).3 E F0
(is unset, it loses its special properties, e)2.5 E -.15(ve)-.25 G 2.5
(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)
--2.5 E F1 -.3(BA)108 192 S(SH_ARGC).3 E F0 .934(An array v)144 204 R
+-2.5 E F1 -.3(BA)108 465.6 S(SH_ARGC).3 E F0 .934(An array v)144 477.6 R
.934(ariable whose v)-.25 F .934
(alues are the number of parameters in each frame of the current)-.25 F
-F1(bash)3.435 E F0 -.15(exe)144 216 S .535(cution call stack.).15 F .535
-(The number of parameters to the current subroutine \(shell function or\
- script)5.535 F -.15(exe)144 228 S .141(cuted with).15 F F1(.)2.641 E F0
-(or)2.641 E F1(sour)2.641 E(ce)-.18 E F0 2.641(\)i)C 2.641(sa)-2.641 G
-2.641(tt)-2.641 G .142(he top of the stack.)-2.641 F .142
+F1(bash)3.435 E F0 -.15(exe)144 489.6 S .535(cution call stack.).15 F
+.535(The number of parameters to the current subroutine \(shell functio\
+n or script)5.535 F -.15(exe)144 501.6 S .141(cuted with).15 F F1(.)
+2.641 E F0(or)2.641 E F1(sour)2.641 E(ce)-.18 E F0 2.641(\)i)C 2.641(sa)
+-2.641 G 2.641(tt)-2.641 G .142(he top of the stack.)-2.641 F .142
(When a subroutine is e)5.142 F -.15(xe)-.15 G .142
(cuted, the number of).15 F 1.265(parameters passed is pushed onto)144
-240 R F2 -.27(BA)3.765 G(SH_ARGC).27 E/F3 9/Times-Roman@0 SF(.)A F0
+513.6 R F2 -.27(BA)3.765 G(SH_ARGC).27 E/F4 9/Times-Roman@0 SF(.)A F0
1.265(The shell sets)5.765 F F2 -.27(BA)3.765 G(SH_ARGC).27 E F0 1.265
-(only when in e)3.515 F(x-)-.15 E .947(tended deb)144 252 R .947
+(only when in e)3.515 F(x-)-.15 E .947(tended deb)144 525.6 R .947
(ugging mode \(see the description of the)-.2 F F1(extdeb)3.447 E(ug)-.2
E F0 .947(option to the)3.447 F F1(shopt)3.447 E F0 -.2(bu)3.448 G .948
-(iltin belo).2 F(w\).)-.25 E(Setting)144 264 Q F1(extdeb)3.363 E(ug)-.2
-E F0 .863(after the shell has started to e)3.363 F -.15(xe)-.15 G .862
-(cute a script, or referencing this v).15 F .862(ariable when)-.25 F F1
-(extdeb)144 276 Q(ug)-.2 E F0(is not set, may result in inconsistent v)
-2.5 E(alues.)-.25 E F1 -.3(BA)108 288 S(SH_ARGV).3 E F0 .206(An array v)
-144 300 R .206(ariable containing all of the parameters in the current)
--.25 F F1(bash)2.706 E F0 -.15(exe)2.706 G .207(cution call stack.).15 F
-.207(The \214-)5.207 F .567(nal parameter of the last subroutine call i\
-s at the top of the stack; the \214rst parameter of the initial)144 312
-R 1.424(call is at the bottom.)144 324 R 1.424(When a subroutine is e)
+(iltin belo).2 F(w\).)-.25 E(Setting)144 537.6 Q F1(extdeb)3.363 E(ug)
+-.2 E F0 .863(after the shell has started to e)3.363 F -.15(xe)-.15 G
+.862(cute a script, or referencing this v).15 F .862(ariable when)-.25 F
+F1(extdeb)144 549.6 Q(ug)-.2 E F0
+(is not set, may result in inconsistent v)2.5 E(alues.)-.25 E F1 -.3(BA)
+108 561.6 S(SH_ARGV).3 E F0 .206(An array v)144 573.6 R .206
+(ariable containing all of the parameters in the current)-.25 F F1(bash)
+2.706 E F0 -.15(exe)2.706 G .207(cution call stack.).15 F .207
+(The \214-)5.207 F .567(nal parameter of the last subroutine call is at\
+ the top of the stack; the \214rst parameter of the initial)144 585.6 R
+1.424(call is at the bottom.)144 597.6 R 1.424(When a subroutine is e)
6.424 F -.15(xe)-.15 G 1.424
-(cuted, the parameters supplied are pushed onto).15 F F2 -.27(BA)144 336
-S(SH_ARGV).27 E F3(.)A F0 .854(The shell sets)5.354 F F2 -.27(BA)3.354 G
-(SH_ARGV).27 E F0 .853(only when in e)3.104 F .853(xtended deb)-.15 F
-.853(ugging mode \(see the de-)-.2 F .475(scription of the)144 348 R F1
-(extdeb)2.975 E(ug)-.2 E F0 .475(option to the)2.975 F F1(shopt)2.975 E
-F0 -.2(bu)2.975 G .475(iltin belo).2 F 2.975(w\). Setting)-.25 F F1
-(extdeb)2.976 E(ug)-.2 E F0 .476(after the shell has)2.976 F .45
-(started to e)144 360 R -.15(xe)-.15 G .45
-(cute a script, or referencing this v).15 F .45(ariable when)-.25 F F1
-(extdeb)2.95 E(ug)-.2 E F0 .45(is not set, may result in in-)2.95 F
-(consistent v)144 372 Q(alues.)-.25 E F1 -.3(BA)108 384 S(SH_ARGV0).3 E
-F0 .25(When referenced, this v)144 396 R .25(ariable e)-.25 F .251
-(xpands to the name of the shell or shell script \(identical to)-.15 F
-F1($0)2.751 E F0 2.751(;s)C(ee)-2.751 E .041
-(the description of special parameter 0 abo)144 408 R -.15(ve)-.15 G
+(cuted, the parameters supplied are pushed onto).15 F F2 -.27(BA)144
+609.6 S(SH_ARGV).27 E F4(.)A F0 .854(The shell sets)5.354 F F2 -.27(BA)
+3.354 G(SH_ARGV).27 E F0 .853(only when in e)3.104 F .853(xtended deb)
+-.15 F .853(ugging mode \(see the de-)-.2 F .475(scription of the)144
+621.6 R F1(extdeb)2.975 E(ug)-.2 E F0 .475(option to the)2.975 F F1
+(shopt)2.975 E F0 -.2(bu)2.975 G .475(iltin belo).2 F 2.975
+(w\). Setting)-.25 F F1(extdeb)2.976 E(ug)-.2 E F0 .476
+(after the shell has)2.976 F .45(started to e)144 633.6 R -.15(xe)-.15 G
+.45(cute a script, or referencing this v).15 F .45(ariable when)-.25 F
+F1(extdeb)2.95 E(ug)-.2 E F0 .45(is not set, may result in in-)2.95 F
+(consistent v)144 645.6 Q(alues.)-.25 E F1 -.3(BA)108 657.6 S(SH_ARGV0)
+.3 E F0 .25(When referenced, this v)144 669.6 R .25(ariable e)-.25 F
+.251(xpands to the name of the shell or shell script \(identical to)-.15
+F F1($0)2.751 E F0 2.751(;s)C(ee)-2.751 E .041
+(the description of special parameter 0 abo)144 681.6 R -.15(ve)-.15 G
2.541(\). Assignment).15 F(to)2.541 E F1 -.3(BA)2.541 G(SH_ARGV0).3 E F0
.04(causes the v)2.541 F .04(alue as-)-.25 F .216
-(signed to also be assigned to)144 420 R F1($0)2.716 E F0 5.216(.I)C(f)
--5.216 E F1 -.3(BA)2.716 G(SH_ARGV0).3 E F0 .216
+(signed to also be assigned to)144 693.6 R F1($0)2.716 E F0 5.216(.I)C
+(f)-5.216 E F1 -.3(BA)2.716 G(SH_ARGV0).3 E F0 .216
(is unset, it loses its special properties, e)2.716 F -.15(ve)-.25 G
-2.716(ni).15 G(f)-2.716 E(it is subsequently reset.)144 432 Q F1 -.3(BA)
-108 444 S(SH_CMDS).3 E F0 .668(An associati)144 456 R .968 -.15(ve a)
--.25 H .668(rray v).15 F .668(ariable whose members correspond to the i\
-nternal hash table of commands)-.25 F .195(as maintained by the)144 468
-R F1(hash)2.695 E F0 -.2(bu)2.695 G 2.695(iltin. Elements).2 F .196
-(added to this array appear in the hash table; ho)2.696 F(we)-.25 E -.15
-(ve)-.25 G -.4(r,).15 G .852(unsetting array elements currently does no\
-t cause command names to be remo)144 480 R -.15(ve)-.15 G 3.352(df).15 G
-.852(rom the hash)-3.352 F 2.5(table. If)144 492 R F1 -.3(BA)2.5 G
+2.716(ni).15 G(f)-2.716 E(it is subsequently reset.)144 705.6 Q
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(11)185.115 E 0 Cg EP
+%%Page: 12 12
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF -.3(BA)108 84 S(SH_CMDS).3 E F0 .668(An associati)144 96 R .968 -.15
+(ve a)-.25 H .668(rray v).15 F .668(ariable whose members correspond to\
+ the internal hash table of commands)-.25 F .195(as maintained by the)
+144 108 R F1(hash)2.695 E F0 -.2(bu)2.695 G 2.695(iltin. Elements).2 F
+.196(added to this array appear in the hash table; ho)2.696 F(we)-.25 E
+-.15(ve)-.25 G -.4(r,).15 G .852(unsetting array elements currently doe\
+s not cause command names to be remo)144 120 R -.15(ve)-.15 G 3.352(df)
+.15 G .852(rom the hash)-3.352 F 2.5(table. If)144 132 R F1 -.3(BA)2.5 G
(SH_CMDS).3 E F0(is unset, it loses its special properties, e)2.5 E -.15
(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G
-(ubsequently reset.)-2.5 E F1 -.3(BA)108 504 S(SH_COMMAND).3 E F0 1.242
-(The command currently being e)144 516 R -.15(xe)-.15 G 1.243
+(ubsequently reset.)-2.5 E F1 -.3(BA)108 144 S(SH_COMMAND).3 E F0 1.242
+(The command currently being e)144 156 R -.15(xe)-.15 G 1.243
(cuted or about to be e).15 F -.15(xe)-.15 G 1.243
(cuted, unless the shell is e).15 F -.15(xe)-.15 G 1.243(cuting a).15 F
.263(command as the result of a trap, in which case it is the command e)
-144 528 R -.15(xe)-.15 G .262(cuting at the time of the trap.).15 F(If)
-144 540 Q F1 -.3(BA)2.5 G(SH_COMMAND).3 E F0
+144 168 R -.15(xe)-.15 G .262(cuting at the time of the trap.).15 F(If)
+144 180 Q F1 -.3(BA)2.5 G(SH_COMMAND).3 E F0
(is unset, it loses its special properties, e)2.5 E -.15(ve)-.25 G 2.5
(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)
--2.5 E F1 -.3(BA)108 552 S(SH_EXECUTION_STRING).3 E F0(The command ar)
-144 564 Q(gument to the)-.18 E F1<ad63>2.5 E F0(in)2.5 E -.2(vo)-.4 G
-(cation option.).2 E F1 -.3(BA)108 576 S(SH_LINENO).3 E F0 .692
-(An array v)144 588 R .692(ariable whose members are the line numbers i\
-n source \214les where each corresponding)-.25 F .97(member of)144 600 R
-F2(FUNCN)3.47 E(AME)-.18 E F0 -.1(wa)3.22 G 3.47(si).1 G -1.9 -.4(nv o)
--3.47 H -.1(ke).4 G(d.).1 E F1(${B)5.969 E(ASH_LINENO[)-.3 E/F4 10
-/Times-Italic@0 SF($i)A F1(]})A F0 .969
-(is the line number in the source)3.469 F 14.671(\214le \()144 612 R F1
-(${B)A(ASH_SOURCE[)-.3 E F4($i+1)A F1(]})A F0 17.171(\)w)C(here)-17.171
-E F1(${FUNCN)17.172 E(AME[)-.2 E F4($i)A F1(]})A F0 -.1(wa)17.172 G
-17.172(sc).1 G 14.672(alled \(or)-17.172 F F1(${B)144 624 Q(ASH_LINENO[)
--.3 E F4($i-1)A F1(]})A F0 .115
+-2.5 E F1 -.3(BA)108 192 S(SH_EXECUTION_STRING).3 E F0(The command ar)
+144 204 Q(gument to the)-.18 E F1<ad63>2.5 E F0(in)2.5 E -.2(vo)-.4 G
+(cation option.).2 E F1 -.3(BA)108 216 S(SH_LINENO).3 E F0 .692
+(An array v)144 228 R .692(ariable whose members are the line numbers i\
+n source \214les where each corresponding)-.25 F .97(member of)144 240 R
+/F2 9/Times-Bold@0 SF(FUNCN)3.47 E(AME)-.18 E F0 -.1(wa)3.22 G 3.47(si)
+.1 G -1.9 -.4(nv o)-3.47 H -.1(ke).4 G(d.).1 E F1(${B)5.969 E
+(ASH_LINENO[)-.3 E/F3 10/Times-Italic@0 SF($i)A F1(]})A F0 .969
+(is the line number in the source)3.469 F 14.671(\214le \()144 252 R F1
+(${B)A(ASH_SOURCE[)-.3 E F3($i+1)A F1(]})A F0 17.171(\)w)C(here)-17.171
+E F1(${FUNCN)17.172 E(AME[)-.2 E F3($i)A F1(]})A F0 -.1(wa)17.172 G
+17.172(sc).1 G 14.672(alled \(or)-17.172 F F1(${B)144 264 Q(ASH_LINENO[)
+-.3 E F3($i-1)A F1(]})A F0 .115
(if referenced within another shell function\).)2.615 F(Use)5.115 E F2
(LINENO)2.615 E F0 .115(to obtain the)2.365 F(current line number)144
-636 Q(.)-.55 E F1 -.3(BA)108 648 S(SH_LO).3 E(AD)-.4 E(ABLES_P)-.35 E
--.95(AT)-.74 G(H).95 E F0 4.07(Ac)144 660 S 1.57(olon-separated list of\
+276 Q(.)-.55 E F1 -.3(BA)108 288 S(SH_LO).3 E(AD)-.4 E(ABLES_P)-.35 E
+-.95(AT)-.74 G(H).95 E F0 4.07(Ac)144 300 S 1.57(olon-separated list of\
directories in which the shell looks for dynamically loadable b)-4.07 F
-(uiltins)-.2 E(speci\214ed by the)144 672 Q F1(enable)2.5 E F0(command.)
-2.5 E F1 -.3(BA)108 684 S(SH_REMA).3 E(TCH)-.95 E F0 .006(An array v)144
-696 R .006(ariable whose members are assigned by the)-.25 F F1(=~)2.506
+(uiltins)-.2 E(speci\214ed by the)144 312 Q F1(enable)2.5 E F0(command.)
+2.5 E F1 -.3(BA)108 324 S(SH_REMA).3 E(TCH)-.95 E F0 .006(An array v)144
+336 R .006(ariable whose members are assigned by the)-.25 F F1(=~)2.506
E F0 .005(binary operator to the)2.506 F F1([[)2.505 E F0 .005
-(conditional com-)2.505 F 2.506(mand. The)144 708 R .007
+(conditional com-)2.505 F 2.506(mand. The)144 348 R .007
(element with inde)2.506 F 2.507(x0i)-.15 G 2.507(st)-2.507 G .007
(he portion of the string matching the entire re)-2.507 F .007(gular e)
--.15 F(xpression.)-.15 E 4.331(The element with inde)144 720 R(x)-.15 E
-F4(n)6.831 E F0 4.331(is the portion of the string matching the)6.831 F
-F4(n)6.83 E F0 4.33(th parenthesized)B(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(11)190.395 E 0 Cg EP
-%%Page: 12 12
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(sube)144 84 Q
-(xpression.)-.15 E/F1 10/Times-Bold@0 SF -.3(BA)108 96 S(SH_SOURCE).3 E
-F0 .125(An array v)144 108 R .125(ariable whose members are the source \
-\214lenames where the corresponding shell function)-.25 F .781
-(names in the)144 120 R/F2 9/Times-Bold@0 SF(FUNCN)3.28 E(AME)-.18 E F0
-.78(array v)3.03 F .78(ariable are de\214ned.)-.25 F .78
-(The shell function)5.78 F F1(${FUNCN)3.28 E(AME[)-.2 E/F3 10
-/Times-Italic@0 SF($i)A F1(]})A F0(is)3.28 E(de\214ned in the \214le)144
-132 Q F1(${B)2.5 E(ASH_SOURCE[)-.3 E F3($i)A F1(]})A F0(and called from)
-2.5 E F1(${B)2.5 E(ASH_SOURCE[)-.3 E F3($i+1)A F1(]})A F0(.)A F1 -.3(BA)
-108 144 S(SH_SUBSHELL).3 E F0 .296
-(Incremented by one within each subshell or subshell en)144 156 R .296
-(vironment when the shell be)-.4 F .297(gins e)-.15 F -.15(xe)-.15 G
-(cuting).15 E 1.277(in that en)144 168 R 3.777(vironment. The)-.4 F
+-.15 F(xpression.)-.15 E .998(The element with inde)144 360 R(x)-.15 E
+F3(n)3.498 E F0 .997(is the portion of the string matching the)3.498 F
+F3(n)3.497 E F0 .997(th parenthesized sube)B(xpres-)-.15 E(sion.)144 372
+Q F1 -.3(BA)108 384 S(SH_SOURCE).3 E F0 .125(An array v)144 396 R .125(\
+ariable whose members are the source \214lenames where the correspondin\
+g shell function)-.25 F .781(names in the)144 408 R F2(FUNCN)3.28 E(AME)
+-.18 E F0 .78(array v)3.03 F .78(ariable are de\214ned.)-.25 F .78
+(The shell function)5.78 F F1(${FUNCN)3.28 E(AME[)-.2 E F3($i)A F1(]})A
+F0(is)3.28 E(de\214ned in the \214le)144 420 Q F1(${B)2.5 E(ASH_SOURCE[)
+-.3 E F3($i)A F1(]})A F0(and called from)2.5 E F1(${B)2.5 E(ASH_SOURCE[)
+-.3 E F3($i+1)A F1(]})A F0(.)A F1 -.3(BA)108 432 S(SH_SUBSHELL).3 E F0
+.296(Incremented by one within each subshell or subshell en)144 444 R
+.296(vironment when the shell be)-.4 F .297(gins e)-.15 F -.15(xe)-.15 G
+(cuting).15 E 1.277(in that en)144 456 R 3.777(vironment. The)-.4 F
1.277(initial v)3.777 F 1.277(alue is 0.)-.25 F(If)6.277 E F1 -.3(BA)
3.777 G(SH_SUBSHELL).3 E F0 1.276(is unset, it loses its special)3.777 F
-(properties, e)144 180 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5
-(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1 -.3(BA)108 192 S
-(SH_VERSINFO).3 E F0 2.644(Ar)144 204 S .144(eadonly array v)-2.644 F
+(properties, e)144 468 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5
+(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1 -.3(BA)108 480 S
+(SH_VERSINFO).3 E F0 2.644(Ar)144 492 S .144(eadonly array v)-2.644 F
.144(ariable whose members hold v)-.25 F .144
(ersion information for this instance of)-.15 F F1(bash)2.645 E F0 5.145
-(.T)C(he)-5.145 E -.25(va)144 216 S
+(.T)C(he)-5.145 E -.25(va)144 504 S
(lues assigned to the array members are as follo).25 E(ws:)-.25 E F1 -.3
-(BA)144 234 S(SH_VERSINFO[).3 E F0(0)A F1(])A F0(The major v)264 234 Q
+(BA)144 522 S(SH_VERSINFO[).3 E F0(0)A F1(])A F0(The major v)264 522 Q
(ersion number \(the)-.15 E F3 -.37(re)2.5 G(lease).37 E F0(\).)A F1 -.3
-(BA)144 246 S(SH_VERSINFO[).3 E F0(1)A F1(])A F0(The minor v)264 246 Q
+(BA)144 534 S(SH_VERSINFO[).3 E F0(1)A F1(])A F0(The minor v)264 534 Q
(ersion number \(the)-.15 E F3(ver)2.5 E(sion)-.1 E F0(\).)A F1 -.3(BA)
-144 258 S(SH_VERSINFO[).3 E F0(2)A F1(])A F0(The patch le)264 258 Q -.15
-(ve)-.25 G(l.).15 E F1 -.3(BA)144 270 S(SH_VERSINFO[).3 E F0(3)A F1(])A
-F0(The b)264 270 Q(uild v)-.2 E(ersion.)-.15 E F1 -.3(BA)144 282 S
-(SH_VERSINFO[).3 E F0(4)A F1(])A F0(The release status \(e.g.,)264 282 Q
-F3(beta1)2.5 E F0(\).)A F1 -.3(BA)144 294 S(SH_VERSINFO[).3 E F0(5)A F1
-(])A F0(The v)264 294 Q(alue of)-.25 E F2(MA)2.5 E(CHTYPE)-.495 E/F4 9
-/Times-Roman@0 SF(.)A F1 -.3(BA)108 306 S(SH_VERSION).3 E F0
-(Expands to a string describing the v)144 318 Q
+144 546 S(SH_VERSINFO[).3 E F0(2)A F1(])A F0(The patch le)264 546 Q -.15
+(ve)-.25 G(l.).15 E F1 -.3(BA)144 558 S(SH_VERSINFO[).3 E F0(3)A F1(])A
+F0(The b)264 558 Q(uild v)-.2 E(ersion.)-.15 E F1 -.3(BA)144 570 S
+(SH_VERSINFO[).3 E F0(4)A F1(])A F0(The release status \(e.g.,)264 570 Q
+F3(beta1)2.5 E F0(\).)A F1 -.3(BA)144 582 S(SH_VERSINFO[).3 E F0(5)A F1
+(])A F0(The v)264 582 Q(alue of)-.25 E F2(MA)2.5 E(CHTYPE)-.495 E/F4 9
+/Times-Roman@0 SF(.)A F1 -.3(BA)108 594 S(SH_VERSION).3 E F0
+(Expands to a string describing the v)144 606 Q
(ersion of this instance of)-.15 E F1(bash)2.5 E F0(.)A F1(COMP_CW)108
-330 Q(ORD)-.1 E F0 .397(An inde)144 342 R 2.897(xi)-.15 G(nto)-2.897 E
+618 Q(ORD)-.1 E F0 .397(An inde)144 630 R 2.897(xi)-.15 G(nto)-2.897 E
F1(${COMP_W)2.896 E(ORDS})-.1 E F0 .396(of the w)2.896 F .396
(ord containing the current cursor position.)-.1 F .396(This v)5.396 F
-(ari-)-.25 E 1.18(able is a)144 354 R -.25(va)-.2 G 1.181
+(ari-)-.25 E 1.18(able is a)144 642 R -.25(va)-.2 G 1.181
(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 3.681
(db).1 G 3.681(yt)-3.681 G 1.181(he programmable completion f)-3.681 F
-1.181(acilities \(see)-.1 F F1(Pr)144 366 Q(ogrammable Completion)-.18 E
-F0(belo)2.5 E(w\).)-.25 E F1(COMP_KEY)108 378 Q F0(The k)144 390 Q .3
+1.181(acilities \(see)-.1 F F1(Pr)144 654 Q(ogrammable Completion)-.18 E
+F0(belo)2.5 E(w\).)-.25 E F1(COMP_KEY)108 666 Q F0(The k)144 678 Q .3
-.15(ey \()-.1 H(or \214nal k).15 E .3 -.15(ey o)-.1 H 2.5(fak).15 G .3
-.15(ey s)-2.6 H(equence\) used to in).15 E -.2(vo)-.4 G .2 -.1(ke t).2
-H(he current completion function.).1 E F1(COMP_LINE)108 402 Q F0 1.208
-(The current command line.)144 414 R 1.208(This v)6.208 F 1.208
+H(he current completion function.).1 E F1(COMP_LINE)108 690 Q F0 1.208
+(The current command line.)144 702 R 1.208(This v)6.208 F 1.208
(ariable is a)-.25 F -.25(va)-.2 G 1.208
(ilable only in shell functions and e).25 F 1.207(xternal com-)-.15 F
-1.037(mands in)144 426 R -.2(vo)-.4 G -.1(ke).2 G 3.537(db).1 G 3.537
+1.037(mands in)144 714 R -.2(vo)-.4 G -.1(ke).2 G 3.537(db).1 G 3.537
(yt)-3.537 G 1.037(he programmable completion f)-3.537 F 1.037
(acilities \(see)-.1 F F1(Pr)3.537 E 1.037(ogrammable Completion)-.18 F
-F0(be-)3.537 E(lo)144 438 Q(w\).)-.25 E F1(COMP_POINT)108 450 Q F0 .667
-(The inde)144 462 R 3.167(xo)-.15 G 3.167(ft)-3.167 G .666
-(he current cursor position relati)-3.167 F .966 -.15(ve t)-.25 H 3.166
-(ot).15 G .666(he be)-3.166 F .666(ginning of the current command.)-.15
-F .666(If the)5.666 F .534
+F0(be-)3.537 E(lo)144 726 Q(w\).)-.25 E(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(12)185.115 E 0 Cg EP
+%%Page: 13 13
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(COMP_POINT)108 84 Q F0 .667(The inde)144 96 R 3.167(xo)-.15 G 3.167
+(ft)-3.167 G .666(he current cursor position relati)-3.167 F .966 -.15
+(ve t)-.25 H 3.166(ot).15 G .666(he be)-3.166 F .666
+(ginning of the current command.)-.15 F .666(If the)5.666 F .534
(current cursor position is at the end of the current command, the v)144
-474 R .535(alue of this v)-.25 F .535(ariable is equal to)-.25 F F1
-(${#COMP_LINE})144 486 Q F0 5.705(.T)C .705(his v)-5.705 F .704
+108 R .535(alue of this v)-.25 F .535(ariable is equal to)-.25 F F1
+(${#COMP_LINE})144 120 Q F0 5.705(.T)C .705(his v)-5.705 F .704
(ariable is a)-.25 F -.25(va)-.2 G .704
(ilable only in shell functions and e).25 F .704(xternal commands in-)
--.15 F -.2(vo)144 498 S -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
+-.15 F -.2(vo)144 132 S -.1(ke).2 G 2.5(db).1 G 2.5(yt)-2.5 G
(he programmable completion f)-2.5 E(acilities \(see)-.1 E F1(Pr)2.5 E
(ogrammable Completion)-.18 E F0(belo)2.5 E(w\).)-.25 E F1(COMP_TYPE)108
-510 Q F0 .041(Set to an inte)144 522 R .041(ger v)-.15 F .041(alue corr\
+144 Q F0 .041(Set to an inte)144 156 R .041(ger v)-.15 F .041(alue corr\
esponding to the type of completion attempted that caused a completion)
--.25 F .338(function to be called:)144 534 R F3 -.5(TA)2.837 G(B).5 E F0
-2.837(,f)C .337(or normal completion,)-2.837 F F3(?)2.837 E F0 2.837(,f)
-C .337(or listing completions after successi)-2.837 F .637 -.15(ve t)
--.25 H(abs,).15 E F3(!)144 546 Q F0 3.067(,f)C .567
-(or listing alternati)-3.067 F -.15(ve)-.25 G 3.067(so).15 G 3.067(np)
--3.067 G .567(artial w)-3.067 F .567(ord completion,)-.1 F F3(@)3.067 E
-F0 3.067(,t)C 3.067(ol)-3.067 G .567(ist completions if the w)-3.067 F
-.567(ord is not un-)-.1 F .418(modi\214ed, or)144 558 R F3(%)2.918 E F0
-2.918(,f)C .418(or menu completion.)-2.918 F .417(This v)5.417 F .417
-(ariable is a)-.25 F -.25(va)-.2 G .417
+-.25 F .338(function to be called:)144 168 R/F2 10/Times-Italic@0 SF -.5
+(TA)2.837 G(B).5 E F0 2.837(,f)C .337(or normal completion,)-2.837 F F2
+(?)2.837 E F0 2.837(,f)C .337(or listing completions after successi)
+-2.837 F .637 -.15(ve t)-.25 H(abs,).15 E F2(!)144 180 Q F0 3.067(,f)C
+.567(or listing alternati)-3.067 F -.15(ve)-.25 G 3.067(so).15 G 3.067
+(np)-3.067 G .567(artial w)-3.067 F .567(ord completion,)-.1 F F2(@)
+3.067 E F0 3.067(,t)C 3.067(ol)-3.067 G .567(ist completions if the w)
+-3.067 F .567(ord is not un-)-.1 F .418(modi\214ed, or)144 192 R F2(%)
+2.918 E F0 2.918(,f)C .418(or menu completion.)-2.918 F .417(This v)
+5.417 F .417(ariable is a)-.25 F -.25(va)-.2 G .417
(ilable only in shell functions and e).25 F(xter)-.15 E(-)-.2 E .704
-(nal commands in)144 570 R -.2(vo)-.4 G -.1(ke).2 G 3.204(db).1 G 3.204
+(nal commands in)144 204 R -.2(vo)-.4 G -.1(ke).2 G 3.204(db).1 G 3.204
(yt)-3.204 G .704(he programmable completion f)-3.204 F .704
(acilities \(see)-.1 F F1(Pr)3.204 E .704(ogrammable Comple-)-.18 F
-(tion)144 582 Q F0(belo)2.5 E(w\).)-.25 E F1(COMP_W)108 594 Q(ORDBREAKS)
--.1 E F0 1.336(The set of characters that the)144 606 R F1 -.18(re)3.836
+(tion)144 216 Q F0(belo)2.5 E(w\).)-.25 E F1(COMP_W)108 228 Q(ORDBREAKS)
+-.1 E F0 1.336(The set of characters that the)144 240 R F1 -.18(re)3.836
G(adline).18 E F0 1.336(library treats as w)3.836 F 1.335
(ord separators when performing w)-.1 F(ord)-.1 E 3.125(completion. If)
-144 618 R F2(COMP_W)3.125 E(ORDBREAKS)-.09 E F0 .626
+144 252 R/F3 9/Times-Bold@0 SF(COMP_W)3.125 E(ORDBREAKS)-.09 E F0 .626
(is unset, it loses its special properties, e)2.875 F -.15(ve)-.25 G
3.126(ni).15 G 3.126(fi)-3.126 G 3.126(ti)-3.126 G 3.126(ss)-3.126 G
-(ubse-)-3.126 E(quently reset.)144 630 Q F1(COMP_W)108 642 Q(ORDS)-.1 E
-F0 .654(An array v)144 654 R .654(ariable \(see)-.25 F F1(Arrays)3.154 E
+(ubse-)-3.126 E(quently reset.)144 264 Q F1(COMP_W)108 276 Q(ORDS)-.1 E
+F0 .654(An array v)144 288 R .654(ariable \(see)-.25 F F1(Arrays)3.154 E
F0(belo)3.154 E .654(w\) consisting of the indi)-.25 F .653(vidual w)
--.25 F .653(ords in the current command)-.1 F 3.191(line. The)144 666 R
+-.25 F .653(ords in the current command)-.1 F 3.191(line. The)144 300 R
.692(line is split into w)3.192 F .692(ords as)-.1 F F1 -.18(re)3.192 G
-(adline).18 E F0 -.1(wo)3.192 G .692(uld split it, using).1 F F2(COMP_W)
+(adline).18 E F0 -.1(wo)3.192 G .692(uld split it, using).1 F F3(COMP_W)
3.192 E(ORDBREAKS)-.09 E F0 .692(as de-)2.942 F 1.558(scribed abo)144
-678 R -.15(ve)-.15 G 6.558(.T).15 G 1.558(his v)-6.558 F 1.558
+312 R -.15(ve)-.15 G 6.558(.T).15 G 1.558(his v)-6.558 F 1.558
(ariable is a)-.25 F -.25(va)-.2 G 1.558
(ilable only in shell functions in).25 F -.2(vo)-.4 G -.1(ke).2 G 4.057
(db).1 G 4.057(yt)-4.057 G 1.557(he programmable)-4.057 F(completion f)
-144 690 Q(acilities \(see)-.1 E F1(Pr)2.5 E(ogrammable Completion)-.18 E
-F0(belo)2.5 E(w\).)-.25 E F1(COPR)108 702 Q(OC)-.3 E F0 .168(An array v)
-144 714 R .168(ariable \(see)-.25 F F1(Arrays)2.668 E F0(belo)2.669 E
+144 324 Q(acilities \(see)-.1 E F1(Pr)2.5 E(ogrammable Completion)-.18 E
+F0(belo)2.5 E(w\).)-.25 E F1(COPR)108 336 Q(OC)-.3 E F0 .168(An array v)
+144 348 R .168(ariable \(see)-.25 F F1(Arrays)2.668 E F0(belo)2.669 E
.169
(w\) created to hold the \214le descriptors for output from and input)
--.25 F(to an unnamed coprocess \(see)144 726 Q F1(Copr)2.5 E(ocesses)
--.18 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(12)190.395 E 0 Cg EP
-%%Page: 13 13
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(DIRST)108 84 Q -.55(AC)-.9 G(K).55 E F0 .79(An array v)144 96 R .79
-(ariable \(see)-.25 F F1(Arrays)3.29 E F0(belo)3.289 E .789
+-.25 F(to an unnamed coprocess \(see)144 360 Q F1(Copr)2.5 E(ocesses)
+-.18 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1(DIRST)108 372 Q -.55(AC)
+-.9 G(K).55 E F0 .79(An array v)144 384 R .79(ariable \(see)-.25 F F1
+(Arrays)3.29 E F0(belo)3.289 E .789
(w\) containing the current contents of the directory stack.)-.25 F(Di-)
-5.789 E .099(rectories appear in the stack in the order the)144 108 R
+5.789 E .099(rectories appear in the stack in the order the)144 396 R
2.599(ya)-.15 G .099(re displayed by the)-2.599 F F1(dirs)2.599 E F0 -.2
(bu)2.599 G 2.599(iltin. Assigning).2 F .099(to mem-)2.599 F .84
-(bers of this array v)144 120 R .84
+(bers of this array v)144 408 R .84
(ariable may be used to modify directories already in the stack, b)-.25
-F .84(ut the)-.2 F F1(pushd)3.34 E F0(and)144 132 Q F1(popd)3.45 E F0
+F .84(ut the)-.2 F F1(pushd)3.34 E F0(and)144 420 Q F1(popd)3.45 E F0
-.2(bu)3.45 G .951(iltins must be used to add and remo).2 F 1.251 -.15
(ve d)-.15 H 3.451(irectories. Assignment).15 F .951(to this v)3.451 F
-.951(ariable will)-.25 F .379(not change the current directory)144 144 R
-5.379(.I)-.65 G(f)-5.379 E/F2 9/Times-Bold@0 SF(DIRST)2.879 E -.495(AC)
--.81 G(K).495 E F0 .378(is unset, it loses its special properties, e)
-2.629 F -.15(ve)-.25 G 2.878(ni).15 G 2.878(fi)-2.878 G 2.878(ti)-2.878
-G(s)-2.878 E(subsequently reset.)144 156 Q F1(EPOCHREAL)108 168 Q(TIME)
--.92 E F0 .337(Each time this parameter is referenced, it e)144 180 R
-.338(xpands to the number of seconds since the Unix Epoch)-.15 F(\(see)
-144 192 Q/F3 10/Times-Italic@0 SF(time)2.917 E F0 .417
-(\(3\)\) as a \215oating point v)B .416
+.951(ariable will)-.25 F .379(not change the current directory)144 432 R
+5.379(.I)-.65 G(f)-5.379 E F3(DIRST)2.879 E -.495(AC)-.81 G(K).495 E F0
+.378(is unset, it loses its special properties, e)2.629 F -.15(ve)-.25 G
+2.878(ni).15 G 2.878(fi)-2.878 G 2.878(ti)-2.878 G(s)-2.878 E
+(subsequently reset.)144 444 Q F1(EPOCHREAL)108 456 Q(TIME)-.92 E F0
+.337(Each time this parameter is referenced, it e)144 468 R .338
+(xpands to the number of seconds since the Unix Epoch)-.15 F(\(see)144
+480 Q F2(time)2.917 E F0 .417(\(3\)\) as a \215oating point v)B .416
(alue with micro-second granularity)-.25 F 5.416(.A)-.65 G .416
-(ssignments to)-5.416 F F2(EPOCHRE-)2.916 E(AL)144 204 Q(TIME)-.828 E F0
-1.09(are ignored.)3.34 F(If)6.09 E F2(EPOCHREAL)3.59 E(TIME)-.828 E F0
+(ssignments to)-5.416 F F3(EPOCHRE-)2.916 E(AL)144 492 Q(TIME)-.828 E F0
+1.09(are ignored.)3.34 F(If)6.09 E F3(EPOCHREAL)3.59 E(TIME)-.828 E F0
1.09(is unset, it loses its special properties, e)3.34 F -.15(ve)-.25 G
3.591(ni).15 G 3.591(fi)-3.591 G 3.591(ti)-3.591 G(s)-3.591 E
-(subsequently reset.)144 216 Q F1(EPOCHSECONDS)108 228 Q F0 .338
-(Each time this parameter is referenced, it e)144 240 R .337
+(subsequently reset.)144 504 Q F1(EPOCHSECONDS)108 516 Q F0 .338
+(Each time this parameter is referenced, it e)144 528 R .337
(xpands to the number of seconds since the Unix Epoch)-.15 F(\(see)144
-252 Q F3(time)4.041 E F0 4.041(\(3\)\). Assignments)B(to)4.041 E F2
-(EPOCHSECONDS)4.041 E F0 1.542(are ignored.)3.792 F(If)6.542 E F2
+540 Q F2(time)4.041 E F0 4.041(\(3\)\). Assignments)B(to)4.041 E F3
+(EPOCHSECONDS)4.041 E F0 1.542(are ignored.)3.792 F(If)6.542 E F3
(EPOCHSECONDS)4.042 E F0 1.542(is unset, it)3.792 F
-(loses its special properties, e)144 264 Q -.15(ve)-.25 G 2.5(ni).15 G
+(loses its special properties, e)144 552 Q -.15(ve)-.25 G 2.5(ni).15 G
2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1
-(EUID)108 276 Q F0 1.104(Expands to the ef)144 276 R(fecti)-.25 E 1.403
+(EUID)108 564 Q F0 1.104(Expands to the ef)144 564 R(fecti)-.25 E 1.403
-.15(ve u)-.25 H 1.103(ser ID of the current user).15 F 3.603(,i)-.4 G
1.103(nitialized at shell startup.)-3.603 F 1.103(This v)6.103 F 1.103
-(ariable is)-.25 F(readonly)144 288 Q(.)-.65 E F1(FUNCN)108 300 Q(AME)
--.2 E F0 .478(An array v)144 312 R .479
+(ariable is)-.25 F(readonly)144 576 Q(.)-.65 E F1(FUNCN)108 588 Q(AME)
+-.2 E F0 .478(An array v)144 600 R .479
(ariable containing the names of all shell functions currently in the e)
-.25 F -.15(xe)-.15 G .479(cution call stack.).15 F .277
-(The element with inde)144 324 R 2.777(x0i)-.15 G 2.777(st)-2.777 G .276
+(The element with inde)144 612 R 2.777(x0i)-.15 G 2.777(st)-2.777 G .276
(he name of an)-2.777 F 2.776(yc)-.15 G(urrently-e)-2.776 E -.15(xe)-.15
G .276(cuting shell function.).15 F .276(The bottom-most)5.276 F .384
-(element \(the one with the highest inde)144 336 R .384(x\) is)-.15 F/F4
+(element \(the one with the highest inde)144 624 R .384(x\) is)-.15 F/F4
10/Courier@0 SF("main")2.884 E F0 5.384(.T)C .384(his v)-5.384 F .385
(ariable e)-.25 F .385(xists only when a shell func-)-.15 F .076
-(tion is e)144 348 R -.15(xe)-.15 G 2.576(cuting. Assignments).15 F(to)
-2.576 E F2(FUNCN)2.576 E(AME)-.18 E F0(ha)2.326 E .376 -.15(ve n)-.2 H
-2.576(oe).15 G -.25(ff)-2.576 G 2.576(ect. If).25 F F2(FUNCN)2.575 E
+(tion is e)144 636 R -.15(xe)-.15 G 2.576(cuting. Assignments).15 F(to)
+2.576 E F3(FUNCN)2.576 E(AME)-.18 E F0(ha)2.326 E .376 -.15(ve n)-.2 H
+2.576(oe).15 G -.25(ff)-2.576 G 2.576(ect. If).25 F F3(FUNCN)2.575 E
(AME)-.18 E F0 .075(is unset, it loses its)2.325 F
-(special properties, e)144 360 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5
+(special properties, e)144 648 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5
G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E .11(This v)144
-378 R .111(ariable can be used with)-.25 F F1 -.3(BA)2.611 G(SH_LINENO)
+666 R .111(ariable can be used with)-.25 F F1 -.3(BA)2.611 G(SH_LINENO)
.3 E F0(and)2.611 E F1 -.3(BA)2.611 G(SH_SOURCE).3 E F0 5.111(.E)C .111
-(ach element of)-5.111 F F1(FUNC-)2.611 E -.2(NA)144 390 S(ME).2 E F0
+(ach element of)-5.111 F F1(FUNC-)2.611 E -.2(NA)144 678 S(ME).2 E F0
1.404(has corresponding elements in)3.904 F F1 -.3(BA)3.904 G(SH_LINENO)
.3 E F0(and)3.904 E F1 -.3(BA)3.904 G(SH_SOURCE).3 E F0 1.404
-(to describe the)3.904 F .012(call stack.)144 402 R -.15(Fo)5.012 G
-2.512(ri).15 G(nstance,)-2.512 E F1(${FUNCN)2.512 E(AME[)-.2 E F3($i)A
+(to describe the)3.904 F .012(call stack.)144 690 R -.15(Fo)5.012 G
+2.512(ri).15 G(nstance,)-2.512 E F1(${FUNCN)2.512 E(AME[)-.2 E F2($i)A
F1(]})A F0 -.1(wa)2.512 G 2.512(sc).1 G .012(alled from the \214le)
--2.512 F F1(${B)2.512 E(ASH_SOURCE[)-.3 E F3($i+1)A F1(]})A F0 1.184
-(at line number)144 414 R F1(${B)3.684 E(ASH_LINENO[)-.3 E F3($i)A F1
+-2.512 F F1(${B)2.512 E(ASH_SOURCE[)-.3 E F2($i+1)A F1(]})A F0 1.184
+(at line number)144 702 R F1(${B)3.684 E(ASH_LINENO[)-.3 E F2($i)A F1
(]})A F0 6.184(.T)C(he)-6.184 E F1(caller)3.683 E F0 -.2(bu)3.683 G
1.183(iltin displays the current call stack using).2 F
-(this information.)144 426 Q F1(GR)108 438 Q(OUPS)-.3 E F0 1.228
-(An array v)144 450 R 1.228(ariable containing the list of groups of wh\
-ich the current user is a member)-.25 F 6.229(.A)-.55 G(ssign-)-6.229 E
-.572(ments to)144 462 R F2(GR)3.072 E(OUPS)-.27 E F0(ha)2.822 E .872
--.15(ve n)-.2 H 3.072(oe).15 G -.25(ff)-3.072 G 3.072(ect. If).25 F F2
-(GR)3.072 E(OUPS)-.27 E F0 .572
-(is unset, it loses its special properties, e)2.822 F -.15(ve)-.25 G
-3.072(ni).15 G 3.071(fi)-3.072 G 3.071(ti)-3.071 G(s)-3.071 E
-(subsequently reset.)144 474 Q F1(HISTCMD)108 486 Q F0 2.81
-(The history number)144 498 R 5.31(,o)-.4 G 5.31(ri)-5.31 G(nde)-5.31 E
+(this information.)144 714 Q(GNU Bash 5.2)72 768 Q(2022 September 19)
+135.955 E(13)185.115 E 0 Cg EP
+%%Page: 14 14
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(GR)108 84 Q(OUPS)-.3 E F0 1.228(An array v)144 96 R 1.228(ariable co\
+ntaining the list of groups of which the current user is a member)-.25 F
+6.229(.A)-.55 G(ssign-)-6.229 E .572(ments to)144 108 R/F2 9
+/Times-Bold@0 SF(GR)3.072 E(OUPS)-.27 E F0(ha)2.822 E .872 -.15(ve n)-.2
+H 3.072(oe).15 G -.25(ff)-3.072 G 3.072(ect. If).25 F F2(GR)3.072 E
+(OUPS)-.27 E F0 .572(is unset, it loses its special properties, e)2.822
+F -.15(ve)-.25 G 3.072(ni).15 G 3.071(fi)-3.072 G 3.071(ti)-3.071 G(s)
+-3.071 E(subsequently reset.)144 120 Q F1(HISTCMD)108 132 Q F0 2.81
+(The history number)144 144 R 5.31(,o)-.4 G 5.31(ri)-5.31 G(nde)-5.31 E
5.311(xi)-.15 G 5.311(nt)-5.311 G 2.811
(he history list, of the current command.)-5.311 F 2.811(Assignments to)
-7.811 F F2(HISTCMD)144 510 Q F0 1.135(are ignored.)3.385 F(If)6.135 E F2
+7.811 F F2(HISTCMD)144 156 Q F0 1.135(are ignored.)3.385 F(If)6.135 E F2
(HISTCMD)3.635 E F0 1.135(is unset, it loses its special properties, e)
3.385 F -.15(ve)-.25 G 3.634(ni).15 G 3.634(fi)-3.634 G 3.634(ti)-3.634
-G 3.634(ss)-3.634 G(ubse-)-3.634 E(quently reset.)144 522 Q F1(HOSTN)108
-534 Q(AME)-.2 E F0(Automatically set to the name of the current host.)
-144 546 Q F1(HOSTTYPE)108 558 Q F0 .222(Automatically set to a string t\
-hat uniquely describes the type of machine on which)144 570 R F1(bash)
+G 3.634(ss)-3.634 G(ubse-)-3.634 E(quently reset.)144 168 Q F1(HOSTN)108
+180 Q(AME)-.2 E F0(Automatically set to the name of the current host.)
+144 192 Q F1(HOSTTYPE)108 204 Q F0 .222(Automatically set to a string t\
+hat uniquely describes the type of machine on which)144 216 R F1(bash)
2.723 E F0 .223(is e)2.723 F -.15(xe)-.15 G(cut-).15 E 2.5(ing. The)144
-582 R(def)2.5 E(ault is system-dependent.)-.1 E F1(LINENO)108 594 Q F0
+228 R(def)2.5 E(ault is system-dependent.)-.1 E F1(LINENO)108 240 Q F0
1.408(Each time this parameter is referenced, the shell substitutes a d\
-ecimal number representing the)144 606 R .078(current sequential line n\
-umber \(starting with 1\) within a script or function.)144 618 R .079
-(When not in a script or)5.078 F .307(function, the v)144 630 R .307
+ecimal number representing the)144 252 R .078(current sequential line n\
+umber \(starting with 1\) within a script or function.)144 264 R .079
+(When not in a script or)5.078 F .307(function, the v)144 276 R .307
(alue substituted is not guaranteed to be meaningful.)-.25 F(If)5.306 E
F2(LINENO)2.806 E F0 .306(is unset, it loses its)2.556 F
-(special properties, e)144 642 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5
-G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1(MA)108 654 Q
+(special properties, e)144 288 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5
+G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1(MA)108 300 Q
(CHTYPE)-.55 E F0 .898(Automatically set to a string that fully describ\
-es the system type on which)144 666 R F1(bash)3.398 E F0 .899(is e)3.398
-F -.15(xe)-.15 G .899(cuting, in).15 F(the standard GNU)144 678 Q F3
-(cpu-company-system)2.5 E F0 2.5(format. The)2.5 F(def)2.5 E
-(ault is system-dependent.)-.1 E F1(MAPFILE)108 690 Q F0 .294
-(An array v)144 702 R .294(ariable \(see)-.25 F F1(Arrays)2.794 E F0
+es the system type on which)144 312 R F1(bash)3.398 E F0 .899(is e)3.398
+F -.15(xe)-.15 G .899(cuting, in).15 F(the standard GNU)144 324 Q/F3 10
+/Times-Italic@0 SF(cpu-company-system)2.5 E F0 2.5(format. The)2.5 F
+(def)2.5 E(ault is system-dependent.)-.1 E F1(MAPFILE)108 336 Q F0 .294
+(An array v)144 348 R .294(ariable \(see)-.25 F F1(Arrays)2.794 E F0
(belo)2.794 E .294(w\) created to hold the te)-.25 F .293
(xt read by the)-.15 F F1(map\214le)2.793 E F0 -.2(bu)2.793 G .293
-(iltin when no).2 F -.25(va)144 714 S(riable name is supplied.).25 E
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(13)190.395 E 0 Cg EP
-%%Page: 14 14
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(OLDPWD)108 84 Q F0(The pre)144 96 Q(vious w)-.25 E
+(iltin when no).2 F -.25(va)144 360 S(riable name is supplied.).25 E F1
+(OLDPWD)108 372 Q F0(The pre)144 384 Q(vious w)-.25 E
(orking directory as set by the)-.1 E F1(cd)2.5 E F0(command.)2.5 E F1
-(OPT)108 108 Q(ARG)-.9 E F0 1.626(The v)144 120 R 1.627
+(OPT)108 396 Q(ARG)-.9 E F0 1.626(The v)144 408 R 1.627
(alue of the last option ar)-.25 F 1.627(gument processed by the)-.18 F
-F1(getopts)4.127 E F0 -.2(bu)4.127 G 1.627(iltin command \(see).2 F/F2 9
-/Times-Bold@0 SF(SHELL)4.127 E -.09(BU)144 132 S(IL).09 E(TIN COMMANDS)
--.828 E F0(belo)2.25 E(w\).)-.25 E F1(OPTIND)108 144 Q F0 1.652
-(The inde)144 156 R 4.152(xo)-.15 G 4.152(ft)-4.152 G 1.652(he ne)-4.152
-F 1.652(xt ar)-.15 F 1.652(gument to be processed by the)-.18 F F1
-(getopts)4.151 E F0 -.2(bu)4.151 G 1.651(iltin command \(see).2 F F2
-(SHELL)4.151 E -.09(BU)144 168 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)
-2.25 E(w\).)-.25 E F1(OSTYPE)108 180 Q F0 .329(Automatically set to a s\
-tring that describes the operating system on which)144 192 R F1(bash)
-2.83 E F0 .33(is e)2.83 F -.15(xe)-.15 G 2.83(cuting. The).15 F(def)144
-204 Q(ault is system-dependent.)-.1 E F1(PIPEST)108 216 Q -.95(AT)-.9 G
-(US).95 E F0 .61(An array v)144 228 R .61(ariable \(see)-.25 F F1
-(Arrays)3.11 E F0(belo)3.11 E .61(w\) containing a list of e)-.25 F .61
-(xit status v)-.15 F .61(alues from the processes in)-.25 F
-(the most-recently-e)144 240 Q -.15(xe)-.15 G(cuted fore).15 E
+F1(getopts)4.127 E F0 -.2(bu)4.127 G 1.627(iltin command \(see).2 F F2
+(SHELL)4.127 E -.09(BU)144 420 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)
+2.25 E(w\).)-.25 E F1(OPTIND)108 432 Q F0 1.652(The inde)144 444 R 4.152
+(xo)-.15 G 4.152(ft)-4.152 G 1.652(he ne)-4.152 F 1.652(xt ar)-.15 F
+1.652(gument to be processed by the)-.18 F F1(getopts)4.151 E F0 -.2(bu)
+4.151 G 1.651(iltin command \(see).2 F F2(SHELL)4.151 E -.09(BU)144 456
+S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1(OSTYPE)108
+468 Q F0 .329(Automatically set to a string that describes the operatin\
+g system on which)144 480 R F1(bash)2.83 E F0 .33(is e)2.83 F -.15(xe)
+-.15 G 2.83(cuting. The).15 F(def)144 492 Q(ault is system-dependent.)
+-.1 E F1(PIPEST)108 504 Q -.95(AT)-.9 G(US).95 E F0 .61(An array v)144
+516 R .61(ariable \(see)-.25 F F1(Arrays)3.11 E F0(belo)3.11 E .61
+(w\) containing a list of e)-.25 F .61(xit status v)-.15 F .61
+(alues from the processes in)-.25 F(the most-recently-e)144 528 Q -.15
+(xe)-.15 G(cuted fore).15 E
(ground pipeline \(which may contain only a single command\).)-.15 E F1
-(PPID)108 252 Q F0(The process ID of the shell')144 252 Q 2.5(sp)-.55 G
+(PPID)108 540 Q F0(The process ID of the shell')144 540 Q 2.5(sp)-.55 G
2.5(arent. This)-2.5 F -.25(va)2.5 G(riable is readonly).25 E(.)-.65 E
-F1(PWD)108 264 Q F0(The current w)144 264 Q
+F1(PWD)108 552 Q F0(The current w)144 552 Q
(orking directory as set by the)-.1 E F1(cd)2.5 E F0(command.)2.5 E F1
-(RANDOM)108 276 Q F0 .417(Each time this parameter is referenced, it e)
-144 288 R .417(xpands to a random inte)-.15 F .417
-(ger between 0 and 32767.)-.15 F(As-)5.417 E .551(signing a v)144 300 R
+(RANDOM)108 564 Q F0 .417(Each time this parameter is referenced, it e)
+144 576 R .417(xpands to a random inte)-.15 F .417
+(ger between 0 and 32767.)-.15 F(As-)5.417 E .551(signing a v)144 588 R
.551(alue to)-.25 F F2(RANDOM)3.051 E F0 .551
(initializes \(seeds\) the sequence of random numbers.)2.801 F(If)5.55 E
F2(RANDOM)3.05 E F0(is)2.8 E(unset, it loses its special properties, e)
-144 312 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5
-(ss)-2.5 G(ubsequently reset.)-2.5 E F1(READLINE_LINE)108 324 Q F0 1.546
-(The contents of the)144 336 R F1 -.18(re)4.047 G(adline).18 E F0 1.547
-(line b)4.047 F(uf)-.2 E(fer)-.25 E 4.047(,f)-.4 G 1.547(or use with)
--4.047 F/F3 10/Courier@0 SF 1.547(bind -x)4.047 F F0(\(see)4.047 E F2
-1.547(SHELL B)4.047 F(UIL)-.09 E 1.547(TIN COM-)-.828 F(MANDS)144 348 Q
-F0(belo)2.25 E(w\).)-.25 E F1(READLINE_MARK)108 360 Q F0 .107
-(The position of the mark \(sa)144 372 R -.15(ve)-.2 G 2.607(di).15 G
-.107(nsertion point\) in the)-2.607 F F1 -.18(re)2.606 G(adline).18 E F0
-.106(line b)2.606 F(uf)-.2 E(fer)-.25 E 2.606(,f)-.4 G .106(or use with)
--2.606 F F3 .106(bind -x)2.606 F F0(\(see)144 384 Q F2 1.016(SHELL B)
-3.516 F(UIL)-.09 E 1.016(TIN COMMANDS)-.828 F F0(belo)3.266 E 3.516
-(w\). The)-.25 F 1.017(characters between the insertion point and the)
-3.516 F(mark are often called the)144 396 Q/F4 10/Times-Italic@0 SF -.37
-(re)2.5 G(gion)-.03 E F0(.)A F1(READLINE_POINT)108 408 Q F0 .314
-(The position of the insertion point in the)144 420 R F1 -.18(re)2.813 G
+144 600 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5
+(ss)-2.5 G(ubsequently reset.)-2.5 E F1(READLINE_ARGUMENT)108 612 Q F0
+(An)144 624 Q 4.694(yn)-.15 G 2.194(umeric ar)-4.694 F 2.194(gument gi)
+-.18 F -.15(ve)-.25 G 4.694(nt).15 G 4.694(oar)-4.694 G 2.194
+(eadline command that w)-4.694 F 2.194(as de\214ned using)-.1 F/F4 10
+/Courier@0 SF 2.195(bind -x)4.695 F F0(\(see)4.695 E F2(SHELL B)144 636
+Q(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\) when it w)-.25 E
+(as in)-.1 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1(READLINE_LINE)108 648 Q
+F0 1.547(The contents of the)144 660 R F1 -.18(re)4.047 G(adline).18 E
+F0 1.547(line b)4.047 F(uf)-.2 E(fer)-.25 E 4.047(,f)-.4 G 1.547
+(or use with)-4.047 F F4 1.547(bind -x)4.047 F F0(\(see)4.047 E F2 1.546
+(SHELL B)4.047 F(UIL)-.09 E 1.546(TIN COM-)-.828 F(MANDS)144 672 Q F0
+(belo)2.25 E(w\).)-.25 E F1(READLINE_MARK)108 684 Q F0 .106
+(The position of the mark \(sa)144 696 R -.15(ve)-.2 G 2.606(di).15 G
+.106(nsertion point\) in the)-2.606 F F1 -.18(re)2.607 G(adline).18 E F0
+.107(line b)2.607 F(uf)-.2 E(fer)-.25 E 2.607(,f)-.4 G .107(or use with)
+-2.607 F F4 .107(bind -x)2.607 F F0(\(see)144 708 Q F2 1.017(SHELL B)
+3.517 F(UIL)-.09 E 1.017(TIN COMMANDS)-.828 F F0(belo)3.267 E 3.516
+(w\). The)-.25 F 1.016(characters between the insertion point and the)
+3.516 F(mark are often called the)144 720 Q F3 -.37(re)2.5 G(gion)-.03 E
+F0(.)A(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(14)185.115 E 0
+Cg EP
+%%Page: 15 15
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(READLINE_POINT)108 84 Q F0 .313
+(The position of the insertion point in the)144 96 R F1 -.18(re)2.813 G
(adline).18 E F0 .313(line b)2.813 F(uf)-.2 E(fer)-.25 E 2.813(,f)-.4 G
-.313(or use with)-2.813 F F3 .313(bind -x)2.813 F F0(\(see)2.813 E F2
-(SHELL)2.813 E -.09(BU)144 432 S(IL).09 E(TIN COMMANDS)-.828 E F0(belo)
-2.25 E(w\).)-.25 E F1(REPL)108 444 Q(Y)-.92 E F0
-(Set to the line of input read by the)144 456 Q F1 -.18(re)2.5 G(ad).18
-E F0 -.2(bu)2.5 G(iltin command when no ar).2 E(guments are supplied.)
--.18 E F1(SECONDS)108 468 Q F0 .795(Each time this parameter is referen\
-ced, the number of seconds since shell in)144 480 R -.2(vo)-.4 G .795
-(cation is returned.).2 F .713(If a v)144 492 R .712
-(alue is assigned to)-.25 F F2(SECONDS)3.212 E/F5 9/Times-Roman@0 SF(,)A
-F0 .712(the v)2.962 F .712
-(alue returned upon subsequent references is the number)-.25 F .627
-(of seconds since the assignment plus the v)144 504 R .627
-(alue assigned.)-.25 F .628(The number of seconds at shell in)5.627 F
--.2(vo)-.4 G(ca-).2 E .458(tion and the current time is al)144 516 R -.1
-(wa)-.1 G .458(ys determined by querying the system clock.).1 F(If)5.457
-E F2(SECONDS)2.957 E F0 .457(is un-)2.707 F
-(set, it loses its special properties, e)144 528 Q -.15(ve)-.25 G 2.5
+.313(or use with)-2.813 F/F2 10/Courier@0 SF .314(bind -x)2.814 F F0
+(\(see)2.814 E/F3 9/Times-Bold@0 SF(SHELL)2.814 E -.09(BU)144 108 S(IL)
+.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1(REPL)108 120 Q
+(Y)-.92 E F0(Set to the line of input read by the)144 132 Q F1 -.18(re)
+2.5 G(ad).18 E F0 -.2(bu)2.5 G(iltin command when no ar).2 E
+(guments are supplied.)-.18 E F1(SECONDS)108 144 Q F0 .178
+(Each time this parameter is referenced, it e)144 156 R .177
+(xpands to the number of seconds since shell in)-.15 F -.2(vo)-.4 G
+(cation.).2 E .712(If a v)144 168 R .712(alue is assigned to)-.25 F F3
+(SECONDS)3.212 E/F4 9/Times-Roman@0 SF(,)A F0 .712(the v)2.962 F .712
+(alue returned upon subsequent references is the number)-.25 F .628
+(of seconds since the assignment plus the v)144 180 R .627
+(alue assigned.)-.25 F .627(The number of seconds at shell in)5.627 F
+-.2(vo)-.4 G(ca-).2 E .111(tion and the current time are al)144 192 R
+-.1(wa)-.1 G .111(ys determined by querying the system clock.).1 F(If)
+5.112 E F3(SECONDS)2.612 E F0 .112(is un-)2.362 F
+(set, it loses its special properties, e)144 204 Q -.15(ve)-.25 G 2.5
(ni).15 G 2.5(fi)-2.5 G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)
--2.5 E F1(SHELLOPTS)108 540 Q F0 3.262(Ac)144 552 S .763
-(olon-separated list of enabled shell options.)-3.262 F .763(Each w)
+-2.5 E F1(SHELLOPTS)108 216 Q F0 3.263(Ac)144 228 S .763
+(olon-separated list of enabled shell options.)-3.263 F .763(Each w)
5.763 F .763(ord in the list is a v)-.1 F .763(alid ar)-.25 F .763
-(gument for the)-.18 F F1<ad6f>144 564 Q F0 1.174(option to the)3.674 F
-F1(set)3.674 E F0 -.2(bu)3.674 G 1.174(iltin command \(see).2 F F2 1.173
-(SHELL B)3.673 F(UIL)-.09 E 1.173(TIN COMMANDS)-.828 F F0(belo)3.423 E
-3.673(w\). The)-.25 F(options)3.673 E .019(appearing in)144 576 R F2
-(SHELLOPTS)2.519 E F0 .019(are those reported as)2.269 F F4(on)2.749 E
-F0(by)2.759 E F1 .019(set \255o)2.519 F F0 5.019(.I)C 2.519(ft)-5.019 G
-.019(his v)-2.519 F .02(ariable is in the en)-.25 F(vironment)-.4 E
-(when)144 588 Q F1(bash)3.142 E F0 .642(starts up, each shell option in\
- the list will be enabled before reading an)3.142 F 3.141(ys)-.15 G .641
-(tartup \214les.)-3.141 F(This v)144 600 Q(ariable is read-only)-.25 E
-(.)-.65 E F1(SHL)108 612 Q(VL)-.92 E F0
-(Incremented by one each time an instance of)144 624 Q F1(bash)2.5 E F0
-(is started.)2.5 E F1(SRANDOM)108 636 Q F0 .76(This v)144 648 R .76
-(ariable e)-.25 F .761(xpands to a 32-bit pseudo-random number each tim\
-e it is referenced. The random)-.15 F .565
-(number generator is not linear on systems that support)144 660 R F3
-(/dev/urandom)3.064 E F0(or)3.064 E F4(ar)3.064 E(c4r)-.37 E(andom)-.15
-E F0 3.064(,s)C 3.064(oe)-3.064 G(ach)-3.064 E .788
+(gument for the)-.18 F F1<ad6f>144 240 Q F0 1.173(option to the)3.673 F
+F1(set)3.673 E F0 -.2(bu)3.673 G 1.173(iltin command \(see).2 F F3 1.174
+(SHELL B)3.674 F(UIL)-.09 E 1.174(TIN COMMANDS)-.828 F F0(belo)3.424 E
+3.674(w\). The)-.25 F(options)3.674 E .02(appearing in)144 252 R F3
+(SHELLOPTS)2.52 E F0 .019(are those reported as)2.27 F/F5 10
+/Times-Italic@0 SF(on)2.749 E F0(by)2.759 E F1 .019(set \255o)2.519 F F0
+5.019(.I)C 2.519(ft)-5.019 G .019(his v)-2.519 F .019
+(ariable is in the en)-.25 F(vironment)-.4 E(when)144 264 Q F1(bash)
+3.141 E F0 .642(starts up, each shell option in the list will be enable\
+d before reading an)3.141 F 3.142(ys)-.15 G .642(tartup \214les.)-3.142
+F(This v)144 276 Q(ariable is read-only)-.25 E(.)-.65 E F1(SHL)108 288 Q
+(VL)-.92 E F0(Incremented by one each time an instance of)144 300 Q F1
+(bash)2.5 E F0(is started.)2.5 E F1(SRANDOM)108 312 Q F0 .761(This v)144
+324 R .761(ariable e)-.25 F .761(xpands to a 32-bit pseudo-random numbe\
+r each time it is referenced. The random)-.15 F .564
+(number generator is not linear on systems that support)144 336 R F2
+(/dev/urandom)3.065 E F0(or)3.065 E F5(ar)3.065 E(c4r)-.37 E(andom)-.15
+E F0 3.065(,s)C 3.065(oe)-3.065 G(ach)-3.065 E .788
(returned number has no relationship to the numbers preceding it.)144
-672 R .788(The random number generator)5.788 F .088
-(cannot be seeded, so assignments to this v)144 684 R .087(ariable ha)
--.25 F .387 -.15(ve n)-.2 H 2.587(oe).15 G -.25(ff)-2.587 G 2.587
-(ect. If).25 F F2(SRANDOM)2.587 E F0 .087(is unset, it loses its)2.337 F
-(special properties, e)144 696 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5
-G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1(UID)108 708 Q
-F0(Expands to the user ID of the current user)144 708 Q 2.5(,i)-.4 G
+348 R .787(The random number generator)5.787 F .087
+(cannot be seeded, so assignments to this v)144 360 R .087(ariable ha)
+-.25 F .387 -.15(ve n)-.2 H 2.587(oe).15 G -.25(ff)-2.587 G 2.588
+(ect. If).25 F F3(SRANDOM)2.588 E F0 .088(is unset, it loses its)2.338 F
+(special properties, e)144 372 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(fi)-2.5
+G 2.5(ti)-2.5 G 2.5(ss)-2.5 G(ubsequently reset.)-2.5 E F1(UID)108 384 Q
+F0(Expands to the user ID of the current user)144 384 Q 2.5(,i)-.4 G
(nitialized at shell startup.)-2.5 E(This v)5 E(ariable is readonly)-.25
-E(.)-.65 E .993(The follo)108 724.8 R .993(wing v)-.25 F .994
+E(.)-.65 E .994(The follo)108 400.8 R .994(wing v)-.25 F .994
(ariables are used by the shell.)-.25 F .994(In some cases,)5.994 F F1
-(bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .994
-(alue to a v)-.25 F(ariable;)-.25 E(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(14)190.395 E 0 Cg EP
-%%Page: 15 15
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E
-(these cases are noted belo)108 84 Q -.65(w.)-.25 G/F1 10/Times-Bold@0
-SF -.3(BA)108 100.8 S(SH_COMP).3 E -.95(AT)-.74 G F0 .503(The v)144
-112.8 R .502(alue is used to set the shell')-.25 F 3.002(sc)-.55 G .502
-(ompatibility le)-3.002 F -.15(ve)-.25 G 3.002(l. See).15 F/F2 9
-/Times-Bold@0 SF .502(SHELL COMP)3.002 F -.855(AT)-.666 G .502
-(IBILITY MODE).855 F F0(be-)2.752 E(lo)144 124.8 Q 2.662(wf)-.25 G .162
-(or a description of the v)-2.662 F .162(arious compatibility le)-.25 F
--.15(ve)-.25 G .162(ls and their ef).15 F 2.663(fects. The)-.25 F -.25
-(va)2.663 G .163(lue may be a dec-).25 F .33
-(imal number \(e.g., 4.2\) or an inte)144 136.8 R .33
+(bash)3.494 E F0 .994(assigns a def)3.494 F .994(ault v)-.1 F .993
+(alue to a v)-.25 F(ariable;)-.25 E(these cases are noted belo)108 412.8
+Q -.65(w.)-.25 G F1 -.3(BA)108 429.6 S(SH_COMP).3 E -.95(AT)-.74 G F0
+.502(The v)144 441.6 R .502(alue is used to set the shell')-.25 F 3.002
+(sc)-.55 G .502(ompatibility le)-3.002 F -.15(ve)-.25 G 3.002(l. See).15
+F F3 .503(SHELL COMP)3.002 F -.855(AT)-.666 G .503(IBILITY MODE).855 F
+F0(be-)2.753 E(lo)144 453.6 Q 2.663(wf)-.25 G .163
+(or a description of the v)-2.663 F .162(arious compatibility le)-.25 F
+-.15(ve)-.25 G .162(ls and their ef).15 F 2.662(fects. The)-.25 F -.25
+(va)2.662 G .162(lue may be a dec-).25 F .33
+(imal number \(e.g., 4.2\) or an inte)144 465.6 R .33
(ger \(e.g., 42\) corresponding to the desired compatibility le)-.15 F
--.15(ve)-.25 G 2.83(l. If).15 F F1 -.3(BA)144 148.8 S(SH_COMP).3 E -.95
-(AT)-.74 G F0 .86
-(is unset or set to the empty string, the compatibility le)4.31 F -.15
-(ve)-.25 G 3.361(li).15 G 3.361(ss)-3.361 G .861(et to the def)-3.361 F
-(ault)-.1 E .39(for the current v)144 160.8 R 2.89(ersion. If)-.15 F F1
--.3(BA)2.89 G(SH_COMP).3 E -.95(AT)-.74 G F0 .39(is set to a v)3.84 F
-.39(alue that is not one of the v)-.25 F .39(alid compati-)-.25 F .277
-(bility le)144 172.8 R -.15(ve)-.25 G .278
+-.15(ve)-.25 G 2.83(l. If).15 F F1 -.3(BA)144 477.6 S(SH_COMP).3 E -.95
+(AT)-.74 G F0 .861
+(is unset or set to the empty string, the compatibility le)4.311 F -.15
+(ve)-.25 G 3.36(li).15 G 3.36(ss)-3.36 G .86(et to the def)-3.36 F(ault)
+-.1 E .39(for the current v)144 489.6 R 2.89(ersion. If)-.15 F F1 -.3
+(BA)2.89 G(SH_COMP).3 E -.95(AT)-.74 G F0 .39(is set to a v)3.84 F .39
+(alue that is not one of the v)-.25 F .39(alid compati-)-.25 F .278
+(bility le)144 501.6 R -.15(ve)-.25 G .278
(ls, the shell prints an error message and sets the compatibility le).15
-F -.15(ve)-.25 G 2.778(lt).15 G 2.778(ot)-2.778 G .278(he def)-2.778 F
-.278(ault for the)-.1 F 1.401(current v)144 184.8 R 3.901(ersion. The)
--.15 F -.25(va)3.901 G 1.401(lid v).25 F 1.401
+F -.15(ve)-.25 G 2.777(lt).15 G 2.777(ot)-2.777 G .277(he def)-2.777 F
+.277(ault for the)-.1 F 1.4(current v)144 513.6 R 3.9(ersion. The)-.15 F
+-.25(va)3.901 G 1.401(lid v).25 F 1.401
(alues correspond to the compatibility le)-.25 F -.15(ve)-.25 G 1.401
-(ls described belo).15 F 3.9(wu)-.25 G(nder)-3.9 E F2(BSHELL)144 196.8 Q
-/F3 9/Times-Roman@0 SF(COMP)A -.999(AT)-.828 G(IBILITY).999 E F2(MODE)A
-F3(.)A F0 -.15(Fo)4.997 G 2.997(re).15 G .497(xample, 4.2 and 42 are v)
--3.147 F .497(alid v)-.25 F .498(alues that correspond to the)-.25 F F1
-.774(compat42 shopt)144 208.8 R F0 .774
-(option and set the compatibility le)3.274 F -.15(ve)-.25 G 3.274(lt).15
-G 3.274(o4)-3.274 G 3.274(2. The)-3.274 F .774(current v)3.274 F .773
-(ersion is also a v)-.15 F(alid)-.25 E -.25(va)144 220.8 S(lue.).25 E F1
--.3(BA)108 232.8 S(SH_ENV).3 E F0 .505(If this parameter is set when)144
-244.8 R F1(bash)3.005 E F0 .505(is e)3.005 F -.15(xe)-.15 G .506
-(cuting a shell script, its v).15 F .506
-(alue is interpreted as a \214lename)-.25 F .391
-(containing commands to initialize the shell, as in)144 256.8 R/F4 10
-/Times-Italic@0 SF(~/.bashr)2.39 E(c)-.37 E F0 5.39(.T).31 G .39(he v)
--5.39 F .39(alue of)-.25 F F2 -.27(BA)2.89 G(SH_ENV).27 E F0 .39
-(is subjected)2.64 F .525(to parameter e)144 268.8 R .525
+(ls described belo).15 F 3.901(wu)-.25 G(nder)-3.901 E F3 .154
+(SHELL COMP)144 525.6 R -.855(AT)-.666 G .154(IBILITY MODE).855 F F4(.)A
+F0 -.15(Fo)4.654 G 2.654(re).15 G .154(xample, 4.2 and 42 are v)-2.804 F
+.153(alid v)-.25 F .153(alues that correspond to the)-.25 F F1 .773
+(compat42 shopt)144 537.6 R F0 .774(option and set the compatibility le)
+3.273 F -.15(ve)-.25 G 3.274(lt).15 G 3.274(o4)-3.274 G 3.274(2. The)
+-3.274 F .774(current v)3.274 F .774(ersion is also a v)-.15 F(alid)-.25
+E -.25(va)144 549.6 S(lue.).25 E F1 -.3(BA)108 561.6 S(SH_ENV).3 E F0
+.506(If this parameter is set when)144 573.6 R F1(bash)3.006 E F0 .506
+(is e)3.006 F -.15(xe)-.15 G .505(cuting a shell script, its v).15 F
+.505(alue is interpreted as a \214lename)-.25 F .39
+(containing commands to initialize the shell, as in)144 585.6 R F5
+(~/.bashr)2.39 E(c)-.37 E F0 5.39(.T).31 G .39(he v)-5.39 F .391
+(alue of)-.25 F F3 -.27(BA)2.891 G(SH_ENV).27 E F0 .391(is subjected)
+2.641 F .525(to parameter e)144 597.6 R .525
(xpansion, command substitution, and arithmetic e)-.15 F .525
-(xpansion before being interpreted)-.15 F(as a \214lename.)144 280.8 Q
-F2 -.666(PA)5 G(TH)-.189 E F0
+(xpansion before being interpreted)-.15 F(as a \214lename.)144 609.6 Q
+F3 -.666(PA)5 G(TH)-.189 E F0
(is not used to search for the resultant \214lename.)2.25 E F1 -.3(BA)
-108 292.8 S(SH_XTRA).3 E(CEFD)-.55 E F0 .481(If set to an inte)144 304.8
-R .481(ger corresponding to a v)-.15 F .481(alid \214le descriptor)-.25
-F(,)-.4 E F1(bash)2.98 E F0 .48(will write the trace output gener)2.98 F
-(-)-.2 E 3.114(ated when)144 316.8 R/F5 10/Courier@0 SF 3.114(set -x)
-5.614 F F0 3.114(is enabled to that \214le descriptor)5.614 F 8.114(.T)
--.55 G 3.114(he \214le descriptor is closed when)-8.114 F F2 -.27(BA)144
-328.8 S(SH_XTRA).27 E(CEFD)-.495 E F0 .138(is unset or assigned a ne)
-2.388 F 2.638(wv)-.25 G 2.638(alue. Unsetting)-2.888 F F2 -.27(BA)2.638
-G(SH_XTRA).27 E(CEFD)-.495 E F0 .138(or assigning it)2.388 F 2.531(the \
-empty string causes the trace output to be sent to the standard error)
-144 340.8 R 7.531(.N)-.55 G 2.531(ote that setting)-7.531 F F2 -.27(BA)
-144 352.8 S(SH_XTRA).27 E(CEFD)-.495 E F0 .74(to 2 \(the standard error\
- \214le descriptor\) and then unsetting it will result in the)2.991 F
-(standard error being closed.)144 364.8 Q F1(CDP)108 376.8 Q -.95(AT)
--.74 G(H).95 E F0 1.247(The search path for the)144 388.8 R F1(cd)3.747
-E F0 3.747(command. This)3.747 F 1.248
-(is a colon-separated list of directories in which the)3.747 F 3.796
-(shell looks for destination directories speci\214ed by the)144 400.8 R
-F1(cd)6.295 E F0 6.295(command. A)6.295 F 3.795(sample v)6.295 F 3.795
-(alue is)-.25 F F5(".:~:/usr")144 412.8 Q F0(.)A F1(CHILD_MAX)108 424.8
-Q F0 .997(Set the number of e)144 436.8 R .997(xited child status v)-.15
-F .997(alues for the shell to remember)-.25 F 5.997(.B)-.55 G .997
-(ash will not allo)-5.997 F 3.498(wt)-.25 G(his)-3.498 E -.25(va)144
-448.8 S 1.078(lue to be decreased belo).25 F 3.577(waP)-.25 G 1.077
-(OSIX-mandated minimum, and there is a maximum v)-3.577 F 1.077
-(alue \(cur)-.25 F(-)-.2 E(rently 8192\) that this may not e)144 460.8 Q
+108 621.6 S(SH_XTRA).3 E(CEFD)-.55 E F0 .48(If set to an inte)144 633.6
+R .48(ger corresponding to a v)-.15 F .481(alid \214le descriptor)-.25 F
+(,)-.4 E F1(bash)2.981 E F0 .481(will write the trace output gener)2.981
+F(-)-.2 E 3.114(ated when)144 645.6 R F2 3.114(set -x)5.614 F F0 3.114
+(is enabled to that \214le descriptor)5.614 F 8.114(.T)-.55 G 3.114
+(he \214le descriptor is closed when)-8.114 F F3 -.27(BA)144 657.6 S
+(SH_XTRA).27 E(CEFD)-.495 E F0 .138(is unset or assigned a ne)2.388 F
+2.638(wv)-.25 G 2.638(alue. Unsetting)-2.888 F F3 -.27(BA)2.638 G
+(SH_XTRA).27 E(CEFD)-.495 E F0 .138(or assigning it)2.388 F 2.531(the e\
+mpty string causes the trace output to be sent to the standard error)144
+669.6 R 7.53(.N)-.55 G 2.53(ote that setting)-7.53 F F3 -.27(BA)144
+681.6 S(SH_XTRA).27 E(CEFD)-.495 E F0 .74(to 2 \(the standard error \
+\214le descriptor\) and then unsetting it will result in the)2.99 F
+(standard error being closed.)144 693.6 Q F1(CDP)108 705.6 Q -.95(AT)
+-.74 G(H).95 E F0 1.248(The search path for the)144 717.6 R F1(cd)3.748
+E F0 3.748(command. This)3.748 F 1.247
+(is a colon-separated list of directories in which the)3.748 F 3.795
+(shell looks for destination directories speci\214ed by the)144 729.6 R
+F1(cd)6.295 E F0 6.296(command. A)6.296 F 3.796(sample v)6.296 F 3.796
+(alue is)-.25 F(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(15)
+185.115 E 0 Cg EP
+%%Page: 16 16
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Courier@0 SF
+(".:~:/usr")144 84 Q F0(.)A/F2 10/Times-Bold@0 SF(CHILD_MAX)108 96 Q F0
+.997(Set the number of e)144 108 R .997(xited child status v)-.15 F .997
+(alues for the shell to remember)-.25 F 5.997(.B)-.55 G .997
+(ash will not allo)-5.997 F 3.497(wt)-.25 G(his)-3.497 E -.25(va)144 120
+S 1.077(lue to be decreased belo).25 F 3.577(waP)-.25 G 1.077
+(OSIX-mandated minimum, and there is a maximum v)-3.577 F 1.078
+(alue \(cur)-.25 F(-)-.2 E(rently 8192\) that this may not e)144 132 Q
2.5(xceed. The)-.15 F(minimum v)2.5 E(alue is system-dependent.)-.25 E
-F1(COLUMNS)108 472.8 Q F0 .828(Used by the)144 484.8 R F1(select)3.328 E
-F0 .829(compound command to determine the terminal width when printing \
-selection)3.328 F 3.466(lists. Automatically)144 496.8 R .966
-(set if the)3.466 F F1(checkwinsize)3.466 E F0 .966
+F2(COLUMNS)108 144 Q F0 .829(Used by the)144 156 R F2(select)3.329 E F0
+.828(compound command to determine the terminal width when printing sel\
+ection)3.329 F 3.466(lists. Automatically)144 168 R .966(set if the)
+3.466 F F2(checkwinsize)3.466 E F0 .966
(option is enabled or in an interacti)3.466 F 1.266 -.15(ve s)-.25 H
-.966(hell upon re-).15 F(ceipt of a)144 508.8 Q F2(SIGWINCH)2.5 E F3(.)A
-F1(COMPREPL)108 520.8 Q(Y)-.92 E F0 .847(An array v)144 532.8 R .848
-(ariable from which)-.25 F F1(bash)3.348 E F0 .848
+.966(hell upon re-).15 F(ceipt of a)144 180 Q/F3 9/Times-Bold@0 SF
+(SIGWINCH)2.5 E/F4 9/Times-Roman@0 SF(.)A F2(COMPREPL)108 192 Q(Y)-.92 E
+F0 .848(An array v)144 204 R .848(ariable from which)-.25 F F2(bash)
+3.348 E F0 .848
(reads the possible completions generated by a shell function)3.348 F
-(in)144 544.8 Q -.2(vo)-.4 G -.1(ke).2 G 2.785(db).1 G 2.785(yt)-2.785 G
-.285(he programmable completion f)-2.785 F .285(acility \(see)-.1 F F1
+(in)144 216 Q -.2(vo)-.4 G -.1(ke).2 G 2.785(db).1 G 2.785(yt)-2.785 G
+.285(he programmable completion f)-2.785 F .285(acility \(see)-.1 F F2
(Pr)2.785 E .285(ogrammable Completion)-.18 F F0(belo)2.785 E 2.785
(w\). Each)-.25 F(array element contains one possible completion.)144
-556.8 Q F1(EMA)108 568.8 Q(CS)-.55 E F0(If)144 580.8 Q F1(bash)2.535 E
-F0 .035(\214nds this v)2.535 F .035(ariable in the en)-.25 F .036
-(vironment when the shell starts with v)-.4 F(alue)-.25 E F5(t)2.536 E
-F0 2.536(,i)C 2.536(ta)-2.536 G .036(ssumes that the)-2.536 F
-(shell is running in an Emacs shell b)144 592.8 Q(uf)-.2 E
-(fer and disables line editing.)-.25 E F1(ENV)108 604.8 Q F0 .671
-(Expanded and e)144 604.8 R -.15(xe)-.15 G .671(cuted similarly to).15 F
-F2 -.27(BA)3.17 G(SH_ENV).27 E F0(\(see)2.92 E F1(INV)3.17 E(OCA)-.45 E
-(TION)-.95 E F0(abo)3.17 E -.15(ve)-.15 G 3.17(\)w).15 G .67
-(hen an interacti)-3.17 F -.15(ve)-.25 G(shell is in)144 616.8 Q -.2(vo)
--.4 G -.1(ke).2 G 2.5(di).1 G(n)-2.5 E F4(posix mode)2.5 E F0(.)A F1
-(EXECIGNORE)108 628.8 Q F0 2.716(Ac)144 640.8 S .216
-(olon-separated list of shell patterns \(see)-2.716 F F1 -.1(Pa)2.717 G
-(tter).1 E 2.717(nM)-.15 G(atching)-2.717 E F0 2.717(\)d)C .217
-(e\214ning the list of \214lenames to be)-2.717 F .117
-(ignored by command search using)144 652.8 R F1 -.74(PA)2.617 G(TH)-.21
-E F0 5.117(.F)C .116
-(iles whose full pathnames match one of these patterns)-5.117 F 1.432
-(are not considered e)144 664.8 R -.15(xe)-.15 G 1.432
+228 Q F2(EMA)108 240 Q(CS)-.55 E F0(If)144 252 Q F2(bash)2.536 E F0 .036
+(\214nds this v)2.536 F .036(ariable in the en)-.25 F .036
+(vironment when the shell starts with v)-.4 F(alue)-.25 E F1(t)2.535 E
+F0 2.535(,i)C 2.535(ta)-2.535 G .035(ssumes that the)-2.535 F
+(shell is running in an Emacs shell b)144 264 Q(uf)-.2 E
+(fer and disables line editing.)-.25 E F2(ENV)108 276 Q F0 .67
+(Expanded and e)144 276 R -.15(xe)-.15 G .67(cuted similarly to).15 F F3
+-.27(BA)3.17 G(SH_ENV).27 E F0(\(see)2.92 E F2(INV)3.17 E(OCA)-.45 E
+(TION)-.95 E F0(abo)3.171 E -.15(ve)-.15 G 3.171(\)w).15 G .671
+(hen an interacti)-3.171 F -.15(ve)-.25 G(shell is in)144 288 Q -.2(vo)
+-.4 G -.1(ke).2 G 2.5(di).1 G(n)-2.5 E/F5 10/Times-Italic@0 SF
+(posix mode)2.5 E F0(.)A F2(EXECIGNORE)108 300 Q F0 2.717(Ac)144 312 S
+.217(olon-separated list of shell patterns \(see)-2.717 F F2 -.1(Pa)
+2.717 G(tter).1 E 2.717(nM)-.15 G(atching)-2.717 E F0 2.717(\)d)C .216
+(e\214ning the list of \214lenames to be)-2.717 F .116
+(ignored by command search using)144 324 R F2 -.74(PA)2.616 G(TH)-.21 E
+F0 5.116(.F)C .117
+(iles whose full pathnames match one of these patterns)-5.116 F 1.433
+(are not considered e)144 336 R -.15(xe)-.15 G 1.432
(cutable \214les for the purposes of completion and command e).15 F -.15
-(xe)-.15 G 1.433(cution via).15 F F1 -.74(PA)144 676.8 S(TH)-.21 E F0
-2.909(lookup. This)2.909 F .408(does not af)2.908 F .408(fect the beha)
--.25 F .408(vior of the)-.2 F F1([)2.908 E F0(,)A F1(test)2.908 E F0
-2.908(,a)C(nd)-2.908 E F1([[)2.908 E F0 2.908(commands. Full)2.908 F
-(pathnames)2.908 E .364(in the command hash table are not subject to)144
-688.8 R F1(EXECIGNORE)2.864 E F0 5.364(.U)C .364(se this v)-5.364 F .364
-(ariable to ignore shared)-.25 F 1.37(library \214les that ha)144 700.8
-R 1.67 -.15(ve t)-.2 H 1.37(he e).15 F -.15(xe)-.15 G 1.37
+(xe)-.15 G 1.432(cution via).15 F F2 -.74(PA)144 348 S(TH)-.21 E F0
+2.908(lookup. This)2.908 F .408(does not af)2.908 F .408(fect the beha)
+-.25 F .408(vior of the)-.2 F F2([)2.908 E F0(,)A F2(test)2.908 E F0
+2.908(,a)C(nd)-2.908 E F2([[)2.908 E F0 2.909(commands. Full)2.908 F
+(pathnames)2.909 E .364(in the command hash table are not subject to)144
+360 R F2(EXECIGNORE)2.864 E F0 5.364(.U)C .364(se this v)-5.364 F .364
+(ariable to ignore shared)-.25 F 1.37(library \214les that ha)144 372 R
+1.67 -.15(ve t)-.2 H 1.37(he e).15 F -.15(xe)-.15 G 1.37
(cutable bit set, b).15 F 1.37(ut are not e)-.2 F -.15(xe)-.15 G 1.37
(cutable \214les.).15 F 1.37(The pattern matching)6.37 F
-(honors the setting of the)144 712.8 Q F1(extglob)2.5 E F0
-(shell option.)2.5 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(15)
-190.395 E 0 Cg EP
-%%Page: 16 16
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(FCEDIT)108 84 Q F0(The def)144 96 Q(ault editor for the)-.1 E F1(fc)
-2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E F1(FIGNORE)108 108 Q F0 2.598
-(Ac)144 120 S .098(olon-separated list of suf)-2.598 F<8c78>-.25 E .098
-(es to ignore when performing \214lename completion \(see)-.15 F/F2 9
-/Times-Bold@0 SF(READLINE)2.599 E F0(belo)144 132 Q 2.705(w\). A)-.25 F
-.205(\214lename whose suf)2.705 F .205
-(\214x matches one of the entries in)-.25 F F2(FIGNORE)2.705 E F0 .205
-(is e)2.455 F .204(xcluded from the list)-.15 F(of matched \214lenames.)
-144 144 Q 2.5(As)5 G(ample v)-2.5 E(alue is)-.25 E/F3 10/Courier@0 SF
-(".o:~")2.5 E F0(.)A F1(FUNCNEST)108 156 Q F0 .23(If set to a numeric v)
-144 168 R .231
+(honors the setting of the)144 384 Q F2(extglob)2.5 E F0(shell option.)
+2.5 E F2(FCEDIT)108 396 Q F0(The def)144 408 Q(ault editor for the)-.1 E
+F2(fc)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E F2(FIGNORE)108 420 Q F0
+2.599(Ac)144 432 S .098(olon-separated list of suf)-2.599 F<8c78>-.25 E
+.098(es to ignore when performing \214lename completion \(see)-.15 F F3
+(READLINE)2.598 E F0(belo)144 444 Q 2.704(w\). A)-.25 F .204
+(\214lename whose suf)2.704 F .205(\214x matches one of the entries in)
+-.25 F F3(FIGNORE)2.705 E F0 .205(is e)2.455 F .205
+(xcluded from the list)-.15 F(of matched \214lenames.)144 456 Q 2.5(As)5
+G(ample v)-2.5 E(alue is)-.25 E F1(".o:~")2.5 E F0(.)A F2(FUNCNEST)108
+468 Q F0 .231(If set to a numeric v)144 480 R .231
(alue greater than 0, de\214nes a maximum function nesting le)-.25 F
--.15(ve)-.25 G 2.731(l. Function).15 F(in)2.731 E -.2(vo)-.4 G(-).2 E
-(cations that e)144 180 Q(xceed this nesting le)-.15 E -.15(ve)-.25 G
-2.5(lw).15 G(ill cause the current command to abort.)-2.5 E F1
-(GLOBIGNORE)108 192 Q F0 2.924(Ac)144 204 S .423(olon-separated list of\
+-.15(ve)-.25 G 2.73(l. Function).15 F(in)2.73 E -.2(vo)-.4 G(-).2 E
+(cations that e)144 492 Q(xceed this nesting le)-.15 E -.15(ve)-.25 G
+2.5(lw).15 G(ill cause the current command to abort.)-2.5 E F2
+(GLOBIGNORE)108 504 Q F0 2.923(Ac)144 516 S .423(olon-separated list of\
patterns de\214ning the set of \214le names to be ignored by pathname \
-e)-2.924 F(xpan-)-.15 E 2.947(sion. If)144 216 R 2.947<618c>2.947 G .447
-(le name matched by a pathname e)-2.947 F .448
-(xpansion pattern also matches one of the patterns in)-.15 F F2
-(GLOBIGNORE)144 228 Q/F4 9/Times-Roman@0 SF(,)A F0(it is remo)2.25 E
--.15(ve)-.15 G 2.5(df).15 G(rom the list of matches.)-2.5 E F1
-(HISTCONTR)108 240 Q(OL)-.3 E F0 2.654(Ac)144 252 S .153
-(olon-separated list of v)-2.654 F .153(alues controlling ho)-.25 F
-2.653(wc)-.25 G .153(ommands are sa)-2.653 F -.15(ve)-.2 G 2.653(do).15
-G 2.653(nt)-2.653 G .153(he history list.)-2.653 F .153(If the list)
-5.153 F .49(of v)144 264 R .49(alues includes)-.25 F/F5 10
-/Times-Italic@0 SF(ignor)3 E(espace)-.37 E F0 2.99(,l).18 G .49
-(ines which be)-2.99 F .49(gin with a)-.15 F F1(space)2.99 E F0 .49
+e)-2.923 F(xpan-)-.15 E 2.948(sion. If)144 528 R 2.948<618c>2.948 G .448
+(le name matched by a pathname e)-2.948 F .447
+(xpansion pattern also matches one of the patterns in)-.15 F F3
+(GLOBIGNORE)144 540 Q F4(,)A F0(it is remo)2.25 E -.15(ve)-.15 G 2.5(df)
+.15 G(rom the list of matches.)-2.5 E F2(HISTCONTR)108 552 Q(OL)-.3 E F0
+2.653(Ac)144 564 S .153(olon-separated list of v)-2.653 F .153
+(alues controlling ho)-.25 F 2.653(wc)-.25 G .153(ommands are sa)-2.653
+F -.15(ve)-.2 G 2.653(do).15 G 2.653(nt)-2.653 G .153(he history list.)
+-2.653 F .154(If the list)5.153 F .49(of v)144 576 R .49(alues includes)
+-.25 F F5(ignor)3 E(espace)-.37 E F0 2.99(,l).18 G .49(ines which be)
+-2.99 F .49(gin with a)-.15 F F2(space)2.99 E F0 .49
(character are not sa)2.99 F -.15(ve)-.2 G 2.99(di).15 G 2.99(nt)-2.99 G
-.49(he his-)-2.99 F .558(tory list.)144 276 R 3.058(Av)5.558 G .558
-(alue of)-3.308 F F5(ignor)3.068 E(edups)-.37 E F0 .558
-(causes lines matching the pre)3.328 F .557
-(vious history entry to not be sa)-.25 F -.15(ve)-.2 G(d.).15 E 2.925
-(Av)144 288 S .425(alue of)-3.175 F F5(ignor)2.935 E(eboth)-.37 E F0
-.426(is shorthand for)3.205 F F5(ignor)2.926 E(espace)-.37 E F0(and)
-2.926 E F5(ignor)2.926 E(edups)-.37 E F0 5.426(.A)C -.25(va)-2.5 G .426
-(lue of).25 F F5(er)3.116 E(asedups)-.15 E F0(causes)3.196 E .699
-(all pre)144 300 R .698
+.49(he his-)-2.99 F .557(tory list.)144 588 R 3.057(Av)5.557 G .557
+(alue of)-3.307 F F5(ignor)3.067 E(edups)-.37 E F0 .557
+(causes lines matching the pre)3.327 F .558
+(vious history entry to not be sa)-.25 F -.15(ve)-.2 G(d.).15 E 2.926
+(Av)144 600 S .426(alue of)-3.176 F F5(ignor)2.936 E(eboth)-.37 E F0
+.426(is shorthand for)3.206 F F5(ignor)2.926 E(espace)-.37 E F0(and)
+2.926 E F5(ignor)2.926 E(edups)-.37 E F0 5.426(.A)C -.25(va)-2.501 G
+.425(lue of).25 F F5(er)3.115 E(asedups)-.15 E F0(causes)3.195 E .698
+(all pre)144 612 R .698
(vious lines matching the current line to be remo)-.25 F -.15(ve)-.15 G
-3.198(df).15 G .698(rom the history list before that line is)-3.198 F
-(sa)144 312 Q -.15(ve)-.2 G 2.763(d. An).15 F 2.763(yv)-.15 G .263
-(alue not in the abo)-3.013 F .563 -.15(ve l)-.15 H .263
-(ist is ignored.).15 F(If)5.263 E F2(HISTCONTR)2.763 E(OL)-.27 E F0 .264
-(is unset, or does not include)2.513 F 2.942(av)144 324 S .442(alid v)
--3.192 F .442(alue, all lines read by the shell parser are sa)-.25 F
--.15(ve)-.2 G 2.941(do).15 G 2.941(nt)-2.941 G .441
-(he history list, subject to the v)-2.941 F .441(alue of)-.25 F F2
-(HISTIGNORE)144 336 Q F4(.)A F0 1.981(The second and subsequent lines o\
-f a multi-line compound command are not)6.481 F
-(tested, and are added to the history re)144 348 Q -.05(ga)-.15 G
-(rdless of the v).05 E(alue of)-.25 E F2(HISTCONTR)2.5 E(OL)-.27 E F4(.)
-A F1(HISTFILE)108 360 Q F0 .181
-(The name of the \214le in which command history is sa)144 372 R -.15
-(ve)-.2 G 2.681(d\().15 G(see)-2.681 E F2(HIST)2.681 E(OR)-.162 E(Y)
--.315 E F0(belo)2.431 E 2.681(w\). The)-.25 F(def)2.681 E .181(ault v)
--.1 F(alue)-.25 E(is)144 384 Q F5(~/.bash_history)2.5 E F0 5(.I)C 2.5
+3.198(df).15 G .699(rom the history list before that line is)-3.198 F
+(sa)144 624 Q -.15(ve)-.2 G 2.764(d. An).15 F 2.764(yv)-.15 G .264
+(alue not in the abo)-3.014 F .563 -.15(ve l)-.15 H .263
+(ist is ignored.).15 F(If)5.263 E F3(HISTCONTR)2.763 E(OL)-.27 E F0 .263
+(is unset, or does not include)2.513 F 2.941(av)144 636 S .441(alid v)
+-3.191 F .441(alue, all lines read by the shell parser are sa)-.25 F
+-.15(ve)-.2 G 2.942(do).15 G 2.942(nt)-2.942 G .442
+(he history list, subject to the v)-2.942 F .442(alue of)-.25 F F3
+(HISTIGNORE)144 648 Q F4(.)A F0 1.981(The second and subsequent lines o\
+f a multi-line compound command are not)6.482 F
+(tested, and are added to the history re)144 660 Q -.05(ga)-.15 G
+(rdless of the v).05 E(alue of)-.25 E F3(HISTCONTR)2.5 E(OL)-.27 E F4(.)
+A F2(HISTFILE)108 672 Q F0 .181
+(The name of the \214le in which command history is sa)144 684 R -.15
+(ve)-.2 G 2.681(d\().15 G(see)-2.681 E F3(HIST)2.681 E(OR)-.162 E(Y)
+-.315 E F0(belo)2.431 E 2.682(w\). The)-.25 F(def)2.682 E .182(ault v)
+-.1 F(alue)-.25 E(is)144 696 Q F5(~/.bash_history)2.5 E F0 5(.I)C 2.5
(fu)-5 G(nset, the command history is not sa)-2.5 E -.15(ve)-.2 G 2.5
-(dw).15 G(hen a shell e)-2.5 E(xits.)-.15 E F1(HISTFILESIZE)108 396 Q F0
-1.622(The maximum number of lines contained in the history \214le.)144
-408 R 1.623(When this v)6.623 F 1.623(ariable is assigned a)-.25 F -.25
-(va)144 420 S .125(lue, the history \214le is truncated, if necessary)
-.25 F 2.625(,t)-.65 G 2.624(oc)-2.625 G .124
-(ontain no more than that number of lines by re-)-2.624 F(mo)144 432 Q
-.065(ving the oldest entries.)-.15 F .066(The history \214le is also tr\
-uncated to this size after writing it when a shell)5.065 F -.15(ex)144
-444 S 2.928(its. If).15 F .428(the v)2.928 F .428
-(alue is 0, the history \214le is truncated to zero size.)-.25 F .427
-(Non-numeric v)5.427 F .427(alues and numeric)-.25 F -.25(va)144 456 S
+(dw).15 G(hen a shell e)-2.5 E(xits.)-.15 E(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(16)185.115 E 0 Cg EP
+%%Page: 17 17
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(HISTFILESIZE)108 84 Q F0 1.623
+(The maximum number of lines contained in the history \214le.)144 96 R
+1.622(When this v)6.623 F 1.622(ariable is assigned a)-.25 F -.25(va)144
+108 S .124(lue, the history \214le is truncated, if necessary).25 F
+2.624(,t)-.65 G 2.624(oc)-2.624 G .125
+(ontain no more than that number of lines by re-)-2.624 F(mo)144 120 Q
+.066(ving the oldest entries.)-.15 F .065(The history \214le is also tr\
+uncated to this size after writing it when a shell)5.066 F -.15(ex)144
+132 S 2.927(its. If).15 F .427(the v)2.927 F .428
+(alue is 0, the history \214le is truncated to zero size.)-.25 F .428
+(Non-numeric v)5.428 F .428(alues and numeric)-.25 F -.25(va)144 144 S
.152(lues less than zero inhibit truncation.).25 F .152
(The shell sets the def)5.152 F .152(ault v)-.1 F .152(alue to the v)
--.25 F .152(alue of)-.25 F F1(HISTSIZE)2.652 E F0(after reading an)144
-468 Q 2.5(ys)-.15 G(tartup \214les.)-2.5 E F1(HISTIGNORE)108 480 Q F0
-2.658(Ac)144 492 S .158(olon-separated list of patterns used to decide \
-which command lines should be sa)-2.658 F -.15(ve)-.2 G 2.657(do).15 G
-2.657(nt)-2.657 G .157(he his-)-2.657 F .707(tory list.)144 504 R .707
-(Each pattern is anchored at the be)5.707 F .708
-(ginning of the line and must match the complete line)-.15 F .626
-(\(no implicit `)144 516 R F1(*)A F0 3.126('i)C 3.126(sa)-3.126 G 3.126
-(ppended\). Each)-3.126 F .626(pattern is tested ag)3.126 F .625
-(ainst the line after the checks speci\214ed by)-.05 F F2(HISTCONTR)144
-528 Q(OL)-.27 E F0 1.793(are applied.)4.043 F 1.793
+-.25 F .151(alue of)-.25 F F1(HISTSIZE)2.651 E F0(after reading an)144
+156 Q 2.5(ys)-.15 G(tartup \214les.)-2.5 E F1(HISTIGNORE)108 168 Q F0
+2.657(Ac)144 180 S .157(olon-separated list of patterns used to decide \
+which command lines should be sa)-2.657 F -.15(ve)-.2 G 2.658(do).15 G
+2.658(nt)-2.658 G .158(he his-)-2.658 F .708(tory list.)144 192 R .708
+(Each pattern is anchored at the be)5.708 F .707
+(ginning of the line and must match the complete line)-.15 F .625
+(\(no implicit `)144 204 R F1(*)A F0 3.125('i)C 3.125(sa)-3.125 G 3.125
+(ppended\). Each)-3.125 F .626(pattern is tested ag)3.125 F .626
+(ainst the line after the checks speci\214ed by)-.05 F/F2 9/Times-Bold@0
+SF(HISTCONTR)144 216 Q(OL)-.27 E F0 1.793(are applied.)4.043 F 1.793
(In addition to the normal shell pattern matching characters, `)6.793 F
-F1(&)A F0(')A 1.44(matches the pre)144 540 R 1.44(vious history line.)
+F1(&)A F0(')A 1.44(matches the pre)144 228 R 1.44(vious history line.)
-.25 F(`)6.44 E F1(&)A F0 3.94('m)C 1.44
(ay be escaped using a backslash; the backslash is re-)-3.94 F(mo)144
-552 Q -.15(ve)-.15 G 3.95(db).15 G 1.45(efore attempting a match.)-3.95
+240 Q -.15(ve)-.15 G 3.95(db).15 G 1.45(efore attempting a match.)-3.95
F 1.45(The second and subsequent lines of a multi-line compound)6.45 F
-1.269(command are not tested, and are added to the history re)144 564 R
+1.269(command are not tested, and are added to the history re)144 252 R
-.05(ga)-.15 G 1.269(rdless of the v).05 F 1.269(alue of)-.25 F F2
-(HISTIGNORE)3.769 E F4(.)A F0
-(The pattern matching honors the setting of the)144 576 Q F1(extglob)2.5
-E F0(shell option.)2.5 E F1(HISTSIZE)108 588 Q F0 1.387
-(The number of commands to remember in the command history \(see)144 600
+(HISTIGNORE)3.77 E/F3 9/Times-Roman@0 SF(.)A F0
+(The pattern matching honors the setting of the)144 264 Q F1(extglob)2.5
+E F0(shell option.)2.5 E F1(HISTSIZE)108 276 Q F0 1.387
+(The number of commands to remember in the command history \(see)144 288
R F2(HIST)3.887 E(OR)-.162 E(Y)-.315 E F0(belo)3.637 E 3.887(w\). If)
--.25 F(the)3.888 E -.25(va)144 612 S .413(lue is 0, commands are not sa)
+-.25 F(the)3.887 E -.25(va)144 300 S .412(lue is 0, commands are not sa)
.25 F -.15(ve)-.2 G 2.913(di).15 G 2.913(nt)-2.913 G .413
-(he history list.)-2.913 F .413(Numeric v)5.413 F .412
-(alues less than zero result in e)-.25 F(v-)-.25 E .343
-(ery command being sa)144 624 R -.15(ve)-.2 G 2.843(do).15 G 2.843(nt)
--2.843 G .343(he history list \(there is no limit\).)-2.843 F .344
-(The shell sets the def)5.343 F .344(ault v)-.1 F .344(alue to)-.25 F
-(500 after reading an)144 636 Q 2.5(ys)-.15 G(tartup \214les.)-2.5 E F1
-(HISTTIMEFORMA)108 648 Q(T)-.95 E F0 .952(If this v)144 660 R .952
-(ariable is set and not null, its v)-.25 F .951
-(alue is used as a format string for)-.25 F F5(strftime)3.451 E F0 .951
-(\(3\) to print the)B .672
-(time stamp associated with each history entry displayed by the)144 672
-R F1(history)3.173 E F0 -.2(bu)3.173 G 3.173(iltin. If).2 F .673(this v)
-3.173 F .673(ariable is)-.25 F .144
-(set, time stamps are written to the history \214le so the)144 684 R
+(he history list.)-2.913 F .413(Numeric v)5.413 F .413
+(alues less than zero result in e)-.25 F(v-)-.25 E .344
+(ery command being sa)144 312 R -.15(ve)-.2 G 2.844(do).15 G 2.844(nt)
+-2.844 G .343(he history list \(there is no limit\).)-2.844 F .343
+(The shell sets the def)5.343 F .343(ault v)-.1 F .343(alue to)-.25 F
+(500 after reading an)144 324 Q 2.5(ys)-.15 G(tartup \214les.)-2.5 E F1
+(HISTTIMEFORMA)108 336 Q(T)-.95 E F0 .951(If this v)144 348 R .951
+(ariable is set and not null, its v)-.25 F .952
+(alue is used as a format string for)-.25 F/F4 10/Times-Italic@0 SF
+(strftime)3.452 E F0 .952(\(3\) to print the)B .673
+(time stamp associated with each history entry displayed by the)144 360
+R F1(history)3.173 E F0 -.2(bu)3.172 G 3.172(iltin. If).2 F .672(this v)
+3.172 F .672(ariable is)-.25 F .144
+(set, time stamps are written to the history \214le so the)144 372 R
2.644(ym)-.15 G .144(ay be preserv)-2.644 F .144
-(ed across shell sessions.)-.15 F(This)5.144 E(uses the history comment\
- character to distinguish timestamps from other history lines.)144 696 Q
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(16)190.395 E 0 Cg EP
-%%Page: 17 17
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(HOME)108 84 Q F0 1.27
-(The home directory of the current user; the def)144 96 R 1.27(ault ar)
+(ed across shell sessions.)-.15 F(This)5.145 E(uses the history comment\
+ character to distinguish timestamps from other history lines.)144 384 Q
+F1(HOME)108 396 Q F0 1.27
+(The home directory of the current user; the def)144 408 R 1.27(ault ar)
-.1 F 1.27(gument for the)-.18 F F1(cd)3.77 E F0 -.2(bu)3.77 G 1.27
-(iltin command.).2 F(The)6.27 E -.25(va)144 108 S(lue of this v).25 E
+(iltin command.).2 F(The)6.27 E -.25(va)144 420 S(lue of this v).25 E
(ariable is also used when performing tilde e)-.25 E(xpansion.)-.15 E F1
-(HOSTFILE)108 120 Q F0 1.015
-(Contains the name of a \214le in the same format as)144 132 R/F2 10
-/Times-Italic@0 SF(/etc/hosts)5.181 E F0 1.015
-(that should be read when the shell)5.181 F .55
-(needs to complete a hostname.)144 144 R .551
+(HOSTFILE)108 432 Q F0 1.015
+(Contains the name of a \214le in the same format as)144 444 R F4
+(/etc/hosts)5.181 E F0 1.015(that should be read when the shell)5.181 F
+.551(needs to complete a hostname.)144 456 R .551
(The list of possible hostname completions may be changed while)5.551 F
-1.059(the shell is running; the ne)144 156 R 1.059
-(xt time hostname completion is attempted after the v)-.15 F 1.058
-(alue is changed,)-.25 F F1(bash)144 168 Q F0 .138
-(adds the contents of the ne)2.638 F 2.638<778c>-.25 G .138(le to the e)
--2.638 F .138(xisting list.)-.15 F(If)5.138 E/F3 9/Times-Bold@0 SF
-(HOSTFILE)2.638 E F0 .138(is set, b)2.388 F .139(ut has no v)-.2 F .139
-(alue, or)-.25 F .518(does not name a readable \214le,)144 180 R F1
-(bash)3.018 E F0 .518(attempts to read)3.018 F F2(/etc/hosts)4.683 E F0
-.517(to obtain the list of possible host-)4.683 F(name completions.)144
-192 Q(When)5 E F3(HOSTFILE)2.5 E F0
-(is unset, the hostname list is cleared.)2.25 E F1(IFS)108 204 Q F0(The)
-144 204 Q F2 .555(Internal F)3.635 F .555(ield Separ)-.45 F(ator)-.15 E
-F0 .555(that is used for w)3.785 F .556(ord splitting after e)-.1 F .556
-(xpansion and to split lines into)-.15 F -.1(wo)144 216 S(rds with the)
-.1 E F1 -.18(re)2.5 G(ad).18 E F0 -.2(bu)2.5 G(iltin command.).2 E
-(The def)5 E(ault v)-.1 E(alue is `)-.25 E(`<space><tab><ne)-.74 E
-(wline>')-.25 E('.)-.74 E F1(IGNOREEOF)108 228 Q F0 .503
-(Controls the action of an interacti)144 240 R .803 -.15(ve s)-.25 H
-.503(hell on receipt of an).15 F F3(EOF)3.003 E F0 .503
-(character as the sole input.)2.753 F .503(If set,)5.503 F .426(the v)
-144 252 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F3
+1.058(the shell is running; the ne)144 468 R 1.059
+(xt time hostname completion is attempted after the v)-.15 F 1.059
+(alue is changed,)-.25 F F1(bash)144 480 Q F0 .138
+(adds the contents of the ne)2.639 F 2.638<778c>-.25 G .138(le to the e)
+-2.638 F .138(xisting list.)-.15 F(If)5.138 E F2(HOSTFILE)2.638 E F0
+.138(is set, b)2.388 F .138(ut has no v)-.2 F .138(alue, or)-.25 F .517
+(does not name a readable \214le,)144 492 R F1(bash)3.017 E F0 .517
+(attempts to read)3.017 F F4(/etc/hosts)4.684 E F0 .518
+(to obtain the list of possible host-)4.684 F(name completions.)144 504
+Q(When)5 E F2(HOSTFILE)2.5 E F0(is unset, the hostname list is cleared.)
+2.25 E F1(IFS)108 516 Q F0(The)144 516 Q F4 .556(Internal F)3.636 F .556
+(ield Separ)-.45 F(ator)-.15 E F0 .556(that is used for w)3.786 F .556
+(ord splitting after e)-.1 F .555(xpansion and to split lines into)-.15
+F -.1(wo)144 528 S(rds with the).1 E F1 -.18(re)2.5 G(ad).18 E F0 -.2
+(bu)2.5 G(iltin command.).2 E(The def)5 E(ault v)-.1 E(alue is `)-.25 E
+(`<space><tab><ne)-.74 E(wline>')-.25 E('.)-.74 E F1(IGNOREEOF)108 540 Q
+F0 .503(Controls the action of an interacti)144 552 R .803 -.15(ve s)
+-.25 H .503(hell on receipt of an).15 F F2(EOF)3.003 E F0 .503
+(character as the sole input.)2.753 F .504(If set,)5.504 F .426(the v)
+144 564 R .426(alue is the number of consecuti)-.25 F -.15(ve)-.25 G F2
(EOF)3.076 E F0 .426
-(characters which must be typed as the \214rst characters)2.676 F .303
-(on an input line before)144 264 R F1(bash)2.802 E F0 -.15(ex)2.802 G
+(characters which must be typed as the \214rst characters)2.676 F .302
+(on an input line before)144 576 R F1(bash)2.802 E F0 -.15(ex)2.802 G
2.802(its. If).15 F .302(the v)2.802 F .302(ariable e)-.25 F .302
(xists b)-.15 F .302(ut does not ha)-.2 F .602 -.15(ve a n)-.2 H .302
-(umeric v).15 F .302(alue, or has)-.25 F(no v)144 276 Q(alue, the def)
+(umeric v).15 F .303(alue, or has)-.25 F(no v)144 588 Q(alue, the def)
-.25 E(ault v)-.1 E(alue is 10.)-.25 E(If it does not e)5 E(xist,)-.15 E
-F3(EOF)2.5 E F0(signi\214es the end of input to the shell.)2.25 E F1
-(INPUTRC)108 288 Q F0 .26(The \214lename for the)144 300 R F1 -.18(re)
-2.76 G(adline).18 E F0 .26(startup \214le, o)2.76 F -.15(ve)-.15 G .26
-(rriding the def).15 F .261(ault of)-.1 F F2(~/.inputr)4.427 E(c)-.37 E
-F0(\(see)4.427 E F3(READLINE)2.761 E F0(be-)2.511 E(lo)144 312 Q(w\).)
--.25 E F1(INSIDE_EMA)108 324 Q(CS)-.55 E F0 .034(If this v)144 336 R
-.034(ariable appears in the en)-.25 F .034
-(vironment when the shell starts,)-.4 F F1(bash)2.533 E F0 .033
-(assumes that it is running in-)2.533 F(side an Emacs shell b)144 348 Q
+F2(EOF)2.5 E F0(signi\214es the end of input to the shell.)2.25 E F1
+(INPUTRC)108 600 Q F0 .261(The \214lename for the)144 612 R F1 -.18(re)
+2.761 G(adline).18 E F0 .261(startup \214le, o)2.761 F -.15(ve)-.15 G
+.26(rriding the def).15 F .26(ault of)-.1 F F4(~/.inputr)4.426 E(c)-.37
+E F0(\(see)4.426 E F2(READLINE)2.76 E F0(be-)2.51 E(lo)144 624 Q(w\).)
+-.25 E F1(INSIDE_EMA)108 636 Q(CS)-.55 E F0 .033(If this v)144 648 R
+.033(ariable appears in the en)-.25 F .033
+(vironment when the shell starts,)-.4 F F1(bash)2.534 E F0 .034
+(assumes that it is running in-)2.534 F(side an Emacs shell b)144 660 Q
(uf)-.2 E(fer and may disable line editing, depending on the v)-.25 E
-(alue of)-.25 E F1(TERM)2.5 E F0(.)A F1(LANG)108 360 Q F0 1.239
-(Used to determine the locale cate)144 360 R 1.239(gory for an)-.15 F
-3.739(yc)-.15 G(ate)-3.739 E 1.24
+(alue of)-.25 E F1(TERM)2.5 E F0(.)A F1(LANG)108 672 Q F0 1.24
+(Used to determine the locale cate)144 672 R 1.239(gory for an)-.15 F
+3.739(yc)-.15 G(ate)-3.739 E 1.239
(gory not speci\214cally selected with a v)-.15 F(ariable)-.25 E
-(starting with)144 372 Q F1(LC_)2.5 E F0(.)A F1(LC_ALL)108 384 Q F0 .974
-(This v)144 396 R .974(ariable o)-.25 F -.15(ve)-.15 G .974
-(rrides the v).15 F .973(alue of)-.25 F F3(LANG)3.473 E F0 .973(and an)
+(starting with)144 684 Q F1(LC_)2.5 E F0(.)A F1(LC_ALL)108 696 Q F0 .973
+(This v)144 708 R .973(ariable o)-.25 F -.15(ve)-.15 G .973
+(rrides the v).15 F .973(alue of)-.25 F F2(LANG)3.473 E F0 .973(and an)
3.223 F 3.473(yo)-.15 G(ther)-3.473 E F1(LC_)3.473 E F0 -.25(va)3.473 G
-.973(riable specifying a locale cate-).25 F(gory)144 408 Q(.)-.65 E F1
-(LC_COLLA)108 420 Q(TE)-.95 E F0 .411(This v)144 432 R .412(ariable det\
+.974(riable specifying a locale cate-).25 F(gory)144 720 Q(.)-.65 E
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(17)185.115 E 0 Cg EP
+%%Page: 18 18
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(LC_COLLA)108 84 Q(TE)-.95 E F0 .412(This v)144 96 R .412(ariable det\
ermines the collation order used when sorting the results of pathname e)
--.25 F(xpansion,)-.15 E 1.465(and determines the beha)144 444 R 1.465
-(vior of range e)-.2 F 1.464(xpressions, equi)-.15 F -.25(va)-.25 G
-1.464(lence classes, and collating sequences).25 F(within pathname e)144
-456 Q(xpansion and pattern matching.)-.15 E F1(LC_CTYPE)108 468 Q F0
-1.935(This v)144 480 R 1.936
+-.25 F(xpansion,)-.15 E 1.464(and determines the beha)144 108 R 1.464
+(vior of range e)-.2 F 1.465(xpressions, equi)-.15 F -.25(va)-.25 G
+1.465(lence classes, and collating sequences).25 F(within pathname e)144
+120 Q(xpansion and pattern matching.)-.15 E F1(LC_CTYPE)108 132 Q F0
+1.936(This v)144 144 R 1.936
(ariable determines the interpretation of characters and the beha)-.25 F
-1.936(vior of character classes)-.2 F(within pathname e)144 492 Q
-(xpansion and pattern matching.)-.15 E F1(LC_MESSA)108 504 Q(GES)-.55 E
-F0(This v)144 516 Q(ariable determines the locale used to translate dou\
+1.935(vior of character classes)-.2 F(within pathname e)144 156 Q
+(xpansion and pattern matching.)-.15 E F1(LC_MESSA)108 168 Q(GES)-.55 E
+F0(This v)144 180 Q(ariable determines the locale used to translate dou\
ble-quoted strings preceded by a)-.25 E F1($)2.5 E F0(.)A F1(LC_NUMERIC)
-108 528 Q F0(This v)144 540 Q(ariable determines the locale cate)-.25 E
-(gory used for number formatting.)-.15 E F1(LC_TIME)108 552 Q F0(This v)
-144 564 Q(ariable determines the locale cate)-.25 E
-(gory used for data and time formatting.)-.15 E F1(LINES)108 576 Q F0
-.055(Used by the)144 576 R F1(select)2.555 E F0 .054(compound command t\
-o determine the column length for printing selection lists.)2.555 F .264
-(Automatically set if the)144 588 R F1(checkwinsize)2.764 E F0 .264
-(option is enabled or in an interacti)2.764 F .565 -.15(ve s)-.25 H .265
-(hell upon receipt of a).15 F F3(SIGWINCH)144 600 Q/F4 9/Times-Roman@0
-SF(.)A F1(MAIL)108 612 Q F0 .422
-(If this parameter is set to a \214le or directory name and the)144 612
-R F3(MAILP)2.921 E -.855(AT)-.666 G(H).855 E F0 -.25(va)2.671 G .421
-(riable is not set,).25 F F1(bash)2.921 E F0(in-)2.921 E
-(forms the user of the arri)144 624 Q -.25(va)-.25 G 2.5(lo).25 G 2.5
+108 192 Q F0(This v)144 204 Q(ariable determines the locale cate)-.25 E
+(gory used for number formatting.)-.15 E F1(LC_TIME)108 216 Q F0(This v)
+144 228 Q(ariable determines the locale cate)-.25 E
+(gory used for data and time formatting.)-.15 E F1(LINES)108 240 Q F0
+.054(Used by the)144 240 R F1(select)2.554 E F0 .054(compound command t\
+o determine the column length for printing selection lists.)2.554 F .265
+(Automatically set if the)144 252 R F1(checkwinsize)2.765 E F0 .264
+(option is enabled or in an interacti)2.765 F .564 -.15(ve s)-.25 H .264
+(hell upon receipt of a).15 F/F2 9/Times-Bold@0 SF(SIGWINCH)144 264 Q/F3
+9/Times-Roman@0 SF(.)A F1(MAIL)108 276 Q F0 .421
+(If this parameter is set to a \214le or directory name and the)144 276
+R F2(MAILP)2.922 E -.855(AT)-.666 G(H).855 E F0 -.25(va)2.672 G .422
+(riable is not set,).25 F F1(bash)2.922 E F0(in-)2.922 E
+(forms the user of the arri)144 288 Q -.25(va)-.25 G 2.5(lo).25 G 2.5
(fm)-2.5 G(ail in the speci\214ed \214le or Maildir)-2.5 E
-(-format directory)-.2 E(.)-.65 E F1(MAILCHECK)108 636 Q F0 .098
-(Speci\214es ho)144 648 R 2.598(wo)-.25 G .098(ften \(in seconds\))
--2.598 F F1(bash)2.598 E F0 .098(checks for mail.)2.598 F .098(The def)
-5.098 F .098(ault is 60 seconds.)-.1 F .099(When it is time)5.099 F .224
+(-format directory)-.2 E(.)-.65 E F1(MAILCHECK)108 300 Q F0 .099
+(Speci\214es ho)144 312 R 2.599(wo)-.25 G .099(ften \(in seconds\))
+-2.599 F F1(bash)2.598 E F0 .098(checks for mail.)2.598 F .098(The def)
+5.098 F .098(ault is 60 seconds.)-.1 F .098(When it is time)5.098 F .223
(to check for mail, the shell does so before displaying the primary pro\
-mpt.)144 660 R .223(If this v)5.223 F .223(ariable is unset,)-.25 F
-(or set to a v)144 672 Q(alue that is not a number greater than or equa\
-l to zero, the shell disables mail checking.)-.25 E F1(MAILP)108 684 Q
--.95(AT)-.74 G(H).95 E F0 2.99(Ac)144 696 S .49
+mpt.)144 324 R .224(If this v)5.224 F .224(ariable is unset,)-.25 F
+(or set to a v)144 336 Q(alue that is not a number greater than or equa\
+l to zero, the shell disables mail checking.)-.25 E F1(MAILP)108 348 Q
+-.95(AT)-.74 G(H).95 E F0 2.99(Ac)144 360 S .49
(olon-separated list of \214lenames to be check)-2.99 F .49
(ed for mail.)-.1 F .49(The message to be printed when mail)5.49 F(arri)
-144 708 Q -.15(ve)-.25 G 2.62(si).15 G 2.62(nap)-2.62 G .12(articular \
+144 372 Q -.15(ve)-.25 G 2.62(si).15 G 2.62(nap)-2.62 G .12(articular \
\214le may be speci\214ed by separating the \214lename from the message\
- with a `?'.)-2.62 F(When used in the te)144 720 Q(xt of the message,)
+ with a `?'.)-2.62 F(When used in the te)144 384 Q(xt of the message,)
-.15 E F1($_)2.5 E F0 -.15(ex)2.5 G
-(pands to the name of the current mail\214le.).15 E(Example:)5 E
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(17)190.395 E 0 Cg EP
-%%Page: 18 18
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(MAILP)144 84 Q -.95(AT)-.74 G(H).95 E F0(=\010/v)A(ar/mail/bfox?"Y)
+(pands to the name of the current mail\214le.).15 E(Example:)5 E F1
+(MAILP)144 396 Q -.95(AT)-.74 G(H).95 E F0(=\010/v)A(ar/mail/bfox?"Y)
-.25 E(ou ha)-1.1 E .3 -.15(ve m)-.2 H
-(ail":~/shell\255mail?"$_ has mail!"\010).15 E F1(Bash)144 96 Q F0 .015
+(ail":~/shell\255mail?"$_ has mail!"\010).15 E F1(Bash)144 408 Q F0 .015
(can be con\214gured to supply a def)2.515 F .015(ault v)-.1 F .015
(alue for this v)-.25 F .015(ariable \(there is no v)-.25 F .015
(alue by def)-.25 F .015(ault\), b)-.1 F(ut)-.2 E(the location of the u\
-ser mail \214les that it uses is system dependent \(e.g., /v)144 108 Q
-(ar/mail/)-.25 E F1($USER)A F0(\).)A F1(OPTERR)108 120 Q F0 .39
-(If set to the v)144 132 R .39(alue 1,)-.25 F F1(bash)2.89 E F0 .389
-(displays error messages generated by the)2.889 F F1(getopts)2.889 E F0
--.2(bu)2.889 G .389(iltin command \(see).2 F/F2 9/Times-Bold@0 SF .359
-(SHELL B)144 144 R(UIL)-.09 E .359(TIN COMMANDS)-.828 F F0(belo)2.609 E
-(w\).)-.25 E F2(OPTERR)5.359 E F0 .36
-(is initialized to 1 each time the shell is in)2.609 F -.2(vo)-.4 G -.1
-(ke).2 G(d).1 E(or a shell script is e)144 156 Q -.15(xe)-.15 G(cuted.)
-.15 E F1 -.74(PA)108 168 S(TH)-.21 E F0 .588
-(The search path for commands.)144 168 R .587
+ser mail \214les that it uses is system dependent \(e.g., /v)144 420 Q
+(ar/mail/)-.25 E F1($USER)A F0(\).)A F1(OPTERR)108 432 Q F0 .389
+(If set to the v)144 444 R .389(alue 1,)-.25 F F1(bash)2.889 E F0 .389
+(displays error messages generated by the)2.889 F F1(getopts)2.89 E F0
+-.2(bu)2.89 G .39(iltin command \(see).2 F F2 .36(SHELL B)144 456 R(UIL)
+-.09 E .36(TIN COMMANDS)-.828 F F0(belo)2.61 E(w\).)-.25 E F2(OPTERR)
+5.36 E F0 .359(is initialized to 1 each time the shell is in)2.61 F -.2
+(vo)-.4 G -.1(ke).2 G(d).1 E(or a shell script is e)144 468 Q -.15(xe)
+-.15 G(cuted.).15 E F1 -.74(PA)108 480 S(TH)-.21 E F0 .587
+(The search path for commands.)144 480 R .588
(It is a colon-separated list of directories in which the shell looks)
-5.588 F .471(for commands \(see)144 180 R F2 .471(COMMAND EXECUTION)
-2.971 F F0(belo)2.722 E 2.972(w\). A)-.25 F .472
-(zero-length \(null\) directory name in the)2.972 F -.25(va)144 192 S
-.536(lue of).25 F F2 -.666(PA)3.036 G(TH)-.189 E F0 .535
-(indicates the current directory)2.786 F 5.535(.A)-.65 G .535
-(null directory name may appear as tw)-2.5 F 3.035(oa)-.1 G(djacent)
--3.035 E .867(colons, or as an initial or trailing colon.)144 204 R .868
-(The def)5.868 F .868(ault path is system-dependent, and is set by the)
--.1 F(administrator who installs)144 216 Q F1(bash)2.5 E F0 5(.A)C
-(common v)-2.5 E(alue is)-.25 E/F3 10/Courier@0 SF
+5.587 F .472(for commands \(see)144 492 R F2 .472(COMMAND EXECUTION)
+2.972 F F0(belo)2.722 E 2.972(w\). A)-.25 F .471
+(zero-length \(null\) directory name in the)2.972 F -.25(va)144 504 S
+.535(lue of).25 F F2 -.666(PA)3.035 G(TH)-.189 E F0 .535
+(indicates the current directory)2.785 F 5.535(.A)-.65 G .535
+(null directory name may appear as tw)-2.5 F 3.036(oa)-.1 G(djacent)
+-3.036 E .868(colons, or as an initial or trailing colon.)144 516 R .868
+(The def)5.868 F .867(ault path is system-dependent, and is set by the)
+-.1 F(administrator who installs)144 528 Q F1(bash)2.5 E F0 5(.A)C
+(common v)-2.5 E(alue is)-.25 E/F4 10/Courier@0 SF
(/usr/local/bin:/usr/lo-)2.5 E(cal/sbin:/usr/bin:/usr/sbin:/bin:/sbin)
-144 228 Q F0(.)A F1(POSIXL)108 240 Q(Y_CORRECT)-.92 E F0 .471(If this v)
-144 252 R .471(ariable is in the en)-.25 F .471(vironment when)-.4 F F1
-(bash)2.971 E F0 .471(starts, the shell enters)2.971 F/F4 10
-/Times-Italic@0 SF .472(posix mode)2.972 F F0 .472(before reading)2.972
-F .011(the startup \214les, as if the)144 264 R F1(\255\255posix)2.511 E
+144 540 Q F0(.)A F1(POSIXL)108 552 Q(Y_CORRECT)-.92 E F0 .472(If this v)
+144 564 R .472(ariable is in the en)-.25 F .471(vironment when)-.4 F F1
+(bash)2.971 E F0 .471(starts, the shell enters)2.971 F/F5 10
+/Times-Italic@0 SF .471(posix mode)2.971 F F0 .471(before reading)2.971
+F .011(the startup \214les, as if the)144 576 R F1(\255\255posix)2.511 E
F0(in)2.511 E -.2(vo)-.4 G .011(cation option had been supplied.).2 F
-.011(If it is set while the shell is)5.011 F(running,)144 276 Q F1(bash)
-4.497 E F0(enables)4.497 E F4 1.997(posix mode)4.497 F F0 4.497(,a)C
-4.497(si)-4.497 G 4.497(ft)-4.497 G 1.997(he command)-4.497 F F3 1.997
-(set -o posix)4.497 F F0 1.998(had been e)4.497 F -.15(xe)-.15 G(cuted.)
-.15 E(When the shell enters)144 288 Q F4(posix mode)2.5 E F0 2.5(,i)C
+.011(If it is set while the shell is)5.011 F(running,)144 588 Q F1(bash)
+4.498 E F0(enables)4.498 E F5 1.997(posix mode)4.497 F F0 4.497(,a)C
+4.497(si)-4.497 G 4.497(ft)-4.497 G 1.997(he command)-4.497 F F4 1.997
+(set -o posix)4.497 F F0 1.997(had been e)4.497 F -.15(xe)-.15 G(cuted.)
+.15 E(When the shell enters)144 600 Q F5(posix mode)2.5 E F0 2.5(,i)C
2.5(ts)-2.5 G(ets this v)-2.5 E(ariable if it w)-.25 E
-(as not already set.)-.1 E F1(PR)108 300 Q(OMPT_COMMAND)-.3 E F0 .155
-(If this v)144 312 R .155(ariable is set, and is an array)-.25 F 2.655
+(as not already set.)-.1 E F1(PR)108 612 Q(OMPT_COMMAND)-.3 E F0 .155
+(If this v)144 624 R .155(ariable is set, and is an array)-.25 F 2.655
(,t)-.65 G .155(he v)-2.655 F .155(alue of each set element is e)-.25 F
-.15(xe)-.15 G .155(cuted as a command prior).15 F .407
-(to issuing each primary prompt.)144 324 R .407(If this is set b)5.407 F
+(to issuing each primary prompt.)144 636 R .407(If this is set b)5.407 F
.407(ut not an array v)-.2 F .407(ariable, its v)-.25 F .407
-(alue is used as a com-)-.25 F(mand to e)144 336 Q -.15(xe)-.15 G
-(cute instead.).15 E F1(PR)108 348 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 .676
-(If set to a number greater than zero, the v)144 360 R .676
+(alue is used as a com-)-.25 F(mand to e)144 648 Q -.15(xe)-.15 G
+(cute instead.).15 E F1(PR)108 660 Q(OMPT_DIR)-.3 E(TRIM)-.4 E F0 .676
+(If set to a number greater than zero, the v)144 672 R .676
(alue is used as the number of trailing directory compo-)-.25 F .923
-(nents to retain when e)144 372 R .923(xpanding the)-.15 F F1(\\w)3.423
+(nents to retain when e)144 684 R .923(xpanding the)-.15 F F1(\\w)3.423
E F0(and)3.423 E F1(\\W)3.423 E F0 .923(prompt string escapes \(see)
3.423 F F2(PR)3.423 E(OMPTING)-.27 E F0(belo)3.173 E(w\).)-.25 E
-(Characters remo)144 384 Q -.15(ve)-.15 G 2.5(da).15 G
-(re replaced with an ellipsis.)-2.5 E F1(PS0)108 396 Q F0 1.174(The v)
-144 396 R 1.174(alue of this parameter is e)-.25 F 1.174(xpanded \(see)
+(Characters remo)144 696 Q -.15(ve)-.15 G 2.5(da).15 G
+(re replaced with an ellipsis.)-2.5 E F1(PS0)108 708 Q F0 1.174(The v)
+144 708 R 1.174(alue of this parameter is e)-.25 F 1.174(xpanded \(see)
-.15 F F2(PR)3.674 E(OMPTING)-.27 E F0(belo)3.424 E 1.174
(w\) and displayed by interacti)-.25 F -.15(ve)-.25 G
-(shells after reading a command and before the command is e)144 408 Q
--.15(xe)-.15 G(cuted.).15 E F1(PS1)108 420 Q F0 .064(The v)144 420 R
-.065(alue of this parameter is e)-.25 F .065(xpanded \(see)-.15 F F2(PR)
-2.565 E(OMPTING)-.27 E F0(belo)2.315 E .065
-(w\) and used as the primary prompt)-.25 F 2.5(string. The)144 432 R
-(def)2.5 E(ault v)-.1 E(alue is `)-.25 E(`)-.74 E F1(\\s\255\\v\\$)A F0
--.74('')2.5 G(.).74 E F1(PS2)108 444 Q F0 .118(The v)144 444 R .118
-(alue of this parameter is e)-.25 F .118(xpanded as with)-.15 F F2(PS1)
-2.617 E F0 .117(and used as the secondary prompt string.)2.367 F(The)
-5.117 E(def)144 456 Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G
-(.).74 E F1(PS3)108 468 Q F0 1.115(The v)144 468 R 1.115
-(alue of this parameter is used as the prompt for the)-.25 F F1(select)
-3.615 E F0 1.116(command \(see)3.616 F F2 1.116(SHELL GRAM-)3.616 F(MAR)
-144 480 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F1(PS4)108 492 Q F0
-.101(The v)144 492 R .101(alue of this parameter is e)-.25 F .101
-(xpanded as with)-.15 F F2(PS1)2.6 E F0 .1(and the v)2.35 F .1
-(alue is printed before each command)-.25 F F1(bash)144 504 Q F0 .334
-(displays during an e)2.834 F -.15(xe)-.15 G .335(cution trace.).15 F
-.335(The \214rst character of the e)5.335 F .335(xpanded v)-.15 F .335
-(alue of)-.25 F F2(PS4)2.835 E F0 .335(is repli-)2.585 F
-(cated multiple times, as necessary)144 516 Q 2.5(,t)-.65 G 2.5(oi)-2.5
-G(ndicate multiple le)-2.5 E -.15(ve)-.25 G(ls of indirection.).15 E
-(The def)5 E(ault is `)-.1 E(`)-.74 E F1(+)A F0 -.74('')2.5 G(.).74 E F1
-(SHELL)108 528 Q F0 .543(This v)144 540 R .543(ariable e)-.25 F .543
-(xpands to the full pathname to the shell.)-.15 F .542
-(If it is not set when the shell starts,)5.543 F F1(bash)3.042 E F0
-(assigns to it the full pathname of the current user')144 552 Q 2.5(sl)
--.55 G(ogin shell.)-2.5 E F1(TIMEFORMA)108 564 Q(T)-.95 E F0 .826(The v)
-144 576 R .826
-(alue of this parameter is used as a format string specifying ho)-.25 F
-3.327(wt)-.25 G .827(he timing information for)-3.327 F .649
-(pipelines pre\214x)144 588 R .649(ed with the)-.15 F F1(time)3.149 E F0
-(reserv)3.149 E .649(ed w)-.15 F .648(ord should be displayed.)-.1 F
-(The)5.648 E F1(%)3.148 E F0 .648(character introduces)3.148 F .711
-(an escape sequence that is e)144 600 R .711(xpanded to a time v)-.15 F
-.712(alue or other information.)-.25 F .712(The escape sequences)5.712 F
-(and their meanings are as follo)144 612 Q
-(ws; the braces denote optional portions.)-.25 E F1(%%)144 630 Q F0 2.5
-(Al)194 630 S(iteral)-2.5 E F1(%)2.5 E F0(.)A F1(%[)144 642 Q F4(p)A F1
-(][l]R)A F0(The elapsed time in seconds.)194 642 Q F1(%[)144 654 Q F4(p)
-A F1(][l]U)A F0(The number of CPU seconds spent in user mode.)194 654 Q
-F1(%[)144 666 Q F4(p)A F1(][l]S)A F0
-(The number of CPU seconds spent in system mode.)194 666 Q F1(%P)144 678
-Q F0(The CPU percentage, computed as \(%U + %S\) / %R.)194 678 Q .87
-(The optional)144 694.8 R F4(p)3.37 E F0 .87(is a digit specifying the)
-3.37 F F4(pr)3.37 E(ecision)-.37 E F0 3.37(,t)C .87
-(he number of fractional digits after a decimal)-3.37 F 2.525(point. A)
-144 706.8 R -.25(va)2.525 G .025
-(lue of 0 causes no decimal point or fraction to be output.).25 F .026
-(At most three places after the)5.025 F .538
-(decimal point may be speci\214ed; v)144 718.8 R .538(alues of)-.25 F F4
-(p)3.038 E F0 .537(greater than 3 are changed to 3.)3.037 F(If)5.537 E
-F4(p)3.037 E F0 .537(is not speci\214ed,)3.037 F(the v)144 730.8 Q
-(alue 3 is used.)-.25 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E
-(18)190.395 E 0 Cg EP
+(shells after reading a command and before the command is e)144 720 Q
+-.15(xe)-.15 G(cuted.).15 E(GNU Bash 5.2)72 768 Q(2022 September 19)
+135.955 E(18)185.115 E 0 Cg EP
%%Page: 19 19
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .667(The optional)
-144 84 R/F1 10/Times-Bold@0 SF(l)3.167 E F0 .668
-(speci\214es a longer format, including minutes, of the form)3.168 F/F2
-10/Times-Italic@0 SF(MM)3.168 E F0(m)A F2(SS)A F0(.)A F2(FF)A F0 3.168
-(s. The)B -.25(va)3.168 G(lue).25 E(of)144 96 Q F2(p)2.5 E F0
-(determines whether or not the fraction is included.)2.5 E 13.365
-(If this v)144 112.8 R 13.365(ariable is not set,)-.25 F F1(bash)15.865
-E F0 13.364(acts as if it had the v)15.865 F(alue)-.25 E F1($\010\\nr)
-144 124.8 Q(eal\\t%3lR\\nuser\\t%3lU\\nsys\\t%3lS\010)-.18 E F0 7.113
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(PS1)108 84 Q F0 .065(The v)144 84 R .065(alue of this parameter is e)
+-.25 F .065(xpanded \(see)-.15 F/F2 9/Times-Bold@0 SF(PR)2.565 E
+(OMPTING)-.27 E F0(belo)2.315 E .065(w\) and used as the primary prompt)
+-.25 F 2.5(string. The)144 96 R(def)2.5 E(ault v)-.1 E(alue is `)-.25 E
+(`)-.74 E F1(\\s\255\\v\\$)A F0 -.74('')2.5 G(.).74 E F1(PS2)108 108 Q
+F0 .117(The v)144 108 R .117(alue of this parameter is e)-.25 F .117
+(xpanded as with)-.15 F F2(PS1)2.617 E F0 .118
+(and used as the secondary prompt string.)2.368 F(The)5.118 E(def)144
+120 Q(ault is `)-.1 E(`)-.74 E F1(>)A F0 -.74('')2.5 G(.).74 E F1(PS3)
+108 132 Q F0 1.116(The v)144 132 R 1.115
+(alue of this parameter is used as the prompt for the)-.25 F F1(select)
+3.615 E F0 1.115(command \(see)3.615 F F2 1.115(SHELL GRAM-)3.615 F(MAR)
+144 144 Q F0(abo)2.25 E -.15(ve)-.15 G(\).).15 E F1(PS4)108 156 Q F0 .1
+(The v)144 156 R .1(alue of this parameter is e)-.25 F .1
+(xpanded as with)-.15 F F2(PS1)2.6 E F0 .101(and the v)2.35 F .101
+(alue is printed before each command)-.25 F F1(bash)144 168 Q F0 .335
+(displays during an e)2.835 F -.15(xe)-.15 G .335(cution trace.).15 F
+.335(The \214rst character of the e)5.335 F .335(xpanded v)-.15 F .335
+(alue of)-.25 F F2(PS4)2.834 E F0 .334(is repli-)2.584 F
+(cated multiple times, as necessary)144 180 Q 2.5(,t)-.65 G 2.5(oi)-2.5
+G(ndicate multiple le)-2.5 E -.15(ve)-.25 G(ls of indirection.).15 E
+(The def)5 E(ault is `)-.1 E(`)-.74 E F1(+)A F0 -.74('')2.5 G(.).74 E F1
+(SHELL)108 192 Q F0 .542(This v)144 204 R .542(ariable e)-.25 F .542
+(xpands to the full pathname to the shell.)-.15 F .543
+(If it is not set when the shell starts,)5.543 F F1(bash)3.043 E F0
+(assigns to it the full pathname of the current user')144 216 Q 2.5(sl)
+-.55 G(ogin shell.)-2.5 E F1(TIMEFORMA)108 228 Q(T)-.95 E F0 .827(The v)
+144 240 R .826
+(alue of this parameter is used as a format string specifying ho)-.25 F
+3.326(wt)-.25 G .826(he timing information for)-3.326 F .648
+(pipelines pre\214x)144 252 R .648(ed with the)-.15 F F1(time)3.148 E F0
+(reserv)3.148 E .648(ed w)-.15 F .649(ord should be displayed.)-.1 F
+(The)5.649 E F1(%)3.149 E F0 .649(character introduces)3.149 F .712
+(an escape sequence that is e)144 264 R .711(xpanded to a time v)-.15 F
+.711(alue or other information.)-.25 F .711(The escape sequences)5.711 F
+(and their meanings are as follo)144 276 Q
+(ws; the braces denote optional portions.)-.25 E F1(%%)144 294 Q F0 2.5
+(Al)194 294 S(iteral)-2.5 E F1(%)2.5 E F0(.)A F1(%[)144 306 Q/F3 10
+/Times-Italic@0 SF(p)A F1(][l]R)A F0(The elapsed time in seconds.)194
+306 Q F1(%[)144 318 Q F3(p)A F1(][l]U)A F0
+(The number of CPU seconds spent in user mode.)194 318 Q F1(%[)144 330 Q
+F3(p)A F1(][l]S)A F0(The number of CPU seconds spent in system mode.)194
+330 Q F1(%P)144 342 Q F0
+(The CPU percentage, computed as \(%U + %S\) / %R.)194 342 Q .87
+(The optional)144 358.8 R F3(p)3.37 E F0 .87(is a digit specifying the)
+3.37 F F3(pr)3.37 E(ecision)-.37 E F0 3.37(,t)C .87
+(he number of fractional digits after a decimal)-3.37 F 2.526(point. A)
+144 370.8 R -.25(va)2.526 G .025
+(lue of 0 causes no decimal point or fraction to be output.).25 F .025
+(At most three places after the)5.025 F .537
+(decimal point may be speci\214ed; v)144 382.8 R .537(alues of)-.25 F F3
+(p)3.037 E F0 .537(greater than 3 are changed to 3.)3.037 F(If)5.538 E
+F3(p)3.038 E F0 .538(is not speci\214ed,)3.038 F(the v)144 394.8 Q
+(alue 3 is used.)-.25 E .668(The optional)144 411.6 R F1(l)3.168 E F0
+.668(speci\214es a longer format, including minutes, of the form)3.168 F
+F3(MM)3.168 E F0(m)A F3(SS)A F0(.)A F3(FF)A F0 3.167(s. The)B -.25(va)
+3.167 G(lue).25 E(of)144 423.6 Q F3(p)2.5 E F0
+(determines whether or not the fraction is included.)2.5 E 13.364
+(If this v)144 440.4 R 13.364(ariable is not set,)-.25 F F1(bash)15.865
+E F0 13.365(acts as if it had the v)15.865 F(alue)-.25 E F1($\010\\nr)
+144 452.4 Q(eal\\t%3lR\\nuser\\t%3lU\\nsys\\t%3lS\010)-.18 E F0 7.113
(.I)C 4.613(ft)-7.113 G 2.113(he v)-4.613 F 2.113
(alue is null, no timing information is dis-)-.25 F 2.5(played. A)144
-136.8 R(trailing ne)2.5 E
+464.4 R(trailing ne)2.5 E
(wline is added when the format string is displayed.)-.25 E F1(TMOUT)108
-148.8 Q F0 .941(If set to a v)144 160.8 R .941(alue greater than zero,)
--.25 F/F3 9/Times-Bold@0 SF(TMOUT)3.441 E F0 .941(is treated as the def)
-3.191 F .941(ault timeout for the)-.1 F F1 -.18(re)3.441 G(ad).18 E F0
--.2(bu)3.441 G(iltin.).2 E(The)144 172.8 Q F1(select)2.81 E F0 .31
-(command terminates if input does not arri)2.81 F .611 -.15(ve a)-.25 H
-(fter).15 E F3(TMOUT)2.811 E F0 .311(seconds when input is com-)2.561 F
-.886(ing from a terminal.)144 184.8 R .886(In an interacti)5.886 F 1.185
--.15(ve s)-.25 H .885(hell, the v).15 F .885
-(alue is interpreted as the number of seconds to)-.25 F -.1(wa)144 196.8
+476.4 Q F0 .941(If set to a v)144 488.4 R .941(alue greater than zero,)
+-.25 F F2(TMOUT)3.441 E F0 .941(is treated as the def)3.191 F .941
+(ault timeout for the)-.1 F F1 -.18(re)3.441 G(ad).18 E F0 -.2(bu)3.441
+G(iltin.).2 E(The)144 500.4 Q F1(select)2.811 E F0 .311
+(command terminates if input does not arri)2.811 F .61 -.15(ve a)-.25 H
+(fter).15 E F2(TMOUT)2.81 E F0 .31(seconds when input is com-)2.56 F
+.885(ing from a terminal.)144 512.4 R .885(In an interacti)5.885 F 1.185
+-.15(ve s)-.25 H .885(hell, the v).15 F .886
+(alue is interpreted as the number of seconds to)-.25 F -.1(wa)144 524.4
S 1.05(it for a line of input after issuing the primary prompt.).1 F F1
(Bash)6.05 E F0 1.05(terminates after w)3.55 F 1.05(aiting for that)-.1
-F(number of seconds if a complete line of input does not arri)144 208.8
-Q -.15(ve)-.25 G(.).15 E F1(TMPDIR)108 220.8 Q F0 .391(If set,)144 232.8
-R F1(bash)2.891 E F0 .391(uses its v)2.891 F .391
-(alue as the name of a directory in which)-.25 F F1(bash)2.89 E F0 .39
-(creates temporary \214les for the)2.89 F(shell')144 244.8 Q 2.5(su)-.55
-G(se.)-2.5 E F1(auto_r)108 256.8 Q(esume)-.18 E F0 .53(This v)144 268.8
-R .53(ariable controls ho)-.25 F 3.03(wt)-.25 G .531
-(he shell interacts with the user and job control.)-3.03 F .531
-(If this v)5.531 F .531(ariable is set,)-.25 F .539(single w)144 280.8 R
+F(number of seconds if a complete line of input does not arri)144 536.4
+Q -.15(ve)-.25 G(.).15 E F1(TMPDIR)108 548.4 Q F0 .39(If set,)144 560.4
+R F1(bash)2.89 E F0 .39(uses its v)2.89 F .39
+(alue as the name of a directory in which)-.25 F F1(bash)2.891 E F0 .391
+(creates temporary \214les for the)2.891 F(shell')144 572.4 Q 2.5(su)
+-.55 G(se.)-2.5 E F1(auto_r)108 584.4 Q(esume)-.18 E F0 .531(This v)144
+596.4 R .531(ariable controls ho)-.25 F 3.031(wt)-.25 G .531
+(he shell interacts with the user and job control.)-3.031 F .53
+(If this v)5.53 F .53(ariable is set,)-.25 F .538(single w)144 608.4 R
.538(ord simple commands without redirections are treated as candidates\
- for resumption of an)-.1 F -.15(ex)144 292.8 S .366(isting stopped job)
-.15 F 5.366(.T)-.4 G .366(here is no ambiguity allo)-5.366 F .366
-(wed; if there is more than one job be)-.25 F .367(ginning with)-.15 F
-1.125(the string typed, the job most recently accessed is selected.)144
-304.8 R(The)6.125 E F2(name)3.985 E F0 1.124(of a stopped job, in this)
-3.805 F(conte)144 316.8 Q 1.132
+ for resumption of an)-.1 F -.15(ex)144 620.4 S .367(isting stopped job)
+.15 F 5.367(.T)-.4 G .366(here is no ambiguity allo)-5.367 F .366
+(wed; if there is more than one job be)-.25 F .366(ginning with)-.15 F
+1.124(the string typed, the job most recently accessed is selected.)144
+632.4 R(The)6.125 E F3(name)3.985 E F0 1.125(of a stopped job, in this)
+3.805 F(conte)144 644.4 Q 1.133
(xt, is the command line used to start it.)-.15 F 1.133(If set to the v)
-6.133 F(alue)-.25 E F2 -.2(ex)3.633 G(act).2 E F0 3.633(,t).68 G 1.133
-(he string supplied must)-3.633 F .606
-(match the name of a stopped job e)144 328.8 R .606(xactly; if set to)
--.15 F F2(substring)3.445 E F0 3.105(,t).22 G .605
-(he string supplied needs to match a)-3.105 F .884
-(substring of the name of a stopped job)144 340.8 R 5.884(.T)-.4 G(he)
--5.884 E F2(substring)3.724 E F0 -.25(va)3.604 G .885(lue pro).25 F .885
-(vides functionality analogous to)-.15 F(the)144 352.8 Q F1(%?)3.334 E
-F0 .834(job identi\214er \(see)5.834 F F3 .834(JOB CONTR)3.334 F(OL)-.27
+6.133 F(alue)-.25 E F3 -.2(ex)3.633 G(act).2 E F0 3.632(,t).68 G 1.132
+(he string supplied must)-3.632 F .605
+(match the name of a stopped job e)144 656.4 R .606(xactly; if set to)
+-.15 F F3(substring)3.446 E F0 3.106(,t).22 G .606
+(he string supplied needs to match a)-3.106 F .885
+(substring of the name of a stopped job)144 668.4 R 5.884(.T)-.4 G(he)
+-5.884 E F3(substring)3.724 E F0 -.25(va)3.604 G .884(lue pro).25 F .884
+(vides functionality analogous to)-.15 F(the)144 680.4 Q F1(%?)3.333 E
+F0 .833(job identi\214er \(see)5.833 F F2 .834(JOB CONTR)3.334 F(OL)-.27
E F0(belo)3.084 E 3.334(w\). If)-.25 F .834(set to an)3.334 F 3.334(yo)
--.15 G .834(ther v)-3.334 F .833(alue, the supplied string)-.25 F .315
-(must be a pre\214x of a stopped job')144 364.8 R 2.816(sn)-.55 G .316
-(ame; this pro)-2.816 F .316(vides functionality analogous to the)-.15 F
-F1(%)2.816 E F2(string)A F0(job)2.816 E(identi\214er)144 376.8 Q(.)-.55
-E F1(histchars)108 388.8 Q F0 .546(The tw)144 400.8 R 3.046(oo)-.1 G
-3.046(rt)-3.046 G .546(hree characters which control history e)-3.046 F
-.545(xpansion and tok)-.15 F .545(enization \(see)-.1 F F3(HIST)3.045 E
-(OR)-.162 E 2.795(YE)-.315 G(X-)-2.795 E -.666(PA)144 412.8 S(NSION).666
-E F0(belo)2.987 E 3.237(w\). The)-.25 F .737(\214rst character is the)
-3.237 F F2 .737(history e)3.237 F(xpansion)-.2 E F0(character)3.238 E
-3.238(,t)-.4 G .738(he character which sig-)-3.238 F .761
-(nals the start of a history e)144 424.8 R .761(xpansion, normally `)
--.15 F F1(!)A F0 3.261('. The)B .76(second character is the)3.261 F F2
-(quic)3.26 E 3.26(ks)-.2 G(ubstitution)-3.26 E F0(character)144 436.8 Q
-3.476(,w)-.4 G .977(hich is used as shorthand for re-running the pre)
--3.476 F .977(vious command entered, substituting)-.25 F .131
-(one string for another in the command.)144 448.8 R .131(The def)5.131 F
-.131(ault is `)-.1 F F1(^)A F0 2.63('. The)B .13
-(optional third character is the char)2.63 F(-)-.2 E .276(acter which i\
-ndicates that the remainder of the line is a comment when found as the \
-\214rst character)144 460.8 R .46(of a w)144 472.8 R .46
-(ord, normally `)-.1 F F1(#)A F0 2.959('. The)B .459
+-.15 G .834(ther v)-3.334 F .834(alue, the supplied string)-.25 F .316
+(must be a pre\214x of a stopped job')144 692.4 R 2.816(sn)-.55 G .316
+(ame; this pro)-2.816 F .315(vides functionality analogous to the)-.15 F
+F1(%)2.815 E F3(string)A F0(job)2.815 E(identi\214er)144 704.4 Q(.)-.55
+E(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(19)185.115 E 0 Cg EP
+%%Page: 20 20
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(histchars)108 84 Q F0 .545(The tw)144 96 R 3.045(oo)-.1 G 3.045(rt)
+-3.045 G .545(hree characters which control history e)-3.045 F .546
+(xpansion and tok)-.15 F .546(enization \(see)-.1 F/F2 9/Times-Bold@0 SF
+(HIST)3.046 E(OR)-.162 E 2.796(YE)-.315 G(X-)-2.796 E -.666(PA)144 108 S
+(NSION).666 E F0(belo)2.988 E 3.238(w\). The)-.25 F .738
+(\214rst character is the)3.238 F/F3 10/Times-Italic@0 SF .737
+(history e)3.237 F(xpansion)-.2 E F0(character)3.237 E 3.237(,t)-.4 G
+.737(he character which sig-)-3.237 F .76(nals the start of a history e)
+144 120 R .761(xpansion, normally `)-.15 F F1(!)A F0 3.261('. The)B .761
+(second character is the)3.261 F F3(quic)3.261 E 3.261(ks)-.2 G
+(ubstitution)-3.261 E F0(character)144 132 Q 3.477(,w)-.4 G .977
+(hich is used as shorthand for re-running the pre)-3.477 F .976
+(vious command entered, substituting)-.25 F .13
+(one string for another in the command.)144 144 R .131(The def)5.13 F
+.131(ault is `)-.1 F F1(^)A F0 2.631('. The)B .131
+(optional third character is the char)2.631 F(-)-.2 E .276(acter which \
+indicates that the remainder of the line is a comment when found as the\
+ \214rst character)144 156 R .459(of a w)144 168 R .459(ord, normally `)
+-.1 F F1(#)A F0 2.959('. The)B .459
(history comment character causes history substitution to be skipped)
-2.959 F .466(for the remaining w)144 484.8 R .466(ords on the line.)-.1
-F .467(It does not necessarily cause the shell parser to treat the rest)
-5.467 F(of the line as a comment.)144 496.8 Q F1(Arrays)87 513.6 Q(Bash)
-108 525.6 Q F0(pro)3.391 E .891(vides one-dimensional inde)-.15 F -.15
-(xe)-.15 G 3.391(da).15 G .891(nd associati)-3.391 F 1.191 -.15(ve a)
--.25 H .891(rray v).15 F 3.391(ariables. An)-.25 F 3.391(yv)-.15 G .89
-(ariable may be used as an)-3.641 F(inde)108 537.6 Q -.15(xe)-.15 G
-2.573(da).15 G .073(rray; the)-2.573 F F1(declar)2.573 E(e)-.18 E F0 -.2
-(bu)2.573 G .073(iltin will e).2 F .073(xplicitly declare an array)-.15
-F 5.073(.T)-.65 G .074(here is no maximum limit on the size of)-5.073 F
-.329(an array)108 549.6 R 2.829(,n)-.65 G .329(or an)-2.829 F 2.829(yr)
--.15 G .329(equirement that members be inde)-2.829 F -.15(xe)-.15 G
-2.829(do).15 G 2.829(ra)-2.829 G .328(ssigned contiguously)-2.829 F
-5.328(.I)-.65 G(nde)-5.328 E -.15(xe)-.15 G 2.828(da).15 G .328
-(rrays are refer)-2.828 F(-)-.2 E 1.595(enced using inte)108 561.6 R
+2.959 F .467(for the remaining w)144 180 R .467(ords on the line.)-.1 F
+.466(It does not necessarily cause the shell parser to treat the rest)
+5.467 F(of the line as a comment.)144 192 Q F1(Arrays)87 208.8 Q(Bash)
+108 220.8 Q F0(pro)3.39 E .89(vides one-dimensional inde)-.15 F -.15(xe)
+-.15 G 3.39(da).15 G .891(nd associati)-3.39 F 1.191 -.15(ve a)-.25 H
+.891(rray v).15 F 3.391(ariables. An)-.25 F 3.391(yv)-.15 G .891
+(ariable may be used as an)-3.641 F(inde)108 232.8 Q -.15(xe)-.15 G
+2.574(da).15 G .074(rray; the)-2.574 F F1(declar)2.574 E(e)-.18 E F0 -.2
+(bu)2.574 G .074(iltin will e).2 F .073(xplicitly declare an array)-.15
+F 5.073(.T)-.65 G .073(here is no maximum limit on the size of)-5.073 F
+.328(an array)108 244.8 R 2.828(,n)-.65 G .328(or an)-2.828 F 2.828(yr)
+-.15 G .329(equirement that members be inde)-2.828 F -.15(xe)-.15 G
+2.829(do).15 G 2.829(ra)-2.829 G .329(ssigned contiguously)-2.829 F
+5.329(.I)-.65 G(nde)-5.329 E -.15(xe)-.15 G 2.829(da).15 G .329
+(rrays are refer)-2.829 F(-)-.2 E 1.595(enced using inte)108 256.8 R
1.595(gers \(including arithmetic e)-.15 F 1.595
(xpressions\) and are zero-based; associati)-.15 F 1.895 -.15(ve a)-.25
H 1.595(rrays are refer).15 F(-)-.2 E(enced using arbitrary strings.)108
-573.6 Q(Unless otherwise noted, inde)5 E -.15(xe)-.15 G 2.5(da).15 G
+268.8 Q(Unless otherwise noted, inde)5 E -.15(xe)-.15 G 2.5(da).15 G
(rray indices must be non-ne)-2.5 E -.05(ga)-.15 G(ti).05 E .3 -.15
-(ve i)-.25 H(nte).15 E(gers.)-.15 E 2.463(An inde)108 590.4 R -.15(xe)
--.15 G 4.963(da).15 G 2.463(rray is created automatically if an)-4.963 F
-4.963(yv)-.15 G 2.462(ariable is assigned to using the syntax)-5.213 F
-F2(name)4.962 E F0([)A F2(sub-)A(script)108 602.4 Q F0(]=)A F2(value)A
-F0 5.506(.T)C(he)-5.506 E F2(subscript)3.346 E F0 .507
+(ve i)-.25 H(nte).15 E(gers.)-.15 E 2.462(An inde)108 285.6 R -.15(xe)
+-.15 G 4.962(da).15 G 2.462(rray is created automatically if an)-4.962 F
+4.963(yv)-.15 G 2.463(ariable is assigned to using the syntax)-5.213 F
+F3(name)4.963 E F0([)A F3(sub-)A(script)108 297.6 Q F0(]=)A F3(value)A
+F0 5.507(.T)C(he)-5.507 E F3(subscript)3.347 E F0 .507
(is treated as an arithmetic e)3.687 F .507(xpression that must e)-.15 F
--.25(va)-.25 G .507(luate to a number).25 F 5.507(.T)-.55 G 3.007(oe)
--6.307 G(x-)-3.157 E 1.193(plicitly declare an inde)108 614.4 R -.15(xe)
--.15 G 3.693(da).15 G(rray)-3.693 E 3.693(,u)-.65 G(se)-3.693 E F1
-(declar)3.693 E 3.693<65ad>-.18 G(a)-3.693 E F2(name)3.693 E F0(\(see)
-3.692 E F3 1.192(SHELL B)3.692 F(UIL)-.09 E 1.192(TIN COMMANDS)-.828 F
-F0(belo)3.442 E(w\).)-.25 E F1(de-)6.192 E(clar)108 626.4 Q 2.5<65ad>
--.18 G(a)-2.5 E F2(name)2.5 E F1([)A F2(subscript)A F1(])A F0
-(is also accepted; the)2.5 E F2(subscript)2.5 E F0(is ignored.)2.5 E
-(Associati)108 643.2 Q .3 -.15(ve a)-.25 H(rrays are created using).15 E
-F1(declar)2.5 E 2.5<65ad>-.18 G(A)-2.5 E F2(name)2.5 E F0(.)A(Attrib)108
-660 Q .94(utes may be speci\214ed for an array v)-.2 F .941
-(ariable using the)-.25 F F1(declar)3.441 E(e)-.18 E F0(and)3.441 E F1
--.18(re)3.441 G(adonly).18 E F0 -.2(bu)3.441 G 3.441(iltins. Each).2 F
-(attrib)3.441 E(ute)-.2 E(applies to all members of an array)108 672 Q
+-.25(va)-.25 G .507(luate to a number).25 F 5.506(.T)-.55 G 3.006(oe)
+-6.306 G(x-)-3.156 E 1.192(plicitly declare an inde)108 309.6 R -.15(xe)
+-.15 G 3.692(da).15 G(rray)-3.692 E 3.692(,u)-.65 G(se)-3.692 E F1
+(declar)3.692 E 3.693<65ad>-.18 G(a)-3.693 E F3(name)3.693 E F0(\(see)
+3.693 E F2 1.193(SHELL B)3.693 F(UIL)-.09 E 1.193(TIN COMMANDS)-.828 F
+F0(belo)3.443 E(w\).)-.25 E F1(de-)6.193 E(clar)108 321.6 Q 2.5<65ad>
+-.18 G(a)-2.5 E F3(name)2.5 E F1([)A F3(subscript)A F1(])A F0
+(is also accepted; the)2.5 E F3(subscript)2.5 E F0(is ignored.)2.5 E
+(Associati)108 338.4 Q .3 -.15(ve a)-.25 H(rrays are created using).15 E
+F1(declar)2.5 E 2.5<65ad>-.18 G(A)-2.5 E F3(name)2.5 E F0(.)A(Attrib)108
+355.2 Q .941(utes may be speci\214ed for an array v)-.2 F .941
+(ariable using the)-.25 F F1(declar)3.441 E(e)-.18 E F0(and)3.44 E F1
+-.18(re)3.44 G(adonly).18 E F0 -.2(bu)3.44 G 3.44(iltins. Each).2 F
+(attrib)3.44 E(ute)-.2 E(applies to all members of an array)108 367.2 Q
(.)-.65 E 1.647
-(Arrays are assigned to using compound assignments of the form)108 688.8
-R F2(name)4.147 E F0(=)A F1(\()A F0 -.25(va)C(lue).25 E F2(1)A F0 1.647
-(... v)4.147 F(alue)-.25 E F2(n)A F1(\))A F0 4.147(,w)C 1.647(here each)
--4.147 F F2(value)108 700.8 Q F0 .211(may be of the form [)2.711 F F2
-(subscript)A F0(]=)A F2(string)A F0 5.211(.I)C(nde)-5.211 E -.15(xe)-.15
-G 2.711(da).15 G .212(rray assignments do not require an)-2.711 F .212
-(ything b)-.15 F(ut)-.2 E F2(string)2.712 E F0(.)A(Each)108 712.8 Q F2
-(value)2.53 E F0 .029(in the list is e)2.529 F .029
+(Arrays are assigned to using compound assignments of the form)108 384 R
+F3(name)4.147 E F0(=)A F1(\()A F0 -.25(va)C(lue).25 E F3(1)A F0 1.647
+(... v)4.147 F(alue)-.25 E F3(n)A F1(\))A F0 4.148(,w)C 1.648(here each)
+-4.148 F F3(value)108 396 Q F0 .212(may be of the form [)2.712 F F3
+(subscript)A F0(]=)A F3(string)A F0 5.211(.I)C(nde)-5.211 E -.15(xe)-.15
+G 2.711(da).15 G .211(rray assignments do not require an)-2.711 F .211
+(ything b)-.15 F(ut)-.2 E F3(string)2.711 E F0(.)A(Each)108 408 Q F3
+(value)2.529 E F0 .029(in the list is e)2.529 F .029
(xpanded using all the shell e)-.15 F .029(xpansions described belo)-.15
-F 2.529(wu)-.25 G(nder)-2.529 E F3(EXP)2.529 E(ANSION)-.666 E/F4 9
-/Times-Roman@0 SF(.)A F0(When)4.529 E .995(assigning to inde)108 724.8 R
--.15(xe)-.15 G 3.495(da).15 G .995(rrays, if the optional brack)-3.495 F
-.996(ets and subscript are supplied, that inde)-.1 F 3.496(xi)-.15 G
-3.496(sa)-3.496 G .996(ssigned to;)-3.496 F(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(19)190.395 E 0 Cg EP
-%%Page: 20 20
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .417
-(otherwise the inde)108 84 R 2.917(xo)-.15 G 2.917(ft)-2.917 G .417
-(he element assigned is the last inde)-2.917 F 2.917(xa)-.15 G .416
-(ssigned to by the statement plus one.)-2.917 F(Inde)5.416 E(x-)-.15 E
-(ing starts at zero.)108 96 Q 1.288(When assigning to an associati)108
-112.8 R 1.588 -.15(ve a)-.25 H(rray).15 E 3.788(,t)-.65 G 1.288(he w)
+F 2.529(wu)-.25 G(nder)-2.529 E F2(EXP)2.529 E(ANSION)-.666 E/F4 9
+/Times-Roman@0 SF(.)A F0(When)4.53 E .996(assigning to inde)108 420 R
+-.15(xe)-.15 G 3.496(da).15 G .996(rrays, if the optional brack)-3.496 F
+.996(ets and subscript are supplied, that inde)-.1 F 3.495(xi)-.15 G
+3.495(sa)-3.495 G .995(ssigned to;)-3.495 F .416(otherwise the inde)108
+432 R 2.916(xo)-.15 G 2.916(ft)-2.916 G .417
+(he element assigned is the last inde)-2.916 F 2.917(xa)-.15 G .417
+(ssigned to by the statement plus one.)-2.917 F(Inde)5.417 E(x-)-.15 E
+(ing starts at zero.)108 444 Q 1.288(When assigning to an associati)108
+460.8 R 1.588 -.15(ve a)-.25 H(rray).15 E 3.788(,t)-.65 G 1.288(he w)
-3.788 F 1.288(ords in a compound assignment may be either assignment)
-.1 F .608
(statements, for which the subscript is required, or a list of w)108
-124.8 R .608(ords that is interpreted as a sequence of alter)-.1 F(-)-.2
-E 1.956(nating k)108 136.8 R -.15(ey)-.1 G 4.456(sa).15 G 1.956(nd v)
--4.456 F(alues:)-.25 E/F1 10/Times-Italic@0 SF(name)4.456 E F0(=)A/F2 10
-/Times-Bold@0 SF(\()A F1 -.1(ke)4.456 G 1.957(y1 value1 k)-.2 F -.3(ey)
--.1 G 4.457(2v).3 G(alue2)-4.457 E F0(...)4.457 E F2(\))A F0 6.957(.T)C
-1.957(hese are treated identically to)-6.957 F F1(name)4.457 E F0(=)A F2
-(\()A F0([)108 148.8 Q F1 -.1(ke)C(y1)-.2 E F0(]=)A F1(value1)A F0([)
-3.133 E F1 -.1(ke)C(y2)-.2 E F0(]=)A F1(value2)A F0(...)3.133 E F2(\))A
-F0 5.633(.T)C .633(he \214rst w)-5.633 F .633
-(ord in the list determines ho)-.1 F 3.132(wt)-.25 G .632
-(he remaining w)-3.132 F .632(ords are inter)-.1 F(-)-.2 E .153
-(preted; all assignments in a list must be of the same type.)108 160.8 R
-.154(When using k)5.154 F -.15(ey)-.1 G(/v).15 E .154(alue pairs, the k)
--.25 F -.15(ey)-.1 G 2.654(sm).15 G .154(ay not be)-2.654 F
-(missing or empty; a \214nal missing v)108 172.8 Q(alue is treated lik)
--.25 E 2.5(et)-.1 G(he empty string.)-2.5 E .24
-(This syntax is also accepted by the)108 189.6 R F2(declar)2.74 E(e)-.18
-E F0 -.2(bu)2.739 G 2.739(iltin. Indi).2 F .239
-(vidual array elements may be assigned to using the)-.25 F F1(name)108
-201.6 Q F0([)A F1(subscript)A F0(]=)A F1(value)A F0 1.917
-(syntax introduced abo)4.416 F -.15(ve)-.15 G 6.917(.W).15 G 1.917
+472.8 R .608(ords that is interpreted as a sequence of alter)-.1 F(-)-.2
+E 1.957(nating k)108 484.8 R -.15(ey)-.1 G 4.457(sa).15 G 1.957(nd v)
+-4.457 F(alues:)-.25 E F3(name)4.457 E F0(=)A F1(\()A F3 -.1(ke)4.457 G
+1.957(y1 value1 k)-.2 F -.3(ey)-.1 G 4.457(2v).3 G(alue2)-4.457 E F0
+(...)4.457 E F1(\))A F0 6.957(.T)C 1.956
+(hese are treated identically to)-6.957 F F3(name)4.456 E F0(=)A F1(\()A
+F0([)108 496.8 Q F3 -.1(ke)C(y1)-.2 E F0(]=)A F3(value1)A F0([)3.132 E
+F3 -.1(ke)C(y2)-.2 E F0(]=)A F3(value2)A F0(...)3.132 E F1(\))A F0 5.632
+(.T)C .632(he \214rst w)-5.632 F .633(ord in the list determines ho)-.1
+F 3.133(wt)-.25 G .633(he remaining w)-3.133 F .633(ords are inter)-.1 F
+(-)-.2 E .154
+(preted; all assignments in a list must be of the same type.)108 508.8 R
+.153(When using k)5.153 F -.15(ey)-.1 G(/v).15 E .153(alue pairs, the k)
+-.25 F -.15(ey)-.1 G 2.653(sm).15 G .153(ay not be)-2.653 F
+(missing or empty; a \214nal missing v)108 520.8 Q(alue is treated lik)
+-.25 E 2.5(et)-.1 G(he empty string.)-2.5 E .239
+(This syntax is also accepted by the)108 537.6 R F1(declar)2.739 E(e)
+-.18 E F0 -.2(bu)2.739 G 2.739(iltin. Indi).2 F .24
+(vidual array elements may be assigned to using the)-.25 F F3(name)108
+549.6 Q F0([)A F3(subscript)A F0(]=)A F3(value)A F0 1.917
+(syntax introduced abo)4.417 F -.15(ve)-.15 G 6.917(.W).15 G 1.917
(hen assigning to an inde)-6.917 F -.15(xe)-.15 G 4.417(da).15 G(rray)
--4.417 E 4.417(,i)-.65 G(f)-4.417 E F1(name)4.777 E F0 1.917(is sub-)
-4.597 F .116(scripted by a ne)108 213.6 R -.05(ga)-.15 G(ti).05 E .416
--.15(ve n)-.25 H(umber).15 E 2.616(,t)-.4 G .115
-(hat number is interpreted as relati)-2.616 F .415 -.15(ve t)-.25 H
-2.615(oo).15 G .115(ne greater than the maximum inde)-2.615 F(x)-.15 E
-(of)108 225.6 Q F1(name)2.676 E F0 2.676(,s)C 2.676(on)-2.676 G -2.25
--.15(eg a)-2.676 H(ti).15 E .476 -.15(ve i)-.25 H .177
+-4.417 E 4.417(,i)-.65 G(f)-4.417 E F3(name)4.777 E F0 1.916(is sub-)
+4.597 F .115(scripted by a ne)108 561.6 R -.05(ga)-.15 G(ti).05 E .415
+-.15(ve n)-.25 H(umber).15 E 2.615(,t)-.4 G .115
+(hat number is interpreted as relati)-2.615 F .415 -.15(ve t)-.25 H
+2.615(oo).15 G .116(ne greater than the maximum inde)-2.615 F(x)-.15 E
+(of)108 573.6 Q F3(name)2.677 E F0 2.677(,s)C 2.677(on)-2.677 G -2.25
+-.15(eg a)-2.677 H(ti).15 E .477 -.15(ve i)-.25 H .177
(ndices count back from the end of the array).15 F 2.677(,a)-.65 G .177
-(nd an inde)-2.677 F 2.677(xo)-.15 G 2.677<66ad>-2.677 G 2.677(1r)-2.677
-G .177(eferences the last el-)-2.677 F(ement.)108 237.6 Q(An)108 254.4 Q
-3.576(ye)-.15 G 1.076(lement of an array may be referenced using ${)
--3.576 F F1(name)A F0([)A F1(subscript)A F0 3.575(]}. The)B 1.075
-(braces are required to a)3.575 F -.2(vo)-.2 G(id).2 E 1.541
-(con\215icts with pathname e)108 266.4 R 4.041(xpansion. If)-.15 F F1
-(subscript)4.041 E F0(is)4.041 E F2(@)4.041 E F0(or)4.041 E F2(*)4.041 E
-F0 4.041(,t)C 1.541(he w)-4.041 F 1.541(ord e)-.1 F 1.541
-(xpands to all members of)-.15 F F1(name)4.042 E F0(.)A 1.057
-(These subscripts dif)108 278.4 R 1.057(fer only when the w)-.25 F 1.057
+(nd an inde)-2.677 F 2.676(xo)-.15 G 2.676<66ad>-2.676 G 2.676(1r)-2.676
+G .176(eferences the last el-)-2.676 F(ement.)108 585.6 Q .716
+(The += operator will append to an array v)108 602.4 R .717
+(ariable when assigning using the compound assignment syntax;)-.25 F
+(see)108 614.4 Q F2 -.666(PA)2.5 G(RAMETERS).666 E F0(abo)2.25 E -.15
+(ve)-.15 G(.).15 E(An)108 631.2 Q 3.576(ye)-.15 G 1.076
+(lement of an array may be referenced using ${)-3.576 F F3(name)A F0([)A
+F3(subscript)A F0 3.575(]}. The)B 1.075(braces are required to a)3.575 F
+-.2(vo)-.2 G(id).2 E 1.541(con\215icts with pathname e)108 643.2 R 4.041
+(xpansion. If)-.15 F F3(subscript)4.041 E F0(is)4.041 E F1(@)4.041 E F0
+(or)4.041 E F1(*)4.041 E F0 4.041(,t)C 1.541(he w)-4.041 F 1.541(ord e)
+-.1 F 1.541(xpands to all members of)-.15 F F3(name)4.042 E F0(.)A 1.057
+(These subscripts dif)108 655.2 R 1.057(fer only when the w)-.25 F 1.057
(ord appears within double quotes.)-.1 F 1.056(If the w)6.056 F 1.056
-(ord is double-quoted,)-.1 F(${)108 290.4 Q F1(name)A F0 .52([*]} e)B
+(ord is double-quoted,)-.1 F(${)108 667.2 Q F3(name)A F0 .52([*]} e)B
.52(xpands to a single w)-.15 F .52(ord with the v)-.1 F .521
(alue of each array member separated by the \214rst character)-.25 F
-1.375(of the)108 302.4 R/F3 9/Times-Bold@0 SF(IFS)3.875 E F0 1.375
-(special v)3.625 F 1.375(ariable, and ${)-.25 F F1(name)A F0 1.375
-([@]} e)B 1.375(xpands each element of)-.15 F F1(name)3.875 E F0 1.374
-(to a separate w)3.875 F 3.874(ord. When)-.1 F 2.027
-(there are no array members, ${)108 314.4 R F1(name)A F0 2.028([@]} e)B
-2.028(xpands to nothing.)-.15 F 2.028(If the double-quoted e)7.028 F
-2.028(xpansion occurs)-.15 F .759(within a w)108 326.4 R .759
-(ord, the e)-.1 F .759
+1.375(of the)108 679.2 R F2(IFS)3.875 E F0 1.375(special v)3.625 F 1.375
+(ariable, and ${)-.25 F F3(name)A F0 1.375([@]} e)B 1.375
+(xpands each element of)-.15 F F3(name)3.875 E F0 1.374(to a separate w)
+3.875 F 3.874(ord. When)-.1 F 2.027(there are no array members, ${)108
+691.2 R F3(name)A F0 2.028([@]} e)B 2.028(xpands to nothing.)-.15 F
+2.028(If the double-quoted e)7.028 F 2.028(xpansion occurs)-.15 F .759
+(within a w)108 703.2 R .759(ord, the e)-.1 F .759
(xpansion of the \214rst parameter is joined with the be)-.15 F .759
(ginning part of the original w)-.15 F(ord,)-.1 E .515(and the e)108
-338.4 R .516(xpansion of the last parameter is joined with the last par\
+715.2 R .516(xpansion of the last parameter is joined with the last par\
t of the original w)-.15 F 3.016(ord. This)-.1 F .516(is analogous)3.016
-F .228(to the e)108 350.4 R .228(xpansion of the special parameters)-.15
-F F2(*)2.728 E F0(and)2.728 E F2(@)2.728 E F0(\(see)2.728 E F2 .228
+F .228(to the e)108 727.2 R .228(xpansion of the special parameters)-.15
+F F1(*)2.728 E F0(and)2.728 E F1(@)2.728 E F0(\(see)2.728 E F1 .228
(Special P)2.728 F(arameters)-.1 E F0(abo)2.727 E -.15(ve)-.15 G 2.727
-(\). ${#).15 F F1(name)A F0([)A F1(subscript)A F0(]})A -.15(ex)108 362.4
-S .886(pands to the length of ${).15 F F1(name)A F0([)A F1(subscript)A
-F0 3.386(]}. If)B F1(subscript)3.386 E F0(is)3.386 E F2(*)3.386 E F0(or)
-3.386 E F2(@)3.386 E F0 3.386(,t)C .886(he e)-3.386 F .886
-(xpansion is the number of ele-)-.15 F .295(ments in the array)108 374.4
-R 5.295(.I)-.65 G 2.795(ft)-5.295 G(he)-2.795 E F1(subscript)3.135 E F0
-.295(used to reference an element of an inde)3.475 F -.15(xe)-.15 G
-2.794(da).15 G .294(rray e)-2.794 F -.25(va)-.25 G .294
-(luates to a number).25 F .628
-(less than zero, it is interpreted as relati)108 386.4 R .928 -.15(ve t)
+(\). ${#).15 F F3(name)A F0([)A F3(subscript)A F0(]})A(GNU Bash 5.2)72
+768 Q(2022 September 19)135.955 E(20)185.115 E 0 Cg EP
+%%Page: 21 21
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E -.15(ex)108 84 S
+.886(pands to the length of ${).15 F/F1 10/Times-Italic@0 SF(name)A F0
+([)A F1(subscript)A F0 3.386(]}. If)B F1(subscript)3.386 E F0(is)3.386 E
+/F2 10/Times-Bold@0 SF(*)3.386 E F0(or)3.386 E F2(@)3.386 E F0 3.386(,t)
+C .886(he e)-3.386 F .886(xpansion is the number of ele-)-.15 F .295
+(ments in the array)108 96 R 5.295(.I)-.65 G 2.795(ft)-5.295 G(he)-2.795
+E F1(subscript)3.135 E F0 .295(used to reference an element of an inde)
+3.475 F -.15(xe)-.15 G 2.794(da).15 G .294(rray e)-2.794 F -.25(va)-.25
+G .294(luates to a number).25 F .628
+(less than zero, it is interpreted as relati)108 108 R .928 -.15(ve t)
-.25 H 3.128(oo).15 G .629(ne greater than the maximum inde)-3.128 F
3.129(xo)-.15 G 3.129(ft)-3.129 G .629(he array)-3.129 F 3.129(,s)-.65 G
3.129(on)-3.129 G -2.25 -.15(eg a)-3.129 H(ti).15 E -.15(ve)-.25 G
-(indices count back from the end of the array)108 398.4 Q 2.5(,a)-.65 G
+(indices count back from the end of the array)108 120 Q 2.5(,a)-.65 G
(nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5 G 2.5(1r)-2.5 G
(eferences the last element.)-2.5 E .595(Referencing an array v)108
-415.2 R .595(ariable without a subscript is equi)-.25 F -.25(va)-.25 G
+136.8 R .595(ariable without a subscript is equi)-.25 F -.25(va)-.25 G
.595(lent to referencing the array with a subscript of).25 F 2.5(0. An)
-108 427.2 R 2.5(yr)-.15 G(eference to a v)-2.5 E(ariable using a v)-.25
+108 148.8 R 2.5(yr)-.15 G(eference to a v)-2.5 E(ariable using a v)-.25
E(alid subscript is le)-.25 E -.05(ga)-.15 G(l, and).05 E F2(bash)2.5 E
-F0(will create an array if necessary)2.5 E(.)-.65 E(An array v)108 444 Q
-(ariable is considered set if a subscript has been assigned a v)-.25 E
+F0(will create an array if necessary)2.5 E(.)-.65 E(An array v)108 165.6
+Q(ariable is considered set if a subscript has been assigned a v)-.25 E
2.5(alue. The)-.25 F(null string is a v)2.5 E(alid v)-.25 E(alue.)-.25 E
-.417(It is possible to obtain the k)108 460.8 R -.15(ey)-.1 G 2.918(s\()
+.417(It is possible to obtain the k)108 182.4 R -.15(ey)-.1 G 2.918(s\()
.15 G .418(indices\) of an array as well as the v)-2.918 F 2.918
(alues. ${)-.25 F F2(!)A F1(name)A F0([)A F1(@)A F0 .418(]} and ${)B F2
-(!)A F1(name)A F0([)A F1(*)A F0(]})A -.15(ex)108 472.8 S .75
+(!)A F1(name)A F0([)A F1(*)A F0(]})A -.15(ex)108 194.4 S .75
(pand to the indices assigned in array v).15 F(ariable)-.25 E F1(name)
3.249 E F0 5.749(.T)C .749
(he treatment when in double quotes is similar to)-5.749 F(the e)108
-484.8 Q(xpansion of the special parameters)-.15 E F1(@)2.5 E F0(and)2.5
-E F1(*)2.5 E F0(within double quotes.)2.5 E(The)108 501.6 Q F2(unset)
+206.4 Q(xpansion of the special parameters)-.15 E F1(@)2.5 E F0(and)2.5
+E F1(*)2.5 E F0(within double quotes.)2.5 E(The)108 223.2 Q F2(unset)
2.766 E F0 -.2(bu)2.766 G .267(iltin is used to destro).2 F 2.767(ya)-.1
G(rrays.)-2.767 E F2(unset)5.267 E F1(name)2.767 E F0([)A F1(subscript)A
F0 2.767(]d)C(estro)-2.767 E .267(ys the array element at inde)-.1 F(x)
--.15 E F1(sub-)2.767 E(script)108 513.6 Q F0 2.858(,f)C .358
+-.15 E F1(sub-)2.767 E(script)108 235.2 Q F0 2.858(,f)C .358
(or both inde)-2.858 F -.15(xe)-.15 G 2.858(da).15 G .358(nd associati)
-2.858 F .658 -.15(ve a)-.25 H 2.858(rrays. Ne).15 F -.05(ga)-.15 G(ti)
.05 E .658 -.15(ve s)-.25 H .358(ubscripts to inde).15 F -.15(xe)-.15 G
2.858(da).15 G .358(rrays are interpreted as de-)-2.858 F 1.204
-(scribed abo)108 525.6 R -.15(ve)-.15 G 6.204(.U).15 G 1.204
+(scribed abo)108 247.2 R -.15(ve)-.15 G 6.204(.U).15 G 1.204
(nsetting the last element of an array v)-6.204 F 1.205
(ariable does not unset the v)-.25 F(ariable.)-.25 E F2(unset)6.205 E F1
-(name)3.705 E F0(,)A(where)108 537.6 Q F1(name)2.5 E F0(is an array)2.5
-E 2.5(,o)-.65 G(r)-2.5 E F2(unset)2.5 E F1(name)2.5 E F0([)A F1
-(subscript)A F0(], where)A F1(subscript)2.5 E F0(is)2.5 E F2(*)2.5 E F0
-(or)2.5 E F2(@)2.5 E F0 2.5(,r)C(emo)-2.5 E -.15(ve)-.15 G 2.5(st).15 G
-(he entire array)-2.5 E(.)-.65 E .029(When using a v)108 554.4 R .029
-(ariable name with a subscript as an ar)-.25 F .028
-(gument to a command, such as with)-.18 F F2(unset)2.528 E F0 2.528(,w)C
-.028(ithout us-)-2.528 F .937(ing the w)108 566.4 R .937(ord e)-.1 F
-.937(xpansion syntax described abo)-.15 F -.15(ve)-.15 G 3.437(,t).15 G
-.937(he ar)-3.437 F .938(gument is subject to pathname e)-.18 F 3.438
-(xpansion. If)-.15 F(path-)3.438 E(name e)108 578.4 Q
+(name)3.705 E F0(,)A(where)108 259.2 Q F1(name)3.413 E F0 .913
+(is an array)3.413 F 3.413(,r)-.65 G(emo)-3.413 E -.15(ve)-.15 G 3.413
+(st).15 G .912(he entire array)-3.413 F(.)-.65 E F2(unset)5.912 E F1
+(name)3.412 E F0([)A F1(subscript)A F0 .912(], where)B F1(subscript)
+3.412 E F0(is)3.412 E F2(*)3.412 E F0(or)3.412 E F2(@)3.412 E F0 3.412
+(,b)C(e-)-3.412 E(ha)108 271.2 Q -.15(ve)-.2 G 3.125(sd).15 G(if)-3.125
+E .625(ferently depending on whether)-.25 F F1(name)3.125 E F0 .626
+(is an inde)3.125 F -.15(xe)-.15 G 3.126(do).15 G 3.126(ra)-3.126 G
+(ssociati)-3.126 E .926 -.15(ve a)-.25 H(rray).15 E 5.626(.I)-.65 G(f)
+-5.626 E F1(name)3.126 E F0 .626(is an associati)3.126 F -.15(ve)-.25 G
+(array)108 283.2 Q 3.067(,t)-.65 G .567
+(his unsets the element with subscript)-3.067 F F2(*)3.067 E F0(or)3.067
+E F2(@)3.067 E F0 5.567(.I)C(f)-5.567 E F1(name)3.067 E F0 .567
+(is an inde)3.067 F -.15(xe)-.15 G 3.067(da).15 G(rray)-3.067 E 3.067
+(,u)-.65 G .567(nset remo)-3.067 F -.15(ve)-.15 G 3.067(sa).15 G .567
+(ll of the)-3.067 F(elements b)108 295.2 Q(ut does not remo)-.2 E .3
+-.15(ve t)-.15 H(he array itself.).15 E .028(When using a v)108 312 R
+.028(ariable name with a subscript as an ar)-.25 F .029
+(gument to a command, such as with)-.18 F F2(unset)2.529 E F0 2.529(,w)C
+.029(ithout us-)-2.529 F .938(ing the w)108 324 R .938(ord e)-.1 F .938
+(xpansion syntax described abo)-.15 F -.15(ve)-.15 G 3.437(,t).15 G .937
+(he ar)-3.437 F .937(gument is subject to pathname e)-.18 F 3.437
+(xpansion. If)-.15 F(path-)3.437 E(name e)108 336 Q
(xpansion is not desired, the ar)-.15 E(gument should be quoted.)-.18 E
-(The)108 595.2 Q F2(declar)2.684 E(e)-.18 E F0(,)A F2(local)2.684 E F0
-2.684(,a)C(nd)-2.684 E F2 -.18(re)2.684 G(adonly).18 E F0 -.2(bu)2.684 G
+(The)108 352.8 Q F2(declar)2.683 E(e)-.18 E F0(,)A F2(local)2.683 E F0
+2.683(,a)C(nd)-2.683 E F2 -.18(re)2.683 G(adonly).18 E F0 -.2(bu)2.683 G
.184(iltins each accept a).2 F F2<ad61>2.684 E F0 .184
-(option to specify an inde)2.684 F -.15(xe)-.15 G 2.683(da).15 G .183
-(rray and a)-2.683 F F2<ad41>2.683 E F0(op-)2.683 E .041
-(tion to specify an associati)108 607.2 R .341 -.15(ve a)-.25 H(rray).15
+(option to specify an inde)2.684 F -.15(xe)-.15 G 2.684(da).15 G .184
+(rray and a)-2.684 F F2<ad41>2.684 E F0(op-)2.684 E .042
+(tion to specify an associati)108 364.8 R .341 -.15(ve a)-.25 H(rray).15
E 5.041(.I)-.65 G 2.541(fb)-5.041 G .041(oth options are supplied,)
-2.541 F F2<ad41>2.541 E F0(tak)2.541 E .041(es precedence.)-.1 F(The)
-5.041 E F2 -.18(re)2.542 G(ad).18 E F0 -.2(bu)2.542 G .042(iltin ac-).2
-F .864(cepts a)108 619.2 R F2<ad61>3.364 E F0 .864
-(option to assign a list of w)3.364 F .864
-(ords read from the standard input to an array)-.1 F 5.863(.T)-.65 G(he)
--5.863 E F2(set)3.363 E F0(and)3.363 E F2(declar)3.363 E(e)-.18 E F0 -.2
-(bu)108 631.2 S(iltins display array v).2 E(alues in a w)-.25 E
-(ay that allo)-.1 E(ws them to be reused as assignments.)-.25 E/F4 10.95
-/Times-Bold@0 SF(EXP)72 648 Q(ANSION)-.81 E F0 .76(Expansion is perform\
-ed on the command line after it has been split into w)108 660 R 3.26
+5.041 E F2 -.18(re)2.541 G(ad).18 E F0 -.2(bu)2.541 G .041(iltin ac-).2
+F .863(cepts a)108 376.8 R F2<ad61>3.363 E F0 .864
+(option to assign a list of w)3.363 F .864
+(ords read from the standard input to an array)-.1 F 5.864(.T)-.65 G(he)
+-5.864 E F2(set)3.364 E F0(and)3.364 E F2(declar)3.364 E(e)-.18 E F0 -.2
+(bu)108 388.8 S(iltins display array v).2 E(alues in a w)-.25 E
+(ay that allo)-.1 E(ws them to be reused as assignments.)-.25 E/F3 10.95
+/Times-Bold@0 SF(EXP)72 405.6 Q(ANSION)-.81 E F0 .76(Expansion is perfo\
+rmed on the command line after it has been split into w)108 417.6 R 3.26
(ords. There)-.1 F .76(are se)3.26 F -.15(ve)-.25 G 3.26(nk).15 G .76
-(inds of)-3.26 F -.15(ex)108 672 S .201(pansion performed:).15 F F1(br)
+(inds of)-3.26 F -.15(ex)108 429.6 S .2(pansion performed:).15 F F1(br)
2.971 E .201(ace e)-.15 F(xpansion)-.2 E F0(,).24 E F1 .201(tilde e)
2.831 F(xpansion)-.2 E F0(,).24 E F1(par)3.951 E .201
-(ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F1 .2
-(command sub-)2.901 F(stitution)108 684 Q F0(,).24 E F1(arithmetic e)
+(ameter and variable e)-.15 F(xpansion)-.2 E F0(,).24 E F1 .201
+(command sub-)2.901 F(stitution)108 441.6 Q F0(,).24 E F1(arithmetic e)
2.83 E(xpansion)-.2 E F0(,).24 E F1(wor)2.84 E 2.5(ds)-.37 G(plitting)
-2.5 E F0 2.5(,a).22 G(nd)-2.5 E F1(pathname e)3.75 E(xpansion)-.2 E F0
-(.).24 E .418(The order of e)108 700.8 R .418(xpansions is: brace e)-.15
-F .418(xpansion; tilde e)-.15 F .419(xpansion, parameter and v)-.15 F
-.419(ariable e)-.25 F .419(xpansion, arithmetic)-.15 F -.15(ex)108 712.8
-S .196(pansion, and command substitution \(done in a left-to-right f).15
-F .195(ashion\); w)-.1 F .195(ord splitting; and pathname e)-.1 F(xpan-)
--.15 E(sion.)108 724.8 Q(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E
-(20)190.395 E 0 Cg EP
-%%Page: 21 21
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .257
-(On systems that can support it, there is an additional e)108 84 R .257
-(xpansion a)-.15 F -.25(va)-.2 G(ilable:).25 E/F1 10/Times-Italic@0 SF
-(pr)2.757 E .257(ocess substitution)-.45 F F0 5.257(.T)C .257
-(his is per)-5.257 F(-)-.2 E
-(formed at the same time as tilde, parameter)108 96 Q 2.5(,v)-.4 G
+(.).24 E .419(The order of e)108 458.4 R .419(xpansions is: brace e)-.15
+F .418(xpansion; tilde e)-.15 F .418(xpansion, parameter and v)-.15 F
+.418(ariable e)-.25 F .418(xpansion, arithmetic)-.15 F -.15(ex)108 470.4
+S .195(pansion, and command substitution \(done in a left-to-right f).15
+F .196(ashion\); w)-.1 F .196(ord splitting; and pathname e)-.1 F(xpan-)
+-.15 E(sion.)108 482.4 Q .257
+(On systems that can support it, there is an additional e)108 499.2 R
+.257(xpansion a)-.15 F -.25(va)-.2 G(ilable:).25 E F1(pr)2.757 E .257
+(ocess substitution)-.45 F F0 5.257(.T)C .256(his is per)-5.257 F(-)-.2
+E(formed at the same time as tilde, parameter)108 511.2 Q 2.5(,v)-.4 G
(ariable, and arithmetic e)-2.75 E(xpansion and command substitution.)
--.15 E .003(After these e)108 112.8 R .003
+-.15 E .002(After these e)108 528 R .003
(xpansions are performed, quote characters present in the original w)
--.15 F .002(ord are remo)-.1 F -.15(ve)-.15 G 2.502(du).15 G .002
-(nless the)-2.502 F(y)-.15 E(ha)108 124.8 Q .3 -.15(ve b)-.2 H
+-.15 F .003(ord are remo)-.1 F -.15(ve)-.15 G 2.503(du).15 G .003
+(nless the)-2.503 F(y)-.15 E(ha)108 540 Q .3 -.15(ve b)-.2 H
(een quoted themselv).15 E(es \()-.15 E F1(quote r)A(emo)-.37 E(val)-.1
-E F0(\).)A .171(Only brace e)108 141.6 R .171(xpansion, w)-.15 F .171
+E F0(\).)A .172(Only brace e)108 556.8 R .172(xpansion, w)-.15 F .171
(ord splitting, and pathname e)-.1 F .171
-(xpansion can increase the number of w)-.15 F .172(ords of the e)-.1 F
-(x-)-.15 E .777(pansion; other e)108 153.6 R .776(xpansions e)-.15 F
+(xpansion can increase the number of w)-.15 F .171(ords of the e)-.1 F
+(x-)-.15 E .776(pansion; other e)108 568.8 R .776(xpansions e)-.15 F
.776(xpand a single w)-.15 F .776(ord to a single w)-.1 F 3.276
(ord. The)-.1 F .776(only e)3.276 F .776(xceptions to this are the e)
--.15 F(x-)-.15 E .695(pansions of ")108 165.6 R/F2 10/Times-Bold@0 SF
-($@)A F0 3.195("a)C .695(nd ")-3.195 F F2(${)A F1(name)A F2([@]})A F0
-.696(", and, in most cases,)B F2($*)3.196 E F0(and)3.196 E F2(${)3.196 E
-F1(name)A F2([*]})A F0 .696(as e)3.196 F .696(xplained abo)-.15 F .996
--.15(ve \()-.15 H(see).15 E/F3 9/Times-Bold@0 SF -.666(PA)3.196 G(-).666
-E(RAMETERS)108 177.6 Q/F4 9/Times-Roman@0 SF(\).)A F2(Brace Expansion)87
-194.4 Q F1(Br)108.58 206.4 Q .606(ace e)-.15 F(xpansion)-.2 E F0 .606
+-.15 F(x-)-.15 E .696(pansions of ")108 580.8 R F2($@)A F0 3.196("a)C
+.696(nd ")-3.196 F F2(${)A F1(name)A F2([@]})A F0 .696
+(", and, in most cases,)B F2($*)3.196 E F0(and)3.196 E F2(${)3.196 E F1
+(name)A F2([*]})A F0 .695(as e)3.196 F .695(xplained abo)-.15 F .995
+-.15(ve \()-.15 H(see).15 E/F4 9/Times-Bold@0 SF -.666(PA)3.195 G(-).666
+E(RAMETERS)108 592.8 Q/F5 9/Times-Roman@0 SF(\).)A F2(Brace Expansion)87
+609.6 Q F1(Br)108.58 621.6 Q .606(ace e)-.15 F(xpansion)-.2 E F0 .606
(is a mechanism by which arbitrary strings may be generated.)3.346 F
-.606(This mechanism is similar)5.606 F(to)108 218.4 Q F1 .415
+.606(This mechanism is similar)5.606 F(to)108 633.6 Q F1 .415
(pathname e)2.915 F(xpansion)-.2 E F0 2.915(,b)C .415
(ut the \214lenames generated need not e)-3.115 F 2.915(xist. P)-.15 F
.415(atterns to be brace e)-.15 F .415(xpanded tak)-.15 F 2.915(et)-.1 G
-(he)-2.915 E .074(form of an optional)108 230.4 R F1(pr)3.823 E(eamble)
+(he)-2.915 E .073(form of an optional)108 645.6 R F1(pr)3.823 E(eamble)
-.37 E F0 2.573(,f).18 G(ollo)-2.573 E .073
(wed by either a series of comma-separated strings or a sequence e)-.25
-F(xpres-)-.15 E .489(sion between a pair of braces, follo)108 242.4 R
-.489(wed by an optional)-.25 F F1(postscript)4.239 E F0 5.49(.T).68 G
-.49(he preamble is pre\214x)-5.49 F .49(ed to each string)-.15 F .659(c\
-ontained within the braces, and the postscript is then appended to each\
- resulting string, e)108 254.4 R .658(xpanding left to)-.15 F(right.)108
-266.4 Q .718(Brace e)108 283.2 R .719(xpansions may be nested.)-.15 F
-.719(The results of each e)5.719 F .719
+F(xpres-)-.15 E .49(sion between a pair of braces, follo)108 657.6 R
+.489(wed by an optional)-.25 F F1(postscript)4.239 E F0 5.489(.T).68 G
+.489(he preamble is pre\214x)-5.489 F .489(ed to each string)-.15 F .659
+(contained within the braces, and the postscript is then appended to ea\
+ch resulting string, e)108 669.6 R .659(xpanding left to)-.15 F(right.)
+108 681.6 Q .719(Brace e)108 698.4 R .719(xpansions may be nested.)-.15
+F .719(The results of each e)5.719 F .719
(xpanded string are not sorted; left to right order is)-.15 F(preserv)
-108 295.2 Q 2.5(ed. F)-.15 F(or e)-.15 E(xample, a)-.15 E F2({)A F0
-(d,c,b)A F2(})A F0 2.5(ee)C(xpands into `ade ace abe'.)-2.65 E 3.243(As)
-108 312 S .743(equence e)-3.243 F .743(xpression tak)-.15 F .743
-(es the form)-.1 F F2({)3.243 E F1(x)A F2(..)A F1(y)A F2([..)A F1(incr)A
-F2(]})A F0 3.243(,w)C(here)-3.243 E F1(x)3.243 E F0(and)3.242 E F1(y)
-3.242 E F0 .742(are either inte)3.242 F .742(gers or single characters,)
--.15 F(and)108 324 Q F1(incr)3.031 E F0 3.031(,a)C 3.032(no)-3.031 G
-.532(ptional increment, is an inte)-3.032 F(ger)-.15 E 5.532(.W)-.55 G
-.532(hen inte)-5.532 F .532(gers are supplied, the e)-.15 F .532
-(xpression e)-.15 F .532(xpands to each)-.15 F .078(number between)108
-336 R F1(x)2.578 E F0(and)2.578 E F1(y)2.578 E F0 2.578(,i)C(nclusi)
--2.578 E -.15(ve)-.25 G 5.078(.S).15 G .078(upplied inte)-5.078 F .077
-(gers may be pre\214x)-.15 F .077(ed with)-.15 F F1(0)2.577 E F0 .077
-(to force each term to ha)2.577 F .377 -.15(ve t)-.2 H(he).15 E .014
-(same width.)108 348 R .014(When either)5.014 F F1(x)2.514 E F0(or)2.514
-E F1(y)2.514 E F0(be)2.514 E .015(gins with a zero, the shell attempts \
-to force all generated terms to contain)-.15 F 1.143
-(the same number of digits, zero-padding where necessary)108 360 R 6.143
-(.W)-.65 G 1.143(hen characters are supplied, the e)-6.143 F(xpression)
--.15 E -.15(ex)108 372 S 1.064(pands to each character le).15 F 1.064
-(xicographically between)-.15 F F1(x)3.564 E F0(and)3.564 E F1(y)3.564 E
-F0 3.564(,i)C(nclusi)-3.564 E -.15(ve)-.25 G 3.564(,u).15 G 1.064
-(sing the def)-3.564 F 1.064(ault C locale.)-.1 F(Note)6.064 E .245
-(that both)108 384 R F1(x)2.745 E F0(and)2.745 E F1(y)2.745 E F0 .245
-(must be of the same type.)2.745 F .244
-(When the increment is supplied, it is used as the dif)5.245 F .244
-(ference be-)-.25 F(tween each term.)108 396 Q(The def)5 E
-(ault increment is 1 or \2551 as appropriate.)-.1 E .581(Brace e)108
-412.8 R .581(xpansion is performed before an)-.15 F 3.081(yo)-.15 G .581
-(ther e)-3.081 F .581(xpansions, and an)-.15 F 3.082(yc)-.15 G .582
-(haracters special to other e)-3.082 F(xpansions)-.15 E .016
-(are preserv)108 424.8 R .016(ed in the result.)-.15 F .016
-(It is strictly te)5.016 F(xtual.)-.15 E F2(Bash)5.016 E F0 .015
-(does not apply an)2.516 F 2.515(ys)-.15 G .015
-(yntactic interpretation to the con-)-2.515 F(te)108 436.8 Q
+108 710.4 Q 2.5(ed. F)-.15 F(or e)-.15 E(xample, a)-.15 E F2({)A F0
+(d,c,b)A F2(})A F0 2.5(ee)C(xpands into `ade ace abe'.)-2.65 E 3.148(As)
+108 727.2 S .648(equence e)-3.148 F .648(xpression tak)-.15 F .649
+(es the form)-.1 F F2({)3.149 E F1(x)A F2(..)A F1(y)A F2([..)A F1(incr)A
+F2(]})A F0 3.149(,w)C(here)-3.149 E F1(x)3.149 E F0(and)3.149 E F1(y)
+3.149 E F0 .649(are either inte)3.149 F .649
+(gers or single letters, and)-.15 F(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(21)185.115 E 0 Cg EP
+%%Page: 22 22
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10
+/Times-Italic@0 SF(incr)108 84 Q F0 2.615(,a)C 2.615(no)-2.615 G .115
+(ptional increment, is an inte)-2.615 F(ger)-.15 E 5.115(.W)-.55 G .115
+(hen inte)-5.115 F .115(gers are supplied, the e)-.15 F .115
+(xpression e)-.15 F .115(xpands to each num-)-.15 F 1.013(ber between)
+108 96 R F1(x)3.513 E F0(and)3.513 E F1(y)3.513 E F0 3.513(,i)C(nclusi)
+-3.513 E -.15(ve)-.25 G 6.013(.S).15 G 1.013(upplied inte)-6.013 F 1.013
+(gers may be pre\214x)-.15 F 1.013(ed with)-.15 F F1(0)3.513 E F0 1.013
+(to force each term to ha)3.513 F 1.314 -.15(ve t)-.2 H(he).15 E .015
+(same width.)108 108 R .015(When either)5.015 F F1(x)2.515 E F0(or)2.515
+E F1(y)2.515 E F0(be)2.515 E .014(gins with a zero, the shell attempts \
+to force all generated terms to contain)-.15 F 1.13
+(the same number of digits, zero-padding where necessary)108 120 R 6.131
+(.W)-.65 G 1.131(hen letters are supplied, the e)-6.131 F 1.131
+(xpression e)-.15 F(x-)-.15 E .485(pands to each character le)108 132 R
+.485(xicographically between)-.15 F F1(x)2.985 E F0(and)2.984 E F1(y)
+2.984 E F0 2.984(,i)C(nclusi)-2.984 E -.15(ve)-.25 G 2.984(,u).15 G .484
+(sing the def)-2.984 F .484(ault C locale.)-.1 F .484(Note that)5.484 F
+(both)108 144 Q F1(x)2.966 E F0(and)2.966 E F1(y)2.966 E F0 .467
+(must be of the same type \(inte)2.966 F .467(ger or letter\).)-.15 F
+.467(When the increment is supplied, it is used as the)5.467 F(dif)108
+156 Q(ference between each term.)-.25 E(The def)5 E
+(ault increment is 1 or \2551 as appropriate.)-.1 E .582(Brace e)108
+172.8 R .582(xpansion is performed before an)-.15 F 3.082(yo)-.15 G .581
+(ther e)-3.082 F .581(xpansions, and an)-.15 F 3.081(yc)-.15 G .581
+(haracters special to other e)-3.081 F(xpansions)-.15 E .015
+(are preserv)108 184.8 R .015(ed in the result.)-.15 F .015
+(It is strictly te)5.015 F(xtual.)-.15 E/F2 10/Times-Bold@0 SF(Bash)
+5.016 E F0 .016(does not apply an)2.516 F 2.516(ys)-.15 G .016
+(yntactic interpretation to the con-)-2.516 F(te)108 196.8 Q
(xt of the e)-.15 E(xpansion or the te)-.15 E(xt between the braces.)
--.15 E 2.501(Ac)108 453.6 S .001(orrectly-formed brace e)-2.501 F .001(\
+-.15 E 2.502(Ac)108 213.6 S .002(orrectly-formed brace e)-2.502 F .001(\
xpansion must contain unquoted opening and closing braces, and at least\
- one un-)-.15 F .458(quoted comma or a v)108 465.6 R .458
+ one un-)-.15 F .457(quoted comma or a v)108 225.6 R .458
(alid sequence e)-.25 F 2.958(xpression. An)-.15 F 2.958(yi)-.15 G .458
-(ncorrectly formed brace e)-2.958 F .457(xpansion is left unchanged.)
--.15 F(A)108 477.6 Q F2({)2.521 E F0(or)2.521 E F2(,)2.521 E F0 .021
-(may be quoted with a backslash to pre)2.521 F -.15(ve)-.25 G .022
-(nt its being considered part of a brace e).15 F 2.522(xpression. T)-.15
-F 2.522(oa)-.8 G -.2(vo)-2.722 G(id).2 E .172
-(con\215icts with parameter e)108 489.6 R .172(xpansion, the string)-.15
+(ncorrectly formed brace e)-2.958 F .458(xpansion is left unchanged.)
+-.15 F(A)108 237.6 Q F2({)2.522 E F0(or)2.522 E F2(,)2.522 E F0 .022
+(may be quoted with a backslash to pre)2.522 F -.15(ve)-.25 G .021
+(nt its being considered part of a brace e).15 F 2.521(xpression. T)-.15
+F 2.521(oa)-.8 G -.2(vo)-2.721 G(id).2 E .172
+(con\215icts with parameter e)108 249.6 R .172(xpansion, the string)-.15
F F2(${)2.672 E F0 .172(is not considered eligible for brace e)2.672 F
-.172(xpansion, and inhibits)-.15 F(brace e)108 501.6 Q
+.172(xpansion, and inhibits)-.15 F(brace e)108 261.6 Q
(xpansion until the closing)-.15 E F2(})2.5 E F0(.)A 1.476(This constru\
ct is typically used as shorthand when the common pre\214x of the strin\
-gs to be generated is)108 518.4 R(longer than in the abo)108 530.4 Q .3
+gs to be generated is)108 278.4 R(longer than in the abo)108 290.4 Q .3
-.15(ve ex)-.15 H(ample:).15 E(mkdir /usr/local/src/bash/{old,ne)144
-547.2 Q -.65(w,)-.25 G(dist,b).65 E(ugs})-.2 E(or)108 559.2 Q(cho)144
-571.2 Q(wn root /usr/{ucb/{e)-.25 E(x,edit},lib/{e)-.15 E(x?.?*,ho)-.15
-E(w_e)-.25 E(x}})-.15 E .618(Brace e)108 588 R .618
+307.2 Q -.65(w,)-.25 G(dist,b).65 E(ugs})-.2 E(or)108 319.2 Q(cho)144
+331.2 Q(wn root /usr/{ucb/{e)-.25 E(x,edit},lib/{e)-.15 E(x?.?*,ho)-.15
+E(w_e)-.25 E(x}})-.15 E .618(Brace e)108 348 R .618
(xpansion introduces a slight incompatibility with historical v)-.15 F
.618(ersions of)-.15 F F2(sh)3.118 E F0(.)A F2(sh)5.618 E F0 .618
-(does not treat open-)3.118 F .247
-(ing or closing braces specially when the)108 600 R 2.747(ya)-.15 G .247
-(ppear as part of a w)-2.747 F .248(ord, and preserv)-.1 F .248
-(es them in the output.)-.15 F F2(Bash)5.248 E F0(remo)108 612 Q -.15
+(does not treat open-)3.118 F .248
+(ing or closing braces specially when the)108 360 R 2.748(ya)-.15 G .247
+(ppear as part of a w)-2.748 F .247(ord, and preserv)-.1 F .247
+(es them in the output.)-.15 F F2(Bash)5.247 E F0(remo)108 372 Q -.15
(ve)-.15 G 3.53(sb).15 G 1.03(races from w)-3.53 F 1.03
(ords as a consequence of brace e)-.1 F 3.53(xpansion. F)-.15 F 1.03
(or e)-.15 F 1.03(xample, a w)-.15 F 1.03(ord entered to)-.1 F F2(sh)
-3.53 E F0(as)3.53 E F1(\214le{1,2})108 624 Q F0 .514
-(appears identically in the output.)3.014 F .515(The same w)5.515 F .515
-(ord is output as)-.1 F F1 .515(\214le1 \214le2)4.925 F F0 .515(after e)
-3.035 F .515(xpansion by)-.15 F F2(bash)3.015 E F0(.)A .437
-(If strict compatibility with)108 636 R F2(sh)2.936 E F0 .436
+3.53 E F0(as)3.53 E F1(\214le{1,2})108 384 Q F0 .515
+(appears identically in the output.)3.015 F .515(The same w)5.515 F .515
+(ord is output as)-.1 F F1 .514(\214le1 \214le2)4.925 F F0 .514(after e)
+3.034 F .514(xpansion by)-.15 F F2(bash)3.014 E F0(.)A .436
+(If strict compatibility with)108 396 R F2(sh)2.936 E F0 .436
(is desired, start)2.936 F F2(bash)2.936 E F0 .436(with the)2.936 F F2
-(+B)2.936 E F0 .436(option or disable brace e)2.936 F .436
-(xpansion with the)-.15 F F2(+B)108 648 Q F0(option to the)2.5 E F2(set)
-2.5 E F0(command \(see)2.5 E F3(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)
--.828 E F0(belo)2.25 E(w\).)-.25 E F2 -.18(Ti)87 664.8 S(lde Expansion)
-.18 E F0 1.086(If a w)108 676.8 R 1.086(ord be)-.1 F 1.086
-(gins with an unquoted tilde character \(`)-.15 F F2(~)A F0 1.087
+(+B)2.936 E F0 .436(option or disable brace e)2.936 F .437
+(xpansion with the)-.15 F F2(+B)108 408 Q F0(option to the)2.5 E F2(set)
+2.5 E F0(command \(see)2.5 E/F3 9/Times-Bold@0 SF(SHELL B)2.5 E(UIL)-.09
+E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F2 -.18(Ti)87 424.8 S
+(lde Expansion).18 E F0 1.087(If a w)108 436.8 R 1.087(ord be)-.1 F
+1.087(gins with an unquoted tilde character \(`)-.15 F F2(~)A F0 1.086
('\), all of the characters preceding the \214rst unquoted)B .185(slash\
\(or all characters, if there is no unquoted slash\) are considered a)
-108 688.8 R F1(tilde-pr)2.685 E(e\214x)-.37 E F0 5.185(.I)C 2.685(fn)
--5.185 G .185(one of the characters)-2.685 F .725(in the tilde-pre\214x\
- are quoted, the characters in the tilde-pre\214x follo)108 700.8 R .726
-(wing the tilde are treated as a possible)-.25 F F1(lo)108 712.8 Q .523
-(gin name)-.1 F F0 5.523(.I)C 3.023(ft)-5.523 G .523
+108 448.8 R F1(tilde-pr)2.685 E(e\214x)-.37 E F0 5.185(.I)C 2.685(fn)
+-5.185 G .185(one of the characters)-2.685 F .726(in the tilde-pre\214x\
+ are quoted, the characters in the tilde-pre\214x follo)108 460.8 R .725
+(wing the tilde are treated as a possible)-.25 F F1(lo)108 472.8 Q .522
+(gin name)-.1 F F0 5.522(.I)C 3.022(ft)-5.522 G .522
(his login name is the null string, the tilde is replaced with the v)
--3.023 F .522(alue of the shell parameter)-.25 F F3(HOME)108 724.8 Q F4
-(.)A F0(If)6.735 E F3(HOME)4.735 E F0 2.236
-(is unset, the home directory of the user e)4.486 F -.15(xe)-.15 G 2.236
-(cuting the shell is substituted instead.).15 F(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(21)190.395 E 0 Cg EP
-%%Page: 22 22
+-3.022 F .523(alue of the shell parameter)-.25 F F3(HOME)108 484.8 Q/F4
+9/Times-Roman@0 SF(.)A F0(If)4.787 E F3(HOME)2.787 E F0 .287
+(is unset, the home directory of the user e)2.537 F -.15(xe)-.15 G .286
+(cuting the shell is substituted instead.).15 F(Other)5.286 E(-)-.2 E(w\
+ise, the tilde-pre\214x is replaced with the home directory associated \
+with the speci\214ed login name.)108 496.8 Q .092
+(If the tilde-pre\214x is a `~+', the v)108 513.6 R .092
+(alue of the shell v)-.25 F(ariable)-.25 E F3(PWD)2.592 E F0 .092
+(replaces the tilde-pre\214x.)2.342 F .093(If the tilde-pre\214x is)
+5.093 F 3.404(a`)108 525.6 S .904(~\255', the v)-3.404 F .904
+(alue of the shell v)-.25 F(ariable)-.25 E F3(OLDPWD)3.404 E F4(,)A F0
+.904(if it is set, is substituted.)3.154 F .903(If the characters follo)
+5.903 F .903(wing the)-.25 F .879
+(tilde in the tilde-pre\214x consist of a number)108 537.6 R F1(N)3.379
+E F0 3.379(,o)C .879(ptionally pre\214x)-3.379 F .88
+(ed by a `+' or a `\255', the tilde-pre\214x is re-)-.15 F .138(placed \
+with the corresponding element from the directory stack, as it w)108
+549.6 R .138(ould be displayed by the)-.1 F F2(dirs)2.638 E F0 -.2(bu)
+2.638 G(iltin).2 E(in)108 561.6 Q -.2(vo)-.4 G -.1(ke).2 G 2.838(dw).1 G
+.338(ith the tilde-pre\214x as an ar)-2.838 F 2.838(gument. If)-.18 F
+.338(the characters follo)2.838 F .338
+(wing the tilde in the tilde-pre\214x consist)-.25 F
+(of a number without a leading `+' or `\255', `+' is assumed.)108 573.6
+Q(If the login name is in)108 590.4 Q -.25(va)-.4 G(lid, or the tilde e)
+.25 E(xpansion f)-.15 E(ails, the w)-.1 E(ord is unchanged.)-.1 E .167
+(Each v)108 607.2 R .167(ariable assignment is check)-.25 F .167
+(ed for unquoted tilde-pre\214x)-.1 F .167(es immediately follo)-.15 F
+.167(wing a)-.25 F F2(:)2.667 E F0 .167(or the \214rst)2.667 F F2(=)
+2.666 E F0 5.166(.I)C(n)-5.166 E .467(these cases, tilde e)108 619.2 R
+.467(xpansion is also performed.)-.15 F(Consequently)5.467 E 2.967(,o)
+-.65 G .468(ne may use \214lenames with tildes in assign-)-2.967 F
+(ments to)108 631.2 Q F3 -.666(PA)2.5 G(TH)-.189 E F4(,)A F3(MAILP)2.25
+E -.855(AT)-.666 G(H).855 E F4(,)A F0(and)2.25 E F3(CDP)2.5 E -.855(AT)
+-.666 G(H).855 E F4(,)A F0(and the shell assigns the e)2.25 E(xpanded v)
+-.15 E(alue.)-.25 E .024(Bash also performs tilde e)108 648 R .024
+(xpansion on w)-.15 F .023(ords satisfying the conditions of v)-.1 F
+.023(ariable assignments \(as described)-.25 F(abo)108 660 Q .769 -.15
+(ve u)-.15 H(nder).15 E F3 -.666(PA)2.969 G(RAMETERS).666 E F4(\))A F0
+.469(when the)2.719 F 2.969(ya)-.15 G .469(ppear as ar)-2.969 F .469
+(guments to simple commands.)-.18 F .47(Bash does not do this,)5.469 F
+-.15(ex)108 672 S(cept for the).15 E F1(declar)2.5 E(ation)-.15 E F0
+(commands listed abo)2.5 E -.15(ve)-.15 G 2.5(,w).15 G(hen in)-2.5 E F1
+(posix mode)2.5 E F0(.)A F2 -.1(Pa)87 688.8 S(rameter Expansion).1 E F0
+.2(The `)108 700.8 R F2($)A F0 2.7('c)C .199
+(haracter introduces parameter e)-2.7 F .199
+(xpansion, command substitution, or arithmetic e)-.15 F 2.699
+(xpansion. The)-.15 F(pa-)2.699 E .314(rameter name or symbol to be e)
+108 712.8 R .314
+(xpanded may be enclosed in braces, which are optional b)-.15 F .314
+(ut serv)-.2 F 2.814(et)-.15 G 2.814(op)-2.814 G(rotect)-2.814 E .415
+(the v)108 724.8 R .415(ariable to be e)-.25 F .415
+(xpanded from characters immediately follo)-.15 F .414
+(wing it which could be interpreted as part of)-.25 F(GNU Bash 5.2)72
+768 Q(2022 September 19)135.955 E(22)185.115 E 0 Cg EP
+%%Page: 23 23
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(Otherwise, the ti\
-lde-pre\214x is replaced with the home directory associated with the sp\
-eci\214ed login name.)108 84 Q .093
-(If the tilde-pre\214x is a `~+', the v)108 100.8 R .092
-(alue of the shell v)-.25 F(ariable)-.25 E/F1 9/Times-Bold@0 SF(PWD)
-2.592 E F0 .092(replaces the tilde-pre\214x.)2.342 F .092
-(If the tilde-pre\214x is)5.092 F 3.403(a`)108 112.8 S .903
-(~\255', the v)-3.403 F .903(alue of the shell v)-.25 F(ariable)-.25 E
-F1(OLDPWD)3.404 E/F2 9/Times-Roman@0 SF(,)A F0 .904
-(if it is set, is substituted.)3.154 F .904(If the characters follo)
-5.904 F .904(wing the)-.25 F .88
-(tilde in the tilde-pre\214x consist of a number)108 124.8 R/F3 10
-/Times-Italic@0 SF(N)3.38 E F0 3.38(,o)C .88(ptionally pre\214x)-3.38 F
-.879(ed by a `+' or a `\255', the tilde-pre\214x is re-)-.15 F .138(pla\
-ced with the corresponding element from the directory stack, as it w)108
-136.8 R .138(ould be displayed by the)-.1 F/F4 10/Times-Bold@0 SF(dirs)
-2.639 E F0 -.2(bu)2.639 G(iltin).2 E(in)108 148.8 Q -.2(vo)-.4 G -.1(ke)
-.2 G 2.839(dw).1 G .338(ith the tilde-pre\214x as an ar)-2.839 F 2.838
-(gument. If)-.18 F .338(the characters follo)2.838 F .338
-(wing the tilde in the tilde-pre\214x consist)-.25 F
-(of a number without a leading `+' or `\255', `+' is assumed.)108 160.8
-Q(If the login name is in)108 177.6 Q -.25(va)-.4 G(lid, or the tilde e)
-.25 E(xpansion f)-.15 E(ails, the w)-.1 E(ord is unchanged.)-.1 E .166
-(Each v)108 194.4 R .167(ariable assignment is check)-.25 F .167
-(ed for unquoted tilde-pre\214x)-.1 F .167(es immediately follo)-.15 F
-.167(wing a)-.25 F F4(:)2.667 E F0 .167(or the \214rst)2.667 F F4(=)
-2.667 E F0 5.167(.I)C(n)-5.167 E .468(these cases, tilde e)108 206.4 R
-.468(xpansion is also performed.)-.15 F(Consequently)5.467 E 2.967(,o)
--.65 G .467(ne may use \214lenames with tildes in assign-)-2.967 F
-(ments to)108 218.4 Q F1 -.666(PA)2.5 G(TH)-.189 E F2(,)A F1(MAILP)2.25
-E -.855(AT)-.666 G(H).855 E F2(,)A F0(and)2.25 E F1(CDP)2.5 E -.855(AT)
--.666 G(H).855 E F2(,)A F0(and the shell assigns the e)2.25 E(xpanded v)
--.15 E(alue.)-.25 E .023(Bash also performs tilde e)108 235.2 R .023
-(xpansion on w)-.15 F .024(ords satisfying the conditions of v)-.1 F
-.024(ariable assignments \(as described)-.25 F(abo)108 247.2 Q .77 -.15
-(ve u)-.15 H(nder).15 E F1 -.666(PA)2.97 G(RAMETERS).666 E F2(\))A F0
-.47(when the)2.72 F 2.969(ya)-.15 G .469(ppear as ar)-2.969 F .469
-(guments to simple commands.)-.18 F .469(Bash does not do this,)5.469 F
--.15(ex)108 259.2 S(cept for the).15 E F3(declar)2.5 E(ation)-.15 E F0
-(commands listed abo)2.5 E -.15(ve)-.15 G 2.5(,w).15 G(hen in)-2.5 E F3
-(posix mode)2.5 E F0(.)A F4 -.1(Pa)87 276 S(rameter Expansion).1 E F0
-.199(The `)108 288 R F4($)A F0 2.699('c)C .199
-(haracter introduces parameter e)-2.699 F .199
-(xpansion, command substitution, or arithmetic e)-.15 F 2.7
-(xpansion. The)-.15 F(pa-)2.7 E .314(rameter name or symbol to be e)108
-300 R .314(xpanded may be enclosed in braces, which are optional b)-.15
-F .314(ut serv)-.2 F 2.813(et)-.15 G 2.813(op)-2.813 G(rotect)-2.813 E
-.414(the v)108 312 R .414(ariable to be e)-.25 F .414
-(xpanded from characters immediately follo)-.15 F .415
-(wing it which could be interpreted as part of)-.25 F(the name.)108 324
-Q 1.19(When braces are used, the matching ending brace is the \214rst `)
-108 340.8 R F4(})A F0 3.689('n)C 1.189
-(ot escaped by a backslash or within a)-3.689 F .821
-(quoted string, and not within an embedded arithmetic e)108 352.8 R .822
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(the name.)108 84 Q
+1.189(When braces are used, the matching ending brace is the \214rst `)
+108 100.8 R/F1 10/Times-Bold@0 SF(})A F0 3.69('n)C 1.19
+(ot escaped by a backslash or within a)-3.69 F .822
+(quoted string, and not within an embedded arithmetic e)108 112.8 R .821
(xpansion, command substitution, or parameter e)-.15 F(x-)-.15 E
-(pansion.)108 364.8 Q(${)108 381.6 Q F3(par)A(ameter)-.15 E F0(})A .106
-(The v)144 393.6 R .106(alue of)-.25 F F3(par)2.606 E(ameter)-.15 E F0
-.106(is substituted.)2.606 F .106(The braces are required when)5.106 F
-F3(par)3.856 E(ameter)-.15 E F0 .106(is a positional pa-)3.336 F .11
-(rameter with more than one digit, or when)144 405.6 R F3(par)3.86 E
-(ameter)-.15 E F0 .111(is follo)3.341 F .111
+(pansion.)108 124.8 Q(${)108 141.6 Q/F2 10/Times-Italic@0 SF(par)A
+(ameter)-.15 E F0(})A .106(The v)144 153.6 R .106(alue of)-.25 F F2(par)
+2.606 E(ameter)-.15 E F0 .106(is substituted.)2.606 F .106
+(The braces are required when)5.106 F F2(par)3.856 E(ameter)-.15 E F0
+.106(is a positional pa-)3.336 F .111
+(rameter with more than one digit, or when)144 165.6 R F2(par)3.861 E
+(ameter)-.15 E F0 .111(is follo)3.341 F .11
(wed by a character which is not to be)-.25 F .208
-(interpreted as part of its name.)144 417.6 R(The)5.208 E F3(par)2.708 E
+(interpreted as part of its name.)144 177.6 R(The)5.208 E F2(par)2.708 E
(ameter)-.15 E F0 .208(is a shell parameter as described abo)2.708 F
--.15(ve)-.15 G F4 -.74(PA)2.858 G(RAME-).74 E(TERS)144 429.6 Q F0 2.5
-(\)o)C 2.5(ra)-2.5 G 2.5(na)-2.5 G(rray reference \()-2.5 E F4(Arrays)A
-F0(\).)A .346(If the \214rst character of)108 446.4 R F3(par)2.846 E
+-.15(ve)-.15 G F1 -.74(PA)2.858 G(RAME-).74 E(TERS)144 189.6 Q F0 2.5
+(\)o)C 2.5(ra)-2.5 G 2.5(na)-2.5 G(rray reference \()-2.5 E F1(Arrays)A
+F0(\).)A .347(If the \214rst character of)108 206.4 R F2(par)2.846 E
(ameter)-.15 E F0 .346(is an e)2.846 F .346(xclamation point \()-.15 F
-F4(!)A F0 .346(\), and)B F3(par)2.846 E(ameter)-.15 E F0 .346(is not a)
-2.846 F F3(namer)2.846 E(ef)-.37 E F0 2.847(,i)C 2.847(ti)-2.847 G
-(ntroduces)-2.847 E 2.907(al)108 458.4 S -2.15 -.25(ev e)-2.907 H 2.907
-(lo).25 G 2.906(fi)-2.907 G(ndirection.)-2.906 E F4(Bash)5.406 E F0 .406
+F1(!)A F0 .346(\), and)B F2(par)2.846 E(ameter)-.15 E F0 .346(is not a)
+2.846 F F2(namer)2.846 E(ef)-.37 E F0 2.846(,i)C 2.846(ti)-2.846 G
+(ntroduces)-2.846 E 2.906(al)108 218.4 S -2.15 -.25(ev e)-2.906 H 2.906
+(lo).25 G 2.906(fi)-2.906 G(ndirection.)-2.906 E F1(Bash)5.406 E F0 .406
(uses the v)2.906 F .406(alue formed by e)-.25 F .406
-(xpanding the rest of)-.15 F F3(par)2.906 E(ameter)-.15 E F0 .406
-(as the ne)2.906 F(w)-.25 E F3(par)2.906 E(ame-)-.15 E(ter)108 470.4 Q
-F0 2.578(;t)C .078(his is then e)-2.578 F .078(xpanded and that v)-.15 F
-.079(alue is used in the rest of the e)-.25 F .079
-(xpansion, rather than the e)-.15 F .079(xpansion of the)-.15 F
-(original)108 482.4 Q F3(par)2.543 E(ameter)-.15 E F0 5.043(.T)C .043
-(his is kno)-5.043 F .043(wn as)-.25 F F3(indir)2.543 E .043(ect e)-.37
-F(xpansion)-.2 E F0 5.043(.T)C .043(he v)-5.043 F .042
-(alue is subject to tilde e)-.25 F .042(xpansion, parameter)-.15 F -.15
-(ex)108 494.4 S .248(pansion, command substitution, and arithmetic e).15
-F 2.748(xpansion. If)-.15 F F3(par)2.749 E(ameter)-.15 E F0 .249
-(is a nameref, this e)2.749 F .249(xpands to the)-.15 F 1.51
-(name of the parameter referenced by)108 506.4 R F3(par)4.01 E(ameter)
+(xpanding the rest of)-.15 F F2(par)2.906 E(ameter)-.15 E F0 .406
+(as the ne)2.906 F(w)-.25 E F2(par)2.907 E(ame-)-.15 E(ter)108 230.4 Q
+F0 2.579(;t)C .079(his is then e)-2.579 F .079(xpanded and that v)-.15 F
+.079(alue is used in the rest of the e)-.25 F .078
+(xpansion, rather than the e)-.15 F .078(xpansion of the)-.15 F
+(original)108 242.4 Q F2(par)2.542 E(ameter)-.15 E F0 5.042(.T)C .042
+(his is kno)-5.042 F .042(wn as)-.25 F F2(indir)2.543 E .043(ect e)-.37
+F(xpansion)-.2 E F0 5.043(.T)C .043(he v)-5.043 F .043
+(alue is subject to tilde e)-.25 F .043(xpansion, parameter)-.15 F -.15
+(ex)108 254.4 S .249(pansion, command substitution, and arithmetic e).15
+F 2.749(xpansion. If)-.15 F F2(par)2.749 E(ameter)-.15 E F0 .248
+(is a nameref, this e)2.749 F .248(xpands to the)-.15 F 1.51
+(name of the parameter referenced by)108 266.4 R F2(par)4.01 E(ameter)
-.15 E F0 1.51(instead of performing the complete indirect e)4.01 F
-(xpansion.)-.15 E .387(The e)108 518.4 R .387
-(xceptions to this are the e)-.15 F .387(xpansions of ${)-.15 F F4(!)A
-F3(pr)A(e\214x)-.37 E F4(*)A F0 2.887(}a)C .387(nd ${)-2.887 F F4(!)A F3
-(name)A F0([)A F3(@)A F0 .387(]} described belo)B 4.188 -.65(w. T)-.25 H
-.388(he e).65 F(xclama-)-.15 E(tion point must immediately follo)108
-530.4 Q 2.5(wt)-.25 G(he left brace in order to introduce indirection.)
--2.5 E .334(In each of the cases belo)108 547.2 R -.65(w,)-.25 G F3(wor)
+(xpansion.)-.15 E .388(The e)108 278.4 R .387
+(xceptions to this are the e)-.15 F .387(xpansions of ${)-.15 F F1(!)A
+F2(pr)A(e\214x)-.37 E F1(*)A F0 2.887(}a)C .387(nd ${)-2.887 F F1(!)A F2
+(name)A F0([)A F2(@)A F0 .387(]} described belo)B 4.187 -.65(w. T)-.25 H
+.387(he e).65 F(xclama-)-.15 E(tion point must immediately follo)108
+290.4 Q 2.5(wt)-.25 G(he left brace in order to introduce indirection.)
+-2.5 E .334(In each of the cases belo)108 307.2 R -.65(w,)-.25 G F2(wor)
3.484 E(d)-.37 E F0 .334(is subject to tilde e)2.834 F .334
(xpansion, parameter e)-.15 F .334(xpansion, command substitution,)-.15
-F(and arithmetic e)108 559.2 Q(xpansion.)-.15 E .066
-(When not performing substring e)108 576 R .067
+F(and arithmetic e)108 319.2 Q(xpansion.)-.15 E .067
+(When not performing substring e)108 336 R .067
(xpansion, using the forms documented belo)-.15 F 2.567(w\()-.25 G
-(e.g.,)-2.567 E F4(:-)2.567 E F0(\),)A F4(bash)2.567 E F0 .067
-(tests for a pa-)2.567 F(rameter that is unset or null.)108 588 Q(Omitt\
+(e.g.,)-2.567 E F1(:-)2.567 E F0(\),)A F1(bash)2.567 E F0 .066
+(tests for a pa-)2.567 F(rameter that is unset or null.)108 348 Q(Omitt\
ing the colon results in a test only for a parameter that is unset.)5 E
-(${)108 604.8 Q F3(par)A(ameter)-.15 E F4<3aad>A F3(wor)A(d)-.37 E F0(})
-A F4 .723(Use Default V)144 616.8 R(alues)-.92 E F0 5.723(.I)C(f)-5.723
-E F3(par)4.473 E(ameter)-.15 E F0 .723(is unset or null, the e)3.953 F
-.722(xpansion of)-.15 F F3(wor)3.562 E(d)-.37 E F0 .722(is substituted.)
-3.992 F(Other)5.722 E(-)-.2 E(wise, the v)144 628.8 Q(alue of)-.25 E F3
-(par)3.75 E(ameter)-.15 E F0(is substituted.)3.23 E(${)108 640.8 Q F3
-(par)A(ameter)-.15 E F4(:=)A F3(wor)A(d)-.37 E F0(})A F4 .811
-(Assign Default V)144 652.8 R(alues)-.92 E F0 5.812(.I)C(f)-5.812 E F3
+(${)108 364.8 Q F2(par)A(ameter)-.15 E F1<3aad>A F2(wor)A(d)-.37 E F0(})
+A F1 .722(Use Default V)144 376.8 R(alues)-.92 E F0 5.722(.I)C(f)-5.722
+E F2(par)4.472 E(ameter)-.15 E F0 .723(is unset or null, the e)3.952 F
+.723(xpansion of)-.15 F F2(wor)3.563 E(d)-.37 E F0 .723(is substituted.)
+3.993 F(Other)5.723 E(-)-.2 E(wise, the v)144 388.8 Q(alue of)-.25 E F2
+(par)3.75 E(ameter)-.15 E F0(is substituted.)3.23 E(${)108 400.8 Q F2
+(par)A(ameter)-.15 E F1(:=)A F2(wor)A(d)-.37 E F0(})A F1 .812
+(Assign Default V)144 412.8 R(alues)-.92 E F0 5.812(.I)C(f)-5.812 E F2
(par)4.562 E(ameter)-.15 E F0 .812(is unset or null, the e)4.042 F .812
-(xpansion of)-.15 F F3(wor)3.652 E(d)-.37 E F0 .812(is assigned to)4.082
-F F3(pa-)4.562 E -.15(ra)144 664.8 S(meter).15 E F0 5.742(.T).73 G .742
-(he v)-5.742 F .742(alue of)-.25 F F3(par)4.492 E(ameter)-.15 E F0 .742
-(is then substituted.)3.972 F .741
+(xpansion of)-.15 F F2(wor)3.652 E(d)-.37 E F0 .812(is assigned to)4.082
+F F2(pa-)4.561 E -.15(ra)144 424.8 S(meter).15 E F0 5.741(.T).73 G .741
+(he v)-5.741 F .741(alue of)-.25 F F2(par)4.491 E(ameter)-.15 E F0 .742
+(is then substituted.)3.972 F .742
(Positional parameters and special parame-)5.742 F
-(ters may not be assigned to in this w)144 676.8 Q(ay)-.1 E(.)-.65 E(${)
-108 688.8 Q F3(par)A(ameter)-.15 E F4(:?)A F3(wor)A(d)-.37 E F0(})A F4
-.535(Display Err)144 700.8 R .535(or if Null or Unset)-.18 F F0 5.535
-(.I)C(f)-5.535 E F3(par)4.285 E(ameter)-.15 E F0 .535
-(is null or unset, the e)3.765 F .535(xpansion of)-.15 F F3(wor)3.035 E
-(d)-.37 E F0 .535(\(or a mes-)3.035 F .013(sage to that ef)144 712.8 R
-.013(fect if)-.25 F F3(wor)2.853 E(d)-.37 E F0 .013(is not present\) is\
- written to the standard error and the shell, if it is not in-)3.283 F
-(teracti)144 724.8 Q -.15(ve)-.25 G 2.5(,e).15 G 2.5(xits. Otherwise,)
--2.65 F(the v)2.5 E(alue of)-.25 E F3(par)2.5 E(ameter)-.15 E F0
-(is substituted.)2.5 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E
-(22)190.395 E 0 Cg EP
-%%Page: 23 23
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(${)108 84 Q/F1 10
-/Times-Italic@0 SF(par)A(ameter)-.15 E/F2 10/Times-Bold@0 SF(:+)A F1
-(wor)A(d)-.37 E F0(})A F2 .745(Use Alter)144 96 R .745(nate V)-.15 F
-(alue)-.92 E F0 5.745(.I)C(f)-5.745 E F1(par)4.495 E(ameter)-.15 E F0
+(ters may not be assigned to in this w)144 436.8 Q(ay)-.1 E(.)-.65 E(${)
+108 448.8 Q F2(par)A(ameter)-.15 E F1(:?)A F2(wor)A(d)-.37 E F0(})A F1
+.535(Display Err)144 460.8 R .535(or if Null or Unset)-.18 F F0 5.535
+(.I)C(f)-5.535 E F2(par)4.285 E(ameter)-.15 E F0 .535
+(is null or unset, the e)3.765 F .535(xpansion of)-.15 F F2(wor)3.035 E
+(d)-.37 E F0 .535(\(or a mes-)3.035 F .012(sage to that ef)144 472.8 R
+.012(fect if)-.25 F F2(wor)2.852 E(d)-.37 E F0 .013(is not present\) is\
+ written to the standard error and the shell, if it is not in-)3.282 F
+(teracti)144 484.8 Q -.15(ve)-.25 G 2.5(,e).15 G 2.5(xits. Otherwise,)
+-2.65 F(the v)2.5 E(alue of)-.25 E F2(par)2.5 E(ameter)-.15 E F0
+(is substituted.)2.5 E(${)108 496.8 Q F2(par)A(ameter)-.15 E F1(:+)A F2
+(wor)A(d)-.37 E F0(})A F1 .745(Use Alter)144 508.8 R .745(nate V)-.15 F
+(alue)-.92 E F0 5.745(.I)C(f)-5.745 E F2(par)4.495 E(ameter)-.15 E F0
.745(is null or unset, nothing is substituted, otherwise the e)3.975 F
-(xpan-)-.15 E(sion of)144 108 Q F1(wor)2.84 E(d)-.37 E F0
-(is substituted.)3.27 E(${)108 120 Q F1(par)A(ameter)-.15 E F2(:)A F1
-(of)A(fset)-.18 E F0(})A(${)108 132 Q F1(par)A(ameter)-.15 E F2(:)A F1
-(of)A(fset)-.18 E F2(:)A F1(length)A F0(})A F2 .002(Substring Expansion)
-144 144 R F0 5.002(.E)C .002(xpands to up to)-5.002 F F1(length)2.502 E
-F0 .002(characters of the v)2.502 F .002(alue of)-.25 F F1(par)2.502 E
-(ameter)-.15 E F0 .002(starting at the)2.502 F .235
-(character speci\214ed by)144 156 R F1(of)2.735 E(fset)-.18 E F0 5.235
-(.I)C(f)-5.235 E F1(par)2.735 E(ameter)-.15 E F0(is)2.735 E F2(@)2.735 E
-F0 2.735(,a)C 2.735(ni)-2.735 G(nde)-2.735 E -.15(xe)-.15 G 2.735(da).15
-G .235(rray subscripted by)-2.735 F F2(@)2.735 E F0(or)2.735 E F2(*)
-2.735 E F0 2.735(,o)C 2.735(ra)-2.735 G 2.735(na)-2.735 G(s-)-2.735 E
-(sociati)144 168 Q 1.578 -.15(ve a)-.25 H 1.278
-(rray name, the results dif).15 F 1.277(fer as described belo)-.25 F
-5.077 -.65(w. I)-.25 H(f).65 E F1(length)3.777 E F0 1.277(is omitted, e)
-3.777 F 1.277(xpands to the)-.15 F .042(substring of the v)144 180 R
-.042(alue of)-.25 F F1(par)2.542 E(ameter)-.15 E F0 .043
-(starting at the character speci\214ed by)2.542 F F1(of)2.543 E(fset)
--.18 E F0 .043(and e)2.543 F .043(xtending to the)-.15 F .847
-(end of the v)144 192 R(alue.)-.25 E F1(length)5.846 E F0(and)3.346 E F1
-(of)3.346 E(fset)-.18 E F0 .846(are arithmetic e)3.346 F .846
-(xpressions \(see)-.15 F/F3 9/Times-Bold@0 SF .846(ARITHMETIC EV)3.346 F
-(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(belo)144 204 Q(w\).)-.25 E
-(If)144 228 Q F1(of)3.028 E(fset)-.18 E F0 -.25(eva)3.029 G .529
+(xpan-)-.15 E(sion of)144 520.8 Q F2(wor)2.84 E(d)-.37 E F0
+(is substituted.)3.27 E(${)108 532.8 Q F2(par)A(ameter)-.15 E F1(:)A F2
+(of)A(fset)-.18 E F0(})A(${)108 544.8 Q F2(par)A(ameter)-.15 E F1(:)A F2
+(of)A(fset)-.18 E F1(:)A F2(length)A F0(})A F1 .002(Substring Expansion)
+144 556.8 R F0 5.002(.E)C .002(xpands to up to)-5.002 F F2(length)2.502
+E F0 .002(characters of the v)2.502 F .002(alue of)-.25 F F2(par)2.502 E
+(ameter)-.15 E F0 .002(starting at the)2.502 F .004
+(character speci\214ed by)144 568.8 R F2(of)2.504 E(fset)-.18 E F0 5.003
+(.I)C(f)-5.003 E F2(par)2.503 E(ameter)-.15 E F0(is)2.503 E F1(@)2.503 E
+F0(or)2.503 E F1(*)2.503 E F0 2.503(,a)C 2.503(ni)-2.503 G(nde)-2.503 E
+-.15(xe)-.15 G 2.503(da).15 G .003(rray subscripted by)-2.503 F F1(@)
+2.503 E F0(or)2.503 E F1(*)2.503 E F0 2.503(,o)C 2.503(ra)-2.503 G(n)
+-2.503 E(associati)144 580.8 Q 1.022 -.15(ve a)-.25 H .722
+(rray name, the results dif).15 F .722(fer as described belo)-.25 F
+4.522 -.65(w. I)-.25 H(f).65 E F2(length)3.222 E F0 .722(is omitted, e)
+3.222 F .722(xpands to the)-.15 F .043(substring of the v)144 592.8 R
+.043(alue of)-.25 F F2(par)2.543 E(ameter)-.15 E F0 .042
+(starting at the character speci\214ed by)2.543 F F2(of)2.542 E(fset)
+-.18 E F0 .042(and e)2.542 F .042(xtending to the)-.15 F .846
+(end of the v)144 604.8 R(alue.)-.25 E F2(length)5.846 E F0(and)3.346 E
+F2(of)3.346 E(fset)-.18 E F0 .846(are arithmetic e)3.346 F .847
+(xpressions \(see)-.15 F/F3 9/Times-Bold@0 SF .847(ARITHMETIC EV)3.347 F
+(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(belo)144 616.8 Q(w\).)-.25 E
+(If)144 640.8 Q F2(of)3.029 E(fset)-.18 E F0 -.25(eva)3.029 G .529
(luates to a number less than zero, the v).25 F .529
(alue is used as an of)-.25 F .529(fset in characters from the)-.25 F
-.046(end of the v)144 240 R .046(alue of)-.25 F F1(par)2.546 E(ameter)
--.15 E F0 5.046(.I)C(f)-5.046 E F1(length)2.546 E F0 -.25(eva)2.546 G
+.045(end of the v)144 652.8 R .045(alue of)-.25 F F2(par)2.546 E(ameter)
+-.15 E F0 5.046(.I)C(f)-5.046 E F2(length)2.546 E F0 -.25(eva)2.546 G
.046(luates to a number less than zero, it is interpreted as an).25 F
-(of)144 252 Q .202(fset in characters from the end of the v)-.25 F .202
-(alue of)-.25 F F1(par)2.702 E(ameter)-.15 E F0 .203
-(rather than a number of characters, and)2.702 F .558(the e)144 264 R
-.558(xpansion is the characters between)-.15 F F1(of)3.058 E(fset)-.18 E
-F0 .558(and that result.)3.058 F .557(Note that a ne)5.557 F -.05(ga)
--.15 G(ti).05 E .857 -.15(ve o)-.25 H -.25(ff).15 G .557(set must be).25
-F(separated from the colon by at least one space to a)144 276 Q -.2(vo)
--.2 G(id being confused with the).2 E F2(:-)2.5 E F0 -.15(ex)2.5 G
-(pansion.).15 E(If)144 300 Q F1(par)2.958 E(ameter)-.15 E F0(is)2.958 E
-F2(@)2.958 E F0 2.958(,t)C .458(he result is)-2.958 F F1(length)2.959 E
-F0 .459(positional parameters be)2.959 F .459(ginning at)-.15 F F1(of)
-2.959 E(fset)-.18 E F0 5.459(.A)C(ne)-2.5 E -.05(ga)-.15 G(ti).05 E -.15
-(ve)-.25 G F1(of)3.109 E(fset)-.18 E F0 .6(is tak)144 312 R .6
-(en relati)-.1 F .9 -.15(ve t)-.25 H 3.1(oo).15 G .6
-(ne greater than the greatest positional parameter)-3.1 F 3.1(,s)-.4 G
-3.1(oa)-3.1 G 3.1(no)-3.1 G -.25(ff)-3.1 G .6(set of \2551 e).25 F -.25
-(va)-.25 G(luates).25 E .639(to the last positional parameter)144 324 R
-5.639(.I)-.55 G 3.139(ti)-5.639 G 3.139(sa)-3.139 G 3.139(ne)-3.139 G
-.639(xpansion error if)-3.289 F F1(length)3.14 E F0 -.25(eva)3.14 G .64
-(luates to a number less than).25 F(zero.)144 336 Q(If)144 360 Q F1(par)
-3.014 E(ameter)-.15 E F0 .514(is an inde)3.014 F -.15(xe)-.15 G 3.014
+(of)144 664.8 Q .203(fset in characters from the end of the v)-.25 F
+.202(alue of)-.25 F F2(par)2.702 E(ameter)-.15 E F0 .202
+(rather than a number of characters, and)2.702 F .557(the e)144 676.8 R
+.557(xpansion is the characters between)-.15 F F2(of)3.057 E(fset)-.18 E
+F0 .557(and that result.)3.057 F .558(Note that a ne)5.558 F -.05(ga)
+-.15 G(ti).05 E .858 -.15(ve o)-.25 H -.25(ff).15 G .558(set must be).25
+F(separated from the colon by at least one space to a)144 688.8 Q -.2
+(vo)-.2 G(id being confused with the).2 E F1(:-)2.5 E F0 -.15(ex)2.5 G
+(pansion.).15 E(If)144 712.8 Q F2(par)3.284 E(ameter)-.15 E F0(is)3.284
+E F1(@)3.284 E F0(or)3.284 E F1(*)3.284 E F0 3.284(,t)C .784
+(he result is)-3.284 F F2(length)3.284 E F0 .784
+(positional parameters be)3.284 F .783(ginning at)-.15 F F2(of)3.283 E
+(fset)-.18 E F0 5.783(.A)C(ne)-2.5 E -.05(ga)-.15 G(ti).05 E -.15(ve)
+-.25 G F2(of)144 724.8 Q(fset)-.18 E F0 1.551(is tak)4.051 F 1.551
+(en relati)-.1 F 1.851 -.15(ve t)-.25 H 4.051(oo).15 G 1.551
+(ne greater than the greatest positional parameter)-4.051 F 4.051(,s)-.4
+G 4.052(oa)-4.051 G 4.052(no)-4.052 G -.25(ff)-4.052 G 1.552
+(set of \2551).25 F(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E
+(23)185.115 E 0 Cg EP
+%%Page: 24 24
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E -.25(eva)144 84 S
+.555(luates to the last positional parameter).25 F 5.555(.I)-.55 G 3.055
+(ti)-5.555 G 3.055(sa)-3.055 G 3.055(ne)-3.055 G .555(xpansion error if)
+-3.205 F/F1 10/Times-Italic@0 SF(length)3.055 E F0 -.25(eva)3.055 G .555
+(luates to a number).25 F(less than zero.)144 96 Q(If)144 120 Q F1(par)
+3.013 E(ameter)-.15 E F0 .514(is an inde)3.013 F -.15(xe)-.15 G 3.014
(da).15 G .514(rray name subscripted by @ or *, the result is the)-3.014
-F F1(length)3.014 E F0 .513(members of)3.013 F 1.081(the array be)144
-372 R 1.081(ginning with ${)-.15 F F1(par)A(ameter)-.15 E F0([)A F1(of)A
-(fset)-.18 E F0 3.581(]}. A)B(ne)3.581 E -.05(ga)-.15 G(ti).05 E -.15
-(ve)-.25 G F1(of)3.732 E(fset)-.18 E F0 1.082(is tak)3.582 F 1.082
-(en relati)-.1 F 1.382 -.15(ve t)-.25 H 3.582(oo).15 G 1.082(ne greater)
--3.582 F 1.08(than the maximum inde)144 384 R 3.58(xo)-.15 G 3.58(ft)
--3.58 G 1.08(he speci\214ed array)-3.58 F 6.079(.I)-.65 G 3.579(ti)
--6.079 G 3.579(sa)-3.579 G 3.579(ne)-3.579 G 1.079(xpansion error if)
--3.729 F F1(length)3.579 E F0 -.25(eva)3.579 G 1.079(luates to a).25 F
-(number less than zero.)144 396 Q(Substring e)144 420 Q
+F F1(length)3.014 E F0 .514(members of)3.014 F 1.082(the array be)144
+132 R 1.082(ginning with ${)-.15 F F1(par)A(ameter)-.15 E F0([)A F1(of)A
+(fset)-.18 E F0 3.582(]}. A)B(ne)3.582 E -.05(ga)-.15 G(ti).05 E -.15
+(ve)-.25 G F1(of)3.732 E(fset)-.18 E F0 1.081(is tak)3.581 F 1.081
+(en relati)-.1 F 1.381 -.15(ve t)-.25 H 3.581(oo).15 G 1.081(ne greater)
+-3.581 F 1.079(than the maximum inde)144 144 R 3.579(xo)-.15 G 3.579(ft)
+-3.579 G 1.079(he speci\214ed array)-3.579 F 6.079(.I)-.65 G 3.579(ti)
+-6.079 G 3.579(sa)-3.579 G 3.58(ne)-3.579 G 1.08(xpansion error if)-3.73
+F F1(length)3.58 E F0 -.25(eva)3.58 G 1.08(luates to a).25 F
+(number less than zero.)144 156 Q(Substring e)144 180 Q
(xpansion applied to an associati)-.15 E .3 -.15(ve a)-.25 H
-(rray produces unde\214ned results.).15 E .82(Substring inde)144 444 R
+(rray produces unde\214ned results.).15 E .821(Substring inde)144 204 R
.821(xing is zero-based unless the positional parameters are used, in w\
-hich case the in-)-.15 F(de)144 456 Q .159(xing starts at 1 by def)-.15
+hich case the in-)-.15 F(de)144 216 Q .159(xing starts at 1 by def)-.15
F 2.659(ault. If)-.1 F F1(of)2.659 E(fset)-.18 E F0 .159
-(is 0, and the positional parameters are used,)2.659 F F2($0)2.659 E F0
-.159(is pre\214x)2.659 F .158(ed to)-.15 F(the list.)144 468 Q(${)108
-484.8 Q F2(!)A F1(pr)A(e\214x)-.37 E F2(*)A F0(})A(${)108 496.8 Q F2(!)A
-F1(pr)A(e\214x)-.37 E F2(@)A F0(})A F2 .084(Names matching pr)144 508.8
-R(e\214x)-.18 E F0 5.084(.E)C .084(xpands to the names of v)-5.084 F
-.084(ariables whose names be)-.25 F .085(gin with)-.15 F F1(pr)2.585 E
-(e\214x)-.37 E F0 2.585(,s)C(epa-)-2.585 E .258
-(rated by the \214rst character of the)144 520.8 R F3(IFS)2.758 E F0
-.257(special v)2.507 F 2.757(ariable. When)-.25 F F1(@)2.757 E F0 .257
-(is used and the e)2.757 F .257(xpansion appears)-.15 F
-(within double quotes, each v)144 532.8 Q(ariable name e)-.25 E
-(xpands to a separate w)-.15 E(ord.)-.1 E(${)108 549.6 Q F2(!)A F1(name)
-A F0([)A F1(@)A F0(]})A(${)108 561.6 Q F2(!)A F1(name)A F0([)A F1(*)A F0
-(]})A F2 1.136(List of array k)144 573.6 R(eys)-.1 E F0 6.136(.I)C(f)
--6.136 E F1(name)3.636 E F0 1.136(is an array v)3.636 F 1.136
-(ariable, e)-.25 F 1.136(xpands to the list of array indices \(k)-.15 F
--.15(ey)-.1 G 1.137(s\) as-).15 F .397(signed in)144 585.6 R F1(name)
-2.897 E F0 5.397(.I)C(f)-5.397 E F1(name)2.897 E F0 .397
-(is not an array)2.897 F 2.897(,e)-.65 G .397(xpands to 0 if)-3.047 F F1
-(name)2.897 E F0 .397(is set and null otherwise.)2.897 F(When)5.397 E F1
-(@)2.897 E F0(is used and the e)144 597.6 Q
+(is 0, and the positional parameters are used,)2.659 F/F2 10
+/Times-Bold@0 SF($0)2.659 E F0 .159(is pre\214x)2.659 F .159(ed to)-.15
+F(the list.)144 228 Q(${)108 244.8 Q F2(!)A F1(pr)A(e\214x)-.37 E F2(*)A
+F0(})A(${)108 256.8 Q F2(!)A F1(pr)A(e\214x)-.37 E F2(@)A F0(})A F2 .085
+(Names matching pr)144 268.8 R(e\214x)-.18 E F0 5.085(.E)C .084
+(xpands to the names of v)-5.085 F .084(ariables whose names be)-.25 F
+.084(gin with)-.15 F F1(pr)2.584 E(e\214x)-.37 E F0 2.584(,s)C(epa-)
+-2.584 E .257(rated by the \214rst character of the)144 280.8 R/F3 9
+/Times-Bold@0 SF(IFS)2.757 E F0 .257(special v)2.507 F 2.757
+(ariable. When)-.25 F F1(@)2.758 E F0 .258(is used and the e)2.758 F
+.258(xpansion appears)-.15 F(within double quotes, each v)144 292.8 Q
+(ariable name e)-.25 E(xpands to a separate w)-.15 E(ord.)-.1 E(${)108
+309.6 Q F2(!)A F1(name)A F0([)A F1(@)A F0(]})A(${)108 321.6 Q F2(!)A F1
+(name)A F0([)A F1(*)A F0(]})A F2 1.137(List of array k)144 333.6 R(eys)
+-.1 E F0 6.136(.I)C(f)-6.136 E F1(name)3.636 E F0 1.136(is an array v)
+3.636 F 1.136(ariable, e)-.25 F 1.136
+(xpands to the list of array indices \(k)-.15 F -.15(ey)-.1 G 1.136
+(s\) as-).15 F .397(signed in)144 345.6 R F1(name)2.897 E F0 5.397(.I)C
+(f)-5.397 E F1(name)2.897 E F0 .397(is not an array)2.897 F 2.897(,e)
+-.65 G .397(xpands to 0 if)-3.047 F F1(name)2.897 E F0 .397
+(is set and null otherwise.)2.897 F(When)5.397 E F1(@)2.897 E F0
+(is used and the e)144 357.6 Q
(xpansion appears within double quotes, each k)-.15 E .3 -.15(ey ex)-.1
-H(pands to a separate w).15 E(ord.)-.1 E(${)108 614.4 Q F2(#)A F1(par)A
-(ameter)-.15 E F0(})A F2 -.1(Pa)144 626.4 S .47(rameter length).1 F F0
-5.47(.T)C .471(he length in characters of the v)-5.47 F .471(alue of)
--.25 F F1(par)2.971 E(ameter)-.15 E F0 .471(is substituted.)2.971 F(If)
-5.471 E F1(par)4.221 E(ame-)-.15 E(ter)144 638.4 Q F0(is)3.627 E F2(*)
-2.897 E F0(or)2.897 E F2(@)2.897 E F0 2.897(,t)C .397(he v)-2.897 F .397
+H(pands to a separate w).15 E(ord.)-.1 E(${)108 374.4 Q F2(#)A F1(par)A
+(ameter)-.15 E F0(})A F2 -.1(Pa)144 386.4 S .471(rameter length).1 F F0
+5.471(.T)C .471(he length in characters of the v)-5.471 F .471(alue of)
+-.25 F F1(par)2.971 E(ameter)-.15 E F0 .47(is substituted.)2.97 F(If)
+5.47 E F1(par)4.22 E(ame-)-.15 E(ter)144 398.4 Q F0(is)3.626 E F2(*)
+2.896 E F0(or)2.896 E F2(@)2.896 E F0 2.896(,t)C .396(he v)-2.896 F .397
(alue substituted is the number of positional parameters.)-.25 F(If)
-5.396 E F1(par)4.146 E(ameter)-.15 E F0 .396(is an ar)3.626 F(-)-.2 E
-.78(ray name subscripted by)144 650.4 R F2(*)3.28 E F0(or)3.28 E F2(@)
-3.28 E F0 3.28(,t)C .78(he v)-3.28 F .781
-(alue substituted is the number of elements in the array)-.25 F 5.781
-(.I)-.65 G(f)-5.781 E F1(par)145.25 662.4 Q(ameter)-.15 E F0 .456
-(is an inde)3.686 F -.15(xe)-.15 G 2.956(da).15 G .456
-(rray name subscripted by a ne)-2.956 F -.05(ga)-.15 G(ti).05 E .756
--.15(ve n)-.25 H(umber).15 E 2.955(,t)-.4 G .455
-(hat number is interpreted)-2.955 F .972(as relati)144 674.4 R 1.272
--.15(ve t)-.25 H 3.472(oo).15 G .973(ne greater than the maximum inde)
--3.472 F 3.473(xo)-.15 G(f)-3.473 E F1(par)3.473 E(ameter)-.15 E F0
-3.473(,s)C 3.473(on)-3.473 G -2.25 -.15(eg a)-3.473 H(ti).15 E 1.273
--.15(ve i)-.25 H .973(ndices count back).15 F(from the end of the array)
-144 686.4 Q 2.5(,a)-.65 G(nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5
-G 2.5(1r)-2.5 G(eferences the last element.)-2.5 E(${)108 703.2 Q F1
-(par)A(ameter)-.15 E F2(#)A F1(wor)A(d)-.37 E F0(})A(GNU Bash 5.1)72 768
-Q(2020 October 29)141.235 E(23)190.395 E 0 Cg EP
-%%Page: 24 24
+5.397 E F1(par)4.147 E(ameter)-.15 E F0 .397(is an ar)3.627 F(-)-.2 E
+.781(ray name subscripted by)144 410.4 R F2(*)3.281 E F0(or)3.281 E F2
+(@)3.281 E F0 3.281(,t)C .781(he v)-3.281 F .78
+(alue substituted is the number of elements in the array)-.25 F 5.78(.I)
+-.65 G(f)-5.78 E F1(par)145.25 422.4 Q(ameter)-.15 E F0 .455(is an inde)
+3.685 F -.15(xe)-.15 G 2.955(da).15 G .456
+(rray name subscripted by a ne)-2.955 F -.05(ga)-.15 G(ti).05 E .756
+-.15(ve n)-.25 H(umber).15 E 2.956(,t)-.4 G .456
+(hat number is interpreted)-2.956 F .973(as relati)144 434.4 R 1.273
+-.15(ve t)-.25 H 3.473(oo).15 G .973(ne greater than the maximum inde)
+-3.473 F 3.473(xo)-.15 G(f)-3.473 E F1(par)3.473 E(ameter)-.15 E F0
+3.472(,s)C 3.472(on)-3.472 G -2.25 -.15(eg a)-3.472 H(ti).15 E 1.272
+-.15(ve i)-.25 H .972(ndices count back).15 F(from the end of the array)
+144 446.4 Q 2.5(,a)-.65 G(nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5
+G 2.5(1r)-2.5 G(eferences the last element.)-2.5 E(${)108 463.2 Q F1
+(par)A(ameter)-.15 E F2(#)A F1(wor)A(d)-.37 E F0(})A(${)108 475.2 Q F1
+(par)A(ameter)-.15 E F2(##)A F1(wor)A(d)-.37 E F0(})A F2(Remo)144 487.2
+Q 1.396 -.1(ve m)-.1 H 1.196(atching pr).1 F 1.196(e\214x patter)-.18 F
+(n)-.15 E F0 6.196(.T)C(he)-6.196 E F1(wor)4.036 E(d)-.37 E F0 1.196
+(is e)4.466 F 1.196(xpanded to produce a pattern just as in path-)-.15 F
+.544(name e)144 499.2 R .544(xpansion, and matched ag)-.15 F .544
+(ainst the e)-.05 F .544(xpanded v)-.15 F .544(alue of)-.25 F F1(par)
+4.294 E(ameter)-.15 E F0 .543(using the rules described)3.774 F(under)
+144 511.2 Q F2 -.1(Pa)3.132 G(tter).1 E 3.132(nM)-.15 G(atching)-3.132 E
+F0(belo)3.132 E 4.432 -.65(w. I)-.25 H 3.132(ft).65 G .632
+(he pattern matches the be)-3.132 F .632(ginning of the v)-.15 F .633
+(alue of)-.25 F F1(par)4.383 E(ameter)-.15 E F0(,).73 E 1.152
+(then the result of the e)144 523.2 R 1.151(xpansion is the e)-.15 F
+1.151(xpanded v)-.15 F 1.151(alue of)-.25 F F1(par)4.901 E(ameter)-.15 E
+F0 1.151(with the shortest matching)4.381 F .183(pattern \(the `)144
+535.2 R(`)-.74 E F2(#)A F0 1.663 -.74('' c)D .184
+(ase\) or the longest matching pattern \(the `).74 F(`)-.74 E F2(##)A F0
+1.664 -.74('' c)D .184(ase\) deleted.).74 F(If)5.184 E F1(par)3.934 E
+(ameter)-.15 E F0(is)3.414 E F2(@)2.684 E F0(or)144 547.2 Q F2(*)3.019 E
+F0 3.019(,t)C .518(he pattern remo)-3.019 F -.25(va)-.15 G 3.018(lo).25
+G .518
+(peration is applied to each positional parameter in turn, and the e)
+-3.018 F(xpan-)-.15 E .303(sion is the resultant list.)144 559.2 R(If)
+5.303 E F1(par)4.053 E(ameter)-.15 E F0 .303(is an array v)3.533 F .303
+(ariable subscripted with)-.25 F F2(@)2.804 E F0(or)2.804 E F2(*)2.804 E
+F0 2.804(,t)C .304(he pattern re-)-2.804 F(mo)144 571.2 Q -.25(va)-.15 G
+2.988(lo).25 G .487
+(peration is applied to each member of the array in turn, and the e)
+-2.988 F .487(xpansion is the resultant)-.15 F(list.)144 583.2 Q(${)108
+600 Q F1(par)A(ameter)-.15 E F2(%)A F1(wor)A(d)-.37 E F0(})A(${)108 612
+Q F1(par)A(ameter)-.15 E F2(%%)A F1(wor)A(d)-.37 E F0(})A F2(Remo)144
+624 Q .346 -.1(ve m)-.1 H .146(atching suf\214x patter).1 F(n)-.15 E F0
+5.146(.T)C(he)-5.146 E F1(wor)2.646 E(d)-.37 E F0 .147(is e)2.647 F .147
+(xpanded to produce a pattern just as in pathname)-.15 F -.15(ex)144 636
+S .459(pansion, and matched ag).15 F .459(ainst the e)-.05 F .459
+(xpanded v)-.15 F .458(alue of)-.25 F F1(par)4.208 E(ameter)-.15 E F0
+.458(using the rules described under)3.688 F F2 -.1(Pa)144 648 S(tter).1
+E 3.314(nM)-.15 G(atching)-3.314 E F0(belo)3.314 E 4.614 -.65(w. I)-.25
+H 3.314(ft).65 G .814(he pattern matches a trailing portion of the e)
+-3.314 F .814(xpanded v)-.15 F .814(alue of)-.25 F F1(pa-)4.564 E -.15
+(ra)144 660 S(meter).15 E F0 3.817(,t).73 G 1.317
+(hen the result of the e)-3.817 F 1.317(xpansion is the e)-.15 F 1.317
+(xpanded v)-.15 F 1.316(alue of)-.25 F F1(par)5.066 E(ameter)-.15 E F0
+1.316(with the shortest)4.546 F 1.084(matching pattern \(the `)144 672 R
+(`)-.74 E F2(%)A F0 2.564 -.74('' c)D 1.084
+(ase\) or the longest matching pattern \(the `).74 F(`)-.74 E F2(%%)A F0
+2.565 -.74('' c)D 1.085(ase\) deleted.).74 F(If)6.085 E F1(par)145.25
+684 Q(ameter)-.15 E F0(is)3.39 E F2(@)2.66 E F0(or)2.66 E F2(*)2.66 E F0
+2.66(,t)C .16(he pattern remo)-2.66 F -.25(va)-.15 G 2.659(lo).25 G .159
+(peration is applied to each positional parameter in turn,)-2.659 F .509
+(and the e)144 696 R .509(xpansion is the resultant list.)-.15 F(If)
+5.509 E F1(par)4.259 E(ameter)-.15 E F0 .51(is an array v)3.739 F .51
+(ariable subscripted with)-.25 F F2(@)3.01 E F0(or)3.01 E F2(*)3.01 E F0
+(,)A .423(the pattern remo)144 708 R -.25(va)-.15 G 2.923(lo).25 G .422
+(peration is applied to each member of the array in turn, and the e)
+-2.923 F .422(xpansion is)-.15 F(the resultant list.)144 720 Q
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(24)185.115 E 0 Cg EP
+%%Page: 25 25
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(${)108 84 Q/F1 10
-/Times-Italic@0 SF(par)A(ameter)-.15 E/F2 10/Times-Bold@0 SF(##)A F1
-(wor)A(d)-.37 E F0(})A F2(Remo)144 96 Q 1.396 -.1(ve m)-.1 H 1.196
-(atching pr).1 F 1.196(e\214x patter)-.18 F(n)-.15 E F0 6.196(.T)C(he)
--6.196 E F1(wor)4.036 E(d)-.37 E F0 1.196(is e)4.466 F 1.196
-(xpanded to produce a pattern just as in path-)-.15 F .543(name e)144
-108 R .544(xpansion, and matched ag)-.15 F .544(ainst the e)-.05 F .544
-(xpanded v)-.15 F .544(alue of)-.25 F F1(par)4.294 E(ameter)-.15 E F0
-.544(using the rules described)3.774 F(under)144 120 Q F2 -.1(Pa)3.133 G
-(tter).1 E 3.133(nM)-.15 G(atching)-3.133 E F0(belo)3.132 E 4.432 -.65
-(w. I)-.25 H 3.132(ft).65 G .632(he pattern matches the be)-3.132 F .632
-(ginning of the v)-.15 F .632(alue of)-.25 F F1(par)4.382 E(ameter)-.15
-E F0(,).73 E 1.151(then the result of the e)144 132 R 1.151
-(xpansion is the e)-.15 F 1.151(xpanded v)-.15 F 1.151(alue of)-.25 F F1
-(par)4.902 E(ameter)-.15 E F0 1.152(with the shortest matching)4.382 F
-.184(pattern \(the `)144 144 R(`)-.74 E F2(#)A F0 1.664 -.74('' c)D .184
-(ase\) or the longest matching pattern \(the `).74 F(`)-.74 E F2(##)A F0
-1.664 -.74('' c)D .184(ase\) deleted.).74 F(If)5.183 E F1(par)3.933 E
-(ameter)-.15 E F0(is)3.413 E F2(@)2.683 E F0(or)144 156 Q F2(*)3.018 E
-F0 3.018(,t)C .518(he pattern remo)-3.018 F -.25(va)-.15 G 3.018(lo).25
-G .518
-(peration is applied to each positional parameter in turn, and the e)
--3.018 F(xpan-)-.15 E .304(sion is the resultant list.)144 168 R(If)
-5.304 E F1(par)4.054 E(ameter)-.15 E F0 .303(is an array v)3.533 F .303
-(ariable subscripted with)-.25 F F2(@)2.803 E F0(or)2.803 E F2(*)2.803 E
-F0 2.803(,t)C .303(he pattern re-)-2.803 F(mo)144 180 Q -.25(va)-.15 G
-2.987(lo).25 G .487
-(peration is applied to each member of the array in turn, and the e)
--2.987 F .487(xpansion is the resultant)-.15 F(list.)144 192 Q(${)108
-208.8 Q F1(par)A(ameter)-.15 E F2(%)A F1(wor)A(d)-.37 E F0(})A(${)108
-220.8 Q F1(par)A(ameter)-.15 E F2(%%)A F1(wor)A(d)-.37 E F0(})A F2(Remo)
-144 232.8 Q .347 -.1(ve m)-.1 H .147(atching suf\214x patter).1 F(n)-.15
-E F0 5.147(.T)C(he)-5.147 E F1(wor)2.647 E(d)-.37 E F0 .147(is e)2.647 F
-.146(xpanded to produce a pattern just as in pathname)-.15 F -.15(ex)144
-244.8 S .458(pansion, and matched ag).15 F .458(ainst the e)-.05 F .458
-(xpanded v)-.15 F .458(alue of)-.25 F F1(par)4.209 E(ameter)-.15 E F0
-.459(using the rules described under)3.689 F F2 -.1(Pa)144 256.8 S(tter)
-.1 E 3.314(nM)-.15 G(atching)-3.314 E F0(belo)3.314 E 4.614 -.65(w. I)
--.25 H 3.314(ft).65 G .814
-(he pattern matches a trailing portion of the e)-3.314 F .814(xpanded v)
--.15 F .814(alue of)-.25 F F1(pa-)4.564 E -.15(ra)144 268.8 S(meter).15
-E F0 3.816(,t).73 G 1.316(hen the result of the e)-3.816 F 1.317
-(xpansion is the e)-.15 F 1.317(xpanded v)-.15 F 1.317(alue of)-.25 F F1
-(par)5.067 E(ameter)-.15 E F0 1.317(with the shortest)4.547 F 1.085
-(matching pattern \(the `)144 280.8 R(`)-.74 E F2(%)A F0 2.565 -.74
-('' c)D 1.084(ase\) or the longest matching pattern \(the `).74 F(`)-.74
-E F2(%%)A F0 2.564 -.74('' c)D 1.084(ase\) deleted.).74 F(If)6.084 E F1
-(par)145.25 292.8 Q(ameter)-.15 E F0(is)3.389 E F2(@)2.659 E F0(or)2.659
-E F2(*)2.659 E F0 2.659(,t)C .159(he pattern remo)-2.659 F -.25(va)-.15
-G 2.659(lo).25 G .16
-(peration is applied to each positional parameter in turn,)-2.659 F .51
-(and the e)144 304.8 R .51(xpansion is the resultant list.)-.15 F(If)
-5.51 E F1(par)4.259 E(ameter)-.15 E F0 .509(is an array v)3.739 F .509
-(ariable subscripted with)-.25 F F2(@)3.009 E F0(or)3.009 E F2(*)3.009 E
-F0(,)A .422(the pattern remo)144 316.8 R -.25(va)-.15 G 2.922(lo).25 G
-.422(peration is applied to each member of the array in turn, and the e)
--2.922 F .423(xpansion is)-.15 F(the resultant list.)144 328.8 Q(${)108
-345.6 Q F1(par)A(ameter)-.15 E F2(/)A F1(pattern)A F2(/)A F1(string)A F0
-(})A F2 -.1(Pa)144 357.6 S(tter).1 E 3.607(ns)-.15 G(ubstitution)-3.607
-E F0 6.107(.T)C(he)-6.107 E F1(pattern)3.607 E F0 1.107(is e)3.607 F
-1.106(xpanded to produce a pattern just as in pathname e)-.15 F(xpan-)
--.15 E(sion,)144 369.6 Q F1 -.8(Pa)3.7 G -.15(ra).8 G(meter).15 E F0 1.2
-(is e)3.7 F 1.2(xpanded and the longest match of)-.15 F F1(pattern)3.7 E
-F0(ag)3.7 E 1.2(ainst its v)-.05 F 1.2(alue is replaced with)-.25 F F1
-(string)144 381.6 Q F0 5.397(.T)C .397
-(he match is performed using the rules described under)-5.397 F F2 -.1
-(Pa)2.896 G(tter).1 E 2.896(nM)-.15 G(atching)-2.896 E F0(belo)2.896 E
-4.196 -.65(w. I)-.25 H(f).65 E F1(pat-)2.896 E(tern)144 393.6 Q F0(be)
-2.569 E .069(gins with)-.15 F F2(/)2.569 E F0 2.569(,a)C .069
-(ll matches of)-2.569 F F1(pattern)2.569 E F0 .069(are replaced with)
-2.569 F F1(string)2.57 E F0 5.07(.N)C .07
-(ormally only the \214rst match is)-5.07 F 2.58(replaced. If)144 405.6 R
-F1(pattern)2.58 E F0(be)2.58 E .08(gins with)-.15 F F2(#)2.58 E F0 2.58
-(,i)C 2.58(tm)-2.58 G .079(ust match at the be)-2.58 F .079
-(ginning of the e)-.15 F .079(xpanded v)-.15 F .079(alue of)-.25 F F1
-(par)2.579 E(am-)-.15 E(eter)144 417.6 Q F0 5.761(.I)C(f)-5.761 E F1
-(pattern)3.261 E F0(be)3.261 E .761(gins with)-.15 F F2(%)3.261 E F0
-3.261(,i)C 3.261(tm)-3.261 G .761(ust match at the end of the e)-3.261 F
-.761(xpanded v)-.15 F .761(alue of)-.25 F F1(par)3.262 E(ameter)-.15 E
-F0 5.762(.I)C(f)-5.762 E F1(string)144 429.6 Q F0 .958
-(is null, matches of)3.458 F F1(pattern)3.458 E F0 .958
-(are deleted and the)3.458 F F2(/)3.458 E F0(follo)3.458 E(wing)-.25 E
-F1(pattern)3.457 E F0 .957(may be omitted.)3.457 F .957(If the)5.957 F
-F2(nocasematch)144 441.6 Q F0 .492
-(shell option is enabled, the match is performed without re)2.992 F -.05
-(ga)-.15 G .492(rd to the case of alpha-).05 F .884(betic characters.)
-144 453.6 R(If)5.884 E F1(par)4.634 E(ameter)-.15 E F0(is)4.114 E F2(@)
-3.384 E F0(or)3.383 E F2(*)3.383 E F0 3.383(,t)C .883
-(he substitution operation is applied to each positional)-3.383 F 1.002
-(parameter in turn, and the e)144 465.6 R 1.002
-(xpansion is the resultant list.)-.15 F(If)6.002 E F1(par)4.752 E
-(ameter)-.15 E F0 1.002(is an array v)4.232 F 1.002(ariable sub-)-.25 F
-.159(scripted with)144 477.6 R F2(@)2.659 E F0(or)2.659 E F2(*)2.659 E
-F0 2.659(,t)C .159(he substitution operation is applied to each member \
-of the array in turn, and)-2.659 F(the e)144 489.6 Q
-(xpansion is the resultant list.)-.15 E(${)108 506.4 Q F1(par)A(ameter)
--.15 E F2(^)A F1(pattern)A F0(})A(${)108 518.4 Q F1(par)A(ameter)-.15 E
-F2(^^)A F1(pattern)A F0(})A(${)108 530.4 Q F1(par)A(ameter)-.15 E F2(,)A
-F1(pattern)A F0(})A(${)108 542.4 Q F1(par)A(ameter)-.15 E F2(,,)A F1
-(pattern)A F0(})A F2 .437(Case modi\214cation)144 554.4 R F0 5.437(.T)C
-.437(his e)-5.437 F .438
+/Times-Italic@0 SF(par)A(ameter)-.15 E/F2 10/Times-Bold@0 SF(/)A F1
+(pattern)A F2(/)A F1(string)A F0(})A(${)108 96 Q F1(par)A(ameter)-.15 E
+F2(//)A F1(pattern)A F2(/)A F1(string)A F0(})A(${)108 108 Q F1(par)A
+(ameter)-.15 E F2(/#)A F1(pattern)A F2(/)A F1(string)A F0(})A(${)108 120
+Q F1(par)A(ameter)-.15 E F2(/%)A F1(pattern)A F2(/)A F1(string)A F0(})A
+F2 -.1(Pa)144 132 S(tter).1 E 3.606(ns)-.15 G(ubstitution)-3.606 E F0
+6.106(.T)C(he)-6.106 E F1(pattern)3.606 E F0 1.106(is e)3.606 F 1.107
+(xpanded to produce a pattern just as in pathname e)-.15 F(xpan-)-.15 E
+(sion.)144 144 Q F1 -.8(Pa)6.034 G -.15(ra).8 G(meter).15 E F0 1.034
+(is e)3.534 F 1.033(xpanded and the longest match of)-.15 F F1(pattern)
+3.533 E F0(ag)3.533 E 1.033(ainst its v)-.05 F 1.033
+(alue is replaced with)-.25 F F1(string)144 156 Q F0(.)A F1(string)5.499
+E F0(under)2.999 E .499(goes tilde e)-.18 F .499
+(xpansion, parameter and v)-.15 F .499(ariable e)-.25 F .499
+(xpansion, arithmetic e)-.15 F(xpansion,)-.15 E 1.137
+(command and process substitution, and quote remo)144 168 R -.25(va)-.15
+G 3.637(l. The).25 F 1.137(match is performed using the rules)3.637 F
+.075(described under)144 180 R F2 -.1(Pa)2.575 G(tter).1 E 2.575(nM)-.15
+G(atching)-2.575 E F0(belo)2.575 E 3.875 -.65(w. I)-.25 H 2.575(nt).65 G
+.075(he \214rst form abo)-2.575 F -.15(ve)-.15 G 2.575(,o).15 G .076
+(nly the \214rst match is replaced.)-2.575 F .48(If there are tw)144 192
+R 2.98(os)-.1 G .48(lashes separating)-2.98 F F1(par)2.98 E(ameter)-.15
+E F0(and)2.98 E F1(pattern)2.98 E F0 .48(\(the second form abo)2.98 F
+-.15(ve)-.15 G .48(\), all matches of).15 F F1(pattern)144 204 Q F0 .374
+(are replaced with)2.874 F F1(string)2.874 E F0 5.374(.I)C(f)-5.374 E F1
+(pattern)2.874 E F0 .374(is preceded by)2.874 F F2(#)2.874 E F0 .374
+(\(the third form abo)2.874 F -.15(ve)-.15 G .375(\), it must match).15
+F .089(at the be)144 216 R .089(ginning of the e)-.15 F .088(xpanded v)
+-.15 F .088(alue of)-.25 F F1(par)2.588 E(ameter)-.15 E F0 5.088(.I)C(f)
+-5.088 E F1(pattern)2.588 E F0 .088(is preceded by)2.588 F F2(%)2.588 E
+F0 .088(\(the fourth form)2.588 F(abo)144 228 Q -.15(ve)-.15 G .315
+(\), it must match at the end of the e).15 F .315(xpanded v)-.15 F .315
+(alue of)-.25 F F1(par)2.815 E(ameter)-.15 E F0 5.315(.I)C 2.815(ft)
+-5.315 G .315(he e)-2.815 F .315(xpansion of)-.15 F F1(string)2.815 E F0
+(is)2.815 E .399(null, matches of)144 240 R F1(pattern)2.899 E F0 .399
+(are deleted.)2.899 F(If)5.399 E F1(string)2.898 E F0 .398
+(is null, matches of)2.898 F F1(pattern)2.898 E F0 .398
+(are deleted and the)2.898 F F2(/)2.898 E F0(fol-)2.898 E(lo)144 252 Q
+(wing)-.25 E F1(pattern)2.5 E F0(may be omitted.)2.5 E .95(If the)144
+276 R F2(patsub_r)3.45 E(eplacement)-.18 E F0 .95
+(shell option is enabled using)3.45 F F2(shopt)3.45 E F0 3.45(,a)C 1.25
+-.15(ny u)-3.45 H .95(nquoted instances of).15 F F2(&)3.45 E F0(in)3.45
+E F1(string)144 288 Q F0(are replaced with the matching portion of)2.5 E
+F1(pattern)2.5 E F0(.)A .75(Quoting an)144 312 R 3.25(yp)-.15 G .75
+(art of)-3.25 F F1(string)3.25 E F0 .749(inhibits replacement in the e)
+3.249 F .749(xpansion of the quoted portion, including)-.15 F .767
+(replacement strings stored in shell v)144 324 R 3.267
+(ariables. Backslash)-.25 F .767(will escape)3.267 F F2(&)3.267 E F0(in)
+3.267 E F1(string)3.267 E F0 3.267(;t)C .768(he backslash is)-3.267 F
+(remo)144 336 Q -.15(ve)-.15 G 2.669(di).15 G 2.669(no)-2.669 G .169
+(rder to permit a literal)-2.669 F F2(&)2.669 E F0 .169
+(in the replacement string.)2.669 F .169
+(Backslash can also be used to es-)5.169 F 1.428(cape a backslash;)144
+348 R F2(\\\\)3.928 E F0 1.428
+(results in a literal backslash in the replacement.)3.928 F 1.428
+(Users should tak)6.428 F 3.929(ec)-.1 G 1.429(are if)-3.929 F F1
+(string)144 360 Q F0 .292(is double-quoted to a)2.792 F -.2(vo)-.2 G
+.292(id unw).2 F .292
+(anted interactions between the backslash and double-quoting,)-.1 F .053
+(since backslash has special meaning within double quotes.)144 372 R
+-.15(Pa)5.053 G .054(ttern substitution performs the check).15 F .07
+(for unquoted)144 384 R F2(&)2.57 E F0 .07(after e)2.57 F(xpanding)-.15
+E F1(string)2.569 E F0 2.569(;s)C .069(hell programmers should quote an)
+-2.569 F 2.569(yo)-.15 G .069(ccurrences of)-2.569 F F2(&)2.569 E F0
+(the)2.569 E(y)-.15 E -.1(wa)144 396 S 1.112(nt to be tak).1 F 1.112
+(en literally in the replacement and ensure an)-.1 F 3.612(yi)-.15 G
+1.112(nstances of)-3.612 F F2(&)3.612 E F0(the)3.612 E 3.613(yw)-.15 G
+1.113(ant to be re-)-3.713 F(placed are unquoted.)144 408 Q .687(If the)
+144 432 R F2(nocasematch)3.187 E F0 .687
+(shell option is enabled, the match is performed without re)3.187 F -.05
+(ga)-.15 G .687(rd to the case of).05 F .736(alphabetic characters.)144
+444 R(If)5.736 E F1(par)4.486 E(ameter)-.15 E F0(is)3.966 E F2(@)3.236 E
+F0(or)3.236 E F2(*)3.236 E F0 3.236(,t)C .736
+(he substitution operation is applied to each posi-)-3.236 F .655
+(tional parameter in turn, and the e)144 456 R .654
+(xpansion is the resultant list.)-.15 F(If)5.654 E F1(par)4.404 E
+(ameter)-.15 E F0 .654(is an array v)3.884 F(ariable)-.25 E .347
+(subscripted with)144 468 R F2(@)2.847 E F0(or)2.847 E F2(*)2.847 E F0
+2.847(,t)C .348(he substitution operation is applied to each member of \
+the array in turn,)-2.847 F(and the e)144 480 Q
+(xpansion is the resultant list.)-.15 E(${)108 496.8 Q F1(par)A(ameter)
+-.15 E F2(^)A F1(pattern)A F0(})A(${)108 508.8 Q F1(par)A(ameter)-.15 E
+F2(^^)A F1(pattern)A F0(})A(${)108 520.8 Q F1(par)A(ameter)-.15 E F2(,)A
+F1(pattern)A F0(})A(${)108 532.8 Q F1(par)A(ameter)-.15 E F2(,,)A F1
+(pattern)A F0(})A F2 .438(Case modi\214cation)144 544.8 R F0 5.438(.T)C
+.438(his e)-5.438 F .437
(xpansion modi\214es the case of alphabetic characters in)-.15 F F1(par)
-2.938 E(ameter)-.15 E F0 5.438(.T)C(he)-5.438 E F1(pattern)144 566.4 Q
-F0 .374(is e)2.874 F .374
+2.937 E(ameter)-.15 E F0 5.437(.T)C(he)-5.437 E F1(pattern)144 556.8 Q
+F0 .373(is e)2.873 F .374
(xpanded to produce a pattern just as in pathname e)-.15 F 2.874
-(xpansion. Each)-.15 F .373(character in the e)2.873 F(x-)-.15 E .513
-(panded v)144 578.4 R .513(alue of)-.25 F F1(par)3.013 E(ameter)-.15 E
-F0 .513(is tested ag)3.013 F(ainst)-.05 E F1(pattern)3.013 E F0 3.013
-(,a)C .514(nd, if it matches the pattern, its case is con-)-3.013 F -.15
-(ve)144 590.4 S 2.823(rted. The).15 F .323
-(pattern should not attempt to match more than one character)2.823 F
-5.322(.T)-.55 G(he)-5.322 E F2(^)2.822 E F0 .322(operator con)2.822 F
--.15(ve)-.4 G(rts).15 E(lo)144 602.4 Q .18(wercase letters matching)-.25
-F F1(pattern)2.681 E F0 .181(to uppercase; the)2.681 F F2(,)2.681 E F0
-.181(operator con)2.681 F -.15(ve)-.4 G .181
-(rts matching uppercase letters).15 F .085(to lo)144 614.4 R 2.585
+(xpansion. Each)-.15 F .374(character in the e)2.874 F(x-)-.15 E .514
+(panded v)144 568.8 R .514(alue of)-.25 F F1(par)3.014 E(ameter)-.15 E
+F0 .514(is tested ag)3.014 F(ainst)-.05 E F1(pattern)3.014 E F0 3.014
+(,a)C .513(nd, if it matches the pattern, its case is con-)-3.014 F -.15
+(ve)144 580.8 S 2.822(rted. The).15 F .323
+(pattern should not attempt to match more than one character)2.822 F
+5.323(.T)-.55 G(he)-5.323 E F2(^)2.823 E F0 .323(operator con)2.823 F
+-.15(ve)-.4 G(rts).15 E(lo)144 592.8 Q .181(wercase letters matching)
+-.25 F F1(pattern)2.681 E F0 .181(to uppercase; the)2.681 F F2(,)2.681 E
+F0 .181(operator con)2.681 F -.15(ve)-.4 G .18
+(rts matching uppercase letters).15 F .085(to lo)144 604.8 R 2.585
(wercase. The)-.25 F F2(^^)2.585 E F0(and)2.585 E F2(,,)2.585 E F0 -.15
(ex)2.585 G .085(pansions con).15 F -.15(ve)-.4 G .085
(rt each matched character in the e).15 F .085(xpanded v)-.15 F .085
-(alue; the)-.25 F F2(^)2.585 E F0(and)144 626.4 Q F2(,)3.59 E F0 -.15
-(ex)3.59 G 1.09(pansions match and con).15 F -.15(ve)-.4 G 1.091
-(rt only the \214rst character in the e).15 F 1.091(xpanded v)-.15 F
-3.591(alue. If)-.25 F F1(pattern)3.591 E F0(is)3.591 E 1.121
-(omitted, it is treated lik)144 638.4 R 3.621(ea)-.1 G F2(?)A F0 3.621
-(,w)C 1.121(hich matches e)-3.621 F -.15(ve)-.25 G 1.121(ry character)
-.15 F 6.12(.I)-.55 G(f)-6.12 E F1(par)4.87 E(ameter)-.15 E F0(is)4.35 E
-F2(@)3.62 E F0(or)3.62 E F2(*)3.62 E F0 3.62(,t)C 1.12(he case)-3.62 F
-.339(modi\214cation operation is applied to each positional parameter i\
-n turn, and the e)144 650.4 R .34(xpansion is the re-)-.15 F .25
-(sultant list.)144 662.4 R(If)5.25 E F1(par)4 E(ameter)-.15 E F0 .25
-(is an array v)3.48 F .249(ariable subscripted with)-.25 F F2(@)2.749 E
-F0(or)2.749 E F2(*)2.749 E F0 2.749(,t)C .249
-(he case modi\214cation oper)-2.749 F(-)-.2 E
+(alue; the)-.25 F F2(^)2.585 E F0(and)144 616.8 Q F2(,)3.591 E F0 -.15
+(ex)3.591 G 1.091(pansions match and con).15 F -.15(ve)-.4 G 1.091
+(rt only the \214rst character in the e).15 F 1.09(xpanded v)-.15 F 3.59
+(alue. If)-.25 F F1(pattern)3.59 E F0(is)3.59 E 1.12
+(omitted, it is treated lik)144 628.8 R 3.62(ea)-.1 G F2(?)A F0 3.62(,w)
+C 1.12(hich matches e)-3.62 F -.15(ve)-.25 G 1.121(ry character).15 F
+6.121(.I)-.55 G(f)-6.121 E F1(par)4.871 E(ameter)-.15 E F0(is)4.351 E F2
+(@)3.621 E F0(or)3.621 E F2(*)3.621 E F0 3.621(,t)C 1.121(he case)-3.621
+F .339(modi\214cation operation is applied to each positional parameter\
+ in turn, and the e)144 640.8 R .339(xpansion is the re-)-.15 F .249
+(sultant list.)144 652.8 R(If)5.249 E F1(par)3.999 E(ameter)-.15 E F0
+.249(is an array v)3.479 F .249(ariable subscripted with)-.25 F F2(@)
+2.749 E F0(or)2.75 E F2(*)2.75 E F0 2.75(,t)C .25
+(he case modi\214cation oper)-2.75 F(-)-.2 E
(ation is applied to each member of the array in turn, and the e)144
-674.4 Q(xpansion is the resultant list.)-.15 E(${)108 691.2 Q F1(par)A
-(ameter)-.15 E F2(@)A F1(oper)A(ator)-.15 E F0(})A F2 -.1(Pa)144 703.2 S
+664.8 Q(xpansion is the resultant list.)-.15 E(${)108 681.6 Q F1(par)A
+(ameter)-.15 E F2(@)A F1(oper)A(ator)-.15 E F0(})A F2 -.1(Pa)144 693.6 S
.86(rameter transf).1 F(ormation)-.25 E F0 5.86(.T)C .86(he e)-5.86 F
.86(xpansion is either a transformation of the v)-.15 F .86(alue of)-.25
-F F1(par)3.36 E(ameter)-.15 E F0 .154(or information about)144 715.2 R
-F1(par)2.654 E(ameter)-.15 E F0 .153(itself, depending on the v)2.654 F
-.153(alue of)-.25 F F1(oper)2.653 E(ator)-.15 E F0 5.153(.E)C(ach)-5.153
-E F1(oper)2.653 E(ator)-.15 E F0 .153(is a sin-)2.653 F(gle letter:)144
-727.2 Q(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(24)190.395 E 0
+F F1(par)3.36 E(ameter)-.15 E F0 .153(or information about)144 705.6 R
+F1(par)2.653 E(ameter)-.15 E F0 .153(itself, depending on the v)2.653 F
+.153(alue of)-.25 F F1(oper)2.653 E(ator)-.15 E F0 5.154(.E)C(ach)-5.154
+E F1(oper)2.654 E(ator)-.15 E F0 .154(is a sin-)2.654 F(gle letter:)144
+717.6 Q(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(25)185.115 E 0
Cg EP
-%%Page: 25 25
+%%Page: 26 26
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(U)144 84 Q F0 .142(The e)180 84 R .142
+SF(U)144 84 Q F0 .143(The e)180 84 R .142
(xpansion is a string that is the v)-.15 F .142(alue of)-.25 F/F2 10
/Times-Italic@0 SF(par)2.642 E(ameter)-.15 E F0 .142(with lo)2.642 F
-.143(wercase alphabetic charac-)-.25 F(ters con)180 96 Q -.15(ve)-.4 G
-(rted to uppercase.).15 E F1(u)144 108 Q F0 .43(The e)180 108 R .43
+.142(wercase alphabetic charac-)-.25 F(ters con)180 96 Q -.15(ve)-.4 G
+(rted to uppercase.).15 E F1(u)144 108 Q F0 .429(The e)180 108 R .429
(xpansion is a string that is the v)-.15 F .429(alue of)-.25 F F2(par)
-2.929 E(ameter)-.15 E F0 .429(with the \214rst character con)2.929 F
--.15(ve)-.4 G(rted).15 E(to uppercase, if it is alphabetic.)180 120 Q F1
-(L)144 132 Q F0 .124(The e)180 132 R .124
+2.929 E(ameter)-.15 E F0 .43(with the \214rst character con)2.93 F -.15
+(ve)-.4 G(rted).15 E(to uppercase, if it is alphabetic.)180 120 Q F1(L)
+144 132 Q F0 .125(The e)180 132 R .124
(xpansion is a string that is the v)-.15 F .124(alue of)-.25 F F2(par)
-2.624 E(ameter)-.15 E F0 .125(with uppercase alphabetic charac-)2.625 F
+2.624 E(ameter)-.15 E F0 .124(with uppercase alphabetic charac-)2.624 F
(ters con)180 144 Q -.15(ve)-.4 G(rted to lo).15 E(wercase.)-.25 E F1(Q)
-144 156 Q F0 1.065(The e)180 156 R 1.065
+144 156 Q F0 1.064(The e)180 156 R 1.064
(xpansion is a string that is the v)-.15 F 1.065(alue of)-.25 F F2(par)
-3.565 E(ameter)-.15 E F0 1.064(quoted in a format that can be)3.565 F
-(reused as input.)180 168 Q F1(E)144 180 Q F0 .44(The e)180 180 R .441
+3.565 E(ameter)-.15 E F0 1.065(quoted in a format that can be)3.565 F
+(reused as input.)180 168 Q F1(E)144 180 Q F0 .441(The e)180 180 R .441
(xpansion is a string that is the v)-.15 F .441(alue of)-.25 F F2(par)
-2.941 E(ameter)-.15 E F0 .441(with backslash escape sequences)2.941 F
--.15(ex)180 192 S(panded as with the).15 E F1($'...)2.5 E(')-.55 E F0
-(quoting mechanism.)2.5 E F1(P)144 204 Q F0 1.073(The e)180 204 R 1.073
+2.941 E(ameter)-.15 E F0 .44(with backslash escape sequences)2.94 F -.15
+(ex)180 192 S(panded as with the).15 E F1($\010...\010)2.5 E F0
+(quoting mechanism.)2.5 E F1(P)144 204 Q F0 1.072(The e)180 204 R 1.073
(xpansion is a string that is the result of e)-.15 F 1.073
(xpanding the v)-.15 F 1.073(alue of)-.25 F F2(par)3.573 E(ameter)-.15 E
F0 1.073(as if it)3.573 F(were a prompt string \(see)180 216 Q F1(PR)2.5
-E(OMPTING)-.3 E F0(belo)2.5 E(w\).)-.25 E F1(A)144 228 Q F0 1.137(The e)
+E(OMPTING)-.3 E F0(belo)2.5 E(w\).)-.25 E F1(A)144 228 Q F0 1.138(The e)
180 228 R 1.138
(xpansion is a string in the form of an assignment statement or)-.15 F
-F1(declar)3.638 E(e)-.18 E F0(command)3.638 E(that, if e)180 240 Q -.25
+F1(declar)3.637 E(e)-.18 E F0(command)3.637 E(that, if e)180 240 Q -.25
(va)-.25 G(luated, will recreate).25 E F2(par)2.5 E(ameter)-.15 E F0
(with its attrib)2.5 E(utes and v)-.2 E(alue.)-.25 E F1(K)144 252 Q F0
-1.34(Produces a possibly-quoted v)180 252 R 1.339(ersion of the v)-.15 F
-1.339(alue of)-.25 F F2(par)3.839 E(ameter)-.15 E F0 3.839(,e)C 1.339
-(xcept that it prints the)-3.989 F -.25(va)180 264 S .257(lues of inde)
+1.339(Produces a possibly-quoted v)180 252 R 1.339(ersion of the v)-.15
+F 1.339(alue of)-.25 F F2(par)3.839 E(ameter)-.15 E F0 3.839(,e)C 1.34
+(xcept that it prints the)-3.989 F -.25(va)180 264 S .258(lues of inde)
.25 F -.15(xe)-.15 G 2.757(da).15 G .257(nd associati)-2.757 F .557 -.15
(ve a)-.25 H .257(rrays as a sequence of quoted k).15 F -.15(ey)-.1 G
-(-v).15 E .257(alue pairs \(see)-.25 F F1(Ar)2.758 E(-)-.37 E(rays)180
+(-v).15 E .257(alue pairs \(see)-.25 F F1(Ar)2.757 E(-)-.37 E(rays)180
276 Q F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1(a)144 288 Q F0(The e)180
288 Q(xpansion is a string consisting of \215ag v)-.15 E
(alues representing)-.25 E F2(par)2.5 E(ameter)-.15 E F0 1.1 -.55('s a)D
-(ttrib).55 E(utes.)-.2 E(If)144 304.8 Q F2(par)4.403 E(ameter)-.15 E F0
-(is)3.883 E F1(@)3.153 E F0(or)3.153 E F1(*)3.153 E F0 3.153(,t)C .653(\
-he operation is applied to each positional parameter in turn, and the e)
--3.153 F(x-)-.15 E .403(pansion is the resultant list.)144 316.8 R(If)
-5.403 E F2(par)4.153 E(ameter)-.15 E F0 .403(is an array v)3.633 F .403
-(ariable subscripted with)-.25 F F1(@)2.903 E F0(or)2.903 E F1(*)2.903 E
-F0 2.903(,t)C .403(he opera-)-2.903 F
+(ttrib).55 E(utes.)-.2 E F1(k)144 300 Q F0(Lik)180 300 Q 2.657(et)-.1 G
+.157(he K transformation, b)-2.657 F .157(ut e)-.2 F .157(xpands the k)
+-.15 F -.15(ey)-.1 G 2.657(sa).15 G .157(nd v)-2.657 F .157
+(alues of inde)-.25 F -.15(xe)-.15 G 2.657(da).15 G .158(nd associati)
+-2.657 F .458 -.15(ve a)-.25 H -.2(r-).15 G(rays to separate w)180 312 Q
+(ords after w)-.1 E(ord splitting.)-.1 E(If)144 328.8 Q F2(par)4.403 E
+(ameter)-.15 E F0(is)3.883 E F1(@)3.153 E F0(or)3.153 E F1(*)3.153 E F0
+3.153(,t)C .653(he operation is applied to each positional parameter in\
+ turn, and the e)-3.153 F(x-)-.15 E .403(pansion is the resultant list.)
+144 340.8 R(If)5.403 E F2(par)4.153 E(ameter)-.15 E F0 .403
+(is an array v)3.633 F .403(ariable subscripted with)-.25 F F1(@)2.903 E
+F0(or)2.903 E F1(*)2.903 E F0 2.903(,t)C .403(he opera-)-2.903 F
(tion is applied to each member of the array in turn, and the e)144
-328.8 Q(xpansion is the resultant list.)-.15 E .708(The result of the e)
-144 352.8 R .708(xpansion is subject to w)-.15 F .708
+352.8 Q(xpansion is the resultant list.)-.15 E .708(The result of the e)
+144 376.8 R .708(xpansion is subject to w)-.15 F .708
(ord splitting and pathname e)-.1 F .708(xpansion as described be-)-.15
-F(lo)144 364.8 Q -.65(w.)-.25 G F1(Command Substitution)87 381.6 Q F2
-1.697(Command substitution)108 393.6 R F0(allo)4.197 E 1.697
+F(lo)144 388.8 Q -.65(w.)-.25 G F1(Command Substitution)87 405.6 Q F2
+1.697(Command substitution)108 417.6 R F0(allo)4.197 E 1.697
(ws the output of a command to replace the command name.)-.25 F 1.698
-(There are tw)6.698 F(o)-.1 E(forms:)108 405.6 Q F1($\()144 422.4 Q F2
-(command)A F1(\))1.666 E F0(or)108 434.4 Q F1<92>144 446.4 Q F2(command)
-A F1<92>A(Bash)108 463.2 Q F0 .089(performs the e)2.589 F .089
+(There are tw)6.698 F(o)-.1 E(forms:)108 429.6 Q F1($\()144 446.4 Q F2
+(command)A F1(\))1.666 E F0(or)108 458.4 Q F1<92>144 470.4 Q F2(command)
+A F1<92>A(Bash)108 487.2 Q F0 .089(performs the e)2.589 F .089
(xpansion by e)-.15 F -.15(xe)-.15 G(cuting).15 E F2(command)2.589 E F0
.088(in a subshell en)2.589 F .088(vironment and replacing the command)
-.4 F .41(substitution with the standard output of the command, with an)
-108 475.2 R 2.91(yt)-.15 G .41(railing ne)-2.91 F .41(wlines deleted.)
+108 499.2 R 2.91(yt)-.15 G .41(railing ne)-2.91 F .41(wlines deleted.)
-.25 F .41(Embedded ne)5.41 F(w-)-.25 E .192(lines are not deleted, b)
-108 487.2 R .192(ut the)-.2 F 2.692(ym)-.15 G .192(ay be remo)-2.692 F
+108 511.2 R .192(ut the)-.2 F 2.692(ym)-.15 G .192(ay be remo)-2.692 F
-.15(ve)-.15 G 2.692(dd).15 G .192(uring w)-2.692 F .192(ord splitting.)
-.1 F .192(The command substitution)5.192 F F1($\(cat)2.691 E F2(\214le)
-2.691 E F1(\))A F0(can be replaced by the equi)108 499.2 Q -.25(va)-.25
+2.691 E F1(\))A F0(can be replaced by the equi)108 523.2 Q -.25(va)-.25
G(lent b).25 E(ut f)-.2 E(aster)-.1 E F1($\(<)2.5 E F2(\214le)2.5 E F1
(\))A F0(.)A 1.724(When the old-style backquote form of substitution is\
- used, backslash retains its literal meaning e)108 516 R(xcept)-.15 E
-.315(when follo)108 528 R .315(wed by)-.25 F F1($)2.815 E F0(,)A F1<92>
+ used, backslash retains its literal meaning e)108 540 R(xcept)-.15 E
+.315(when follo)108 552 R .315(wed by)-.25 F F1($)2.815 E F0(,)A F1<92>
2.815 E F0 2.815(,o)C(r)-2.815 E F1(\\)2.815 E F0 5.315(.T)C .314(he \
\214rst backquote not preceded by a backslash terminates the command su\
-b-)-5.315 F 3.886(stitution. When)108 540 R 1.386(using the $\()3.886 F
+b-)-5.315 F 3.886(stitution. When)108 564 R 1.386(using the $\()3.886 F
F2(command).833 E F0 3.886(\)f)1.666 G 1.387
(orm, all characters between the parentheses mak)-3.886 F 3.887(eu)-.1 G
3.887(pt)-3.887 G 1.387(he com-)-3.887 F
-(mand; none are treated specially)108 552 Q(.)-.65 E .894
-(Command substitutions may be nested.)108 568.8 R 2.494 -.8(To n)5.894 H
+(mand; none are treated specially)108 576 Q(.)-.65 E .894
+(Command substitutions may be nested.)108 592.8 R 2.494 -.8(To n)5.894 H
.894(est when using the backquoted form, escape the inner back-).8 F
-(quotes with backslashes.)108 580.8 Q .422
-(If the substitution appears within double quotes, w)108 597.6 R .422
+(quotes with backslashes.)108 604.8 Q .422
+(If the substitution appears within double quotes, w)108 621.6 R .422
(ord splitting and pathname e)-.1 F .423(xpansion are not performed)-.15
-F(on the results.)108 609.6 Q F1(Arithmetic Expansion)87 626.4 Q F0
-1.035(Arithmetic e)108 638.4 R 1.035(xpansion allo)-.15 F 1.035
+F(on the results.)108 633.6 Q F1(Arithmetic Expansion)87 650.4 Q F0
+1.035(Arithmetic e)108 662.4 R 1.035(xpansion allo)-.15 F 1.035
(ws the e)-.25 F -.25(va)-.25 G 1.034(luation of an arithmetic e).25 F
1.034(xpression and the substitution of the result.)-.15 F
-(The format for arithmetic e)108 650.4 Q(xpansion is:)-.15 E F1($\(\()
-144 667.2 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F1(\)\))A F0(The)108 684 Q
-F2 -.2(ex)2.665 G(pr).2 E(ession)-.37 E F0 .165
-(is treated as if it were within double quotes, b)2.905 F .166
-(ut a double quote inside the parentheses is not)-.2 F .231
-(treated specially)108 696 R 5.231(.A)-.65 G .231(ll tok)-5.231 F .231
-(ens in the e)-.1 F .231(xpression under)-.15 F .231(go parameter and v)
--.18 F .23(ariable e)-.25 F .23(xpansion, command substi-)-.15 F .048
-(tution, and quote remo)108 708 R -.25(va)-.15 G 2.548(l. The).25 F .048
-(result is treated as the arithmetic e)2.548 F .048(xpression to be e)
--.15 F -.25(va)-.25 G 2.549(luated. Arithmetic).25 F -.15(ex)2.549 G(-)
-.15 E(pansions may be nested.)108 720 Q(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(25)190.395 E 0 Cg EP
-%%Page: 26 26
+(The format for arithmetic e)108 674.4 Q(xpansion is:)-.15 E F1($\(\()
+144 691.2 Q F2 -.2(ex)C(pr).2 E(ession)-.37 E F1(\)\))A F0(The)108 708 Q
+F2 -.2(ex)2.735 G(pr).2 E(ession)-.37 E F0(under)2.975 E .235
+(goes the same e)-.18 F .236
+(xpansions as if it were within double quotes, b)-.15 F .236
+(ut double quote charac-)-.2 F 2.8(ters in)108 720 R F2 -.2(ex)5.3 G(pr)
+.2 E(ession)-.37 E F0 2.799(are not treated specially and are remo)5.3 F
+-.15(ve)-.15 G 5.299(d. All).15 F(tok)5.299 E 2.799(ens in the e)-.1 F
+2.799(xpression under)-.15 F(go)-.18 E(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(26)185.115 E 0 Cg EP
+%%Page: 27 27
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 1.379(The e)108 84
-R -.25(va)-.25 G 1.378
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .919
+(parameter and v)108 84 R .919(ariable e)-.25 F .919
+(xpansion, command substitution, and quote remo)-.15 F -.25(va)-.15 G
+3.419(l. The).25 F .92(result is treated as the)3.419 F(arithmetic e)108
+96 Q(xpression to be e)-.15 E -.25(va)-.25 G 2.5(luated. Arithmetic).25
+F -.15(ex)2.5 G(pansions may be nested.).15 E 1.379(The e)108 112.8 R
+-.25(va)-.25 G 1.378
(luation is performed according to the rules listed belo).25 F 3.878(wu)
-.25 G(nder)-3.878 E/F1 9/Times-Bold@0 SF 1.378(ARITHMETIC EV)3.878 F
(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E/F2 9/Times-Roman@0 SF(.)A F0
-(If)5.878 E/F3 10/Times-Italic@0 SF -.2(ex)108 96 S(pr).2 E(ession)-.37
-E F0(is in)2.74 E -.25(va)-.4 G(lid,).25 E/F4 10/Times-Bold@0 SF(bash)
-2.5 E F0(prints a message indicating f)2.5 E
-(ailure and no substitution occurs.)-.1 E F4(Pr)87 112.8 Q
-(ocess Substitution)-.18 E F3(Pr)108 124.8 Q .405(ocess substitution)
+(If)5.878 E/F3 10/Times-Italic@0 SF -.2(ex)108 124.8 S(pr).2 E(ession)
+-.37 E F0(is in)2.74 E -.25(va)-.4 G(lid,).25 E/F4 10/Times-Bold@0 SF
+(bash)2.5 E F0(prints a message indicating f)2.5 E
+(ailure and no substitution occurs.)-.1 E F4(Pr)87 141.6 Q
+(ocess Substitution)-.18 E F3(Pr)108 153.6 Q .405(ocess substitution)
-.45 F F0(allo)2.905 E .405(ws a process')-.25 F 2.905(si)-.55 G .405
(nput or output to be referred to using a \214lename.)-2.905 F .405
-(It tak)5.405 F .405(es the form)-.1 F(of)108 136.8 Q F4(<\()3.251 E F3
+(It tak)5.405 F .405(es the form)-.1 F(of)108 165.6 Q F4(<\()3.251 E F3
(list)A F4(\)).833 E F0(or)3.251 E F4(>\()3.251 E F3(list)A F4(\)).833 E
F0 5.751(.T)C .751(he process)-5.751 F F3(list)3.251 E F0 .751
(is run asynchronously)3.251 F 3.251(,a)-.65 G .751
(nd its input or output appears as a \214lename.)-3.251 F .147
-(This \214lename is passed as an ar)108 148.8 R .148
+(This \214lename is passed as an ar)108 177.6 R .148
(gument to the current command as the result of the e)-.18 F 2.648
(xpansion. If)-.15 F(the)2.648 E F4(>\()2.648 E F3(list)A F4(\)).833 E
-F0 .56(form is used, writing to the \214le will pro)108 160.8 R .56
+F0 .56(form is used, writing to the \214le will pro)108 189.6 R .56
(vide input for)-.15 F F3(list)3.059 E F0 5.559(.I)C 3.059(ft)-5.559 G
(he)-3.059 E F4(<\()3.059 E F3(list)A F4(\)).833 E F0 .559
-(form is used, the \214le passed as an)3.059 F(ar)108 172.8 Q .308
+(form is used, the \214le passed as an)3.059 F(ar)108 201.6 Q .308
(gument should be read to obtain the output of)-.18 F F3(list)2.808 E F0
5.308(.P)C .309(rocess substitution is supported on systems that sup-)
--5.308 F(port named pipes \()108 184.8 Q F3(FIFOs)A F0 2.5(\)o)C 2.5(rt)
+-5.308 F(port named pipes \()108 213.6 Q F3(FIFOs)A F0 2.5(\)o)C 2.5(rt)
-2.5 G(he)-2.5 E F4(/de)2.5 E(v/fd)-.15 E F0
-(method of naming open \214les.)2.5 E .897(When a)108 201.6 R -.25(va)
+(method of naming open \214les.)2.5 E .897(When a)108 230.4 R -.25(va)
-.2 G .896(ilable, process substitution is performed simultaneously wit\
h parameter and v).25 F .896(ariable e)-.25 F(xpansion,)-.15 E
-(command substitution, and arithmetic e)108 213.6 Q(xpansion.)-.15 E F4
--.75(Wo)87 230.4 S(rd Splitting).75 E F0 1.142
-(The shell scans the results of parameter e)108 242.4 R 1.143
+(command substitution, and arithmetic e)108 242.4 Q(xpansion.)-.15 E F4
+-.75(Wo)87 259.2 S(rd Splitting).75 E F0 1.142
+(The shell scans the results of parameter e)108 271.2 R 1.143
(xpansion, command substitution, and arithmetic e)-.15 F 1.143
-(xpansion that)-.15 F(did not occur within double quotes for)108 254.4 Q
+(xpansion that)-.15 F(did not occur within double quotes for)108 283.2 Q
F3(wor)2.84 E 2.5(ds)-.37 G(plitting)-2.5 E F0(.).22 E .063
-(The shell treats each character of)108 271.2 R F1(IFS)2.563 E F0 .063
+(The shell treats each character of)108 300 R F1(IFS)2.563 E F0 .063
(as a delimiter)2.313 F 2.563(,a)-.4 G .063
(nd splits the results of the other e)-2.563 F .063(xpansions into w)
-.15 F(ords)-.1 E .207(using these characters as \214eld terminators.)
-108 283.2 R(If)5.207 E F1(IFS)2.707 E F0 .207(is unset, or its v)2.457 F
+108 312 R(If)5.207 E F1(IFS)2.707 E F0 .207(is unset, or its v)2.457 F
.207(alue is e)-.25 F(xactly)-.15 E F4(<space><tab><newline>)2.708 E F0
-(,)A .837(the def)108 295.2 R .837(ault, then sequences of)-.1 F F4
+(,)A .837(the def)108 324 R .837(ault, then sequences of)-.1 F F4
(<space>)3.337 E F0(,)A F4(<tab>)3.337 E F0 3.337(,a)C(nd)-3.337 E F4
(<newline>)3.337 E F0 .836(at the be)3.336 F .836
-(ginning and end of the results of)-.15 F .345(the pre)108 307.2 R .345
+(ginning and end of the results of)-.15 F .345(the pre)108 336 R .345
(vious e)-.25 F .345(xpansions are ignored, and an)-.15 F 2.845(ys)-.15
G .345(equence of)-2.845 F F1(IFS)2.845 E F0 .345
(characters not at the be)2.595 F .345(ginning or end serv)-.15 F(es)
--.15 E 1.237(to delimit w)108 319.2 R 3.737(ords. If)-.1 F F1(IFS)3.737
-E F0 1.236(has a v)3.486 F 1.236(alue other than the def)-.25 F 1.236
+-.15 E 1.237(to delimit w)108 348 R 3.737(ords. If)-.1 F F1(IFS)3.737 E
+F0 1.236(has a v)3.486 F 1.236(alue other than the def)-.25 F 1.236
(ault, then sequences of the whitespace characters)-.1 F F4(space)108
-331.2 Q F0(,)A F4(tab)2.506 E F0 2.506(,a)C(nd)-2.506 E F4(newline)2.506
-E F0 .006(are ignored at the be)2.506 F .006(ginning and end of the w)
--.15 F .007(ord, as long as the whitespace charac-)-.1 F .921
-(ter is in the v)108 343.2 R .92(alue of)-.25 F F1(IFS)3.42 E F0(\(an)
-3.17 E F1(IFS)3.42 E F0 .92(whitespace character\).)3.17 F(An)5.92 E
-3.42(yc)-.15 G .92(haracter in)-3.42 F F1(IFS)3.42 E F0 .92(that is not)
-3.17 F F1(IFS)3.42 E F0(whitespace,)3.17 E .428(along with an)108 355.2
-R 2.928(ya)-.15 G(djacent)-2.928 E F1(IFS)2.928 E F0 .428
+360 Q F0(,)A F4(tab)2.506 E F0 2.506(,a)C(nd)-2.506 E F4(newline)2.506 E
+F0 .006(are ignored at the be)2.506 F .006(ginning and end of the w)-.15
+F .007(ord, as long as the whitespace charac-)-.1 F .921
+(ter is in the v)108 372 R .92(alue of)-.25 F F1(IFS)3.42 E F0(\(an)3.17
+E F1(IFS)3.42 E F0 .92(whitespace character\).)3.17 F(An)5.92 E 3.42(yc)
+-.15 G .92(haracter in)-3.42 F F1(IFS)3.42 E F0 .92(that is not)3.17 F
+F1(IFS)3.42 E F0(whitespace,)3.17 E .428(along with an)108 384 R 2.928
+(ya)-.15 G(djacent)-2.928 E F1(IFS)2.928 E F0 .428
(whitespace characters, delimits a \214eld.)2.678 F 2.928(As)5.428 G
.428(equence of)-2.928 F F1(IFS)2.928 E F0 .429(whitespace charac-)2.679
-F(ters is also treated as a delimiter)108 367.2 Q 5(.I)-.55 G 2.5(ft)-5
-G(he v)-2.5 E(alue of)-.25 E F1(IFS)2.5 E F0(is null, no w)2.25 E
-(ord splitting occurs.)-.1 E .783(Explicit null ar)108 384 R .783
+F(ters is also treated as a delimiter)108 396 Q 5(.I)-.55 G 2.5(ft)-5 G
+(he v)-2.5 E(alue of)-.25 E F1(IFS)2.5 E F0(is null, no w)2.25 E
+(ord splitting occurs.)-.1 E .783(Explicit null ar)108 412.8 R .783
(guments \()-.18 F F4 .833("").833 G F0(or)2.449 E F4 .833<0808>4.115 G
F0 3.282(\)a)C .782
(re retained and passed to commands as empty strings.)-3.282 F .782
-(Unquoted im-)5.782 F .178(plicit null ar)108 396 R .179
+(Unquoted im-)5.782 F .178(plicit null ar)108 424.8 R .179
(guments, resulting from the e)-.18 F .179
(xpansion of parameters that ha)-.15 F .479 -.15(ve n)-.2 H 2.679(ov).15
G .179(alues, are remo)-2.929 F -.15(ve)-.15 G 2.679(d. If).15 F 2.679
-(ap)2.679 G(a-)-2.679 E .319(rameter with no v)108 408 R .319(alue is e)
--.25 F .319(xpanded within double quotes, a null ar)-.15 F .319
-(gument results and is retained and passed)-.18 F
-(to a command as an empty string.)108 420 Q(When a quoted null ar)5 E
+(ap)2.679 G(a-)-2.679 E .319(rameter with no v)108 436.8 R .319
+(alue is e)-.25 F .319(xpanded within double quotes, a null ar)-.15 F
+.319(gument results and is retained and passed)-.18 F
+(to a command as an empty string.)108 448.8 Q(When a quoted null ar)5 E
.001(gument appears as part of a w)-.18 F .001(ord whose e)-.1 F
-(xpansion)-.15 E .984(is non-null, the null ar)108 432 R .984
+(xpansion)-.15 E .984(is non-null, the null ar)108 460.8 R .984
(gument is remo)-.18 F -.15(ve)-.15 G 3.483(d. That).15 F .983
(is, the w)3.483 F(ord)-.1 E/F5 10/Courier@0 SF -5.167<ad64082008>3.483
F F0(becomes)3.483 E F5<ad64>3.483 E F0 .983(after w)3.483 F .983
-(ord splitting and)-.1 F(null ar)108 444 Q(gument remo)-.18 E -.25(va)
--.15 G(l.).25 E(Note that if no e)108 460.8 Q
-(xpansion occurs, no splitting is performed.)-.15 E F4 -.1(Pa)87 477.6 S
-(thname Expansion).1 E F0 .37(After w)108 489.6 R .37
+(ord splitting and)-.1 F(null ar)108 472.8 Q(gument remo)-.18 E -.25(va)
+-.15 G(l.).25 E(Note that if no e)108 489.6 Q
+(xpansion occurs, no splitting is performed.)-.15 E F4 -.1(Pa)87 506.4 S
+(thname Expansion).1 E F0 .37(After w)108 518.4 R .37
(ord splitting, unless the)-.1 F F4<ad66>2.87 E F0 .37
(option has been set,)2.87 F F4(bash)2.87 E F0 .371(scans each w)2.871 F
.371(ord for the characters)-.1 F F4(*)2.871 E F0(,)A F4(?)2.871 E F0
2.871(,a)C(nd)-2.871 E F4([)2.871 E F0(.)A .634
(If one of these characters appears, and is not quoted, then the w)108
-501.6 R .634(ord is re)-.1 F -.05(ga)-.15 G .633(rded as a).05 F F3
+530.4 R .634(ord is re)-.1 F -.05(ga)-.15 G .633(rded as a).05 F F3
(pattern)4.383 E F0 3.133(,a).24 G .633(nd replaced)-3.133 F 1.34(with \
an alphabetically sorted list of \214lenames matching the pattern \(see)
-108 513.6 R F1 -.09(Pa)3.84 G(tter).09 E 3.59(nM)-.135 G(atching)-3.59 E
+108 542.4 R F1 -.09(Pa)3.84 G(tter).09 E 3.59(nM)-.135 G(atching)-3.59 E
F0(belo)3.59 E 3.84(w\). If)-.25 F(no)3.84 E .534
-(matching \214lenames are found, and the shell option)108 525.6 R F4
+(matching \214lenames are found, and the shell option)108 554.4 R F4
(nullglob)3.034 E F0 .534(is not enabled, the w)3.034 F .534
-(ord is left unchanged.)-.1 F(If)5.534 E(the)108 537.6 Q F4(nullglob)
+(ord is left unchanged.)-.1 F(If)5.534 E(the)108 566.4 Q F4(nullglob)
3.284 E F0 .785(option is set, and no matches are found, the w)3.284 F
.785(ord is remo)-.1 F -.15(ve)-.15 G 3.285(d. If).15 F(the)3.285 E F4
(failglob)3.285 E F0 .785(shell option is)3.285 F .754(set, and no matc\
hes are found, an error message is printed and the command is not e)108
-549.6 R -.15(xe)-.15 G 3.254(cuted. If).15 F .754(the shell)3.254 F
-(option)108 561.6 Q F4(nocaseglob)3.263 E F0 .763
+578.4 R -.15(xe)-.15 G 3.254(cuted. If).15 F .754(the shell)3.254 F
+(option)108 590.4 Q F4(nocaseglob)3.263 E F0 .763
(is enabled, the match is performed without re)3.263 F -.05(ga)-.15 G
.764(rd to the case of alphabetic characters.).05 F .039
-(When a pattern is used for pathname e)108 573.6 R .039
+(When a pattern is used for pathname e)108 602.4 R .039
(xpansion, the character)-.15 F F4 -.63(``)2.539 G -.55(.').63 G(')-.08
E F0 .039(at the start of a name or immediately fol-)5.039 F(lo)108
-585.6 Q .81(wing a slash must be matched e)-.25 F(xplicitly)-.15 E 3.31
-(,u)-.65 G .81(nless the shell option)-3.31 F F4(dotglob)3.31 E F0 .81
-(is set.)3.31 F .81(The \214lenames)5.81 F F4 -.63(``)3.31 G -.55(.').63
-G(')-.08 E F0(and)5.81 E F4 -.63(``)108 597.6 S(..).63 E -.63('')-.55 G
-F0 1.182(must al)6.812 F -.1(wa)-.1 G 1.182(ys be matched e).1 F
-(xplicitly)-.15 E 3.682(,e)-.65 G -.15(ve)-3.932 G 3.682(ni).15 G(f)
--3.682 E F4(dotglob)3.682 E F0 1.182(is set.)3.682 F 1.181
-(In other cases, the)6.182 F F4 -.63(``)3.681 G -.55(.').63 G(')-.08 E
-F0 1.181(character is not)6.181 F .613(treated specially)108 609.6 R
-5.613(.W)-.65 G .613
-(hen matching a pathname, the slash character must al)-5.613 F -.1(wa)
--.1 G .614(ys be matched e).1 F .614(xplicitly by a)-.15 F .655
-(slash in the pattern, b)108 621.6 R .655(ut in other matching conte)-.2
-F .655(xts it can be matched by a special pattern character as de-)-.15
-F .719(scribed belo)108 633.6 R 3.219(wu)-.25 G(nder)-3.219 E F1 -.09
-(Pa)3.219 G(tter).09 E 2.969(nM)-.135 G(atching)-2.969 E F2(.)A F0 .719
-(See the description of)5.219 F F4(shopt)3.219 E F0(belo)3.219 E 3.22
-(wu)-.25 G(nder)-3.22 E F1 .72(SHELL B)3.22 F(UIL)-.09 E .72(TIN COM-)
--.828 F(MANDS)108 645.6 Q F0(for a description of the)2.25 E F4
-(nocaseglob)2.5 E F0(,)A F4(nullglob)2.5 E F0(,)A F4(failglob)2.5 E F0
-2.5(,a)C(nd)-2.5 E F4(dotglob)2.5 E F0(shell options.)2.5 E(The)108
-662.4 Q F1(GLOBIGNORE)2.562 E F0 .062(shell v)2.312 F .061
+614.4 Q .19(wing a slash must be matched e)-.25 F(xplicitly)-.15 E 2.69
+(,u)-.65 G .19(nless the shell option)-2.69 F F4(dotglob)2.691 E F0 .191
+(is set.)2.691 F .191(In order to match the \214le-)5.191 F(names)108
+626.4 Q F4 -.63(``)3.645 G -.55(.').63 G(')-.08 E F0(and)6.145 E F4 -.63
+(``)3.645 G(..).63 E -.63('')-.55 G F0 3.645(,t).63 G 1.145
+(he pattern must be)-3.645 F 1.145(gin with `)-.15 F(`.)-.74 E 2.625
+-.74('' \()-.7 H 1.145(for e).74 F 1.145(xample, `)-.15 F(`.?')-.74 E
+1.145('\), e)-.74 F -.15(ve)-.25 G 3.645(ni).15 G(f)-3.645 E F4(dotglob)
+3.644 E F0 1.144(is set.)3.644 F 1.144(If the)6.144 F F4(globskipdots)
+108 638.4 Q F0 .153(shell option is enabled, the \214lenames)2.653 F F4
+-.63(``)2.653 G -.55(.').63 G(')-.08 E F0(and)5.153 E F4 -.63(``)2.654 G
+(..).63 E -.63('')-.55 G F0 .154(are ne)5.784 F -.15(ve)-.25 G 2.654(rm)
+.15 G .154(atched, e)-2.654 F -.15(ve)-.25 G 2.654(ni).15 G 2.654(ft)
+-2.654 G .154(he pattern be-)-2.654 F .12(gins with a)108 650.4 R F4
+-.63(``)2.62 G -.55(.').63 G(')-.08 E F0 5.12(.W)C .12
+(hen not matching pathnames, the)-5.12 F F4 -.63(``)2.62 G -.55(.').63 G
+(')-.08 E F0 .12(character is not treated specially)5.12 F 5.12(.W)-.65
+G .12(hen matching)-5.12 F 3.54(ap)108 662.4 S 1.04
+(athname, the slash character must al)-3.54 F -.1(wa)-.1 G 1.04
+(ys be matched e).1 F 1.041(xplicitly by a slash in the pattern, b)-.15
+F 1.041(ut in other)-.2 F .132(matching conte)108 674.4 R .132
+(xts it can be matched by a special pattern character as described belo)
+-.15 F 2.631(wu)-.25 G(nder)-2.631 E F1 -.09(Pa)2.631 G(tter).09 E 2.381
+(nM)-.135 G(atch-)-2.381 E(ing)108 686.4 Q F2(.)A F0 .605
+(See the description of)5.105 F F4(shopt)3.105 E F0(belo)3.105 E 3.106
+(wu)-.25 G(nder)-3.106 E F1 .606(SHELL B)3.106 F(UIL)-.09 E .606
+(TIN COMMANDS)-.828 F F0 .606(for a description of the)2.856 F F4(no-)
+3.106 E(caseglob)108 698.4 Q F0(,)A F4(nullglob)2.5 E F0(,)A F4
+(globskipdots)2.5 E F0(,)A F4(failglob)2.5 E F0 2.5(,a)C(nd)-2.5 E F4
+(dotglob)2.5 E F0(shell options.)2.5 E(The)108 715.2 Q F1(GLOBIGNORE)
+2.562 E F0 .062(shell v)2.312 F .061
(ariable may be used to restrict the set of \214le names matching a)-.25
F F3(pattern)3.811 E F0 5.061(.I).24 G(f)-5.061 E F1(GLO-)2.561 E
-(BIGNORE)108 674.4 Q F0 1.096(is set, each matching \214le name that al\
-so matches one of the patterns in)3.346 F F1(GLOBIGNORE)3.597 E F0 1.097
-(is re-)3.347 F(mo)108 686.4 Q -.15(ve)-.15 G 2.851(df).15 G .351
-(rom the list of matches.)-2.851 F .351(If the)5.351 F F4(nocaseglob)
-2.851 E F0 .351(option is set, the matching ag)2.851 F .351
-(ainst the patterns in)-.05 F F1(GLO-)2.85 E(BIGNORE)108 698.4 Q F0 1.48
-(is performed without re)3.73 F -.05(ga)-.15 G 1.48(rd to case.).05 F
-1.48(The \214lenames)6.48 F F4 -.63(``)3.98 G -.55(.').63 G(')-.08 E F0
-(and)6.48 E F4 -.63(``)3.98 G(..).63 E -.63('')-.55 G F0 1.481(are al)
-7.11 F -.1(wa)-.1 G 1.481(ys ignored when).1 F F1(GLOBIGNORE)108 710.4 Q
-F0 .827(is set and not null.)3.077 F(Ho)5.827 E(we)-.25 E -.15(ve)-.25 G
-1.627 -.4(r, s).15 H(etting).4 E F1(GLOBIGNORE)3.327 E F0 .827
-(to a non-null v)3.077 F .827(alue has the ef)-.25 F .827(fect of)-.25 F
-.682(enabling the)108 722.4 R F4(dotglob)3.182 E F0 .682
-(shell option, so all other \214lenames be)3.182 F .682(ginning with a)
--.15 F F4 -.63(``)3.182 G -.55(.').63 G(')-.08 E F0 .682(will match.)
-5.682 F 2.283 -.8(To g)5.683 H .683(et the old).8 F(GNU Bash 5.1)72 768
-Q(2020 October 29)141.235 E(26)190.395 E 0 Cg EP
-%%Page: 27 27
+(BIGNORE)108 727.2 Q F0 2.015(is set, each matching \214le name that al\
+so matches one of the patterns in)4.264 F F1(GLOBIGNORE)4.515 E F0(is)
+4.265 E(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(27)185.115 E 0
+Cg EP
+%%Page: 28 28
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(beha)108 84 Q
-1.185(vior of ignoring \214lenames be)-.2 F 1.185(ginning with a)-.15 F
-/F1 10/Times-Bold@0 SF -.63(``)3.684 G -.55(.').63 G(')-.08 E F0 3.684
-(,m)C(ak)-3.684 E(e)-.1 E F1 -.63(``)3.684 G(.*').63 E(')-.63 E F0 1.184
-(one of the patterns in)6.184 F/F2 9/Times-Bold@0 SF(GLOBIGNORE)3.684 E
-/F3 9/Times-Roman@0 SF(.)A F0(The)108 96 Q F1(dotglob)3.131 E F0 .631
-(option is disabled when)3.131 F F2(GLOBIGNORE)3.132 E F0 .632
-(is unset.)2.882 F .632(The pattern matching honors the setting of)5.632
-F(the)108 108 Q F1(extglob)2.5 E F0(shell option.)2.5 E F1 -.1(Pa)108
-124.8 S(tter).1 E 2.5(nM)-.15 G(atching)-2.5 E F0(An)108 141.6 Q 3.138
-(yc)-.15 G .638(haracter that appears in a pattern, other than the spec\
-ial pattern characters described belo)-3.138 F 1.938 -.65(w, m)-.25 H
-(atches).65 E 2.721(itself. The)108 153.6 R .221
-(NUL character may not occur in a pattern.)2.721 F 2.721(Ab)5.221 G .221
-(ackslash escapes the follo)-2.721 F .222(wing character; the es-)-.25 F
-.418(caping backslash is discarded when matching.)108 165.6 R .418
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(remo)108 84 Q -.15
+(ve)-.15 G 3.915(df).15 G 1.415(rom the list of matches.)-3.915 F 1.415
+(If the)6.415 F/F1 10/Times-Bold@0 SF(nocaseglob)3.915 E F0 1.415
+(option is set, the matching ag)3.915 F 1.414(ainst the patterns in)-.05
+F/F2 9/Times-Bold@0 SF(GLOBIGNORE)108 96 Q F0 .146
+(is performed without re)2.396 F -.05(ga)-.15 G .146(rd to case.).05 F
+.146(The \214lenames)5.146 F F1 -.63(``)2.646 G -.55(.').63 G(')-.08 E
+F0(and)5.147 E F1 -.63(``)2.647 G(..).63 E -.63('')-.55 G F0 .147
+(are al)5.777 F -.1(wa)-.1 G .147(ys ignored when).1 F F2(GLOBIGNORE)108
+108 Q F0 .827(is set and not null.)3.077 F(Ho)5.827 E(we)-.25 E -.15(ve)
+-.25 G 1.627 -.4(r, s).15 H(etting).4 E F2(GLOBIGNORE)3.327 E F0 .827
+(to a non-null v)3.077 F .827(alue has the ef)-.25 F .827(fect of)-.25 F
+.682(enabling the)108 120 R F1(dotglob)3.182 E F0 .682
+(shell option, so all other \214lenames be)3.182 F .682(ginning with a)
+-.15 F F1 -.63(``)3.182 G -.55(.').63 G(')-.08 E F0 .682(will match.)
+5.682 F 2.283 -.8(To g)5.683 H .683(et the old).8 F(beha)108 132 Q 1.185
+(vior of ignoring \214lenames be)-.2 F 1.185(ginning with a)-.15 F F1
+-.63(``)3.684 G -.55(.').63 G(')-.08 E F0 3.684(,m)C(ak)-3.684 E(e)-.1 E
+F1 -.63(``)3.684 G(.*').63 E(')-.63 E F0 1.184(one of the patterns in)
+6.184 F F2(GLOBIGNORE)3.684 E/F3 9/Times-Roman@0 SF(.)A F0(The)108 144 Q
+F1(dotglob)3.131 E F0 .631(option is disabled when)3.131 F F2
+(GLOBIGNORE)3.132 E F0 .632(is unset.)2.882 F .632
+(The pattern matching honors the setting of)5.632 F(the)108 156 Q F1
+(extglob)2.5 E F0(shell option.)2.5 E F1 -.1(Pa)108 172.8 S(tter).1 E
+2.5(nM)-.15 G(atching)-2.5 E F0(An)108 189.6 Q 3.138(yc)-.15 G .638(har\
+acter that appears in a pattern, other than the special pattern charact\
+ers described belo)-3.138 F 1.938 -.65(w, m)-.25 H(atches).65 E 2.721
+(itself. The)108 201.6 R .221(NUL character may not occur in a pattern.)
+2.721 F 2.721(Ab)5.221 G .221(ackslash escapes the follo)-2.721 F .222
+(wing character; the es-)-.25 F .418
+(caping backslash is discarded when matching.)108 213.6 R .418
(The special pattern characters must be quoted if the)5.418 F 2.918(ya)
--.15 G .418(re to)-2.918 F(be matched literally)108 177.6 Q(.)-.65 E
-(The special pattern characters ha)108 194.4 Q .3 -.15(ve t)-.2 H
-(he follo).15 E(wing meanings:)-.25 E F1(*)144 211.2 Q F0 .376
-(Matches an)180 211.2 R 2.876(ys)-.15 G .376
+-.15 G .418(re to)-2.918 F(be matched literally)108 225.6 Q(.)-.65 E
+(The special pattern characters ha)108 242.4 Q .3 -.15(ve t)-.2 H
+(he follo).15 E(wing meanings:)-.25 E F1(*)144 259.2 Q F0 .376
+(Matches an)180 259.2 R 2.876(ys)-.15 G .376
(tring, including the null string.)-2.876 F .376(When the)5.376 F F1
-(globstar)2.876 E F0 .377(shell option is enabled,)2.876 F(and)180 223.2
+(globstar)2.876 E F0 .377(shell option is enabled,)2.876 F(and)180 271.2
Q F1(*)3.275 E F0 .775(is used in a pathname e)3.275 F .775
(xpansion conte)-.15 F .775(xt, tw)-.15 F 3.275(oa)-.1 G(djacent)-3.275
E F1(*)3.275 E F0 3.275(su)C .775(sed as a single pattern)-3.275 F 1.058
(will match all \214les and zero or more directories and subdirectories\
-.)180 235.2 R 1.058(If follo)6.058 F 1.058(wed by a)-.25 F F1(/)3.558 E
-F0(,)A(tw)180 247.2 Q 2.5(oa)-.1 G(djacent)-2.5 E F1(*)2.5 E F0 2.5(sw)C
-(ill match only directories and subdirectories.)-2.5 E F1(?)144 259.2 Q
-F0(Matches an)180 259.2 Q 2.5(ys)-.15 G(ingle character)-2.5 E(.)-.55 E
-F1([...])144 271.2 Q F0 .579(Matches an)180 271.2 R 3.079(yo)-.15 G .579
+.)180 283.2 R 1.058(If follo)6.058 F 1.058(wed by a)-.25 F F1(/)3.558 E
+F0(,)A(tw)180 295.2 Q 2.5(oa)-.1 G(djacent)-2.5 E F1(*)2.5 E F0 2.5(sw)C
+(ill match only directories and subdirectories.)-2.5 E F1(?)144 307.2 Q
+F0(Matches an)180 307.2 Q 2.5(ys)-.15 G(ingle character)-2.5 E(.)-.55 E
+F1([...])144 319.2 Q F0 .579(Matches an)180 319.2 R 3.079(yo)-.15 G .579
(ne of the enclosed characters.)-3.079 F 3.079(Ap)5.579 G .578
(air of characters separated by a h)-3.079 F(yphen)-.05 E .684
-(denotes a)180 283.2 R/F4 10/Times-Italic@0 SF -.15(ra)3.184 G(ng).15 E
+(denotes a)180 331.2 R/F4 10/Times-Italic@0 SF -.15(ra)3.184 G(ng).15 E
3.184(ee)-.1 G(xpr)-3.384 E(ession)-.37 E F0 3.184(;a)C .984 -.15(ny c)
-3.184 H .684(haracter that f).15 F .684(alls between those tw)-.1 F
-3.185(oc)-.1 G .685(haracters, inclu-)-3.185 F(si)180 295.2 Q -.15(ve)
+3.185(oc)-.1 G .685(haracters, inclu-)-3.185 F(si)180 343.2 Q -.15(ve)
-.25 G 3.713(,u).15 G 1.213(sing the current locale')-3.713 F 3.712(sc)
-.55 G 1.212(ollating sequence and character set, is matched.)-3.712 F
-1.212(If the)6.212 F 1.123(\214rst character follo)180 307.2 R 1.123
+1.212(If the)6.212 F 1.123(\214rst character follo)180 355.2 R 1.123
(wing the)-.25 F F1([)3.623 E F0 1.123(is a)3.623 F F1(!)3.623 E F0
1.124(or a)6.123 F F1(^)3.624 E F0 1.124(then an)3.624 F 3.624(yc)-.15 G
-1.124(haracter not enclosed is matched.)-3.624 F .895
-(The sorting order of characters in range e)180 319.2 R .894
-(xpressions is determined by the current locale)-.15 F .375(and the v)
-180 331.2 R .375(alues of the)-.25 F F2(LC_COLLA)2.875 E(TE)-.855 E F0
-(or)2.625 E F2(LC_ALL)2.875 E F0 .375(shell v)2.625 F .375
-(ariables, if set.)-.25 F 1.976 -.8(To o)5.376 H .376(btain the tra-).8
-F .068(ditional interpretation of range e)180 343.2 R .068
-(xpressions, where)-.15 F F1([a\255d])2.568 E F0 .067(is equi)2.567 F
--.25(va)-.25 G .067(lent to).25 F F1([abcd])2.567 E F0 2.567(,s)C .067
-(et v)-2.567 F(alue)-.25 E .156(of the)180 355.2 R F1(LC_ALL)2.656 E F0
-.156(shell v)2.656 F .156(ariable to)-.25 F F1(C)2.657 E F0 2.657(,o)C
-2.657(re)-2.657 G .157(nable the)-2.657 F F1(globasciiranges)2.657 E F0
-.157(shell option.)2.657 F(A)5.157 E F1<ad>2.657 E F0(may)2.657 E .193(\
-be matched by including it as the \214rst or last character in the set.)
-180 367.2 R(A)5.193 E F1(])2.693 E F0 .193(may be matched by)2.693 F
-(including it as the \214rst character in the set.)180 379.2 Q -.4(Wi)
-180 397.2 S(thin).4 E F1([)3.07 E F0(and)3.07 E F1(])3.07 E F0(,)A F4
--.15(ch)3.07 G(ar).15 E .571(acter classes)-.15 F F0 .571
-(can be speci\214ed using the syntax)3.071 F F1([:)3.071 E F4(class)A F1
-(:])A F0 3.071(,w)C(here)-3.071 E F4(class)3.071 E F0
-(is one of the follo)180 409.2 Q
+1.124(haracter not enclosed is matched.)-3.624 F 1.045
+(The sorting order of characters in range e)180 367.2 R 1.044
+(xpressions, and the characters included in the)-.15 F 2.34
+(range, are determined by the current locale and the v)180 379.2 R 2.341
+(alues of the)-.25 F F2(LC_COLLA)4.841 E(TE)-.855 E F0(or)4.591 E F2
+(LC_ALL)180 391.2 Q F0 1.079(shell v)3.329 F 1.079(ariables, if set.)
+-.25 F 2.679 -.8(To o)6.079 H 1.079
+(btain the traditional interpretation of range e).8 F(xpres-)-.15 E .392
+(sions, where)180 403.2 R F1([a\255d])2.892 E F0 .392(is equi)2.892 F
+-.25(va)-.25 G .392(lent to).25 F F1([abcd])2.893 E F0 2.893(,s)C .393
+(et v)-2.893 F .393(alue of the)-.25 F F1(LC_ALL)2.893 E F0 .393
+(shell v)2.893 F .393(ariable to)-.25 F F1(C)2.893 E F0(,)A .9
+(or enable the)180 415.2 R F1(globasciiranges)3.4 E F0 .9(shell option.)
+3.4 F(A)5.899 E F1<ad>3.399 E F0 .899
+(may be matched by including it as the)3.399 F .405
+(\214rst or last character in the set.)180 427.2 R(A)5.405 E F1(])2.905
+E F0 .405(may be matched by including it as the \214rst character)2.905
+F(in the set.)180 439.2 Q -.4(Wi)180 457.2 S(thin).4 E F1([)3.071 E F0
+(and)3.071 E F1(])3.071 E F0(,)A F4 -.15(ch)3.071 G(ar).15 E .571
+(acter classes)-.15 F F0 .571(can be speci\214ed using the syntax)3.071
+F F1([:)3.07 E F4(class)A F1(:])A F0 3.07(,w)C(here)-3.07 E F4(class)
+3.07 E F0(is one of the follo)180 469.2 Q
(wing classes de\214ned in the POSIX standard:)-.25 E F1 5.889
-(alnum alpha ascii blank cntrl digit graph lo)180 421.2 R 5.889
-(wer print punct space up-)-.1 F 5(per w)180 433.2 R 5(ord xdigit)-.1 F
-F0 4.289(Ac)180 445.2 S 1.789(haracter class matches an)-4.289 F 4.289
-(yc)-.15 G 1.789(haracter belonging to that class.)-4.289 F(The)6.789 E
-F1 -.1(wo)4.29 G(rd).1 E F0(character)4.29 E
-(class matches letters, digits, and the character _.)180 457.2 Q -.4(Wi)
-180 475.2 S(thin).4 E F1([)4.537 E F0(and)4.537 E F1(])4.537 E F0 4.537
-(,a)C(n)-4.537 E F4 2.037(equivalence class)4.537 F F0 2.036
-(can be speci\214ed using the syntax)4.536 F F1([=)4.536 E F4(c)A F1(=])
-A F0 4.536(,w)C(hich)-4.536 E .125(matches all characters with the same\
- collation weight \(as de\214ned by the current locale\) as)180 487.2 R
-(the character)180 499.2 Q F4(c)2.5 E F0(.)A -.4(Wi)180 517.2 S(thin).4
+(alnum alpha ascii blank cntrl digit graph lo)180 481.2 R 5.889
+(wer print punct space up-)-.1 F 5(per w)180 493.2 R 5(ord xdigit)-.1 F
+F0 4.29(Ac)180 505.2 S 1.789(haracter class matches an)-4.29 F 4.289(yc)
+-.15 G 1.789(haracter belonging to that class.)-4.289 F(The)6.789 E F1
+-.1(wo)4.289 G(rd).1 E F0(character)4.289 E
+(class matches letters, digits, and the character _.)180 517.2 Q -.4(Wi)
+180 535.2 S(thin).4 E F1([)4.536 E F0(and)4.536 E F1(])4.536 E F0 4.536
+(,a)C(n)-4.536 E F4 2.036(equivalence class)4.536 F F0 2.037
+(can be speci\214ed using the syntax)4.536 F F1([=)4.537 E F4(c)A F1(=])
+A F0 4.537(,w)C(hich)-4.537 E .125(matches all characters with the same\
+ collation weight \(as de\214ned by the current locale\) as)180 547.2 R
+(the character)180 559.2 Q F4(c)2.5 E F0(.)A -.4(Wi)180 577.2 S(thin).4
E F1([)2.5 E F0(and)2.5 E F1(])2.5 E F0 2.5(,t)C(he syntax)-2.5 E F1([.)
2.5 E F4(symbol)A F1(.])A F0(matches the collating symbol)2.5 E F4
-(symbol)2.5 E F0(.)A .705(If the)108 534 R F1(extglob)3.205 E F0 .705
-(shell option is enabled using the)3.205 F F1(shopt)3.205 E F0 -.2(bu)
-3.205 G .704(iltin, se).2 F -.15(ve)-.25 G .704(ral e).15 F .704
-(xtended pattern matching operators)-.15 F .255(are recognized.)108 546
-R .255(In the follo)5.255 F .255(wing description, a)-.25 F F4
-(pattern-list)2.755 E F0 .255
-(is a list of one or more patterns separated by a)2.755 F F1(|)2.756 E
-F0(.)A(Composite patterns may be formed using one or more of the follo)
-108 558 Q(wing sub-patterns:)-.25 E F1(?\()144 582 Q F4(pattern-list)
-.833 E F1(\)).833 E F0(Matches zero or one occurrence of the gi)180 594
-Q -.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(*\()144 606 Q F4
+(symbol)2.5 E F0(.)A .539(If the)108 594 R F1(extglob)3.039 E F0 .539
+(shell option is enabled using the)3.039 F F1(shopt)3.039 E F0 -.2(bu)
+3.039 G .54(iltin, the shell recognizes se).2 F -.15(ve)-.25 G .54
+(ral e).15 F .54(xtended pattern)-.15 F .038(matching operators.)108 606
+R .038(In the follo)5.038 F .038(wing description, a)-.25 F F4
+(pattern-list)2.538 E F0 .037
+(is a list of one or more patterns separated by)2.538 F(a)108 618 Q F1
+(|)2.5 E F0 5(.C)C
+(omposite patterns may be formed using one or more of the follo)-5 E
+(wing sub-patterns:)-.25 E F1(?\()144 642 Q F4(pattern-list).833 E F1
+(\)).833 E F0(Matches zero or one occurrence of the gi)180 654 Q -.15
+(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(*\()144 666 Q F4(pattern-list)
+.833 E F1(\)).833 E F0(Matches zero or more occurrences of the gi)180
+678 Q -.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E F1(+\()144 690 Q F4
(pattern-list).833 E F1(\)).833 E F0
-(Matches zero or more occurrences of the gi)180 618 Q -.15(ve)-.25 G 2.5
-(np).15 G(atterns)-2.5 E F1(+\()144 630 Q F4(pattern-list).833 E F1(\))
-.833 E F0(Matches one or more occurrences of the gi)180 642 Q -.15(ve)
--.25 G 2.5(np).15 G(atterns)-2.5 E F1(@\()144 654 Q F4(pattern-list).833
-E F1(\)).833 E F0(Matches one of the gi)180 666 Q -.15(ve)-.25 G 2.5(np)
-.15 G(atterns)-2.5 E F1(!\()144 678 Q F4(pattern-list).833 E F1(\)).833
-E F0(Matches an)180 690 Q(ything e)-.15 E(xcept one of the gi)-.15 E
--.15(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E .969(Complicated e)108 706.8
-R .969(xtended pattern matching ag)-.15 F .969
-(ainst long strings is slo)-.05 F 2.268 -.65(w, e)-.25 H .968
-(specially when the patterns contain).65 F .09
-(alternations and the strings contain multiple matches.)108 718.8 R .091
-(Using separate matches ag)5.091 F .091(ainst shorter strings, or us-)
--.05 F(ing arrays of strings instead of a single long string, may be f)
-108 730.8 Q(aster)-.1 E(.)-.55 E(GNU Bash 5.1)72 768 Q(2020 October 29)
-141.235 E(27)190.395 E 0 Cg EP
-%%Page: 28 28
+(Matches one or more occurrences of the gi)180 702 Q -.15(ve)-.25 G 2.5
+(np).15 G(atterns)-2.5 E(GNU Bash 5.2)72 768 Q(2022 September 19)135.955
+E(28)185.115 E 0 Cg EP
+%%Page: 29 29
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(Quote Remo)87 84 Q -.1(va)-.1 G(l).1 E F0 1.113
-(After the preceding e)108 96 R 1.113
+SF(@\()144 84 Q/F2 10/Times-Italic@0 SF(pattern-list).833 E F1(\)).833 E
+F0(Matches one of the gi)180 96 Q -.15(ve)-.25 G 2.5(np).15 G(atterns)
+-2.5 E F1(!\()144 108 Q F2(pattern-list).833 E F1(\)).833 E F0
+(Matches an)180 120 Q(ything e)-.15 E(xcept one of the gi)-.15 E -.15
+(ve)-.25 G 2.5(np).15 G(atterns)-2.5 E(The)108 136.8 Q F1(extglob)A F0
+.477(option changes the beha)2.977 F .477(vior of the parser)-.2 F 2.977
+(,s)-.4 G .478(ince the parentheses are normally treated as opera-)
+-2.977 F .105(tors with syntactic meaning.)108 148.8 R 1.705 -.8(To e)
+5.105 H .105(nsure that e).8 F .105
+(xtended matching patterns are parsed correctly)-.15 F 2.604(,m)-.65 G
+(ak)-2.604 E 2.604(es)-.1 G .104(ure that)-2.604 F F1(extglob)108 160.8
+Q F0 1.355(is enabled before parsing constructs containing the patterns\
+, including shell functions and com-)3.854 F(mand substitutions.)108
+172.8 Q .988(When matching \214lenames, the)108 189.6 R F1(dotglob)3.488
+E F0 .988
+(shell option determines the set of \214lenames that are tested: when)
+3.488 F F1(dotglob)108 201.6 Q F0 1.391
+(is enabled, the set of \214lenames includes all \214les be)3.891 F
+1.392(ginning with `)-.15 F(`.)-.74 E -.74('')-.7 G 3.892(,b).74 G 1.392
+(ut `)-4.092 F(`.)-.74 E 2.872 -.74('' a)-.7 H 1.392(nd `).74 F(`..)-.74
+E 2.872 -.74('' m)-.7 H 1.392(ust be).74 F .298
+(matched by a pattern or sub-pattern that be)108 213.6 R .298
+(gins with a dot; when it is disabled, the set does not include an)-.15
+F(y)-.15 E .327(\214lenames be)108 225.6 R .327(ginning with `)-.15 F
+(`.)-.74 E 1.807 -.74('' u)-.7 H .327
+(nless the pattern or sub-pattern be).74 F .327(gins with a `)-.15 F(`.)
+-.74 E -.74('')-.7 G 5.327(.A).74 G 2.827(sa)-5.327 G(bo)-2.827 E -.15
+(ve)-.15 G 2.828(,`).15 G(`.)-3.568 E 1.808 -.74('' o)-.7 H .328
+(nly has a).74 F(special meaning when matching \214lenames.)108 237.6 Q
+.969(Complicated e)108 254.4 R .969(xtended pattern matching ag)-.15 F
+.969(ainst long strings is slo)-.05 F 2.268 -.65(w, e)-.25 H .968
+(specially when the patterns contain).65 F .09
+(alternations and the strings contain multiple matches.)108 266.4 R .091
+(Using separate matches ag)5.091 F .091(ainst shorter strings, or us-)
+-.05 F(ing arrays of strings instead of a single long string, may be f)
+108 278.4 Q(aster)-.1 E(.)-.55 E F1(Quote Remo)87 295.2 Q -.1(va)-.1 G
+(l).1 E F0 1.113(After the preceding e)108 307.2 R 1.113
(xpansions, all unquoted occurrences of the characters)-.15 F F1(\\)
3.613 E F0(,)A F1<08>3.612 E F0 3.612(,a)C(nd)-3.612 E F1(")4.445 E F0
-1.112(that did not result)4.445 F(from one of the abo)108 108 Q .3 -.15
-(ve ex)-.15 H(pansions are remo).15 E -.15(ve)-.15 G(d.).15 E/F2 10.95
-/Times-Bold@0 SF(REDIRECTION)72 124.8 Q F0 .545(Before a command is e)
-108 136.8 R -.15(xe)-.15 G .545(cuted, its input and output may be).15 F
-/F3 10/Times-Italic@0 SF -.37(re)3.045 G(dir).37 E(ected)-.37 E F0 .545
-(using a special notation interpreted)3.815 F .405(by the shell.)108
-148.8 R .405(Redirection allo)5.405 F .405(ws commands' \214le handles \
-to be duplicated, opened, closed, made to refer to)-.25 F(dif)108 160.8
-Q 1.019(ferent \214les, and can change the \214les the command reads fr\
-om and writes to.)-.25 F 1.02(Redirection may also be)6.02 F .215
-(used to modify \214le handles in the current shell e)108 172.8 R -.15
-(xe)-.15 G .215(cution en).15 F 2.715(vironment. The)-.4 F(follo)2.715 E
+1.112(that did not result)4.445 F(from one of the abo)108 319.2 Q .3
+-.15(ve ex)-.15 H(pansions are remo).15 E -.15(ve)-.15 G(d.).15 E/F3
+10.95/Times-Bold@0 SF(REDIRECTION)72 336 Q F0 .545
+(Before a command is e)108 348 R -.15(xe)-.15 G .545
+(cuted, its input and output may be).15 F F2 -.37(re)3.045 G(dir).37 E
+(ected)-.37 E F0 .545(using a special notation interpreted)3.815 F .429
+(by the shell.)108 360 R F2(Redir)5.428 E(ection)-.37 E F0(allo)2.928 E
+.428(ws commands' \214le handles to be duplicated, opened, closed, made\
+ to refer to)-.25 F(dif)108 372 Q 1.019(ferent \214les, and can change \
+the \214les the command reads from and writes to.)-.25 F 1.02
+(Redirection may also be)6.02 F .215
+(used to modify \214le handles in the current shell e)108 384 R -.15(xe)
+-.15 G .215(cution en).15 F 2.715(vironment. The)-.4 F(follo)2.715 E
.215(wing redirection operators)-.25 F .862(may precede or appear an)108
-184.8 R .862(ywhere within a)-.15 F F3 .862(simple command)3.702 F F0
-.862(or may follo)4.132 F 3.362(wa)-.25 G F3(command).2 E F0 5.862(.R)
-.77 G .862(edirections are)-5.862 F(processed in the order the)108 196.8
-Q 2.5(ya)-.15 G(ppear)-2.5 E 2.5(,f)-.4 G(rom left to right.)-2.5 E .771
-(Each redirection that may be preceded by a \214le descriptor number ma\
-y instead be preceded by a w)108 213.6 R .771(ord of)-.1 F .292
-(the form {)108 225.6 R F3(varname)A F0 2.793(}. In)B .293
+396 R .862(ywhere within a)-.15 F F2 .862(simple command)3.702 F F0 .862
+(or may follo)4.132 F 3.362(wa)-.25 G F2(command).2 E F0 5.862(.R).77 G
+.862(edirections are)-5.862 F(processed in the order the)108 408 Q 2.5
+(ya)-.15 G(ppear)-2.5 E 2.5(,f)-.4 G(rom left to right.)-2.5 E .771(Eac\
+h redirection that may be preceded by a \214le descriptor number may in\
+stead be preceded by a w)108 424.8 R .771(ord of)-.1 F .292(the form {)
+108 436.8 R F2(varname)A F0 2.793(}. In)B .293
(this case, for each redirection operator e)2.793 F .293
-(xcept >&- and <&-, the shell will allocate)-.15 F 3.18<618c>108 237.6 S
+(xcept >&- and <&-, the shell will allocate)-.15 F 3.18<618c>108 448.8 S
.679(le descriptor greater than or equal to 10 and assign it to)-3.18 F
-F3(varname)3.179 E F0 5.679(.I)C 3.179(f>)-5.679 G .679
-(&- or <&- is preceded by {)-3.179 F F3(var)A(-)-.2 E(name)108 249.6 Q
-F0 .599(}, the v)B .599(alue of)-.25 F F3(varname)3.099 E F0 .599
-(de\214nes the \214le descriptor to close.)3.099 F .6(If {)5.6 F F3
+F2(varname)3.179 E F0 5.679(.I)C 3.179(f>)-5.679 G .679
+(&- or <&- is preceded by {)-3.179 F F2(var)A(-)-.2 E(name)108 460.8 Q
+F0 .599(}, the v)B .599(alue of)-.25 F F2(varname)3.099 E F0 .599
+(de\214nes the \214le descriptor to close.)3.099 F .6(If {)5.6 F F2
(varname)A F0 3.1(}i)C 3.1(ss)-3.1 G .6(upplied, the redirection)-3.1 F
-1.238(persists be)108 261.6 R 1.238(yond the scope of the command, allo)
--.15 F 1.238(wing the shell programmer to manage the \214le descriptor)
--.25 F(himself.)108 273.6 Q .283(In the follo)108 290.4 R .284(wing des\
-criptions, if the \214le descriptor number is omitted, and the \214rst \
-character of the redirect-)-.25 F .513(ion operator is)108 302.4 R F1(<)
+.794(persists be)108 472.8 R .794(yond the scope of the command, allo)
+-.15 F .793(wing the shell programmer to manage the \214le descriptor')
+-.25 F(s)-.55 E(lifetime manually)108 484.8 Q 5(.T)-.65 G(he)-5 E F1 -.1
+(va)2.5 G(rr).1 E(edir_close)-.18 E F0(shell option manages this beha)
+2.5 E(vior)-.2 E(.)-.55 E .283(In the follo)108 501.6 R .284(wing descr\
+iptions, if the \214le descriptor number is omitted, and the \214rst ch\
+aracter of the redirect-)-.25 F .513(ion operator is)108 513.6 R F1(<)
3.012 E F0 3.012(,t)C .512
(he redirection refers to the standard input \(\214le descriptor 0\).)
-3.012 F .512(If the \214rst character of the)5.512 F
-(redirection operator is)108 314.4 Q F1(>)2.5 E F0 2.5(,t)C
+(redirection operator is)108 525.6 Q F1(>)2.5 E F0 2.5(,t)C
(he redirection refers to the standard output \(\214le descriptor 1\).)
--2.5 E .824(The w)108 331.2 R .824(ord follo)-.1 F .824
+-2.5 E .824(The w)108 542.4 R .824(ord follo)-.1 F .824
(wing the redirection operator in the follo)-.25 F .825
(wing descriptions, unless otherwise noted, is sub-)-.25 F .463
-(jected to brace e)108 343.2 R .463(xpansion, tilde e)-.15 F .462
+(jected to brace e)108 554.4 R .463(xpansion, tilde e)-.15 F .462
(xpansion, parameter and v)-.15 F .462(ariable e)-.25 F .462
-(xpansion, command substitution, arith-)-.15 F .866(metic e)108 355.2 R
+(xpansion, command substitution, arith-)-.15 F .866(metic e)108 566.4 R
.866(xpansion, quote remo)-.15 F -.25(va)-.15 G .866(l, pathname e).25 F
.867(xpansion, and w)-.15 F .867(ord splitting.)-.1 F .867(If it e)5.867
-F .867(xpands to more than one)-.15 F -.1(wo)108 367.2 S(rd,).1 E F1
+F .867(xpands to more than one)-.15 F -.1(wo)108 578.4 S(rd,).1 E F1
(bash)2.5 E F0(reports an error)2.5 E(.)-.55 E
-(Note that the order of redirections is signi\214cant.)108 384 Q -.15
-(Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(ls)144 400.8 Q F1(>)2.5
-E F0(dirlist 2)2.5 E F1(>&)A F0(1)A
-(directs both standard output and standard error to the \214le)108 417.6
-Q F3(dirlist)2.85 E F0 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144
-434.4 Q F1(>&)A F0(1)A F1(>)2.5 E F0(dirlist)2.5 E .505
-(directs only the standard output to \214le)108 451.2 R F3(dirlist)3.355
+(Note that the order of redirections is signi\214cant.)108 595.2 Q -.15
+(Fo)5 G 2.5(re).15 G(xample, the command)-2.65 E(ls)144 612 Q F1(>)2.5 E
+F0(dirlist 2)2.5 E F1(>&)A F0(1)A
+(directs both standard output and standard error to the \214le)108 628.8
+Q F2(dirlist)2.85 E F0 2.5(,w).68 G(hile the command)-2.5 E(ls 2)144
+645.6 Q F1(>&)A F0(1)A F1(>)2.5 E F0(dirlist)2.5 E .505
+(directs only the standard output to \214le)108 662.4 R F2(dirlist)3.355
E F0 3.005(,b).68 G .505(ecause the standard error w)-3.005 F .505
(as duplicated from the standard)-.1 F
-(output before the standard output w)108 463.2 Q(as redirected to)-.1 E
-F3(dirlist)2.85 E F0(.).68 E F1(Bash)108 480 Q F0 .598(handles se)3.098
-F -.15(ve)-.25 G .598(ral \214lenames specially when the).15 F 3.099(ya)
--.15 G .599(re used in redirections, as described in the follo)-3.099 F
-(wing)-.25 E 3.478(table. If)108 492 R .978
+(output before the standard output w)108 674.4 Q(as redirected to)-.1 E
+F2(dirlist)2.85 E F0(.).68 E F1(Bash)108 691.2 Q F0 .598(handles se)
+3.098 F -.15(ve)-.25 G .598(ral \214lenames specially when the).15 F
+3.099(ya)-.15 G .599(re used in redirections, as described in the follo)
+-3.099 F(wing)-.25 E 3.478(table. If)108 703.2 R .978
(the operating system on which)3.478 F F1(bash)3.478 E F0 .978
(is running pro)3.478 F .977
(vides these special \214les, bash will use them;)-.15 F
-(otherwise it will emulate them internally with the beha)108 504 Q
-(vior described belo)-.2 E -.65(w.)-.25 G F1(/de)144 520.8 Q(v/fd/)-.15
-E F3(fd)A F0(If)180 532.8 Q F3(fd)2.5 E F0(is a v)2.5 E(alid inte)-.25 E
-(ger)-.15 E 2.5<2c8c>-.4 G(le descriptor)-2.5 E F3(fd)2.5 E F0
-(is duplicated.)2.5 E F1(/de)144 544.8 Q(v/stdin)-.15 E F0
-(File descriptor 0 is duplicated.)180 556.8 Q F1(/de)144 568.8 Q
-(v/stdout)-.15 E F0(File descriptor 1 is duplicated.)180 580.8 Q F1(/de)
-144 592.8 Q(v/stderr)-.15 E F0(File descriptor 2 is duplicated.)180
-604.8 Q F1(/de)144 616.8 Q(v/tcp/)-.15 E F3(host)A F1(/)A F3(port)A F0
-(If)180 628.8 Q F3(host)2.996 E F0 .496(is a v)2.996 F .496
-(alid hostname or Internet address, and)-.25 F F3(port)2.997 E F0 .497
+(otherwise it will emulate them internally with the beha)108 715.2 Q
+(vior described belo)-.2 E -.65(w.)-.25 G(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(29)185.115 E 0 Cg EP
+%%Page: 30 30
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(/de)144 84 Q(v/fd/)-.15 E/F2 10/Times-Italic@0 SF(fd)A F0(If)180 96 Q
+F2(fd)2.5 E F0(is a v)2.5 E(alid inte)-.25 E(ger)-.15 E 2.5<2c8c>-.4 G
+(le descriptor)-2.5 E F2(fd)2.5 E F0(is duplicated.)2.5 E F1(/de)144 108
+Q(v/stdin)-.15 E F0(File descriptor 0 is duplicated.)180 120 Q F1(/de)
+144 132 Q(v/stdout)-.15 E F0(File descriptor 1 is duplicated.)180 144 Q
+F1(/de)144 156 Q(v/stderr)-.15 E F0(File descriptor 2 is duplicated.)180
+168 Q F1(/de)144 180 Q(v/tcp/)-.15 E F2(host)A F1(/)A F2(port)A F0(If)
+180 192 Q F2(host)2.996 E F0 .496(is a v)2.996 F .496
+(alid hostname or Internet address, and)-.25 F F2(port)2.997 E F0 .497
(is an inte)2.997 F .497(ger port number or ser)-.15 F(-)-.2 E
-(vice name,)180 640.8 Q F1(bash)2.5 E F0
+(vice name,)180 204 Q F1(bash)2.5 E F0
(attempts to open the corresponding TCP sock)2.5 E(et.)-.1 E F1(/de)144
-652.8 Q(v/udp/)-.15 E F3(host)A F1(/)A F3(port)A F0(If)180 664.8 Q F3
-(host)2.997 E F0 .497(is a v)2.997 F .497
-(alid hostname or Internet address, and)-.25 F F3(port)2.996 E F0 .496
+216 Q(v/udp/)-.15 E F2(host)A F1(/)A F2(port)A F0(If)180 228 Q F2(host)
+2.997 E F0 .497(is a v)2.997 F .497
+(alid hostname or Internet address, and)-.25 F F2(port)2.996 E F0 .496
(is an inte)2.996 F .496(ger port number or ser)-.15 F(-)-.2 E
-(vice name,)180 676.8 Q F1(bash)2.5 E F0
+(vice name,)180 240 Q F1(bash)2.5 E F0
(attempts to open the corresponding UDP sock)2.5 E(et.)-.1 E 2.5(Af)108
-693.6 S(ailure to open or create a \214le causes the redirection to f)
+256.8 S(ailure to open or create a \214le causes the redirection to f)
-2.6 E(ail.)-.1 E .045(Redirections using \214le descriptors greater th\
-an 9 should be used with care, as the)108 710.4 R 2.546(ym)-.15 G .046
+an 9 should be used with care, as the)108 273.6 R 2.546(ym)-.15 G .046
(ay con\215ict with \214le de-)-2.546 F
-(scriptors the shell uses internally)108 722.4 Q(.)-.65 E(GNU Bash 5.1)
-72 768 Q(2020 October 29)141.235 E(28)190.395 E 0 Cg EP
-%%Page: 29 29
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(Redir)87 84 Q(ecting Input)-.18 E F0 .391
+(scriptors the shell uses internally)108 285.6 Q(.)-.65 E F1(Redir)87
+302.4 Q(ecting Input)-.18 E F0 .391
(Redirection of input causes the \214le whose name results from the e)
-108 96 R .391(xpansion of)-.15 F/F2 10/Times-Italic@0 SF(wor)3.231 E(d)
--.37 E F0 .391(to be opened for read-)3.661 F(ing on \214le descriptor)
-108 108 Q F2(n)2.86 E F0 2.5(,o).24 G 2.5(rt)-2.5 G
+108 314.4 R .391(xpansion of)-.15 F F2(wor)3.231 E(d)-.37 E F0 .391
+(to be opened for read-)3.661 F(ing on \214le descriptor)108 326.4 Q F2
+(n)2.86 E F0 2.5(,o).24 G 2.5(rt)-2.5 G
(he standard input \(\214le descriptor 0\) if)-2.5 E F2(n)2.86 E F0
(is not speci\214ed.)2.74 E
-(The general format for redirecting input is:)108 124.8 Q([)144 141.6 Q
-F2(n)A F0(])A F1(<)A F2(wor)A(d)-.37 E F1(Redir)87 158.4 Q
-(ecting Output)-.18 E F0 .174
+(The general format for redirecting input is:)108 343.2 Q([)144 360 Q F2
+(n)A F0(])A F1(<)A F2(wor)A(d)-.37 E F1(Redir)87 376.8 Q(ecting Output)
+-.18 E F0 .174
(Redirection of output causes the \214le whose name results from the e)
-108 170.4 R .175(xpansion of)-.15 F F2(wor)3.015 E(d)-.37 E F0 .175
-(to be opened for writ-)3.445 F .084(ing on \214le descriptor)108 182.4
+108 388.8 R .175(xpansion of)-.15 F F2(wor)3.015 E(d)-.37 E F0 .175
+(to be opened for writ-)3.445 F .084(ing on \214le descriptor)108 400.8
R F2(n)2.944 E F0 2.583(,o).24 G 2.583(rt)-2.583 G .083
(he standard output \(\214le descriptor 1\) if)-2.583 F F2(n)2.943 E F0
.083(is not speci\214ed.)2.823 F .083(If the \214le does not e)5.083 F
-(x-)-.15 E(ist it is created; if it does e)108 194.4 Q
+(x-)-.15 E(ist it is created; if it does e)108 412.8 Q
(xist it is truncated to zero size.)-.15 E
-(The general format for redirecting output is:)108 211.2 Q([)144 228 Q
+(The general format for redirecting output is:)108 429.6 Q([)144 446.4 Q
F2(n)A F0(])A F1(>)A F2(wor)A(d)-.37 E F0 .154
-(If the redirection operator is)108 244.8 R F1(>)2.654 E F0 2.654(,a)C
+(If the redirection operator is)108 463.2 R F1(>)2.654 E F0 2.654(,a)C
.154(nd the)-2.654 F F1(noclob)2.654 E(ber)-.1 E F0 .154(option to the)
2.654 F F1(set)2.655 E F0 -.2(bu)2.655 G .155
-(iltin has been enabled, the redirection).2 F .658(will f)108 256.8 R
+(iltin has been enabled, the redirection).2 F .658(will f)108 475.2 R
.658(ail if the \214le whose name results from the e)-.1 F .658
(xpansion of)-.15 F F2(wor)3.158 E(d)-.37 E F0 -.15(ex)3.158 G .657
(ists and is a re).15 F .657(gular \214le.)-.15 F .657(If the redi-)
-5.657 F .408(rection operator is)108 268.8 R F1(>|)2.909 E F0 2.909(,o)C
+5.657 F .408(rection operator is)108 487.2 R F1(>|)2.909 E F0 2.909(,o)C
2.909(rt)-2.909 G .409(he redirection operator is)-2.909 F F1(>)2.909 E
F0 .409(and the)2.909 F F1(noclob)2.909 E(ber)-.1 E F0 .409
(option to the)2.909 F F1(set)2.909 E F0 -.2(bu)2.909 G .409
(iltin command).2 F(is not enabled, the redirection is attempted e)108
-280.8 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214le named by)
+499.2 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214le named by)
-2.5 E F2(wor)2.5 E(d)-.37 E F0 -.15(ex)2.5 G(ists.).15 E F1 -.25(Ap)87
-297.6 S(pending Redir).25 E(ected Output)-.18 E F0 .642
-(Redirection of output in this f)108 309.6 R .642
+516 S(pending Redir).25 E(ected Output)-.18 E F0 .642
+(Redirection of output in this f)108 528 R .642
(ashion causes the \214le whose name results from the e)-.1 F .641
(xpansion of)-.15 F F2(wor)3.481 E(d)-.37 E F0 .641(to be)3.911 F .454
-(opened for appending on \214le descriptor)108 321.6 R F2(n)3.315 E F0
+(opened for appending on \214le descriptor)108 540 R F2(n)3.315 E F0
2.955(,o).24 G 2.955(rt)-2.955 G .455
(he standard output \(\214le descriptor 1\) if)-2.955 F F2(n)3.315 E F0
.455(is not speci\214ed.)3.195 F(If)5.455 E(the \214le does not e)108
-333.6 Q(xist it is created.)-.15 E
-(The general format for appending output is:)108 350.4 Q([)144 367.2 Q
-F2(n)A F0(])A F1(>>)A F2(wor)A(d)-.37 E F1(Redir)87 384 Q
+552 Q(xist it is created.)-.15 E
+(The general format for appending output is:)108 568.8 Q([)144 585.6 Q
+F2(n)A F0(])A F1(>>)A F2(wor)A(d)-.37 E F1(Redir)87 602.4 Q
(ecting Standard Output and Standard Err)-.18 E(or)-.18 E F0 .249
-(This construct allo)108 396 R .249(ws both the standard output \(\214l\
-e descriptor 1\) and the standard error output \(\214le descrip-)-.25 F
-(tor 2\) to be redirected to the \214le whose name is the e)108 408 Q
-(xpansion of)-.15 E F2(wor)2.84 E(d)-.37 E F0(.).77 E(There are tw)108
-424.8 Q 2.5(of)-.1 G
+(This construct allo)108 614.4 R .249(ws both the standard output \(\
+\214le descriptor 1\) and the standard error output \(\214le descrip-)
+-.25 F(tor 2\) to be redirected to the \214le whose name is the e)108
+626.4 Q(xpansion of)-.15 E F2(wor)2.84 E(d)-.37 E F0(.).77 E
+(There are tw)108 643.2 Q 2.5(of)-.1 G
(ormats for redirecting standard output and standard error:)-2.5 E F1
-(&>)144 441.6 Q F2(wor)A(d)-.37 E F0(and)108 453.6 Q F1(>&)144 465.6 Q
-F2(wor)A(d)-.37 E F0(Of the tw)108 482.4 Q 2.5(of)-.1 G
+(&>)144 660 Q F2(wor)A(d)-.37 E F0(and)108 672 Q F1(>&)144 684 Q F2(wor)
+A(d)-.37 E F0(Of the tw)108 700.8 Q 2.5(of)-.1 G
(orms, the \214rst is preferred.)-2.5 E(This is semantically equi)5 E
--.25(va)-.25 G(lent to).25 E F1(>)144 499.2 Q F2(wor)A(d)-.37 E F0(2)2.5
-E F1(>&)A F0(1)A .114(When using the second form,)108 516 R F2(wor)2.614
-E(d)-.37 E F0 .114(may not e)2.614 F .114(xpand to a number or)-.15 F F1
-<ad>2.614 E F0 5.114(.I)C 2.614(fi)-5.114 G 2.615(td)-2.614 G .115
-(oes, other redirection operators)-2.615 F(apply \(see)108 528 Q F1
-(Duplicating File Descriptors)2.5 E F0(belo)2.5 E
-(w\) for compatibility reasons.)-.25 E F1 -.25(Ap)87 544.8 S
+-.25(va)-.25 G(lent to).25 E F1(>)144 717.6 Q F2(wor)A(d)-.37 E F0(2)2.5
+E F1(>&)A F0(1)A(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(30)
+185.115 E 0 Cg EP
+%%Page: 31 31
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .114
+(When using the second form,)108 84 R/F1 10/Times-Italic@0 SF(wor)2.614
+E(d)-.37 E F0 .114(may not e)2.614 F .114(xpand to a number or)-.15 F/F2
+10/Times-Bold@0 SF<ad>2.614 E F0 5.114(.I)C 2.614(fi)-5.114 G 2.615(td)
+-2.614 G .115(oes, other redirection operators)-2.615 F(apply \(see)108
+96 Q F2(Duplicating File Descriptors)2.5 E F0(belo)2.5 E
+(w\) for compatibility reasons.)-.25 E F2 -.25(Ap)87 112.8 S
(pending Standard Output and Standard Err).25 E(or)-.18 E F0 .249
-(This construct allo)108 556.8 R .249(ws both the standard output \(\
+(This construct allo)108 124.8 R .249(ws both the standard output \(\
\214le descriptor 1\) and the standard error output \(\214le descrip-)
-.25 F(tor 2\) to be appended to the \214le whose name is the e)108
-568.8 Q(xpansion of)-.15 E F2(wor)2.84 E(d)-.37 E F0(.).77 E
+136.8 Q(xpansion of)-.15 E F1(wor)2.84 E(d)-.37 E F0(.).77 E
(The format for appending standard output and standard error is:)108
-585.6 Q F1(&>>)144 602.4 Q F2(wor)A(d)-.37 E F0
-(This is semantically equi)108 619.2 Q -.25(va)-.25 G(lent to).25 E F1
-(>>)144 636 Q F2(wor)A(d)-.37 E F0(2)2.5 E F1(>&)A F0(1)A(\(see)108
-652.8 Q F1(Duplicating File Descriptors)2.5 E F0(belo)2.5 E(w\).)-.25 E
-F1(Her)87 669.6 Q 2.5(eD)-.18 G(ocuments)-2.5 E F0 .33(This type of red\
+153.6 Q F2(&>>)144 170.4 Q F1(wor)A(d)-.37 E F0
+(This is semantically equi)108 187.2 Q -.25(va)-.25 G(lent to).25 E F2
+(>>)144 204 Q F1(wor)A(d)-.37 E F0(2)2.5 E F2(>&)A F0(1)A(\(see)108
+220.8 Q F2(Duplicating File Descriptors)2.5 E F0(belo)2.5 E(w\).)-.25 E
+F2(Her)87 237.6 Q 2.5(eD)-.18 G(ocuments)-2.5 E F0 .33(This type of red\
irection instructs the shell to read input from the current source unti\
-l a line containing only)108 681.6 R F2(delimiter)108.35 693.6 Q F0 .615
+l a line containing only)108 249.6 R F1(delimiter)108.35 261.6 Q F0 .615
(\(with no trailing blanks\) is seen.)3.845 F .615
(All of the lines read up to that point are then used as the stan-)5.615
-F(dard input \(or \214le descriptor)108 705.6 Q F2(n)2.5 E F0(if)2.5 E
-F2(n)2.5 E F0(is speci\214ed\) for a command.)2.5 E
-(The format of here-documents is:)108 722.4 Q(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(29)190.395 E 0 Cg EP
-%%Page: 30 30
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E([)144 84 Q/F1 10
-/Times-Italic@0 SF(n)A F0(])A/F2 10/Times-Bold@0 SF(<<)A F0([)A F2<ad>A
-F0(])A F1(wor)A(d)-.37 E(her)164 96 Q(e-document)-.37 E(delimiter)144
-108 Q F0 .301(No parameter and v)108 124.8 R .302(ariable e)-.25 F .302
+F(dard input \(or \214le descriptor)108 273.6 Q F1(n)2.5 E F0(if)2.5 E
+F1(n)2.5 E F0(is speci\214ed\) for a command.)2.5 E
+(The format of here-documents is:)108 290.4 Q([)144 307.2 Q F1(n)A F0(])
+A F2(<<)A F0([)A F2<ad>A F0(])A F1(wor)A(d)-.37 E(her)164 319.2 Q
+(e-document)-.37 E(delimiter)144 331.2 Q F0 .301(No parameter and v)108
+348 R .302(ariable e)-.25 F .302
(xpansion, command substitution, arithmetic e)-.15 F .302
(xpansion, or pathname e)-.15 F(xpansion)-.15 E .381(is performed on)108
-136.8 R F1(wor)3.221 E(d)-.37 E F0 5.381(.I).77 G 2.881(fa)-5.381 G .681
+360 R F1(wor)3.221 E(d)-.37 E F0 5.381(.I).77 G 2.881(fa)-5.381 G .681
-.15(ny p)-2.881 H .381(art of).15 F F1(wor)3.221 E(d)-.37 E F0 .381
(is quoted, the)3.651 F F1(delimiter)3.231 E F0 .381
(is the result of quote remo)3.611 F -.25(va)-.15 G 2.881(lo).25 G(n)
-2.881 E F1(wor)3.221 E(d)-.37 E F0(,).77 E .773
-(and the lines in the here-document are not e)108 148.8 R 3.274
+(and the lines in the here-document are not e)108 372 R 3.274
(xpanded. If)-.15 F F1(wor)3.274 E(d)-.37 E F0 .774
(is unquoted, all lines of the here-document)3.274 F 1.195
-(are subjected to parameter e)108 160.8 R 1.194
+(are subjected to parameter e)108 384 R 1.194
(xpansion, command substitution, and arithmetic e)-.15 F 1.194
-(xpansion, the character se-)-.15 F(quence)108 172.8 Q F2(\\<newline>)
-2.5 E F0(is ignored, and)2.5 E F2(\\)2.5 E F0
+(xpansion, the character se-)-.15 F(quence)108 396 Q F2(\\<newline>)2.5
+E F0(is ignored, and)2.5 E F2(\\)2.5 E F0
(must be used to quote the characters)2.5 E F2(\\)2.5 E F0(,)A F2($)2.5
E F0 2.5(,a)C(nd)-2.5 E F2<92>2.5 E F0(.)A .601
-(If the redirection operator is)108 189.6 R F2(<<\255)3.101 E F0 3.101
+(If the redirection operator is)108 412.8 R F2(<<\255)3.101 E F0 3.101
(,t)C .601(hen all leading tab characters are stripped from input lines\
- and the line)-3.101 F(containing)108 201.6 Q F1(delimiter)2.85 E F0 5
+ and the line)-3.101 F(containing)108 424.8 Q F1(delimiter)2.85 E F0 5
(.T).73 G(his allo)-5 E
(ws here-documents within shell scripts to be indented in a natural f)
--.25 E(ashion.)-.1 E F2(Her)87 218.4 Q 2.5(eS)-.18 G(trings)-2.5 E F0
-2.5(Av)108 230.4 S(ariant of here documents, the format is:)-2.75 E([)
-144 247.2 Q F1(n)A F0(])A F2(<<<)A F1(wor)A(d)-.37 E F0(The)108 264 Q F1
-(wor)3.292 E(d)-.37 E F0(under)3.292 E .792(goes tilde e)-.18 F .792
+-.25 E(ashion.)-.1 E F2(Her)87 441.6 Q 2.5(eS)-.18 G(trings)-2.5 E F0
+2.5(Av)108 453.6 S(ariant of here documents, the format is:)-2.75 E([)
+144 470.4 Q F1(n)A F0(])A F2(<<<)A F1(wor)A(d)-.37 E F0(The)108 487.2 Q
+F1(wor)3.292 E(d)-.37 E F0(under)3.292 E .792(goes tilde e)-.18 F .792
(xpansion, parameter and v)-.15 F .792(ariable e)-.25 F .791
-(xpansion, command substitution, arithmetic)-.15 F -.15(ex)108 276 S
+(xpansion, command substitution, arithmetic)-.15 F -.15(ex)108 499.2 S
1.187(pansion, and quote remo).15 F -.25(va)-.15 G 3.687(l. P).25 F
1.187(athname e)-.15 F 1.187(xpansion and w)-.15 F 1.187
(ord splitting are not performed.)-.1 F 1.188(The result is)6.187 F .375
-(supplied as a single string, with a ne)108 288 R .374(wline appended, \
-to the command on its standard input \(or \214le descrip-)-.25 F(tor)108
-300 Q F1(n)2.5 E F0(if)2.5 E F1(n)2.5 E F0(is speci\214ed\).)2.5 E F2
-(Duplicating File Descriptors)87 316.8 Q F0(The redirection operator)108
-328.8 Q([)144 345.6 Q F1(n)A F0(])A F2(<&)A F1(wor)A(d)-.37 E F0 .126
-(is used to duplicate input \214le descriptors.)108 362.4 R(If)5.127 E
+(supplied as a single string, with a ne)108 511.2 R .374(wline appended\
+, to the command on its standard input \(or \214le descrip-)-.25 F(tor)
+108 523.2 Q F1(n)2.5 E F0(if)2.5 E F1(n)2.5 E F0(is speci\214ed\).)2.5 E
+F2(Duplicating File Descriptors)87 540 Q F0(The redirection operator)108
+552 Q([)144 568.8 Q F1(n)A F0(])A F2(<&)A F1(wor)A(d)-.37 E F0 .126
+(is used to duplicate input \214le descriptors.)108 585.6 R(If)5.127 E
F1(wor)2.967 E(d)-.37 E F0 -.15(ex)3.397 G .127
(pands to one or more digits, the \214le descriptor denoted).15 F(by)108
-374.4 Q F1(n)3.318 E F0 .458(is made to be a cop)3.198 F 2.958(yo)-.1 G
+597.6 Q F1(n)3.318 E F0 .458(is made to be a cop)3.198 F 2.958(yo)-.1 G
2.958(ft)-2.958 G .457(hat \214le descriptor)-2.958 F 5.457(.I)-.55 G
2.957(ft)-5.457 G .457(he digits in)-2.957 F F1(wor)3.297 E(d)-.37 E F0
.457(do not specify a \214le descriptor open)3.727 F .149
-(for input, a redirection error occurs.)108 386.4 R(If)5.149 E F1(wor)
+(for input, a redirection error occurs.)108 609.6 R(If)5.149 E F1(wor)
2.989 E(d)-.37 E F0 -.25(eva)3.419 G .149(luates to).25 F F2<ad>2.649 E
F0 2.65<2c8c>C .15(le descriptor)-2.65 F F1(n)3.01 E F0 .15(is closed.)
2.89 F(If)5.15 E F1(n)3.01 E F0 .15(is not speci\214ed,)2.89 F
-(the standard input \(\214le descriptor 0\) is used.)108 398.4 Q
-(The operator)108 415.2 Q([)144 432 Q F1(n)A F0(])A F2(>&)A F1(wor)A(d)
--.37 E F0 .444
-(is used similarly to duplicate output \214le descriptors.)108 448.8 R
-(If)5.444 E F1(n)3.304 E F0 .443
+(the standard input \(\214le descriptor 0\) is used.)108 621.6 Q
+(The operator)108 638.4 Q([)144 655.2 Q F1(n)A F0(])A F2(>&)A F1(wor)A
+(d)-.37 E F0 .444
+(is used similarly to duplicate output \214le descriptors.)108 672 R(If)
+5.444 E F1(n)3.304 E F0 .443
(is not speci\214ed, the standard output \(\214le descrip-)3.183 F .565
-(tor 1\) is used.)108 460.8 R .565(If the digits in)5.565 F F1(wor)3.406
-E(d)-.37 E F0 .566(do not specify a \214le descriptor open for output, \
-a redirection error oc-)3.836 F 3.204(curs. If)108 472.8 R F1(wor)3.544
-E(d)-.37 E F0 -.25(eva)3.974 G .704(luates to).25 F F2<ad>3.204 E F0
+(tor 1\) is used.)108 684 R .565(If the digits in)5.565 F F1(wor)3.406 E
+(d)-.37 E F0 .566(do not specify a \214le descriptor open for output, a\
+ redirection error oc-)3.836 F 3.204(curs. If)108 696 R F1(wor)3.544 E
+(d)-.37 E F0 -.25(eva)3.974 G .704(luates to).25 F F2<ad>3.204 E F0
3.204<2c8c>C .704(le descriptor)-3.204 F F1(n)3.563 E F0 .703
(is closed.)3.443 F .703(As a special case, if)5.703 F F1(n)3.203 E F0
.703(is omitted, and)3.203 F F1(wor)3.203 E(d)-.37 E F0(does)3.203 E
-.965(not e)108 484.8 R .965(xpand to one or more digits or)-.15 F F2<ad>
+.965(not e)108 708 R .965(xpand to one or more digits or)-.15 F F2<ad>
3.465 E F0 3.466(,t)C .966
(he standard output and standard error are redirected as described)
--3.466 F(pre)108 496.8 Q(viously)-.25 E(.)-.65 E F2(Mo)87 513.6 Q
-(ving File Descriptors)-.1 E F0(The redirection operator)108 525.6 Q([)
-144 542.4 Q F1(n)A F0(])A F2(<&)A F1(digit)A F2<ad>A F0(mo)108 559.2 Q
--.15(ve)-.15 G 3.018(st).15 G .518(he \214le descriptor)-3.018 F F1
-(digit)3.018 E F0 .518(to \214le descriptor)3.018 F F1(n)3.378 E F0
-3.018(,o).24 G 3.018(rt)-3.018 G .517
-(he standard input \(\214le descriptor 0\) if)-3.018 F F1(n)3.017 E F0
-.517(is not speci-)3.017 F(\214ed.)108 571.2 Q F1(digit)5 E F0
-(is closed after being duplicated to)2.5 E F1(n)2.5 E F0(.)A(Similarly)
-108 588 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([)144 604.8 Q F1
-(n)A F0(])A F2(>&)A F1(digit)A F2<ad>A F0(mo)108 621.6 Q -.15(ve)-.15 G
-2.767(st).15 G .267(he \214le descriptor)-2.767 F F1(digit)2.767 E F0
-.267(to \214le descriptor)2.767 F F1(n)3.127 E F0 2.767(,o).24 G 2.767
-(rt)-2.767 G .268(he standard output \(\214le descriptor 1\) if)-2.767 F
-F1(n)2.768 E F0 .268(is not speci-)2.768 F(\214ed.)108 633.6 Q F2
-(Opening File Descriptors f)87 650.4 Q(or Reading and Writing)-.25 E F0
-(The redirection operator)108 662.4 Q([)144 679.2 Q F1(n)A F0(])A F2(<>)
-A F1(wor)A(d)-.37 E F0 .518(causes the \214le whose name is the e)108
-696 R .518(xpansion of)-.15 F F1(wor)3.358 E(d)-.37 E F0 .518
-(to be opened for both reading and writing on \214le de-)3.788 F
-(scriptor)108 708 Q F1(n)2.86 E F0 2.5(,o).24 G 2.5(ro)-2.5 G 2.5<6e8c>
--2.5 G(le descriptor 0 if)-2.5 E F1(n)2.86 E F0(is not speci\214ed.)2.74
-E(If the \214le does not e)5 E(xist, it is created.)-.15 E(GNU Bash 5.1)
-72 768 Q(2020 October 29)141.235 E(30)190.395 E 0 Cg EP
-%%Page: 31 31
+-3.466 F(pre)108 720 Q(viously)-.25 E(.)-.65 E(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(31)185.115 E 0 Cg EP
+%%Page: 32 32
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10.95
-/Times-Bold@0 SF(ALIASES)72 84 Q/F2 10/Times-Italic@0 SF(Aliases)108 96
-Q F0(allo)3.173 E 3.173(was)-.25 G .674(tring to be substituted for a w)
--3.173 F .674(ord when it is used as the \214rst w)-.1 F .674
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(Mo)87 84 Q(ving File Descriptors)-.1 E F0(The redirection operator)
+108 96 Q([)144 112.8 Q/F2 10/Times-Italic@0 SF(n)A F0(])A F1(<&)A F2
+(digit)A F1<ad>A F0(mo)108 129.6 Q -.15(ve)-.15 G 3.018(st).15 G .518
+(he \214le descriptor)-3.018 F F2(digit)3.018 E F0 .518
+(to \214le descriptor)3.018 F F2(n)3.378 E F0 3.018(,o).24 G 3.018(rt)
+-3.018 G .517(he standard input \(\214le descriptor 0\) if)-3.018 F F2
+(n)3.017 E F0 .517(is not speci-)3.017 F(\214ed.)108 141.6 Q F2(digit)5
+E F0(is closed after being duplicated to)2.5 E F2(n)2.5 E F0(.)A
+(Similarly)108 158.4 Q 2.5(,t)-.65 G(he redirection operator)-2.5 E([)
+144 175.2 Q F2(n)A F0(])A F1(>&)A F2(digit)A F1<ad>A F0(mo)108 192 Q
+-.15(ve)-.15 G 2.767(st).15 G .267(he \214le descriptor)-2.767 F F2
+(digit)2.767 E F0 .267(to \214le descriptor)2.767 F F2(n)3.127 E F0
+2.767(,o).24 G 2.767(rt)-2.767 G .268
+(he standard output \(\214le descriptor 1\) if)-2.767 F F2(n)2.768 E F0
+.268(is not speci-)2.768 F(\214ed.)108 204 Q F1
+(Opening File Descriptors f)87 220.8 Q(or Reading and Writing)-.25 E F0
+(The redirection operator)108 232.8 Q([)144 249.6 Q F2(n)A F0(])A F1(<>)
+A F2(wor)A(d)-.37 E F0 .518(causes the \214le whose name is the e)108
+266.4 R .518(xpansion of)-.15 F F2(wor)3.358 E(d)-.37 E F0 .518
+(to be opened for both reading and writing on \214le de-)3.788 F
+(scriptor)108 278.4 Q F2(n)2.86 E F0 2.5(,o).24 G 2.5(ro)-2.5 G 2.5
+<6e8c>-2.5 G(le descriptor 0 if)-2.5 E F2(n)2.86 E F0
+(is not speci\214ed.)2.74 E(If the \214le does not e)5 E
+(xist, it is created.)-.15 E/F3 10.95/Times-Bold@0 SF(ALIASES)72 295.2 Q
+F2(Aliases)108 307.2 Q F0(allo)3.173 E 3.173(was)-.25 G .674
+(tring to be substituted for a w)-3.173 F .674
+(ord when it is used as the \214rst w)-.1 F .674
(ord of a simple command.)-.1 F .394(The shell maintains a list of alia\
-ses that may be set and unset with the)108 108 R/F3 10/Times-Bold@0 SF
-(alias)2.893 E F0(and)2.893 E F3(unalias)2.893 E F0 -.2(bu)2.893 G .393
-(iltin commands).2 F(\(see)108 120 Q/F4 9/Times-Bold@0 SF 1.979(SHELL B)
-4.479 F(UIL)-.09 E 1.979(TIN COMMANDS)-.828 F F0(belo)4.229 E 4.48
-(w\). The)-.25 F 1.98(\214rst w)4.48 F 1.98
-(ord of each simple command, if unquoted, is)-.1 F(check)108 132 Q .473
-(ed to see if it has an alias.)-.1 F .473(If so, that w)5.473 F .472
-(ord is replaced by the te)-.1 F .472(xt of the alias.)-.15 F .472
-(The characters)5.472 F F3(/)2.972 E F0(,)A F3($)2.972 E F0(,)A F3<92>
-2.972 E F0(,)A(and)108 144 Q F3(=)3.611 E F0 1.111(and an)3.611 F 3.611
-(yo)-.15 G 3.611(ft)-3.611 G 1.111(he shell)-3.611 F F2(metac)3.612 E
-(har)-.15 E(acter)-.15 E(s)-.1 E F0 1.112
+ses that may be set and unset with the)108 319.2 R F1(alias)2.893 E F0
+(and)2.893 E F1(unalias)2.893 E F0 -.2(bu)2.893 G .393(iltin commands).2
+F(\(see)108 331.2 Q/F4 9/Times-Bold@0 SF 1.979(SHELL B)4.479 F(UIL)-.09
+E 1.979(TIN COMMANDS)-.828 F F0(belo)4.229 E 4.48(w\). The)-.25 F 1.98
+(\214rst w)4.48 F 1.98(ord of each simple command, if unquoted, is)-.1 F
+(check)108 343.2 Q .473(ed to see if it has an alias.)-.1 F .473
+(If so, that w)5.473 F .472(ord is replaced by the te)-.1 F .472
+(xt of the alias.)-.15 F .472(The characters)5.472 F F1(/)2.972 E F0(,)A
+F1($)2.972 E F0(,)A F1<92>2.972 E F0(,)A(and)108 355.2 Q F1(=)3.611 E F0
+1.111(and an)3.611 F 3.611(yo)-.15 G 3.611(ft)-3.611 G 1.111(he shell)
+-3.611 F F2(metac)3.612 E(har)-.15 E(acter)-.15 E(s)-.1 E F0 1.112
(or quoting characters listed abo)3.612 F 1.412 -.15(ve m)-.15 H 1.112
-(ay not appear in an alias).15 F 3.62(name. The)108 156 R 1.12
+(ay not appear in an alias).15 F 3.62(name. The)108 367.2 R 1.12
(replacement te)3.62 F 1.119(xt may contain an)-.15 F 3.619(yv)-.15 G
1.119(alid shell input, including shell metacharacters.)-3.869 F 1.119
-(The \214rst)6.119 F -.1(wo)108 168 S .513(rd of the replacement te).1 F
-.513(xt is tested for aliases, b)-.15 F .513(ut a w)-.2 F .514
+(The \214rst)6.119 F -.1(wo)108 379.2 S .513(rd of the replacement te).1
+F .513(xt is tested for aliases, b)-.15 F .513(ut a w)-.2 F .514
(ord that is identical to an alias being e)-.1 F .514(xpanded is)-.15 F
-.296(not e)108 180 R .296(xpanded a second time.)-.15 F .296
-(This means that one may alias)5.296 F F3(ls)2.796 E F0(to)2.796 E F3
-.296(ls \255F)2.796 F F0 2.796(,f)C .295(or instance, and)-2.796 F F3
-(bash)2.795 E F0 .295(does not try)2.795 F .528(to recursi)108 192 R
+.296(not e)108 391.2 R .296(xpanded a second time.)-.15 F .296
+(This means that one may alias)5.296 F F1(ls)2.796 E F0(to)2.796 E F1
+.296(ls \255F)2.796 F F0 2.796(,f)C .295(or instance, and)-2.796 F F1
+(bash)2.795 E F0 .295(does not try)2.795 F .528(to recursi)108 403.2 R
-.15(ve)-.25 G .528(ly e).15 F .528(xpand the replacement te)-.15 F
3.028(xt. If)-.15 F .528(the last character of the alias v)3.028 F .529
(alue is a)-.25 F F2(blank)3.299 E F0 3.029(,t).67 G .529(hen the ne)
--3.029 F(xt)-.15 E(command w)108 204 Q(ord follo)-.1 E
+-3.029 F(xt)-.15 E(command w)108 415.2 Q(ord follo)-.1 E
(wing the alias is also check)-.25 E(ed for alias e)-.1 E(xpansion.)-.15
-E(Aliases are created and listed with the)108 220.8 Q F3(alias)2.5 E F0
-(command, and remo)2.5 E -.15(ve)-.15 G 2.5(dw).15 G(ith the)-2.5 E F3
-(unalias)2.5 E F0(command.)2.5 E .284
-(There is no mechanism for using ar)108 237.6 R .284
-(guments in the replacement te)-.18 F 2.784(xt. If)-.15 F(ar)2.784 E
-.284(guments are needed, a shell func-)-.18 F(tion should be used \(see)
-108 249.6 Q F4(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E .282
-(Aliases are not e)108 266.4 R .282
-(xpanded when the shell is not interacti)-.15 F -.15(ve)-.25 G 2.782(,u)
-.15 G .282(nless the)-2.782 F F3(expand_aliases)2.783 E F0 .283
-(shell option is set us-)2.783 F(ing)108 278.4 Q F3(shopt)2.5 E F0
-(\(see the description of)2.5 E F3(shopt)2.5 E F0(under)2.5 E F4
+E(Aliases are created and listed with the)108 432 Q F1(alias)2.5 E F0
+(command, and remo)2.5 E -.15(ve)-.15 G 2.5(dw).15 G(ith the)-2.5 E F1
+(unalias)2.5 E F0(command.)2.5 E .742
+(There is no mechanism for using ar)108 448.8 R .741
+(guments in the replacement te)-.18 F 3.241(xt. If)-.15 F(ar)3.241 E
+.741(guments are needed, use a shell)-.18 F(function \(see)108 460.8 Q
+F4(FUNCTIONS)2.5 E F0(belo)2.25 E(w\).)-.25 E .282(Aliases are not e)108
+477.6 R .282(xpanded when the shell is not interacti)-.15 F -.15(ve)-.25
+G 2.782(,u).15 G .282(nless the)-2.782 F F1(expand_aliases)2.783 E F0
+.283(shell option is set us-)2.783 F(ing)108 489.6 Q F1(shopt)2.5 E F0
+(\(see the description of)2.5 E F1(shopt)2.5 E F0(under)2.5 E F4
(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25
E .436
(The rules concerning the de\214nition and use of aliases are some)108
-295.2 R .435(what confusing.)-.25 F F3(Bash)5.435 E F0(al)2.935 E -.1
+506.4 R .435(what confusing.)-.25 F F1(Bash)5.435 E F0(al)2.935 E -.1
(wa)-.1 G .435(ys reads at least).1 F .67
-(one complete line of input, and all lines that mak)108 307.2 R 3.17(eu)
+(one complete line of input, and all lines that mak)108 518.4 R 3.17(eu)
-.1 G 3.17(pac)-3.17 G .67(ompound command, before e)-3.17 F -.15(xe)
-.15 G .67(cuting an).15 F 3.17(yo)-.15 G 3.17(ft)-3.17 G(he)-3.17 E
-1.059(commands on that line or the compound command.)108 319.2 R 1.059
+1.059(commands on that line or the compound command.)108 530.4 R 1.059
(Aliases are e)6.059 F 1.058(xpanded when a command is read, not)-.15 F
-.074(when it is e)108 331.2 R -.15(xe)-.15 G 2.574(cuted. Therefore,).15
+.074(when it is e)108 542.4 R -.15(xe)-.15 G 2.574(cuted. Therefore,).15
F .075(an alias de\214nition appearing on the same line as another comm\
-and does not)2.574 F(tak)108 343.2 Q 2.838(ee)-.1 G -.25(ff)-2.838 G
+and does not)2.574 F(tak)108 554.4 Q 2.838(ee)-.1 G -.25(ff)-2.838 G
.338(ect until the ne).25 F .338(xt line of input is read.)-.15 F .337
(The commands follo)5.337 F .337
(wing the alias de\214nition on that line are)-.25 F .551(not af)108
-355.2 R .551(fected by the ne)-.25 F 3.051(wa)-.25 G 3.051(lias. This)
+566.4 R .551(fected by the ne)-.25 F 3.051(wa)-.25 G 3.051(lias. This)
-3.051 F(beha)3.051 E .551(vior is also an issue when functions are e)
-.2 F -.15(xe)-.15 G 3.051(cuted. Aliases).15 F .552(are e)3.052 F(x-)
-.15 E .426(panded when a function de\214nition is read, not when the f\
-unction is e)108 367.2 R -.15(xe)-.15 G .425
+unction is e)108 578.4 R -.15(xe)-.15 G .425
(cuted, because a function de\214nition).15 F .403(is itself a command.)
-108 379.2 R .403
+108 590.4 R .403
(As a consequence, aliases de\214ned in a function are not a)5.403 F
-.25(va)-.2 G .404(ilable until after that func-).25 F .862(tion is e)
-108 391.2 R -.15(xe)-.15 G 3.362(cuted. T).15 F 3.362(ob)-.8 G 3.362(es)
+108 602.4 R -.15(xe)-.15 G 3.362(cuted. T).15 F 3.362(ob)-.8 G 3.362(es)
-3.362 G .862(afe, al)-3.362 F -.1(wa)-.1 G .862
-(ys put alias de\214nitions on a separate line, and do not use).1 F F3
-(alias)3.362 E F0 .862(in com-)3.362 F(pound commands.)108 403.2 Q -.15
-(Fo)108 420 S 2.5(ra).15 G(lmost e)-2.5 E -.15(ve)-.25 G
-(ry purpose, aliases are superseded by shell functions.).15 E F1
-(FUNCTIONS)72 436.8 Q F0 3.467(As)108 448.8 S .967
+(ys put alias de\214nitions on a separate line, and do not use).1 F F1
+(alias)3.362 E F0 .862(in com-)3.362 F(pound commands.)108 614.4 Q -.15
+(Fo)108 631.2 S 2.5(ra).15 G(lmost e)-2.5 E -.15(ve)-.25 G
+(ry purpose, aliases are superseded by shell functions.).15 E F3
+(FUNCTIONS)72 648 Q F0 3.467(As)108 660 S .967
(hell function, de\214ned as described abo)-3.467 F 1.267 -.15(ve u)-.15
H(nder).15 E F4 .967(SHELL GRAMMAR)3.467 F/F5 9/Times-Roman@0 SF(,)A F0
-.968(stores a series of commands for)3.217 F 1.002(later e)108 460.8 R
+.968(stores a series of commands for)3.217 F 1.002(later e)108 672 R
-.15(xe)-.15 G 3.502(cution. When).15 F 1.002(the name of a shell funct\
ion is used as a simple command name, the list of com-)3.502 F .315
-(mands associated with that function name is e)108 472.8 R -.15(xe)-.15
-G 2.816(cuted. Functions).15 F .316(are e)2.816 F -.15(xe)-.15 G .316
+(mands associated with that function name is e)108 684 R -.15(xe)-.15 G
+2.816(cuted. Functions).15 F .316(are e)2.816 F -.15(xe)-.15 G .316
(cuted in the conte).15 F .316(xt of the current)-.15 F .036
-(shell; no ne)108 484.8 R 2.536(wp)-.25 G .036
+(shell; no ne)108 696 R 2.536(wp)-.25 G .036
(rocess is created to interpret them \(contrast this with the e)-2.536 F
-.15(xe)-.15 G .036(cution of a shell script\).).15 F .035(When a)5.035
-F .639(function is e)108 496.8 R -.15(xe)-.15 G .639(cuted, the ar).15 F
+F .639(function is e)108 708 R -.15(xe)-.15 G .639(cuted, the ar).15 F
.639
(guments to the function become the positional parameters during its e)
--.18 F -.15(xe)-.15 G(cution.).15 E .533(The special parameter)108 508.8
-R F3(#)3.033 E F0 .532(is updated to re\215ect the change.)3.033 F .532
-(Special parameter)5.532 F F3(0)3.032 E F0 .532(is unchanged.)3.032 F
-.532(The \214rst ele-)5.532 F(ment of the)108 520.8 Q F4(FUNCN)2.5 E
-(AME)-.18 E F0 -.25(va)2.25 G
+-.18 F -.15(xe)-.15 G(cution.).15 E 1.659(The special parameter)108 720
+R F1(#)4.159 E F0 1.659(is updated to re\215ect the change.)4.159 F
+1.659(Special parameter)6.659 F F1(0)4.159 E F0 1.658(is unchanged.)
+4.158 F 1.658(The \214rst)6.658 F(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(32)185.115 E 0 Cg EP
+%%Page: 33 33
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(element of the)108
+84 Q/F1 9/Times-Bold@0 SF(FUNCN)2.5 E(AME)-.18 E F0 -.25(va)2.25 G
(riable is set to the name of the function while the function is e).25 E
-.15(xe)-.15 G(cuting.).15 E 1.25(All other aspects of the shell e)108
-537.6 R -.15(xe)-.15 G 1.25(cution en).15 F 1.25
+100.8 R -.15(xe)-.15 G 1.25(cution en).15 F 1.25
(vironment are identical between a function and its caller with)-.4 F
-1.215(these e)108 549.6 R 1.215(xceptions: the)-.15 F F4(DEB)3.715 E(UG)
--.09 E F0(and)3.465 E F3(RETURN)3.715 E F0 1.215
-(traps \(see the description of the)3.715 F F3(trap)3.714 E F0 -.2(bu)
-3.714 G 1.214(iltin under).2 F F4(SHELL)3.714 E -.09(BU)108 561.6 S(IL)
+1.215(these e)108 112.8 R 1.215(xceptions: the)-.15 F F1(DEB)3.715 E(UG)
+-.09 E F0(and)3.465 E/F2 10/Times-Bold@0 SF(RETURN)3.715 E F0 1.215
+(traps \(see the description of the)3.715 F F2(trap)3.714 E F0 -.2(bu)
+3.714 G 1.214(iltin under).2 F F1(SHELL)3.714 E -.09(BU)108 124.8 S(IL)
.09 E .478(TIN COMMANDS)-.828 F F0(belo)2.728 E .479
(w\) are not inherited unless the function has been gi)-.25 F -.15(ve)
--.25 G 2.979(nt).15 G(he)-2.979 E F3(trace)2.979 E F0(attrib)2.979 E
-.479(ute \(see)-.2 F .421(the description of the)108 573.6 R F4(declar)
+-.25 G 2.979(nt).15 G(he)-2.979 E F2(trace)2.979 E F0(attrib)2.979 E
+.479(ute \(see)-.2 F .421(the description of the)108 136.8 R F1(declar)
2.92 E(e)-.162 E F0 -.2(bu)2.67 G .42(iltin belo).2 F .42(w\) or the)
--.25 F F3 .42(\255o functrace)2.92 F F0 .42
-(shell option has been enabled with the)2.92 F F3(set)2.92 E F0 -.2(bu)
-108 585.6 S .071(iltin \(in which case all functions inherit the).2 F F3
-(DEB)2.572 E(UG)-.1 E F0(and)2.572 E F3(RETURN)2.572 E F0 .072
-(traps\), and the)2.572 F F4(ERR)2.572 E F0 .072(trap is not inher)2.322
-F(-)-.2 E(ited unless the)108 597.6 Q F3(\255o errtrace)2.5 E F0
-(shell option has been enabled.)2.5 E -1.11(Va)108 614.4 S .656
-(riables local to the function may be declared with the)1.11 F F3(local)
-3.155 E F0 -.2(bu)3.155 G .655(iltin command.).2 F(Ordinarily)5.655 E
-3.155(,v)-.65 G .655(ariables and)-3.405 F .05(their v)108 626.4 R .05
-(alues are shared between the function and its caller)-.25 F 5.051(.I)
--.55 G 2.551(fav)-5.051 G .051(ariable is declared)-2.801 F F3(local)
-2.551 E F0 2.551(,t)C .051(he v)-2.551 F(ariable')-.25 E 2.551(sv)-.55 G
-(isi-)-2.551 E 1.186(ble scope is restricted to that function and its c\
-hildren \(including the functions it calls\).)108 638.4 R 1.185(Local v)
-6.185 F(ariables)-.25 E("shado)108 650.4 Q .154(w" v)-.25 F .154
-(ariables with the same name declared at pre)-.25 F .155(vious scopes.)
--.25 F -.15(Fo)5.155 G 2.655(ri).15 G .155(nstance, a local v)-2.655 F
-.155(ariable declared)-.25 F .67(in a function hides a global v)108
-662.4 R .669(ariable of the same name: references and assignments refer\
- to the local v)-.25 F(ari-)-.25 E .688(able, lea)108 674.4 R .688
-(ving the global v)-.2 F .688(ariable unmodi\214ed.)-.25 F .688
-(When the function returns, the global v)5.688 F .688
-(ariable is once ag)-.25 F(ain)-.05 E(visible.)108 686.4 Q .727
-(The shell uses)108 703.2 R F2 .727(dynamic scoping)3.227 F F0 .726
-(to control a v)3.227 F(ariable')-.25 E 3.226(sv)-.55 G .726
-(isibility within functions.)-3.226 F -.4(Wi)5.726 G .726
-(th dynamic scoping,).4 F .007(visible v)108 715.2 R .007
-(ariables and their v)-.25 F .007
+-.25 F F2 .42(\255o functrace)2.92 F F0 .42
+(shell option has been enabled with the)2.92 F F2(set)2.92 E F0 -.2(bu)
+108 148.8 S .071(iltin \(in which case all functions inherit the).2 F F2
+(DEB)2.572 E(UG)-.1 E F0(and)2.572 E F2(RETURN)2.572 E F0 .072
+(traps\), and the)2.572 F F1(ERR)2.572 E F0 .072(trap is not inher)2.322
+F(-)-.2 E(ited unless the)108 160.8 Q F2(\255o errtrace)2.5 E F0
+(shell option has been enabled.)2.5 E -1.11(Va)108 177.6 S .368
+(riables local to the function may be declared with the)1.11 F F2(local)
+2.868 E F0 -.2(bu)2.868 G .368(iltin command \().2 F/F3 10
+/Times-Italic@0 SF .368(local variables)B F0 2.868(\). Ordinar)B(-)-.2 E
+(ily)108 189.6 Q 2.88(,v)-.65 G .38(ariables and their v)-3.13 F .38
+(alues are shared between the function and its caller)-.25 F 5.38(.I)
+-.55 G 2.88(fav)-5.38 G .38(ariable is declared)-3.13 F F2(local)2.88 E
+F0(,)A(the v)108 201.6 Q(ariable')-.25 E 2.5(sv)-.55 G(isible scope is \
+restricted to that function and its children \(including the functions \
+it calls\).)-2.5 E .727(In the follo)108 218.4 R .727
+(wing description, the)-.25 F F3(curr)3.227 E .727(ent scope)-.37 F F0
+.726(is a currently- e)3.226 F -.15(xe)-.15 G .726(cuting function.).15
+F(Pre)5.726 E .726(vious scopes consist)-.25 F 1.003(of that function')
+108 230.4 R 3.503(sc)-.55 G 1.004
+(aller and so on, back to the "global" scope, where the shell is not e)
+-3.503 F -.15(xe)-.15 G 1.004(cuting an).15 F 3.504(ys)-.15 G(hell)
+-3.504 E 3.41(function. Consequently)108 242.4 R 3.41(,al)-.65 G .91
+(ocal v)-3.41 F .909(ariable at the current scope is a v)-.25 F .909
+(ariable declared using the)-.25 F F2(local)3.409 E F0(or)3.409 E F2
+(de-)3.409 E(clar)108 254.4 Q(e)-.18 E F0 -.2(bu)2.5 G
+(iltins in the function that is currently e).2 E -.15(xe)-.15 G(cuting.)
+.15 E .635(Local v)108 271.2 R .635(ariables "shado)-.25 F .635(w" v)
+-.25 F .635(ariables with the same name declared at pre)-.25 F .636
+(vious scopes.)-.25 F -.15(Fo)5.636 G 3.136(ri).15 G .636
+(nstance, a local)-3.136 F -.25(va)108 283.2 S .581
+(riable declared in a function hides a global v).25 F .58
+(ariable of the same name: references and assignments refer)-.25 F .182
+(to the local v)108 295.2 R .182(ariable, lea)-.25 F .183
+(ving the global v)-.2 F .183(ariable unmodi\214ed.)-.25 F .183
+(When the function returns, the global v)5.183 F(ariable)-.25 E
+(is once ag)108 307.2 Q(ain visible.)-.05 E .727(The shell uses)108 324
+R F3 .727(dynamic scoping)3.227 F F0 .726(to control a v)3.227 F
+(ariable')-.25 E 3.226(sv)-.55 G .726(isibility within functions.)-3.226
+F -.4(Wi)5.726 G .726(th dynamic scoping,).4 F .007(visible v)108 336 R
+.007(ariables and their v)-.25 F .007
(alues are a result of the sequence of function calls that caused e)-.25
F -.15(xe)-.15 G .008(cution to reach).15 F .814(the current function.)
-108 727.2 R .813(The v)5.814 F .813(alue of a v)-.25 F .813
+108 348 R .813(The v)5.814 F .813(alue of a v)-.25 F .813
(ariable that a function sees depends on its v)-.25 F .813
-(alue within its caller)-.25 F 3.313(,i)-.4 G(f)-3.313 E(GNU Bash 5.1)72
-768 Q(2020 October 29)141.235 E(31)190.395 E 0 Cg EP
-%%Page: 32 32
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(an)108 84 Q 2.116
--.65(y, w)-.15 H .816
+(alue within its caller)-.25 F 3.313(,i)-.4 G(f)-3.313 E(an)108 360 Q
+2.116 -.65(y, w)-.15 H .816
(hether that caller is the "global" scope or another shell function.).65
F .817(This is also the v)5.816 F .817(alue that a local)-.25 F -.25(va)
-108 96 S(riable declaration "shado).25 E(ws", and the v)-.25 E
+108 372 S(riable declaration "shado).25 E(ws", and the v)-.25 E
(alue that is restored when the function returns.)-.25 E -.15(Fo)108
-112.8 S 2.724(re).15 G .224(xample, if a v)-2.874 F(ariable)-.25 E/F1 10
-/Times-Italic@0 SF(var)2.724 E F0 .223(is declared as local in function)
-2.724 F F1(func1)2.723 E F0 2.723(,a)C(nd)-2.723 E F1(func1)2.723 E F0
-.223(calls another function)2.723 F F1(func2)2.723 E F0(,)A .463
-(references to)108 124.8 R F1(var)2.963 E F0 .463(made from within)2.963
-F F1(func2)2.963 E F0 .463(will resolv)2.963 F 2.964(et)-.15 G 2.964(ot)
--2.964 G .464(he local v)-2.964 F(ariable)-.25 E F1(var)2.964 E F0(from)
-2.964 E F1(func1)2.964 E F0 2.964(,s)C(hado)-2.964 E .464(wing an)-.25 F
-(y)-.15 E(global v)108 136.8 Q(ariable named)-.25 E F1(var)2.5 E F0(.)A
-(The)108 153.6 Q/F2 10/Times-Bold@0 SF(unset)2.983 E F0 -.2(bu)2.983 G
-.483(iltin also acts using the same dynamic scope: if a v).2 F .482
+388.8 S 2.724(re).15 G .224(xample, if a v)-2.874 F(ariable)-.25 E F3
+(var)2.724 E F0 .223(is declared as local in function)2.724 F F3(func1)
+2.723 E F0 2.723(,a)C(nd)-2.723 E F3(func1)2.723 E F0 .223
+(calls another function)2.723 F F3(func2)2.723 E F0(,)A .463
+(references to)108 400.8 R F3(var)2.963 E F0 .463(made from within)2.963
+F F3(func2)2.963 E F0 .463(will resolv)2.963 F 2.964(et)-.15 G 2.964(ot)
+-2.964 G .464(he local v)-2.964 F(ariable)-.25 E F3(var)2.964 E F0(from)
+2.964 E F3(func1)2.964 E F0 2.964(,s)C(hado)-2.964 E .464(wing an)-.25 F
+(y)-.15 E(global v)108 412.8 Q(ariable named)-.25 E F3(var)2.5 E F0(.)A
+(The)108 429.6 Q F2(unset)2.983 E F0 -.2(bu)2.983 G .483
+(iltin also acts using the same dynamic scope: if a v).2 F .482
(ariable is local to the current scope,)-.25 F F2(unset)2.982 E F0 .19
-(will unset it; otherwise the unset will refer to the v)108 165.6 R .19
+(will unset it; otherwise the unset will refer to the v)108 441.6 R .19
(ariable found in an)-.25 F 2.69(yc)-.15 G .19
(alling scope as described abo)-2.69 F -.15(ve)-.15 G 5.19(.I).15 G(f)
--5.19 E 2.721(av)108 177.6 S .221(ariable at the current local scope is\
- unset, it will remain so until it is reset in that scope or until the \
-func-)-2.971 F .013(tion returns.)108 189.6 R .013
-(Once the function returns, an)5.013 F 2.513(yi)-.15 G .014
-(nstance of the v)-2.513 F .014(ariable at a pre)-.25 F .014
-(vious scope will become visible.)-.25 F .567(If the unset acts on a v)
-108 201.6 R .566(ariable at a pre)-.25 F .566(vious scope, an)-.25 F
-3.066(yi)-.15 G .566(nstance of a v)-3.066 F .566
-(ariable with that name that had been)-.25 F(shado)108 213.6 Q
-(wed will become visible.)-.25 E(The)108 230.4 Q F2(FUNCNEST)3.528 E F0
--.25(va)3.528 G 1.028(riable, if set to a numeric v).25 F 1.028
+-5.19 E 3.325(av)108 453.6 S .824(ariable at the current local scope is\
+ unset, it will remain so \(appearing as unset\) until it is reset in t\
+hat)-3.575 F 1.141(scope or until the function returns.)108 465.6 R
+1.141(Once the function returns, an)6.141 F 3.641(yi)-.15 G 1.141
+(nstance of the v)-3.641 F 1.142(ariable at a pre)-.25 F(vious)-.25 E
+.977(scope will become visible.)108 477.6 R .976
+(If the unset acts on a v)5.977 F .976(ariable at a pre)-.25 F .976
+(vious scope, an)-.25 F 3.476(yi)-.15 G .976(nstance of a v)-3.476 F
+(ariable)-.25 E .007(with that name that had been shado)108 489.6 R .008
+(wed will become visible \(see belo)-.25 F 2.508(wh)-.25 G .508 -.25
+(ow t)-2.508 H(he).25 E F2(localv)2.508 E(ar_unset)-.1 E F0 .008
+(shell option)2.508 F(changes this beha)108 501.6 Q(vior\).)-.2 E(The)
+108 518.4 Q F2(FUNCNEST)3.529 E F0 -.25(va)3.529 G 1.028
+(riable, if set to a numeric v).25 F 1.028
(alue greater than 0, de\214nes a maximum function nesting)-.25 F(le)108
-242.4 Q -.15(ve)-.25 G 2.5(l. Function).15 F(in)2.5 E -.2(vo)-.4 G
+530.4 Q -.15(ve)-.25 G 2.5(l. Function).15 F(in)2.5 E -.2(vo)-.4 G
(cations that e).2 E(xceed the limit cause the entire command to abort.)
--.15 E .044(If the b)108 259.2 R .043(uiltin command)-.2 F F2 -.18(re)
+-.15 E .043(If the b)108 547.2 R .043(uiltin command)-.2 F F2 -.18(re)
2.543 G(tur).18 E(n)-.15 E F0 .043(is e)2.543 F -.15(xe)-.15 G .043
(cuted in a function, the function completes and e).15 F -.15(xe)-.15 G
-.043(cution resumes with).15 F 1.011(the ne)108 271.2 R 1.011
+.044(cution resumes with).15 F 1.012(the ne)108 559.2 R 1.012
(xt command after the function call.)-.15 F(An)6.011 E 3.511(yc)-.15 G
-1.011(ommand associated with the)-3.511 F F2(RETURN)3.512 E F0 1.012
-(trap is e)3.512 F -.15(xe)-.15 G(cuted).15 E .214(before e)108 283.2 R
--.15(xe)-.15 G .214(cution resumes.).15 F .213
-(When a function completes, the v)5.214 F .213
+1.011(ommand associated with the)-3.511 F F2(RETURN)3.511 E F0 1.011
+(trap is e)3.511 F -.15(xe)-.15 G(cuted).15 E .213(before e)108 571.2 R
+-.15(xe)-.15 G .213(cution resumes.).15 F .213
+(When a function completes, the v)5.213 F .214
(alues of the positional parameters and the spe-)-.25 F(cial parameter)
-108 295.2 Q F2(#)2.5 E F0(are restored to the v)2.5 E(alues the)-.25 E
+108 583.2 Q F2(#)2.5 E F0(are restored to the v)2.5 E(alues the)-.25 E
2.5(yh)-.15 G(ad prior to the function')-2.5 E 2.5(se)-.55 G -.15(xe)
--2.65 G(cution.).15 E 1.358
-(Function names and de\214nitions may be listed with the)108 312 R F2
+-2.65 G(cution.).15 E 1.359
+(Function names and de\214nitions may be listed with the)108 600 R F2
<ad66>3.858 E F0 1.358(option to the)3.858 F F2(declar)3.858 E(e)-.18 E
-F0(or)3.859 E F2(typeset)3.859 E F0 -.2(bu)3.859 G 1.359(iltin com-).2 F
-3.39(mands. The)108 324 R F2<ad46>3.39 E F0 .89(option to)3.39 F F2
+F0(or)3.858 E F2(typeset)3.858 E F0 -.2(bu)3.858 G 1.358(iltin com-).2 F
+3.39(mands. The)108 612 R F2<ad46>3.39 E F0 .89(option to)3.39 F F2
(declar)3.39 E(e)-.18 E F0(or)3.39 E F2(typeset)3.39 E F0 .89
(will list the function names only \(and optionally the source)3.39 F
-.326(\214le and line number)108 336 R 2.826(,i)-.4 G 2.826(ft)-2.826 G
-(he)-2.826 E F2(extdeb)2.826 E(ug)-.2 E F0 .326
-(shell option is enabled\).)2.826 F .327(Functions may be e)5.327 F .327
-(xported so that subshells)-.15 F 1.298(automatically ha)108 348 R 1.598
--.15(ve t)-.2 H 1.298(hem de\214ned with the).15 F F2<ad66>3.798 E F0
-1.298(option to the)3.798 F F2(export)3.797 E F0 -.2(bu)3.797 G 3.797
-(iltin. A).2 F 1.297(function de\214nition may be)3.797 F
-(deleted using the)108 360 Q F2<ad66>2.5 E F0(option to the)2.5 E F2
-(unset)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .371(Functions may be recursi)
-108 376.8 R -.15(ve)-.25 G 5.371(.T).15 G(he)-5.371 E F2(FUNCNEST)2.871
-E F0 -.25(va)2.871 G .371
+.047(\214le and line number)108 624 R 2.546(,i)-.4 G 2.546(ft)-2.546 G
+(he)-2.546 E F2(extdeb)2.546 E(ug)-.2 E F0 .046
+(shell option is enabled\).)2.546 F .046(Functions may be e)5.046 F .046
+(xported so that child shell)-.15 F .492
+(processes \(those created when e)108 636 R -.15(xe)-.15 G .492
+(cuting a separate shell in).15 F -.2(vo)-.4 G .492
+(cation\) automatically ha).2 F .793 -.15(ve t)-.2 H .493
+(hem de\214ned with).15 F(the)108 648 Q F2<ad66>3.201 E F0 .701
+(option to the)3.201 F F2(export)3.201 E F0 -.2(bu)3.201 G 3.201
+(iltin. A).2 F .7(function de\214nition may be deleted using the)3.201 F
+F2<ad66>3.2 E F0 .7(option to the)3.2 F F2(unset)3.2 E F0 -.2(bu)108 660
+S(iltin.).2 E .371(Functions may be recursi)108 676.8 R -.15(ve)-.25 G
+5.371(.T).15 G(he)-5.371 E F2(FUNCNEST)2.871 E F0 -.25(va)2.871 G .371
(riable may be used to limit the depth of the function call).25 F .323
-(stack and restrict the number of function in)108 388.8 R -.2(vo)-.4 G
+(stack and restrict the number of function in)108 688.8 R -.2(vo)-.4 G
2.822(cations. By).2 F(def)2.822 E .322
-(ault, no limit is imposed on the number of re-)-.1 F(cursi)108 400.8 Q
-.3 -.15(ve c)-.25 H(alls.).15 E/F3 10.95/Times-Bold@0 SF(ARITHMETIC EV)
-72 417.6 Q(ALU)-1.478 E -1.04(AT)-.657 G(ION)1.04 E F0 1.088
-(The shell allo)108 429.6 R 1.088(ws arithmetic e)-.25 F 1.089
-(xpressions to be e)-.15 F -.25(va)-.25 G 1.089
-(luated, under certain circumstances \(see the).25 F F2(let)3.589 E F0
-(and)3.589 E F2(de-)3.589 E(clar)108 441.6 Q(e)-.18 E F0 -.2(bu)3.453 G
-.953(iltin commands, the).2 F F2(\(\()3.453 E F0 .952
+(ault, no limit is imposed on the number of re-)-.1 F(cursi)108 700.8 Q
+.3 -.15(ve c)-.25 H(alls.).15 E(GNU Bash 5.2)72 768 Q(2022 September 19)
+135.955 E(33)185.115 E 0 Cg EP
+%%Page: 34 34
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10.95
+/Times-Bold@0 SF(ARITHMETIC EV)72 84 Q(ALU)-1.478 E -1.04(AT)-.657 G
+(ION)1.04 E F0 1.088(The shell allo)108 96 R 1.088(ws arithmetic e)-.25
+F 1.089(xpressions to be e)-.15 F -.25(va)-.25 G 1.089
+(luated, under certain circumstances \(see the).25 F/F2 10/Times-Bold@0
+SF(let)3.589 E F0(and)3.589 E F2(de-)3.589 E(clar)108 108 Q(e)-.18 E F0
+-.2(bu)3.453 G .953(iltin commands, the).2 F F2(\(\()3.453 E F0 .952
(compound command, and)3.452 F F2 .952(Arithmetic Expansion)3.452 F F0
-3.452(\). Ev)B .952(aluation is done in)-.25 F<8c78>108 453.6 Q 1.057
+3.452(\). Ev)B .952(aluation is done in)-.25 F<8c78>108 120 Q 1.057
(ed-width inte)-.15 F 1.057(gers with no check for o)-.15 F -.15(ve)-.15
G(r\215o).15 E 2.357 -.65(w, t)-.25 H 1.057(hough di).65 F 1.057
(vision by 0 is trapped and \215agged as an error)-.25 F(.)-.55 E .829
-(The operators and their precedence, associati)108 465.6 R(vity)-.25 E
+(The operators and their precedence, associati)108 132 R(vity)-.25 E
3.329(,a)-.65 G .829(nd v)-3.329 F .829
(alues are the same as in the C language.)-.25 F .828(The fol-)5.828 F
-(lo)108 477.6 Q .439(wing list of operators is grouped into le)-.25 F
--.15(ve)-.25 G .439(ls of equal-precedence operators.).15 F .44(The le)
-5.44 F -.15(ve)-.25 G .44(ls are listed in order).15 F
-(of decreasing precedence.)108 489.6 Q F1(id)108 506.4 Q F2(++)A F1(id)
-2.5 E F2<adad>A F0 -.25(va)144 518.4 S
-(riable post-increment and post-decrement).25 E F2 2.5<ad2b>108 530.4 S
-F0(unary minus and plus)144 530.4 Q F2(++)108 542.4 Q F1(id)A F2<adad>
-2.5 E F1(id)A F0 -.25(va)144 554.4 S
-(riable pre-increment and pre-decrement).25 E F2 2.5(!~)108 566.4 S F0
-(logical and bitwise ne)144 566.4 Q -.05(ga)-.15 G(tion).05 E F2(**)108
-578.4 Q F0 -.15(ex)144 578.4 S(ponentiation).15 E F2 2.5(*/%)108 590.4 S
-F0(multiplication, di)144 590.4 Q(vision, remainder)-.25 E F2 2.5<2bad>
-108 602.4 S F0(addition, subtraction)144 602.4 Q F2(<< >>)108 614.4 Q F0
-(left and right bitwise shifts)144 614.4 Q F2(<= >= < >)108 626.4 Q F0
-(comparison)144 638.4 Q F2(== !=)108 650.4 Q F0(equality and inequality)
-144 650.4 Q F2(&)108 662.4 Q F0(bitwise AND)144 662.4 Q F2(^)108 674.4 Q
-F0(bitwise e)144 674.4 Q(xclusi)-.15 E .3 -.15(ve O)-.25 H(R).15 E F2(|)
-108 686.4 Q F0(bitwise OR)144 686.4 Q F2(&&)108 698.4 Q F0(logical AND)
-144 698.4 Q F2(||)108 710.4 Q F0(logical OR)144 710.4 Q(GNU Bash 5.1)72
-768 Q(2020 October 29)141.235 E(32)190.395 E 0 Cg EP
-%%Page: 33 33
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10
-/Times-Italic@0 SF -.2(ex)108 84 S(pr).2 E/F2 10/Times-Bold@0 SF(?)A F1
--.2(ex)C(pr).2 E F2(:)A F1 -.2(ex)C(pr).2 E F0(conditional operator)144
-96 Q F2 2.5(=*)108 108 S 2.5(=/)-2.5 G 2.5(=%)-2.5 G 2.5(=+)-2.5 G 2.5
-<3dad>-2.5 G 2.5(=<)-2.5 G(<= >>= &= ^= |=)-2.5 E F0(assignment)144 120
-Q F1 -.2(ex)108 132 S(pr1).2 E F2(,)2.5 E F1 -.2(ex)2.5 G(pr2).2 E F0
-(comma)144 144 Q .68(Shell v)108 160.8 R .68(ariables are allo)-.25 F
-.68(wed as operands; parameter e)-.25 F .68
+(lo)108 144 Q .439(wing list of operators is grouped into le)-.25 F -.15
+(ve)-.25 G .439(ls of equal-precedence operators.).15 F .44(The le)5.44
+F -.15(ve)-.25 G .44(ls are listed in order).15 F
+(of decreasing precedence.)108 156 Q/F3 10/Times-Italic@0 SF(id)108
+172.8 Q F2(++)A F3(id)2.5 E F2<adad>A F0 -.25(va)144 184.8 S
+(riable post-increment and post-decrement).25 E F2 2.5<ad2b>108 196.8 S
+F0(unary minus and plus)144 196.8 Q F2(++)108 208.8 Q F3(id)A F2<adad>
+2.5 E F3(id)A F0 -.25(va)144 220.8 S
+(riable pre-increment and pre-decrement).25 E F2 2.5(!~)108 232.8 S F0
+(logical and bitwise ne)144 232.8 Q -.05(ga)-.15 G(tion).05 E F2(**)108
+244.8 Q F0 -.15(ex)144 244.8 S(ponentiation).15 E F2 2.5(*/%)108 256.8 S
+F0(multiplication, di)144 256.8 Q(vision, remainder)-.25 E F2 2.5<2bad>
+108 268.8 S F0(addition, subtraction)144 268.8 Q F2(<< >>)108 280.8 Q F0
+(left and right bitwise shifts)144 280.8 Q F2(<= >= < >)108 292.8 Q F0
+(comparison)144 304.8 Q F2(== !=)108 316.8 Q F0(equality and inequality)
+144 316.8 Q F2(&)108 328.8 Q F0(bitwise AND)144 328.8 Q F2(^)108 340.8 Q
+F0(bitwise e)144 340.8 Q(xclusi)-.15 E .3 -.15(ve O)-.25 H(R).15 E F2(|)
+108 352.8 Q F0(bitwise OR)144 352.8 Q F2(&&)108 364.8 Q F0(logical AND)
+144 364.8 Q F2(||)108 376.8 Q F0(logical OR)144 376.8 Q F3 -.2(ex)108
+388.8 S(pr).2 E F2(?)A F3 -.2(ex)C(pr).2 E F2(:)A F3 -.2(ex)C(pr).2 E F0
+(conditional operator)144 400.8 Q F2 2.5(=*)108 412.8 S 2.5(=/)-2.5 G
+2.5(=%)-2.5 G 2.5(=+)-2.5 G 2.5<3dad>-2.5 G 2.5(=<)-2.5 G
+(<= >>= &= ^= |=)-2.5 E F0(assignment)144 424.8 Q F3 -.2(ex)108 436.8 S
+(pr1).2 E F2(,)2.5 E F3 -.2(ex)2.5 G(pr2).2 E F0(comma)144 448.8 Q .68
+(Shell v)108 465.6 R .68(ariables are allo)-.25 F .68
+(wed as operands; parameter e)-.25 F .68
(xpansion is performed before the e)-.15 F .68(xpression is e)-.15 F
--.25(va)-.25 G(lu-).25 E 3.507(ated. W)108 172.8 R 1.007(ithin an e)-.4
+-.25(va)-.25 G(lu-).25 E 3.507(ated. W)108 477.6 R 1.007(ithin an e)-.4
F 1.007(xpression, shell v)-.15 F 1.007
(ariables may also be referenced by name without using the parameter)
--.25 F -.15(ex)108 184.8 S .165(pansion syntax.).15 F 2.665(As)5.165 G
+-.25 F -.15(ex)108 489.6 S .165(pansion syntax.).15 F 2.665(As)5.165 G
.165(hell v)-2.665 F .165(ariable that is null or unset e)-.25 F -.25
(va)-.25 G .165(luates to 0 when referenced by name without us-).25 F
-.42(ing the parameter e)108 196.8 R .42(xpansion syntax.)-.15 F .42
+.42(ing the parameter e)108 501.6 R .42(xpansion syntax.)-.15 F .42
(The v)5.42 F .421(alue of a v)-.25 F .421(ariable is e)-.25 F -.25(va)
-.25 G .421(luated as an arithmetic e).25 F .421(xpression when)-.15 F
-.154(it is referenced, or when a v)108 208.8 R .154
+.154(it is referenced, or when a v)108 513.6 R .154
(ariable which has been gi)-.25 F -.15(ve)-.25 G 2.654(nt).15 G(he)
--2.654 E F1(inte)2.654 E -.1(ge)-.4 G(r).1 E F0(attrib)2.654 E .153
+-2.654 E F3(inte)2.654 E -.1(ge)-.4 G(r).1 E F0(attrib)2.654 E .153
(ute using)-.2 F F2(declar)2.653 E 2.653<65ad>-.18 G(i)-2.653 E F0 .153
-(is assigned a)2.653 F -.25(va)108 220.8 S 2.857(lue. A).25 F .357
+(is assigned a)2.653 F -.25(va)108 525.6 S 2.857(lue. A).25 F .357
(null v)2.857 F .357(alue e)-.25 F -.25(va)-.25 G .357(luates to 0.).25
F 2.857(As)5.357 G .357(hell v)-2.857 F .357(ariable need not ha)-.25 F
-.657 -.15(ve i)-.2 H(ts).15 E F1(inte)2.857 E -.1(ge)-.4 G(r).1 E F0
-(attrib)2.857 E .357(ute turned on to be used)-.2 F(in an e)108 232.8 Q
-(xpression.)-.15 E(Inte)108 249.6 Q .518(ger constants follo)-.15 F
+.657 -.15(ve i)-.2 H(ts).15 E F3(inte)2.857 E -.1(ge)-.4 G(r).1 E F0
+(attrib)2.857 E .357(ute turned on to be used)-.2 F(in an e)108 537.6 Q
+(xpression.)-.15 E(Inte)108 554.4 Q .518(ger constants follo)-.15 F
3.018(wt)-.25 G .518(he C language de\214nition, without suf)-3.018 F
<8c78>-.25 E .517(es or character constants.)-.15 F .517(Constants with)
-5.517 F 3.282(al)108 261.6 S .782
+5.517 F 3.282(al)108 566.4 S .782
(eading 0 are interpreted as octal numbers.)-3.282 F 3.283(Al)5.782 G
.783(eading 0x or 0X denotes he)-3.283 F 3.283(xadecimal. Otherwise,)
--.15 F(num-)3.283 E .816(bers tak)108 273.6 R 3.316(et)-.1 G .816
-(he form [)-3.316 F F1(base#)A F0 .815(]n, where the optional)B F1(base)
+-.15 F(num-)3.283 E .816(bers tak)108 578.4 R 3.316(et)-.1 G .816
+(he form [)-3.316 F F3(base#)A F0 .815(]n, where the optional)B F3(base)
3.315 E F0 .815(is a decimal number between 2 and 64 representing)3.315
-F .349(the arithmetic base, and)108 285.6 R F1(n)2.849 E F0 .349
-(is a number in that base.)2.849 F(If)5.35 E F1(base#)2.85 E F0 .35
+F .349(the arithmetic base, and)108 590.4 R F3(n)2.849 E F0 .349
+(is a number in that base.)2.849 F(If)5.35 E F3(base#)2.85 E F0 .35
(is omitted, then base 10 is used.)2.85 F .35(When speci-)5.35 F(fying)
-108 297.6 Q F1(n)2.975 E F0 2.975(,i)C 2.975(fan)-2.975 G .474(on-digit\
+108 602.4 Q F3(n)2.975 E F0 2.975(,i)C 2.975(fan)-2.975 G .474(on-digit\
is required, the digits greater than 9 are represented by the lo)-2.975
F .474(wercase letters, the up-)-.25 F .518
-(percase letters, @, and _, in that order)108 309.6 R 5.518(.I)-.55 G(f)
--5.518 E F1(base)3.018 E F0 .518(is less than or equal to 36, lo)3.018 F
+(percase letters, @, and _, in that order)108 614.4 R 5.518(.I)-.55 G(f)
+-5.518 E F3(base)3.018 E F0 .518(is less than or equal to 36, lo)3.018 F
.518(wercase and uppercase letters)-.25 F
(may be used interchangeably to represent numbers between 10 and 35.)108
-321.6 Q .235(Operators are e)108 338.4 R -.25(va)-.25 G .235
+626.4 Q .235(Operators are e)108 643.2 R -.25(va)-.25 G .235
(luated in order of precedence.).25 F(Sub-e)5.234 E .234
(xpressions in parentheses are e)-.15 F -.25(va)-.25 G .234
-(luated \214rst and may).25 F -.15(ove)108 350.4 S
-(rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E/F3 10.95
-/Times-Bold@0 SF(CONDITION)72 367.2 Q(AL EXPRESSIONS)-.219 E F0 .255
-(Conditional e)108 379.2 R .255(xpressions are used by the)-.15 F F2([[)
-2.755 E F0 .255(compound command and the)2.755 F F2(test)2.755 E F0(and)
-2.755 E F2([)2.756 E F0 -.2(bu)2.756 G .256(iltin commands to test).2 F
-.134(\214le attrib)108 391.2 R .134
+(luated \214rst and may).25 F -.15(ove)108 655.2 S
+(rride the precedence rules abo).15 E -.15(ve)-.15 G(.).15 E F1
+(CONDITION)72 672 Q(AL EXPRESSIONS)-.219 E F0 .255(Conditional e)108 684
+R .255(xpressions are used by the)-.15 F F2([[)2.755 E F0 .255
+(compound command and the)2.755 F F2(test)2.755 E F0(and)2.755 E F2([)
+2.756 E F0 -.2(bu)2.756 G .256(iltin commands to test).2 F .134
+(\214le attrib)108 696 R .134
(utes and perform string and arithmetic comparisons.)-.2 F(The)5.133 E
F2(test)2.633 E F0(and)2.633 E F2([)2.633 E F0 .133
-(commands determine their be-)2.633 F(ha)108 403.2 Q .197
+(commands determine their be-)2.633 F(ha)108 708 Q .197
(vior based on the number of ar)-.2 F .198
(guments; see the descriptions of those commands for an)-.18 F 2.698(yo)
--.15 G .198(ther command-)-2.698 F(speci\214c actions.)108 415.2 Q .235
-(Expressions are formed from the follo)108 432 R .234
-(wing unary or binary primaries.)-.25 F F2(Bash)5.234 E F0 .234
-(handles se)2.734 F -.15(ve)-.25 G .234(ral \214lenames spe-).15 F .424
-(cially when the)108 444 R 2.924(ya)-.15 G .424(re used in e)-2.924 F
-2.925(xpressions. If)-.15 F .425(the operating system on which)2.925 F
-F2(bash)2.925 E F0 .425(is running pro)2.925 F .425(vides these)-.15 F
-.345(special \214les, bash will use them; otherwise it will emulate the\
-m internally with this beha)108 456 R .344(vior: If an)-.2 F(y)-.15 E F1
-(\214le)2.844 E F0(ar)2.844 E(-)-.2 E .805
-(gument to one of the primaries is of the form)108 468 R F1(/de)3.305 E
-(v/fd/n)-.15 E F0 3.306(,t)C .806(hen \214le descriptor)-3.306 F F1(n)
-3.306 E F0 .806(is check)3.306 F 3.306(ed. If)-.1 F(the)3.306 E F1
+-.15 G .198(ther command-)-2.698 F(speci\214c actions.)108 720 Q
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(34)185.115 E 0 Cg EP
+%%Page: 35 35
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .235
+(Expressions are formed from the follo)108 84 R .234
+(wing unary or binary primaries.)-.25 F/F1 10/Times-Bold@0 SF(Bash)5.234
+E F0 .234(handles se)2.734 F -.15(ve)-.25 G .234(ral \214lenames spe-)
+.15 F .424(cially when the)108 96 R 2.924(ya)-.15 G .424(re used in e)
+-2.924 F 2.925(xpressions. If)-.15 F .425(the operating system on which)
+2.925 F F1(bash)2.925 E F0 .425(is running pro)2.925 F .425(vides these)
+-.15 F .345(special \214les, bash will use them; otherwise it will emul\
+ate them internally with this beha)108 108 R .344(vior: If an)-.2 F(y)
+-.15 E/F2 10/Times-Italic@0 SF(\214le)2.844 E F0(ar)2.844 E(-)-.2 E .805
+(gument to one of the primaries is of the form)108 120 R F2(/de)3.305 E
+(v/fd/n)-.15 E F0 3.306(,t)C .806(hen \214le descriptor)-3.306 F F2(n)
+3.306 E F0 .806(is check)3.306 F 3.306(ed. If)-.1 F(the)3.306 E F2
(\214le)3.306 E F0(ar)3.306 E(gu-)-.18 E .03
-(ment to one of the primaries is one of)108 480 R F1(/de)2.53 E(v/stdin)
--.15 E F0(,)A F1(/de)2.529 E(v/stdout)-.15 E F0 2.529(,o)C(r)-2.529 E F1
+(ment to one of the primaries is one of)108 132 R F2(/de)2.53 E(v/stdin)
+-.15 E F0(,)A F2(/de)2.529 E(v/stdout)-.15 E F0 2.529(,o)C(r)-2.529 E F2
(/de)2.529 E(v/stderr)-.15 E F0 2.529<2c8c>C .029
-(le descriptor 0, 1, or 2, respec-)-2.529 F(ti)108 492 Q -.15(ve)-.25 G
+(le descriptor 0, 1, or 2, respec-)-2.529 F(ti)108 144 Q -.15(ve)-.25 G
(ly).15 E 2.5(,i)-.65 G 2.5(sc)-2.5 G(heck)-2.5 E(ed.)-.1 E .721
(Unless otherwise speci\214ed, primaries that operate on \214les follo)
-108 508.8 R 3.221(ws)-.25 G .722(ymbolic links and operate on the tar)
--3.221 F(get)-.18 E(of the link, rather than the link itself.)108 520.8
-Q 1.096(When used with)108 538.8 R F2([[)3.596 E F0 3.596(,t)C(he)-3.596
-E F2(<)3.596 E F0(and)3.595 E F2(>)3.595 E F0 1.095(operators sort le)
+108 160.8 R 3.221(ws)-.25 G .722(ymbolic links and operate on the tar)
+-3.221 F(get)-.18 E(of the link, rather than the link itself.)108 172.8
+Q 1.096(When used with)108 190.8 R F1([[)3.596 E F0 3.596(,t)C(he)-3.596
+E F1(<)3.596 E F0(and)3.595 E F1(>)3.595 E F0 1.095(operators sort le)
3.595 F 1.095(xicographically using the current locale.)-.15 F(The)6.095
-E F2(test)3.595 E F0(com-)3.595 E(mand sorts using ASCII ordering.)108
-550.8 Q F2<ad61>108 574.8 Q F1(\214le)2.5 E F0 -.35(Tr)144 574.8 S
-(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G(ists.).15 E F2<ad62>108
-586.8 Q F1(\214le)2.5 E F0 -.35(Tr)144 586.8 S(ue if).35 E F1(\214le)2.5
-E F0 -.15(ex)2.5 G(ists and is a block special \214le.).15 E F2<ad63>108
-598.8 Q F1(\214le)2.5 E F0 -.35(Tr)144 598.8 S(ue if).35 E F1(\214le)2.5
-E F0 -.15(ex)2.5 G(ists and is a character special \214le.).15 E F2
-<ad64>108 610.8 Q F1(\214le)2.5 E F0 -.35(Tr)144 610.8 S(ue if).35 E F1
-(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a directory).15 E(.)-.65 E F2
-<ad65>108 622.8 Q F1(\214le)2.5 E F0 -.35(Tr)144 622.8 S(ue if).35 E F1
-(\214le)2.5 E F0 -.15(ex)2.5 G(ists.).15 E F2<ad66>108 634.8 Q F1
-(\214le)2.5 E F0 -.35(Tr)144 634.8 S(ue if).35 E F1(\214le)2.5 E F0 -.15
-(ex)2.5 G(ists and is a re).15 E(gular \214le.)-.15 E F2<ad67>108 646.8
-Q F1(\214le)2.5 E F0 -.35(Tr)144 646.8 S(ue if).35 E F1(\214le)2.5 E F0
--.15(ex)2.5 G(ists and is set-group-id.).15 E F2<ad68>108 658.8 Q F1
-(\214le)2.5 E F0 -.35(Tr)144 658.8 S(ue if).35 E F1(\214le)2.5 E F0 -.15
-(ex)2.5 G(ists and is a symbolic link.).15 E F2<ad6b>108 670.8 Q F1
-(\214le)2.5 E F0 -.35(Tr)144 670.8 S(ue if).35 E F1(\214le)2.5 E F0 -.15
+E F1(test)3.595 E F0(com-)3.595 E(mand sorts using ASCII ordering.)108
+202.8 Q F1<ad61>108 226.8 Q F2(\214le)2.5 E F0 -.35(Tr)144 226.8 S
+(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists.).15 E F1<ad62>108
+238.8 Q F2(\214le)2.5 E F0 -.35(Tr)144 238.8 S(ue if).35 E F2(\214le)2.5
+E F0 -.15(ex)2.5 G(ists and is a block special \214le.).15 E F1<ad63>108
+250.8 Q F2(\214le)2.5 E F0 -.35(Tr)144 250.8 S(ue if).35 E F2(\214le)2.5
+E F0 -.15(ex)2.5 G(ists and is a character special \214le.).15 E F1
+<ad64>108 262.8 Q F2(\214le)2.5 E F0 -.35(Tr)144 262.8 S(ue if).35 E F2
+(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a directory).15 E(.)-.65 E F1
+<ad65>108 274.8 Q F2(\214le)2.5 E F0 -.35(Tr)144 274.8 S(ue if).35 E F2
+(\214le)2.5 E F0 -.15(ex)2.5 G(ists.).15 E F1<ad66>108 286.8 Q F2
+(\214le)2.5 E F0 -.35(Tr)144 286.8 S(ue if).35 E F2(\214le)2.5 E F0 -.15
+(ex)2.5 G(ists and is a re).15 E(gular \214le.)-.15 E F1<ad67>108 298.8
+Q F2(\214le)2.5 E F0 -.35(Tr)144 298.8 S(ue if).35 E F2(\214le)2.5 E F0
+-.15(ex)2.5 G(ists and is set-group-id.).15 E F1<ad68>108 310.8 Q F2
+(\214le)2.5 E F0 -.35(Tr)144 310.8 S(ue if).35 E F2(\214le)2.5 E F0 -.15
+(ex)2.5 G(ists and is a symbolic link.).15 E F1<ad6b>108 322.8 Q F2
+(\214le)2.5 E F0 -.35(Tr)144 322.8 S(ue if).35 E F2(\214le)2.5 E F0 -.15
(ex)2.5 G(ists and its `).15 E(`stick)-.74 E(y')-.15 E 2.5('b)-.74 G
-(it is set.)-2.5 E F2<ad70>108 682.8 Q F1(\214le)2.5 E F0 -.35(Tr)144
-682.8 S(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and is a named pipe \(FIFO\).).15 E F2<ad72>108 694.8 Q F1(\214le)
-2.5 E F0 -.35(Tr)144 694.8 S(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5
-G(ists and is readable.).15 E F2<ad73>108 706.8 Q F1(\214le)2.5 E F0
--.35(Tr)144 706.8 S(ue if).35 E F1(\214le)2.5 E F0 -.15(ex)2.5 G
-(ists and has a size greater than zero.).15 E F2<ad74>108 718.8 Q F1(fd)
-2.5 E F0 -.35(Tr)144 718.8 S(ue if \214le descriptor).35 E F1(fd)4.47 E
-F0(is open and refers to a terminal.)3.27 E(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(33)190.395 E 0 Cg EP
-%%Page: 34 34
+(it is set.)-2.5 E F1<ad70>108 334.8 Q F2(\214le)2.5 E F0 -.35(Tr)144
+334.8 S(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and is a named pipe \(FIFO\).).15 E F1<ad72>108 346.8 Q F2(\214le)
+2.5 E F0 -.35(Tr)144 346.8 S(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5
+G(ists and is readable.).15 E F1<ad73>108 358.8 Q F2(\214le)2.5 E F0
+-.35(Tr)144 358.8 S(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and has a size greater than zero.).15 E F1<ad74>108 370.8 Q F2(fd)
+2.5 E F0 -.35(Tr)144 370.8 S(ue if \214le descriptor).35 E F2(fd)4.47 E
+F0(is open and refers to a terminal.)3.27 E F1<ad75>108 382.8 Q F2
+(\214le)2.5 E F0 -.35(Tr)144 382.8 S(ue if).35 E F2(\214le)2.5 E F0 -.15
+(ex)2.5 G(ists and its set-user).15 E(-id bit is set.)-.2 E F1<ad77>108
+394.8 Q F2(\214le)2.5 E F0 -.35(Tr)144 394.8 S(ue if).35 E F2(\214le)2.5
+E F0 -.15(ex)2.5 G(ists and is writable.).15 E F1<ad78>108 406.8 Q F2
+(\214le)2.5 E F0 -.35(Tr)144 406.8 S(ue if).35 E F2(\214le)2.5 E F0 -.15
+(ex)2.5 G(ists and is e).15 E -.15(xe)-.15 G(cutable.).15 E F1<ad47>108
+418.8 Q F2(\214le)2.5 E F0 -.35(Tr)144 418.8 S(ue if).35 E F2(\214le)2.5
+E F0 -.15(ex)2.5 G(ists and is o).15 E(wned by the ef)-.25 E(fecti)-.25
+E .3 -.15(ve g)-.25 H(roup id.).15 E F1<ad4c>108 430.8 Q F2(\214le)2.5 E
+F0 -.35(Tr)144 430.8 S(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and is a symbolic link.).15 E F1<ad4e>108 442.8 Q F2(\214le)2.5 E
+F0 -.35(Tr)144 442.8 S(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G
+(ists and has been modi\214ed since it w).15 E(as last read.)-.1 E F1
+<ad4f>108 454.8 Q F2(\214le)2.5 E F0 -.35(Tr)144 454.8 S(ue if).35 E F2
+(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is o).15 E(wned by the ef)-.25 E
+(fecti)-.25 E .3 -.15(ve u)-.25 H(ser id.).15 E F1<ad53>108 466.8 Q F2
+(\214le)2.5 E F0 -.35(Tr)144 466.8 S(ue if).35 E F2(\214le)2.5 E F0 -.15
+(ex)2.5 G(ists and is a sock).15 E(et.)-.1 E F2(\214le1)108 478.8 Q F1
+(\255ef)2.5 E F2(\214le2)2.5 E F0 -.35(Tr)144 490.8 S(ue if).35 E F2
+(\214le1)2.5 E F0(and)2.5 E F2(\214le2)2.5 E F0(refer to the same de)2.5
+E(vice and inode numbers.)-.25 E F2(\214le1)108 502.8 Q F0<ad>2.5 E F1
+(nt)A F2(\214le2)2.5 E F0 -.35(Tr)144 514.8 S(ue if).35 E F2(\214le1)2.5
+E F0(is ne)2.5 E(wer \(according to modi\214cation date\) than)-.25 E F2
+(\214le2)2.5 E F0 2.5(,o)C 2.5(ri)-2.5 G(f)-2.5 E F2(\214le1)2.5 E F0
+-.15(ex)2.5 G(ists and).15 E F2(\214le2)2.5 E F0(does not.)2.5 E F2
+(\214le1)108 526.8 Q F0<ad>2.5 E F1(ot)A F2(\214le2)2.5 E F0 -.35(Tr)144
+538.8 S(ue if).35 E F2(\214le1)2.5 E F0(is older than)2.5 E F2(\214le2)
+2.5 E F0 2.5(,o)C 2.5(ri)-2.5 G(f)-2.5 E F2(\214le2)2.5 E F0 -.15(ex)2.5
+G(ists and).15 E F2(\214le1)2.5 E F0(does not.)2.5 E F1<ad6f>108 550.8 Q
+F2(optname)2.5 E F0 -.35(Tr)144 562.8 S .262(ue if the shell option).35
+F F2(optname)2.992 E F0 .262(is enabled.)2.942 F .262
+(See the list of options under the description of the)5.262 F F1<ad6f>
+2.763 E F0(option to the)144 574.8 Q F1(set)2.5 E F0 -.2(bu)2.5 G
+(iltin belo).2 E -.65(w.)-.25 G F1<ad76>108 586.8 Q F2(varname)2.5 E F0
+-.35(Tr)144 598.8 S(ue if the shell v).35 E(ariable)-.25 E F2(varname)
+2.79 E F0(is set \(has been assigned a v)2.68 E(alue\).)-.25 E F1<ad52>
+108 610.8 Q F2(varname)2.5 E F0 -.35(Tr)144 622.8 S(ue if the shell v)
+.35 E(ariable)-.25 E F2(varname)2.79 E F0
+(is set and is a name reference.)2.68 E F1<ad7a>108 634.8 Q F2(string)
+2.5 E F0 -.35(Tr)144 646.8 S(ue if the length of).35 E F2(string)2.5 E
+F0(is zero.)2.5 E F2(string)108 658.8 Q F1<ad6e>108 670.8 Q F2(string)
+2.5 E F0 -.35(Tr)144 682.8 S(ue if the length of).35 E F2(string)2.84 E
+F0(is non-zero.)2.72 E F2(string1)108 699.6 Q F1(==)2.5 E F2(string2)2.5
+E F0(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(35)185.115 E 0 Cg
+EP
+%%Page: 36 36
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF<ad75>108 84 Q/F2 10/Times-Italic@0 SF(\214le)2.5 E F0 -.35(Tr)144 84
-S(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and its set-user).15
-E(-id bit is set.)-.2 E F1<ad77>108 96 Q F2(\214le)2.5 E F0 -.35(Tr)144
-96 S(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is writable.)
-.15 E F1<ad78>108 108 Q F2(\214le)2.5 E F0 -.35(Tr)144 108 S(ue if).35 E
-F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is e).15 E -.15(xe)-.15 G
-(cutable.).15 E F1<ad47>108 120 Q F2(\214le)2.5 E F0 -.35(Tr)144 120 S
-(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is o).15 E
-(wned by the ef)-.25 E(fecti)-.25 E .3 -.15(ve g)-.25 H(roup id.).15 E
-F1<ad4c>108 132 Q F2(\214le)2.5 E F0 -.35(Tr)144 132 S(ue if).35 E F2
-(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a symbolic link.).15 E F1
-<ad4e>108 144 Q F2(\214le)2.5 E F0 -.35(Tr)144 144 S(ue if).35 E F2
-(\214le)2.5 E F0 -.15(ex)2.5 G(ists and has been modi\214ed since it w)
-.15 E(as last read.)-.1 E F1<ad4f>108 156 Q F2(\214le)2.5 E F0 -.35(Tr)
-144 156 S(ue if).35 E F2(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is o).15
-E(wned by the ef)-.25 E(fecti)-.25 E .3 -.15(ve u)-.25 H(ser id.).15 E
-F1<ad53>108 168 Q F2(\214le)2.5 E F0 -.35(Tr)144 168 S(ue if).35 E F2
-(\214le)2.5 E F0 -.15(ex)2.5 G(ists and is a sock).15 E(et.)-.1 E F2
-(\214le1)108 180 Q F1(\255ef)2.5 E F2(\214le2)2.5 E F0 -.35(Tr)144 192 S
-(ue if).35 E F2(\214le1)2.5 E F0(and)2.5 E F2(\214le2)2.5 E F0
-(refer to the same de)2.5 E(vice and inode numbers.)-.25 E F2(\214le1)
-108 204 Q F0<ad>2.5 E F1(nt)A F2(\214le2)2.5 E F0 -.35(Tr)144 216 S
-(ue if).35 E F2(\214le1)2.5 E F0(is ne)2.5 E
-(wer \(according to modi\214cation date\) than)-.25 E F2(\214le2)2.5 E
-F0 2.5(,o)C 2.5(ri)-2.5 G(f)-2.5 E F2(\214le1)2.5 E F0 -.15(ex)2.5 G
-(ists and).15 E F2(\214le2)2.5 E F0(does not.)2.5 E F2(\214le1)108 228 Q
-F0<ad>2.5 E F1(ot)A F2(\214le2)2.5 E F0 -.35(Tr)144 240 S(ue if).35 E F2
-(\214le1)2.5 E F0(is older than)2.5 E F2(\214le2)2.5 E F0 2.5(,o)C 2.5
-(ri)-2.5 G(f)-2.5 E F2(\214le2)2.5 E F0 -.15(ex)2.5 G(ists and).15 E F2
-(\214le1)2.5 E F0(does not.)2.5 E F1<ad6f>108 252 Q F2(optname)2.5 E F0
--.35(Tr)144 264 S .262(ue if the shell option).35 F F2(optname)2.992 E
-F0 .262(is enabled.)2.942 F .262
-(See the list of options under the description of the)5.262 F F1<ad6f>
-2.763 E F0(option to the)144 276 Q F1(set)2.5 E F0 -.2(bu)2.5 G
-(iltin belo).2 E -.65(w.)-.25 G F1<ad76>108 288 Q F2(varname)2.5 E F0
--.35(Tr)144 300 S(ue if the shell v).35 E(ariable)-.25 E F2(varname)2.79
-E F0(is set \(has been assigned a v)2.68 E(alue\).)-.25 E F1<ad52>108
-312 Q F2(varname)2.5 E F0 -.35(Tr)144 324 S(ue if the shell v).35 E
-(ariable)-.25 E F2(varname)2.79 E F0(is set and is a name reference.)
-2.68 E F1<ad7a>108 336 Q F2(string)2.5 E F0 -.35(Tr)144 348 S
-(ue if the length of).35 E F2(string)2.5 E F0(is zero.)2.5 E F2(string)
-108 360 Q F1<ad6e>108 372 Q F2(string)2.5 E F0 -.35(Tr)144 384 S
-(ue if the length of).35 E F2(string)2.84 E F0(is non-zero.)2.72 E F2
-(string1)108 400.8 Q F1(==)2.5 E F2(string2)2.5 E(string1)108 412.8 Q F1
-(=)2.5 E F2(string2)2.5 E F0 -.35(Tr)144 424.8 S .862
-(ue if the strings are equal.).35 F F1(=)5.861 E F0 .861
-(should be used with the)3.361 F F1(test)3.361 E F0 .861
-(command for POSIX conformance.)3.361 F .446(When used with the)144
-436.8 R F1([[)2.946 E F0 .446
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10
+/Times-Italic@0 SF(string1)108 84 Q/F2 10/Times-Bold@0 SF(=)2.5 E F1
+(string2)2.5 E F0 -.35(Tr)144 96 S .862(ue if the strings are equal.).35
+F F2(=)5.861 E F0 .861(should be used with the)3.361 F F2(test)3.361 E
+F0 .861(command for POSIX conformance.)3.361 F .446(When used with the)
+144 108 R F2([[)2.946 E F0 .446
(command, this performs pattern matching as described abo)2.946 F .747
--.15(ve \()-.15 H F1(Compound).15 E(Commands)144 448.8 Q F0(\).)A F2
-(string1)108 465.6 Q F1(!=)2.5 E F2(string2)2.5 E F0 -.35(Tr)144 477.6 S
-(ue if the strings are not equal.).35 E F2(string1)108 494.4 Q F1(<)2.5
-E F2(string2)2.5 E F0 -.35(Tr)144 506.4 S(ue if).35 E F2(string1)2.5 E
-F0(sorts before)2.5 E F2(string2)2.5 E F0(le)2.5 E(xicographically)-.15
-E(.)-.65 E F2(string1)108 523.2 Q F1(>)2.5 E F2(string2)2.5 E F0 -.35
-(Tr)144 535.2 S(ue if).35 E F2(string1)2.5 E F0(sorts after)2.5 E F2
-(string2)2.5 E F0(le)2.5 E(xicographically)-.15 E(.)-.65 E F2(ar)108.33
-552 Q(g1)-.37 E F1(OP)2.5 E F2(ar)2.5 E(g2)-.37 E/F3 9/Times-Bold@0 SF
-(OP)144 564 Q F0 .385(is one of)2.635 F F1(\255eq)2.885 E F0(,)A F1
-(\255ne)2.885 E F0(,)A F1(\255lt)2.885 E F0(,)A F1(\255le)2.885 E F0(,)A
-F1(\255gt)2.885 E F0 2.885(,o)C(r)-2.885 E F1(\255ge)2.885 E F0 5.385
-(.T)C .385(hese arithmetic binary operators return true if)-5.385 F F2
+-.15(ve \()-.15 H F2(Compound).15 E(Commands)144 120 Q F0(\).)A F1
+(string1)108 136.8 Q F2(!=)2.5 E F1(string2)2.5 E F0 -.35(Tr)144 148.8 S
+(ue if the strings are not equal.).35 E F1(string1)108 165.6 Q F2(<)2.5
+E F1(string2)2.5 E F0 -.35(Tr)144 177.6 S(ue if).35 E F1(string1)2.5 E
+F0(sorts before)2.5 E F1(string2)2.5 E F0(le)2.5 E(xicographically)-.15
+E(.)-.65 E F1(string1)108 194.4 Q F2(>)2.5 E F1(string2)2.5 E F0 -.35
+(Tr)144 206.4 S(ue if).35 E F1(string1)2.5 E F0(sorts after)2.5 E F1
+(string2)2.5 E F0(le)2.5 E(xicographically)-.15 E(.)-.65 E F1(ar)108.33
+223.2 Q(g1)-.37 E F2(OP)2.5 E F1(ar)2.5 E(g2)-.37 E/F3 9/Times-Bold@0 SF
+(OP)144 235.2 Q F0 .385(is one of)2.635 F F2(\255eq)2.885 E F0(,)A F2
+(\255ne)2.885 E F0(,)A F2(\255lt)2.885 E F0(,)A F2(\255le)2.885 E F0(,)A
+F2(\255gt)2.885 E F0 2.885(,o)C(r)-2.885 E F2(\255ge)2.885 E F0 5.385
+(.T)C .385(hese arithmetic binary operators return true if)-5.385 F F1
(ar)2.884 E(g1)-.37 E F0 .845(is equal to, not equal to, less than, les\
-s than or equal to, greater than, or greater than or equal to)144 576 R
-F2(ar)144 588 Q(g2)-.37 E F0 3.59(,r)C(especti)-3.59 E -.15(ve)-.25 G
-(ly).15 E(.)-.65 E F2(Ar)7.1 E(g1)-.37 E F0(and)3.59 E F2(ar)3.92 E(g2)
+s than or equal to, greater than, or greater than or equal to)144 247.2
+R F1(ar)144 259.2 Q(g2)-.37 E F0 3.59(,r)C(especti)-3.59 E -.15(ve)-.25
+G(ly).15 E(.)-.65 E F1(Ar)7.1 E(g1)-.37 E F0(and)3.59 E F1(ar)3.92 E(g2)
-.37 E F0 1.089(may be positi)3.61 F 1.389 -.15(ve o)-.25 H 3.589(rn).15
G -2.25 -.15(eg a)-3.589 H(ti).15 E 1.389 -.15(ve i)-.25 H(nte).15 E
-3.589(gers. When)-.15 F 1.089(used with the)3.589 F F1([[)3.589 E F0
-(command,)144 600 Q F2(Ar)4.447 E(g1)-.37 E F0(and)3.437 E F2(Ar)4.447 E
-(g2)-.37 E F0 .937(are e)3.457 F -.25(va)-.25 G .937
+3.589(gers. When)-.15 F 1.089(used with the)3.589 F F2([[)3.589 E F0
+(command,)144 271.2 Q F1(Ar)4.447 E(g1)-.37 E F0(and)3.437 E F1(Ar)4.447
+E(g2)-.37 E F0 .937(are e)3.457 F -.25(va)-.25 G .937
(luated as arithmetic e).25 F .937(xpressions \(see)-.15 F F3 .937
-(ARITHMETIC EV)3.437 F(ALU)-1.215 E(A-)-.54 E(TION)144 612 Q F0(abo)2.25
-E -.15(ve)-.15 G(\).).15 E/F4 10.95/Times-Bold@0 SF(SIMPLE COMMAND EXP)
-72 628.8 Q(ANSION)-.81 E F0 .614(When a simple command is e)108 640.8 R
--.15(xe)-.15 G .614(cuted, the shell performs the follo).15 F .613
-(wing e)-.25 F .613(xpansions, assignments, and redi-)-.15 F
-(rections, from left to right, in the follo)108 652.8 Q(wing order)-.25
-E(.)-.55 E(1.)108 669.6 Q 1.848(The w)144 669.6 R 1.848
+(ARITHMETIC EV)3.437 F(ALU)-1.215 E(A-)-.54 E(TION)144 283.2 Q F0(abo)
+2.25 E -.15(ve)-.15 G(\).).15 E/F4 10.95/Times-Bold@0 SF
+(SIMPLE COMMAND EXP)72 300 Q(ANSION)-.81 E F0 .614
+(When a simple command is e)108 312 R -.15(xe)-.15 G .614
+(cuted, the shell performs the follo).15 F .613(wing e)-.25 F .613
+(xpansions, assignments, and redi-)-.15 F
+(rections, from left to right, in the follo)108 324 Q(wing order)-.25 E
+(.)-.55 E(1.)108 340.8 Q 1.848(The w)144 340.8 R 1.848
(ords that the parser has mark)-.1 F 1.848(ed as v)-.1 F 1.849
(ariable assignments \(those preceding the command)-.25 F
-(name\) and redirections are sa)144 681.6 Q -.15(ve)-.2 G 2.5(df).15 G
-(or later processing.)-2.5 E(2.)108 698.4 Q .18(The w)144 698.4 R .18
+(name\) and redirections are sa)144 352.8 Q -.15(ve)-.2 G 2.5(df).15 G
+(or later processing.)-2.5 E(2.)108 369.6 Q .18(The w)144 369.6 R .18
(ords that are not v)-.1 F .179
(ariable assignments or redirections are e)-.25 F 2.679(xpanded. If)-.15
F(an)2.679 E 2.679(yw)-.15 G .179(ords remain af-)-2.779 F .346(ter e)
-144 710.4 R .346(xpansion, the \214rst w)-.15 F .346(ord is tak)-.1 F
+144 381.6 R .346(xpansion, the \214rst w)-.15 F .346(ord is tak)-.1 F
.347(en to be the name of the command and the remaining w)-.1 F .347
-(ords are)-.1 F(the ar)144 722.4 Q(guments.)-.18 E(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(34)190.395 E 0 Cg EP
-%%Page: 35 35
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(3.)108 84 Q
-(Redirections are performed as described abo)144 84 Q .3 -.15(ve u)-.15
-H(nder).15 E/F1 9/Times-Bold@0 SF(REDIRECTION)2.5 E/F2 9/Times-Roman@0
-SF(.)A F0(4.)108 100.8 Q .717(The te)144 100.8 R .717(xt after the)-.15
-F/F3 10/Times-Bold@0 SF(=)3.217 E F0 .717(in each v)3.217 F .717
-(ariable assignment under)-.25 F .717(goes tilde e)-.18 F .717
-(xpansion, parameter e)-.15 F(xpansion,)-.15 E .339
-(command substitution, arithmetic e)144 112.8 R .339
+(ords are)-.1 F(the ar)144 393.6 Q(guments.)-.18 E(3.)108 410.4 Q
+(Redirections are performed as described abo)144 410.4 Q .3 -.15(ve u)
+-.15 H(nder).15 E F3(REDIRECTION)2.5 E/F5 9/Times-Roman@0 SF(.)A F0(4.)
+108 427.2 Q .717(The te)144 427.2 R .717(xt after the)-.15 F F2(=)3.217
+E F0 .717(in each v)3.217 F .717(ariable assignment under)-.25 F .717
+(goes tilde e)-.18 F .717(xpansion, parameter e)-.15 F(xpansion,)-.15 E
+.339(command substitution, arithmetic e)144 439.2 R .339
(xpansion, and quote remo)-.15 F -.25(va)-.15 G 2.839(lb).25 G .339
-(efore being assigned to the v)-2.839 F(ari-)-.25 E(able.)144 124.8 Q
-.332(If no command name results, the v)108 141.6 R .332
-(ariable assignments af)-.25 F .332(fect the current shell en)-.25 F
-2.832(vironment. Otherwise,)-.4 F(the)2.832 E -.25(va)108 153.6 S .757
-(riables are added to the en).25 F .757(vironment of the e)-.4 F -.15
-(xe)-.15 G .757(cuted command and do not af).15 F .757
-(fect the current shell en)-.25 F(vi-)-.4 E 3.177(ronment. If)108 165.6
-R(an)3.177 E 3.177(yo)-.15 G 3.177(ft)-3.177 G .677
-(he assignments attempts to assign a v)-3.177 F .677
-(alue to a readonly v)-.25 F .676(ariable, an error occurs, and)-.25 F
-(the command e)108 177.6 Q(xits with a non-zero status.)-.15 E .149
-(If no command name results, redirections are performed, b)108 194.4 R
-.149(ut do not af)-.2 F .15(fect the current shell en)-.25 F 2.65
-(vironment. A)-.4 F(redirection error causes the command to e)108 206.4
+(efore being assigned to the v)-2.839 F(ari-)-.25 E(able.)144 451.2 Q
+.587(If no command name results, the v)108 468 R .586
+(ariable assignments af)-.25 F .586(fect the current shell en)-.25 F
+3.086(vironment. In)-.4 F .586(the case of)3.086 F .371(such a command \
+\(one that consists only of assignment statements and redirections\), a\
+ssignment statements)108 480 R .835(are performed before redirections.)
+108 492 R .835(Otherwise, the v)5.835 F .835
+(ariables are added to the en)-.25 F .835(vironment of the e)-.4 F -.15
+(xe)-.15 G(cuted).15 E .838(command and do not af)108 504 R .838
+(fect the current shell en)-.25 F 3.338(vironment. If)-.4 F(an)3.338 E
+3.338(yo)-.15 G 3.338(ft)-3.338 G .839
+(he assignments attempts to assign a)-3.338 F -.25(va)108 516 S
+(lue to a readonly v).25 E(ariable, an error occurs, and the command e)
+-.25 E(xits with a non-zero status.)-.15 E .15
+(If no command name results, redirections are performed, b)108 532.8 R
+.149(ut do not af)-.2 F .149(fect the current shell en)-.25 F 2.649
+(vironment. A)-.4 F(redirection error causes the command to e)108 544.8
Q(xit with a non-zero status.)-.15 E 1.064
-(If there is a command name left after e)108 223.2 R 1.064(xpansion, e)
+(If there is a command name left after e)108 561.6 R 1.064(xpansion, e)
-.15 F -.15(xe)-.15 G 1.064(cution proceeds as described belo).15 F
-4.864 -.65(w. O)-.25 H 1.064(therwise, the).65 F .068(command e)108
-235.2 R 2.568(xits. If)-.15 F .069(one of the e)2.568 F .069
-(xpansions contained a command substitution, the e)-.15 F .069
-(xit status of the command)-.15 F .467(is the e)108 247.2 R .466
-(xit status of the last command substitution performed.)-.15 F .466
-(If there were no command substitutions, the)5.466 F(command e)108 259.2
-Q(xits with a status of zero.)-.15 E/F4 10.95/Times-Bold@0 SF
-(COMMAND EXECUTION)72 276 Q F0 .546
-(After a command has been split into w)108 288 R .547
+4.864 -.65(w. O)-.25 H 1.064(therwise, the).65 F .069(command e)108
+573.6 R 2.569(xits. If)-.15 F .069(one of the e)2.569 F .069
+(xpansions contained a command substitution, the e)-.15 F .068
+(xit status of the command)-.15 F .466(is the e)108 585.6 R .466
+(xit status of the last command substitution performed.)-.15 F .467
+(If there were no command substitutions, the)5.466 F(command e)108 597.6
+Q(xits with a status of zero.)-.15 E F4(COMMAND EXECUTION)72 614.4 Q F0
+.547(After a command has been split into w)108 626.4 R .546
(ords, if it results in a simple command and an optional list of ar)-.1
-F(gu-)-.18 E(ments, the follo)108 300 Q(wing actions are tak)-.25 E(en.)
--.1 E .379(If the command name contains no slashes, the shell attempts \
-to locate it.)108 316.8 R .379(If there e)5.379 F .379
+F(gu-)-.18 E(ments, the follo)108 638.4 Q(wing actions are tak)-.25 E
+(en.)-.1 E .379(If the command name contains no slashes, the shell atte\
+mpts to locate it.)108 655.2 R .379(If there e)5.379 F .379
(xists a shell function by)-.15 F .246(that name, that function is in)
-108 328.8 R -.2(vo)-.4 G -.1(ke).2 G 2.746(da).1 G 2.746(sd)-2.746 G
-.246(escribed abo)-2.746 F .546 -.15(ve i)-.15 H(n).15 E F1(FUNCTIONS)
-2.746 E F2(.)A F0 .246(If the name does not match a func-)4.746 F
-(tion, the shell searches for it in the list of shell b)108 340.8 Q 2.5
+108 667.2 R -.2(vo)-.4 G -.1(ke).2 G 2.746(da).1 G 2.746(sd)-2.746 G
+.246(escribed abo)-2.746 F .546 -.15(ve i)-.15 H(n).15 E F3(FUNCTIONS)
+2.746 E F5(.)A F0 .246(If the name does not match a func-)4.746 F
+(tion, the shell searches for it in the list of shell b)108 679.2 Q 2.5
(uiltins. If)-.2 F 2.5(am)2.5 G(atch is found, that b)-2.5 E
-(uiltin is in)-.2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E .31
-(If the name is neither a shell function nor a b)108 357.6 R .309
-(uiltin, and contains no slashes,)-.2 F F3(bash)2.809 E F0 .309
-(searches each element of)2.809 F(the)108 369.6 Q F1 -.666(PA)3.162 G
-(TH)-.189 E F0 .662(for a directory containing an e)2.912 F -.15(xe)-.15
-G .662(cutable \214le by that name.).15 F F3(Bash)5.662 E F0 .663
-(uses a hash table to remember)3.162 F 1.915(the full pathnames of e)108
-381.6 R -.15(xe)-.15 G 1.915(cutable \214les \(see).15 F F3(hash)4.415 E
-F0(under)4.415 E F1 1.915(SHELL B)4.415 F(UIL)-.09 E 1.914(TIN COMMANDS)
--.828 F F0(belo)4.164 E 4.414(w\). A)-.25 F(full)4.414 E .719
-(search of the directories in)108 393.6 R F1 -.666(PA)3.219 G(TH)-.189 E
-F0 .72(is performed only if the command is not found in the hash table.)
-2.969 F .72(If the)5.72 F .956(search is unsuccessful, the shell search\
-es for a de\214ned shell function named)108 405.6 R F3(command_not_f)
-3.455 E(ound_han-)-.25 E(dle)108 417.6 Q F0 6.005(.I)C 3.505(ft)-6.005 G
-1.005(hat function e)-3.505 F 1.005(xists, it is in)-.15 F -.2(vo)-.4 G
--.1(ke).2 G 3.506(di).1 G 3.506(nas)-3.506 G 1.006(eparate e)-3.506 F
--.15(xe)-.15 G 1.006(cution en).15 F 1.006
-(vironment with the original command)-.4 F .256
-(and the original command')108 429.6 R 2.756(sa)-.55 G -.18(rg)-2.756 G
-.256(uments as its ar).18 F .256(guments, and the function')-.18 F 2.755
-(se)-.55 G .255(xit status becomes the e)-2.905 F .255(xit sta-)-.15 F
-.263(tus of that subshell.)108 441.6 R .263(If that function is not de\
-\214ned, the shell prints an error message and returns an e)5.263 F .263
-(xit sta-)-.15 F(tus of 127.)108 453.6 Q 1.089(If the search is success\
-ful, or if the command name contains one or more slashes, the shell e)
-108 470.4 R -.15(xe)-.15 G 1.089(cutes the).15 F .197
-(named program in a separate e)108 482.4 R -.15(xe)-.15 G .197
-(cution en).15 F 2.698(vironment. Ar)-.4 F .198
-(gument 0 is set to the name gi)-.18 F -.15(ve)-.25 G .198
-(n, and the remain-).15 F(ing ar)108 494.4 Q
-(guments to the command are set to the ar)-.18 E(guments gi)-.18 E -.15
-(ve)-.25 G(n, if an).15 E -.65(y.)-.15 G 1.049(If this e)108 511.2 R
--.15(xe)-.15 G 1.049(cution f).15 F 1.049
-(ails because the \214le is not in e)-.1 F -.15(xe)-.15 G 1.048
-(cutable format, and the \214le is not a directory).15 F 3.548(,i)-.65 G
-3.548(ti)-3.548 G 3.548(sa)-3.548 G(s-)-3.548 E .042(sumed to be a)108
-523.2 R/F5 10/Times-Italic@0 SF .042(shell script)2.542 F F0 2.542
-(,a\214)C .043(le containing shell commands.)-2.542 F 2.543(As)5.043 G
-.043(ubshell is spa)-2.543 F .043(wned to e)-.15 F -.15(xe)-.15 G .043
-(cute it.).15 F .043(This sub-)5.043 F .275
-(shell reinitializes itself, so that the ef)108 535.2 R .274
-(fect is as if a ne)-.25 F 2.774(ws)-.25 G .274(hell had been in)-2.774
-F -.2(vo)-.4 G -.1(ke).2 G 2.774(dt).1 G 2.774(oh)-2.774 G .274
-(andle the script, with the)-2.774 F -.15(ex)108 547.2 S 2.357
-(ception that the locations of commands remembered by the parent \(see)
-.15 F F3(hash)4.858 E F0(belo)4.858 E 4.858(wu)-.25 G(nder)-4.858 E F1
-(SHELL)4.858 E -.09(BU)108 559.2 S(IL).09 E(TIN COMMANDS)-.828 E F2(\))A
-F0(are retained by the child.)2.25 E .348(If the program is a \214le be)
-108 576 R .348(ginning with)-.15 F F3(#!)2.848 E F0 2.848(,t)C .347(he \
-remainder of the \214rst line speci\214es an interpreter for the pro-)
--2.848 F 3.178(gram. The)108 588 R .678(shell e)3.178 F -.15(xe)-.15 G
-.678(cutes the speci\214ed interpreter on operating systems that do not\
- handle this e).15 F -.15(xe)-.15 G(cutable).15 E .206(format themselv)
-108 600 R 2.706(es. The)-.15 F(ar)2.706 E .206
-(guments to the interpreter consist of a single optional ar)-.18 F .206
-(gument follo)-.18 F .206(wing the in-)-.25 F .267
-(terpreter name on the \214rst line of the program, follo)108 612 R .268
-(wed by the name of the program, follo)-.25 F .268(wed by the com-)-.25
-F(mand ar)108 624 Q(guments, if an)-.18 E -.65(y.)-.15 G F4
-(COMMAND EXECUTION ENVIR)72 640.8 Q(ONMENT)-.329 E F0(The shell has an)
-108 652.8 Q F5 -.2(ex)2.5 G(ecution en).2 E(vir)-.4 E(onment)-.45 E F0
-2.5(,w)C(hich consists of the follo)-2.5 E(wing:)-.25 E<83>108 669.6 Q
-1.406(open \214les inherited by the shell at in)144 669.6 R -.2(vo)-.4 G
-1.405(cation, as modi\214ed by redirections supplied to the).2 F F3
-(exec)3.905 E F0 -.2(bu)144 681.6 S(iltin).2 E<83>108 698.4 Q
-(the current w)144 698.4 Q(orking directory as set by)-.1 E F3(cd)2.5 E
-F0(,)A F3(pushd)2.5 E F0 2.5(,o)C(r)-2.5 E F3(popd)2.5 E F0 2.5(,o)C 2.5
-(ri)-2.5 G(nherited by the shell at in)-2.5 E -.2(vo)-.4 G(cation).2 E
-<83>108 715.2 Q(the \214le creation mode mask as set by)144 715.2 Q F3
-(umask)2.5 E F0(or inherited from the shell')2.5 E 2.5(sp)-.55 G(arent)
--2.5 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(35)190.395 E 0 Cg
-EP
-%%Page: 36 36
+(uiltin is in)-.2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E .309
+(If the name is neither a shell function nor a b)108 696 R .31
+(uiltin, and contains no slashes,)-.2 F F2(bash)2.81 E F0 .31
+(searches each element of)2.81 F(the)108 708 Q F3 -.666(PA)3.163 G(TH)
+-.189 E F0 .662(for a directory containing an e)2.913 F -.15(xe)-.15 G
+.662(cutable \214le by that name.).15 F F2(Bash)5.662 E F0 .662
+(uses a hash table to remember)3.162 F 1.914(the full pathnames of e)108
+720 R -.15(xe)-.15 G 1.915(cutable \214les \(see).15 F F2(hash)4.415 E
+F0(under)4.415 E F3 1.915(SHELL B)4.415 F(UIL)-.09 E 1.915(TIN COMMANDS)
+-.828 F F0(belo)4.165 E 4.415(w\). A)-.25 F(full)4.415 E(GNU Bash 5.2)72
+768 Q(2022 September 19)135.955 E(36)185.115 E 0 Cg EP
+%%Page: 37 37
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E<83>108 84 Q
-(current traps set by)144 84 Q/F1 10/Times-Bold@0 SF(trap)2.5 E F0<83>
-108 100.8 Q .256(shell parameters that are set by v)144 100.8 R .256
-(ariable assignment or with)-.25 F F1(set)2.756 E F0 .257
-(or inherited from the shell')2.756 F 2.757(sp)-.55 G(arent)-2.757 E
-(in the en)144 112.8 Q(vironment)-.4 E<83>108 129.6 Q
-(shell functions de\214ned during e)144 129.6 Q -.15(xe)-.15 G
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .72
+(search of the directories in)108 84 R/F1 9/Times-Bold@0 SF -.666(PA)
+3.22 G(TH)-.189 E F0 .719
+(is performed only if the command is not found in the hash table.)2.97 F
+.719(If the)5.719 F .956(search is unsuccessful, the shell searches for\
+ a de\214ned shell function named)108 96 R/F2 10/Times-Bold@0 SF
+(command_not_f)3.456 E(ound_han-)-.25 E(dle)108 108 Q F0 6.006(.I)C
+3.506(ft)-6.006 G 1.006(hat function e)-3.506 F 1.006(xists, it is in)
+-.15 F -.2(vo)-.4 G -.1(ke).2 G 3.506(di).1 G 3.506(nas)-3.506 G 1.005
+(eparate e)-3.506 F -.15(xe)-.15 G 1.005(cution en).15 F 1.005
+(vironment with the original command)-.4 F .255
+(and the original command')108 120 R 2.755(sa)-.55 G -.18(rg)-2.755 G
+.255(uments as its ar).18 F .256(guments, and the function')-.18 F 2.756
+(se)-.55 G .256(xit status becomes the e)-2.906 F .256(xit sta-)-.15 F
+.263(tus of that subshell.)108 132 R .263(If that function is not de\
+\214ned, the shell prints an error message and returns an e)5.263 F .263
+(xit sta-)-.15 F(tus of 127.)108 144 Q 1.089(If the search is successfu\
+l, or if the command name contains one or more slashes, the shell e)108
+160.8 R -.15(xe)-.15 G 1.09(cutes the).15 F .198
+(named program in a separate e)108 172.8 R -.15(xe)-.15 G .198
+(cution en).15 F 2.698(vironment. Ar)-.4 F .198
+(gument 0 is set to the name gi)-.18 F -.15(ve)-.25 G .197
+(n, and the remain-).15 F(ing ar)108 184.8 Q
+(guments to the command are set to the ar)-.18 E(guments gi)-.18 E -.15
+(ve)-.25 G(n, if an).15 E -.65(y.)-.15 G 1.048(If this e)108 201.6 R
+-.15(xe)-.15 G 1.048(cution f).15 F 1.048
+(ails because the \214le is not in e)-.1 F -.15(xe)-.15 G 1.049
+(cutable format, and the \214le is not a directory).15 F 3.549(,i)-.65 G
+3.549(ti)-3.549 G 3.549(sa)-3.549 G(s-)-3.549 E .143(sumed to be a)108
+213.6 R/F3 10/Times-Italic@0 SF .143(shell script)2.643 F F0 2.643
+(,a\214)C .143(le containing shell commands, and the shell creates a ne)
+-2.643 F 2.643(wi)-.25 G .143(nstance of itself to)-2.643 F -.15(exe)108
+225.6 S .136(cute it.).15 F .136
+(This subshell reinitializes itself, so that the ef)5.136 F .137
+(fect is as if a ne)-.25 F 2.637(ws)-.25 G .137(hell had been in)-2.637
+F -.2(vo)-.4 G -.1(ke).2 G 2.637(dt).1 G 2.637(oh)-2.637 G(andle)-2.637
+E .866(the script, with the e)108 237.6 R .866
+(xception that the locations of commands remembered by the parent \(see)
+-.15 F F2(hash)3.365 E F0(belo)3.365 E(w)-.25 E(under)108 249.6 Q F1
+(SHELL B)2.5 E(UIL)-.09 E(TIN COMMANDS)-.828 E/F4 9/Times-Roman@0 SF(\))
+A F0(are retained by the child.)2.25 E .347
+(If the program is a \214le be)108 266.4 R .347(ginning with)-.15 F F2
+(#!)2.847 E F0 2.847(,t)C .348(he remainder of the \214rst line speci\
+\214es an interpreter for the pro-)-2.847 F 3.178(gram. The)108 278.4 R
+.678(shell e)3.178 F -.15(xe)-.15 G .678(cutes the speci\214ed interpre\
+ter on operating systems that do not handle this e).15 F -.15(xe)-.15 G
+(cutable).15 E .206(format themselv)108 290.4 R 2.706(es. The)-.15 F(ar)
+2.706 E .206(guments to the interpreter consist of a single optional ar)
+-.18 F .206(gument follo)-.18 F .206(wing the in-)-.25 F .268
+(terpreter name on the \214rst line of the program, follo)108 302.4 R
+.267(wed by the name of the program, follo)-.25 F .267(wed by the com-)
+-.25 F(mand ar)108 314.4 Q(guments, if an)-.18 E -.65(y.)-.15 G/F5 10.95
+/Times-Bold@0 SF(COMMAND EXECUTION ENVIR)72 331.2 Q(ONMENT)-.329 E F0
+(The shell has an)108 343.2 Q F3 -.2(ex)2.5 G(ecution en).2 E(vir)-.4 E
+(onment)-.45 E F0 2.5(,w)C(hich consists of the follo)-2.5 E(wing:)-.25
+E<83>108 360 Q 1.405(open \214les inherited by the shell at in)144 360 R
+-.2(vo)-.4 G 1.406
+(cation, as modi\214ed by redirections supplied to the).2 F F2(exec)
+3.906 E F0 -.2(bu)144 372 S(iltin).2 E<83>108 388.8 Q(the current w)144
+388.8 Q(orking directory as set by)-.1 E F2(cd)2.5 E F0(,)A F2(pushd)2.5
+E F0 2.5(,o)C(r)-2.5 E F2(popd)2.5 E F0 2.5(,o)C 2.5(ri)-2.5 G
+(nherited by the shell at in)-2.5 E -.2(vo)-.4 G(cation).2 E<83>108
+405.6 Q(the \214le creation mode mask as set by)144 405.6 Q F2(umask)2.5
+E F0(or inherited from the shell')2.5 E 2.5(sp)-.55 G(arent)-2.5 E<83>
+108 422.4 Q(current traps set by)144 422.4 Q F2(trap)2.5 E F0<83>108
+439.2 Q .257(shell parameters that are set by v)144 439.2 R .256
+(ariable assignment or with)-.25 F F2(set)2.756 E F0 .256
+(or inherited from the shell')2.756 F 2.756(sp)-.55 G(arent)-2.756 E
+(in the en)144 451.2 Q(vironment)-.4 E<83>108 468 Q
+(shell functions de\214ned during e)144 468 Q -.15(xe)-.15 G
(cution or inherited from the shell').15 E 2.5(sp)-.55 G
-(arent in the en)-2.5 E(vironment)-.4 E<83>108 146.4 Q
-(options enabled at in)144 146.4 Q -.2(vo)-.4 G(cation \(either by def)
-.2 E(ault or with command-line ar)-.1 E(guments\) or by)-.18 E F1(set)
-2.5 E F0<83>108 163.2 Q(options enabled by)144 163.2 Q F1(shopt)2.5 E F0
-<83>108 180 Q(shell aliases de\214ned with)144 180 Q F1(alias)2.5 E F0
-<83>108 196.8 Q -.25(va)144 196.8 S
+(arent in the en)-2.5 E(vironment)-.4 E<83>108 484.8 Q
+(options enabled at in)144 484.8 Q -.2(vo)-.4 G(cation \(either by def)
+.2 E(ault or with command-line ar)-.1 E(guments\) or by)-.18 E F2(set)
+2.5 E F0<83>108 501.6 Q(options enabled by)144 501.6 Q F2(shopt)2.5 E F0
+<83>108 518.4 Q(shell aliases de\214ned with)144 518.4 Q F2(alias)2.5 E
+F0<83>108 535.2 Q -.25(va)144 535.2 S
(rious process IDs, including those of background jobs, the v).25 E
-(alue of)-.25 E F1($$)2.5 E F0 2.5(,a)C(nd the v)-2.5 E(alue of)-.25 E
-/F2 9/Times-Bold@0 SF(PPID)2.5 E F0 .427
-(When a simple command other than a b)108 213.6 R .426
-(uiltin or shell function is to be e)-.2 F -.15(xe)-.15 G .426
-(cuted, it is in).15 F -.2(vo)-.4 G -.1(ke).2 G 2.926(di).1 G 2.926(nas)
--2.926 G(eparate)-2.926 E -.15(exe)108 225.6 S .133(cution en).15 F .133
+(alue of)-.25 E F2($$)2.5 E F0 2.5(,a)C(nd the v)-2.5 E(alue of)-.25 E
+F1(PPID)2.5 E F0 .426(When a simple command other than a b)108 552 R
+.427(uiltin or shell function is to be e)-.2 F -.15(xe)-.15 G .427
+(cuted, it is in).15 F -.2(vo)-.4 G -.1(ke).2 G 2.927(di).1 G 2.927(nas)
+-2.927 G(eparate)-2.927 E -.15(exe)108 564 S .134(cution en).15 F .134
(vironment that consists of the follo)-.4 F 2.634(wing. Unless)-.25 F
-.134(otherwise noted, the v)2.634 F .134(alues are inherited from)-.25 F
-(the shell.)108 237.6 Q<83>108 254.4 Q 1.056(the shell')144 254.4 R
-3.556(so)-.55 G 1.056(pen \214les, plus an)-3.556 F 3.556(ym)-.15 G
-1.056
+.133(otherwise noted, the v)2.634 F .133(alues are inherited from)-.25 F
+(the shell.)108 576 Q<83>108 592.8 Q 1.055(the shell')144 592.8 R 3.555
+(so)-.55 G 1.055(pen \214les, plus an)-3.555 F 3.556(ym)-.15 G 1.056
(odi\214cations and additions speci\214ed by redirections to the com-)
--3.556 F(mand)144 266.4 Q<83>108 283.2 Q(the current w)144 283.2 Q
-(orking directory)-.1 E<83>108 300 Q(the \214le creation mode mask)144
-300 Q<83>108 316.8 Q .856(shell v)144 316.8 R .857
+-3.556 F(mand)144 604.8 Q<83>108 621.6 Q(the current w)144 621.6 Q
+(orking directory)-.1 E<83>108 638.4 Q(the \214le creation mode mask)144
+638.4 Q<83>108 655.2 Q .857(shell v)144 655.2 R .857
(ariables and functions mark)-.25 F .857(ed for e)-.1 F .857
(xport, along with v)-.15 F .857(ariables e)-.25 F .857
-(xported for the command,)-.15 F(passed in the en)144 328.8 Q(vironment)
--.4 E<83>108 345.6 Q .307(traps caught by the shell are reset to the v)
-144 345.6 R .306(alues inherited from the shell')-.25 F 2.806(sp)-.55 G
-.306(arent, and traps ignored)-2.806 F(by the shell are ignored)144
-357.6 Q 2.5(Ac)108 374.4 S(ommand in)-2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5
-(di).1 G 2.5(nt)-2.5 G(his separate en)-2.5 E(vironment cannot af)-.4 E
+(xported for the command,)-.15 F(passed in the en)144 667.2 Q(vironment)
+-.4 E<83>108 684 Q .306(traps caught by the shell are reset to the v)144
+684 R .307(alues inherited from the shell')-.25 F 2.807(sp)-.55 G .307
+(arent, and traps ignored)-2.807 F(by the shell are ignored)144 696 Q
+2.5(Ac)108 712.8 S(ommand in)-2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(di).1 G
+2.5(nt)-2.5 G(his separate en)-2.5 E(vironment cannot af)-.4 E
(fect the shell')-.25 E 2.5(se)-.55 G -.15(xe)-2.65 G(cution en).15 E
-(vironment.)-.4 E .577(Command substitution, commands grouped with pare\
-ntheses, and asynchronous commands are in)108 391.2 R -.2(vo)-.4 G -.1
-(ke).2 G 3.078(di).1 G(n)-3.078 E 2.745(as)108 403.2 S .245(ubshell en)
--2.745 F .245(vironment that is a duplicate of the shell en)-.4 F .244
-(vironment, e)-.4 F .244(xcept that traps caught by the shell are)-.15 F
-.358(reset to the v)108 415.2 R .358
+(vironment.)-.4 E(A)108 729.6 Q F3(subshell)2.5 E F0(is a cop)2.5 E 2.5
+(yo)-.1 G 2.5(ft)-2.5 G(he shell process.)-2.5 E(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(37)185.115 E 0 Cg EP
+%%Page: 38 38
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .577(Command subs\
+titution, commands grouped with parentheses, and asynchronous commands \
+are in)108 84 R -.2(vo)-.4 G -.1(ke).2 G 3.077(di).1 G(n)-3.077 E 2.744
+(as)108 96 S .244(ubshell en)-2.744 F .244
+(vironment that is a duplicate of the shell en)-.4 F .245(vironment, e)
+-.4 F .245(xcept that traps caught by the shell are)-.15 F .359
+(reset to the v)108 108 R .358
(alues that the shell inherited from its parent at in)-.25 F -.2(vo)-.4
-G 2.858(cation. Builtin).2 F .359(commands that are in)2.859 F -.2(vo)
--.4 G -.1(ke).2 G(d).1 E .857(as part of a pipeline are also e)108 427.2
-R -.15(xe)-.15 G .856(cuted in a subshell en).15 F 3.356
-(vironment. Changes)-.4 F .856(made to the subshell en)3.356 F(viron-)
--.4 E(ment cannot af)108 439.2 Q(fect the shell')-.25 E 2.5(se)-.55 G
--.15(xe)-2.65 G(cution en).15 E(vironment.)-.4 E 1.376(Subshells spa)108
-456 R 1.376(wned to e)-.15 F -.15(xe)-.15 G 1.377
+G 2.858(cation. Builtin).2 F .358(commands that are in)2.858 F -.2(vo)
+-.4 G -.1(ke).2 G(d).1 E .856(as part of a pipeline are also e)108 120 R
+-.15(xe)-.15 G .856(cuted in a subshell en).15 F 3.357
+(vironment. Changes)-.4 F .857(made to the subshell en)3.357 F(viron-)
+-.4 E(ment cannot af)108 132 Q(fect the shell')-.25 E 2.5(se)-.55 G -.15
+(xe)-2.65 G(cution en).15 E(vironment.)-.4 E 1.377(Subshells spa)108
+148.8 R 1.377(wned to e)-.15 F -.15(xe)-.15 G 1.377
(cute command substitutions inherit the v).15 F 1.377(alue of the)-.25 F
-F1<ad65>3.877 E F0 1.377(option from the parent)3.877 F 2.5(shell. When)
-108 468 R(not in)2.5 E/F3 10/Times-Italic@0 SF(posix mode)2.5 E F0(,)A
-F1(bash)2.5 E F0(clears the)2.5 E F1<ad65>2.5 E F0
-(option in such subshells.)2.5 E .405(If a command is follo)108 484.8 R
-.405(wed by a)-.25 F F1(&)2.905 E F0 .404(and job control is not acti)
-2.905 F -.15(ve)-.25 G 2.904(,t).15 G .404(he def)-2.904 F .404
-(ault standard input for the command)-.1 F .197(is the empty \214le)108
-496.8 R F3(/de)2.697 E(v/null)-.15 E F0 5.197(.O)C .197
-(therwise, the in)-5.197 F -.2(vo)-.4 G -.1(ke).2 G 2.697(dc).1 G .198
-(ommand inherits the \214le descriptors of the calling shell)-2.697 F
-(as modi\214ed by redirections.)108 508.8 Q/F4 10.95/Times-Bold@0 SF
-(ENVIR)72 525.6 Q(ONMENT)-.329 E F0 2.344(When a program is in)108 537.6
+/F1 10/Times-Bold@0 SF<ad65>3.876 E F0 1.376(option from the parent)
+3.876 F 2.5(shell. When)108 160.8 R(not in)2.5 E/F2 10/Times-Italic@0 SF
+(posix mode)2.5 E F0(,)A F1(bash)2.5 E F0(clears the)2.5 E F1<ad65>2.5 E
+F0(option in such subshells.)2.5 E .404(If a command is follo)108 177.6
+R .404(wed by a)-.25 F F1(&)2.904 E F0 .405(and job control is not acti)
+2.904 F -.15(ve)-.25 G 2.905(,t).15 G .405(he def)-2.905 F .405
+(ault standard input for the command)-.1 F .198(is the empty \214le)108
+189.6 R F2(/de)2.698 E(v/null)-.15 E F0 5.198(.O)C .198
+(therwise, the in)-5.198 F -.2(vo)-.4 G -.1(ke).2 G 2.698(dc).1 G .197
+(ommand inherits the \214le descriptors of the calling shell)-2.698 F
+(as modi\214ed by redirections.)108 201.6 Q/F3 10.95/Times-Bold@0 SF
+(ENVIR)72 218.4 Q(ONMENT)-.329 E F0 2.343(When a program is in)108 230.4
R -.2(vo)-.4 G -.1(ke).2 G 4.843(di).1 G 4.843(ti)-4.843 G 4.843(sg)
-4.843 G -2.15 -.25(iv e)-4.843 H 4.843(na).25 G 4.843(na)-4.843 G 2.343
-(rray of strings called the)-4.843 F F3(en)5.033 E(vir)-.4 E(onment)-.45
-E F0 7.343(.T).68 G 2.343(his is a list of)-7.343 F F3(name)108 549.6 Q
-F0<ad>A F3(value)A F0(pairs, of the form)2.5 E F3(name)2.86 E F0(=)A F3
-(value)A F0(.).18 E .438(The shell pro)108 566.4 R .438(vides se)-.15 F
+(rray of strings called the)-4.843 F F2(en)5.033 E(vir)-.4 E(onment)-.45
+E F0 7.343(.T).68 G 2.344(his is a list of)-7.343 F F2(name)108 242.4 Q
+F0<ad>A F2(value)A F0(pairs, of the form)2.5 E F2(name)2.86 E F0(=)A F2
+(value)A F0(.).18 E .439(The shell pro)108 259.2 R .438(vides se)-.15 F
-.15(ve)-.25 G .438(ral w).15 F .438(ays to manipulate the en)-.1 F
2.938(vironment. On)-.4 F(in)2.938 E -.2(vo)-.4 G .438
-(cation, the shell scans its o).2 F .439(wn en-)-.25 F .709(vironment a\
+(cation, the shell scans its o).2 F .438(wn en-)-.25 F .709(vironment a\
nd creates a parameter for each name found, automatically marking it fo\
-r)108 578.4 R F3 -.2(ex)3.208 G(port).2 E F0 .708(to child pro-)3.888 F
-2.703(cesses. Ex)108 590.4 R .203(ecuted commands inherit the en)-.15 F
+r)108 271.2 R F2 -.2(ex)3.209 G(port).2 E F0 .709(to child pro-)3.889 F
+2.704(cesses. Ex)108 283.2 R .203(ecuted commands inherit the en)-.15 F
2.703(vironment. The)-.4 F F1(export)2.703 E F0(and)2.703 E F1(declar)
-2.703 E 2.703<65ad>-.18 G(x)-2.703 E F0 .203(commands allo)2.703 F 2.704
-(wp)-.25 G(aram-)-2.704 E .332
-(eters and functions to be added to and deleted from the en)108 602.4 R
+2.703 E 2.703<65ad>-.18 G(x)-2.703 E F0 .203(commands allo)2.703 F 2.703
+(wp)-.25 G(aram-)-2.703 E .332
+(eters and functions to be added to and deleted from the en)108 295.2 R
2.832(vironment. If)-.4 F .332(the v)2.832 F .332
-(alue of a parameter in the en-)-.25 F .131
-(vironment is modi\214ed, the ne)108 614.4 R 2.631(wv)-.25 G .131
-(alue becomes part of the en)-2.881 F .132
-(vironment, replacing the old.)-.4 F .132(The en)5.132 F(vironment)-.4 E
-.321(inherited by an)108 626.4 R 2.821(ye)-.15 G -.15(xe)-2.971 G .321
+(alue of a parameter in the en-)-.25 F .132
+(vironment is modi\214ed, the ne)108 307.2 R 2.632(wv)-.25 G .131
+(alue becomes part of the en)-2.882 F .131
+(vironment, replacing the old.)-.4 F .131(The en)5.131 F(vironment)-.4 E
+.32(inherited by an)108 319.2 R 2.82(ye)-.15 G -.15(xe)-2.97 G .321
(cuted command consists of the shell').15 F 2.821(si)-.55 G .321
-(nitial en)-2.821 F .32(vironment, whose v)-.4 F .32(alues may be modi-)
--.25 F .533(\214ed in the shell, less an)108 638.4 R 3.033(yp)-.15 G
-.534(airs remo)-3.033 F -.15(ve)-.15 G 3.034(db).15 G 3.034(yt)-3.034 G
-(he)-3.034 E F1(unset)3.034 E F0 .534(command, plus an)3.034 F 3.034(ya)
--.15 G .534(dditions via the)-3.034 F F1(export)3.034 E F0(and)3.034 E
-F1(de-)3.034 E(clar)108 650.4 Q 2.5<65ad>-.18 G(x)-2.5 E F0(commands.)
-2.5 E .563(The en)108 667.2 R .563(vironment for an)-.4 F(y)-.15 E F3
-.563(simple command)3.403 F F0 .562
+(nitial en)-2.821 F .321(vironment, whose v)-.4 F .321
+(alues may be modi-)-.25 F .534(\214ed in the shell, less an)108 331.2 R
+3.034(yp)-.15 G .534(airs remo)-3.034 F -.15(ve)-.15 G 3.034(db).15 G
+3.034(yt)-3.034 G(he)-3.034 E F1(unset)3.034 E F0 .534(command, plus an)
+3.034 F 3.033(ya)-.15 G .533(dditions via the)-3.033 F F1(export)3.033 E
+F0(and)3.033 E F1(de-)3.033 E(clar)108 343.2 Q 2.5<65ad>-.18 G(x)-2.5 E
+F0(commands.)2.5 E .562(The en)108 360 R .562(vironment for an)-.4 F(y)
+-.15 E F2 .562(simple command)3.402 F F0 .563
(or function may be augmented temporarily by pre\214xing it with)3.833 F
-.202(parameter assignments, as described abo)108 679.2 R .502 -.15(ve i)
--.15 H(n).15 E F2 -.666(PA)2.702 G(RAMETERS).666 E/F5 9/Times-Roman@0 SF
-(.)A F0 .202(These assignment statements af)4.702 F .203(fect only the)
--.25 F(en)108 691.2 Q(vironment seen by that command.)-.4 E .81(If the)
-108 708 R F1<ad6b>3.31 E F0 .81(option is set \(see the)3.31 F F1(set)
-3.31 E F0 -.2(bu)3.31 G .81(iltin command belo).2 F .81(w\), then)-.25 F
-F3(all)3.64 E F0 .81(parameter assignments are placed in)3.82 F(the en)
-108 720 Q
+.203(parameter assignments, as described abo)108 372 R .502 -.15(ve i)
+-.15 H(n).15 E/F4 9/Times-Bold@0 SF -.666(PA)2.702 G(RAMETERS).666 E/F5
+9/Times-Roman@0 SF(.)A F0 .202(These assignment statements af)4.702 F
+.202(fect only the)-.25 F(en)108 384 Q(vironment seen by that command.)
+-.4 E .81(If the)108 400.8 R F1<ad6b>3.31 E F0 .81
+(option is set \(see the)3.31 F F1(set)3.31 E F0 -.2(bu)3.31 G .81
+(iltin command belo).2 F .81(w\), then)-.25 F F2(all)3.64 E F0 .81
+(parameter assignments are placed in)3.82 F(the en)108 412.8 Q
(vironment for a command, not just those that precede the command name.)
--.4 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(36)190.395 E 0 Cg
-EP
-%%Page: 37 37
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(When)108 84 Q/F1
-10/Times-Bold@0 SF(bash)3.585 E F0(in)3.585 E -.2(vo)-.4 G -.1(ke).2 G
-3.585(sa).1 G 3.585(ne)-3.585 G 1.085(xternal command, the v)-3.735 F
-(ariable)-.25 E F1(_)3.585 E F0 1.086
+-.4 E(When)108 429.6 Q F1(bash)3.586 E F0(in)3.586 E -.2(vo)-.4 G -.1
+(ke).2 G 3.586(sa).1 G 3.586(ne)-3.586 G 1.086(xternal command, the v)
+-3.736 F(ariable)-.25 E F1(_)3.586 E F0 1.085
(is set to the full \214lename of the command and)3.586 F
-(passed to that command in its en)108 96 Q(vironment.)-.4 E/F2 10.95
-/Times-Bold@0 SF(EXIT ST)72 112.8 Q -1.04(AT)-.986 G(US)1.04 E F0 .151
-(The e)108 124.8 R .151(xit status of an e)-.15 F -.15(xe)-.15 G .151
-(cuted command is the v).15 F .15(alue returned by the)-.25 F/F3 10
-/Times-Italic@0 SF(waitpid)2.65 E F0 .15(system call or equi)2.65 F -.25
-(va)-.25 G .15(lent func-).25 F 2.847(tion. Exit)108 136.8 R .347
-(statuses f)2.847 F .347(all between 0 and 255, though, as e)-.1 F .347
-(xplained belo)-.15 F 1.647 -.65(w, t)-.25 H .347(he shell may use v).65
-F .348(alues abo)-.25 F .648 -.15(ve 1)-.15 H(25).15 E(specially)108
-148.8 Q 5.507(.E)-.65 G .507(xit statuses from shell b)-5.507 F .507
+(passed to that command in its en)108 441.6 Q(vironment.)-.4 E F3
+(EXIT ST)72 458.4 Q -1.04(AT)-.986 G(US)1.04 E F0 .15(The e)108 470.4 R
+.15(xit status of an e)-.15 F -.15(xe)-.15 G .15(cuted command is the v)
+.15 F .151(alue returned by the)-.25 F F2(waitpid)2.651 E F0 .151
+(system call or equi)2.651 F -.25(va)-.25 G .151(lent func-).25 F 2.848
+(tion. Exit)108 482.4 R .348(statuses f)2.848 F .347
+(all between 0 and 255, though, as e)-.1 F .347(xplained belo)-.15 F
+1.647 -.65(w, t)-.25 H .347(he shell may use v).65 F .347(alues abo)-.25
+F .647 -.15(ve 1)-.15 H(25).15 E(specially)108 494.4 Q 5.506(.E)-.65 G
+.506(xit statuses from shell b)-5.506 F .507
(uiltins and compound commands are also limited to this range.)-.2 F
-(Under)5.506 E(certain circumstances, the shell will use special v)108
-160.8 Q(alues to indicate speci\214c f)-.25 E(ailure modes.)-.1 E -.15
-(Fo)108 177.6 S 3.372(rt).15 G .872(he shell')-3.372 F 3.372(sp)-.55 G
-.873(urposes, a command which e)-3.372 F .873(xits with a zero e)-.15 F
-.873(xit status has succeeded.)-.15 F .873(An e)5.873 F .873
-(xit status of)-.15 F .049(zero indicates success.)108 189.6 R 2.549(An)
-5.049 G .049(on-zero e)-2.549 F .049(xit status indicates f)-.15 F 2.549
-(ailure. When)-.1 F 2.549(ac)2.549 G .048(ommand terminates on a f)
--2.549 F .048(atal sig-)-.1 F(nal)108 201.6 Q F3(N)2.5 E F0(,)A F1(bash)
-2.5 E F0(uses the v)2.5 E(alue of 128+)-.25 E F3(N)A F0(as the e)2.5 E
-(xit status.)-.15 E .404
-(If a command is not found, the child process created to e)108 218.4 R
--.15(xe)-.15 G .404(cute it returns a status of 127.).15 F .405
-(If a command is)5.405 F(found b)108 230.4 Q(ut is not e)-.2 E -.15(xe)
--.15 G(cutable, the return status is 126.).15 E(If a command f)108 247.2
+(Under)5.507 E(certain circumstances, the shell will use special v)108
+506.4 Q(alues to indicate speci\214c f)-.25 E(ailure modes.)-.1 E -.15
+(Fo)108 523.2 S 3.373(rt).15 G .873(he shell')-3.373 F 3.373(sp)-.55 G
+.873(urposes, a command which e)-3.373 F .873(xits with a zero e)-.15 F
+.873(xit status has succeeded.)-.15 F .872(An e)5.872 F .872
+(xit status of)-.15 F .048(zero indicates success.)108 535.2 R 2.548(An)
+5.048 G .049(on-zero e)-2.548 F .049(xit status indicates f)-.15 F 2.549
+(ailure. When)-.1 F 2.549(ac)2.549 G .049(ommand terminates on a f)
+-2.549 F .049(atal sig-)-.1 F(nal)108 547.2 Q F2(N)2.5 E F0(,)A F1(bash)
+2.5 E F0(uses the v)2.5 E(alue of 128+)-.25 E F2(N)A F0(as the e)2.5 E
+(xit status.)-.15 E .405
+(If a command is not found, the child process created to e)108 564 R
+-.15(xe)-.15 G .404(cute it returns a status of 127.).15 F .404
+(If a command is)5.404 F(found b)108 576 Q(ut is not e)-.2 E -.15(xe)
+-.15 G(cutable, the return status is 126.).15 E(If a command f)108 592.8
Q(ails because of an error during e)-.1 E
(xpansion or redirection, the e)-.15 E(xit status is greater than zero.)
--.15 E .081(Shell b)108 264 R .081
-(uiltin commands return a status of 0 \()-.2 F F3(true)A F0 2.581(\)i)C
-2.581(fs)-2.581 G .08(uccessful, and non-zero \()-2.581 F F3(false)A F0
-2.58(\)i)C 2.58(fa)-2.58 G 2.58(ne)-2.58 G .08(rror occurs while)-2.58 F
-(the)108 276 Q 2.967(ye)-.15 G -.15(xe)-3.117 G 2.967(cute. All).15 F
--.2(bu)2.967 G .467(iltins return an e).2 F .468
+-.15 E .08(Shell b)108 609.6 R .08
+(uiltin commands return a status of 0 \()-.2 F F2(true)A F0 2.581(\)i)C
+2.581(fs)-2.581 G .081(uccessful, and non-zero \()-2.581 F F2(false)A F0
+2.581(\)i)C 2.581(fa)-2.581 G 2.581(ne)-2.581 G .081(rror occurs while)
+-2.581 F(the)108 621.6 Q 2.968(ye)-.15 G -.15(xe)-3.118 G 2.968
+(cute. All).15 F -.2(bu)2.968 G .468(iltins return an e).2 F .468
(xit status of 2 to indicate incorrect usage, generally in)-.15 F -.25
-(va)-.4 G .468(lid options or).25 F(missing ar)108 288 Q(guments.)-.18 E
-F1(Bash)108 304.8 Q F0 .202(itself returns the e)2.702 F .202
-(xit status of the last command e)-.15 F -.15(xe)-.15 G .201
-(cuted, unless a syntax error occurs, in which case).15 F(it e)108 316.8
+(va)-.4 G .467(lid options or).25 F(missing ar)108 633.6 Q(guments.)-.18
+E(The e)108 650.4 Q(xit status of the last command is a)-.15 E -.25(va)
+-.2 G(ilable in the special parameter $?.).25 E F1(Bash)108 667.2 Q F0
+.201(itself returns the e)2.701 F .202(xit status of the last command e)
+-.15 F -.15(xe)-.15 G .202
+(cuted, unless a syntax error occurs, in which case).15 F(it e)108 679.2
Q(xits with a non-zero v)-.15 E 2.5(alue. See)-.25 F(also the)2.5 E F1
-(exit)2.5 E F0 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G F2
-(SIGN)72 333.6 Q(ALS)-.219 E F0(When)108 345.6 Q F1(bash)2.502 E F0 .002
+(exit)2.5 E F0 -.2(bu)2.5 G(iltin command belo).2 E -.65(w.)-.25 G F3
+(SIGN)72 696 Q(ALS)-.219 E F0(When)108 708 Q F1(bash)2.503 E F0 .002
(is interacti)2.502 F -.15(ve)-.25 G 2.502(,i).15 G 2.502(nt)-2.502 G
.002(he absence of an)-2.502 F 2.502(yt)-.15 G .002(raps, it ignores)
--2.502 F/F4 9/Times-Bold@0 SF(SIGTERM)2.502 E F0 .002(\(so that)2.252 F
-F1 .002(kill 0)2.502 F F0 .002(does not kill an in-)2.502 F(teracti)108
-357.6 Q 1.216 -.15(ve s)-.25 H .916(hell\), and).15 F F4(SIGINT)3.416 E
-F0 .915(is caught and handled \(so that the)3.166 F F1(wait)3.415 E F0
--.2(bu)3.415 G .915(iltin is interruptible\).).2 F .915(In all cases,)
-5.915 F F1(bash)108 369.6 Q F0(ignores)2.5 E F4(SIGQ)2.5 E(UIT)-.09 E/F5
-9/Times-Roman@0 SF(.)A F0(If job control is in ef)4.5 E(fect,)-.25 E F1
-(bash)2.5 E F0(ignores)2.5 E F4(SIGTTIN)2.5 E F5(,)A F4(SIGTT)2.25 E(OU)
--.162 E F5(,)A F0(and)2.25 E F4(SIGTSTP)2.5 E F5(.)A F0(Non-b)108 386.4
-Q 1.064(uiltin commands run by)-.2 F F1(bash)3.564 E F0(ha)3.564 E 1.365
--.15(ve s)-.2 H 1.065(ignal handlers set to the v).15 F 1.065
-(alues inherited by the shell from its)-.25 F 3.248(parent. When)108
-398.4 R .748(job control is not in ef)3.248 F .747
-(fect, asynchronous commands ignore)-.25 F F4(SIGINT)3.247 E F0(and)
-2.997 E F4(SIGQ)3.247 E(UIT)-.09 E F0 .747(in addi-)2.997 F .652
-(tion to these inherited handlers.)108 410.4 R .653
-(Commands run as a result of command substitution ignore the k)5.652 F
--.15(ey)-.1 G(board-).15 E(generated job control signals)108 422.4 Q F4
-(SIGTTIN)2.5 E F5(,)A F4(SIGTT)2.25 E(OU)-.162 E F5(,)A F0(and)2.25 E F4
-(SIGTSTP)2.5 E F5(.)A F0 2.046(The shell e)108 439.2 R 2.046
-(xits by def)-.15 F 2.045(ault upon receipt of a)-.1 F F4(SIGHUP)4.545 E
-F5(.)A F0 2.045(Before e)6.545 F 2.045(xiting, an interacti)-.15 F 2.345
--.15(ve s)-.25 H 2.045(hell resends the).15 F F4(SIGHUP)108 451.2 Q F0
-1.004(to all jobs, running or stopped.)3.254 F 1.004
-(Stopped jobs are sent)6.004 F F4(SIGCONT)3.505 E F0 1.005
-(to ensure that the)3.255 F 3.505(yr)-.15 G(ecei)-3.505 E 1.305 -.15
-(ve t)-.25 H(he).15 E F4(SIGHUP)108 463.2 Q F5(.)A F0 2.53 -.8(To p)5.43
-H(re).8 E -.15(ve)-.25 G .93(nt the shell from sending the signal to a \
-particular job, it should be remo).15 F -.15(ve)-.15 G 3.429(df).15 G
-.929(rom the)-3.429 F 1.356(jobs table with the)108 475.2 R F1(diso)
-3.856 E(wn)-.1 E F0 -.2(bu)3.856 G 1.356(iltin \(see).2 F F4 1.356
-(SHELL B)3.856 F(UIL)-.09 E 1.356(TIN COMMANDS)-.828 F F0(belo)3.607 E
-1.357(w\) or mark)-.25 F 1.357(ed to not recei)-.1 F -.15(ve)-.25 G F4
-(SIGHUP)108 487.2 Q F0(using)2.25 E F1(diso)2.5 E(wn \255h)-.1 E F0(.)A
-.166(If the)108 504 R F1(huponexit)2.666 E F0 .166
+-2.502 F F4(SIGTERM)2.502 E F0 .002(\(so that)2.252 F F1 .002(kill 0)
+2.502 F F0 .002(does not kill an in-)2.502 F(teracti)108 720 Q 1.215
+-.15(ve s)-.25 H .915(hell\), and).15 F F4(SIGINT)3.415 E F0 .915
+(is caught and handled \(so that the)3.165 F F1(wait)3.415 E F0 -.2(bu)
+3.416 G .916(iltin is interruptible\).).2 F .916(In all cases,)5.916 F
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(38)185.115 E 0 Cg EP
+%%Page: 39 39
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(bash)108 84 Q F0(ignores)2.5 E/F2 9/Times-Bold@0 SF(SIGQ)2.5 E(UIT)
+-.09 E/F3 9/Times-Roman@0 SF(.)A F0(If job control is in ef)4.5 E(fect,)
+-.25 E F1(bash)2.5 E F0(ignores)2.5 E F2(SIGTTIN)2.5 E F3(,)A F2(SIGTT)
+2.25 E(OU)-.162 E F3(,)A F0(and)2.25 E F2(SIGTSTP)2.5 E F3(.)A F0(Non-b)
+108 100.8 Q 1.065(uiltin commands run by)-.2 F F1(bash)3.565 E F0(ha)
+3.565 E 1.365 -.15(ve s)-.2 H 1.065(ignal handlers set to the v).15 F
+1.064(alues inherited by the shell from its)-.25 F 3.247(parent. When)
+108 112.8 R .747(job control is not in ef)3.247 F .747
+(fect, asynchronous commands ignore)-.25 F F2(SIGINT)3.248 E F0(and)
+2.998 E F2(SIGQ)3.248 E(UIT)-.09 E F0 .748(in addi-)2.998 F .653
+(tion to these inherited handlers.)108 124.8 R .653
+(Commands run as a result of command substitution ignore the k)5.653 F
+-.15(ey)-.1 G(board-).15 E(generated job control signals)108 136.8 Q F2
+(SIGTTIN)2.5 E F3(,)A F2(SIGTT)2.25 E(OU)-.162 E F3(,)A F0(and)2.25 E F2
+(SIGTSTP)2.5 E F3(.)A F0 2.045(The shell e)108 153.6 R 2.045
+(xits by def)-.15 F 2.045(ault upon receipt of a)-.1 F F2(SIGHUP)4.545 E
+F3(.)A F0 2.045(Before e)6.545 F 2.045(xiting, an interacti)-.15 F 2.346
+-.15(ve s)-.25 H 2.046(hell resends the).15 F F2(SIGHUP)108 165.6 Q F0
+1.005(to all jobs, running or stopped.)3.255 F 1.004
+(Stopped jobs are sent)6.005 F F2(SIGCONT)3.504 E F0 1.004
+(to ensure that the)3.254 F 3.504(yr)-.15 G(ecei)-3.504 E 1.304 -.15
+(ve t)-.25 H(he).15 E F2(SIGHUP)108 177.6 Q F3(.)A F0 2.529 -.8(To p)
+5.429 H(re).8 E -.15(ve)-.25 G .93(nt the shell from sending the signal\
+ to a particular job, it should be remo).15 F -.15(ve)-.15 G 3.43(df).15
+G .93(rom the)-3.43 F 1.357(jobs table with the)108 189.6 R F1(diso)
+3.857 E(wn)-.1 E F0 -.2(bu)3.857 G 1.357(iltin \(see).2 F F2 1.356
+(SHELL B)3.856 F(UIL)-.09 E 1.356(TIN COMMANDS)-.828 F F0(belo)3.606 E
+1.356(w\) or mark)-.25 F 1.356(ed to not recei)-.1 F -.15(ve)-.25 G F2
+(SIGHUP)108 201.6 Q F0(using)2.25 E F1(diso)2.5 E(wn \255h)-.1 E F0(.)A
+.166(If the)108 218.4 R F1(huponexit)2.666 E F0 .166
(shell option has been set with)2.666 F F1(shopt)2.666 E F0(,)A F1(bash)
-2.666 E F0 .166(sends a)2.666 F F4(SIGHUP)2.666 E F0 .166
+2.666 E F0 .166(sends a)2.666 F F2(SIGHUP)2.666 E F0 .166
(to all jobs when an interacti)2.416 F -.15(ve)-.25 G(login shell e)108
-516 Q(xits.)-.15 E(If)108 532.8 Q F1(bash)3.046 E F0 .546(is w)3.046 F
+230.4 Q(xits.)-.15 E(If)108 247.2 Q F1(bash)3.047 E F0 .547(is w)3.047 F
.546(aiting for a command to complete and recei)-.1 F -.15(ve)-.25 G
3.046(sas).15 G .546(ignal for which a trap has been set, the trap)
--3.046 F .663(will not be e)108 544.8 R -.15(xe)-.15 G .663
+-3.046 F .662(will not be e)108 259.2 R -.15(xe)-.15 G .662
(cuted until the command completes.).15 F(When)5.663 E F1(bash)3.163 E
-F0 .662(is w)3.163 F .662(aiting for an asynchronous command)-.1 F .326
-(via the)108 556.8 R F1(wait)2.826 E F0 -.2(bu)2.826 G .327(iltin, the \
+F0 .663(is w)3.163 F .663(aiting for an asynchronous command)-.1 F .327
+(via the)108 271.2 R F1(wait)2.827 E F0 -.2(bu)2.827 G .327(iltin, the \
reception of a signal for which a trap has been set will cause the).2 F
-F1(wait)2.827 E F0 -.2(bu)2.827 G .327(iltin to re-).2 F
-(turn immediately with an e)108 568.8 Q
+F1(wait)2.826 E F0 -.2(bu)2.826 G .326(iltin to re-).2 F
+(turn immediately with an e)108 283.2 Q
(xit status greater than 128, immediately after which the trap is e)-.15
-E -.15(xe)-.15 G(cuted.).15 E F2(JOB CONTR)72 585.6 Q(OL)-.329 E F3 -.25
-(Jo)108 597.6 S 3.369(bc).25 G(ontr)-3.369 E(ol)-.45 E F0 .868
-(refers to the ability to selecti)3.879 F -.15(ve)-.25 G .868
-(ly stop \().15 F F3(suspend)A F0 3.368(\)t)C .868(he e)-3.368 F -.15
-(xe)-.15 G .868(cution of processes and continue \().15 F F3 -.37(re)C
-(-).37 E(sume)108 609.6 Q F0 2.664(\)t)C .164(heir e)-2.664 F -.15(xe)
--.15 G .164(cution at a later point.).15 F 2.665(Au)5.165 G .165
+E -.15(xe)-.15 G(cuted.).15 E .498(When job control is not enabled, and)
+108 300 R F1(bash)2.998 E F0 .498(is w)2.998 F .498(aiting for a fore)
+-.1 F .499(ground command to complete, the shell re-)-.15 F(cei)108 312
+Q -.15(ve)-.25 G 2.606(sk).15 G -.15(ey)-2.706 G .105
+(board-generated signals such as).15 F F2(SIGINT)2.605 E F0 .105
+(\(usually generated by)2.355 F F1(^C)2.605 E F0 2.605(\)t)C .105
+(hat users commonly intend to)-2.605 F .423(send to that command.)108
+324 R .424(This happens because the shell and the command are in the sa\
+me process group as)5.424 F(the terminal, and)108 336 Q F1(^C)2.5 E F0
+(sends)2.5 E F2(SIGINT)2.5 E F0(to all processes in that process group.)
+2.25 E(When)108 352.8 Q F1(bash)3.801 E F0 1.3
+(is running without job control enabled and recei)3.8 F -.15(ve)-.25 G
+(s).15 E F2(SIGINT)3.8 E F0 1.3(while w)3.55 F 1.3(aiting for a fore)-.1
+F(ground)-.15 E .809(command, it w)108 364.8 R .809
+(aits until that fore)-.1 F .81
+(ground command terminates and then decides what to do about the)-.15 F
+F2(SIG-)3.31 E(INT)108 376.8 Q F3(:)A F0(1.)108 393.6 Q .003
+(If the command terminates due to the)144 393.6 R F2(SIGINT)2.503 E F3
+(,)A F1(bash)2.252 E F0 .002
+(concludes that the user meant to end the entire)2.502 F
+(script, and acts on the)144 405.6 Q F2(SIGINT)2.5 E F0
+(\(e.g., by running a)2.25 E F2(SIGINT)2.5 E F0(trap or e)2.25 E
+(xiting itself\);)-.15 E(2.)108 422.4 Q .288
+(If the command does not terminate due to)144 422.4 R F2(SIGINT)2.788 E
+F3(,)A F0 .288(the program handled the)2.538 F F2(SIGINT)2.789 E F0 .289
+(itself and did)2.539 F .728(not treat it as a f)144 434.4 R .728
+(atal signal.)-.1 F .728(In that case,)5.728 F F1(bash)3.228 E F0 .728
+(does not treat)3.228 F F2(SIGINT)3.228 E F0 .728(as a f)2.978 F .728
+(atal signal, either)-.1 F 3.228(,i)-.4 G(n-)-3.228 E .771
+(stead assuming that the)144 446.4 R F2(SIGINT)3.271 E F0 -.1(wa)3.021 G
+3.271(su).1 G .771(sed as part of the program')-3.271 F 3.272(sn)-.55 G
+.772(ormal operation \(e.g., emacs)-3.272 F .41
+(uses it to abort editing commands\) or deliberately discarded.)144
+458.4 R(Ho)5.409 E(we)-.25 E -.15(ve)-.25 G -.4(r,).15 G F1(bash)3.309 E
+F0 .409(will run an)2.909 F 2.909(yt)-.15 G .409(rap set)-2.909 F(on)144
+470.4 Q F2(SIGINT)3.788 E F3(,)A F0 1.288(as it does with an)3.538 F
+3.788(yo)-.15 G 1.288(ther trapped signal it recei)-3.788 F -.15(ve)-.25
+G 3.789(sw).15 G 1.289(hile it is w)-3.789 F 1.289(aiting for the fore-)
+-.1 F(ground command to complete, for compatibility)144 482.4 Q(.)-.65 E
+/F4 10.95/Times-Bold@0 SF(JOB CONTR)72 499.2 Q(OL)-.329 E/F5 10
+/Times-Italic@0 SF -.25(Jo)108 511.2 S 3.369(bc).25 G(ontr)-3.369 E(ol)
+-.45 E F0 .868(refers to the ability to selecti)3.879 F -.15(ve)-.25 G
+.868(ly stop \().15 F F5(suspend)A F0 3.368(\)t)C .868(he e)-3.368 F
+-.15(xe)-.15 G .868(cution of processes and continue \().15 F F5 -.37
+(re)C(-).37 E(sume)108 523.2 Q F0 2.664(\)t)C .164(heir e)-2.664 F -.15
+(xe)-.15 G .164(cution at a later point.).15 F 2.665(Au)5.165 G .165
(ser typically emplo)-2.665 F .165(ys this f)-.1 F .165
(acility via an interacti)-.1 F .465 -.15(ve i)-.25 H(nterf).15 E .165
-(ace sup-)-.1 F(plied jointly by the operating system k)108 621.6 Q
+(ace sup-)-.1 F(plied jointly by the operating system k)108 535.2 Q
(ernel')-.1 E 2.5(st)-.55 G(erminal dri)-2.5 E -.15(ve)-.25 G 2.5(ra).15
-G(nd)-2.5 E F1(bash)2.5 E F0(.)A .785(The shell associates a)108 638.4 R
-F3(job)5.025 E F0 .785(with each pipeline.)3.515 F .784(It k)5.785 F
+G(nd)-2.5 E F1(bash)2.5 E F0(.)A .785(The shell associates a)108 552 R
+F5(job)5.025 E F0 .785(with each pipeline.)3.515 F .784(It k)5.785 F
.784(eeps a table of currently e)-.1 F -.15(xe)-.15 G .784
-(cuting jobs, which may be).15 F .324(listed with the)108 650.4 R F1
-(jobs)2.824 E F0 2.824(command. When)2.824 F F1(bash)2.825 E F0 .325
-(starts a job asynchronously \(in the)2.825 F F3(bac)3.095 E(kgr)-.2 E
-(ound)-.45 E F0 .325(\), it prints a line).77 F(that looks lik)108 662.4
-Q(e:)-.1 E([1] 25647)144 679.2 Q .241(indicating that this job is job n\
-umber 1 and that the process ID of the last process in the pipeline ass\
-ociated)108 696 R .732(with this job is 25647.)108 708 R .733
+(cuting jobs, which may be).15 F .324(listed with the)108 564 R F1(jobs)
+2.824 E F0 2.824(command. When)2.824 F F1(bash)2.825 E F0 .325
+(starts a job asynchronously \(in the)2.825 F F5(bac)3.095 E(kgr)-.2 E
+(ound)-.45 E F0 .325(\), it prints a line).77 F(that looks lik)108 576 Q
+(e:)-.1 E([1] 25647)144 592.8 Q .241(indicating that this job is job nu\
+mber 1 and that the process ID of the last process in the pipeline asso\
+ciated)108 609.6 R .732(with this job is 25647.)108 621.6 R .733
(All of the processes in a single pipeline are members of the same job)
-5.732 F(.)-.4 E F1(Bash)5.733 E F0(uses)3.233 E(the)108 720 Q F3(job)
-4.24 E F0(abstraction as the basis for job control.)2.73 E(GNU Bash 5.1)
-72 768 Q(2020 October 29)141.235 E(37)190.395 E 0 Cg EP
-%%Page: 38 38
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 1.982 -.8(To f)108
-84 T .382(acilitate the implementation of the user interf).7 F .382
-(ace to job control, the operating system maintains the no-)-.1 F 1.537
-(tion of a)108 96 R/F1 10/Times-Italic@0 SF(curr)4.037 E 1.537
-(ent terminal pr)-.37 F 1.537(ocess gr)-.45 F 1.537(oup ID)-.45 F F0
-6.537(.M)C 1.538(embers of this process group \(processes whose process)
--6.537 F .023
+5.732 F(.)-.4 E F1(Bash)5.733 E F0(uses)3.233 E(the)108 633.6 Q F5(job)
+4.24 E F0(abstraction as the basis for job control.)2.73 E 1.982 -.8
+(To f)108 650.4 T .382(acilitate the implementation of the user interf)
+.7 F .382(ace to job control, the operating system maintains the no-)-.1
+F 1.537(tion of a)108 662.4 R F5(curr)4.037 E 1.537(ent terminal pr)-.37
+F 1.537(ocess gr)-.45 F 1.537(oup ID)-.45 F F0 6.537(.M)C 1.538
+(embers of this process group \(processes whose process)-6.537 F .023
(group ID is equal to the current terminal process group ID\) recei)108
-108 R .323 -.15(ve k)-.25 H -.15(ey).05 G .023
-(board-generated signals such as).15 F/F2 9/Times-Bold@0 SF(SIG-)2.522 E
-(INT)108 120 Q/F3 9/Times-Roman@0 SF(.)A F0 1.215
-(These processes are said to be in the)5.715 F F1(for)5.685 E -.4(eg)
--.37 G -.45(ro).4 G(und).45 E F0(.).77 E F1(Bac)6.795 E(kgr)-.2 E(ound)
--.45 E F0 1.216(processes are those whose process)4.485 F .146
-(group ID dif)108 132 R .146(fers from the terminal')-.25 F .146
+674.4 R .323 -.15(ve k)-.25 H -.15(ey).05 G .023
+(board-generated signals such as).15 F F2(SIG-)2.522 E(INT)108 686.4 Q
+F3(.)A F0 1.215(These processes are said to be in the)5.715 F F5(for)
+5.685 E -.4(eg)-.37 G -.45(ro).4 G(und).45 E F0(.).77 E F5(Bac)6.795 E
+(kgr)-.2 E(ound)-.45 E F0 1.216(processes are those whose process)4.485
+F .146(group ID dif)108 698.4 R .146(fers from the terminal')-.25 F .146
(s; such processes are immune to k)-.55 F -.15(ey)-.1 G .145
(board-generated signals.).15 F .145(Only fore-)5.145 F .16
-(ground processes are allo)108 144 R .16(wed to read from or)-.25 F 2.66
-(,i)-.4 G 2.66(ft)-2.66 G .16(he user so speci\214es with)-2.66 F/F4 10
-/Courier@0 SF .16(stty tostop)2.66 F F0 2.66(,w)C .16(rite to the ter)
--2.66 F(-)-.2 E 3.052(minal. Background)108 156 R .551
-(processes which attempt to read from \(write to when)3.052 F F4 .551
+(ground processes are allo)108 710.4 R .16(wed to read from or)-.25 F
+2.66(,i)-.4 G 2.66(ft)-2.66 G .16(he user so speci\214es with)-2.66 F/F6
+10/Courier@0 SF .16(stty tostop)2.66 F F0 2.66(,w)C .16(rite to the ter)
+-2.66 F(-)-.2 E 3.052(minal. Background)108 722.4 R .551
+(processes which attempt to read from \(write to when)3.052 F F6 .551
(stty tostop)3.051 F F0 .551(is in ef)3.051 F .551(fect\) the)-.25 F
-.717(terminal are sent a)108 168 R F2 .717(SIGTTIN \(SIGTT)3.217 F(OU\))
--.162 E F0 .718(signal by the k)2.967 F(ernel')-.1 E 3.218(st)-.55 G
-.718(erminal dri)-3.218 F -.15(ve)-.25 G 1.518 -.4(r, w).15 H .718
-(hich, unless caught, sus-).4 F(pends the process.)108 180 Q 1.088
-(If the operating system on which)108 196.8 R/F5 10/Times-Bold@0 SF
-(bash)3.588 E F0 1.088(is running supports job control,)3.588 F F5(bash)
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(39)185.115 E 0 Cg EP
+%%Page: 40 40
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .717
+(terminal are sent a)108 84 R/F1 9/Times-Bold@0 SF .717(SIGTTIN \(SIGTT)
+3.217 F(OU\))-.162 E F0 .718(signal by the k)2.967 F(ernel')-.1 E 3.218
+(st)-.55 G .718(erminal dri)-3.218 F -.15(ve)-.25 G 1.518 -.4(r, w).15 H
+.718(hich, unless caught, sus-).4 F(pends the process.)108 96 Q 1.088
+(If the operating system on which)108 112.8 R/F2 10/Times-Bold@0 SF
+(bash)3.588 E F0 1.088(is running supports job control,)3.588 F F2(bash)
3.587 E F0 1.087(contains f)3.587 F 1.087(acilities to use it.)-.1 F -.8
-(Ty)108 208.8 S .301(ping the).8 F F1(suspend)3.141 E F0 .301
-(character \(typically)3.571 F F5(^Z)2.801 E F0 2.801(,C)C .301
+(Ty)108 124.8 S .301(ping the).8 F/F3 10/Times-Italic@0 SF(suspend)3.141
+E F0 .301(character \(typically)3.571 F F2(^Z)2.801 E F0 2.801(,C)C .301
(ontrol-Z\) while a process is running causes that process to be)-2.801
-F 2.143(stopped and returns control to)108 220.8 R F5(bash)4.642 E F0
-7.142(.T)C 2.142(yping the)-7.942 F F1 2.142(delayed suspend)4.992 F F0
-2.142(character \(typically)5.412 F F5(^Y)4.642 E F0 4.642(,C)C
+F 2.143(stopped and returns control to)108 136.8 R F2(bash)4.642 E F0
+7.142(.T)C 2.142(yping the)-7.942 F F3 2.142(delayed suspend)4.992 F F0
+2.142(character \(typically)5.412 F F2(^Y)4.642 E F0 4.642(,C)C
(ontrol-Y\))-4.642 E .021(causes the process to be stopped when it atte\
mpts to read input from the terminal, and control to be returned)108
-232.8 R(to)108 244.8 Q F5(bash)3.392 E F0 5.892(.T)C .892
+148.8 R(to)108 160.8 Q F2(bash)3.392 E F0 5.892(.T)C .892
(he user may then manipulate the state of this job, using the)-5.892 F
-F5(bg)3.392 E F0 .892(command to continue it in the)3.392 F .17
-(background, the)108 256.8 R F5(fg)2.67 E F0 .17
-(command to continue it in the fore)2.67 F .17(ground, or the)-.15 F F5
-(kill)2.67 E F0 .17(command to kill it.)2.67 F(A)5.17 E F5(^Z)2.67 E F0
-(tak)2.67 E .17(es ef-)-.1 F 1.419(fect immediately)108 268.8 R 3.919
+F2(bg)3.392 E F0 .892(command to continue it in the)3.392 F .17
+(background, the)108 172.8 R F2(fg)2.67 E F0 .17
+(command to continue it in the fore)2.67 F .17(ground, or the)-.15 F F2
+(kill)2.67 E F0 .17(command to kill it.)2.67 F(A)5.17 E F2(^Z)2.67 E F0
+(tak)2.67 E .17(es ef-)-.1 F 1.419(fect immediately)108 184.8 R 3.919
(,a)-.65 G 1.418(nd has the additional side ef)-3.919 F 1.418
(fect of causing pending output and typeahead to be dis-)-.25 F(carded.)
-108 280.8 Q .777(There are a number of w)108 297.6 R .777
-(ays to refer to a job in the shell.)-.1 F .777(The character)5.777 F F5
-(%)3.277 E F0 .777(introduces a job speci\214cation)3.277 F(\()108 309.6
-Q F1(jobspec)A F0 3.458(\). Job)B(number)3.458 E F1(n)3.818 E F0 .957
-(may be referred to as)3.697 F F5(%n)3.457 E F0 5.957(.A)C .957
+108 196.8 Q .777(There are a number of w)108 213.6 R .777
+(ays to refer to a job in the shell.)-.1 F .777(The character)5.777 F F2
+(%)3.277 E F0 .777(introduces a job speci\214cation)3.277 F(\()108 225.6
+Q F3(jobspec)A F0 3.458(\). Job)B(number)3.458 E F3(n)3.818 E F0 .957
+(may be referred to as)3.697 F F2(%n)3.457 E F0 5.957(.A)C .957
(job may also be referred to using a pre\214x of the)-2.5 F .59(name us\
ed to start it, or using a substring that appears in its command line.)
-108 321.6 R -.15(Fo)5.59 G 3.09(re).15 G(xample,)-3.24 E F5(%ce)3.09 E
+108 237.6 R -.15(Fo)5.59 G 3.09(re).15 G(xample,)-3.24 E F2(%ce)3.09 E
F0 .59(refers to a)3.09 F .385(stopped job whose command name be)108
-333.6 R .385(gins with)-.15 F F5(ce)2.885 E F0 5.385(.I)C 2.885(fap)
--5.385 G .385(re\214x matches more than one job,)-2.885 F F5(bash)2.885
-E F0 .385(reports an)2.885 F(error)108 345.6 Q 5.194(.U)-.55 G(sing)
--5.194 E F5(%?ce)2.694 E F0 2.694(,o)C 2.694(nt)-2.694 G .194
+249.6 R .385(gins with)-.15 F F2(ce)2.885 E F0 5.385(.I)C 2.885(fap)
+-5.385 G .385(re\214x matches more than one job,)-2.885 F F2(bash)2.885
+E F0 .385(reports an)2.885 F(error)108 261.6 Q 5.194(.U)-.55 G(sing)
+-5.194 E F2(%?ce)2.694 E F0 2.694(,o)C 2.694(nt)-2.694 G .194
(he other hand, refers to an)-2.694 F 2.694(yj)-.15 G .194
-(ob containing the string)-2.694 F F5(ce)2.694 E F0 .194
+(ob containing the string)-2.694 F F2(ce)2.694 E F0 .194
(in its command line.)2.694 F .194(If the)5.194 F .306
-(substring matches more than one job,)108 357.6 R F5(bash)2.806 E F0
+(substring matches more than one job,)108 273.6 R F2(bash)2.806 E F0
.306(reports an error)2.806 F 5.306(.T)-.55 G .306(he symbols)-5.306 F
-F5(%%)2.806 E F0(and)2.806 E F5(%+)2.806 E F0 .306(refer to the shell')
-2.806 F(s)-.55 E .132(notion of the)108 369.6 R F1(curr)2.832 E .133
+F2(%%)2.806 E F0(and)2.806 E F2(%+)2.806 E F0 .306(refer to the shell')
+2.806 F(s)-.55 E .132(notion of the)108 285.6 R F3(curr)2.832 E .133
(ent job)-.37 F F0 2.633(,w).23 G .133
(hich is the last job stopped while it w)-2.633 F .133(as in the fore)
-.1 F .133(ground or started in the back-)-.15 F 2.576(ground. The)108
-381.6 R F1(pr)3.826 E -.15(ev)-.37 G .076(ious job).15 F F0 .076
-(may be referenced using)2.806 F F5<25ad>2.576 E F0 5.076(.I)C 2.576(ft)
--5.076 G .075(here is only a single job,)-2.576 F F5(%+)2.575 E F0(and)
-2.575 E F5<25ad>2.575 E F0 .075(can both)2.575 F .317
-(be used to refer to that job)108 393.6 R 5.317(.I)-.4 G 2.817(no)-5.317
-G .317(utput pertaining to jobs \(e.g., the output of the)-2.817 F F5
+297.6 R F3(pr)3.826 E -.15(ev)-.37 G .076(ious job).15 F F0 .076
+(may be referenced using)2.806 F F2<25ad>2.576 E F0 5.076(.I)C 2.576(ft)
+-5.076 G .075(here is only a single job,)-2.576 F F2(%+)2.575 E F0(and)
+2.575 E F2<25ad>2.575 E F0 .075(can both)2.575 F .317
+(be used to refer to that job)108 309.6 R 5.317(.I)-.4 G 2.817(no)-5.317
+G .317(utput pertaining to jobs \(e.g., the output of the)-2.817 F F2
(jobs)2.817 E F0 .317(command\), the current)2.817 F .033(job is al)108
-405.6 R -.1(wa)-.1 G .033(ys \215agged with a).1 F F5(+)2.533 E F0 2.533
-(,a)C .033(nd the pre)-2.533 F .033(vious job with a)-.25 F F5<ad>2.533
+321.6 R -.1(wa)-.1 G .033(ys \215agged with a).1 F F2(+)2.533 E F0 2.533
+(,a)C .033(nd the pre)-2.533 F .033(vious job with a)-.25 F F2<ad>2.533
E F0 5.033(.A)C .033(single % \(with no accompan)-2.5 F .032
(ying job speci-)-.15 F(\214cation\) also refers to the current job)108
-417.6 Q(.)-.4 E .443
-(Simply naming a job can be used to bring it into the fore)108 434.4 R
-(ground:)-.15 E F5(%1)2.944 E F0 .444(is a synon)2.944 F .444(ym for)
--.15 F F5 -.63(``)2.944 G .444(fg %1').63 F(')-.63 E F0 2.944(,b)C
+333.6 Q(.)-.4 E .443
+(Simply naming a job can be used to bring it into the fore)108 350.4 R
+(ground:)-.15 E F2(%1)2.944 E F0 .444(is a synon)2.944 F .444(ym for)
+-.15 F F2 -.63(``)2.944 G .444(fg %1').63 F(')-.63 E F0 2.944(,b)C
(ringing)-2.944 E 1.473(job 1 from the background into the fore)108
-446.4 R 3.973(ground. Similarly)-.15 F(,)-.65 E F5 -.63(``)3.972 G 1.472
+362.4 R 3.973(ground. Similarly)-.15 F(,)-.65 E F2 -.63(``)3.972 G 1.472
(%1 &').63 F(')-.63 E F0 1.472(resumes job 1 in the background,)3.972 F
-(equi)108 458.4 Q -.25(va)-.25 G(lent to).25 E F5 -.63(``)2.5 G(bg %1')
-.63 E(')-.63 E F0(.)A .13(The shell learns immediately whene)108 475.2 R
+(equi)108 374.4 Q -.25(va)-.25 G(lent to).25 E F2 -.63(``)2.5 G(bg %1')
+.63 E(')-.63 E F0(.)A .13(The shell learns immediately whene)108 391.2 R
-.15(ve)-.25 G 2.63(raj).15 G .13(ob changes state.)-2.63 F(Normally)
-5.131 E(,)-.65 E F5(bash)2.631 E F0 -.1(wa)2.631 G .131
+5.131 E(,)-.65 E F2(bash)2.631 E F0 -.1(wa)2.631 G .131
(its until it is about to print a).1 F .158
-(prompt before reporting changes in a job')108 487.2 R 2.658(ss)-.55 G
+(prompt before reporting changes in a job')108 403.2 R 2.658(ss)-.55 G
.158(tatus so as to not interrupt an)-2.658 F 2.657(yo)-.15 G .157
-(ther output.)-2.657 F .157(If the)5.157 F F5<ad62>2.657 E F0 .157
-(option to)2.657 F(the)108 499.2 Q F5(set)2.647 E F0 -.2(bu)2.647 G .147
-(iltin command is enabled,).2 F F5(bash)2.647 E F0 .148
+(ther output.)-2.657 F .157(If the)5.157 F F2<ad62>2.657 E F0 .157
+(option to)2.657 F(the)108 415.2 Q F2(set)2.647 E F0 -.2(bu)2.647 G .147
+(iltin command is enabled,).2 F F2(bash)2.647 E F0 .148
(reports such changes immediately)2.648 F 5.148(.A)-.65 G .448 -.15
-(ny t)-5.148 H .148(rap on).15 F F2(SIGCHLD)2.648 E F0 .148(is e)2.398 F
--.15(xe)-.15 G(-).15 E(cuted for each child that e)108 511.2 Q(xits.)
--.15 E .033(If an attempt to e)108 528 R(xit)-.15 E F5(bash)2.533 E F0
+(ny t)-5.148 H .148(rap on).15 F F1(SIGCHLD)2.648 E F0 .148(is e)2.398 F
+-.15(xe)-.15 G(-).15 E(cuted for each child that e)108 427.2 Q(xits.)
+-.15 E .033(If an attempt to e)108 444 R(xit)-.15 E F2(bash)2.533 E F0
.033(is made while jobs are stopped \(or)2.533 F 2.532(,i)-.4 G 2.532
-(ft)-2.532 G(he)-2.532 E F5(checkjobs)2.532 E F0 .032
-(shell option has been enabled)2.532 F 1.002(using the)108 540 R F5
+(ft)-2.532 G(he)-2.532 E F2(checkjobs)2.532 E F0 .032
+(shell option has been enabled)2.532 F 1.002(using the)108 456 R F2
(shopt)3.502 E F0 -.2(bu)3.502 G 1.002
(iltin, running\), the shell prints a w).2 F 1.002
-(arning message, and, if the)-.1 F F5(checkjobs)3.503 E F0 1.003
+(arning message, and, if the)-.1 F F2(checkjobs)3.503 E F0 1.003
(option is en-)3.503 F .956(abled, lists the jobs and their statuses.)
-108 552 R(The)5.955 E F5(jobs)3.455 E F0 .955
+108 468 R(The)5.955 E F2(jobs)3.455 E F0 .955
(command may then be used to inspect their status.)3.455 F .955(If a)
-5.955 F .603(second attempt to e)108 564 R .604
+5.955 F .603(second attempt to e)108 480 R .604
(xit is made without an interv)-.15 F .604
(ening command, the shell does not print another w)-.15 F(arning,)-.1 E
-(and an)108 576 Q 2.5(ys)-.15 G(topped jobs are terminated.)-2.5 E .645
-(When the shell is w)108 592.8 R .645
-(aiting for a job or process using the)-.1 F F5(wait)3.144 E F0 -.2(bu)
-3.144 G .644(iltin, and job control is enabled,).2 F F5(wait)3.144 E F0
-(will)3.144 E .282(return when the job changes state. The)108 604.8 R F5
-<ad66>2.782 E F0 .282(option causes)2.782 F F5(wait)2.782 E F0 .282
+(and an)108 492 Q 2.5(ys)-.15 G(topped jobs are terminated.)-2.5 E .645
+(When the shell is w)108 508.8 R .645
+(aiting for a job or process using the)-.1 F F2(wait)3.144 E F0 -.2(bu)
+3.144 G .644(iltin, and job control is enabled,).2 F F2(wait)3.144 E F0
+(will)3.144 E .282(return when the job changes state. The)108 520.8 R F2
+<ad66>2.782 E F0 .282(option causes)2.782 F F2(wait)2.782 E F0 .282
(to w)2.782 F .282(ait until the job or process terminates be-)-.1 F
-(fore returning.)108 616.8 Q/F6 10.95/Times-Bold@0 SF(PR)72 633.6 Q
-(OMPTING)-.329 E F0 .645(When e)108 645.6 R -.15(xe)-.15 G .645
-(cuting interacti).15 F -.15(ve)-.25 G(ly).15 E(,)-.65 E F5(bash)3.145 E
-F0 .645(displays the primary prompt)3.145 F F2(PS1)3.145 E F0 .645
+(fore returning.)108 532.8 Q/F4 10.95/Times-Bold@0 SF(PR)72 549.6 Q
+(OMPTING)-.329 E F0 .645(When e)108 561.6 R -.15(xe)-.15 G .645
+(cuting interacti).15 F -.15(ve)-.25 G(ly).15 E(,)-.65 E F2(bash)3.145 E
+F0 .645(displays the primary prompt)3.145 F F1(PS1)3.145 E F0 .645
(when it is ready to read a command,)2.895 F .427
-(and the secondary prompt)108 657.6 R F2(PS2)2.927 E F0 .427
-(when it needs more input to complete a command.)2.677 F F5(Bash)5.428 E
-F0(displays)2.928 E F2(PS0)2.928 E F0(after)2.678 E .038
-(it reads a command b)108 669.6 R .038(ut before e)-.2 F -.15(xe)-.15 G
-.038(cuting it.).15 F F5(Bash)5.038 E F0(displays)2.537 E F2(PS4)2.537 E
+(and the secondary prompt)108 573.6 R F1(PS2)2.927 E F0 .427
+(when it needs more input to complete a command.)2.677 F F2(Bash)5.428 E
+F0(displays)2.928 E F1(PS0)2.928 E F0(after)2.678 E .038
+(it reads a command b)108 585.6 R .038(ut before e)-.2 F -.15(xe)-.15 G
+.038(cuting it.).15 F F2(Bash)5.038 E F0(displays)2.537 E F1(PS4)2.537 E
F0 .037(as described abo)2.287 F .337 -.15(ve b)-.15 H .037
-(efore tracing each com-).15 F 1.121(mand when the)108 681.6 R F5<ad78>
-3.621 E F0 1.122(option is enabled.)3.621 F F5(Bash)6.122 E F0(allo)
+(efore tracing each com-).15 F 1.121(mand when the)108 597.6 R F2<ad78>
+3.621 E F0 1.122(option is enabled.)3.621 F F2(Bash)6.122 E F0(allo)
3.622 E 1.122(ws these prompt strings to be customized by inserting a)
-.25 F(number of backslash-escaped special characters that are decoded \
-as follo)108 693.6 Q(ws:)-.25 E F5(\\a)144 705.6 Q F0
-(an ASCII bell character \(07\))180 705.6 Q F5(\\d)144 717.6 Q F0
-(the date in "W)180 717.6 Q(eekday Month Date" format \(e.g., "T)-.8 E
-(ue May 26"\))-.45 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(38)
-190.395 E 0 Cg EP
-%%Page: 39 39
+as follo)108 609.6 Q(ws:)-.25 E F2(\\a)144 621.6 Q F0
+(an ASCII bell character \(07\))180 621.6 Q F2(\\d)144 633.6 Q F0
+(the date in "W)180 633.6 Q(eekday Month Date" format \(e.g., "T)-.8 E
+(ue May 26"\))-.45 E F2(\\D{)144 645.6 Q F3(format)A F2(})A F0(the)180
+657.6 Q F3(format)3.927 E F0 1.427(is passed to)3.927 F F3(strftime)
+3.927 E F0 1.427
+(\(3\) and the result is inserted into the prompt string; an)B(empty)180
+669.6 Q F3(format)2.5 E F0
+(results in a locale-speci\214c time representation.)2.5 E
+(The braces are required)5 E F2(\\e)144 681.6 Q F0
+(an ASCII escape character \(033\))180 681.6 Q F2(\\h)144 693.6 Q F0
+(the hostname up to the \214rst `.)180 693.6 Q(')-.7 E F2(\\H)144 705.6
+Q F0(the hostname)180 705.6 Q F2(\\j)144 717.6 Q F0
+(the number of jobs currently managed by the shell)180 717.6 Q
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(40)185.115 E 0 Cg EP
+%%Page: 41 41
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(\\D{)144 84 Q/F2 10/Times-Italic@0 SF(format)A F1(})A F0(the)180 96 Q
-F2(format)3.927 E F0 1.427(is passed to)3.927 F F2(strftime)3.927 E F0
-1.427(\(3\) and the result is inserted into the prompt string; an)B
-(empty)180 108 Q F2(format)2.5 E F0
-(results in a locale-speci\214c time representation.)2.5 E
-(The braces are required)5 E F1(\\e)144 120 Q F0
-(an ASCII escape character \(033\))180 120 Q F1(\\h)144 132 Q F0
-(the hostname up to the \214rst `.)180 132 Q(')-.7 E F1(\\H)144 144 Q F0
-(the hostname)180 144 Q F1(\\j)144 156 Q F0
-(the number of jobs currently managed by the shell)180 156 Q F1(\\l)144
-168 Q F0(the basename of the shell')180 168 Q 2.5(st)-.55 G(erminal de)
--2.5 E(vice name)-.25 E F1(\\n)144 180 Q F0(ne)180 180 Q(wline)-.25 E F1
-(\\r)144 192 Q F0(carriage return)180 192 Q F1(\\s)144 204 Q F0
-(the name of the shell, the basename of)180 204 Q F1($0)2.5 E F0
+SF(\\l)144 84 Q F0(the basename of the shell')180 84 Q 2.5(st)-.55 G
+(erminal de)-2.5 E(vice name)-.25 E F1(\\n)144 96 Q F0(ne)180 96 Q
+(wline)-.25 E F1(\\r)144 108 Q F0(carriage return)180 108 Q F1(\\s)144
+120 Q F0(the name of the shell, the basename of)180 120 Q F1($0)2.5 E F0
(\(the portion follo)2.5 E(wing the \214nal slash\))-.25 E F1(\\t)144
-216 Q F0(the current time in 24-hour HH:MM:SS format)180 216 Q F1(\\T)
-144 228 Q F0(the current time in 12-hour HH:MM:SS format)180 228 Q F1
-(\\@)144 240 Q F0(the current time in 12-hour am/pm format)180 240 Q F1
-(\\A)144 252 Q F0(the current time in 24-hour HH:MM format)180 252 Q F1
-(\\u)144 264 Q F0(the username of the current user)180 264 Q F1(\\v)144
-276 Q F0(the v)180 276 Q(ersion of)-.15 E F1(bash)2.5 E F0
-(\(e.g., 2.00\))2.5 E F1(\\V)144 288 Q F0(the release of)180 288 Q F1
+132 Q F0(the current time in 24-hour HH:MM:SS format)180 132 Q F1(\\T)
+144 144 Q F0(the current time in 12-hour HH:MM:SS format)180 144 Q F1
+(\\@)144 156 Q F0(the current time in 12-hour am/pm format)180 156 Q F1
+(\\A)144 168 Q F0(the current time in 24-hour HH:MM format)180 168 Q F1
+(\\u)144 180 Q F0(the username of the current user)180 180 Q F1(\\v)144
+192 Q F0(the v)180 192 Q(ersion of)-.15 E F1(bash)2.5 E F0
+(\(e.g., 2.00\))2.5 E F1(\\V)144 204 Q F0(the release of)180 204 Q F1
(bash)2.5 E F0 2.5(,v)C(ersion + patch le)-2.65 E -.15(ve)-.25 G 2.5
-(l\().15 G(e.g., 2.00.0\))-2.5 E F1(\\w)144 300 Q F0 .115(the current w)
-180 300 R .115(orking directory)-.1 F 2.615(,w)-.65 G(ith)-2.615 E/F3 9
-/Times-Bold@0 SF($HOME)2.615 E F0(abbre)2.365 E .116
-(viated with a tilde \(uses the v)-.25 F .116(alue of the)-.25 F F3(PR)
-180 312 Q(OMPT_DIR)-.27 E(TRIM)-.36 E F0 -.25(va)2.25 G(riable\)).25 E
-F1(\\W)144 324 Q F0(the basename of the current w)180 324 Q
-(orking directory)-.1 E 2.5(,w)-.65 G(ith)-2.5 E F3($HOME)2.5 E F0
-(abbre)2.25 E(viated with a tilde)-.25 E F1(\\!)144 336 Q F0
-(the history number of this command)180 336 Q F1(\\#)144 348 Q F0
-(the command number of this command)180 348 Q F1(\\$)144 360 Q F0
-(if the ef)180 360 Q(fecti)-.25 E .3 -.15(ve U)-.25 H(ID is 0, a).15 E
-F1(#)2.5 E F0 2.5(,o)C(therwise a)-2.5 E F1($)2.5 E(\\)144 372 Q F2(nnn)
-A F0(the character corresponding to the octal number)180 372 Q F2(nnn)
-2.5 E F1(\\\\)144 384 Q F0 2.5(ab)180 384 S(ackslash)-2.5 E F1(\\[)144
-396 Q F0(be)180 396 Q 1.257(gin a sequence of non-printing characters, \
-which could be used to embed a terminal)-.15 F
-(control sequence into the prompt)180 408 Q F1(\\])144 420 Q F0
-(end a sequence of non-printing characters)180 420 Q .119
-(The command number and the history number are usually dif)108 436.8 R
+(l\().15 G(e.g., 2.00.0\))-2.5 E F1(\\w)144 216 Q F0 .119(the v)180 216
+R .119(alue of the)-.25 F F1(PWD)2.619 E F0 .119(shell v)2.619 F .119
+(ariable \()-.25 F F1($PWD)A F0 .119(\), with)B/F2 9/Times-Bold@0 SF
+($HOME)2.619 E F0(abbre)2.369 E .119(viated with a tilde \(uses)-.25 F
+(the v)180 228 Q(alue of the)-.25 E F2(PR)2.5 E(OMPT_DIR)-.27 E(TRIM)
+-.36 E F0 -.25(va)2.25 G(riable\)).25 E F1(\\W)144 240 Q F0
+(the basename of)180 240 Q F1($PWD)2.5 E F0 2.5(,w)C(ith)-2.5 E F2
+($HOME)2.5 E F0(abbre)2.25 E(viated with a tilde)-.25 E F1(\\!)144 252 Q
+F0(the history number of this command)180 252 Q F1(\\#)144 264 Q F0
+(the command number of this command)180 264 Q F1(\\$)144 276 Q F0
+(if the ef)180 276 Q(fecti)-.25 E .3 -.15(ve U)-.25 H(ID is 0, a).15 E
+F1(#)2.5 E F0 2.5(,o)C(therwise a)-2.5 E F1($)2.5 E(\\)144 288 Q/F3 10
+/Times-Italic@0 SF(nnn)A F0
+(the character corresponding to the octal number)180 288 Q F3(nnn)2.5 E
+F1(\\\\)144 300 Q F0 2.5(ab)180 300 S(ackslash)-2.5 E F1(\\[)144 312 Q
+F0(be)180 312 Q 1.257(gin a sequence of non-printing characters, which \
+could be used to embed a terminal)-.15 F
+(control sequence into the prompt)180 324 Q F1(\\])144 336 Q F0
+(end a sequence of non-printing characters)180 336 Q .119
+(The command number and the history number are usually dif)108 352.8 R
.12(ferent: the history number of a command is its)-.25 F .547(position\
in the history list, which may include commands restored from the hist\
-ory \214le \(see)108 448.8 R F3(HIST)3.046 E(OR)-.162 E(Y)-.315 E F0
-(be-)2.796 E(lo)108 460.8 Q .354(w\), while the command number is the p\
+ory \214le \(see)108 364.8 R F2(HIST)3.046 E(OR)-.162 E(Y)-.315 E F0
+(be-)2.796 E(lo)108 376.8 Q .354(w\), while the command number is the p\
osition in the sequence of commands e)-.25 F -.15(xe)-.15 G .355
-(cuted during the current).15 F .823(shell session.)108 472.8 R .822
+(cuted during the current).15 F .823(shell session.)108 388.8 R .822
(After the string is decoded, it is e)5.823 F .822
(xpanded via parameter e)-.15 F .822(xpansion, command substitution,)
--.15 F .682(arithmetic e)108 484.8 R .682(xpansion, and quote remo)-.15
+-.15 F .682(arithmetic e)108 400.8 R .682(xpansion, and quote remo)-.15
F -.25(va)-.15 G .682(l, subject to the v).25 F .683(alue of the)-.25 F
F1(pr)3.183 E(omptv)-.18 E(ars)-.1 E F0 .683(shell option \(see the de-)
-3.183 F 1.198(scription of the)108 496.8 R F1(shopt)3.698 E F0 1.198
-(command under)3.698 F F3 1.197(SHELL B)3.697 F(UIL)-.09 E 1.197
+3.183 F 1.198(scription of the)108 412.8 R F1(shopt)3.698 E F0 1.198
+(command under)3.698 F F2 1.197(SHELL B)3.697 F(UIL)-.09 E 1.197
(TIN COMMANDS)-.828 F F0(belo)3.447 E 3.697(w\). This)-.25 F 1.197
(can ha)3.697 F 1.497 -.15(ve u)-.2 H(nw).15 E(anted)-.1 E .322(side ef)
-108 508.8 R .322(fects if escaped portions of the string appear within \
+108 424.8 R .322(fects if escaped portions of the string appear within \
command substitution or contain characters spe-)-.25 F(cial to w)108
-520.8 Q(ord e)-.1 E(xpansion.)-.15 E/F4 10.95/Times-Bold@0 SF(READLINE)
-72 537.6 Q F0 .151
+436.8 Q(ord e)-.1 E(xpansion.)-.15 E/F4 10.95/Times-Bold@0 SF(READLINE)
+72 453.6 Q F0 .151
(This is the library that handles reading input when using an interacti)
-108 549.6 R .45 -.15(ve s)-.25 H .15(hell, unless the).15 F F1
-(\255\255noediting)2.65 E F0(option)2.65 E .384(is gi)108 561.6 R -.15
+108 465.6 R .45 -.15(ve s)-.25 H .15(hell, unless the).15 F F1
+(\255\255noediting)2.65 E F0(option)2.65 E .384(is gi)108 477.6 R -.15
(ve)-.25 G 2.884(na).15 G 2.884(ts)-2.884 G .384(hell in)-2.884 F -.2
(vo)-.4 G 2.884(cation. Line).2 F .384
(editing is also used when using the)2.884 F F1<ad65>2.885 E F0 .385
(option to the)2.885 F F1 -.18(re)2.885 G(ad).18 E F0 -.2(bu)2.885 G
-2.885(iltin. By).2 F(de-)2.885 E -.1(fa)108 573.6 S 1.407
+2.885(iltin. By).2 F(de-)2.885 E -.1(fa)108 489.6 S 1.407
(ult, the line editing commands are similar to those of Emacs.).1 F
3.906(Av)6.406 G 1.406(i-style line editing interf)-3.906 F 1.406
-(ace is also)-.1 F -.2(av)108 585.6 S 3.35(ailable. Line)-.05 F .85
+(ace is also)-.1 F -.2(av)108 501.6 S 3.35(ailable. Line)-.05 F .85
(editing can be enabled at an)3.35 F 3.35(yt)-.15 G .85(ime using the)
-3.35 F F1 .85(\255o emacs)3.35 F F0(or)3.35 E F1 .85(\255o vi)3.35 F F0
.85(options to the)3.35 F F1(set)3.35 E F0 -.2(bu)3.35 G(iltin).2 E
-(\(see)108 597.6 Q F3 .763(SHELL B)3.263 F(UIL)-.09 E .763(TIN COMMANDS)
+(\(see)108 513.6 Q F2 .763(SHELL B)3.263 F(UIL)-.09 E .763(TIN COMMANDS)
-.828 F F0(belo)3.013 E 3.263(w\). T)-.25 F 3.263(ot)-.8 G .763(urn of)
-3.263 F 3.263(fl)-.25 G .763
(ine editing after the shell is running, use the)-3.263 F F1(+o)3.262 E
-(emacs)108 609.6 Q F0(or)2.5 E F1(+o vi)2.5 E F0(options to the)2.5 E F1
-(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(Readline Notation)87 626.4 Q
+(emacs)108 525.6 Q F0(or)2.5 E F1(+o vi)2.5 E F0(options to the)2.5 E F1
+(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(Readline Notation)87 542.4 Q
F0 .463(In this section, the Emacs-style notation is used to denote k)
-108 638.4 R -.15(ey)-.1 G(strok).15 E 2.963(es. Control)-.1 F -.1(ke)
-2.963 G .463(ys are denoted by C\255)-.05 F F2 -.1(ke)C(y)-.2 E F0(,)A
-1.153(e.g., C\255n means Control\255N.)108 650.4 R(Similarly)6.153 E(,)
--.65 E F2(meta)4.033 E F0 -.1(ke)3.913 G 1.153(ys are denoted by M\255)
--.05 F F2 -.1(ke)C(y)-.2 E F0 3.652(,s)C 3.652(oM)-3.652 G 1.152
-(\255x means Meta\255X.)-3.652 F(\(On)6.152 E -.1(ke)108 662.4 S .83
-(yboards without a)-.05 F F2(meta)3.71 E F0 -.1(ke)3.59 G 2.13 -.65
-(y, M)-.05 H<ad>.65 E F2(x)A F0 .83(means ESC)3.33 F F2(x)3.33 E F0 3.33
+108 554.4 R -.15(ey)-.1 G(strok).15 E 2.963(es. Control)-.1 F -.1(ke)
+2.963 G .463(ys are denoted by C\255)-.05 F F3 -.1(ke)C(y)-.2 E F0(,)A
+1.153(e.g., C\255n means Control\255N.)108 566.4 R(Similarly)6.153 E(,)
+-.65 E F3(meta)4.033 E F0 -.1(ke)3.913 G 1.153(ys are denoted by M\255)
+-.05 F F3 -.1(ke)C(y)-.2 E F0 3.652(,s)C 3.652(oM)-3.652 G 1.152
+(\255x means Meta\255X.)-3.652 F(\(On)6.152 E -.1(ke)108 578.4 S .83
+(yboards without a)-.05 F F3(meta)3.71 E F0 -.1(ke)3.59 G 2.13 -.65
+(y, M)-.05 H<ad>.65 E F3(x)A F0 .83(means ESC)3.33 F F3(x)3.33 E F0 3.33
(,i)C .831(.e., press the Escape k)-3.33 F 1.131 -.15(ey t)-.1 H .831
-(hen the).15 F F2(x)4.101 E F0 -.1(ke)3.861 G 4.631 -.65(y. T)-.05 H
-.831(his mak).65 F(es)-.1 E .6(ESC the)108 674.4 R F2 .6(meta pr)3.1 F
-(e\214x)-.37 E F0 5.6(.T)C .6(he combination M\255C\255)-5.6 F F2(x)A F0
-.599(means ESC\255Control\255)3.099 F F2(x)A F0 3.099(,o)C 3.099(rp)
+(hen the).15 F F3(x)4.101 E F0 -.1(ke)3.861 G 4.631 -.65(y. T)-.05 H
+.831(his mak).65 F(es)-.1 E .6(ESC the)108 590.4 R F3 .6(meta pr)3.1 F
+(e\214x)-.37 E F0 5.6(.T)C .6(he combination M\255C\255)-5.6 F F3(x)A F0
+.599(means ESC\255Control\255)3.099 F F3(x)A F0 3.099(,o)C 3.099(rp)
-3.099 G .599(ress the Escape k)-3.099 F .899 -.15(ey t)-.1 H .599
-(hen hold).15 F(the Control k)108 686.4 Q .3 -.15(ey w)-.1 H
-(hile pressing the).15 E F2(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G(\))
-.65 E .595(Readline commands may be gi)108 703.2 R -.15(ve)-.25 G 3.096
-(nn).15 G(umeric)-3.096 E F2(ar)3.426 E(guments)-.37 E F0 3.096(,w).27 G
+(hen hold).15 F(the Control k)108 602.4 Q .3 -.15(ey w)-.1 H
+(hile pressing the).15 E F3(x)3.27 E F0 -.1(ke)3.03 G -.65(y.)-.05 G(\))
+.65 E .595(Readline commands may be gi)108 619.2 R -.15(ve)-.25 G 3.096
+(nn).15 G(umeric)-3.096 E F3(ar)3.426 E(guments)-.37 E F0 3.096(,w).27 G
.596(hich normally act as a repeat count.)-3.096 F(Sometimes,)5.596 E
-(ho)108 715.2 Q(we)-.25 E -.15(ve)-.25 G 1.419 -.4(r, i).15 H 3.119(ti)
+(ho)108 631.2 Q(we)-.25 E -.15(ve)-.25 G 1.419 -.4(r, i).15 H 3.119(ti)
.4 G 3.119(st)-3.119 G .619(he sign of the ar)-3.119 F .619
(gument that is signi\214cant.)-.18 F -.15(Pa)5.619 G .619(ssing a ne)
.15 F -.05(ga)-.15 G(ti).05 E .919 -.15(ve a)-.25 H -.18(rg).15 G .619
-(ument to a command that).18 F 2.938(acts in the forw)108 727.2 R 2.938
-(ard direction \(e.g.,)-.1 F F1(kill\255line)5.438 E F0 5.438(\)c)C
-2.938(auses that command to act in a backw)-5.438 F 2.938
-(ard direction.)-.1 F(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E
-(39)190.395 E 0 Cg EP
-%%Page: 40 40
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E
-(Commands whose beha)108 84 Q(vior with ar)-.2 E(guments de)-.18 E
-(viates from this are noted belo)-.25 E -.65(w.)-.25 G .812
-(When a command is described as)108 100.8 R/F1 10/Times-Italic@0 SF
+(ument to a command that).18 F 1.018(acts in the forw)108 643.2 R 1.018
+(ard direction \(e.g.,)-.1 F F1(kill\255line)3.518 E F0 3.518(\)c)C
+1.018(auses that command to act in a backw)-3.518 F 1.019
+(ard direction.)-.1 F(Com-)6.019 E(mands whose beha)108 655.2 Q
+(vior with ar)-.2 E(guments de)-.18 E(viates from this are noted belo)
+-.25 E -.65(w.)-.25 G .812(When a command is described as)108 672 R F3
(killing)3.311 E F0(te)3.311 E .811(xt, the te)-.15 F .811
(xt deleted is sa)-.15 F -.15(ve)-.2 G 3.311(df).15 G .811
-(or possible future retrie)-3.311 F -.25(va)-.25 G 3.311(l\().25 G F1
-(yank-)-3.311 E(ing)108 112.8 Q F0 2.529(\). The)B .029(killed te)2.529
-F .029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G 2.529(na)-2.529 G F1
+(or possible future retrie)-3.311 F -.25(va)-.25 G 3.311(l\().25 G F3
+(yank-)-3.311 E(ing)108 684 Q F0 2.529(\). The)B .029(killed te)2.529 F
+.029(xt is sa)-.15 F -.15(ve)-.2 G 2.529(di).15 G 2.529(na)-2.529 G F3
.029(kill ring)B F0 5.029(.C)C(onsecuti)-5.029 E .329 -.15(ve k)-.25 H
.029(ills cause the te).15 F .029(xt to be accumulated into one unit,)
--.15 F .567(which can be yank)108 124.8 R .567(ed all at once.)-.1 F
-.567(Commands which do not kill te)5.567 F .567
+-.15 F .567(which can be yank)108 696 R .567(ed all at once.)-.1 F .567
+(Commands which do not kill te)5.567 F .567
(xt separate the chunks of te)-.15 F .567(xt on the kill)-.15 F(ring.)
-108 136.8 Q/F2 10/Times-Bold@0 SF(Readline Initialization)87 153.6 Q F0
-.091(Readline is customized by putting commands in an initialization \
-\214le \(the)108 165.6 R F1(inputr)2.591 E(c)-.37 E F0 2.591
-(\214le\). The)2.591 F .092(name of this \214le)2.591 F .573(is tak)108
-177.6 R .573(en from the v)-.1 F .573(alue of the)-.25 F/F3 9
-/Times-Bold@0 SF(INPUTRC)3.073 E F0 -.25(va)2.823 G 3.073(riable. If).25
-F .573(that v)3.073 F .573(ariable is unset, the def)-.25 F .573
-(ault is)-.1 F F1(~/.inputr)2.573 E(c)-.37 E F0 5.572(.I).31 G 3.072(ft)
--5.572 G(hat)-3.072 E 3.061(\214le does)108 189.6 R .561(not e)3.061 F
-.562(xist or cannot be read, the ultimate def)-.15 F .562(ault is)-.1 F
-F1(/etc/inputr)4.212 E(c)-.37 E F0 5.562(.W).31 G .562
+108 708 Q(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(41)185.115 E
+0 Cg EP
+%%Page: 42 42
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(Readline Initialization)87 84 Q F0 .091(Readline is customized by pu\
+tting commands in an initialization \214le \(the)108 96 R/F2 10
+/Times-Italic@0 SF(inputr)2.591 E(c)-.37 E F0 2.591(\214le\). The)2.591
+F .092(name of this \214le)2.591 F .573(is tak)108 108 R .573
+(en from the v)-.1 F .573(alue of the)-.25 F/F3 9/Times-Bold@0 SF
+(INPUTRC)3.073 E F0 -.25(va)2.823 G 3.073(riable. If).25 F .573(that v)
+3.073 F .573(ariable is unset, the def)-.25 F .573(ault is)-.1 F F2
+(~/.inputr)2.573 E(c)-.37 E F0 5.572(.I).31 G 3.072(ft)-5.572 G(hat)
+-3.072 E 3.061(\214le does)108 120 R .561(not e)3.061 F .562
+(xist or cannot be read, the ultimate def)-.15 F .562(ault is)-.1 F F2
+(/etc/inputr)4.212 E(c)-.37 E F0 5.562(.W).31 G .562
(hen a program which uses the)-5.562 F .175(readline library starts up,\
- the initialization \214le is read, and the k)108 201.6 R .474 -.15
-(ey b)-.1 H .174(indings and v).15 F .174(ariables are set.)-.25 F .174
-(There are)5.174 F .238(only a fe)108 213.6 R 2.738(wb)-.25 G .238
+ the initialization \214le is read, and the k)108 132 R .474 -.15(ey b)
+-.1 H .174(indings and v).15 F .174(ariables are set.)-.25 F .174
+(There are)5.174 F .238(only a fe)108 144 R 2.738(wb)-.25 G .238
(asic constructs allo)-2.738 F .239
(wed in the readline initialization \214le.)-.25 F .239
(Blank lines are ignored.)5.239 F .239(Lines be)5.239 F(gin-)-.15 E .554
-(ning with a)108 225.6 R F2(#)3.054 E F0 .554(are comments.)3.054 F .554
-(Lines be)5.554 F .554(ginning with a)-.15 F F2($)3.054 E F0 .554
+(ning with a)108 156 R F1(#)3.054 E F0 .554(are comments.)3.054 F .554
+(Lines be)5.554 F .554(ginning with a)-.15 F F1($)3.054 E F0 .554
(indicate conditional constructs.)3.054 F .553(Other lines denote)5.553
-F -.1(ke)108 237.6 S 2.5(yb)-.05 G(indings and v)-2.5 E
-(ariable settings.)-.25 E .986(The def)108 254.4 R .986(ault k)-.1 F
--.15(ey)-.1 G .987(-bindings may be changed with an).15 F F1(inputr)
-3.497 E(c)-.37 E F0 3.487(\214le. Other)3.797 F .987
-(programs that use this library may)3.487 F(add their o)108 266.4 Q
-(wn commands and bindings.)-.25 E -.15(Fo)108 283.2 S 2.5(re).15 G
-(xample, placing)-2.65 E(M\255Control\255u: uni)144 300 Q -.15(ve)-.25 G
-(rsal\255ar).15 E(gument)-.18 E(or)108 312 Q(C\255Meta\255u: uni)144 324
-Q -.15(ve)-.25 G(rsal\255ar).15 E(gument)-.18 E(into the)108 336 Q F1
-(inputr)2.51 E(c)-.37 E F0 -.1(wo)2.81 G(uld mak).1 E 2.5(eM)-.1 G
-(\255C\255u e)-2.5 E -.15(xe)-.15 G(cute the readline command).15 E F1
-(univer)2.58 E(sal\255ar)-.1 E(gument)-.37 E F0(.).68 E 1.011(The follo)
-108 352.8 R 1.011(wing symbolic character names are recognized:)-.25 F
-F1 -.4(RU)3.511 G(BOUT).4 E F0(,)1.27 E F1(DEL)4.091 E F0(,).53 E F1
-(ESC)4.021 E F0(,).72 E F1(LFD)4.091 E F0(,).28 E F1(NEWLINE)4.21 E F0
-(,).73 E F1(RET)4.14 E F0(,)1.27 E F1(RETURN)108.63 364.8 Q F0(,)1.1 E
-F1(SPC)2.83 E F0(,).72 E F1(SP)2.83 E -.3(AC)-.9 G(E).3 E F0 2.5(,a).73
-G(nd)-2.5 E F1 -.5(TA)2.5 G(B).5 E F0(.).27 E .209
-(In addition to command names, readline allo)108 381.6 R .209(ws k)-.25
-F -.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G 2.709(eb)-2.709 G .209
+F -.1(ke)108 168 S 2.5(yb)-.05 G(indings and v)-2.5 E(ariable settings.)
+-.25 E .986(The def)108 184.8 R .986(ault k)-.1 F -.15(ey)-.1 G .987
+(-bindings may be changed with an).15 F F2(inputr)3.497 E(c)-.37 E F0
+3.487(\214le. Other)3.797 F .987(programs that use this library may)
+3.487 F(add their o)108 196.8 Q(wn commands and bindings.)-.25 E -.15
+(Fo)108 213.6 S 2.5(re).15 G(xample, placing)-2.65 E
+(M\255Control\255u: uni)144 230.4 Q -.15(ve)-.25 G(rsal\255ar).15 E
+(gument)-.18 E(or)108 242.4 Q(C\255Meta\255u: uni)144 254.4 Q -.15(ve)
+-.25 G(rsal\255ar).15 E(gument)-.18 E(into the)108 266.4 Q F2(inputr)
+2.51 E(c)-.37 E F0 -.1(wo)2.81 G(uld mak).1 E 2.5(eM)-.1 G(\255C\255u e)
+-2.5 E -.15(xe)-.15 G(cute the readline command).15 E F2(univer)2.58 E
+(sal\255ar)-.1 E(gument)-.37 E F0(.).68 E 1.011(The follo)108 283.2 R
+1.011(wing symbolic character names are recognized:)-.25 F F2 -.4(RU)
+3.511 G(BOUT).4 E F0(,)1.27 E F2(DEL)4.091 E F0(,).53 E F2(ESC)4.021 E
+F0(,).72 E F2(LFD)4.091 E F0(,).28 E F2(NEWLINE)4.21 E F0(,).73 E F2
+(RET)4.14 E F0(,)1.27 E F2(RETURN)108.63 295.2 Q F0(,)1.1 E F2(SPC)2.83
+E F0(,).72 E F2(SP)2.83 E -.3(AC)-.9 G(E).3 E F0 2.5(,a).73 G(nd)-2.5 E
+F2 -.5(TA)2.5 G(B).5 E F0(.).27 E .209
+(In addition to command names, readline allo)108 312 R .209(ws k)-.25 F
+-.15(ey)-.1 G 2.709(st).15 G 2.709(ob)-2.709 G 2.709(eb)-2.709 G .209
(ound to a string that is inserted when the k)-2.709 F .509 -.15(ey i)
--.1 H(s).15 E(pressed \(a)108 393.6 Q F1(macr)2.5 E(o)-.45 E F0(\).)A F2
-(Readline K)87 410.4 Q(ey Bindings)-.25 E F0 .366
-(The syntax for controlling k)108 422.4 R .666 -.15(ey b)-.1 H .366
-(indings in the).15 F F1(inputr)2.876 E(c)-.37 E F0 .366
+-.1 H(s).15 E(pressed \(a)108 324 Q F2(macr)2.5 E(o)-.45 E F0(\).)A F1
+(Readline K)87 340.8 Q(ey Bindings)-.25 E F0 .366
+(The syntax for controlling k)108 352.8 R .666 -.15(ey b)-.1 H .366
+(indings in the).15 F F2(inputr)2.876 E(c)-.37 E F0 .366
(\214le is simple.)3.176 F .366(All that is required is the name of the)
-5.366 F .263(command or the te)108 434.4 R .264(xt of a macro and a k)
+5.366 F .263(command or the te)108 364.8 R .264(xt of a macro and a k)
-.15 F .564 -.15(ey s)-.1 H .264(equence to which it should be bound.)
.15 F .264(The name may be speci-)5.264 F .139(\214ed in one of tw)108
-446.4 R 2.638(ow)-.1 G .138(ays: as a symbolic k)-2.738 F .438 -.15
-(ey n)-.1 H .138(ame, possibly with).15 F F1(Meta\255)2.638 E F0(or)
-2.638 E F1(Contr)2.638 E(ol\255)-.45 E F0(pre\214x)2.638 E .138
-(es, or as a k)-.15 F .438 -.15(ey s)-.1 H(e-).15 E(quence.)108 458.4 Q
-.16(When using the form)108 475.2 R F2 -.1(ke)2.66 G(yname).1 E F0(:)A
-F1(function\255name).833 E F0(or)2.66 E F1(macr)2.66 E(o)-.45 E F0(,)A
-F1 -.1(ke)2.66 G(yname)-.2 E F0 .161(is the name of a k)2.84 F .461 -.15
-(ey s)-.1 H .161(pelled out in Eng-).15 F 2.5(lish. F)108 487.2 R(or e)
--.15 E(xample:)-.15 E(Control-u: uni)144 511.2 Q -.15(ve)-.25 G
-(rsal\255ar).15 E(gument)-.18 E(Meta-Rubout: backw)144 523.2 Q
-(ard-kill-w)-.1 E(ord)-.1 E(Control-o: "> output")144 535.2 Q .699
-(In the abo)108 552 R .998 -.15(ve ex)-.15 H(ample,).15 E F1(C\255u)
-3.038 E F0 .698(is bound to the function)3.448 F F2(uni)3.198 E -.1(ve)
--.1 G(rsal\255ar).1 E(gument)-.1 E F0(,)A F1(M\255DEL)3.878 E F0 .698
-(is bound to the func-)3.728 F(tion)108 564 Q F2(backward\255kill\255w)
-2.758 E(ord)-.1 E F0 2.758(,a)C(nd)-2.758 E F1(C\255o)2.598 E F0 .258
-(is bound to run the macro e)2.938 F .259
+376.8 R 2.638(ow)-.1 G .138(ays: as a symbolic k)-2.738 F .438 -.15
+(ey n)-.1 H .138(ame, possibly with).15 F F2(Meta\255)2.638 E F0(or)
+2.638 E F2(Contr)2.638 E(ol\255)-.45 E F0(pre\214x)2.638 E .138
+(es, or as a k)-.15 F .438 -.15(ey s)-.1 H(e-).15 E(quence.)108 388.8 Q
+.16(When using the form)108 405.6 R F1 -.1(ke)2.66 G(yname).1 E F0(:)A
+F2(function\255name).833 E F0(or)2.66 E F2(macr)2.66 E(o)-.45 E F0(,)A
+F2 -.1(ke)2.66 G(yname)-.2 E F0 .161(is the name of a k)2.84 F .461 -.15
+(ey s)-.1 H .161(pelled out in Eng-).15 F 2.5(lish. F)108 417.6 R(or e)
+-.15 E(xample:)-.15 E(Control-u: uni)144 441.6 Q -.15(ve)-.25 G
+(rsal\255ar).15 E(gument)-.18 E(Meta-Rubout: backw)144 453.6 Q
+(ard-kill-w)-.1 E(ord)-.1 E(Control-o: "> output")144 465.6 Q .699
+(In the abo)108 482.4 R .998 -.15(ve ex)-.15 H(ample,).15 E F2(C\255u)
+3.038 E F0 .698(is bound to the function)3.448 F F1(uni)3.198 E -.1(ve)
+-.1 G(rsal\255ar).1 E(gument)-.1 E F0(,)A F2(M\255DEL)3.878 E F0 .698
+(is bound to the func-)3.728 F(tion)108 494.4 Q F1
+(backward\255kill\255w)2.758 E(ord)-.1 E F0 2.758(,a)C(nd)-2.758 E F2
+(C\255o)2.598 E F0 .258(is bound to run the macro e)2.938 F .259
(xpressed on the right hand side \(that is, to)-.15 F(insert the te)108
-576 Q(xt)-.15 E/F4 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
-(into the line\).)2.5 E .056(In the second form,)108 592.8 R F2("k)2.556
-E(eyseq")-.1 E F0(:)A F1(function\255name).833 E F0(or)2.556 E F1(macr)
-2.556 E(o)-.45 E F0(,)A F2 -.1(ke)2.556 G(yseq).1 E F0(dif)2.555 E .055
-(fers from)-.25 F F2 -.1(ke)2.555 G(yname).1 E F0(abo)2.555 E .355 -.15
+506.4 Q(xt)-.15 E/F4 10/Courier@0 SF 6(>o)2.5 G(utput)-6 E F0
+(into the line\).)2.5 E .056(In the second form,)108 523.2 R F1("k)2.556
+E(eyseq")-.1 E F0(:)A F2(function\255name).833 E F0(or)2.556 E F2(macr)
+2.556 E(o)-.45 E F0(,)A F1 -.1(ke)2.556 G(yseq).1 E F0(dif)2.555 E .055
+(fers from)-.25 F F1 -.1(ke)2.555 G(yname).1 E F0(abo)2.555 E .355 -.15
(ve i)-.15 H 2.555(nt).15 G .055(hat strings)-2.555 F 1.284
-(denoting an entire k)108 604.8 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
+(denoting an entire k)108 535.2 R 1.584 -.15(ey s)-.1 H 1.284(equence m\
ay be speci\214ed by placing the sequence within double quotes.).15 F
-(Some)6.284 E .386(GNU Emacs style k)108 616.8 R .686 -.15(ey e)-.1 H
+(Some)6.284 E .386(GNU Emacs style k)108 547.2 R .686 -.15(ey e)-.1 H
.385(scapes can be used, as in the follo).15 F .385(wing e)-.25 F .385
(xample, b)-.15 F .385(ut the symbolic character names)-.2 F
-(are not recognized.)108 628.8 Q("\\C\255u": uni)144 652.8 Q -.15(ve)
+(are not recognized.)108 559.2 Q("\\C\255u": uni)144 583.2 Q -.15(ve)
-.25 G(rsal\255ar).15 E(gument)-.18 E
-("\\C\255x\\C\255r": re\255read\255init\255\214le)144 664.8 Q
-("\\e[11~": "Function K)144 676.8 Q .3 -.15(ey 1)-.25 H(").15 E .314
-(In this e)108 693.6 R(xample,)-.15 E F1(C\255u)2.654 E F0 .314(is ag)
-3.064 F .315(ain bound to the function)-.05 F F2(uni)2.815 E -.1(ve)-.1
-G(rsal\255ar).1 E(gument)-.1 E F0(.)A F1 .315(C\255x C\255r)5.155 F F0
-.315(is bound to the func-)3.545 F(tion)108 705.6 Q F2 -.18(re)2.5 G
-<ad72>.18 E(ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F1
-(ESC [ 1 1 ~)3.01 E F0(is bound to insert the te)3.94 E(xt)-.15 E F4
-(Function Key 1)2.5 E F0(.)A
-(The full set of GNU Emacs style escape sequences is)108 722.4 Q
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(40)190.395 E 0 Cg EP
-%%Page: 41 41
+("\\C\255x\\C\255r": re\255read\255init\255\214le)144 595.2 Q
+("\\e[11~": "Function K)144 607.2 Q .3 -.15(ey 1)-.25 H(").15 E .314
+(In this e)108 624 R(xample,)-.15 E F2(C\255u)2.654 E F0 .314(is ag)
+3.064 F .315(ain bound to the function)-.05 F F1(uni)2.815 E -.1(ve)-.1
+G(rsal\255ar).1 E(gument)-.1 E F0(.)A F2 .315(C\255x C\255r)5.155 F F0
+.315(is bound to the func-)3.545 F(tion)108 636 Q F1 -.18(re)2.5 G<ad72>
+.18 E(ead\255init\255\214le)-.18 E F0 2.5(,a)C(nd)-2.5 E F2(ESC [ 1 1 ~)
+3.01 E F0(is bound to insert the te)3.94 E(xt)-.15 E F4(Function Key 1)
+2.5 E F0(.)A(The full set of GNU Emacs style escape sequences is)108
+652.8 Q F1<5c43ad>144 664.8 Q F0(control pre\214x)180 664.8 Q F1<5c4dad>
+144 676.8 Q F0(meta pre\214x)180 676.8 Q F1(\\e)144 688.8 Q F0
+(an escape character)180 688.8 Q F1(\\\\)144 700.8 Q F0(backslash)180
+700.8 Q F1(\\")144 712.8 Q F0(literal ")180 712.8 Q(GNU Bash 5.2)72 768
+Q(2022 September 19)135.955 E(42)185.115 E 0 Cg EP
+%%Page: 43 43
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF<5c43ad>144 84 Q F0(control pre\214x)180 84 Q F1<5c4dad>144 96 Q F0
-(meta pre\214x)180 96 Q F1(\\e)144 108 Q F0(an escape character)180 108
-Q F1(\\\\)144 120 Q F0(backslash)180 120 Q F1(\\")144 132 Q F0
-(literal ")180 132 Q F1<5c08>144 144 Q F0(literal \010)180 144 Q(In add\
-ition to the GNU Emacs style escape sequences, a second set of backslas\
-h escapes is a)108 160.8 Q -.25(va)-.2 G(ilable:).25 E F1(\\a)144 172.8
-Q F0(alert \(bell\))180 172.8 Q F1(\\b)144 184.8 Q F0(backspace)180
-184.8 Q F1(\\d)144 196.8 Q F0(delete)180 196.8 Q F1(\\f)144 208.8 Q F0
-(form feed)180 208.8 Q F1(\\n)144 220.8 Q F0(ne)180 220.8 Q(wline)-.25 E
-F1(\\r)144 232.8 Q F0(carriage return)180 232.8 Q F1(\\t)144 244.8 Q F0
-(horizontal tab)180 244.8 Q F1(\\v)144 256.8 Q F0 -.15(ve)180 256.8 S
-(rtical tab).15 E F1(\\)144 268.8 Q/F2 10/Times-Italic@0 SF(nnn)A F0
-(the eight-bit character whose v)180 268.8 Q(alue is the octal v)-.25 E
+SF<5c08>144 84 Q F0(literal \010)180 84 Q(In addition to the GNU Emacs \
+style escape sequences, a second set of backslash escapes is a)108 100.8
+Q -.25(va)-.2 G(ilable:).25 E F1(\\a)144 112.8 Q F0(alert \(bell\))180
+112.8 Q F1(\\b)144 124.8 Q F0(backspace)180 124.8 Q F1(\\d)144 136.8 Q
+F0(delete)180 136.8 Q F1(\\f)144 148.8 Q F0(form feed)180 148.8 Q F1
+(\\n)144 160.8 Q F0(ne)180 160.8 Q(wline)-.25 E F1(\\r)144 172.8 Q F0
+(carriage return)180 172.8 Q F1(\\t)144 184.8 Q F0(horizontal tab)180
+184.8 Q F1(\\v)144 196.8 Q F0 -.15(ve)180 196.8 S(rtical tab).15 E F1
+(\\)144 208.8 Q/F2 10/Times-Italic@0 SF(nnn)A F0
+(the eight-bit character whose v)180 208.8 Q(alue is the octal v)-.25 E
(alue)-.25 E F2(nnn)2.5 E F0(\(one to three digits\))2.5 E F1(\\x)144
-280.8 Q F2(HH)A F0(the eight-bit character whose v)180 280.8 Q
+220.8 Q F2(HH)A F0(the eight-bit character whose v)180 220.8 Q
(alue is the he)-.25 E(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0
(\(one or tw)2.5 E 2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E 1.142
-(When entering the te)108 297.6 R 1.141(xt of a macro, single or double\
+(When entering the te)108 237.6 R 1.141(xt of a macro, single or double\
quotes must be used to indicate a macro de\214nition.)-.15 F .089
-(Unquoted te)108 309.6 R .089(xt is assumed to be a function name.)-.15
+(Unquoted te)108 249.6 R .089(xt is assumed to be a function name.)-.15
F .09(In the macro body)5.089 F 2.59(,t)-.65 G .09
(he backslash escapes described abo)-2.59 F -.15(ve)-.15 G(are e)108
-321.6 Q 2.5(xpanded. Backslash)-.15 F(will quote an)2.5 E 2.5(yo)-.15 G
+261.6 Q 2.5(xpanded. Backslash)-.15 F(will quote an)2.5 E 2.5(yo)-.15 G
(ther character in the macro te)-2.5 E(xt, including " and \010.)-.15 E
-F1(Bash)108 338.4 Q F0(allo)2.93 E .43(ws the current readline k)-.25 F
+F1(Bash)108 278.4 Q F0(allo)2.93 E .43(ws the current readline k)-.25 F
.73 -.15(ey b)-.1 H .429(indings to be displayed or modi\214ed with the)
.15 F F1(bind)2.929 E F0 -.2(bu)2.929 G .429(iltin command.).2 F .045
-(The editing mode may be switched during interacti)108 350.4 R .345 -.15
+(The editing mode may be switched during interacti)108 290.4 R .345 -.15
(ve u)-.25 H .046(se by using the).15 F F1<ad6f>2.546 E F0 .046
(option to the)2.546 F F1(set)2.546 E F0 -.2(bu)2.546 G .046
-(iltin command).2 F(\(see)108 362.4 Q/F3 9/Times-Bold@0 SF(SHELL B)2.5 E
+(iltin command).2 F(\(see)108 302.4 Q/F3 9/Times-Bold@0 SF(SHELL B)2.5 E
(UIL)-.09 E(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E F1
-(Readline V)87 379.2 Q(ariables)-.92 E F0 .044(Readline has v)108 391.2
+(Readline V)87 319.2 Q(ariables)-.92 E F0 .044(Readline has v)108 331.2
R .043(ariables that can be used to further customize its beha)-.25 F
(vior)-.2 E 5.043(.A)-.55 G -.25(va)-2.5 G .043
-(riable may be set in the).25 F F2(inpu-)2.553 E(tr)108 403.2 Q(c)-.37 E
-F0(\214le with a statement of the form)2.81 E F1(set)144 420 Q F2
-(variable\255name value)2.5 E F0(or using the)108 432 Q F1(bind)2.5 E F0
+(riable may be set in the).25 F F2(inpu-)2.553 E(tr)108 343.2 Q(c)-.37 E
+F0(\214le with a statement of the form)2.81 E F1(set)144 360 Q F2
+(variable\255name value)2.5 E F0(or using the)108 372 Q F1(bind)2.5 E F0
-.2(bu)2.5 G(iltin command \(see).2 E F3(SHELL B)2.5 E(UIL)-.09 E
(TIN COMMANDS)-.828 E F0(belo)2.25 E(w\).)-.25 E .79
-(Except where noted, readline v)108 448.8 R .79(ariables can tak)-.25 F
+(Except where noted, readline v)108 388.8 R .79(ariables can tak)-.25 F
3.29(et)-.1 G .79(he v)-3.29 F(alues)-.25 E F1(On)3.29 E F0(or)3.29 E F1
(Off)3.29 E F0 .79(\(without re)3.29 F -.05(ga)-.15 G .79(rd to case\).)
-.05 F(Unrecog-)5.79 E .449(nized v)108 460.8 R .448
+.05 F(Unrecog-)5.79 E .449(nized v)108 400.8 R .448
(ariable names are ignored.)-.25 F .448(When a v)5.448 F .448(ariable v)
-.25 F .448(alue is read, empty or null v)-.25 F .448
-(alues, "on" \(case-insensi-)-.25 F(ti)108 472.8 Q -.15(ve)-.25 G .467
+(alues, "on" \(case-insensi-)-.25 F(ti)108 412.8 Q -.15(ve)-.25 G .467
(\), and "1" are equi).15 F -.25(va)-.25 G .468(lent to).25 F F1(On)
2.968 E F0 5.468(.A)C .468(ll other v)-5.468 F .468(alues are equi)-.25
F -.25(va)-.25 G .468(lent to).25 F F1(Off)2.968 E F0 5.468(.T)C .468
(he v)-5.468 F .468(ariables and their def)-.25 F(ault)-.1 E -.25(va)108
-484.8 S(lues are:).25 E F1(bell\255style \(audible\))108 501.6 Q F0 .011
-(Controls what happens when readline w)144 513.6 R .011
+424.8 S(lues are:).25 E F1(acti)108 441.6 Q -.1(ve)-.1 G<ad72>.1 E
+(egion\255start\255color)-.18 E F0 2.73(As)144 453.6 S .23(tring v)-2.73
+F .23(ariable that controls the te)-.25 F .229
+(xt color and background when displaying the te)-.15 F .229
+(xt in the acti)-.15 F -.15(ve)-.25 G(re)144 465.6 Q 1.526
+(gion \(see the description of)-.15 F F1(enable\255acti)4.026 E -.1(ve)
+-.1 G<ad72>.1 E(egion)-.18 E F0(belo)4.026 E 4.026(w\). This)-.25 F
+1.526(string must not tak)4.026 F 4.027(eu)-.1 G 4.027(pa)-4.027 G -.15
+(ny)-4.027 G(ph)144 477.6 Q .284
+(ysical character positions on the display)-.05 F 2.784(,s)-.65 G 2.784
+(oi)-2.784 G 2.784(ts)-2.784 G .283
+(hould consist only of terminal escape sequences.)-2.784 F .45
+(It is output to the terminal before displaying the te)144 489.6 R .45
+(xt in the acti)-.15 F .75 -.15(ve r)-.25 H -.15(eg).15 G 2.95
+(ion. This).15 F -.25(va)2.95 G .45(riable is reset to).25 F .379
+(the def)144 501.6 R .379(ault v)-.1 F .379(alue whene)-.25 F -.15(ve)
+-.25 G 2.879(rt).15 G .379(he terminal type changes.)-2.879 F .379
+(The def)5.379 F .379(ault v)-.1 F .378
+(alue is the string that puts the)-.25 F .654
+(terminal in standout mode, as obtained from the terminal')144 513.6 R
+3.155(st)-.55 G .655(erminfo description.)-3.155 F 3.155(As)5.655 G .655
+(ample v)-3.155 F(alue)-.25 E(might be)144 525.6 Q/F4 10/Courier@0 SF
+("\\e[01;33m")2.5 E F0(.)A F1(acti)108 537.6 Q -.1(ve)-.1 G<ad72>.1 E
+(egion\255end\255color)-.18 E F0 3.909(As)144 549.6 S 1.409(tring v)
+-3.909 F 1.408(ariable that "undoes" the ef)-.25 F 1.408(fects of)-.25 F
+F1(acti)3.908 E -.1(ve)-.1 G<ad72>.1 E(egion\255start\255color)-.18 E F0
+1.408(and restores "normal")3.908 F .216
+(terminal display appearance after displaying te)144 561.6 R .216
+(xt in the acti)-.15 F .516 -.15(ve r)-.25 H -.15(eg).15 G 2.716
+(ion. This).15 F .216(string must not tak)2.716 F 2.716(eu)-.1 G(p)
+-2.716 E(an)144 573.6 Q 3.738(yp)-.15 G -.05(hy)-3.738 G 1.238
+(sical character positions on the display).05 F 3.737(,s)-.65 G 3.737
+(oi)-3.737 G 3.737(ts)-3.737 G 1.237
+(hould consist only of terminal escape se-)-3.737 F 2.927(quences. It)
+144 585.6 R .427(is output to the terminal after displaying the te)2.927
+F .428(xt in the acti)-.15 F .728 -.15(ve r)-.25 H -.15(eg).15 G 2.928
+(ion. This).15 F -.25(va)2.928 G .428(riable is).25 F .519
+(reset to the def)144 597.6 R .518(ault v)-.1 F .518(alue whene)-.25 F
+-.15(ve)-.25 G 3.018(rt).15 G .518(he terminal type changes.)-3.018 F
+.518(The def)5.518 F .518(ault v)-.1 F .518(alue is the string that)-.25
+F .251(restores the terminal from standout mode, as obtained from the t\
+erminal')144 609.6 R 2.752(st)-.55 G .252(erminfo description.)-2.752 F
+(A)5.252 E(sample v)144 621.6 Q(alue might be)-.25 E F4("\\e[0m")2.5 E
+F0(.)A F1(bell\255style \(audible\))108 633.6 Q F0 .011
+(Controls what happens when readline w)144 645.6 R .011
(ants to ring the terminal bell.)-.1 F .01(If set to)5.01 F F1(none)2.51
E F0 2.51(,r)C .01(eadline ne)-2.51 F -.15(ve)-.25 G(r).15 E .94
-(rings the bell.)144 525.6 R .94(If set to)5.94 F F1(visible)3.44 E F0
+(rings the bell.)144 657.6 R .94(If set to)5.94 F F1(visible)3.44 E F0
3.44(,r)C .94(eadline uses a visible bell if one is a)-3.44 F -.25(va)
-.2 G 3.44(ilable. If).25 F .94(set to)3.44 F F1(audible)3.44 E F0(,)A
-(readline attempts to ring the terminal')144 537.6 Q 2.5(sb)-.55 G(ell.)
--2.5 E F1(bind\255tty\255special\255chars \(On\))108 549.6 Q F0 .056
-(If set to)144 561.6 R F1(On)2.556 E F0 2.556(,r)C .056(eadline attempt\
+(readline attempts to ring the terminal')144 669.6 Q 2.5(sb)-.55 G(ell.)
+-2.5 E F1(bind\255tty\255special\255chars \(On\))108 681.6 Q F0 .056
+(If set to)144 693.6 R F1(On)2.556 E F0 2.556(,r)C .056(eadline attempt\
s to bind the control characters treated specially by the k)-2.556 F
-(ernel')-.1 E 2.555(st)-.55 G(ermi-)-2.555 E(nal dri)144 573.6 Q -.15
+(ernel')-.1 E 2.555(st)-.55 G(ermi-)-2.555 E(nal dri)144 705.6 Q -.15
(ve)-.25 G 2.5(rt).15 G 2.5(ot)-2.5 G(heir readline equi)-2.5 E -.25(va)
--.25 G(lents.).25 E F1(blink\255matching\255par)108 585.6 Q(en \(Off\))
--.18 E F0 .21(If set to)144 597.6 R F1(On)2.71 E F0 2.71(,r)C .21
-(eadline attempts to brie\215y mo)-2.71 F .51 -.15(ve t)-.15 H .21
-(he cursor to an opening parenthesis when a closing).15 F
-(parenthesis is inserted.)144 609.6 Q F1(color)108 621.6 Q
-(ed\255completion\255pr)-.18 E(e\214x \(Off\))-.18 E F0 .515(If set to)
-144 633.6 R F1(On)3.015 E F0 3.015(,w)C .515(hen listing completions, r\
-eadline displays the common pre\214x of the set of possible)-3.015 F
-2.935(completions using a dif)144 645.6 R 2.935(ferent color)-.25 F
-7.936(.T)-.55 G 2.936(he color de\214nitions are tak)-7.936 F 2.936
-(en from the v)-.1 F 2.936(alue of the)-.25 F F1(LS_COLORS)144 657.6 Q
-F0(en)2.5 E(vironment v)-.4 E(ariable.)-.25 E F1(color)108 669.6 Q
-(ed\255stats \(Off\))-.18 E F0 1.58(If set to)144 681.6 R F1(On)4.08 E
-F0 4.08(,r)C 1.579(eadline displays possible completions using dif)-4.08
-F 1.579(ferent colors to indicate their \214le)-.25 F 2.5(type. The)144
-693.6 R(color de\214nitions are tak)2.5 E(en from the v)-.1 E
-(alue of the)-.25 E F1(LS_COLORS)2.5 E F0(en)2.5 E(vironment v)-.4 E
-(ariable.)-.25 E F1(comment\255begin \(`)108 705.6 Q(`#')-.63 E('\))-.63
-E F0 .884(The string that is inserted when the readline)144 717.6 R F1
-(insert\255comment)3.385 E F0 .885(command is e)3.385 F -.15(xe)-.15 G
-3.385(cuted. This).15 F(com-)3.385 E(mand is bound to)144 729.6 Q F1
-(M\255#)2.5 E F0(in emacs mode and to)2.5 E F1(#)2.5 E F0
-(in vi command mode.)2.5 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235
-E(41)190.395 E 0 Cg EP
-%%Page: 42 42
+-.25 G(lents.).25 E(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E
+(43)185.115 E 0 Cg EP
+%%Page: 44 44
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(completion\255display\255width \(\2551\))108 84 Q F0 1.453(The numbe\
-r of screen columns used to display possible matches when performing co\
-mpletion.)144 96 R .193(The v)144 108 R .193(alue is ignored if it is l\
-ess than 0 or greater than the terminal screen width.)-.25 F 2.694(Av)
-5.194 G .194(alue of 0 will)-2.944 F
-(cause matches to be displayed one per line.)144 120 Q(The def)5 E
-(ault v)-.1 E(alue is \2551.)-.25 E F1(completion\255ignor)108 132 Q
-(e\255case \(Off\))-.18 E F0(If set to)144 144 Q F1(On)2.5 E F0 2.5(,r)C
+SF(blink\255matching\255par)108 84 Q(en \(Off\))-.18 E F0 .21(If set to)
+144 96 R F1(On)2.71 E F0 2.71(,r)C .21(eadline attempts to brie\215y mo)
+-2.71 F .51 -.15(ve t)-.15 H .21
+(he cursor to an opening parenthesis when a closing).15 F
+(parenthesis is inserted.)144 108 Q F1(color)108 120 Q
+(ed\255completion\255pr)-.18 E(e\214x \(Off\))-.18 E F0 .515(If set to)
+144 132 R F1(On)3.015 E F0 3.015(,w)C .515(hen listing completions, rea\
+dline displays the common pre\214x of the set of possible)-3.015 F 2.935
+(completions using a dif)144 144 R 2.935(ferent color)-.25 F 7.936(.T)
+-.55 G 2.936(he color de\214nitions are tak)-7.936 F 2.936
+(en from the v)-.1 F 2.936(alue of the)-.25 F F1(LS_COLORS)144 156 Q F0
+(en)3.077 E .577(vironment v)-.4 F 3.077(ariable. If)-.25 F .577
+(there is a color de\214nition in)3.077 F F1($LS_COLORS)3.077 E F0 .577
+(for the cus-)3.077 F .134(tom suf)144 168 R .135(\214x "readline-color\
+ed-completion-pre\214x", readline uses this color for the common pre\
+\214x in-)-.25 F(stead of its def)144 180 Q(ault.)-.1 E F1(color)108 192
+Q(ed\255stats \(Off\))-.18 E F0 1.58(If set to)144 204 R F1(On)4.08 E F0
+4.08(,r)C 1.579(eadline displays possible completions using dif)-4.08 F
+1.579(ferent colors to indicate their \214le)-.25 F 2.5(type. The)144
+216 R(color de\214nitions are tak)2.5 E(en from the v)-.1 E(alue of the)
+-.25 E F1(LS_COLORS)2.5 E F0(en)2.5 E(vironment v)-.4 E(ariable.)-.25 E
+F1(comment\255begin \(`)108 228 Q(`#')-.63 E('\))-.63 E F0 .884
+(The string that is inserted when the readline)144 240 R F1
+(insert\255comment)3.385 E F0 .885(command is e)3.385 F -.15(xe)-.15 G
+3.385(cuted. This).15 F(com-)3.385 E(mand is bound to)144 252 Q F1
+(M\255#)2.5 E F0(in emacs mode and to)2.5 E F1(#)2.5 E F0
+(in vi command mode.)2.5 E F1(completion\255display\255width \(\2551\))
+108 264 Q F0 1.453(The number of screen columns used to display possibl\
+e matches when performing completion.)144 276 R .193(The v)144 288 R
+.193(alue is ignored if it is less than 0 or greater than the terminal \
+screen width.)-.25 F 2.694(Av)5.194 G .194(alue of 0 will)-2.944 F
+(cause matches to be displayed one per line.)144 300 Q(The def)5 E
+(ault v)-.1 E(alue is \2551.)-.25 E F1(completion\255ignor)108 312 Q
+(e\255case \(Off\))-.18 E F0(If set to)144 324 Q F1(On)2.5 E F0 2.5(,r)C
(eadline performs \214lename matching and completion in a case\255insen\
siti)-2.5 E .3 -.15(ve f)-.25 H(ashion.).05 E F1
-(completion\255map\255case \(Off\))108 156 Q F0 .094(If set to)144 168 R
+(completion\255map\255case \(Off\))108 336 Q F0 .094(If set to)144 348 R
F1(On)2.593 E F0 2.593(,a)C(nd)-2.593 E F1(completion\255ignor)2.593 E
(e\255case)-.18 E F0 .093(is enabled, readline treats h)2.593 F .093
(yphens \()-.05 F/F2 10/Times-Italic@0 SF<ad>A F0 2.593(\)a)C .093
-(nd underscores)-2.593 F(\()144 180 Q F2(_)A F0 2.5(\)a)C 2.5(se)-2.5 G
+(nd underscores)-2.593 F(\()144 360 Q F2(_)A F0 2.5(\)a)C 2.5(se)-2.5 G
(qui)-2.5 E -.25(va)-.25 G(lent when performing case\255insensiti).25 E
.3 -.15(ve \214)-.25 H(lename matching and completion.).15 E F1
-(completion\255pr)108 192 Q(e\214x\255display\255length \(0\))-.18 E F0
+(completion\255pr)108 372 Q(e\214x\255display\255length \(0\))-.18 E F0
.829(The length in characters of the common pre\214x of a list of possi\
-ble completions that is displayed)144 204 R 1.275
-(without modi\214cation.)144 216 R 1.275(When set to a v)6.275 F 1.274
+ble completions that is displayed)144 384 R 1.275
+(without modi\214cation.)144 396 R 1.275(When set to a v)6.275 F 1.274
(alue greater than zero, common pre\214x)-.25 F 1.274
-(es longer than this)-.15 F -.25(va)144 228 S(lue are replaced with an \
+(es longer than this)-.15 F -.25(va)144 408 S(lue are replaced with an \
ellipsis when displaying possible completions.).25 E F1
-(completion\255query\255items \(100\))108 240 Q F0 .529
-(This determines when the user is queried about vie)144 252 R .53
+(completion\255query\255items \(100\))108 420 Q F0 .529
+(This determines when the user is queried about vie)144 432 R .53
(wing the number of possible completions gen-)-.25 F .561(erated by the)
-144 264 R F1(possible\255completions)3.061 E F0 3.061(command. It)3.061
+144 444 R F1(possible\255completions)3.061 E F0 3.061(command. It)3.061
F .561(may be set to an)3.061 F 3.06(yi)-.15 G(nte)-3.06 E .56(ger v)
--.15 F .56(alue greater than or)-.25 F .782(equal to zero.)144 276 R
+-.15 F .56(alue greater than or)-.25 F .782(equal to zero.)144 456 R
.783(If the number of possible completions is greater than or equal to \
-the v)5.782 F .783(alue of this)-.25 F -.25(va)144 288 S .368
+the v)5.782 F .783(alue of this)-.25 F -.25(va)144 468 S .368
(riable, readline will ask whether or not the user wishes to vie).25 F
2.867(wt)-.25 G .367(hem; otherwise the)-2.867 F 2.867(ya)-.15 G .367
-(re simply)-2.867 F(listed on the terminal.)144 300 Q F1(con)108 312 Q
--.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .612(If set to)144 324 R F1(On)
-3.112 E F0 3.112(,r)C .613(eadline will con)-3.112 F -.15(ve)-.4 G .613
-(rt characters with the eighth bit set to an ASCII k).15 F .913 -.15
-(ey s)-.1 H .613(equence by).15 F .541
+(re simply)-2.867 F .672(listed on the terminal.)144 480 R 3.172(Az)
+5.672 G .673(ero v)-3.172 F .673(alue means readline should ne)-.25 F
+-.15(ve)-.25 G 3.173(ra).15 G .673(sk; ne)-3.173 F -.05(ga)-.15 G(ti).05
+E .973 -.15(ve v)-.25 H .673(alues are treated)-.1 F(as zero.)144 492 Q
+F1(con)108 504 Q -.1(ve)-.4 G(rt\255meta \(On\)).1 E F0 .613(If set to)
+144 516 R F1(On)3.113 E F0 3.113(,r)C .613(eadline will con)-3.113 F
+-.15(ve)-.4 G .613(rt characters with the eighth bit set to an ASCII k)
+.15 F .912 -.15(ey s)-.1 H .612(equence by).15 F .541
(stripping the eighth bit and pre\214xing an escape character \(in ef)
-144 336 R .541(fect, using escape as the)-.25 F F2 .541(meta pr)3.041 F
-(e-)-.37 E<8c78>144 348 Q F0 2.5(\). The)B(def)2.5 E(ault is)-.1 E F2
-(On)2.5 E F0 2.5(,b)C(ut readline will set it to)-2.7 E F2(Of)2.5 E(f)
--.18 E F0(if the locale contains eight-bit characters.)2.5 E F1
-(disable\255completion \(Off\))108 360 Q F0 .038(If set to)144 372 R F1
+144 528 R .541(fect, using escape as the)-.25 F F2 .542(meta pr)3.042 F
+(e-)-.37 E<8c78>144 540 Q F0 3.751(\). The)B(def)3.751 E 1.251(ault is)
+-.1 F F2(On)3.751 E F0 3.751(,b)C 1.251(ut readline will set it to)
+-3.951 F F2(Of)3.75 E(f)-.18 E F0 1.25
+(if the locale contains eight-bit characters.)3.75 F 1.141(This v)144
+552 R 1.141(ariable is dependent on the)-.25 F F1(LC_CTYPE)3.641 E F0
+1.141(locale cate)3.641 F(gory)-.15 E 3.641(,a)-.65 G 1.142
+(nd may change if the locale is)-3.641 F(changed.)144 564 Q F1
+(disable\255completion \(Off\))108 576 Q F0 .038(If set to)144 588 R F1
(On)2.538 E F0 2.538(,r)C .038(eadline will inhibit w)-2.538 F .038
(ord completion.)-.1 F .038
(Completion characters will be inserted into the)5.038 F(line as if the)
-144 384 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E F0
-(.)A F1(echo\255contr)108 396 Q(ol\255characters \(On\))-.18 E F0 1.211
-(When set to)144 408 R F1(On)3.711 E F0 3.711(,o)C 3.711(no)-3.711 G
-1.211(perating systems that indicate the)-3.711 F 3.711(ys)-.15 G 1.21
+144 600 Q 2.5(yh)-.15 G(ad been mapped to)-2.5 E F1(self-insert)2.5 E F0
+(.)A F1(echo\255contr)108 612 Q(ol\255characters \(On\))-.18 E F0 1.21
+(When set to)144 624 R F1(On)3.71 E F0 3.71(,o)C 3.71(no)-3.71 G 1.211
+(perating systems that indicate the)-3.71 F 3.711(ys)-.15 G 1.211
(upport it, readline echoes a character)-3.711 F
-(corresponding to a signal generated from the k)144 420 Q -.15(ey)-.1 G
-(board.).15 E F1(editing\255mode \(emacs\))108 432 Q F0 .141
-(Controls whether readline be)144 444 R .141(gins with a set of k)-.15 F
-.441 -.15(ey b)-.1 H .141(indings similar to).15 F F2(Emacs)2.642 E F0
-(or)2.642 E F2(vi)2.642 E F0(.)A F1(editing\255mode)5.142 E F0
-(can be set to either)144 456 Q F1(emacs)2.5 E F0(or)2.5 E F1(vi)2.5 E
-F0(.)A F1(emacs\255mode\255string \(@\))108 468 Q F0 .518(If the)144 480
-R F2(show\255mode\255in\255pr)3.018 E(ompt)-.45 E F0 -.25(va)3.018 G
-.517(riable is enabled, this string is displayed immediately before the)
+(corresponding to a signal generated from the k)144 636 Q -.15(ey)-.1 G
+(board.).15 E F1(editing\255mode \(emacs\))108 648 Q F0 .142
+(Controls whether readline be)144 660 R .141(gins with a set of k)-.15 F
+.441 -.15(ey b)-.1 H .141(indings similar to).15 F F2(Emacs)2.641 E F0
+(or)2.641 E F2(vi)2.641 E F0(.)A F1(editing\255mode)5.141 E F0
+(can be set to either)144 672 Q F1(emacs)2.5 E F0(or)2.5 E F1(vi)2.5 E
+F0(.)A F1(emacs\255mode\255string \(@\))108 684 Q F0 .517(If the)144 696
+R F2(show\255mode\255in\255pr)3.017 E(ompt)-.45 E F0 -.25(va)3.017 G
+.518(riable is enabled, this string is displayed immediately before the)
.25 F .622
-(last line of the primary prompt when emacs editing mode is acti)144 492
-R -.15(ve)-.25 G 5.622(.T).15 G .622(he v)-5.622 F .622(alue is e)-.25 F
-.622(xpanded lik)-.15 F 3.122(ea)-.1 G -.1(ke)144 504 S 3.34(yb)-.05 G
-.839(inding, so the standard set of meta- and control pre\214x)-3.34 F
-.839(es and backslash escape sequences is)-.15 F -.2(av)144 516 S 2.798
-(ailable. Use)-.05 F .298(the \\1 and \\2 escapes to be)2.798 F .298
-(gin and end sequences of non-printing characters, which)-.15 F
+(last line of the primary prompt when emacs editing mode is acti)144 708
+R -.15(ve)-.25 G 5.622(.T).15 G .622(he v)-5.622 F .621(alue is e)-.25 F
+.621(xpanded lik)-.15 F 3.121(ea)-.1 G -.1(ke)144 720 S 3.339(yb)-.05 G
+.839(inding, so the standard set of meta- and control pre\214x)-3.339 F
+.84(es and backslash escape sequences is)-.15 F(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(44)185.115 E 0 Cg EP
+%%Page: 45 45
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E -.2(av)144 84 S
+2.798(ailable. Use)-.05 F .298(the \\1 and \\2 escapes to be)2.798 F
+.298(gin and end sequences of non-printing characters, which)-.15 F
(can be used to embed a terminal control sequence into the mode string.)
-144 528 Q F1(enable\255brack)108 540 Q(eted\255paste \(On\))-.1 E F0
-1.222(When set to)144 552 R F1(On)3.721 E F0 3.721(,r)C 1.221
-(eadline will con\214gure the terminal in a w)-3.721 F 1.221
-(ay that will enable it to insert each)-.1 F .353
-(paste into the editing b)144 564 R(uf)-.2 E .353(fer as a single strin\
-g of characters, instead of treating each character as if)-.25 F .544
-(it had been read from the k)144 576 R -.15(ey)-.1 G 3.043(board. This)
-.15 F .543(can pre)3.043 F -.15(ve)-.25 G .543
-(nt pasted characters from being interpreted as).15 F(editing commands.)
-144 588 Q F1(enable\255k)108 600 Q(eypad \(Off\))-.1 E F0 .892
-(When set to)144 612 R F1(On)3.393 E F0 3.393(,r)C .893
+144 96 Q/F1 10/Times-Bold@0 SF(enable\255acti)108 108 Q -.1(ve)-.1 G
+<ad72>.1 E(egion \(On\))-.18 E F0(The)144 120 Q/F2 10/Times-Italic@0 SF
+(point)3.245 E F0 .746(is the current cursor position, and)3.245 F F2
+(mark)3.246 E F0 .746(refers to a sa)3.246 F -.15(ve)-.2 G 3.246(dc).15
+G .746(ursor position.)-3.246 F .746(The te)5.746 F .746(xt be-)-.15 F
+.344(tween the point and mark is referred to as the)144 132 R F2 -.37
+(re)2.844 G(gion)-.03 E F0 5.344(.W)C .344(hen this v)-5.344 F .344
+(ariable is set to)-.25 F F2(On)2.844 E F0 2.844(,r)C .344(eadline al-)
+-2.844 F(lo)144 144 Q .098(ws certain commands to designate the re)-.25
+F .098(gion as)-.15 F F2(active)2.598 E F0 5.098(.W)C .098(hen the re)
+-5.098 F .098(gion is acti)-.15 F -.15(ve)-.25 G 2.598(,r).15 G .098
+(eadline high-)-2.598 F .971(lights the te)144 156 R .971(xt in the re)
+-.15 F .971(gion using the v)-.15 F .971(alue of the)-.25 F F1(acti)3.47
+E -.1(ve)-.1 G<ad72>.1 E(egion\255start\255color)-.18 E F0 3.47(,w)C .97
+(hich def)-3.47 F .97(aults to)-.1 F .484
+(the string that enables the terminal')144 168 R 2.985(ss)-.55 G .485
+(tandout mode.)-2.985 F .485(The acti)5.485 F .785 -.15(ve r)-.25 H -.15
+(eg).15 G .485(ion sho).15 F .485(ws the te)-.25 F .485(xt inserted by)
+-.15 F(brack)144 180 Q(eted-paste and an)-.1 E 2.5(ym)-.15 G(atching te)
+-2.5 E(xt found by incremental and non-incremental history searches.)
+-.15 E F1(enable\255brack)108 192 Q(eted\255paste \(On\))-.1 E F0 .841
+(When set to)144 204 R F1(On)3.341 E F0 3.341(,r)C .841(eadline con\214\
+gures the terminal to insert each paste into the editing b)-3.341 F(uf)
+-.2 E .84(fer as a)-.25 F .799(single string of characters, instead of \
+treating each character as if it had been read from the k)144 216 R -.15
+(ey)-.1 G(-).15 E 3.159(board. This)144 228 R(pre)3.159 E -.15(ve)-.25 G
+.659(nts readline from e).15 F -.15(xe)-.15 G .659(cuting an).15 F 3.158
+(ye)-.15 G .658(diting commands bound to k)-3.158 F .958 -.15(ey s)-.1 H
+.658(equences ap-).15 F(pearing in the pasted te)144 240 Q(xt.)-.15 E F1
+(enable\255k)108 252 Q(eypad \(Off\))-.1 E F0 .892(When set to)144 264 R
+F1(On)3.393 E F0 3.393(,r)C .893
(eadline will try to enable the application k)-3.393 F -.15(ey)-.1 G
.893(pad when it is called.).15 F .893(Some sys-)5.893 F
-(tems need this to enable the arro)144 624 Q 2.5(wk)-.25 G -.15(ey)-2.6
-G(s.).15 E F1(enable\255meta\255k)108 636 Q(ey \(On\))-.1 E F0 .64
-(When set to)144 648 R F1(On)3.14 E F0 3.14(,r)C .64
+(tems need this to enable the arro)144 276 Q 2.5(wk)-.25 G -.15(ey)-2.6
+G(s.).15 E F1(enable\255meta\255k)108 288 Q(ey \(On\))-.1 E F0 .64
+(When set to)144 300 R F1(On)3.14 E F0 3.14(,r)C .64
(eadline will try to enable an)-3.14 F 3.14(ym)-.15 G .64
(eta modi\214er k)-3.14 F .94 -.15(ey t)-.1 H .64
-(he terminal claims to support).15 F(when it is called.)144 660 Q
+(he terminal claims to support).15 F(when it is called.)144 312 Q
(On man)5 E 2.5(yt)-.15 G(erminals, the meta k)-2.5 E .3 -.15(ey i)-.1 H
2.5(su).15 G(sed to send eight-bit characters.)-2.5 E F1
-(expand\255tilde \(Off\))108 672 Q F0(If set to)144 684 Q F1(On)2.5 E F0
+(expand\255tilde \(Off\))108 324 Q F0(If set to)144 336 Q F1(On)2.5 E F0
2.5(,t)C(ilde e)-2.5 E(xpansion is performed when readline attempts w)
--.15 E(ord completion.)-.1 E F1(history\255pr)108 696 Q(eser)-.18 E -.1
-(ve)-.1 G(\255point \(Off\)).1 E F0 .552(If set to)144 708 R F1(On)3.052
+-.15 E(ord completion.)-.1 E F1(history\255pr)108 348 Q(eser)-.18 E -.1
+(ve)-.1 G(\255point \(Off\)).1 E F0 .552(If set to)144 360 R F1(On)3.052
E F0 3.052(,t)C .552(he history code attempts to place point at the sam\
-e location on each history line re-)-3.052 F(trie)144 720 Q -.15(ve)-.25
+e location on each history line re-)-3.052 F(trie)144 372 Q -.15(ve)-.25
G 2.5(dw).15 G(ith)-2.5 E F1(pr)2.5 E -.15(ev)-.18 G(ious-history).15 E
-F0(or)2.5 E F1(next-history)2.5 E F0(.)A(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(42)190.395 E 0 Cg EP
-%%Page: 43 43
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(history\255size \(unset\))108 84 Q F0 .949
-(Set the maximum number of history entries sa)144 96 R -.15(ve)-.2 G
-3.448(di).15 G 3.448(nt)-3.448 G .948(he history list.)-3.448 F .948
-(If set to zero, an)5.948 F 3.448(ye)-.15 G(xisting)-3.598 E .482
-(history entries are deleted and no ne)144 108 R 2.982(we)-.25 G .483
-(ntries are sa)-2.982 F -.15(ve)-.2 G 2.983(d. If).15 F .483(set to a v)
-2.983 F .483(alue less than zero, the num-)-.25 F .278
-(ber of history entries is not limited.)144 120 R .277(By def)5.278 F
+F0(or)2.5 E F1(next-history)2.5 E F0(.)A F1(history\255size \(unset\))
+108 384 Q F0 .949(Set the maximum number of history entries sa)144 396 R
+-.15(ve)-.2 G 3.448(di).15 G 3.448(nt)-3.448 G .948(he history list.)
+-3.448 F .948(If set to zero, an)5.948 F 3.448(ye)-.15 G(xisting)-3.598
+E .482(history entries are deleted and no ne)144 408 R 2.982(we)-.25 G
+.483(ntries are sa)-2.982 F -.15(ve)-.2 G 2.983(d. If).15 F .483
+(set to a v)2.983 F .483(alue less than zero, the num-)-.25 F .278
+(ber of history entries is not limited.)144 420 R .277(By def)5.278 F
.277(ault, the number of history entries is set to the v)-.1 F .277
-(alue of)-.25 F(the)144 132 Q F1(HISTSIZE)3.41 E F0 .91(shell v)3.41 F
-3.41(ariable. If)-.25 F .911(an attempt is made to set)3.41 F/F2 10
-/Times-Italic@0 SF(history\255size)3.411 E F0 .911(to a non-numeric v)
-3.411 F(alue,)-.25 E
-(the maximum number of history entries will be set to 500.)144 144 Q F1
-(horizontal\255scr)108 156 Q(oll\255mode \(Off\))-.18 E F0 .449
-(When set to)144 168 R F1(On)2.949 E F0 2.949(,m)C(ak)-2.949 E .448
+(alue of)-.25 F(the)144 432 Q F1(HISTSIZE)3.41 E F0 .91(shell v)3.41 F
+3.41(ariable. If)-.25 F .911(an attempt is made to set)3.41 F F2
+(history\255size)3.411 E F0 .911(to a non-numeric v)3.411 F(alue,)-.25 E
+(the maximum number of history entries will be set to 500.)144 444 Q F1
+(horizontal\255scr)108 456 Q(oll\255mode \(Off\))-.18 E F0 .449
+(When set to)144 468 R F1(On)2.949 E F0 2.949(,m)C(ak)-2.949 E .448
(es readline use a single line for display)-.1 F 2.948(,s)-.65 G .448
(crolling the input horizontally on a)-2.948 F 1.194(single screen line\
when it becomes longer than the screen width rather than wrapping to a\
- ne)144 180 R(w)-.25 E 2.5(line. This)144 192 R
+ ne)144 480 R(w)-.25 E 2.5(line. This)144 492 R
(setting is automatically enabled for terminals of height 1.)2.5 E F1
-(input\255meta \(Off\))108 204 Q F0 1.062(If set to)144 216 R F1(On)
+(input\255meta \(Off\))108 504 Q F0 1.062(If set to)144 516 R F1(On)
3.562 E F0 3.562(,r)C 1.061(eadline will enable eight-bit input \(that \
is, it will not strip the eighth bit from the)-3.562 F .335
-(characters it reads\), re)144 228 R -.05(ga)-.15 G .335
+(characters it reads\), re)144 528 R -.05(ga)-.15 G .335
(rdless of what the terminal claims it can support.).05 F .336(The name)
-5.336 F F1(meta\255\215ag)2.836 E F0(is)2.836 E 2.865(as)144 240 S(ynon)
+5.336 F F1(meta\255\215ag)2.836 E F0(is)2.836 E 2.865(as)144 540 S(ynon)
-2.865 E .365(ym for this v)-.15 F 2.864(ariable. The)-.25 F(def)2.864 E
.364(ault is)-.1 F F2(Of)2.864 E(f)-.18 E F0 2.864(,b)C .364
(ut readline will set it to)-3.064 F F2(On)2.864 E F0 .364
-(if the locale contains)2.864 F(eight-bit characters.)144 252 Q F1
-(isear)108 264 Q(ch\255terminators \(`)-.18 E(`C\255[C\255J')-.63 E('\))
+(if the locale contains)2.864 F 1.866(eight-bit characters.)144 552 R
+1.866(This v)6.866 F 1.867(ariable is dependent on the)-.25 F F1
+(LC_CTYPE)4.367 E F0 1.867(locale cate)4.367 F(gory)-.15 E 4.367(,a)-.65
+G 1.867(nd may)-4.367 F(change if the locale is changed.)144 564 Q F1
+(isear)108 576 Q(ch\255terminators \(`)-.18 E(`C\255[C\255J')-.63 E('\))
-.63 E F0 .439(The string of characters that should terminate an increm\
-ental search without subsequently e)144 276 R -.15(xe)-.15 G(cut-).15 E
-.935(ing the character as a command.)144 288 R .935(If this v)5.935 F
-.935(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.434(nav).15 G .934
-(alue, the characters)-3.684 F F2(ESC)3.434 E F0(and)144 300 Q F2
+ental search without subsequently e)144 588 R -.15(xe)-.15 G(cut-).15 E
+.934(ing the character as a command.)144 600 R .935(If this v)5.935 F
+.935(ariable has not been gi)-.25 F -.15(ve)-.25 G 3.435(nav).15 G .935
+(alue, the characters)-3.685 F F2(ESC)3.435 E F0(and)144 612 Q F2
(C\255J)2.5 E F0(will terminate an incremental search.)2.5 E F1 -.1(ke)
-108 312 S(ymap \(emacs\)).1 E F0 2.02(Set the current readline k)144 324
-R -.15(ey)-.1 G 4.521(map. The).15 F 2.021(set of v)4.521 F 2.021
-(alid k)-.25 F -.15(ey)-.1 G 2.021(map names is).15 F F2 2.021
-(emacs, emacs\255standar)4.521 F(d,)-.37 E .042
-(emacs\255meta, emacs\255ctlx, vi, vi\255command)144 336 R F0 2.542(,a)C
+108 624 S(ymap \(emacs\)).1 E F0 2.021(Set the current readline k)144
+636 R -.15(ey)-.1 G 4.521(map. The).15 F 2.021(set of v)4.521 F 2.021
+(alid k)-.25 F -.15(ey)-.1 G 2.021(map names is).15 F F2 2.02
+(emacs, emacs\255standar)4.52 F(d,)-.37 E .041
+(emacs\255meta, emacs\255ctlx, vi, vi\255command)144 648 R F0 2.542(,a)C
(nd)-2.542 E F2(vi\255insert)2.832 E F0(.).68 E F2(vi)5.042 E F0 .042
(is equi)2.542 F -.25(va)-.25 G .042(lent to).25 F F2(vi\255command)
-2.541 E F0(;)A F2(emacs)2.541 E F0 .448(is equi)144 348 R -.25(va)-.25 G
-.448(lent to).25 F F2(emacs\255standar)2.948 E(d)-.37 E F0 5.448(.T)C
-.448(he def)-5.448 F .448(ault v)-.1 F .449(alue is)-.25 F F2(emacs)
-3.139 E F0 2.949(;t).27 G .449(he v)-2.949 F .449(alue of)-.25 F F1
-(editing\255mode)2.949 E F0 .449(also af-)2.949 F(fects the def)144 360
-Q(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1 -.1(ke)108 372 S
-(yseq\255timeout \(500\)).1 E F0 .368(Speci\214es the duration)144 384 R
+2.542 E F0(;)A F2(emacs)2.542 E F0 .449(is equi)144 660 R -.25(va)-.25 G
+.449(lent to).25 F F2(emacs\255standar)2.949 E(d)-.37 E F0 5.449(.T)C
+.449(he def)-5.449 F .449(ault v)-.1 F .449(alue is)-.25 F F2(emacs)
+3.139 E F0 2.948(;t).27 G .448(he v)-2.948 F .448(alue of)-.25 F F1
+(editing\255mode)2.948 E F0 .448(also af-)2.948 F(fects the def)144 672
+Q(ault k)-.1 E -.15(ey)-.1 G(map.).15 E F1 -.1(ke)108 684 S
+(yseq\255timeout \(500\)).1 E F0 .367(Speci\214es the duration)144 696 R
F2 -.37(re)2.867 G(adline).37 E F0 .367(will w)2.867 F .367
-(ait for a character when reading an ambiguous k)-.1 F .667 -.15(ey s)
--.1 H(equence).15 E .524(\(one that can form a complete k)144 396 R .824
+(ait for a character when reading an ambiguous k)-.1 F .668 -.15(ey s)
+-.1 H(equence).15 E .525(\(one that can form a complete k)144 708 R .825
-.15(ey s)-.1 H .524(equence using the input read so f).15 F(ar)-.1 E
-3.025(,o)-.4 G 3.025(rc)-3.025 G .525(an tak)-3.025 F 3.025(ea)-.1 G
-.525(dditional in-)-3.025 F .807(put to complete a longer k)144 408 R
+3.024(,o)-.4 G 3.024(rc)-3.024 G .524(an tak)-3.024 F 3.024(ea)-.1 G
+.524(dditional in-)-3.024 F .806(put to complete a longer k)144 720 R
1.106 -.15(ey s)-.1 H 3.306(equence\). If).15 F .806(no input is recei)
-3.306 F -.15(ve)-.25 G 3.306(dw).15 G .806(ithin the timeout,)-3.306 F
-F2 -.37(re)3.306 G(adline).37 E F0(will)3.306 E .906(use the shorter b)
-144 420 R .907(ut complete k)-.2 F 1.207 -.15(ey s)-.1 H 3.407
-(equence. The).15 F -.25(va)3.407 G .907
-(lue is speci\214ed in milliseconds, so a v).25 F .907(alue of)-.25 F
-.05(1000 means that)144 432 R F2 -.37(re)2.55 G(adline).37 E F0 .05
-(will w)2.55 F .05(ait one second for additional input.)-.1 F .05
-(If this v)5.05 F .05(ariable is set to a v)-.25 F(alue)-.25 E .051
-(less than or equal to zero, or to a non-numeric v)144 444 R(alue,)-.25
-E F2 -.37(re)2.551 G(adline).37 E F0 .051(will w)2.551 F .051
-(ait until another k)-.1 F .352 -.15(ey i)-.1 H 2.552(sp).15 G(ressed)
--2.552 E(to decide which k)144 456 Q .3 -.15(ey s)-.1 H
-(equence to complete.).15 E F1(mark\255dir)108 468 Q(ectories \(On\))
--.18 E F0(If set to)144 480 Q F1(On)2.5 E F0 2.5(,c)C
+3.306 F -.15(ve)-.25 G 3.306(dw).15 G .807(ithin the timeout,)-3.306 F
+F2 -.37(re)3.307 G(adline).37 E F0(will)3.307 E(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(45)185.115 E 0 Cg EP
+%%Page: 46 46
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .907
+(use the shorter b)144 84 R .907(ut complete k)-.2 F 1.207 -.15(ey s)-.1
+H 3.407(equence. The).15 F -.25(va)3.407 G .907
+(lue is speci\214ed in milliseconds, so a v).25 F .906(alue of)-.25 F
+.05(1000 means that)144 96 R/F1 10/Times-Italic@0 SF -.37(re)2.55 G
+(adline).37 E F0 .05(will w)2.55 F .05
+(ait one second for additional input.)-.1 F .05(If this v)5.05 F .05
+(ariable is set to a v)-.25 F(alue)-.25 E .051
+(less than or equal to zero, or to a non-numeric v)144 108 R(alue,)-.25
+E F1 -.37(re)2.551 G(adline).37 E F0 .051(will w)2.551 F .051
+(ait until another k)-.1 F .351 -.15(ey i)-.1 H 2.551(sp).15 G(ressed)
+-2.551 E(to decide which k)144 120 Q .3 -.15(ey s)-.1 H
+(equence to complete.).15 E/F2 10/Times-Bold@0 SF(mark\255dir)108 132 Q
+(ectories \(On\))-.18 E F0(If set to)144 144 Q F2(On)2.5 E F0 2.5(,c)C
(ompleted directory names ha)-2.5 E .3 -.15(ve a s)-.2 H(lash appended.)
-.15 E F1(mark\255modi\214ed\255lines \(Off\))108 492 Q F0(If set to)144
-504 Q F1(On)2.5 E F0 2.5(,h)C(istory lines that ha)-2.5 E .3 -.15(ve b)
--.2 H(een modi\214ed are displayed with a preceding asterisk \().15 E F1
-(*)A F0(\).)A F1(mark\255symlink)108 516 Q(ed\255dir)-.1 E
-(ectories \(Off\))-.18 E F0 .175(If set to)144 528 R F1(On)2.675 E F0
+.15 E F2(mark\255modi\214ed\255lines \(Off\))108 156 Q F0(If set to)144
+168 Q F2(On)2.5 E F0 2.5(,h)C(istory lines that ha)-2.5 E .3 -.15(ve b)
+-.2 H(een modi\214ed are displayed with a preceding asterisk \().15 E F2
+(*)A F0(\).)A F2(mark\255symlink)108 180 Q(ed\255dir)-.1 E
+(ectories \(Off\))-.18 E F0 .175(If set to)144 192 R F2(On)2.675 E F0
2.675(,c)C .175
(ompleted names which are symbolic links to directories ha)-2.675 F .475
--.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 540
-Q(alue of)-.25 E F1(mark\255dir)2.5 E(ectories)-.18 E F0(\).)A F1
-(match\255hidden\255\214les \(On\))108 552 Q F0 .192(This v)144 564 R
-.192(ariable, when set to)-.25 F F1(On)2.692 E F0 2.692(,c)C .192
-(auses readline to match \214les whose names be)-2.692 F .193
-(gin with a `.)-.15 F 2.693('\()-.7 G(hidden)-2.693 E .457
-(\214les\) when performing \214lename completion.)144 576 R .456
-(If set to)5.456 F F1(Off)2.956 E F0 2.956(,t)C .456(he leading `.)
--2.956 F 2.956('m)-.7 G .456(ust be supplied by the)-2.956 F
-(user in the \214lename to be completed.)144 588 Q F1
-(menu\255complete\255display\255pr)108 600 Q(e\214x \(Off\))-.18 E F0
-1.585(If set to)144 612 R F1(On)4.085 E F0 4.085(,m)C 1.585(enu complet\
+-.15(ve a s)-.2 H .175(lash appended \(sub-).15 F(ject to the v)144 204
+Q(alue of)-.25 E F2(mark\255dir)2.5 E(ectories)-.18 E F0(\).)A F2
+(match\255hidden\255\214les \(On\))108 216 Q F0 .193(This v)144 228 R
+.193(ariable, when set to)-.25 F F2(On)2.693 E F0 2.693(,c)C .192
+(auses readline to match \214les whose names be)-2.693 F .192
+(gin with a `.)-.15 F 2.692('\()-.7 G(hidden)-2.692 E .456
+(\214les\) when performing \214lename completion.)144 240 R .456
+(If set to)5.456 F F2(Off)2.956 E F0 2.956(,t)C .456(he leading `.)
+-2.956 F 2.956('m)-.7 G .457(ust be supplied by the)-2.956 F
+(user in the \214lename to be completed.)144 252 Q F2
+(menu\255complete\255display\255pr)108 264 Q(e\214x \(Off\))-.18 E F0
+1.586(If set to)144 276 R F2(On)4.086 E F0 4.086(,m)C 1.585(enu complet\
ion displays the common pre\214x of the list of possible completions)
--4.085 F(\(which may be empty\) before c)144 624 Q
-(ycling through the list.)-.15 E F1(output\255meta \(Off\))108 636 Q F0
-.507(If set to)144 648 R F1(On)3.007 E F0 3.007(,r)C .507(eadline will \
+-4.086 F(\(which may be empty\) before c)144 288 Q
+(ycling through the list.)-.15 E F2(output\255meta \(Off\))108 300 Q F0
+.506(If set to)144 312 R F2(On)3.006 E F0 3.006(,r)C .507(eadline will \
display characters with the eighth bit set directly rather than as a me\
-ta-)-3.007 F(pre\214x)144 660 Q .884(ed escape sequence.)-.15 F .884
-(The def)5.884 F .884(ault is)-.1 F F2(Of)3.384 E(f)-.18 E F0 3.384(,b)C
-.884(ut readline will set it to)-3.584 F F2(On)3.384 E F0 .885
-(if the locale contains)3.384 F(eight-bit characters.)144 672 Q F1
-(page\255completions \(On\))108 684 Q F0 .809(If set to)144 696 R F1(On)
-3.308 E F0 3.308(,r)C .808(eadline uses an internal)-3.308 F F2(mor)
+ta-)-3.006 F(pre\214x)144 324 Q .885(ed escape sequence.)-.15 F .884
+(The def)5.884 F .884(ault is)-.1 F F1(Of)3.384 E(f)-.18 E F0 3.384(,b)C
+.884(ut readline will set it to)-3.584 F F1(On)3.384 E F0 .884
+(if the locale contains)3.384 F 1.866(eight-bit characters.)144 336 R
+1.866(This v)6.866 F 1.867(ariable is dependent on the)-.25 F F2
+(LC_CTYPE)4.367 E F0 1.867(locale cate)4.367 F(gory)-.15 E 4.367(,a)-.65
+G 1.867(nd may)-4.367 F(change if the locale is changed.)144 348 Q F2
+(page\255completions \(On\))108 360 Q F0 .809(If set to)144 372 R F2(On)
+3.308 E F0 3.308(,r)C .808(eadline uses an internal)-3.308 F F1(mor)
3.308 E(e)-.37 E F0(-lik)A 3.308(ep)-.1 G .808
(ager to display a screenful of possible comple-)-3.308 F
-(tions at a time.)144 708 Q(GNU Bash 5.1)72 768 Q(2020 October 29)
-141.235 E(43)190.395 E 0 Cg EP
-%%Page: 44 44
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(print\255completions\255horizontally \(Off\))108 84 Q F0 .227
-(If set to)144 96 R F1(On)2.727 E F0 2.727(,r)C .227(eadline will displ\
-ay completions with matches sorted horizontally in alphabetical or)
--2.727 F(-)-.2 E(der)144 108 Q 2.5(,r)-.4 G(ather than do)-2.5 E
-(wn the screen.)-.25 E F1 -2.29 -.18(re v)108 120 T
-(ert\255all\255at\255newline \(Off\)).08 E F0 .699(If set to)144 132 R
-F1(On)3.199 E F0 3.199(,r)C .699
+(tions at a time.)144 384 Q F2
+(print\255completions\255horizontally \(Off\))108 396 Q F0 .227
+(If set to)144 408 R F2(On)2.727 E F0 2.727(,r)C .227(eadline will disp\
+lay completions with matches sorted horizontally in alphabetical or)
+-2.727 F(-)-.2 E(der)144 420 Q 2.5(,r)-.4 G(ather than do)-2.5 E
+(wn the screen.)-.25 E F2 -2.29 -.18(re v)108 432 T
+(ert\255all\255at\255newline \(Off\)).08 E F0 .699(If set to)144 444 R
+F2(On)3.199 E F0 3.199(,r)C .699
(eadline will undo all changes to history lines before returning when)
--3.199 F F1(accept\255line)3.198 E F0(is)3.198 E -.15(exe)144 144 S
+-3.199 F F2(accept\255line)3.198 E F0(is)3.198 E -.15(exe)144 456 S
2.686(cuted. By).15 F(def)2.686 E .186
(ault, history lines may be modi\214ed and retain indi)-.1 F .186
-(vidual undo lists across calls to)-.25 F F1 -.18(re)144 156 S(adline)
-.18 E F0(.)A F1(sho)108 168 Q(w\255all\255if\255ambiguous \(Off\))-.1 E
-F0 .304(This alters the def)144 180 R .304(ault beha)-.1 F .304
-(vior of the completion functions.)-.2 F .304(If set to)5.304 F F1(On)
+(vidual undo lists across calls to)-.25 F F2 -.18(re)144 468 S(adline)
+.18 E F0(.)A F2(sho)108 480 Q(w\255all\255if\255ambiguous \(Off\))-.1 E
+F0 .304(This alters the def)144 492 R .304(ault beha)-.1 F .304
+(vior of the completion functions.)-.2 F .304(If set to)5.304 F F2(On)
2.804 E F0 2.803(,w)C .303(ords which ha)-2.903 F .603 -.15(ve m)-.2 H
(ore).15 E 1.264(than one possible completion cause the matches to be l\
-isted immediately instead of ringing the)144 192 R(bell.)144 204 Q F1
-(sho)108 216 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.346
-(This alters the def)144 228 R 5.346(ault beha)-.1 F 5.345
+isted immediately instead of ringing the)144 504 R(bell.)144 516 Q F2
+(sho)108 528 Q(w\255all\255if\255unmodi\214ed \(Off\))-.1 E F0 5.346
+(This alters the def)144 540 R 5.346(ault beha)-.1 F 5.345
(vior of the completion functions in a f)-.2 F 5.345(ashion similar to)
--.1 F F1(sho)144 240 Q(w\255all\255if\255ambiguous)-.1 E F0 6.69(.I)C
-4.19(fs)-6.69 G 1.691(et to)-4.19 F F1(On)4.191 E F0 4.191(,w)C 1.691
+-.1 F F2(sho)144 552 Q(w\255all\255if\255ambiguous)-.1 E F0 6.69(.I)C
+4.19(fs)-6.69 G 1.691(et to)-4.19 F F2(On)4.191 E F0 4.191(,w)C 1.691
(ords which ha)-4.291 F 1.991 -.15(ve m)-.2 H 1.691
-(ore than one possible completion).15 F 1.04(without an)144 252 R 3.54
+(ore than one possible completion).15 F 1.04(without an)144 564 R 3.54
(yp)-.15 G 1.039
(ossible partial completion \(the possible completions don')-3.54 F
3.539(ts)-.18 G 1.039(hare a common pre\214x\))-3.539 F(cause the match\
-es to be listed immediately instead of ringing the bell.)144 264 Q F1
-(sho)108 276 Q(w\255mode\255in\255pr)-.1 E(ompt \(Off\))-.18 E F0 1.021
-(If set to)144 288 R F1(On)3.521 E F0 3.521(,a)C 1.022
+es to be listed immediately instead of ringing the bell.)144 576 Q F2
+(sho)108 588 Q(w\255mode\255in\255pr)-.1 E(ompt \(Off\))-.18 E F0 1.021
+(If set to)144 600 R F2(On)3.521 E F0 3.521(,a)C 1.022
(dd a string to the be)-3.521 F 1.022
(ginning of the prompt indicating the editing mode: emacs, vi)-.15 F
-(command, or vi insertion.)144 300 Q(The mode strings are user)5 E
-(-settable \(e.g.,)-.2 E/F2 10/Times-Italic@0 SF
-(emacs\255mode\255string)2.5 E F0(\).)A F1
-(skip\255completed\255text \(Off\))108 312 Q F0 .095(If set to)144 324 R
-F1(On)2.595 E F0 2.595(,t)C .095(his alters the def)-2.595 F .095
+(command, or vi insertion.)144 612 Q(The mode strings are user)5 E
+(-settable \(e.g.,)-.2 E F1(emacs\255mode\255string)2.5 E F0(\).)A F2
+(skip\255completed\255text \(Off\))108 624 Q F0 .095(If set to)144 636 R
+F2(On)2.595 E F0 2.595(,t)C .095(his alters the def)-2.595 F .095
(ault completion beha)-.1 F .094
-(vior when inserting a single match into the line.)-.2 F(It')144 336 Q
+(vior when inserting a single match into the line.)-.2 F(It')144 648 Q
2.545(so)-.55 G .045(nly acti)-2.545 F .345 -.15(ve w)-.25 H .046
(hen performing completion in the middle of a w).15 F 2.546(ord. If)-.1
F .046(enabled, readline does not)2.546 F 1.394(insert characters from \
-the completion that match characters after point in the w)144 348 R
-1.394(ord being com-)-.1 F(pleted, so portions of the w)144 360 Q
-(ord follo)-.1 E(wing the cursor are not duplicated.)-.25 E F1
-(vi\255cmd\255mode\255string \(\(cmd\)\))108 372 Q F0 .517(If the)144
-384 R F2(show\255mode\255in\255pr)3.017 E(ompt)-.45 E F0 -.25(va)3.017 G
+the completion that match characters after point in the w)144 660 R
+1.394(ord being com-)-.1 F(pleted, so portions of the w)144 672 Q
+(ord follo)-.1 E(wing the cursor are not duplicated.)-.25 E F2
+(vi\255cmd\255mode\255string \(\(cmd\)\))108 684 Q F0 .517(If the)144
+696 R F1(show\255mode\255in\255pr)3.017 E(ompt)-.45 E F0 -.25(va)3.017 G
.518(riable is enabled, this string is displayed immediately before the)
.25 F .475(last line of the primary prompt when vi editing mode is acti)
-144 396 R .775 -.15(ve a)-.25 H .475(nd in command mode.).15 F .475
-(The v)5.475 F(alue)-.25 E .33(is e)144 408 R .33(xpanded lik)-.15 F
-2.83(eak)-.1 G .63 -.15(ey b)-2.93 H .33
-(inding, so the standard set of meta- and control pre\214x).15 F .33
-(es and backslash es-)-.15 F .245(cape sequences is a)144 420 R -.25(va)
--.2 G 2.745(ilable. Use).25 F .244(the \\1 and \\2 escapes to be)2.745 F
-.244(gin and end sequences of non-printing)-.15 F(characters, which can\
- be used to embed a terminal control sequence into the mode string.)144
-432 Q F1(vi\255ins\255mode\255string \(\(ins\)\))108 444 Q F0 .517
-(If the)144 456 R F2(show\255mode\255in\255pr)3.017 E(ompt)-.45 E F0
--.25(va)3.017 G .518
+144 708 R .775 -.15(ve a)-.25 H .475(nd in command mode.).15 F .475
+(The v)5.475 F(alue)-.25 E 1.235(is e)144 720 R 1.235(xpanded lik)-.15 F
+3.735(eak)-.1 G 1.535 -.15(ey b)-3.835 H 1.236
+(inding, so the standard set of meta- and control pre\214x).15 F 1.236
+(es and backslash)-.15 F(GNU Bash 5.2)72 768 Q(2022 September 19)135.955
+E(46)185.115 E 0 Cg EP
+%%Page: 47 47
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .315
+(escape sequences is a)144 84 R -.25(va)-.2 G 2.815(ilable. Use).25 F
+.314(the \\1 and \\2 escapes to be)2.815 F .314
+(gin and end sequences of non-print-)-.15 F(ing characters, which can b\
+e used to embed a terminal control sequence into the mode string.)144 96
+Q/F1 10/Times-Bold@0 SF(vi\255ins\255mode\255string \(\(ins\)\))108 108
+Q F0 .517(If the)144 120 R/F2 10/Times-Italic@0 SF
+(show\255mode\255in\255pr)3.017 E(ompt)-.45 E F0 -.25(va)3.017 G .518
(riable is enabled, this string is displayed immediately before the).25
F .186(last line of the primary prompt when vi editing mode is acti)144
-468 R .486 -.15(ve a)-.25 H .186(nd in insertion mode.).15 F .186(The v)
-5.186 F .186(alue is)-.25 F -.15(ex)144 480 S .923(panded lik).15 F
+132 R .486 -.15(ve a)-.25 H .186(nd in insertion mode.).15 F .186(The v)
+5.186 F .186(alue is)-.25 F -.15(ex)144 144 S .923(panded lik).15 F
3.423(eak)-.1 G 1.223 -.15(ey b)-3.523 H .924
(inding, so the standard set of meta- and control pre\214x).15 F .924
-(es and backslash es-)-.15 F .245(cape sequences is a)144 492 R -.25(va)
+(es and backslash es-)-.15 F .245(cape sequences is a)144 156 R -.25(va)
-.2 G 2.745(ilable. Use).25 F .244(the \\1 and \\2 escapes to be)2.745 F
.244(gin and end sequences of non-printing)-.15 F(characters, which can\
be used to embed a terminal control sequence into the mode string.)144
-504 Q F1(visible\255stats \(Off\))108 516 Q F0 .846(If set to)144 528 R
+168 Q F1(visible\255stats \(Off\))108 180 Q F0 .846(If set to)144 192 R
F1(On)3.346 E F0 3.346(,ac)C .846(haracter denoting a \214le')-3.346 F
3.346(st)-.55 G .846(ype as reported by)-3.346 F F2(stat)3.346 E F0 .846
(\(2\) is appended to the \214lename)B
-(when listing possible completions.)144 540 Q F1
-(Readline Conditional Constructs)87 556.8 Q F0 .05
-(Readline implements a f)108 568.8 R .05(acility similar in spirit to t\
+(when listing possible completions.)144 204 Q F1
+(Readline Conditional Constructs)87 220.8 Q F0 .05
+(Readline implements a f)108 232.8 R .05(acility similar in spirit to t\
he conditional compilation features of the C preprocessor)-.1 F .096
-(which allo)108 580.8 R .096(ws k)-.25 F .396 -.15(ey b)-.1 H .096
+(which allo)108 244.8 R .096(ws k)-.25 F .396 -.15(ey b)-.1 H .096
(indings and v).15 F .096
(ariable settings to be performed as the result of tests.)-.25 F .097
-(There are four parser)5.096 F(directi)108 592.8 Q -.15(ve)-.25 G 2.5
-(su).15 G(sed.)-2.5 E F1($if)108 609.6 Q F0(The)144 609.6 Q F1($if)2.963
+(There are four parser)5.096 F(directi)108 256.8 Q -.15(ve)-.25 G 2.5
+(su).15 G(sed.)-2.5 E F1($if)108 273.6 Q F0(The)144 273.6 Q F1($if)2.963
E F0 .463(construct allo)2.963 F .462(ws bindings to be made based on t\
he editing mode, the terminal being used,)-.25 F
-(or the application using readline.)144 621.6 Q(The te)5 E
+(or the application using readline.)144 285.6 Q(The te)5 E
(xt of the test, after an)-.15 E 2.5(yc)-.15 G(omparison operator)-2.5 E
-(,)-.4 E -.15(ex)146.5 633.6 S(tends to the end of the line; unless oth\
+(,)-.4 E -.15(ex)146.5 297.6 S(tends to the end of the line; unless oth\
erwise noted, no characters are required to isolate it.).15 E F1(mode)
-144 650.4 Q F0(The)180 650.4 Q F1(mode=)3.711 E F0 1.211(form of the)
+144 314.4 Q F0(The)180 314.4 Q F1(mode=)3.711 E F0 1.211(form of the)
3.711 F F1($if)3.711 E F0(directi)3.711 E 1.511 -.15(ve i)-.25 H 3.711
(su).15 G 1.211(sed to test whether readline is in emacs or vi)-3.711 F
-3.065(mode. This)180 662.4 R .565(may be used in conjunction with the)
+3.065(mode. This)180 326.4 R .565(may be used in conjunction with the)
3.065 F F1 .565(set k)3.065 F(eymap)-.1 E F0 .565
-(command, for instance, to)3.065 F .735(set bindings in the)180 674.4 R
+(command, for instance, to)3.065 F .735(set bindings in the)180 338.4 R
F2(emacs\255standar)3.235 E(d)-.37 E F0(and)3.235 E F2(emacs\255ctlx)
3.235 E F0 -.1(ke)3.235 G .735(ymaps only if readline is starting)-.05 F
-(out in emacs mode.)180 686.4 Q F1(term)144 703.2 Q F0(The)180 703.2 Q
+(out in emacs mode.)180 350.4 Q F1(term)144 367.2 Q F0(The)180 367.2 Q
F1(term=)3.197 E F0 .696
(form may be used to include terminal-speci\214c k)3.197 F .996 -.15
-(ey b)-.1 H .696(indings, perhaps to bind).15 F .654(the k)180 715.2 R
+(ey b)-.1 H .696(indings, perhaps to bind).15 F .654(the k)180 379.2 R
.954 -.15(ey s)-.1 H .654(equences output by the terminal').15 F 3.154
(sf)-.55 G .654(unction k)-3.154 F -.15(ey)-.1 G 3.154(s. The).15 F -.1
-(wo)3.154 G .654(rd on the right side of).1 F(the)180 727.2 Q F1(=)3.232
+(wo)3.154 G .654(rd on the right side of).1 F(the)180 391.2 Q F1(=)3.232
E F0 .732(is tested ag)3.232 F .732(ainst both the full name of the ter\
-minal and the portion of the terminal)-.05 F(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(44)190.395 E 0 Cg EP
-%%Page: 45 45
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E
-(name before the \214rst)180 84 Q/F1 10/Times-Bold@0 SF<ad>2.5 E F0 5
-(.T)C(his allo)-5 E(ws)-.25 E/F2 10/Times-Italic@0 SF(sun)2.84 E F0
+minal and the portion of the terminal)-.05 F(name before the \214rst)180
+403.2 Q F1<ad>2.5 E F0 5(.T)C(his allo)-5 E(ws)-.25 E F2(sun)2.84 E F0
(to match both)2.74 E F2(sun)2.84 E F0(and)2.74 E F2(sun\255cmd)2.84 E
-F0 2.5(,f).77 G(or instance.)-2.5 E F1 -.1(ve)144 100.8 S(rsion).1 E F0
-(The)180 112.8 Q F1 -.1(ve)3.108 G(rsion).1 E F0 .608
+F0 2.5(,f).77 G(or instance.)-2.5 E F1 -.1(ve)144 420 S(rsion).1 E F0
+(The)180 432 Q F1 -.1(ve)3.108 G(rsion).1 E F0 .608
(test may be used to perform comparisons ag)3.108 F .609
-(ainst speci\214c readline v)-.05 F(ersions.)-.15 E(The)180 124.8 Q F1
--.1(ve)2.772 G(rsion).1 E F0 -.15(ex)2.772 G .272
+(ainst speci\214c readline v)-.05 F(ersions.)-.15 E(The)180 444 Q F1 -.1
+(ve)2.772 G(rsion).1 E F0 -.15(ex)2.772 G .272
(pands to the current readline v).15 F 2.771(ersion. The)-.15 F .271
-(set of comparison operators in-)2.771 F(cludes)180 136.8 Q F1(=)3.063 E
+(set of comparison operators in-)2.771 F(cludes)180 456 Q F1(=)3.063 E
F0 3.063(,\()C(and)-3.063 E F1(==)3.063 E F0(\),)A F1(!=)3.063 E F0(,)A
F1(<=)3.063 E F0(,)A F1(>=)3.063 E F0(,)A F1(<)3.063 E F0 3.063(,a)C(nd)
-3.063 E F1(>)3.064 E F0 5.564(.T)C .564(he v)-5.564 F .564
(ersion number supplied on the right side)-.15 F .318
-(of the operator consists of a major v)180 148.8 R .318(ersion number)
--.15 F 2.818(,a)-.4 G 2.818(no)-2.818 G .318
-(ptional decimal point, and an op-)-2.818 F .1(tional minor v)180 160.8
-R .1(ersion \(e.g.,)-.15 F F1(7.1)2.6 E F0 .1(\). If the minor v)B .101
+(of the operator consists of a major v)180 468 R .318(ersion number)-.15
+F 2.818(,a)-.4 G 2.818(no)-2.818 G .318
+(ptional decimal point, and an op-)-2.818 F .1(tional minor v)180 480 R
+.1(ersion \(e.g.,)-.15 F F1(7.1)2.6 E F0 .1(\). If the minor v)B .101
(ersion is omitted, it is assumed to be)-.15 F F1(0)2.601 E F0 5.101(.T)
-C(he)-5.101 E .06(operator may be separated from the string)180 172.8 R
-F1 -.1(ve)2.56 G(rsion).1 E F0 .06(and from the v)2.56 F .06
-(ersion number ar)-.15 F(gument)-.18 E(by whitespace.)180 184.8 Q F1
-(application)144 201.6 Q F0(The)180 213.6 Q F1(application)3.003 E F0
+C(he)-5.101 E .06(operator may be separated from the string)180 492 R F1
+-.1(ve)2.56 G(rsion).1 E F0 .06(and from the v)2.56 F .06
+(ersion number ar)-.15 F(gument)-.18 E(by whitespace.)180 504 Q F1
+(application)144 520.8 Q F0(The)180 532.8 Q F1(application)3.003 E F0
.503(construct is used to include application-speci\214c settings.)3.003
F .503(Each program)5.503 F .114(using the readline library sets the)180
-225.6 R F2 .114(application name)2.614 F F0 2.614(,a)C .114
+544.8 R F2 .114(application name)2.614 F F0 2.614(,a)C .114
(nd an initialization \214le can test for a)-2.614 F .5(particular v)180
-237.6 R 3(alue. This)-.25 F .501(could be used to bind k)3 F .801 -.15
+556.8 R 3(alue. This)-.25 F .501(could be used to bind k)3 F .801 -.15
(ey s)-.1 H .501(equences to functions useful for a spe-).15 F .397
-(ci\214c program.)180 249.6 R -.15(Fo)5.397 G 2.896(ri).15 G .396
+(ci\214c program.)180 568.8 R -.15(Fo)5.397 G 2.896(ri).15 G .396
(nstance, the follo)-2.896 F .396(wing command adds a k)-.25 F .696 -.15
-(ey s)-.1 H .396(equence that quotes the).15 F(current or pre)180 261.6
-Q(vious w)-.25 E(ord in)-.1 E F1(bash)2.5 E F0(:)A F1($if)180 285.6 Q F0
-(Bash)2.5 E 2.5(#Q)180 297.6 S(uote the current or pre)-2.5 E(vious w)
--.25 E(ord)-.1 E("\\C\255xq": "\\eb\\"\\ef\\"")180 309.6 Q F1($endif)180
-321.6 Q F2(variable)144 338.4 Q F0(The)180 350.4 Q F2(variable)3.776 E
+(ey s)-.1 H .396(equence that quotes the).15 F(current or pre)180 580.8
+Q(vious w)-.25 E(ord in)-.1 E F1(bash)2.5 E F0(:)A F1($if)180 604.8 Q F0
+(Bash)2.5 E 2.5(#Q)180 616.8 S(uote the current or pre)-2.5 E(vious w)
+-.25 E(ord)-.1 E("\\C\255xq": "\\eb\\"\\ef\\"")180 628.8 Q F1($endif)180
+640.8 Q F2(variable)144 657.6 Q F0(The)180 669.6 Q F2(variable)3.776 E
F0 1.276(construct pro)3.776 F 1.276
(vides simple equality tests for readline v)-.15 F 1.277(ariables and v)
-.25 F(alues.)-.25 E .08(The permitted comparison operators are)180
-362.4 R F2(=)2.579 E F0(,)A F2(==)2.579 E F0 2.579(,a)C(nd)-2.579 E F2
+681.6 R F2(=)2.579 E F0(,)A F2(==)2.579 E F0 2.579(,a)C(nd)-2.579 E F2
(!=)2.579 E F0 5.079(.T)C .079(he v)-5.079 F .079
(ariable name must be sepa-)-.25 F .98(rated from the comparison operat\
-or by whitespace; the operator may be separated from)180 374.4 R .13
-(the v)180 386.4 R .13(alue on the right hand side by whitespace.)-.25 F
+or by whitespace; the operator may be separated from)180 693.6 R .13
+(the v)180 705.6 R .13(alue on the right hand side by whitespace.)-.25 F
.129(Both string and boolean v)5.129 F .129(ariables may be)-.25 F
-(tested. Boolean v)180 398.4 Q(ariables must be tested ag)-.25 E
+(tested. Boolean v)180 717.6 Q(ariables must be tested ag)-.25 E
(ainst the v)-.05 E(alues)-.25 E F2(on)2.5 E F0(and)2.5 E F2(of)2.5 E(f)
--.18 E F0(.)A F1($endif)108 415.2 Q F0(This command, as seen in the pre)
-144 415.2 Q(vious e)-.25 E(xample, terminates an)-.15 E F1($if)2.5 E F0
-(command.)2.5 E F1($else)108 432 Q F0(Commands in this branch of the)144
-432 Q F1($if)2.5 E F0(directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15
-(xe)-.15 G(cuted if the test f).15 E(ails.)-.1 E F1($include)108 448.8 Q
-F0 .356(This directi)144 460.8 R .656 -.15(ve t)-.25 H(ak).15 E .356
+-.18 E F0(.)A(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(47)
+185.115 E 0 Cg EP
+%%Page: 48 48
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF($endif)108 84 Q F0(This command, as seen in the pre)144 84 Q(vious e)
+-.25 E(xample, terminates an)-.15 E F1($if)2.5 E F0(command.)2.5 E F1
+($else)108 100.8 Q F0(Commands in this branch of the)144 100.8 Q F1($if)
+2.5 E F0(directi)2.5 E .3 -.15(ve a)-.25 H(re e).15 E -.15(xe)-.15 G
+(cuted if the test f).15 E(ails.)-.1 E F1($include)108 117.6 Q F0 .356
+(This directi)144 129.6 R .656 -.15(ve t)-.25 H(ak).15 E .356
(es a single \214lename as an ar)-.1 F .357
(gument and reads commands and bindings from that)-.18 F 2.5(\214le. F)
-144 472.8 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
--.15(ve w)-.25 H(ould read).05 E F2(/etc/inputr)2.5 E(c)-.37 E F0(:)A F1
-($include)144 496.8 Q F2(/etc/inputr)5.833 E(c)-.37 E F1(Sear)87 513.6 Q
-(ching)-.18 E F0 .835(Readline pro)108 525.6 R .835
+144 141.6 R(or e)-.15 E(xample, the follo)-.15 E(wing directi)-.25 E .3
+-.15(ve w)-.25 H(ould read).05 E/F2 10/Times-Italic@0 SF(/etc/inputr)2.5
+E(c)-.37 E F0(:)A F1($include)144 165.6 Q F2(/etc/inputr)5.833 E(c)-.37
+E F1(Sear)87 182.4 Q(ching)-.18 E F0 .835(Readline pro)108 194.4 R .835
(vides commands for searching through the command history \(see)-.15 F
/F3 9/Times-Bold@0 SF(HIST)3.334 E(OR)-.162 E(Y)-.315 E F0(belo)3.084 E
-.834(w\) for lines)-.25 F(containing a speci\214ed string.)108 537.6 Q
+.834(w\) for lines)-.25 F(containing a speci\214ed string.)108 206.4 Q
(There are tw)5 E 2.5(os)-.1 G(earch modes:)-2.5 E F2(incr)2.51 E
(emental)-.37 E F0(and)3.01 E F2(non-incr)2.86 E(emental)-.37 E F0(.).51
-E .697(Incremental searches be)108 554.4 R .697
+E .697(Incremental searches be)108 223.2 R .697
(gin before the user has \214nished typing the search string.)-.15 F
.698(As each character of the)5.698 F .113
-(search string is typed, readline displays the ne)108 566.4 R .112
+(search string is typed, readline displays the ne)108 235.2 R .112
(xt entry from the history matching the string typed so f)-.15 F(ar)-.1
E 5.112(.A)-.55 G(n)-5.112 E .542
-(incremental search requires only as man)108 578.4 R 3.042(yc)-.15 G
+(incremental search requires only as man)108 247.2 R 3.042(yc)-.15 G
.542(haracters as needed to \214nd the desired history entry)-3.042 F
5.542(.T)-.65 G .542(he char)-5.542 F(-)-.2 E .224
-(acters present in the v)108 590.4 R .224(alue of the)-.25 F F1(isear)
+(acters present in the v)108 259.2 R .224(alue of the)-.25 F F1(isear)
2.724 E(ch-terminators)-.18 E F0 -.25(va)2.724 G .224
(riable are used to terminate an incremental search.).25 F .66
-(If that v)108 602.4 R .66(ariable has not been assigned a v)-.25 F .66
+(If that v)108 271.2 R .66(ariable has not been assigned a v)-.25 F .66
(alue the Escape and Control-J characters will terminate an incre-)-.25
-F .097(mental search.)108 614.4 R .096(Control-G will abort an incremen\
+F .097(mental search.)108 283.2 R .096(Control-G will abort an incremen\
tal search and restore the original line.)5.097 F .096
(When the search is)5.096 F(terminated, the history entry containing th\
-e search string becomes the current line.)108 626.4 Q 2.938 -.8(To \214)
-108 643.2 T 1.339(nd other matching entries in the history list, type C\
-ontrol-S or Control-R as appropriate.).8 F 1.339(This will)6.339 F .675
-(search backw)108 655.2 R .675(ard or forw)-.1 F .675
+e search string becomes the current line.)108 295.2 Q 2.938 -.8(To \214)
+108 312 T 1.339(nd other matching entries in the history list, type Con\
+trol-S or Control-R as appropriate.).8 F 1.339(This will)6.339 F .675
+(search backw)108 324 R .675(ard or forw)-.1 F .675
(ard in the history for the ne)-.1 F .674
(xt entry matching the search string typed so f)-.15 F(ar)-.1 E 5.674
-(.A)-.55 G -.15(ny)-5.674 G .174(other k)108 667.2 R .474 -.15(ey s)-.1
-H .174
+(.A)-.55 G -.15(ny)-5.674 G .174(other k)108 336 R .474 -.15(ey s)-.1 H
+.174
(equence bound to a readline command will terminate the search and e).15
F -.15(xe)-.15 G .175(cute that command.).15 F -.15(Fo)5.175 G(r).15 E
-.541(instance, a)108 679.2 R F2(ne)3.041 E(wline)-.15 E F0 .541
+.541(instance, a)108 348 R F2(ne)3.041 E(wline)-.15 E F0 .541
(will terminate the search and accept the line, thereby e)3.041 F -.15
-(xe)-.15 G .54(cuting the command from the).15 F(history list.)108 691.2
-Q .653(Readline remembers the last incremental search string.)108 708 R
+(xe)-.15 G .54(cuting the command from the).15 F(history list.)108 360 Q
+.653(Readline remembers the last incremental search string.)108 376.8 R
.653(If tw)5.653 F 3.153(oC)-.1 G .653(ontrol-Rs are typed without an)
-3.153 F 3.153(yi)-.15 G(nterv)-3.153 E(en-)-.15 E
-(ing characters de\214ning a ne)108 720 Q 2.5(ws)-.25 G
+(ing characters de\214ning a ne)108 388.8 Q 2.5(ws)-.25 G
(earch string, an)-2.5 E 2.5(yr)-.15 G(emembered search string is used.)
--2.5 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(45)190.395 E 0 Cg
-EP
-%%Page: 46 46
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .567(Non-incremen\
-tal searches read the entire search string before starting to search fo\
-r matching history lines.)108 84 R(The search string may be typed by th\
-e user or be part of the contents of the current line.)108 96 Q/F1 10
-/Times-Bold@0 SF(Readline Command Names)87 112.8 Q F0 1.391(The follo)
-108 124.8 R 1.391
+-2.5 E .567(Non-incremental searches read the entire search string befo\
+re starting to search for matching history lines.)108 405.6 R(The searc\
+h string may be typed by the user or be part of the contents of the cur\
+rent line.)108 417.6 Q F1(Readline Command Names)87 434.4 Q F0 1.391
+(The follo)108 446.4 R 1.391
(wing is a list of the names of the commands and the def)-.25 F 1.391
(ault k)-.1 F 1.691 -.15(ey s)-.1 H 1.391(equences to which the).15 F
-3.892(ya)-.15 G(re)-3.892 E 2.622(bound. Command)108 136.8 R .122
+3.892(ya)-.15 G(re)-3.892 E 2.622(bound. Command)108 458.4 R .122
(names without an accompan)2.622 F .122(ying k)-.15 F .421 -.15(ey s)-.1
H .121(equence are unbound by def).15 F 2.621(ault. In)-.1 F .121
-(the follo)2.621 F(wing)-.25 E(descriptions,)108 148.8 Q/F2 10
-/Times-Italic@0 SF(point)3.41 E F0 .91
-(refers to the current cursor position, and)3.41 F F2(mark)3.411 E F0
-.911(refers to a cursor position sa)3.411 F -.15(ve)-.2 G 3.411(db).15 G
-3.411(yt)-3.411 G(he)-3.411 E F1(set\255mark)108 160.8 Q F0 2.5
+(the follo)2.621 F(wing)-.25 E(descriptions,)108 470.4 Q F2(point)3.41 E
+F0 .91(refers to the current cursor position, and)3.41 F F2(mark)3.411 E
+F0 .911(refers to a cursor position sa)3.411 F -.15(ve)-.2 G 3.411(db)
+.15 G 3.411(yt)-3.411 G(he)-3.411 E F1(set\255mark)108 482.4 Q F0 2.5
(command. The)2.5 F(te)2.5 E
(xt between the point and mark is referred to as the)-.15 E F2 -.37(re)
-2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 177.6 Q(or Mo)-.25 E(ving)-.1
-E(beginning\255of\255line \(C\255a\))108 189.6 Q F0(Mo)144 201.6 Q .3
+2.5 G(gion)-.03 E F0(.)A F1(Commands f)87 499.2 Q(or Mo)-.25 E(ving)-.1
+E(beginning\255of\255line \(C\255a\))108 511.2 Q F0(Mo)144 523.2 Q .3
-.15(ve t)-.15 H 2.5(ot).15 G(he start of the current line.)-2.5 E F1
-(end\255of\255line \(C\255e\))108 213.6 Q F0(Mo)144 225.6 Q .3 -.15
+(end\255of\255line \(C\255e\))108 535.2 Q F0(Mo)144 547.2 Q .3 -.15
(ve t)-.15 H 2.5(ot).15 G(he end of the line.)-2.5 E F1 -.25(fo)108
-237.6 S(rward\255char \(C\255f\)).25 E F0(Mo)144 249.6 Q .3 -.15(ve f)
+559.2 S(rward\255char \(C\255f\)).25 E F0(Mo)144 571.2 Q .3 -.15(ve f)
-.15 H(orw).15 E(ard a character)-.1 E(.)-.55 E F1
-(backward\255char \(C\255b\))108 261.6 Q F0(Mo)144 273.6 Q .3 -.15(ve b)
--.15 H(ack a character).15 E(.)-.55 E F1 -.25(fo)108 285.6 S(rward\255w)
-.25 E(ord \(M\255f\))-.1 E F0(Mo)144 297.6 Q .823 -.15(ve f)-.15 H(orw)
+(backward\255char \(C\255b\))108 583.2 Q F0(Mo)144 595.2 Q .3 -.15(ve b)
+-.15 H(ack a character).15 E(.)-.55 E F1 -.25(fo)108 607.2 S(rward\255w)
+.25 E(ord \(M\255f\))-.1 E F0(Mo)144 619.2 Q .823 -.15(ve f)-.15 H(orw)
.15 E .523(ard to the end of the ne)-.1 F .523(xt w)-.15 F 3.023(ord. W)
-.1 F .522(ords are composed of alphanumeric characters \(let-)-.8 F
-(ters and digits\).)144 309.6 Q F1(backward\255w)108 321.6 Q
-(ord \(M\255b\))-.1 E F0(Mo)144 333.6 Q 1.71 -.15(ve b)-.15 H 1.41
+(ters and digits\).)144 631.2 Q F1(backward\255w)108 643.2 Q
+(ord \(M\255b\))-.1 E F0(Mo)144 655.2 Q 1.71 -.15(ve b)-.15 H 1.41
(ack to the start of the current or pre).15 F 1.41(vious w)-.25 F 3.91
(ord. W)-.1 F 1.41(ords are composed of alphanumeric)-.8 F
-(characters \(letters and digits\).)144 345.6 Q F1(shell\255f)108 357.6
-Q(orward\255w)-.25 E(ord)-.1 E F0(Mo)144 369.6 Q .784 -.15(ve f)-.15 H
+(characters \(letters and digits\).)144 667.2 Q F1(shell\255f)108 679.2
+Q(orward\255w)-.25 E(ord)-.1 E F0(Mo)144 691.2 Q .784 -.15(ve f)-.15 H
(orw).15 E .484(ard to the end of the ne)-.1 F .484(xt w)-.15 F 2.984
(ord. W)-.1 F .484(ords are delimited by non-quoted shell metacharac-)
--.8 F(ters.)144 381.6 Q F1(shell\255backward\255w)108 393.6 Q(ord)-.1 E
-F0(Mo)144 405.6 Q .908 -.15(ve b)-.15 H .609
-(ack to the start of the current or pre).15 F .609(vious w)-.25 F 3.109
-(ord. W)-.1 F .609(ords are delimited by non-quoted shell)-.8 F
-(metacharacters.)144 417.6 Q F1(pr)108 429.6 Q -.15(ev)-.18 G
-(ious\255scr).15 E(een\255line)-.18 E F0 .891(Attempt to mo)144 441.6 R
-1.191 -.15(ve p)-.15 H .891(oint to the same ph).15 F .891
-(ysical screen column on the pre)-.05 F .89(vious ph)-.25 F .89
-(ysical screen line.)-.05 F .87(This will not ha)144 453.6 R 1.17 -.15
-(ve t)-.2 H .87(he desired ef).15 F .87
-(fect if the current Readline line does not tak)-.25 F 3.37(eu)-.1 G
-3.37(pm)-3.37 G .87(ore than one)-3.37 F(ph)144 465.6 Q(ysical line or \
-if point is not greater than the length of the prompt plus the screen w\
-idth.)-.05 E F1(next\255scr)108 477.6 Q(een\255line)-.18 E F0 .638
-(Attempt to mo)144 489.6 R .938 -.15(ve p)-.15 H .638
+-.8 F(ters.)144 703.2 Q(GNU Bash 5.2)72 768 Q(2022 September 19)135.955
+E(48)185.115 E 0 Cg EP
+%%Page: 49 49
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(shell\255backward\255w)108 84 Q(ord)-.1 E F0(Mo)144 96 Q .908 -.15
+(ve b)-.15 H .609(ack to the start of the current or pre).15 F .609
+(vious w)-.25 F 3.109(ord. W)-.1 F .609
+(ords are delimited by non-quoted shell)-.8 F(metacharacters.)144 108 Q
+F1(pr)108 120 Q -.15(ev)-.18 G(ious\255scr).15 E(een\255line)-.18 E F0
+.891(Attempt to mo)144 132 R 1.191 -.15(ve p)-.15 H .891
+(oint to the same ph).15 F .891(ysical screen column on the pre)-.05 F
+.89(vious ph)-.25 F .89(ysical screen line.)-.05 F 1.055
+(This will not ha)144 144 R 1.355 -.15(ve t)-.2 H 1.055(he desired ef)
+.15 F 1.056(fect if the current readline line does not tak)-.25 F 3.556
+(eu)-.1 G 3.556(pm)-3.556 G 1.056(ore than one)-3.556 F(ph)144 156 Q(ys\
+ical line or if point is not greater than the length of the prompt plus\
+ the screen width.)-.05 E F1(next\255scr)108 168 Q(een\255line)-.18 E F0
+.638(Attempt to mo)144 180 R .938 -.15(ve p)-.15 H .638
(oint to the same ph).15 F .637(ysical screen column on the ne)-.05 F
-.637(xt ph)-.15 F .637(ysical screen line. This)-.05 F .008(will not ha)
-144 501.6 R .309 -.15(ve t)-.2 H .009(he desired ef).15 F .009
-(fect if the current Readline line does not tak)-.25 F 2.509(eu)-.1 G
-2.509(pm)-2.509 G .009(ore than one ph)-2.509 F(ysical)-.05 E .772(line\
- or if the length of the current Readline line is not greater than the \
-length of the prompt plus)144 513.6 R(the screen width.)144 525.6 Q F1
-(clear\255display \(M\255C\255l\))108 537.6 Q F0 1.498
-(Clear the screen and, if possible, the terminal')144 549.6 R 3.999(ss)
+.637(xt ph)-.15 F .637(ysical screen line. This)-.05 F .194(will not ha)
+144 192 R .494 -.15(ve t)-.2 H .194(he desired ef).15 F .194
+(fect if the current readline line does not tak)-.25 F 2.695(eu)-.1 G
+2.695(pm)-2.695 G .195(ore than one ph)-2.695 F(ysical)-.05 E .164(line\
+ or if the length of the current readline line is not greater than the \
+length of the prompt plus the)144 204 R(screen width.)144 216 Q F1
+(clear\255display \(M\255C\255l\))108 228 Q F0 1.498
+(Clear the screen and, if possible, the terminal')144 240 R 3.999(ss)
-.55 G 1.499(crollback b)-3.999 F(uf)-.2 E(fer)-.25 E 3.999(,t)-.4 G
1.499(hen redra)-3.999 F 3.999(wt)-.15 G 1.499(he current line,)-3.999 F
-(lea)144 561.6 Q(ving the current line at the top of the screen.)-.2 E
-F1(clear\255scr)108 573.6 Q(een \(C\255l\))-.18 E F0 1.36
-(Clear the screen, then redra)144 585.6 R 3.86(wt)-.15 G 1.36
+(lea)144 252 Q(ving the current line at the top of the screen.)-.2 E F1
+(clear\255scr)108 264 Q(een \(C\255l\))-.18 E F0 1.36
+(Clear the screen, then redra)144 276 R 3.86(wt)-.15 G 1.36
(he current line, lea)-3.86 F 1.36
-(ving the current line at the top of the screen.)-.2 F -.4(Wi)144 597.6
-S(th an ar).4 E
+(ving the current line at the top of the screen.)-.2 F -.4(Wi)144 288 S
+(th an ar).4 E
(gument, refresh the current line without clearing the screen.)-.18 E F1
--.18(re)108 609.6 S(draw\255curr).18 E(ent\255line)-.18 E F0
-(Refresh the current line.)144 621.6 Q F1(Commands f)87 638.4 Q
+-.18(re)108 300 S(draw\255curr).18 E(ent\255line)-.18 E F0
+(Refresh the current line.)144 312 Q F1(Commands f)87 328.8 Q
(or Manipulating the History)-.25 E(accept\255line \(Newline, Retur)108
-650.4 Q(n\))-.15 E F0 .158(Accept the line re)144 662.4 R -.05(ga)-.15 G
+340.8 Q(n\))-.15 E F0 .158(Accept the line re)144 352.8 R -.05(ga)-.15 G
.158(rdless of where the cursor is.).05 F .158
(If this line is non-empty)5.158 F 2.659(,a)-.65 G .159
(dd it to the history list)-2.659 F .699(according to the state of the)
-144 674.4 R/F3 9/Times-Bold@0 SF(HISTCONTR)3.199 E(OL)-.27 E F0 -.25(va)
+144 364.8 R/F2 9/Times-Bold@0 SF(HISTCONTR)3.199 E(OL)-.27 E F0 -.25(va)
2.949 G 3.199(riable. If).25 F .699
(the line is a modi\214ed history line, then)3.199 F
-(restore the history line to its original state.)144 686.4 Q F1(pr)108
-698.4 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0
-(Fetch the pre)144 710.4 Q(vious command from the history list, mo)-.25
-E(ving back in the list.)-.15 E(GNU Bash 5.1)72 768 Q(2020 October 29)
-141.235 E(46)190.395 E 0 Cg EP
-%%Page: 47 47
+(restore the history line to its original state.)144 376.8 Q F1(pr)108
+388.8 Q -.15(ev)-.18 G(ious\255history \(C\255p\)).15 E F0
+(Fetch the pre)144 400.8 Q(vious command from the history list, mo)-.25
+E(ving back in the list.)-.15 E F1(next\255history \(C\255n\))108 412.8
+Q F0(Fetch the ne)144 424.8 Q(xt command from the history list, mo)-.15
+E(ving forw)-.15 E(ard in the list.)-.1 E F1
+(beginning\255of\255history \(M\255<\))108 436.8 Q F0(Mo)144 448.8 Q .3
+-.15(ve t)-.15 H 2.5(ot).15 G(he \214rst line in the history)-2.5 E(.)
+-.65 E F1(end\255of\255history \(M\255>\))108 460.8 Q F0(Mo)144 472.8 Q
+.3 -.15(ve t)-.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5
+(,i)-.65 G(.e., the line currently being entered.)-2.5 E F1
+(operate\255and\255get\255next \(C\255o\))108 484.8 Q F0 .947
+(Accept the current line for e)144 496.8 R -.15(xe)-.15 G .948
+(cution and fetch the ne).15 F .948(xt line relati)-.15 F 1.248 -.15
+(ve t)-.25 H 3.448(ot).15 G .948(he current line from the)-3.448 F .73
+(history for editing.)144 508.8 R 3.23(An)5.73 G .73(umeric ar)-3.23 F
+.729
+(gument, if supplied, speci\214es the history entry to use instead of)
+-.18 F(the current line.)144 520.8 Q F1(fetch\255history)108 532.8 Q F0
+-.4(Wi)144 544.8 S .256(th a numeric ar).4 F .256
+(gument, fetch that entry from the history list and mak)-.18 F 2.757(ei)
+-.1 G 2.757(tt)-2.757 G .257(he current line.)-2.757 F -.4(Wi)5.257 G
+(th-).4 E(out an ar)144 556.8 Q(gument, mo)-.18 E .3 -.15(ve b)-.15 H
+(ack to the \214rst entry in the history list.).15 E F1 -2.29 -.18(re v)
+108 568.8 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0 1.471
+(Search backw)144 580.8 R 1.471(ard starting at the current line and mo)
+-.1 F 1.47(ving `up' through the history as necessary)-.15 F(.)-.65 E
+(This is an incremental search.)144 592.8 Q F1 -.25(fo)108 604.8 S
+(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.131
+(Search forw)144 616.8 R 1.131(ard starting at the current line and mo)
+-.1 F 1.132(ving `do)-.15 F 1.132(wn' through the history as necessary)
+-.25 F(.)-.65 E(This is an incremental search.)144 628.8 Q F1
+(non\255incr)108 640.8 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H
+(rse\255sear).15 E(ch\255history \(M\255p\))-.18 E F0 .165(Search backw)
+144 652.8 R .164(ard through the history starting at the current line u\
+sing a non-incremental search for)-.1 F 2.5(as)144 664.8 S
+(tring supplied by the user)-2.5 E(.)-.55 E F1(non\255incr)108 676.8 Q
+(emental\255f)-.18 E(orward\255sear)-.25 E(ch\255history \(M\255n\))-.18
+E F0 1.353(Search forw)144 688.8 R 1.354(ard through the history using \
+a non-incremental search for a string supplied by the)-.1 F(user)144
+700.8 Q(.)-.55 E(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(49)
+185.115 E 0 Cg EP
+%%Page: 50 50
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(next\255history \(C\255n\))108 84 Q F0(Fetch the ne)144 96 Q
-(xt command from the history list, mo)-.15 E(ving forw)-.15 E
-(ard in the list.)-.1 E F1(beginning\255of\255history \(M\255<\))108 108
-Q F0(Mo)144 120 Q .3 -.15(ve t)-.15 H 2.5(ot).15 G
-(he \214rst line in the history)-2.5 E(.)-.65 E F1
-(end\255of\255history \(M\255>\))108 132 Q F0(Mo)144 144 Q .3 -.15(ve t)
--.15 H 2.5(ot).15 G(he end of the input history)-2.5 E 2.5(,i)-.65 G
-(.e., the line currently being entered.)-2.5 E F1 -2.29 -.18(re v)108
-156 T(erse\255sear).08 E(ch\255history \(C\255r\))-.18 E F0 1.47
-(Search backw)144 168 R 1.471(ard starting at the current line and mo)
--.1 F 1.471(ving `up' through the history as necessary)-.15 F(.)-.65 E
-(This is an incremental search.)144 180 Q F1 -.25(fo)108 192 S
-(rward\255sear).25 E(ch\255history \(C\255s\))-.18 E F0 1.132
-(Search forw)144 204 R 1.132(ard starting at the current line and mo)-.1
-F 1.131(ving `do)-.15 F 1.131(wn' through the history as necessary)-.25
-F(.)-.65 E(This is an incremental search.)144 216 Q F1(non\255incr)108
-228 Q(emental\255r)-.18 E -2.3 -.15(ev e)-.18 H(rse\255sear).15 E
-(ch\255history \(M\255p\))-.18 E F0 .164(Search backw)144 240 R .164(ar\
-d through the history starting at the current line using a non-incremen\
-tal search for)-.1 F 2.5(as)144 252 S(tring supplied by the user)-2.5 E
-(.)-.55 E F1(non\255incr)108 264 Q(emental\255f)-.18 E(orward\255sear)
--.25 E(ch\255history \(M\255n\))-.18 E F0 1.354(Search forw)144 276 R
-1.354(ard through the history using a non-incremental search for a stri\
-ng supplied by the)-.1 F(user)144 288 Q(.)-.55 E F1(history\255sear)108
-300 Q(ch\255f)-.18 E(orward)-.25 E F0 .248(Search forw)144 312 R .249(a\
-rd through the history for the string of characters between the start o\
-f the current line)-.1 F(and the point.)144 324 Q
-(This is a non-incremental search.)5 E F1(history\255sear)108 336 Q
-(ch\255backward)-.18 E F0 .951(Search backw)144 348 R .951(ard through \
-the history for the string of characters between the start of the curre\
-nt)-.1 F(line and the point.)144 360 Q
-(This is a non-incremental search.)5 E F1(history\255substring\255sear)
-108 372 Q(ch\255backward)-.18 E F0 .95(Search backw)144 384 R .951(ard \
-through the history for the string of characters between the start of t\
-he current)-.1 F .007(line and the current cursor position \(the)144 396
-R/F2 10/Times-Italic@0 SF(point)2.507 E F0 2.507(\). The)B .007
-(search string may match an)2.507 F .006(ywhere in a history)-.15 F 2.5
-(line. This)144 408 R(is a non-incremental search.)2.5 E F1
-(history\255substring\255sear)108 420 Q(ch\255f)-.18 E(orward)-.25 E F0
-.248(Search forw)144 432 R .249(ard through the history for the string \
-of characters between the start of the current line)-.1 F .319
-(and the point.)144 444 R .319(The search string may match an)5.319 F
-.319(ywhere in a history line.)-.15 F .318(This is a non-incremental)
-5.318 F(search.)144 456 Q F1(yank\255nth\255ar)108 468 Q 2.5(g\()-.1 G
-<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144 480 R .622
+SF(history\255sear)108 84 Q(ch\255f)-.18 E(orward)-.25 E F0 .249
+(Search forw)144 96 R .249(ard through the history for the string of ch\
+aracters between the start of the current line)-.1 F(and the point.)144
+108 Q(This is a non-incremental search.)5 E F1(history\255sear)108 120 Q
+(ch\255backward)-.18 E F0 .95(Search backw)144 132 R .951(ard through t\
+he history for the string of characters between the start of the curren\
+t)-.1 F(line and the point.)144 144 Q(This is a non-incremental search.)
+5 E F1(history\255substring\255sear)108 156 Q(ch\255backward)-.18 E F0
+.951(Search backw)144 168 R .951(ard through the history for the string\
+ of characters between the start of the current)-.1 F .007
+(line and the current cursor position \(the)144 180 R/F2 10
+/Times-Italic@0 SF(point)2.507 E F0 2.507(\). The)B .007
+(search string may match an)2.507 F .007(ywhere in a history)-.15 F 2.5
+(line. This)144 192 R(is a non-incremental search.)2.5 E F1
+(history\255substring\255sear)108 204 Q(ch\255f)-.18 E(orward)-.25 E F0
+.249(Search forw)144 216 R .249(ard through the history for the string \
+of characters between the start of the current line)-.1 F .318
+(and the point.)144 228 R .319(The search string may match an)5.318 F
+.319(ywhere in a history line.)-.15 F .319(This is a non-incremental)
+5.319 F(search.)144 240 Q F1(yank\255nth\255ar)108 252 Q 2.5(g\()-.1 G
+<4dad43ad7929>-2.5 E F0 .622(Insert the \214rst ar)144 264 R .622
(gument to the pre)-.18 F .622(vious command \(usually the second w)-.25
-F .622(ord on the pre)-.1 F .622(vious line\))-.25 F .773(at point.)144
-492 R -.4(Wi)5.773 G .773(th an ar).4 F(gument)-.18 E F2(n)3.633 E F0
+F .622(ord on the pre)-.1 F .622(vious line\))-.25 F .772(at point.)144
+276 R -.4(Wi)5.773 G .773(th an ar).4 F(gument)-.18 E F2(n)3.633 E F0
3.273(,i).24 G .773(nsert the)-3.273 F F2(n)3.273 E F0 .773(th w)B .773
(ord from the pre)-.1 F .773(vious command \(the w)-.25 F .773
-(ords in the)-.1 F(pre)144 504 Q .291(vious command be)-.25 F .291
+(ords in the)-.1 F(pre)144 288 Q .292(vious command be)-.25 F .292
(gin with w)-.15 F .291(ord 0\).)-.1 F 2.791(An)5.291 G -2.25 -.15(eg a)
-2.791 H(ti).15 E .591 -.15(ve a)-.25 H -.18(rg).15 G .291
-(ument inserts the).18 F F2(n)2.791 E F0 .291(th w)B .292
-(ord from the end of)-.1 F .282(the pre)144 516 R .282(vious command.)
--.25 F .282(Once the ar)5.282 F(gument)-.18 E F2(n)2.781 E F0 .281
-(is computed, the ar)2.781 F .281(gument is e)-.18 F .281
-(xtracted as if the "!)-.15 F F2(n)A F0(")A(history e)144 528 Q
-(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 540 Q
-2.5(g\()-.1 G -1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.307
-(Insert the last ar)144 552 R 1.307(gument to the pre)-.18 F 1.307
-(vious command \(the last w)-.25 F 1.308(ord of the pre)-.1 F 1.308
-(vious history entry\).)-.25 F -.4(Wi)144 564 S .204(th a numeric ar).4
-F .204(gument, beha)-.18 F .504 -.15(ve ex)-.2 H .204(actly lik).15 F(e)
--.1 E F1(yank\255nth\255ar)2.704 E(g)-.1 E F0 5.203(.S)C(uccessi)-5.203
-E .503 -.15(ve c)-.25 H .203(alls to).15 F F1(yank\255last\255ar)2.703 E
-(g)-.1 E F0(mo)144 576 Q .806 -.15(ve b)-.15 H .507
+(ument inserts the).18 F F2(n)2.791 E F0 .291(th w)B .291
+(ord from the end of)-.1 F .281(the pre)144 300 R .281(vious command.)
+-.25 F .281(Once the ar)5.281 F(gument)-.18 E F2(n)2.781 E F0 .281
+(is computed, the ar)2.781 F .281(gument is e)-.18 F .282
+(xtracted as if the "!)-.15 F F2(n)A F0(")A(history e)144 312 Q
+(xpansion had been speci\214ed.)-.15 E F1(yank\255last\255ar)108 324 Q
+2.5(g\()-.1 G -1.667(M\255. ,)-2.5 F -1.667(M\255_ \))2.5 F F0 1.308
+(Insert the last ar)144 336 R 1.308(gument to the pre)-.18 F 1.307
+(vious command \(the last w)-.25 F 1.307(ord of the pre)-.1 F 1.307
+(vious history entry\).)-.25 F -.4(Wi)144 348 S .203(th a numeric ar).4
+F .203(gument, beha)-.18 F .504 -.15(ve ex)-.2 H .204(actly lik).15 F(e)
+-.1 E F1(yank\255nth\255ar)2.704 E(g)-.1 E F0 5.204(.S)C(uccessi)-5.204
+E .504 -.15(ve c)-.25 H .204(alls to).15 F F1(yank\255last\255ar)2.704 E
+(g)-.1 E F0(mo)144 360 Q .807 -.15(ve b)-.15 H .507
(ack through the history list, inserting the last w).15 F .507
(ord \(or the w)-.1 F .507(ord speci\214ed by the ar)-.1 F(gument)-.18 E
-.416(to the \214rst call\) of each line in turn.)144 588 R(An)5.416 E
+.416(to the \214rst call\) of each line in turn.)144 372 R(An)5.416 E
2.916(yn)-.15 G .416(umeric ar)-2.916 F .416
-(gument supplied to these successi)-.18 F .715 -.15(ve c)-.25 H .415
-(alls de-).15 F 1.217(termines the direction to mo)144 600 R 1.518 -.15
+(gument supplied to these successi)-.18 F .716 -.15(ve c)-.25 H .416
+(alls de-).15 F 1.218(termines the direction to mo)144 384 R 1.518 -.15
(ve t)-.15 H 1.218(hrough the history).15 F 6.218(.A)-.65 G(ne)-2.5 E
--.05(ga)-.15 G(ti).05 E 1.518 -.15(ve a)-.25 H -.18(rg).15 G 1.218
+-.05(ga)-.15 G(ti).05 E 1.517 -.15(ve a)-.25 H -.18(rg).15 G 1.217
(ument switches the direction).18 F .494
-(through the history \(back or forw)144 612 R 2.994(ard\). The)-.1 F
+(through the history \(back or forw)144 396 R 2.994(ard\). The)-.1 F
.494(history e)2.994 F .494(xpansion f)-.15 F .494
(acilities are used to e)-.1 F .494(xtract the last)-.15 F -.1(wo)144
-624 S(rd, as if the "!$" history e).1 E(xpansion had been speci\214ed.)
--.15 E F1(shell\255expand\255line \(M\255C\255e\))108 636 Q F0 .622
-(Expand the line as the shell does.)144 648 R .622
-(This performs alias and history e)5.622 F .623
-(xpansion as well as all of the)-.15 F(shell w)144 660 Q(ord e)-.1 E 2.5
+408 S(rd, as if the "!$" history e).1 E(xpansion had been speci\214ed.)
+-.15 E F1(shell\255expand\255line \(M\255C\255e\))108 420 Q F0 .623
+(Expand the line as the shell does.)144 432 R .622
+(This performs alias and history e)5.622 F .622
+(xpansion as well as all of the)-.15 F(shell w)144 444 Q(ord e)-.1 E 2.5
(xpansions. See)-.15 F/F3 9/Times-Bold@0 SF(HIST)2.5 E(OR)-.162 E 2.25
(YE)-.315 G(XP)-2.25 E(ANSION)-.666 E F0(belo)2.25 E 2.5(wf)-.25 G
(or a description of history e)-2.5 E(xpansion.)-.15 E F1
-(history\255expand\255line \(M\255^\))108 672 Q F0 .939
-(Perform history e)144 684 R .939(xpansion on the current line.)-.15 F
+(history\255expand\255line \(M\255^\))108 456 Q F0 .938
+(Perform history e)144 468 R .939(xpansion on the current line.)-.15 F
(See)5.939 E F3(HIST)3.439 E(OR)-.162 E 3.189(YE)-.315 G(XP)-3.189 E
-(ANSION)-.666 E F0(belo)3.189 E 3.438(wf)-.25 G .938(or a descrip-)
--3.438 F(tion of history e)144 696 Q(xpansion.)-.15 E(GNU Bash 5.1)72
-768 Q(2020 October 29)141.235 E(47)190.395 E 0 Cg EP
-%%Page: 48 48
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(magic\255space)108 84 Q F0 .437(Perform history e)144 96 R .437
-(xpansion on the current line and insert a space.)-.15 F(See)5.438 E/F2
-9/Times-Bold@0 SF(HIST)2.938 E(OR)-.162 E 2.688(YE)-.315 G(XP)-2.688 E
-(ANSION)-.666 E F0(be-)2.688 E(lo)144 108 Q 2.5(wf)-.25 G
-(or a description of history e)-2.5 E(xpansion.)-.15 E F1
-(alias\255expand\255line)108 120 Q F0 .395(Perform alias e)144 132 R
-.395(xpansion on the current line.)-.15 F(See)5.395 E F2(ALIASES)2.895 E
-F0(abo)2.645 E .694 -.15(ve f)-.15 H .394(or a description of alias e)
-.15 F(xpan-)-.15 E(sion.)144 144 Q F1
-(history\255and\255alias\255expand\255line)108 156 Q F0
-(Perform history and alias e)144 168 Q(xpansion on the current line.)
--.15 E F1(insert\255last\255ar)108 180 Q(gument \(M\255.)-.1 E 2.5(,M)
-.833 G -1.667(\255_ \))-2.5 F F0 2.5(As)144 192 S(ynon)-2.5 E(ym for)
+(ANSION)-.666 E F0(belo)3.189 E 3.439(wf)-.25 G .939(or a descrip-)
+-3.439 F(tion of history e)144 480 Q(xpansion.)-.15 E F1(magic\255space)
+108 492 Q F0 .438(Perform history e)144 504 R .438
+(xpansion on the current line and insert a space.)-.15 F(See)5.437 E F3
+(HIST)2.937 E(OR)-.162 E 2.687(YE)-.315 G(XP)-2.687 E(ANSION)-.666 E F0
+(be-)2.687 E(lo)144 516 Q 2.5(wf)-.25 G(or a description of history e)
+-2.5 E(xpansion.)-.15 E F1(alias\255expand\255line)108 528 Q F0 .394
+(Perform alias e)144 540 R .394(xpansion on the current line.)-.15 F
+(See)5.395 E F3(ALIASES)2.895 E F0(abo)2.645 E .695 -.15(ve f)-.15 H
+.395(or a description of alias e).15 F(xpan-)-.15 E(sion.)144 552 Q F1
+(history\255and\255alias\255expand\255line)108 564 Q F0
+(Perform history and alias e)144 576 Q(xpansion on the current line.)
+-.15 E F1(insert\255last\255ar)108 588 Q(gument \(M\255.)-.1 E 2.5(,M)
+.833 G -1.667(\255_ \))-2.5 F F0 2.5(As)144 600 S(ynon)-2.5 E(ym for)
-.15 E F1(yank\255last\255ar)2.5 E(g)-.1 E F0(.)A F1
-(operate\255and\255get\255next \(C\255o\))108 204 Q F0 .947
-(Accept the current line for e)144 216 R -.15(xe)-.15 G .948
-(cution and fetch the ne).15 F .948(xt line relati)-.15 F 1.248 -.15
-(ve t)-.25 H 3.448(ot).15 G .948(he current line from the)-3.448 F .73
-(history for editing.)144 228 R 3.23(An)5.73 G .73(umeric ar)-3.23 F
-.729
-(gument, if supplied, speci\214es the history entry to use instead of)
--.18 F(the current line.)144 240 Q F1
-(edit\255and\255execute\255command \(C\255x C\255e\))108 252 Q F0(In)144
-264 Q -.2(vo)-.4 G .346 -.1(ke a).2 H 2.646(ne).1 G .146
-(ditor on the current command line, and e)-2.646 F -.15(xe)-.15 G .146
-(cute the result as shell commands.).15 F F1(Bash)5.147 E F0(at-)2.647 E
-(tempts to in)144 276 Q -.2(vo)-.4 G -.1(ke).2 G F2($VISU)2.6 E(AL)-.54
-E/F3 9/Times-Roman@0 SF(,)A F2($EDIT)2.25 E(OR)-.162 E F3(,)A F0(and)
-2.25 E/F4 10/Times-Italic@0 SF(emacs)2.5 E F0(as the editor)2.5 E 2.5
-(,i)-.4 G 2.5(nt)-2.5 G(hat order)-2.5 E(.)-.55 E F1(Commands f)87 292.8
-Q(or Changing T)-.25 E(ext)-.92 E F4(end\255of\255\214le)108 304.8 Q F1
-(\(usually C\255d\))2.5 E F0 .799
-(The character indicating end-of-\214le as set, for e)144 316.8 R .799
-(xample, by)-.15 F/F5 10/Courier@0 SF(stty)3.299 E F0 5.799(.I)C 3.298
-(ft)-5.799 G .798(his character is read when)-3.298 F .592
-(there are no characters on the line, and point is at the be)144 328.8 R
-.593(ginning of the line, Readline interprets it)-.15 F
-(as the end of input and returns)144 340.8 Q F2(EOF)2.5 E F3(.)A F1
-(delete\255char \(C\255d\))108 352.8 Q F0 .442
-(Delete the character at point.)144 364.8 R .442
-(If this function is bound to the same character as the tty)5.442 F F1
-(EOF)2.941 E F0(char)2.941 E(-)-.2 E(acter)144 376.8 Q 2.5(,a)-.4 G(s)
--2.5 E F1(C\255d)2.5 E F0(commonly is, see abo)2.5 E .3 -.15(ve f)-.15 H
-(or the ef).15 E(fects.)-.25 E F1(backward\255delete\255char \(Rubout\))
-108 388.8 Q F0 .552(Delete the character behind the cursor)144 400.8 R
-5.553(.W)-.55 G .553(hen gi)-5.553 F -.15(ve)-.25 G 3.053(nan).15 G .553
-(umeric ar)-3.053 F .553(gument, sa)-.18 F .853 -.15(ve t)-.2 H .553
-(he deleted te).15 F .553(xt on)-.15 F(the kill ring.)144 412.8 Q F1
--.25(fo)108 424.8 S(rward\255backward\255delete\255char).25 E F0 .474
-(Delete the character under the cursor)144 436.8 R 2.974(,u)-.4 G .474
-(nless the cursor is at the end of the line, in which case the)-2.974 F
-(character behind the cursor is deleted.)144 448.8 Q F1
-(quoted\255insert \(C\255q, C\255v\))108 460.8 Q F0 .778(Add the ne)144
-472.8 R .779(xt character typed to the line v)-.15 F 3.279
-(erbatim. This)-.15 F .779(is ho)3.279 F 3.279(wt)-.25 G 3.279(oi)-3.279
-G .779(nsert characters lik)-3.279 F(e)-.1 E F1(C\255q)3.279 E F0 3.279
-(,f)C(or)-3.279 E -.15(ex)144 484.8 S(ample.).15 E F1
-(tab\255insert \(C\255v T)108 496.8 Q(AB\))-.9 E F0
-(Insert a tab character)144 508.8 Q(.)-.55 E F1
-(self\255insert \(a, b, A, 1, !, ...\))108 520.8 Q F0
-(Insert the character typed.)144 532.8 Q F1
-(transpose\255chars \(C\255t\))108 544.8 Q F0 .322
-(Drag the character before point forw)144 556.8 R .321(ard o)-.1 F -.15
-(ve)-.15 G 2.821(rt).15 G .321(he character at point, mo)-2.821 F .321
-(ving point forw)-.15 F .321(ard as well.)-.1 F .372
-(If point is at the end of the line, then this transposes the tw)144
-568.8 R 2.872(oc)-.1 G .373(haracters before point.)-2.872 F(Ne)5.373 E
--.05(ga)-.15 G(ti).05 E .673 -.15(ve a)-.25 H -.2(r-).15 G(guments ha)
-144 580.8 Q .3 -.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E F1
-(transpose\255w)108 592.8 Q(ords \(M\255t\))-.1 E F0 .024(Drag the w)144
-604.8 R .024(ord before point past the w)-.1 F .023(ord after point, mo)
--.1 F .023(ving point o)-.15 F -.15(ve)-.15 G 2.523(rt).15 G .023(hat w)
--2.523 F .023(ord as well.)-.1 F .023(If point)5.023 F
-(is at the end of the line, this transposes the last tw)144 616.8 Q 2.5
-(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 628.8 Q
-(ord \(M\255u\))-.1 E F0 1.698(Uppercase the current \(or follo)144
-640.8 R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F
--.05(ga)-.15 G(ti).05 E 1.999 -.15(ve a)-.25 H -.18(rg).15 G 1.699
-(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 652.8 S(rd, b).1
-E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 664.8 Q
-(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 676.8 Q 1.648
-(wercase the current \(or follo)-.25 F 1.648(wing\) w)-.25 F 4.148
-(ord. W)-.1 F 1.647(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.947 -.15
-(ve a)-.25 H -.18(rg).15 G 1.647(ument, lo).18 F 1.647(wercase the pre)
--.25 F(vious)-.25 E -.1(wo)144 688.8 S(rd, b).1 E(ut do not mo)-.2 E .3
--.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 700.8 Q
-(ord \(M\255c\))-.1 E F0 1.974(Capitalize the current \(or follo)144
-712.8 R 1.974(wing\) w)-.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F
--.05(ga)-.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.975
-(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 724.8 S(rd, b)
-.1 E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E(GNU Bash 5.1)72
-768 Q(2020 October 29)141.235 E(48)190.395 E 0 Cg EP
-%%Page: 49 49
+(edit\255and\255execute\255command \(C\255x C\255e\))108 612 Q F0(In)144
+624 Q -.2(vo)-.4 G .347 -.1(ke a).2 H 2.647(ne).1 G .146
+(ditor on the current command line, and e)-2.647 F -.15(xe)-.15 G .146
+(cute the result as shell commands.).15 F F1(Bash)5.146 E F0(at-)2.646 E
+(tempts to in)144 636 Q -.2(vo)-.4 G -.1(ke).2 G F3($VISU)2.6 E(AL)-.54
+E/F4 9/Times-Roman@0 SF(,)A F3($EDIT)2.25 E(OR)-.162 E F4(,)A F0(and)
+2.25 E F2(emacs)2.5 E F0(as the editor)2.5 E 2.5(,i)-.4 G 2.5(nt)-2.5 G
+(hat order)-2.5 E(.)-.55 E F1(Commands f)87 652.8 Q(or Changing T)-.25 E
+(ext)-.92 E F2(end\255of\255\214le)108 664.8 Q F1(\(usually C\255d\))2.5
+E F0 .798(The character indicating end-of-\214le as set, for e)144 676.8
+R .799(xample, by)-.15 F/F5 10/Courier@0 SF(stty)3.299 E F0 5.799(.I)C
+3.299(ft)-5.799 G .799(his character is read when)-3.299 F .167
+(there are no characters on the line, and point is at the be)144 688.8 R
+.167(ginning of the line, readline interprets it as)-.15 F
+(the end of input and returns)144 700.8 Q F3(EOF)2.5 E F4(.)A F0
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(50)185.115 E 0 Cg EP
+%%Page: 51 51
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF -.1(ove)108 84 S(rwrite\255mode).1 E F0 -.8(To)144 96 S .438(ggle o)
-.8 F -.15(ve)-.15 G .438(rwrite mode.).15 F -.4(Wi)5.438 G .438(th an e)
-.4 F .438(xplicit positi)-.15 F .737 -.15(ve n)-.25 H .437(umeric ar).15
-F .437(gument, switches to o)-.18 F -.15(ve)-.15 G .437(rwrite mode.).15
-F -.4(Wi)144 108 S .78(th an e).4 F .781(xplicit non-positi)-.15 F 1.081
+SF(delete\255char \(C\255d\))108 84 Q F0 .441
+(Delete the character at point.)144 96 R .442
+(If this function is bound to the same character as the tty)5.441 F F1
+(EOF)2.942 E F0(char)2.942 E(-)-.2 E(acter)144 108 Q 2.5(,a)-.4 G(s)-2.5
+E F1(C\255d)2.5 E F0(commonly is, see abo)2.5 E .3 -.15(ve f)-.15 H
+(or the ef).15 E(fects.)-.25 E F1(backward\255delete\255char \(Rubout\))
+108 120 Q F0 .553(Delete the character behind the cursor)144 132 R 5.553
+(.W)-.55 G .553(hen gi)-5.553 F -.15(ve)-.25 G 3.053(nan).15 G .553
+(umeric ar)-3.053 F .552(gument, sa)-.18 F .852 -.15(ve t)-.2 H .552
+(he deleted te).15 F .552(xt on)-.15 F(the kill ring.)144 144 Q F1 -.25
+(fo)108 156 S(rward\255backward\255delete\255char).25 E F0 .473
+(Delete the character under the cursor)144 168 R 2.973(,u)-.4 G .474
+(nless the cursor is at the end of the line, in which case the)-2.973 F
+(character behind the cursor is deleted.)144 180 Q F1
+(quoted\255insert \(C\255q, C\255v\))108 192 Q F0 .779(Add the ne)144
+204 R .779(xt character typed to the line v)-.15 F 3.279(erbatim. This)
+-.15 F .779(is ho)3.279 F 3.279(wt)-.25 G 3.279(oi)-3.279 G .779
+(nsert characters lik)-3.279 F(e)-.1 E F1(C\255q)3.278 E F0 3.278(,f)C
+(or)-3.278 E -.15(ex)144 216 S(ample.).15 E F1(tab\255insert \(C\255v T)
+108 228 Q(AB\))-.9 E F0(Insert a tab character)144 240 Q(.)-.55 E F1
+(self\255insert \(a, b, A, 1, !, ...\))108 252 Q F0
+(Insert the character typed.)144 264 Q F1(transpose\255chars \(C\255t\))
+108 276 Q F0 .321(Drag the character before point forw)144 288 R .321
+(ard o)-.1 F -.15(ve)-.15 G 2.821(rt).15 G .321
+(he character at point, mo)-2.821 F .322(ving point forw)-.15 F .322
+(ard as well.)-.1 F .372
+(If point is at the end of the line, then this transposes the tw)144 300
+R 2.872(oc)-.1 G .372(haracters before point.)-2.872 F(Ne)5.372 E -.05
+(ga)-.15 G(ti).05 E .672 -.15(ve a)-.25 H -.2(r-).15 G(guments ha)144
+312 Q .3 -.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G(ect.).25 E F1
+(transpose\255w)108 324 Q(ords \(M\255t\))-.1 E F0 .023(Drag the w)144
+336 R .023(ord before point past the w)-.1 F .023(ord after point, mo)
+-.1 F .023(ving point o)-.15 F -.15(ve)-.15 G 2.524(rt).15 G .024(hat w)
+-2.524 F .024(ord as well.)-.1 F .024(If point)5.024 F
+(is at the end of the line, this transposes the last tw)144 348 Q 2.5
+(ow)-.1 G(ords on the line.)-2.6 E F1(upcase\255w)108 360 Q
+(ord \(M\255u\))-.1 E F0 1.699(Uppercase the current \(or follo)144 372
+R 1.698(wing\) w)-.25 F 4.198(ord. W)-.1 F 1.698(ith a ne)-.4 F -.05(ga)
+-.15 G(ti).05 E 1.998 -.15(ve a)-.25 H -.18(rg).15 G 1.698
+(ument, uppercase the pre).18 F(vious)-.25 E -.1(wo)144 384 S(rd, b).1 E
+(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1(do)108 396 Q
+(wncase\255w)-.1 E(ord \(M\255l\))-.1 E F0(Lo)144 408 Q 1.647
+(wercase the current \(or follo)-.25 F 1.647(wing\) w)-.25 F 4.147
+(ord. W)-.1 F 1.648(ith a ne)-.4 F -.05(ga)-.15 G(ti).05 E 1.948 -.15
+(ve a)-.25 H -.18(rg).15 G 1.648(ument, lo).18 F 1.648(wercase the pre)
+-.25 F(vious)-.25 E -.1(wo)144 420 S(rd, b).1 E(ut do not mo)-.2 E .3
+-.15(ve p)-.15 H(oint.).15 E F1(capitalize\255w)108 432 Q
+(ord \(M\255c\))-.1 E F0 1.975(Capitalize the current \(or follo)144 444
+R 1.974(wing\) w)-.25 F 4.474(ord. W)-.1 F 1.974(ith a ne)-.4 F -.05(ga)
+-.15 G(ti).05 E 2.274 -.15(ve a)-.25 H -.18(rg).15 G 1.974
+(ument, capitalize the pre).18 F(vious)-.25 E -.1(wo)144 456 S(rd, b).1
+E(ut do not mo)-.2 E .3 -.15(ve p)-.15 H(oint.).15 E F1 -.1(ove)108 468
+S(rwrite\255mode).1 E F0 -.8(To)144 480 S .437(ggle o).8 F -.15(ve)-.15
+G .437(rwrite mode.).15 F -.4(Wi)5.437 G .437(th an e).4 F .437
+(xplicit positi)-.15 F .738 -.15(ve n)-.25 H .438(umeric ar).15 F .438
+(gument, switches to o)-.18 F -.15(ve)-.15 G .438(rwrite mode.).15 F -.4
+(Wi)144 492 S .781(th an e).4 F .781(xplicit non-positi)-.15 F 1.081
-.15(ve n)-.25 H .781(umeric ar).15 F .781
-(gument, switches to insert mode.)-.18 F .781(This command af)5.781 F
-(fects)-.25 E(only)144 120 Q F1(emacs)4.395 E F0(mode;)4.395 E F1(vi)
-4.395 E F0 1.894(mode does o)4.395 F -.15(ve)-.15 G 1.894(rwrite dif).15
+(gument, switches to insert mode.)-.18 F .78(This command af)5.781 F
+(fects)-.25 E(only)144 504 Q F1(emacs)4.394 E F0(mode;)4.394 E F1(vi)
+4.394 E F0 1.894(mode does o)4.394 F -.15(ve)-.15 G 1.894(rwrite dif).15
F(ferently)-.25 E 6.894(.E)-.65 G 1.894(ach call to)-6.894 F/F2 10
-/Times-Italic@0 SF -.37(re)4.394 G(adline\(\)).37 E F0 1.894
-(starts in insert)4.394 F 3.968(mode. In)144 132 R -.15(ove)3.968 G
-1.468(rwrite mode, characters bound to).15 F F1(self\255insert)3.969 E
-F0 1.469(replace the te)3.969 F 1.469(xt at point rather than)-.15 F
-.958(pushing the te)144 144 R .958(xt to the right.)-.15 F .957
-(Characters bound to)5.958 F F1(backward\255delete\255char)3.457 E F0
-.957(replace the character)3.457 F(before point with a space.)144 156 Q
+/Times-Italic@0 SF -.37(re)4.395 G(adline\(\)).37 E F0 1.895
+(starts in insert)4.395 F 3.969(mode. In)144 516 R -.15(ove)3.969 G
+1.469(rwrite mode, characters bound to).15 F F1(self\255insert)3.969 E
+F0 1.468(replace the te)3.969 F 1.468(xt at point rather than)-.15 F
+.957(pushing the te)144 528 R .957(xt to the right.)-.15 F .958
+(Characters bound to)5.957 F F1(backward\255delete\255char)3.458 E F0
+.958(replace the character)3.458 F(before point with a space.)144 540 Q
(By def)5 E(ault, this command is unbound.)-.1 E F1(Killing and Y)87
-172.8 Q(anking)-.85 E(kill\255line \(C\255k\))108 184.8 Q F0
-(Kill the te)144 196.8 Q(xt from point to the end of the line.)-.15 E F1
-(backward\255kill\255line \(C\255x Rubout\))108 208.8 Q F0(Kill backw)
-144 220.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
-(unix\255line\255discard \(C\255u\))108 232.8 Q F0(Kill backw)144 244.8
+556.8 Q(anking)-.85 E(kill\255line \(C\255k\))108 568.8 Q F0
+(Kill the te)144 580.8 Q(xt from point to the end of the line.)-.15 E F1
+(backward\255kill\255line \(C\255x Rubout\))108 592.8 Q F0(Kill backw)
+144 604.8 Q(ard to the be)-.1 E(ginning of the line.)-.15 E F1
+(unix\255line\255discard \(C\255u\))108 616.8 Q F0(Kill backw)144 628.8
Q(ard from point to the be)-.1 E(ginning of the line.)-.15 E
(The killed te)5 E(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)
--2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 256.8 Q F0
+-2.5 G(he kill-ring.)-2.5 E F1(kill\255whole\255line)108 640.8 Q F0
(Kill all characters on the current line, no matter where point is.)144
-268.8 Q F1(kill\255w)108 280.8 Q(ord \(M\255d\))-.1 E F0 .728
-(Kill from point to the end of the current w)144 292.8 R .729
-(ord, or if between w)-.1 F .729(ords, to the end of the ne)-.1 F .729
-(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 304.8 S
+652.8 Q F1(kill\255w)108 664.8 Q(ord \(M\255d\))-.1 E F0 .729
+(Kill from point to the end of the current w)144 676.8 R .728
+(ord, or if between w)-.1 F .728(ords, to the end of the ne)-.1 F .728
+(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 688.8 S
(rd boundaries are the same as those used by).8 E F1 -.25(fo)2.5 G
-(rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 316.8 Q
-(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 328.8 Q(ord behind point.)
+(rward\255w).25 E(ord)-.1 E F0(.)A F1(backward\255kill\255w)108 700.8 Q
+(ord \(M\255Rubout\))-.1 E F0(Kill the w)144 712.8 Q(ord behind point.)
-.1 E -.8(Wo)5 G(rd boundaries are the same as those used by).8 E F1
-(backward\255w)2.5 E(ord)-.1 E F0(.)A F1(shell\255kill\255w)108 340.8 Q
-(ord)-.1 E F0 .729(Kill from point to the end of the current w)144 352.8
-R .728(ord, or if between w)-.1 F .728(ords, to the end of the ne)-.1 F
-.728(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 364.8 S
+(backward\255w)2.5 E(ord)-.1 E F0(.)A(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(51)185.115 E 0 Cg EP
+%%Page: 52 52
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(shell\255kill\255w)108 84 Q(ord)-.1 E F0 .728
+(Kill from point to the end of the current w)144 96 R .729
+(ord, or if between w)-.1 F .729(ords, to the end of the ne)-.1 F .729
+(xt w)-.15 F(ord.)-.1 E -.8(Wo)144 108 S
(rd boundaries are the same as those used by).8 E F1(shell\255f)2.5 E
(orward\255w)-.25 E(ord)-.1 E F0(.)A F1(shell\255backward\255kill\255w)
-108 376.8 Q(ord)-.1 E F0 3.025(Kill the w)144 388.8 R 3.025
+108 120 Q(ord)-.1 E F0 3.025(Kill the w)144 132 R 3.025
(ord behind point.)-.1 F -.8(Wo)8.025 G 3.025
(rd boundaries are the same as those used by).8 F F1(shell\255back-)
-5.525 E(ward\255w)144 400.8 Q(ord)-.1 E F0(.)A F1(unix\255w)108 412.8 Q
-(ord\255rubout \(C\255w\))-.1 E F0 .365(Kill the w)144 424.8 R .365
-(ord behind point, using white space as a w)-.1 F .364(ord boundary)-.1
-F 5.364(.T)-.65 G .364(he killed te)-5.364 F .364(xt is sa)-.15 F -.15
-(ve)-.2 G 2.864(do).15 G 2.864(nt)-2.864 G(he)-2.864 E(kill-ring.)144
-436.8 Q F1(unix\255\214lename\255rubout)108 448.8 Q F0 .166(Kill the w)
-144 460.8 R .166
+5.525 E(ward\255w)144 144 Q(ord)-.1 E F0(.)A F1(unix\255w)108 156 Q
+(ord\255rubout \(C\255w\))-.1 E F0 .364(Kill the w)144 168 R .364
+(ord behind point, using white space as a w)-.1 F .365(ord boundary)-.1
+F 5.365(.T)-.65 G .365(he killed te)-5.365 F .365(xt is sa)-.15 F -.15
+(ve)-.2 G 2.865(do).15 G 2.865(nt)-2.865 G(he)-2.865 E(kill-ring.)144
+180 Q F1(unix\255\214lename\255rubout)108 192 Q F0 .167(Kill the w)144
+204 R .166
(ord behind point, using white space and the slash character as the w)
--.1 F .167(ord boundaries.)-.1 F(The)5.167 E(killed te)144 472.8 Q
+-.1 F .166(ord boundaries.)-.1 F(The)5.166 E(killed te)144 216 Q
(xt is sa)-.15 E -.15(ve)-.2 G 2.5(do).15 G 2.5(nt)-2.5 G(he kill-ring.)
--2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 484.8 Q F0
-(Delete all spaces and tabs around point.)144 496.8 Q F1(kill\255r)108
-508.8 Q(egion)-.18 E F0(Kill the te)144 520.8 Q(xt in the current re)
--.15 E(gion.)-.15 E F1(copy\255r)108 532.8 Q(egion\255as\255kill)-.18 E
-F0(Cop)144 544.8 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E
+-2.5 E F1(delete\255horizontal\255space \(M\255\\\))108 228 Q F0
+(Delete all spaces and tabs around point.)144 240 Q F1(kill\255r)108 252
+Q(egion)-.18 E F0(Kill the te)144 264 Q(xt in the current re)-.15 E
+(gion.)-.15 E F1(copy\255r)108 276 Q(egion\255as\255kill)-.18 E F0(Cop)
+144 288 Q 2.5(yt)-.1 G(he te)-2.5 E(xt in the re)-.15 E
(gion to the kill b)-.15 E(uf)-.2 E(fer)-.25 E(.)-.55 E F1
-(copy\255backward\255w)108 556.8 Q(ord)-.1 E F0(Cop)144 568.8 Q 4.801
-(yt)-.1 G 2.301(he w)-4.801 F 2.301(ord before point to the kill b)-.1 F
-(uf)-.2 E(fer)-.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.3
-(ord boundaries are the same as)-.1 F F1(back-)4.8 E(ward\255w)144 580.8
-Q(ord)-.1 E F0(.)A F1(copy\255f)108 592.8 Q(orward\255w)-.25 E(ord)-.1 E
-F0(Cop)144 604.8 Q 4.507(yt)-.1 G 2.007(he w)-4.507 F 2.007(ord follo)
--.1 F 2.007(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25 E 7.008
-(.T)-.55 G 2.008(he w)-7.008 F 2.008(ord boundaries are the same as)-.1
-F F1 -.25(fo)4.508 G -.37(r-).25 G(ward\255w)144 616.8 Q(ord)-.1 E F0(.)
-A F1(yank \(C\255y\))108 628.8 Q F0 -1(Ya)144 640.8 S
+(copy\255backward\255w)108 300 Q(ord)-.1 E F0(Cop)144 312 Q 4.8(yt)-.1 G
+2.3(he w)-4.8 F 2.3(ord before point to the kill b)-.1 F(uf)-.2 E(fer)
+-.25 E 7.301(.T)-.55 G 2.301(he w)-7.301 F 2.301
+(ord boundaries are the same as)-.1 F F1(back-)4.801 E(ward\255w)144 324
+Q(ord)-.1 E F0(.)A F1(copy\255f)108 336 Q(orward\255w)-.25 E(ord)-.1 E
+F0(Cop)144 348 Q 4.508(yt)-.1 G 2.008(he w)-4.508 F 2.008(ord follo)-.1
+F 2.008(wing point to the kill b)-.25 F(uf)-.2 E(fer)-.25 E 7.007(.T)
+-.55 G 2.007(he w)-7.007 F 2.007(ord boundaries are the same as)-.1 F F1
+-.25(fo)4.507 G -.37(r-).25 G(ward\255w)144 360 Q(ord)-.1 E F0(.)A F1
+(yank \(C\255y\))108 372 Q F0 -1(Ya)144 384 S
(nk the top of the kill ring into the b)1 E(uf)-.2 E(fer at point.)-.25
-E F1(yank\255pop \(M\255y\))108 652.8 Q F0
-(Rotate the kill ring, and yank the ne)144 664.8 Q 2.5(wt)-.25 G 2.5
+E F1(yank\255pop \(M\255y\))108 396 Q F0
+(Rotate the kill ring, and yank the ne)144 408 Q 2.5(wt)-.25 G 2.5
(op. Only)-2.5 F -.1(wo)2.5 G(rks follo).1 E(wing)-.25 E F1(yank)2.5 E
-F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 681.6 Q
-(guments)-.1 E(digit\255ar)108 693.6 Q
+F0(or)2.5 E F1(yank\255pop)2.5 E F0(.)A F1(Numeric Ar)87 424.8 Q
+(guments)-.1 E(digit\255ar)108 436.8 Q
(gument \(M\2550, M\2551, ..., M\255\255\))-.1 E F0 .367
-(Add this digit to the ar)144 705.6 R .367
+(Add this digit to the ar)144 448.8 R .367
(gument already accumulating, or start a ne)-.18 F 2.867(wa)-.25 G -.18
-(rg)-2.867 G 2.867(ument. M\255\255).18 F .366(starts a ne)2.867 F -.05
-(ga)-.15 G(-).05 E(ti)144 717.6 Q .3 -.15(ve a)-.25 H -.18(rg).15 G
-(ument.).18 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(49)190.395
-E 0 Cg EP
-%%Page: 50 50
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(uni)108 84 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0 .778
-(This is another w)144 96 R .779(ay to specify an ar)-.1 F 3.279
-(gument. If)-.18 F .779(this command is follo)3.279 F .779
+(rg)-2.867 G 2.867(ument. M\255\255).18 F .367(starts a ne)2.867 F -.05
+(ga)-.15 G(-).05 E(ti)144 460.8 Q .3 -.15(ve a)-.25 H -.18(rg).15 G
+(ument.).18 E F1(uni)108 472.8 Q -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1
+E F0 .779(This is another w)144 484.8 R .779(ay to specify an ar)-.1 F
+3.279(gument. If)-.18 F .779(this command is follo)3.279 F .778
(wed by one or more digits,)-.25 F 1.376
(optionally with a leading minus sign, those digits de\214ne the ar)144
-108 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
-120 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
+496.8 R 3.876(gument. If)-.18 F 1.376(the command is fol-)3.876 F(lo)144
+508.8 Q 1.17(wed by digits, e)-.25 F -.15(xe)-.15 G(cuting).15 E F1(uni)
3.67 E -.1(ve)-.1 G(rsal\255ar).1 E(gument)-.1 E F0(ag)3.67 E 1.17
(ain ends the numeric ar)-.05 F 1.17(gument, b)-.18 F 1.17(ut is other)
--.2 F(-)-.2 E .899(wise ignored.)144 132 R .898
-(As a special case, if this command is immediately follo)5.899 F .898
+-.2 F(-)-.2 E .898(wise ignored.)144 520.8 R .898
+(As a special case, if this command is immediately follo)5.898 F .898
(wed by a character that is)-.25 F 1.23
-(neither a digit nor minus sign, the ar)144 144 R 1.23
+(neither a digit nor minus sign, the ar)144 532.8 R 1.23
(gument count for the ne)-.18 F 1.23(xt command is multiplied by four)
--.15 F(.)-.55 E .823(The ar)144 156 R .823
+-.15 F(.)-.55 E .822(The ar)144 544.8 R .822
(gument count is initially one, so e)-.18 F -.15(xe)-.15 G .823
-(cuting this function the \214rst time mak).15 F .822(es the ar)-.1 F
-(gument)-.18 E(count four)144 168 Q 2.5(,as)-.4 G(econd time mak)-2.5 E
-(es the ar)-.1 E(gument count sixteen, and so on.)-.18 E F1(Completing)
-87 184.8 Q(complete \(T)108 196.8 Q(AB\))-.9 E F0 1.137
-(Attempt to perform completion on the te)144 208.8 R 1.137
+(cuting this function the \214rst time mak).15 F .823(es the ar)-.1 F
+(gument)-.18 E(count four)144 556.8 Q 2.5(,as)-.4 G(econd time mak)-2.5
+E(es the ar)-.1 E(gument count sixteen, and so on.)-.18 E F1(Completing)
+87 573.6 Q(complete \(T)108 585.6 Q(AB\))-.9 E F0 1.137
+(Attempt to perform completion on the te)144 597.6 R 1.137
(xt before point.)-.15 F F1(Bash)6.137 E F0 1.137
-(attempts completion treating the)3.637 F(te)144 220.8 Q .533(xt as a v)
--.15 F .533(ariable \(if the te)-.25 F .533(xt be)-.15 F .533(gins with)
--.15 F F1($)3.033 E F0 .533(\), username \(if the te)B .532(xt be)-.15 F
-.532(gins with)-.15 F F1(~)3.032 E F0 .532(\), hostname \(if the)B(te)
-144 232.8 Q .701(xt be)-.15 F .701(gins with)-.15 F F1(@)3.201 E F0 .701
-(\), or command \(including aliases and functions\) in turn.)B .702
+(attempts completion treating the)3.637 F(te)144 609.6 Q .532(xt as a v)
+-.15 F .532(ariable \(if the te)-.25 F .532(xt be)-.15 F .533(gins with)
+-.15 F F1($)3.033 E F0 .533(\), username \(if the te)B .533(xt be)-.15 F
+.533(gins with)-.15 F F1(~)3.033 E F0 .533(\), hostname \(if the)B(te)
+144 621.6 Q .702(xt be)-.15 F .702(gins with)-.15 F F1(@)3.202 E F0 .701
+(\), or command \(including aliases and functions\) in turn.)B .701
(If none of these pro-)5.701 F
-(duces a match, \214lename completion is attempted.)144 244.8 Q F1
-(possible\255completions \(M\255?\))108 256.8 Q F0
-(List the possible completions of the te)144 268.8 Q(xt before point.)
--.15 E F1(insert\255completions \(M\255*\))108 280.8 Q F0 .783
-(Insert all completions of the te)144 292.8 R .783
+(duces a match, \214lename completion is attempted.)144 633.6 Q F1
+(possible\255completions \(M\255?\))108 645.6 Q F0
+(List the possible completions of the te)144 657.6 Q(xt before point.)
+-.15 E F1(insert\255completions \(M\255*\))108 669.6 Q F0 .783
+(Insert all completions of the te)144 681.6 R .783
(xt before point that w)-.15 F .783(ould ha)-.1 F 1.083 -.15(ve b)-.2 H
-.783(een generated by).15 F F1(possible\255com-)3.282 E(pletions)144
-304.8 Q F0(.)A F1(menu\255complete)108 316.8 Q F0 .928(Similar to)144
-328.8 R F1(complete)3.428 E F0 3.428(,b)C .929(ut replaces the w)-3.628
+.783(een generated by).15 F F1(possible\255com-)3.283 E(pletions)144
+693.6 Q F0(.)A F1(menu\255complete)108 705.6 Q F0 .929(Similar to)144
+717.6 R F1(complete)3.429 E F0 3.429(,b)C .929(ut replaces the w)-3.629
F .929(ord to be completed with a single match from the list of)-.1 F
-1.194(possible completions.)144 340.8 R 1.194(Repeated e)6.194 F -.15
-(xe)-.15 G 1.194(cution of).15 F F1(menu\255complete)3.694 E F0 1.193
-(steps through the list of possible)3.694 F .828
-(completions, inserting each match in turn.)144 352.8 R .828
+1.193(possible completions.)144 729.6 R 1.193(Repeated e)6.193 F -.15
+(xe)-.15 G 1.193(cution of).15 F F1(menu\255complete)3.694 E F0 1.194
+(steps through the list of possible)3.694 F(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(52)185.115 E 0 Cg EP
+%%Page: 53 53
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .829
+(completions, inserting each match in turn.)144 84 R .828
(At the end of the list of completions, the bell is rung)5.828 F .727
-(\(subject to the setting of)144 364.8 R F1(bell\255style)3.227 E F0
-3.227(\)a)C .727(nd the original te)-3.227 F .727(xt is restored.)-.15 F
-.727(An ar)5.727 F .727(gument of)-.18 F/F2 10/Times-Italic@0 SF(n)3.227
-E F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F2(n)3.227 E F0 1.73
-(positions forw)144 376.8 R 1.73(ard in the list of matches; a ne)-.1 F
--.05(ga)-.15 G(ti).05 E 2.03 -.15(ve a)-.25 H -.18(rg).15 G 1.73
-(ument may be used to mo).18 F 2.03 -.15(ve b)-.15 H(ackw).15 E(ard)-.1
-E(through the list.)144 388.8 Q(This command is intended to be bound to)
-5 E F1 -.9(TA)2.5 G(B).9 E F0 2.5(,b)C(ut is unbound by def)-2.7 E
-(ault.)-.1 E F1(menu\255complete\255backward)108 400.8 Q F0 .82
-(Identical to)144 412.8 R F1(menu\255complete)3.32 E F0 3.32(,b)C .82
-(ut mo)-3.52 F -.15(ve)-.15 G 3.32(sb).15 G(ackw)-3.32 E .82
+(\(subject to the setting of)144 96 R/F1 10/Times-Bold@0 SF
+(bell\255style)3.227 E F0 3.227(\)a)C .727(nd the original te)-3.227 F
+.727(xt is restored.)-.15 F .727(An ar)5.727 F .727(gument of)-.18 F/F2
+10/Times-Italic@0 SF(n)3.227 E F0(mo)3.227 E -.15(ve)-.15 G(s).15 E F2
+(n)3.228 E F0 1.73(positions forw)144 108 R 1.73
+(ard in the list of matches; a ne)-.1 F -.05(ga)-.15 G(ti).05 E 2.03
+-.15(ve a)-.25 H -.18(rg).15 G 1.73(ument may be used to mo).18 F 2.03
+-.15(ve b)-.15 H(ackw).15 E(ard)-.1 E(through the list.)144 120 Q
+(This command is intended to be bound to)5 E F1 -.9(TA)2.5 G(B).9 E F0
+2.5(,b)C(ut is unbound by def)-2.7 E(ault.)-.1 E F1
+(menu\255complete\255backward)108 132 Q F0 .82(Identical to)144 144 R F1
+(menu\255complete)3.32 E F0 3.32(,b)C .82(ut mo)-3.52 F -.15(ve)-.15 G
+3.32(sb).15 G(ackw)-3.32 E .82
(ard through the list of possible completions, as if)-.1 F F1
-(menu\255complete)144 424.8 Q F0(had been gi)2.5 E -.15(ve)-.25 G 2.5
-(nan).15 G -2.25 -.15(eg a)-2.5 H(ti).15 E .3 -.15(ve a)-.25 H -.18(rg)
-.15 G 2.5(ument. This).18 F(command is unbound by def)2.5 E(ault.)-.1 E
-F1(delete\255char\255or\255list)108 436.8 Q F0 .234
-(Deletes the character under the cursor if not at the be)144 448.8 R
-.234(ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete\255char)
-2.735 E F0(\).)A .425(If at the end of the line, beha)144 460.8 R -.15
-(ve)-.2 G 2.925(si).15 G .425(dentically to)-2.925 F F1
-(possible\255completions)2.925 E F0 5.425(.T)C .425
-(his command is unbound)-5.425 F(by def)144 472.8 Q(ault.)-.1 E F1
-(complete\255\214lename \(M\255/\))108 484.8 Q F0
-(Attempt \214lename completion on the te)144 496.8 Q(xt before point.)
--.15 E F1(possible\255\214lename\255completions \(C\255x /\))108 508.8 Q
-F0(List the possible completions of the te)144 520.8 Q
+(menu\255complete)144 156 Q F0(had been gi)2.5 E -.15(ve)-.25 G 2.5(nan)
+.15 G -2.25 -.15(eg a)-2.5 H(ti).15 E .3 -.15(ve a)-.25 H -.18(rg).15 G
+2.5(ument. This).18 F(command is unbound by def)2.5 E(ault.)-.1 E F1
+(delete\255char\255or\255list)108 168 Q F0 .234
+(Deletes the character under the cursor if not at the be)144 180 R .234
+(ginning or end of the line \(lik)-.15 F(e)-.1 E F1(delete\255char)2.734
+E F0(\).)A .425(If at the end of the line, beha)144 192 R -.15(ve)-.2 G
+2.925(si).15 G .425(dentically to)-2.925 F F1(possible\255completions)
+2.925 E F0 5.425(.T)C .425(his command is unbound)-5.425 F(by def)144
+204 Q(ault.)-.1 E F1(complete\255\214lename \(M\255/\))108 216 Q F0
+(Attempt \214lename completion on the te)144 228 Q(xt before point.)-.15
+E F1(possible\255\214lename\255completions \(C\255x /\))108 240 Q F0
+(List the possible completions of the te)144 252 Q
(xt before point, treating it as a \214lename.)-.15 E F1
-(complete\255user)108 532.8 Q(name \(M\255~\))-.15 E F0
-(Attempt completion on the te)144 544.8 Q
+(complete\255user)108 264 Q(name \(M\255~\))-.15 E F0
+(Attempt completion on the te)144 276 Q
(xt before point, treating it as a username.)-.15 E F1(possible\255user)
-108 556.8 Q(name\255completions \(C\255x ~\))-.15 E F0
-(List the possible completions of the te)144 568.8 Q
+108 288 Q(name\255completions \(C\255x ~\))-.15 E F0
+(List the possible completions of the te)144 300 Q
(xt before point, treating it as a username.)-.15 E F1(complete\255v)108
-580.8 Q(ariable \(M\255$\))-.1 E F0(Attempt completion on the te)144
-592.8 Q(xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E
-F1(possible\255v)108 604.8 Q(ariable\255completions \(C\255x $\))-.1 E
-F0(List the possible completions of the te)144 616.8 Q
+312 Q(ariable \(M\255$\))-.1 E F0(Attempt completion on the te)144 324 Q
(xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E F1
-(complete\255hostname \(M\255@\))108 628.8 Q F0
-(Attempt completion on the te)144 640.8 Q
+(possible\255v)108 336 Q(ariable\255completions \(C\255x $\))-.1 E F0
+(List the possible completions of the te)144 348 Q
+(xt before point, treating it as a shell v)-.15 E(ariable.)-.25 E F1
+(complete\255hostname \(M\255@\))108 360 Q F0
+(Attempt completion on the te)144 372 Q
(xt before point, treating it as a hostname.)-.15 E F1
-(possible\255hostname\255completions \(C\255x @\))108 652.8 Q F0
-(List the possible completions of the te)144 664.8 Q
+(possible\255hostname\255completions \(C\255x @\))108 384 Q F0
+(List the possible completions of the te)144 396 Q
(xt before point, treating it as a hostname.)-.15 E F1
-(complete\255command \(M\255!\))108 676.8 Q F0 .58
-(Attempt completion on the te)144 688.8 R .581
-(xt before point, treating it as a command name.)-.15 F .581
-(Command comple-)5.581 F .715(tion attempts to match the te)144 700.8 R
+(complete\255command \(M\255!\))108 408 Q F0 .581
+(Attempt completion on the te)144 420 R .581
+(xt before point, treating it as a command name.)-.15 F .58
+(Command comple-)5.58 F .715(tion attempts to match the te)144 432 R
.715(xt ag)-.15 F .715(ainst aliases, reserv)-.05 F .715(ed w)-.15 F
.715(ords, shell functions, shell b)-.1 F .715(uiltins, and)-.2 F
-(\214nally e)144 712.8 Q -.15(xe)-.15 G
-(cutable \214lenames, in that order).15 E(.)-.55 E(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(50)190.395 E 0 Cg EP
-%%Page: 51 51
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(possible\255command\255completions \(C\255x !\))108 84 Q F0
-(List the possible completions of the te)144 96 Q
+(\214nally e)144 444 Q -.15(xe)-.15 G
+(cutable \214lenames, in that order).15 E(.)-.55 E F1
+(possible\255command\255completions \(C\255x !\))108 456 Q F0
+(List the possible completions of the te)144 468 Q
(xt before point, treating it as a command name.)-.15 E F1
-(dynamic\255complete\255history \(M\255T)108 108 Q(AB\))-.9 E F0 .424
-(Attempt completion on the te)144 120 R .425
-(xt before point, comparing the te)-.15 F .425(xt ag)-.15 F .425
+(dynamic\255complete\255history \(M\255T)108 480 Q(AB\))-.9 E F0 .425
+(Attempt completion on the te)144 492 R .425
+(xt before point, comparing the te)-.15 F .425(xt ag)-.15 F .424
(ainst lines from the history list)-.05 F
-(for possible completion matches.)144 132 Q F1(dab)108 144 Q(br)-.1 E
--.15(ev)-.18 G(\255expand).15 E F0 .611
-(Attempt menu completion on the te)144 156 R .611
-(xt before point, comparing the te)-.15 F .61(xt ag)-.15 F .61
+(for possible completion matches.)144 504 Q F1(dab)108 516 Q(br)-.1 E
+-.15(ev)-.18 G(\255expand).15 E F0 .61
+(Attempt menu completion on the te)144 528 R .611
+(xt before point, comparing the te)-.15 F .611(xt ag)-.15 F .611
(ainst lines from the his-)-.05 F
-(tory list for possible completion matches.)144 168 Q F1
-(complete\255into\255braces \(M\255{\))108 180 Q F0 .4(Perform \214lena\
+(tory list for possible completion matches.)144 540 Q F1
+(complete\255into\255braces \(M\255{\))108 552 Q F0 .4(Perform \214lena\
me completion and insert the list of possible completions enclosed with\
-in braces so)144 192 R(the list is a)144 204 Q -.25(va)-.2 G
+in braces so)144 564 R(the list is a)144 576 Q -.25(va)-.2 G
(ilable to the shell \(see).25 E F1(Brace Expansion)2.5 E F0(abo)2.5 E
--.15(ve)-.15 G(\).).15 E F1 -.25(Ke)87 220.8 S(yboard Macr).25 E(os)-.18
-E(start\255kbd\255macr)108 232.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\))
-.833 E F0(Be)144 244.8 Q(gin sa)-.15 E
+-.15(ve)-.15 G(\).).15 E F1 -.25(Ke)87 592.8 S(yboard Macr).25 E(os)-.18
+E(start\255kbd\255macr)108 604.8 Q 2.5(o\()-.18 G(C\255x \()-2.5 E(\))
+.833 E F0(Be)144 616.8 Q(gin sa)-.15 E
(ving the characters typed into the current k)-.2 E -.15(ey)-.1 G
-(board macro.).15 E F1(end\255kbd\255macr)108 256.8 Q 2.5(o\()-.18 G
-(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 268.8 Q
+(board macro.).15 E F1(end\255kbd\255macr)108 628.8 Q 2.5(o\()-.18 G
+(C\255x \))-2.5 E(\)).833 E F0(Stop sa)144 640.8 Q
(ving the characters typed into the current k)-.2 E -.15(ey)-.1 G
(board macro and store the de\214nition.).15 E F1
-(call\255last\255kbd\255macr)108 280.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5
-E F0(Re-e)144 292.8 Q -.15(xe)-.15 G 1(cute the last k).15 F -.15(ey)-.1
-G .999(board macro de\214ned, by making the characters in the macro app\
-ear as if).15 F(typed at the k)144 304.8 Q -.15(ey)-.1 G(board.).15 E F1
-(print\255last\255kbd\255macr)108 316.8 Q 2.5(o\()-.18 G(\))-2.5 E F0
-(Print the last k)144 328.8 Q -.15(ey)-.1 G
-(board macro de\214ned in a format suitable for the).15 E/F2 10
-/Times-Italic@0 SF(inputr)2.5 E(c)-.37 E F0(\214le.)2.5 E F1
-(Miscellaneous)87 345.6 Q -.18(re)108 357.6 S<ad72>.18 E
-(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.776
-(Read in the contents of the)144 369.6 R F2(inputr)4.276 E(c)-.37 E F0
-1.777(\214le, and incorporate an)4.276 F 4.277(yb)-.15 G 1.777
-(indings or v)-4.277 F 1.777(ariable assignments)-.25 F(found there.)144
-381.6 Q F1(abort \(C\255g\))108 393.6 Q F0 3.249
-(Abort the current editing command and ring the terminal')144 405.6 R
-5.748(sb)-.55 G 3.248(ell \(subject to the setting of)-5.748 F F1
-(bell\255style)144 417.6 Q F0(\).)A F1(do\255lo)108 429.6 Q(wer)-.1 E
+(call\255last\255kbd\255macr)108 652.8 Q 2.5(o\()-.18 G(C\255x e\))-2.5
+E F0(Re-e)144 664.8 Q -.15(xe)-.15 G .999(cute the last k).15 F -.15(ey)
+-.1 G .999(board macro de\214ned, by making the characters in the macro\
+ appear as if).15 F(typed at the k)144 676.8 Q -.15(ey)-.1 G(board.).15
+E F1(print\255last\255kbd\255macr)108 688.8 Q 2.5(o\()-.18 G(\))-2.5 E
+F0(Print the last k)144 700.8 Q -.15(ey)-.1 G
+(board macro de\214ned in a format suitable for the).15 E F2(inputr)2.5
+E(c)-.37 E F0(\214le.)2.5 E(GNU Bash 5.2)72 768 Q(2022 September 19)
+135.955 E(53)185.115 E 0 Cg EP
+%%Page: 54 54
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(Miscellaneous)87 84 Q -.18(re)108 96 S<ad72>.18 E
+(ead\255init\255\214le \(C\255x C\255r\))-.18 E F0 1.777
+(Read in the contents of the)144 108 R/F2 10/Times-Italic@0 SF(inputr)
+4.277 E(c)-.37 E F0 1.776(\214le, and incorporate an)4.276 F 4.276(yb)
+-.15 G 1.776(indings or v)-4.276 F 1.776(ariable assignments)-.25 F
+(found there.)144 120 Q F1(abort \(C\255g\))108 132 Q F0 3.248
+(Abort the current editing command and ring the terminal')144 144 R
+5.749(sb)-.55 G 3.249(ell \(subject to the setting of)-5.749 F F1
+(bell\255style)144 156 Q F0(\).)A F1(do\255lo)108 168 Q(wer)-.1 E
(case\255v)-.18 E(ersion \(M\255A, M\255B, M\255)-.1 E F2(x)A F1 2.5(,.)
-C(..\))-2.5 E F0 1.738(If the meta\214ed character)144 441.6 R F2(x)
-4.238 E F0 1.739
-(is uppercase, run the command that is bound to the corresponding)4.238
-F(meta\214ed lo)144 453.6 Q(wercase character)-.25 E 5(.T)-.55 G
-(he beha)-5 E(vior is unde\214ned if)-.2 E F2(x)2.5 E F0(is already lo)
-2.5 E(wercase.)-.25 E F1(pr)108 465.6 Q(e\214x\255meta \(ESC\))-.18 E F0
-(Metafy the ne)144 477.6 Q(xt character typed.)-.15 E/F3 9/Times-Bold@0
-SF(ESC)5 E F1(f)2.25 E F0(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1
-(Meta\255f)2.5 E F0(.)A F1(undo \(C\255_, C\255x C\255u\))108 489.6 Q F0
-(Incremental undo, separately remembered for each line.)144 501.6 Q F1
--2.29 -.18(re v)108 513.6 T(ert\255line \(M\255r\)).08 E F0 .231
-(Undo all changes made to this line.)144 525.6 R .231(This is lik)5.231
-F 2.731(ee)-.1 G -.15(xe)-2.881 G .23(cuting the).15 F F1(undo)2.73 E F0
-.23(command enough times to re-)2.73 F
-(turn the line to its initial state.)144 537.6 Q F1
-(tilde\255expand \(M\255&\))108 549.6 Q F0(Perform tilde e)144 561.6 Q
+C(..\))-2.5 E F0 1.739(If the meta\214ed character)144 180 R F2(x)4.239
+E F0 1.739
+(is uppercase, run the command that is bound to the corresponding)4.239
+F(meta\214ed lo)144 192 Q(wercase character)-.25 E 5(.T)-.55 G(he beha)
+-5 E(vior is unde\214ned if)-.2 E F2(x)2.5 E F0(is already lo)2.5 E
+(wercase.)-.25 E F1(pr)108 204 Q(e\214x\255meta \(ESC\))-.18 E F0
+(Metafy the ne)144 216 Q(xt character typed.)-.15 E/F3 9/Times-Bold@0 SF
+(ESC)5 E F1(f)2.25 E F0(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F1
+(Meta\255f)2.5 E F0(.)A F1(undo \(C\255_, C\255x C\255u\))108 228 Q F0
+(Incremental undo, separately remembered for each line.)144 240 Q F1
+-2.29 -.18(re v)108 252 T(ert\255line \(M\255r\)).08 E F0 .23
+(Undo all changes made to this line.)144 264 R .231(This is lik)5.23 F
+2.731(ee)-.1 G -.15(xe)-2.881 G .231(cuting the).15 F F1(undo)2.731 E F0
+.231(command enough times to re-)2.731 F
+(turn the line to its initial state.)144 276 Q F1
+(tilde\255expand \(M\255&\))108 288 Q F0(Perform tilde e)144 300 Q
(xpansion on the current w)-.15 E(ord.)-.1 E F1
-(set\255mark \(C\255@, M\255<space>\))108 573.6 Q F0
-(Set the mark to the point.)144 585.6 Q(If a numeric ar)5 E
+(set\255mark \(C\255@, M\255<space>\))108 312 Q F0
+(Set the mark to the point.)144 324 Q(If a numeric ar)5 E
(gument is supplied, the mark is set to that position.)-.18 E F1
-(exchange\255point\255and\255mark \(C\255x C\255x\))108 597.6 Q F0(Sw)
-144 609.6 Q .282(ap the point with the mark.)-.1 F .283
+(exchange\255point\255and\255mark \(C\255x C\255x\))108 336 Q F0(Sw)144
+348 Q .283(ap the point with the mark.)-.1 F .283
(The current cursor position is set to the sa)5.283 F -.15(ve)-.2 G
-2.783(dp).15 G .283(osition, and the old)-2.783 F(cursor position is sa)
-144 621.6 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1
-(character\255sear)108 633.6 Q(ch \(C\255]\))-.18 E F0 3.036(Ac)144
-645.6 S .536(haracter is read and point is mo)-3.036 F -.15(ve)-.15 G
-3.035(dt).15 G 3.035(ot)-3.035 G .535(he ne)-3.035 F .535
-(xt occurrence of that character)-.15 F 5.535(.A)-.55 G(ne)-2.5 E -.05
-(ga)-.15 G(ti).05 E .835 -.15(ve c)-.25 H(ount).15 E(searches for pre)
-144 657.6 Q(vious occurrences.)-.25 E F1(character\255sear)108 669.6 Q
-(ch\255backward \(M\255C\255]\))-.18 E F0 3.543(Ac)144 681.6 S 1.043
-(haracter is read and point is mo)-3.543 F -.15(ve)-.15 G 3.544(dt).15 G
-3.544(ot)-3.544 G 1.044(he pre)-3.544 F 1.044
-(vious occurrence of that character)-.25 F 6.044(.A)-.55 G(ne)-2.5 E
--.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G
-(count searches for subsequent occurrences.)144 693.6 Q F1
-(skip\255csi\255sequence)108 705.6 Q F0 1.827
-(Read enough characters to consume a multi-k)144 717.6 R 2.126 -.15
-(ey s)-.1 H 1.826(equence such as those de\214ned for k).15 F -.15(ey)
--.1 G 4.326(sl).15 G(ik)-4.326 E(e)-.1 E .79(Home and End.)144 729.6 R
-.791(Such sequences be)5.79 F .791
+2.782(dp).15 G .282(osition, and the old)-2.782 F(cursor position is sa)
+144 360 Q -.15(ve)-.2 G 2.5(da).15 G 2.5(st)-2.5 G(he mark.)-2.5 E F1
+(character\255sear)108 372 Q(ch \(C\255]\))-.18 E F0 3.111(Ac)144 384 S
+.611(haracter is read and point is mo)-3.111 F -.15(ve)-.15 G 3.112(dt)
+.15 G 3.112(ot)-3.112 G .612(he ne)-3.112 F .612
+(xt occurrence of that character)-.15 F 5.612(.A)-.55 G(ne)-2.5 E -.05
+(ga)-.15 G(ti).05 E .912 -.15(ve a)-.25 H -.18(rg).15 G(u-).18 E
+(ment searches for pre)144 396 Q(vious occurrences.)-.25 E F1
+(character\255sear)108 408 Q(ch\255backward \(M\255C\255]\))-.18 E F0
+2.695(Ac)144 420 S .194(haracter is read and point is mo)-2.695 F -.15
+(ve)-.15 G 2.694(dt).15 G 2.694(ot)-2.694 G .194(he pre)-2.694 F .194
+(vious occurrence of that character)-.25 F 5.194(.A)-.55 G(ne)-2.5 E
+-.05(ga)-.15 G(ti).05 E .494 -.15(ve a)-.25 H -.2(r-).15 G
+(gument searches for subsequent occurrences.)144 432 Q F1
+(skip\255csi\255sequence)108 444 Q F0 1.826
+(Read enough characters to consume a multi-k)144 456 R 2.126 -.15(ey s)
+-.1 H 1.827(equence such as those de\214ned for k).15 F -.15(ey)-.1 G
+4.327(sl).15 G(ik)-4.327 E(e)-.1 E .791(Home and End.)144 468 R .791
+(Such sequences be)5.791 F .791
(gin with a Control Sequence Indicator \(CSI\), usually ESC\255[.)-.15 F
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(51)190.395 E 0 Cg EP
-%%Page: 52 52
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .332
-(If this sequence is bound to "\\[", k)144 84 R -.15(ey)-.1 G 2.831(sp)
-.15 G .331(roducing such sequences will ha)-2.831 F .631 -.15(ve n)-.2 H
-2.831(oe).15 G -.25(ff)-2.831 G .331(ect unless e).25 F(xplic-)-.15 E
-.026(itly bound to a readline command, instead of inserting stray chara\
-cters into the editing b)144 96 R(uf)-.2 E(fer)-.25 E 5.026(.T)-.55 G
-(his)-5.026 E(is unbound by def)144 108 Q(ault, b)-.1 E
-(ut usually bound to ESC\255[.)-.2 E/F1 10/Times-Bold@0 SF
-(insert\255comment \(M\255#\))108 120 Q F0 -.4(Wi)144 132 S .481
-(thout a numeric ar).4 F .481(gument, the v)-.18 F .481
-(alue of the readline)-.25 F F1(comment\255begin)2.981 E F0 -.25(va)
-2.981 G .48(riable is inserted at the).25 F(be)144 144 Q .244
-(ginning of the current line.)-.15 F .245(If a numeric ar)5.244 F .245
-(gument is supplied, this command acts as a toggle: if)-.18 F .322
-(the characters at the be)144 156 R .321
+.331(If this sequence is bound to "\\[", k)144 480 R -.15(ey)-.1 G 2.831
+(sp).15 G .331(roducing such sequences will ha)-2.831 F .632 -.15(ve n)
+-.2 H 2.832(oe).15 G -.25(ff)-2.832 G .332(ect unless e).25 F(xplic-)
+-.15 E .026(itly bound to a readline command, instead of inserting stra\
+y characters into the editing b)144 492 R(uf)-.2 E(fer)-.25 E 5.026(.T)
+-.55 G(his)-5.026 E(is unbound by def)144 504 Q(ault, b)-.1 E
+(ut usually bound to ESC\255[.)-.2 E F1(insert\255comment \(M\255#\))108
+516 Q F0 -.4(Wi)144 528 S .48(thout a numeric ar).4 F .48(gument, the v)
+-.18 F .481(alue of the readline)-.25 F F1(comment\255begin)2.981 E F0
+-.25(va)2.981 G .481(riable is inserted at the).25 F(be)144 540 Q .245
+(ginning of the current line.)-.15 F .245(If a numeric ar)5.245 F .244
+(gument is supplied, this command acts as a toggle: if)-.18 F .321
+(the characters at the be)144 552 R .321
(ginning of the line do not match the v)-.15 F .321(alue of)-.25 F F1
-(comment\255begin)2.821 E F0 2.821(,t)C .321(he v)-2.821 F .321(alue is)
--.25 F .831(inserted, otherwise the characters in)144 168 R F1
-(comment\255begin)3.331 E F0 .832(are deleted from the be)3.331 F .832
-(ginning of the line.)-.15 F 1.469
-(In either case, the line is accepted as if a ne)144 180 R 1.468
-(wline had been typed.)-.25 F 1.468(The def)6.468 F 1.468(ault v)-.1 F
-1.468(alue of)-.25 F F1(com-)3.968 E(ment\255begin)144 192 Q F0 .839
-(causes this command to mak)3.339 F 3.339(et)-.1 G .839
-(he current line a shell comment.)-3.339 F .84(If a numeric ar)5.84 F
-(gu-)-.18 E(ment causes the comment character to be remo)144 204 Q -.15
+(comment\255begin)2.821 E F0 2.822(,t)C .322(he v)-2.822 F .322(alue is)
+-.25 F .832(inserted, otherwise the characters in)144 564 R F1
+(comment\255begin)3.332 E F0 .831(are deleted from the be)3.332 F .831
+(ginning of the line.)-.15 F 1.468
+(In either case, the line is accepted as if a ne)144 576 R 1.468
+(wline had been typed.)-.25 F 1.469(The def)6.469 F 1.469(ault v)-.1 F
+1.469(alue of)-.25 F F1(com-)3.969 E(ment\255begin)144 588 Q F0 .84
+(causes this command to mak)3.34 F 3.339(et)-.1 G .839
+(he current line a shell comment.)-3.339 F .839(If a numeric ar)5.839 F
+(gu-)-.18 E(ment causes the comment character to be remo)144 600 Q -.15
(ve)-.15 G(d, the line will be e).15 E -.15(xe)-.15 G
-(cuted by the shell.).15 E F1(glob\255complete\255w)108 216 Q
-(ord \(M\255g\))-.1 E F0 .792(The w)144 228 R .791
-(ord before point is treated as a pattern for pathname e)-.1 F .791
-(xpansion, with an asterisk implicitly)-.15 F 2.5(appended. This)144 240
-R(pattern is used to generate a list of matching \214lenames for possib\
-le completions.)2.5 E F1(glob\255expand\255w)108 252 Q(ord \(C\255x *\))
--.1 E F0 .175(The w)144 264 R .176
+(cuted by the shell.).15 E F1(spell\255corr)108 612 Q(ect\255w)-.18 E
+(ord \(C\255x s\))-.1 E F0 .42
+(Perform spelling correction on the current w)144 624 R .421
+(ord, treating it as a directory or \214lename, in the same)-.1 F -.1
+(wa)144 636 S 4.718(ya).1 G 4.718(st)-4.718 G(he)-4.718 E F1(cdspell)
+4.718 E F0 2.218(shell option.)4.718 F -.8(Wo)7.217 G 2.217
+(rd boundaries are the same as those used by).8 F F1(shell\255f)4.717 E
+(or)-.25 E(-)-.37 E(ward\255w)144 648 Q(ord)-.1 E F0(.)A F1
+(glob\255complete\255w)108 660 Q(ord \(M\255g\))-.1 E F0 .791(The w)144
+672 R .791(ord before point is treated as a pattern for pathname e)-.1 F
+.792(xpansion, with an asterisk implicitly)-.15 F 2.5(appended. This)144
+684 R(pattern is used to generate a list of matching \214lenames for po\
+ssible completions.)2.5 E F1(glob\255expand\255w)108 696 Q
+(ord \(C\255x *\))-.1 E F0 .176(The w)144 708 R .176
(ord before point is treated as a pattern for pathname e)-.1 F .176
(xpansion, and the list of matching \214le-)-.15 F .516
-(names is inserted, replacing the w)144 276 R 3.016(ord. If)-.1 F 3.016
+(names is inserted, replacing the w)144 720 R 3.016(ord. If)-.1 F 3.016
(an)3.016 G .516(umeric ar)-3.016 F .516
-(gument is supplied, an asterisk is appended)-.18 F(before pathname e)
-144 288 Q(xpansion.)-.15 E F1(glob\255list\255expansions \(C\255x g\))
-108 300 Q F0 .923(The list of e)144 312 R .923(xpansions that w)-.15 F
-.923(ould ha)-.1 F 1.223 -.15(ve b)-.2 H .923(een generated by).15 F F1
-(glob\255expand\255w)3.423 E(ord)-.1 E F0 .923(is displayed, and)3.423 F
-.872(the line is redra)144 324 R 3.372(wn. If)-.15 F 3.372(an)3.372 G
-.872(umeric ar)-3.372 F .872
+(gument is supplied, an asterisk is appended)-.18 F(GNU Bash 5.2)72 768
+Q(2022 September 19)135.955 E(54)185.115 E 0 Cg EP
+%%Page: 55 55
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(before pathname e)
+144 84 Q(xpansion.)-.15 E/F1 10/Times-Bold@0 SF
+(glob\255list\255expansions \(C\255x g\))108 96 Q F0 .923(The list of e)
+144 108 R .923(xpansions that w)-.15 F .923(ould ha)-.1 F 1.223 -.15
+(ve b)-.2 H .923(een generated by).15 F F1(glob\255expand\255w)3.423 E
+(ord)-.1 E F0 .923(is displayed, and)3.423 F .872(the line is redra)144
+120 R 3.372(wn. If)-.15 F 3.372(an)3.372 G .872(umeric ar)-3.372 F .872
(gument is supplied, an asterisk is appended before pathname)-.18 F -.15
-(ex)144 336 S(pansion.).15 E F1(dump\255functions)108 348 Q F0 .626
-(Print all of the functions and their k)144 360 R .926 -.15(ey b)-.1 H
-.627(indings to the readline output stream.).15 F .627(If a numeric ar)
-5.627 F(gu-)-.18 E
-(ment is supplied, the output is formatted in such a w)144 372 Q
+(ex)144 132 S(pansion.).15 E F1(dump\255functions)108 144 Q F0 .627
+(Print all of the functions and their k)144 156 R .927 -.15(ey b)-.1 H
+.626(indings to the readline output stream.).15 F .626(If a numeric ar)
+5.626 F(gu-)-.18 E
+(ment is supplied, the output is formatted in such a w)144 168 Q
(ay that it can be made part of an)-.1 E/F2 10/Times-Italic@0 SF(inputr)
-2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 384 Q(ariables)-.1 E F0
-.763(Print all of the settable readline v)144 396 R .762
-(ariables and their v)-.25 F .762(alues to the readline output stream.)
--.25 F .762(If a nu-)5.762 F .108(meric ar)144 408 R .108
-(gument is supplied, the output is formatted in such a w)-.18 F .109
-(ay that it can be made part of an)-.1 F F2(in-)2.609 E(putr)144 420 Q
-(c)-.37 E F0(\214le.)2.5 E F1(dump\255macr)108 432 Q(os)-.18 E F0 .593
-(Print all of the readline k)144 444 R .893 -.15(ey s)-.1 H .592
-(equences bound to macros and the strings the).15 F 3.092(yo)-.15 G
-3.092(utput. If)-3.092 F 3.092(an)3.092 G(umeric)-3.092 E(ar)144 456 Q
+2.5 E(c)-.37 E F0(\214le.)2.5 E F1(dump\255v)108 180 Q(ariables)-.1 E F0
+.762(Print all of the settable readline v)144 192 R .762
+(ariables and their v)-.25 F .763(alues to the readline output stream.)
+-.25 F .763(If a nu-)5.763 F .109(meric ar)144 204 R .109
+(gument is supplied, the output is formatted in such a w)-.18 F .108
+(ay that it can be made part of an)-.1 F F2(in-)2.608 E(putr)144 216 Q
+(c)-.37 E F0(\214le.)2.5 E F1(dump\255macr)108 228 Q(os)-.18 E F0 .592
+(Print all of the readline k)144 240 R .892 -.15(ey s)-.1 H .592
+(equences bound to macros and the strings the).15 F 3.093(yo)-.15 G
+3.093(utput. If)-3.093 F 3.093(an)3.093 G(umeric)-3.093 E(ar)144 252 Q
.528(gument is supplied, the output is formatted in such a w)-.18 F .528
-(ay that it can be made part of an)-.1 F F2(inputr)3.028 E(c)-.37 E F0
-(\214le.)144 468 Q F1(display\255shell\255v)108 480 Q
-(ersion \(C\255x C\255v\))-.1 E F0(Display v)144 492 Q
+(ay that it can be made part of an)-.1 F F2(inputr)3.027 E(c)-.37 E F0
+(\214le.)144 264 Q F1(display\255shell\255v)108 276 Q
+(ersion \(C\255x C\255v\))-.1 E F0(Display v)144 288 Q
(ersion information about the current instance of)-.15 E F1(bash)2.5 E
-F0(.)A F1(Pr)87 508.8 Q(ogrammable Completion)-.18 E F0 .147(When w)108
-520.8 R .147(ord completion is attempted for an ar)-.1 F .147
+F0(.)A F1(Pr)87 304.8 Q(ogrammable Completion)-.18 E F0 .146(When w)108
+316.8 R .147(ord completion is attempted for an ar)-.1 F .147
(gument to a command for which a completion speci\214cation \(a)-.18 F
-F2(compspec)108 532.8 Q F0 3.828(\)h)C 1.329
-(as been de\214ned using the)-3.828 F F1(complete)3.829 E F0 -.2(bu)
+F2(compspec)108 328.8 Q F0 3.829(\)h)C 1.329
+(as been de\214ned using the)-3.829 F F1(complete)3.829 E F0 -.2(bu)
3.829 G 1.329(iltin \(see).2 F/F3 9/Times-Bold@0 SF 1.329(SHELL B)3.829
-F(UIL)-.09 E 1.329(TIN COMMANDS)-.828 F F0(belo)3.579 E 1.329(w\), the)
--.25 F(programmable completion f)108 544.8 Q(acilities are in)-.1 E -.2
-(vo)-.4 G -.1(ke).2 G(d.).1 E .498
-(First, the command name is identi\214ed.)108 561.6 R .498
-(If the command w)5.498 F .497
-(ord is the empty string \(completion attempted at)-.1 F .233(the be)108
-573.6 R .233(ginning of an empty line\), an)-.15 F 2.733(yc)-.15 G .233
+F(UIL)-.09 E 1.329(TIN COMMANDS)-.828 F F0(belo)3.579 E 1.328(w\), the)
+-.25 F(programmable completion f)108 340.8 Q(acilities are in)-.1 E -.2
+(vo)-.4 G -.1(ke).2 G(d.).1 E .497
+(First, the command name is identi\214ed.)108 357.6 R .497
+(If the command w)5.497 F .498
+(ord is the empty string \(completion attempted at)-.1 F .234(the be)108
+369.6 R .233(ginning of an empty line\), an)-.15 F 2.733(yc)-.15 G .233
(ompspec de\214ned with the)-2.733 F F1<ad45>2.733 E F0 .233(option to)
-2.733 F F1(complete)2.733 E F0 .233(is used.)2.733 F .234(If a comp-)
-5.234 F .481(spec has been de\214ned for that command, the compspec is \
-used to generate the list of possible completions)108 585.6 R .822
-(for the w)108 597.6 R 3.322(ord. If)-.1 F .822(the command w)3.322 F
-.823(ord is a full pathname, a compspec for the full pathname is search\
-ed for)-.1 F 2.867(\214rst. If)108 609.6 R .366(no compspec is found fo\
+2.733 F F1(complete)2.733 E F0 .233(is used.)2.733 F .233(If a comp-)
+5.233 F .481(spec has been de\214ned for that command, the compspec is \
+used to generate the list of possible completions)108 381.6 R .823
+(for the w)108 393.6 R 3.323(ord. If)-.1 F .823(the command w)3.323 F
+.822(ord is a full pathname, a compspec for the full pathname is search\
+ed for)-.1 F 2.866(\214rst. If)108 405.6 R .367(no compspec is found fo\
r the full pathname, an attempt is made to \214nd a compspec for the po\
-rtion)2.867 F(follo)108 621.6 Q .298(wing the \214nal slash.)-.25 F .298
-(If those searches do not result in a compspec, an)5.298 F 2.799(yc)-.15
-G .299(ompspec de\214ned with the)-2.799 F F1<ad44>2.799 E F0 .057
-(option to)108 633.6 R F1(complete)2.557 E F0 .056(is used as the def)
+rtion)2.866 F(follo)108 417.6 Q .299(wing the \214nal slash.)-.25 F .298
+(If those searches do not result in a compspec, an)5.299 F 2.798(yc)-.15
+G .298(ompspec de\214ned with the)-2.798 F F1<ad44>2.798 E F0 .056
+(option to)108 429.6 R F1(complete)2.556 E F0 .056(is used as the def)
2.556 F 2.556(ault. If)-.1 F .056(there is no def)2.556 F .056
(ault compspec,)-.1 F F1(bash)2.556 E F0 .056(attempts alias e)2.556 F
-.056(xpansion on)-.15 F .332(the command w)108 645.6 R .332(ord as a \
+.057(xpansion on)-.15 F .333(the command w)108 441.6 R .332(ord as a \
\214nal resort, and attempts to \214nd a compspec for the command w)-.1
-F .332(ord from an)-.1 F 2.833(ys)-.15 G(uc-)-2.833 E(cessful e)108
-657.6 Q(xpansion.)-.15 E .817(Once a compspec has been found, it is use\
-d to generate the list of matching w)108 674.4 R 3.317(ords. If)-.1 F
-3.317(ac)3.317 G .817(ompspec is not)-3.317 F(found, the def)108 686.4 Q
+F .332(ord from an)-.1 F 2.832(ys)-.15 G(uc-)-2.832 E(cessful e)108
+453.6 Q(xpansion.)-.15 E .817(Once a compspec has been found, it is use\
+d to generate the list of matching w)108 470.4 R 3.317(ords. If)-.1 F
+3.317(ac)3.317 G .817(ompspec is not)-3.317 F(found, the def)108 482.4 Q
(ault)-.1 E F1(bash)2.5 E F0(completion as described abo)2.5 E .3 -.15
-(ve u)-.15 H(nder).15 E F1(Completing)2.5 E F0(is performed.)2.5 E .463
-(First, the actions speci\214ed by the compspec are used.)108 703.2 R
-.464(Only matches which are pre\214x)5.464 F .464(ed by the w)-.15 F
-.464(ord being)-.1 F .596(completed are returned.)108 715.2 R .596
-(When the)5.596 F F1<ad66>3.096 E F0(or)3.095 E F1<ad64>3.095 E F0 .595
+(ve u)-.15 H(nder).15 E F1(Completing)2.5 E F0(is performed.)2.5 E .464
+(First, the actions speci\214ed by the compspec are used.)108 499.2 R
+.463(Only matches which are pre\214x)5.464 F .463(ed by the w)-.15 F
+.463(ord being)-.1 F .595(completed are returned.)108 511.2 R .595
+(When the)5.595 F F1<ad66>3.095 E F0(or)3.095 E F1<ad64>3.095 E F0 .596
(option is used for \214lename or directory name completion, the)3.095 F
-(shell v)108 727.2 Q(ariable)-.25 E F3(FIGNORE)2.5 E F0
-(is used to \214lter the matches.)2.25 E(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(52)190.395 E 0 Cg EP
-%%Page: 53 53
+(shell v)108 523.2 Q(ariable)-.25 E F3(FIGNORE)2.5 E F0
+(is used to \214lter the matches.)2.25 E(An)108 540 Q 4.084(yc)-.15 G
+1.584(ompletions speci\214ed by a pathname e)-4.084 F 1.584
+(xpansion pattern to the)-.15 F F1<ad47>4.084 E F0 1.584
+(option are generated ne)4.084 F 4.084(xt. The)-.15 F -.1(wo)108 552 S
+.554(rds generated by the pattern need not match the w).1 F .555
+(ord being completed.)-.1 F(The)5.555 E F3(GLOBIGNORE)3.055 E F0 .555
+(shell v)2.805 F(ari-)-.25 E
+(able is not used to \214lter the matches, b)108 564 Q(ut the)-.2 E F3
+(FIGNORE)2.5 E F0 -.25(va)2.25 G(riable is used.).25 E(Ne)108 580.8 Q
+.321(xt, the string speci\214ed as the ar)-.15 F .321(gument to the)-.18
+F F1<ad57>2.821 E F0 .32(option is considered.)2.821 F .32
+(The string is \214rst split using the)5.32 F .412(characters in the)108
+592.8 R F3(IFS)2.912 E F0 .412(special v)2.662 F .412
+(ariable as delimiters.)-.25 F .412(Shell quoting is honored.)5.412 F
+.413(Each w)5.412 F .413(ord is then e)-.1 F(xpanded)-.15 E .092
+(using brace e)108 604.8 R .092(xpansion, tilde e)-.15 F .092
+(xpansion, parameter and v)-.15 F .092(ariable e)-.25 F .091
+(xpansion, command substitution, and arith-)-.15 F 1.396(metic e)108
+616.8 R 1.396(xpansion, as described abo)-.15 F 1.696 -.15(ve u)-.15 H
+(nder).15 E F3(EXP)3.896 E(ANSION)-.666 E/F4 9/Times-Roman@0 SF(.)A F0
+1.396(The results are split using the rules described)5.896 F(abo)108
+628.8 Q .51 -.15(ve u)-.15 H(nder).15 E F1 -.75(Wo)2.71 G .21
+(rd Splitting).75 F F0 5.21(.T)C .209(he results of the e)-5.21 F .209
+(xpansion are pre\214x-matched ag)-.15 F .209(ainst the w)-.05 F .209
+(ord being com-)-.1 F(pleted, and the matching w)108 640.8 Q
+(ords become the possible completions.)-.1 E .233
+(After these matches ha)108 657.6 R .533 -.15(ve b)-.2 H .233
+(een generated, an).15 F 2.733(ys)-.15 G .234
+(hell function or command speci\214ed with the)-2.733 F F1<ad46>2.734 E
+F0(and)2.734 E F1<ad43>2.734 E F0(op-)2.734 E 4.209(tions is in)108
+669.6 R -.2(vo)-.4 G -.1(ke).2 G 6.709(d. When).1 F 4.208
+(the command or function is in)6.709 F -.2(vo)-.4 G -.1(ke).2 G 4.208
+(d, the).1 F F3(COMP_LINE)6.708 E F4(,)A F3(COMP_POINT)6.458 E F4(,)A F3
+(COMP_KEY)108 681.6 Q F4(,)A F0(and)2.407 E F3(COMP_TYPE)2.657 E F0 -.25
+(va)2.407 G .157(riables are assigned v).25 F .157
+(alues as described abo)-.25 F .457 -.15(ve u)-.15 H(nder).15 E F1 .158
+(Shell V)2.658 F(ariables)-.92 E F0 5.158(.I)C(f)-5.158 E 3.486(as)108
+693.6 S .986(hell function is being in)-3.486 F -.2(vo)-.4 G -.1(ke).2 G
+.986(d, the).1 F F3(COMP_W)3.486 E(ORDS)-.09 E F0(and)3.236 E F3
+(COMP_CW)3.486 E(ORD)-.09 E F0 -.25(va)3.236 G .986
+(riables are also set.).25 F(When)5.985 E .346
+(the function or command is in)108 705.6 R -.2(vo)-.4 G -.1(ke).2 G .346
+(d, the \214rst ar).1 F .346(gument \()-.18 F F1($1)A F0 2.847(\)i)C
+2.847(st)-2.847 G .347(he name of the command whose ar)-2.847 F(guments)
+-.18 E .264(are being completed, the second ar)108 717.6 R .264
+(gument \()-.18 F F1($2)A F0 2.764(\)i)C 2.764(st)-2.764 G .264(he w)
+-2.764 F .263(ord being completed, and the third ar)-.1 F .263
+(gument \()-.18 F F1($3)A F0 2.763(\)i)C(s)-2.763 E .628(the w)108 729.6
+R .628(ord preceding the w)-.1 F .629
+(ord being completed on the current command line.)-.1 F .629
+(No \214ltering of the generated)5.629 F(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(55)185.115 E 0 Cg EP
+%%Page: 56 56
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(An)108 84 Q 4.084
-(yc)-.15 G 1.584(ompletions speci\214ed by a pathname e)-4.084 F 1.584
-(xpansion pattern to the)-.15 F/F1 10/Times-Bold@0 SF<ad47>4.084 E F0
-1.584(option are generated ne)4.084 F 4.084(xt. The)-.15 F -.1(wo)108 96
-S .555(rds generated by the pattern need not match the w).1 F .554
-(ord being completed.)-.1 F(The)5.554 E/F2 9/Times-Bold@0 SF(GLOBIGNORE)
-3.054 E F0 .554(shell v)2.804 F(ari-)-.25 E
-(able is not used to \214lter the matches, b)108 108 Q(ut the)-.2 E F2
-(FIGNORE)2.5 E F0 -.25(va)2.25 G(riable is used.).25 E(Ne)108 124.8 Q
-.32(xt, the string speci\214ed as the ar)-.15 F .32(gument to the)-.18 F
-F1<ad57>2.82 E F0 .321(option is considered.)2.821 F .321
-(The string is \214rst split using the)5.321 F .413(characters in the)
-108 136.8 R F2(IFS)2.913 E F0 .412(special v)2.663 F .412
-(ariable as delimiters.)-.25 F .412(Shell quoting is honored.)5.412 F
-.412(Each w)5.412 F .412(ord is then e)-.1 F(xpanded)-.15 E .091
-(using brace e)108 148.8 R .091(xpansion, tilde e)-.15 F .092
-(xpansion, parameter and v)-.15 F .092(ariable e)-.25 F .092
-(xpansion, command substitution, and arith-)-.15 F 1.397(metic e)108
-160.8 R 1.396(xpansion, as described abo)-.15 F 1.696 -.15(ve u)-.15 H
-(nder).15 E F2(EXP)3.896 E(ANSION)-.666 E/F3 9/Times-Roman@0 SF(.)A F0
-1.396(The results are split using the rules described)5.896 F(abo)108
-172.8 Q .509 -.15(ve u)-.15 H(nder).15 E F1 -.75(Wo)2.709 G .209
-(rd Splitting).75 F F0 5.209(.T)C .209(he results of the e)-5.209 F .209
-(xpansion are pre\214x-matched ag)-.15 F .21(ainst the w)-.05 F .21
-(ord being com-)-.1 F(pleted, and the matching w)108 184.8 Q
-(ords become the possible completions.)-.1 E .234
-(After these matches ha)108 201.6 R .534 -.15(ve b)-.2 H .234
-(een generated, an).15 F 2.734(ys)-.15 G .233
-(hell function or command speci\214ed with the)-2.734 F F1<ad46>2.733 E
-F0(and)2.733 E F1<ad43>2.733 E F0(op-)2.733 E 4.208(tions is in)108
-213.6 R -.2(vo)-.4 G -.1(ke).2 G 6.708(d. When).1 F 4.209
-(the command or function is in)6.708 F -.2(vo)-.4 G -.1(ke).2 G 4.209
-(d, the).1 F F2(COMP_LINE)6.709 E F3(,)A F2(COMP_POINT)6.459 E F3(,)A F2
-(COMP_KEY)108 225.6 Q F3(,)A F0(and)2.408 E F2(COMP_TYPE)2.658 E F0 -.25
-(va)2.408 G .157(riables are assigned v).25 F .157
-(alues as described abo)-.25 F .457 -.15(ve u)-.15 H(nder).15 E F1 .157
-(Shell V)2.657 F(ariables)-.92 E F0 5.157(.I)C(f)-5.157 E 3.485(as)108
-237.6 S .986(hell function is being in)-3.485 F -.2(vo)-.4 G -.1(ke).2 G
-.986(d, the).1 F F2(COMP_W)3.486 E(ORDS)-.09 E F0(and)3.236 E F2
-(COMP_CW)3.486 E(ORD)-.09 E F0 -.25(va)3.236 G .986
-(riables are also set.).25 F(When)5.986 E .347
-(the function or command is in)108 249.6 R -.2(vo)-.4 G -.1(ke).2 G .347
-(d, the \214rst ar).1 F .346(gument \()-.18 F F1($1)A F0 2.846(\)i)C
-2.846(st)-2.846 G .346(he name of the command whose ar)-2.846 F(guments)
--.18 E .263(are being completed, the second ar)108 261.6 R .263
-(gument \()-.18 F F1($2)A F0 2.763(\)i)C 2.763(st)-2.763 G .264(he w)
--2.763 F .264(ord being completed, and the third ar)-.1 F .264
-(gument \()-.18 F F1($3)A F0 2.764(\)i)C(s)-2.764 E .629(the w)108 273.6
-R .629(ord preceding the w)-.1 F .629
-(ord being completed on the current command line.)-.1 F .628
-(No \214ltering of the generated)5.629 F .714(completions ag)108 285.6 R
-.714(ainst the w)-.05 F .714(ord being completed is performed; the func\
-tion or command has complete free-)-.1 F(dom in generating the matches.)
-108 297.6 Q(An)108 314.4 Q 2.938(yf)-.15 G .437
-(unction speci\214ed with)-2.938 F F1<ad46>2.937 E F0 .437(is in)2.937 F
--.2(vo)-.4 G -.1(ke).2 G 2.937<648c>.1 G 2.937(rst. The)-2.937 F .437
-(function may use an)2.937 F 2.937(yo)-.15 G 2.937(ft)-2.937 G .437
-(he shell f)-2.937 F .437(acilities, including)-.1 F(the)108 326.4 Q F1
-(compgen)2.956 E F0 -.2(bu)2.956 G .456(iltin described belo).2 F 1.756
--.65(w, t)-.25 H 2.956(og).65 G .456(enerate the matches.)-2.956 F .457
-(It must put the possible completions in the)5.456 F F2(COMPREPL)108
-338.4 Q(Y)-.828 E F0(array v)2.25 E(ariable, one per array element.)-.25
-E(Ne)108 355.2 Q .081(xt, an)-.15 F 2.581(yc)-.15 G .081
-(ommand speci\214ed with the)-2.581 F F1<ad43>2.581 E F0 .081
-(option is in)2.581 F -.2(vo)-.4 G -.1(ke).2 G 2.581(di).1 G 2.58(na)
--2.581 G 2.58(ne)-2.58 G -.4(nv)-2.58 G .08(ironment equi).4 F -.25(va)
--.25 G .08(lent to command sub-).25 F 2.858(stitution. It)108 367.2 R
-.359(should print a list of completions, one per line, to the standard \
-output.)2.858 F .359(Backslash may be used)5.359 F(to escape a ne)108
-379.2 Q(wline, if necessary)-.25 E(.)-.65 E .377
-(After all of the possible completions are generated, an)108 396 R 2.877
-<798c>-.15 G .377(lter speci\214ed with the)-2.877 F F1<ad58>2.876 E F0
-.376(option is applied to the)2.876 F 3.181(list. The)108 408 R .681
-(\214lter is a pattern as used for pathname e)3.181 F .681(xpansion; a)
--.15 F F1(&)3.181 E F0 .682(in the pattern is replaced with the te)3.182
-F .682(xt of)-.15 F .523(the w)108 420 R .523(ord being completed.)-.1 F
-3.023(Al)5.523 G(iteral)-3.023 E F1(&)3.023 E F0 .522
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .715
+(completions ag)108 84 R .715(ainst the w)-.05 F .714(ord being complet\
+ed is performed; the function or command has complete free-)-.1 F
+(dom in generating the matches.)108 96 Q(An)108 112.8 Q 2.937(yf)-.15 G
+.437(unction speci\214ed with)-2.937 F/F1 10/Times-Bold@0 SF<ad46>2.937
+E F0 .437(is in)2.937 F -.2(vo)-.4 G -.1(ke).2 G 2.937<648c>.1 G 2.937
+(rst. The)-2.937 F .437(function may use an)2.937 F 2.937(yo)-.15 G
+2.937(ft)-2.937 G .437(he shell f)-2.937 F .438(acilities, including)-.1
+F(the)108 124.8 Q F1(compgen)2.957 E F0 -.2(bu)2.957 G .457
+(iltin described belo).2 F 1.756 -.65(w, t)-.25 H 2.956(og).65 G .456
+(enerate the matches.)-2.956 F .456
+(It must put the possible completions in the)5.456 F/F2 9/Times-Bold@0
+SF(COMPREPL)108 136.8 Q(Y)-.828 E F0(array v)2.25 E
+(ariable, one per array element.)-.25 E(Ne)108 153.6 Q .08(xt, an)-.15 F
+2.58(yc)-.15 G .08(ommand speci\214ed with the)-2.58 F F1<ad43>2.58 E F0
+.081(option is in)2.581 F -.2(vo)-.4 G -.1(ke).2 G 2.581(di).1 G 2.581
+(na)-2.581 G 2.581(ne)-2.581 G -.4(nv)-2.581 G .081(ironment equi).4 F
+-.25(va)-.25 G .081(lent to command sub-).25 F 2.859(stitution. It)108
+165.6 R .359(should print a list of completions, one per line, to the s\
+tandard output.)2.859 F .358(Backslash may be used)5.359 F
+(to escape a ne)108 177.6 Q(wline, if necessary)-.25 E(.)-.65 E .376
+(After all of the possible completions are generated, an)108 194.4 R
+2.877<798c>-.15 G .377(lter speci\214ed with the)-2.877 F F1<ad58>2.877
+E F0 .377(option is applied to the)2.877 F 3.182(list. The)108 206.4 R
+.682(\214lter is a pattern as used for pathname e)3.182 F .681
+(xpansion; a)-.15 F F1(&)3.181 E F0 .681
+(in the pattern is replaced with the te)3.181 F .681(xt of)-.15 F .522
+(the w)108 218.4 R .522(ord being completed.)-.1 F 3.022(Al)5.522 G
+(iteral)-3.022 E F1(&)3.022 E F0 .523
(may be escaped with a backslash; the backslash is remo)3.022 F -.15(ve)
--.15 G 3.022(db).15 G(efore)-3.022 E .849(attempting a match.)108 432 R
-(An)5.849 E 3.349(yc)-.15 G .849
-(ompletion that matches the pattern will be remo)-3.349 F -.15(ve)-.15 G
-3.35(df).15 G .85(rom the list.)-3.35 F 3.35(Al)5.85 G(eading)-3.35 E F1
-(!)3.35 E F0(ne)108 444 Q -.05(ga)-.15 G .764
+-.15 G 3.023(db).15 G(efore)-3.023 E .85(attempting a match.)108 230.4 R
+(An)5.85 E 3.35(yc)-.15 G .849
+(ompletion that matches the pattern will be remo)-3.35 F -.15(ve)-.15 G
+3.349(df).15 G .849(rom the list.)-3.349 F 3.349(Al)5.849 G(eading)
+-3.349 E F1(!)3.349 E F0(ne)108 242.4 Q -.05(ga)-.15 G .764
(tes the pattern; in this case an).05 F 3.264(yc)-.15 G .764
(ompletion not matching the pattern will be remo)-3.264 F -.15(ve)-.15 G
-3.264(d. If).15 F(the)3.264 E F1(nocase-)3.264 E(match)108 456 Q F0
+3.264(d. If).15 F(the)3.265 E F1(nocase-)3.265 E(match)108 254.4 Q F0
(shell option is enabled, the match is performed without re)2.5 E -.05
(ga)-.15 G(rd to the case of alphabetic characters.).05 E(Finally)108
-472.8 Q 3.086(,a)-.65 G .886 -.15(ny p)-3.086 H .586(re\214x and suf).15
+271.2 Q 3.087(,a)-.65 G .887 -.15(ny p)-3.087 H .587(re\214x and suf).15
F .587(\214x speci\214ed with the)-.25 F F1<ad50>3.087 E F0(and)3.087 E
F1<ad53>3.087 E F0 .587(options are added to each member of the com-)
3.087 F(pletion list, and the result is returned to the readline comple\
-tion code as the list of possible completions.)108 484.8 Q .247
-(If the pre)108 501.6 R .247(viously-applied actions do not generate an)
+tion code as the list of possible completions.)108 283.2 Q .246
+(If the pre)108 300 R .247(viously-applied actions do not generate an)
-.25 F 2.747(ym)-.15 G .247(atches, and the)-2.747 F F1 .247(\255o dir)
-2.747 F(names)-.15 E F0 .247(option w)2.747 F .246(as supplied to)-.1 F
-F1(complete)108 513.6 Q F0(when the compspec w)2.5 E
-(as de\214ned, directory name completion is attempted.)-.1 E .461
-(If the)108 530.4 R F1 .462(\255o plusdirs)2.961 F F0 .462(option w)
+2.747 F(names)-.15 E F0 .247(option w)2.747 F .247(as supplied to)-.1 F
+F1(complete)108 312 Q F0(when the compspec w)2.5 E
+(as de\214ned, directory name completion is attempted.)-.1 E .462
+(If the)108 328.8 R F1 .462(\255o plusdirs)2.962 F F0 .462(option w)
2.962 F .462(as supplied to)-.1 F F1(complete)2.962 E F0 .462
(when the compspec w)2.962 F .462(as de\214ned, directory name com-)-.1
-F(pletion is attempted and an)108 542.4 Q 2.5(ym)-.15 G
-(atches are added to the results of the other actions.)-2.5 E .56
-(By def)108 559.2 R .56(ault, if a compspec is found, whate)-.1 F -.15
-(ve)-.25 G 3.06(ri).15 G 3.06(tg)-3.06 G .559
-(enerates is returned to the completion code as the full set)-3.06 F
-.631(of possible completions.)108 571.2 R .631(The def)5.631 F(ault)-.1
-E F1(bash)3.131 E F0 .631
-(completions are not attempted, and the readline def)3.131 F .632
-(ault of \214le-)-.1 F .559(name completion is disabled.)108 583.2 R
-.559(If the)5.559 F F1 .559(\255o bashdefault)3.059 F F0 .559(option w)
-3.059 F .559(as supplied to)-.1 F F1(complete)3.058 E F0 .558
-(when the compspec)3.058 F -.1(wa)108 595.2 S 3.171(sd).1 G .671
-(e\214ned, the)-3.171 F F1(bash)3.171 E F0(def)3.171 E .671
+F(pletion is attempted and an)108 340.8 Q 2.5(ym)-.15 G
+(atches are added to the results of the other actions.)-2.5 E .559
+(By def)108 357.6 R .559(ault, if a compspec is found, whate)-.1 F -.15
+(ve)-.25 G 3.059(ri).15 G 3.059(tg)-3.059 G .56
+(enerates is returned to the completion code as the full set)-3.059 F
+.632(of possible completions.)108 369.6 R .632(The def)5.632 F(ault)-.1
+E F1(bash)3.132 E F0 .631
+(completions are not attempted, and the readline def)3.131 F .631
+(ault of \214le-)-.1 F .558(name completion is disabled.)108 381.6 R
+.558(If the)5.558 F F1 .559(\255o bashdefault)3.059 F F0 .559(option w)
+3.059 F .559(as supplied to)-.1 F F1(complete)3.059 E F0 .559
+(when the compspec)3.059 F -.1(wa)108 393.6 S 3.172(sd).1 G .672
+(e\214ned, the)-3.172 F F1(bash)3.172 E F0(def)3.172 E .671
(ault completions are attempted if the compspec generates no matches.)
--.1 F .672(If the)5.672 F F1<ad6f>3.172 E(default)108 607.2 Q F0 1.207
-(option w)3.707 F 1.207(as supplied to)-.1 F F1(complete)3.707 E F0
+-.1 F .671(If the)5.671 F F1<ad6f>3.171 E(default)108 405.6 Q F0 1.207
+(option w)3.706 F 1.207(as supplied to)-.1 F F1(complete)3.707 E F0
1.207(when the compspec w)3.707 F 1.207(as de\214ned, readline')-.1 F
-3.707(sd)-.55 G(ef)-3.707 E 1.206(ault completion)-.1 F
+3.707(sd)-.55 G(ef)-3.707 E 1.207(ault completion)-.1 F
(will be performed if the compspec \(and, if attempted, the def)108
-619.2 Q(ault)-.1 E F1(bash)2.5 E F0(completions\) generate no matches.)
+417.6 Q(ault)-.1 E F1(bash)2.5 E F0(completions\) generate no matches.)
2.5 E .245(When a compspec indicates that directory name completion is \
-desired, the programmable completion func-)108 636 R .633(tions force r\
-eadline to append a slash to completed names which are symbolic links t\
-o directories, subject)108 648 R 2.761(to the v)108 660 R 2.761
-(alue of the)-.25 F F1(mark\255dir)5.261 E(ectories)-.18 E F0 2.761
-(readline v)5.261 F 2.761(ariable, re)-.25 F -.05(ga)-.15 G 2.762
-(rdless of the setting of the).05 F F1(mark-sym-)5.262 E(link)108 672 Q
-(ed\255dir)-.1 E(ectories)-.18 E F0(readline v)2.5 E(ariable.)-.25 E
-.191(There is some support for dynamically modifying completions.)108
-688.8 R .19(This is most useful when used in combina-)5.191 F 1.172
-(tion with a def)108 700.8 R 1.172(ault completion speci\214ed with)-.1
+desired, the programmable completion func-)108 434.4 R .632(tions force\
+ readline to append a slash to completed names which are symbolic links\
+ to directories, subject)108 446.4 R 2.762(to the v)108 458.4 R 2.762
+(alue of the)-.25 F F1(mark\255dir)5.262 E(ectories)-.18 E F0 2.761
+(readline v)5.262 F 2.761(ariable, re)-.25 F -.05(ga)-.15 G 2.761
+(rdless of the setting of the).05 F F1(mark-sym-)5.261 E(link)108 470.4
+Q(ed\255dir)-.1 E(ectories)-.18 E F0(readline v)2.5 E(ariable.)-.25 E
+.19(There is some support for dynamically modifying completions.)108
+487.2 R .191(This is most useful when used in combina-)5.191 F 1.172
+(tion with a def)108 499.2 R 1.172(ault completion speci\214ed with)-.1
F F1 1.172(complete \255D)3.672 F F0 6.172(.I)C(t')-6.172 E 3.672(sp)
-.55 G 1.172(ossible for shell functions e)-3.672 F -.15(xe)-.15 G 1.172
(cuted as).15 F .93(completion handlers to indicate that completion sho\
-uld be retried by returning an e)108 712.8 R .93(xit status of 124.)-.15
+uld be retried by returning an e)108 511.2 R .93(xit status of 124.)-.15
F .93(If a)5.93 F .1(shell function returns 124, and changes the compsp\
-ec associated with the command on which completion is)108 724.8 R
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(53)190.395 E 0 Cg EP
-%%Page: 54 54
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .666
-(being attempted \(supplied as the \214rst ar)108 84 R .665
-(gument when the function is e)-.18 F -.15(xe)-.15 G .665
-(cuted\), programmable completion).15 F .083(restarts from the be)108 96
-R .084(ginning, with an attempt to \214nd a ne)-.15 F 2.584(wc)-.25 G
-.084(ompspec for that command.)-2.584 F .084(This allo)5.084 F .084
-(ws a set of)-.25 F(completions to be b)108 108 Q(uilt dynamically as c\
-ompletion is attempted, rather than being loaded all at once.)-.2 E -.15
-(Fo)108 124.8 S 2.637(ri).15 G .137
-(nstance, assuming that there is a library of compspecs, each k)-2.637 F
+ec associated with the command on which completion is)108 523.2 R .665
+(being attempted \(supplied as the \214rst ar)108 535.2 R .666
+(gument when the function is e)-.18 F -.15(xe)-.15 G .666
+(cuted\), programmable completion).15 F .084(restarts from the be)108
+547.2 R .084(ginning, with an attempt to \214nd a ne)-.15 F 2.584(wc)
+-.25 G .084(ompspec for that command.)-2.584 F .083(This allo)5.083 F
+.083(ws a set of)-.25 F(completions to be b)108 559.2 Q(uilt dynamicall\
+y as completion is attempted, rather than being loaded all at once.)-.2
+E -.15(Fo)108 576 S 2.636(ri).15 G .137
+(nstance, assuming that there is a library of compspecs, each k)-2.636 F
.137(ept in a \214le corresponding to the name of)-.1 F
-(the command, the follo)108 136.8 Q(wing def)-.25 E
+(the command, the follo)108 588 Q(wing def)-.25 E
(ault completion function w)-.1 E(ould load completions dynamically:)-.1
-E/F1 10/Courier@0 SF(_completion_loader\(\))108 153.6 Q({)108 165.6 Q 6
-(.")144 177.6 S
+E/F3 10/Courier@0 SF(_completion_loader\(\))108 604.8 Q({)108 616.8 Q 6
+(.")144 628.8 S
(/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124)-6 E(})108
-189.6 Q(complete -D -F _completion_loader -o bashdefault -o default)108
-201.6 Q/F2 10.95/Times-Bold@0 SF(HIST)72 230.4 Q(OR)-.197 E(Y)-.383 E F0
-.371(When the)108 242.4 R/F3 10/Times-Bold@0 SF .371(\255o history)2.871
-F F0 .371(option to the)2.871 F F3(set)2.872 E F0 -.2(bu)2.872 G .372
-(iltin is enabled, the shell pro).2 F .372(vides access to the)-.15 F/F4
-10/Times-Italic@0 SF .372(command history)2.872 F F0(,)A .305
-(the list of commands pre)108 254.4 R .305(viously typed.)-.25 F .305
-(The v)5.305 F .304(alue of the)-.25 F/F5 9/Times-Bold@0 SF(HISTSIZE)
-2.804 E F0 -.25(va)2.554 G .304(riable is used as the number of com-).25
-F .429(mands to sa)108 266.4 R .729 -.15(ve i)-.2 H 2.929(nah).15 G .429
-(istory list.)-2.929 F .429(The te)5.429 F .429(xt of the last)-.15 F F5
-(HISTSIZE)2.93 E F0 .43(commands \(def)2.68 F .43(ault 500\) is sa)-.1 F
--.15(ve)-.2 G 2.93(d. The).15 F(shell)2.93 E .287
+640.8 Q(complete -D -F _completion_loader -o bashdefault -o default)108
+652.8 Q/F4 10.95/Times-Bold@0 SF(HIST)72 681.6 Q(OR)-.197 E(Y)-.383 E F0
+.372(When the)108 693.6 R F1 .372(\255o history)2.872 F F0 .372
+(option to the)2.872 F F1(set)2.872 E F0 -.2(bu)2.872 G .372
+(iltin is enabled, the shell pro).2 F .371(vides access to the)-.15 F/F5
+10/Times-Italic@0 SF .371(command history)2.871 F F0(,)A .304
+(the list of commands pre)108 705.6 R .304(viously typed.)-.25 F .304
+(The v)5.304 F .304(alue of the)-.25 F F2(HISTSIZE)2.804 E F0 -.25(va)
+2.554 G .305(riable is used as the number of com-).25 F .43(mands to sa)
+108 717.6 R .73 -.15(ve i)-.2 H 2.93(nah).15 G .43(istory list.)-2.93 F
+.43(The te)5.43 F .429(xt of the last)-.15 F F2(HISTSIZE)2.929 E F0 .429
+(commands \(def)2.679 F .429(ault 500\) is sa)-.1 F -.15(ve)-.2 G 2.929
+(d. The).15 F(shell)2.929 E .287
(stores each command in the history list prior to parameter and v)108
-278.4 R .287(ariable e)-.25 F .287(xpansion \(see)-.15 F F5(EXP)2.787 E
-(ANSION)-.666 E F0(abo)2.537 E -.15(ve)-.15 G(\)).15 E -.2(bu)108 290.4
-S 4.065(ta).2 G 1.565(fter history e)-4.065 F 1.565
+729.6 R .287(ariable e)-.25 F .287(xpansion \(see)-.15 F F2(EXP)2.787 E
+(ANSION)-.666 E F0(abo)2.537 E -.15(ve)-.15 G(\)).15 E(GNU Bash 5.2)72
+768 Q(2022 September 19)135.955 E(56)185.115 E 0 Cg EP
+%%Page: 57 57
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E -.2(bu)108 84 S
+4.066(ta).2 G 1.565(fter history e)-4.066 F 1.565
(xpansion is performed, subject to the v)-.15 F 1.565
-(alues of the shell v)-.25 F(ariables)-.25 E F5(HISTIGNORE)4.065 E F0
-(and)3.816 E F5(HISTCONTR)108 302.4 Q(OL)-.27 E/F6 9/Times-Roman@0 SF(.)
-A F0 .082
+(alues of the shell v)-.25 F(ariables)-.25 E/F1 9/Times-Bold@0 SF
+(HISTIGNORE)4.065 E F0(and)3.815 E F1(HISTCONTR)108 96 Q(OL)-.27 E/F2 9
+/Times-Roman@0 SF(.)A F0 .082
(On startup, the history is initialized from the \214le named by the v)
-108 319.2 R(ariable)-.25 E F5(HISTFILE)2.582 E F0(\(def)2.332 E(ault)-.1
-E F4(~/.bash_history)2.582 E F0(\).)A .315(The \214le named by the v)108
-331.2 R .315(alue of)-.25 F F5(HISTFILE)2.815 E F0 .315
-(is truncated, if necessary)2.565 F 2.815(,t)-.65 G 2.815(oc)-2.815 G
-.315(ontain no more than the number of)-2.815 F .659
-(lines speci\214ed by the v)108 343.2 R .659(alue of)-.25 F F5
-(HISTFILESIZE)3.158 E F6(.)A F0(If)5.158 E F3(HISTFILESIZE)3.158 E F0
-.658(is unset, or set to null, a non-numeric)3.158 F -.25(va)108 355.2 S
-.142(lue, or a numeric v).25 F .142
+108 112.8 R(ariable)-.25 E F1(HISTFILE)2.583 E F0(\(def)2.333 E(ault)-.1
+E/F3 10/Times-Italic@0 SF(~/.bash_history)2.583 E F0(\).)A .315
+(The \214le named by the v)108 124.8 R .315(alue of)-.25 F F1(HISTFILE)
+2.815 E F0 .315(is truncated, if necessary)2.565 F 2.815(,t)-.65 G 2.815
+(oc)-2.815 G .315(ontain no more than the number of)-2.815 F .658
+(lines speci\214ed by the v)108 136.8 R .658(alue of)-.25 F F1
+(HISTFILESIZE)3.158 E F2(.)A F0(If)5.158 E/F4 10/Times-Bold@0 SF
+(HISTFILESIZE)3.158 E F0 .659(is unset, or set to null, a non-numeric)
+3.158 F -.25(va)108 148.8 S .142(lue, or a numeric v).25 F .142
(alue less than zero, the history \214le is not truncated.)-.25 F .142
-(When the history \214le is read, lines)5.142 F(be)108 367.2 Q 1.605
+(When the history \214le is read, lines)5.142 F(be)108 160.8 Q 1.604
(ginning with the history comment character follo)-.15 F 1.604
-(wed immediately by a digit are interpreted as time-)-.25 F .15
-(stamps for the follo)108 379.2 R .15(wing history line.)-.25 F .151
+(wed immediately by a digit are interpreted as time-)-.25 F .151
+(stamps for the follo)108 172.8 R .151(wing history line.)-.25 F .151
(These timestamps are optionally displayed depending on the v)5.151 F
-.151(alue of)-.25 F(the)108 391.2 Q F5(HISTTIMEFORMA)3.559 E(T)-.855 E
-F0 -.25(va)3.309 G 3.559(riable. When).25 F 3.559(as)3.559 G 1.059
-(hell with history enabled e)-3.559 F 1.059(xits, the last)-.15 F F5
-($HISTSIZE)3.559 E F0 1.058(lines are)3.309 F .158
-(copied from the history list to)108 403.2 R F5($HISTFILE)2.658 E F6(.)A
-F0 .158(If the)4.658 F F3(histappend)2.658 E F0 .159
-(shell option is enabled \(see the description of)2.659 F F3(shopt)108
-415.2 Q F0(under)2.582 E F5 .082(SHELL B)2.582 F(UIL)-.09 E .082
+.15(alue of)-.25 F(the)108 184.8 Q F1(HISTTIMEFORMA)3.558 E(T)-.855 E F0
+-.25(va)3.309 G 3.559(riable. When).25 F 3.559(as)3.559 G 1.059
+(hell with history enabled e)-3.559 F 1.059(xits, the last)-.15 F F1
+($HISTSIZE)3.559 E F0 1.059(lines are)3.309 F .159
+(copied from the history list to)108 196.8 R F1($HISTFILE)2.659 E F2(.)A
+F0 .159(If the)4.659 F F4(histappend)2.658 E F0 .158
+(shell option is enabled \(see the description of)2.658 F F4(shopt)108
+208.8 Q F0(under)2.581 E F1 .081(SHELL B)2.581 F(UIL)-.09 E .081
(TIN COMMANDS)-.828 F F0(belo)2.332 E .082
(w\), the lines are appended to the history \214le, otherwise the)-.25 F
-.196(history \214le is o)108 427.2 R -.15(ve)-.15 G 2.696(rwritten. If)
-.15 F F5(HISTFILE)2.696 E F0 .197(is unset, or if the history \214le is\
- unwritable, the history is not sa)2.446 F -.15(ve)-.2 G(d.).15 E .584
-(If the)108 439.2 R F5(HISTTIMEFORMA)3.084 E(T)-.855 E F0 -.25(va)2.834
+.197(history \214le is o)108 220.8 R -.15(ve)-.15 G 2.697(rwritten. If)
+.15 F F1(HISTFILE)2.697 E F0 .196(is unset, or if the history \214le is\
+ unwritable, the history is not sa)2.447 F -.15(ve)-.2 G(d.).15 E .583
+(If the)108 232.8 R F1(HISTTIMEFORMA)3.083 E(T)-.855 E F0 -.25(va)2.834
G .584
(riable is set, time stamps are written to the history \214le, mark).25
-F .583(ed with the his-)-.1 F 1.147(tory comment character)108 451.2 R
-3.647(,s)-.4 G 3.647(ot)-3.647 G(he)-3.647 E 3.647(ym)-.15 G 1.147
-(ay be preserv)-3.647 F 1.147(ed across shell sessions.)-.15 F 1.148
-(This uses the history comment)6.148 F 1.377
-(character to distinguish timestamps from other history lines.)108 463.2
-R 1.377(After sa)6.377 F 1.377(ving the history)-.2 F 3.876(,t)-.65 G
-1.376(he history \214le is)-3.876 F .756
-(truncated to contain no more than)108 475.2 R F5(HISTFILESIZE)3.257 E
-F0 3.257(lines. If)3.007 F F5(HISTFILESIZE)3.257 E F0 .757
-(is unset, or set to null, a non-)3.007 F(numeric v)108 487.2 Q
+F .584(ed with the his-)-.1 F 1.148(tory comment character)108 244.8 R
+3.648(,s)-.4 G 3.648(ot)-3.648 G(he)-3.648 E 3.648(ym)-.15 G 1.147
+(ay be preserv)-3.648 F 1.147(ed across shell sessions.)-.15 F 1.147
+(This uses the history comment)6.147 F 1.376
+(character to distinguish timestamps from other history lines.)108 256.8
+R 1.377(After sa)6.377 F 1.377(ving the history)-.2 F 3.877(,t)-.65 G
+1.377(he history \214le is)-3.877 F .757
+(truncated to contain no more than)108 268.8 R F1(HISTFILESIZE)3.257 E
+F0 3.257(lines. If)3.007 F F1(HISTFILESIZE)3.257 E F0 .757
+(is unset, or set to null, a non-)3.007 F(numeric v)108 280.8 Q
(alue, or a numeric v)-.25 E
-(alue less than zero, the history \214le is not truncated.)-.25 E .299
-(The b)108 504 R .299(uiltin command)-.2 F F3(fc)2.799 E F0(\(see)2.799
-E F5 .299(SHELL B)2.799 F(UIL)-.09 E .299(TIN COMMANDS)-.828 F F0(belo)
-2.549 E .298(w\) may be used to list or edit and re-e)-.25 F -.15(xe)
--.15 G(-).15 E .471(cute a portion of the history list.)108 516 R(The)
-5.471 E F3(history)2.971 E F0 -.2(bu)2.971 G .472
-(iltin may be used to display or modify the history list and).2 F .002
-(manipulate the history \214le.)108 528 R .001
-(When using command-line editing, search commands are a)5.002 F -.25(va)
--.2 G .001(ilable in each edit-).25 F(ing mode that pro)108 540 Q
-(vide access to the history list.)-.15 E 1.485(The shell allo)108 556.8
-R 1.485(ws control o)-.25 F -.15(ve)-.15 G 3.986(rw).15 G 1.486
+(alue less than zero, the history \214le is not truncated.)-.25 E .298
+(The b)108 297.6 R .298(uiltin command)-.2 F F4(fc)2.798 E F0(\(see)
+2.798 E F1 .298(SHELL B)2.798 F(UIL)-.09 E .298(TIN COMMANDS)-.828 F F0
+(belo)2.549 E .299(w\) may be used to list or edit and re-e)-.25 F -.15
+(xe)-.15 G(-).15 E .472(cute a portion of the history list.)108 309.6 R
+(The)5.472 E F4(history)2.972 E F0 -.2(bu)2.972 G .471
+(iltin may be used to display or modify the history list and).2 F .001
+(manipulate the history \214le.)108 321.6 R .001
+(When using command-line editing, search commands are a)5.001 F -.25(va)
+-.2 G .002(ilable in each edit-).25 F(ing mode that pro)108 333.6 Q
+(vide access to the history list.)-.15 E 1.486(The shell allo)108 350.4
+R 1.486(ws control o)-.25 F -.15(ve)-.15 G 3.986(rw).15 G 1.486
(hich commands are sa)-3.986 F -.15(ve)-.2 G 3.986(do).15 G 3.986(nt)
--3.986 G 1.486(he history list.)-3.986 F(The)6.486 E F5(HISTCONTR)3.986
-E(OL)-.27 E F0(and)3.736 E F5(HISTIGNORE)108 568.8 Q F0 -.25(va)2.708 G
-.458(riables may be set to cause the shell to sa).25 F .757 -.15(ve o)
--.2 H .457(nly a subset of the commands entered.).15 F(The)5.457 E F3
-(cmdhist)108 580.8 Q F0 .75
+-3.986 G 1.486(he history list.)-3.986 F(The)6.485 E F1(HISTCONTR)3.985
+E(OL)-.27 E F0(and)3.735 E F1(HISTIGNORE)108 362.4 Q F0 -.25(va)2.707 G
+.457(riables may be set to cause the shell to sa).25 F .758 -.15(ve o)
+-.2 H .458(nly a subset of the commands entered.).15 F(The)5.458 E F4
+(cmdhist)108 374.4 Q F0 .75
(shell option, if enabled, causes the shell to attempt to sa)3.25 F 1.05
-.15(ve e)-.2 H .75(ach line of a multi-line command in).15 F 1.077
-(the same history entry)108 592.8 R 3.577(,a)-.65 G 1.077
+(the same history entry)108 386.4 R 3.577(,a)-.65 G 1.077
(dding semicolons where necessary to preserv)-3.577 F 3.577(es)-.15 G
-1.077(yntactic correctness.)-3.577 F(The)6.077 E F3(lithist)3.576 E F0
-.373(shell option causes the shell to sa)108 604.8 R .674 -.15(ve t)-.2
-H .374(he command with embedded ne).15 F .374
-(wlines instead of semicolons.)-.25 F .374(See the)5.374 F .319
-(description of the)108 616.8 R F3(shopt)2.819 E F0 -.2(bu)2.819 G .318
-(iltin belo).2 F 2.818(wu)-.25 G(nder)-2.818 E F5 .318(SHELL B)2.818 F
-(UIL)-.09 E .318(TIN COMMANDS)-.828 F F0 .318
+1.077(yntactic correctness.)-3.577 F(The)6.077 E F4(lithist)3.577 E F0
+.374(shell option causes the shell to sa)108 398.4 R .674 -.15(ve t)-.2
+H .374(he command with embedded ne).15 F .373
+(wlines instead of semicolons.)-.25 F .373(See the)5.373 F .318
+(description of the)108 410.4 R F4(shopt)2.818 E F0 -.2(bu)2.818 G .318
+(iltin belo).2 F 2.818(wu)-.25 G(nder)-2.818 E F1 .318(SHELL B)2.818 F
+(UIL)-.09 E .318(TIN COMMANDS)-.828 F F0 .319
(for information on setting and)2.568 F(unsetting shell options.)108
-628.8 Q F2(HIST)72 645.6 Q(OR)-.197 E 2.738(YE)-.383 G(XP)-2.738 E
-(ANSION)-.81 E F0 .61(The shell supports a history e)108 657.6 R .611
-(xpansion feature that is similar to the history e)-.15 F .611
-(xpansion in)-.15 F F3(csh)3.111 E F0 5.611(.T)C .611(his section)-5.611
-F .871(describes what syntax features are a)108 669.6 R -.25(va)-.2 G
-3.371(ilable. This).25 F .871(feature is enabled by def)3.371 F .87
-(ault for interacti)-.1 F 1.17 -.15(ve s)-.25 H .87(hells, and).15 F
-.949(can be disabled using the)108 681.6 R F3(+H)3.449 E F0 .949
-(option to the)3.449 F F3(set)3.449 E F0 -.2(bu)3.449 G .949
-(iltin command \(see).2 F F5 .949(SHELL B)3.449 F(UIL)-.09 E .95
-(TIN COMMANDS)-.828 F F0(be-)3.2 E(lo)108 693.6 Q 2.5
+422.4 Q/F5 10.95/Times-Bold@0 SF(HIST)72 439.2 Q(OR)-.197 E 2.738(YE)
+-.383 G(XP)-2.738 E(ANSION)-.81 E F0 .611
+(The shell supports a history e)108 451.2 R .611
+(xpansion feature that is similar to the history e)-.15 F .61
+(xpansion in)-.15 F F4(csh)3.11 E F0 5.61(.T)C .61(his section)-5.61 F
+.87(describes what syntax features are a)108 463.2 R -.25(va)-.2 G 3.371
+(ilable. This).25 F .871(feature is enabled by def)3.371 F .871
+(ault for interacti)-.1 F 1.171 -.15(ve s)-.25 H .871(hells, and).15 F
+.95(can be disabled using the)108 475.2 R F4(+H)3.449 E F0 .949
+(option to the)3.449 F F4(set)3.449 E F0 -.2(bu)3.449 G .949
+(iltin command \(see).2 F F1 .949(SHELL B)3.449 F(UIL)-.09 E .949
+(TIN COMMANDS)-.828 F F0(be-)3.199 E(lo)108 487.2 Q 2.5
(w\). Non-interacti)-.25 F .3 -.15(ve s)-.25 H
(hells do not perform history e).15 E(xpansion by def)-.15 E(ault.)-.1 E
-1.306(History e)108 710.4 R 1.306(xpansions introduce w)-.15 F 1.306(or\
-ds from the history list into the input stream, making it easy to repea\
-t)-.1 F .209(commands, insert the ar)108 722.4 R .209(guments to a pre)
--.18 F .21
-(vious command into the current input line, or \214x errors in pre)-.25
-F(vious)-.25 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(54)
-190.395 E 0 Cg EP
-%%Page: 55 55
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(commands quickly)
-108 84 Q(.)-.65 E 1.164(History e)108 100.8 R 1.163(xpansion is perform\
-ed immediately after a complete line is read, before the shell breaks i\
-t into)-.15 F -.1(wo)108 112.8 S .251
-(rds, and is performed on each line indi).1 F .251
-(vidually without taking quoting on pre)-.25 F .252
-(vious lines into account.)-.25 F(It)5.252 E(tak)108 124.8 Q .146
-(es place in tw)-.1 F 2.646(op)-.1 G 2.646(arts. The)-2.646 F .146(\214\
+1.305(History e)108 504 R 1.305(xpansions introduce w)-.15 F 1.306(ords\
+ from the history list into the input stream, making it easy to repeat)
+-.1 F .21(commands, insert the ar)108 516 R .21(guments to a pre)-.18 F
+.209(vious command into the current input line, or \214x errors in pre)
+-.25 F(vious)-.25 E(commands quickly)108 528 Q(.)-.65 E 1.163(History e)
+108 544.8 R 1.163(xpansion is performed immediately after a complete li\
+ne is read, before the shell breaks it into)-.15 F -.1(wo)108 556.8 S
+.252(rds, and is performed on each line indi).1 F .251
+(vidually without taking quoting on pre)-.25 F .251
+(vious lines into account.)-.25 F(It)5.251 E(tak)108 568.8 Q .145
+(es place in tw)-.1 F 2.645(op)-.1 G 2.646(arts. The)-2.645 F .146(\214\
rst is to determine which line from the history list to use during subs\
titution.)2.646 F .766(The second is to select portions of that line fo\
-r inclusion into the current one.)108 136.8 R .767
-(The line selected from the)5.767 F .254(history is the)108 148.8 R/F1
-10/Times-Italic@0 SF -.15(ev)2.754 G(ent).15 E F0 2.753(,a)C .253
-(nd the portions of that line that are acted upon are)-2.753 F F1(wor)
-2.753 E(ds)-.37 E F0 5.253(.V)C(arious)-6.363 E F1(modi\214er)2.753 E(s)
--.1 E F0 .253(are a)2.753 F -.25(va)-.2 G(il-).25 E .538
-(able to manipulate the selected w)108 160.8 R 3.038(ords. The)-.1 F
-.538(line is brok)3.038 F .538(en into w)-.1 F .539(ords in the same f)
--.1 F .539(ashion as when reading)-.1 F .573(input, so that se)108 172.8
-R -.15(ve)-.25 G(ral).15 E F1(metac)3.073 E(har)-.15 E(acter)-.15 E F0
+r inclusion into the current one.)108 580.8 R .766
+(The line selected from the)5.766 F .253(history is the)108 592.8 R F3
+-.15(ev)2.753 G(ent).15 E F0 2.753(,a)C .253
+(nd the portions of that line that are acted upon are)-2.753 F F3(wor)
+2.753 E(ds)-.37 E F0 5.253(.V)C(arious)-6.363 E F3(modi\214er)2.754 E(s)
+-.1 E F0 .254(are a)2.754 F -.25(va)-.2 G(il-).25 E .539
+(able to manipulate the selected w)108 604.8 R 3.039(ords. The)-.1 F
+.538(line is brok)3.038 F .538(en into w)-.1 F .538(ords in the same f)
+-.1 F .538(ashion as when reading)-.1 F .572(input, so that se)108 616.8
+R -.15(ve)-.25 G(ral).15 E F3(metac)3.072 E(har)-.15 E(acter)-.15 E F0
.572(-separated w)B .572(ords surrounded by quotes are considered one w)
--.1 F 3.072(ord. His-)-.1 F .355(tory e)108 184.8 R .355
+-.1 F 3.073(ord. His-)-.1 F .356(tory e)108 628.8 R .355
(xpansions are introduced by the appearance of the history e)-.15 F .355
-(xpansion character)-.15 F 2.855(,w)-.4 G .356(hich is)-2.855 F/F2 10
-/Times-Bold@0 SF(!)3.689 E F0 .356(by def)3.689 F(ault.)-.1 E .791
-(Only backslash \()108 196.8 R F2(\\).833 E F0 3.291(\)a).833 G .79
-(nd single quotes can quote the history e)-3.291 F .79
-(xpansion character)-.15 F 3.29(,b)-.4 G .79(ut the history e)-3.49 F
+(xpansion character)-.15 F 2.855(,w)-.4 G .355(hich is)-2.855 F F4(!)
+3.688 E F0 .355(by def)3.688 F(ault.)-.1 E .79(Only backslash \()108
+640.8 R F4(\\).833 E F0 3.29(\)a).833 G .79
+(nd single quotes can quote the history e)-3.29 F .79
+(xpansion character)-.15 F 3.291(,b)-.4 G .791(ut the history e)-3.491 F
(xpansion)-.15 E .789(character is also treated as quoted if it immedia\
-tely precedes the closing double quote in a double-quoted)108 208.8 R
-(string.)108 220.8 Q(Se)108 237.6 Q -.15(ve)-.25 G .03
+tely precedes the closing double quote in a double-quoted)108 652.8 R
+(string.)108 664.8 Q(Se)108 681.6 Q -.15(ve)-.25 G .03
(ral characters inhibit history e).15 F .03
(xpansion if found immediately follo)-.15 F .03(wing the history e)-.25
-F .03(xpansion character)-.15 F(,)-.4 E -2.15 -.25(ev e)108 249.6 T
-3.162(ni).25 G 3.162(fi)-3.162 G 3.162(ti)-3.162 G 3.162(su)-3.162 G
+F .03(xpansion character)-.15 F(,)-.4 E -2.15 -.25(ev e)108 693.6 T
+3.163(ni).25 G 3.163(fi)-3.163 G 3.162(ti)-3.163 G 3.162(su)-3.162 G
.662(nquoted: space, tab, ne)-3.162 F .662(wline, carriage return, and)
--.25 F F2(=)3.162 E F0 5.662(.I)C 3.162(ft)-5.662 G(he)-3.162 E F2
-(extglob)3.162 E F0 .662(shell option is enabled,)3.162 F F2(\()3.163 E
-F0(will also inhibit e)108 261.6 Q(xpansion.)-.15 E(Se)108 278.4 Q -.15
-(ve)-.25 G .11(ral shell options settable with the).15 F F2(shopt)2.61 E
-F0 -.2(bu)2.61 G .109(iltin may be used to tailor the beha).2 F .109
-(vior of history e)-.2 F(xpansion.)-.15 E .231(If the)108 290.4 R F2
-(histv)2.731 E(erify)-.1 E F0 .231
-(shell option is enabled \(see the description of the)2.731 F F2(shopt)
-2.731 E F0 -.2(bu)2.731 G .231(iltin belo).2 F .231(w\), and)-.25 F F2
--.18(re)2.731 G(adline).18 E F0 .232(is be-)2.732 F .449(ing used, hist\
-ory substitutions are not immediately passed to the shell parser)108
-302.4 R 5.449(.I)-.55 G .448(nstead, the e)-5.449 F .448
-(xpanded line is)-.15 F 2.228(reloaded into the)108 314.4 R F2 -.18(re)
-4.728 G(adline).18 E F0 2.228(editing b)4.728 F(uf)-.2 E 2.228
-(fer for further modi\214cation.)-.25 F(If)7.228 E F2 -.18(re)4.728 G
-(adline).18 E F0 2.228(is being used, and the)4.728 F F2(histr)108 326.4
-Q(eedit)-.18 E F0 1.202(shell option is enabled, a f)3.702 F 1.202
-(ailed history substitution will be reloaded into the)-.1 F F2 -.18(re)
-3.702 G(adline).18 E F0(editing)3.702 E -.2(bu)108 338.4 S -.25(ff).2 G
-.303(er for correction.).25 F(The)5.303 E F2<ad70>2.803 E F0 .303
-(option to the)2.803 F F2(history)2.804 E F0 -.2(bu)2.804 G .304
+-.25 F F4(=)3.162 E F0 5.662(.I)C 3.162(ft)-5.662 G(he)-3.162 E F4
+(extglob)3.162 E F0 .662(shell option is enabled,)3.162 F F4(\()3.162 E
+F0(will also inhibit e)108 705.6 Q(xpansion.)-.15 E(Se)108 722.4 Q -.15
+(ve)-.25 G .109(ral shell options settable with the).15 F F4(shopt)2.609
+E F0 -.2(bu)2.609 G .11(iltin may be used to tailor the beha).2 F .11
+(vior of history e)-.2 F(xpansion.)-.15 E(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(57)185.115 E 0 Cg EP
+%%Page: 58 58
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .232(If the)108 84
+R/F1 10/Times-Bold@0 SF(histv)2.732 E(erify)-.1 E F0 .231
+(shell option is enabled \(see the description of the)2.731 F F1(shopt)
+2.731 E F0 -.2(bu)2.731 G .231(iltin belo).2 F .231(w\), and)-.25 F F1
+-.18(re)2.731 G(adline).18 E F0 .231(is be-)2.731 F .449(ing used, hist\
+ory substitutions are not immediately passed to the shell parser)108 96
+R 5.449(.I)-.55 G .449(nstead, the e)-5.449 F .449(xpanded line is)-.15
+F 2.228(reloaded into the)108 108 R F1 -.18(re)4.728 G(adline).18 E F0
+2.228(editing b)4.728 F(uf)-.2 E 2.228(fer for further modi\214cation.)
+-.25 F(If)7.228 E F1 -.18(re)4.728 G(adline).18 E F0 2.228
+(is being used, and the)4.728 F F1(histr)108 120 Q(eedit)-.18 E F0 1.202
+(shell option is enabled, a f)3.702 F 1.202
+(ailed history substitution will be reloaded into the)-.1 F F1 -.18(re)
+3.702 G(adline).18 E F0(editing)3.702 E -.2(bu)108 132 S -.25(ff).2 G
+.304(er for correction.).25 F(The)5.304 E F1<ad70>2.804 E F0 .304
+(option to the)2.804 F F1(history)2.804 E F0 -.2(bu)2.804 G .303
(iltin command may be used to see what a history e).2 F(x-)-.15 E .52
-(pansion will do before using it.)108 350.4 R(The)5.52 E F2<ad73>3.02 E
-F0 .52(option to the)3.02 F F2(history)3.02 E F0 -.2(bu)3.02 G .52
+(pansion will do before using it.)108 144 R(The)5.52 E F1<ad73>3.02 E F0
+.52(option to the)3.02 F F1(history)3.02 E F0 -.2(bu)3.02 G .52
(iltin may be used to add commands to the).2 F
-(end of the history list without actually e)108 362.4 Q -.15(xe)-.15 G
+(end of the history list without actually e)108 156 Q -.15(xe)-.15 G
(cuting them, so that the).15 E 2.5(ya)-.15 G(re a)-2.5 E -.25(va)-.2 G
-(ilable for subsequent recall.).25 E 1.108(The shell allo)108 379.2 R
+(ilable for subsequent recall.).25 E 1.109(The shell allo)108 172.8 R
1.108(ws control of the v)-.25 F 1.108
(arious characters used by the history e)-.25 F 1.108
-(xpansion mechanism \(see the de-)-.15 F .163(scription of)108 391.2 R
-F2(histchars)2.663 E F0(abo)2.663 E .463 -.15(ve u)-.15 H(nder).15 E F2
-.163(Shell V)2.663 F(ariables)-.92 E F0 2.663(\). The)B .162
+(xpansion mechanism \(see the de-)-.15 F .162(scription of)108 184.8 R
+F1(histchars)2.662 E F0(abo)2.662 E .462 -.15(ve u)-.15 H(nder).15 E F1
+.163(Shell V)2.662 F(ariables)-.92 E F0 2.663(\). The)B .163
(shell uses the history comment character to mark)2.663 F
-(history timestamps when writing the history \214le.)108 403.2 Q F2(Ev)
-87 420 Q(ent Designators)-.1 E F0 .204(An e)108 432 R -.15(ve)-.25 G
+(history timestamps when writing the history \214le.)108 196.8 Q F1(Ev)
+87 213.6 Q(ent Designators)-.1 E F0 .205(An e)108 225.6 R -.15(ve)-.25 G
.204(nt designator is a reference to a command line entry in the histor\
-y list.).15 F .205(Unless the reference is abso-)5.204 F(lute, e)108 444
-Q -.15(ve)-.25 G(nts are relati).15 E .3 -.15(ve t)-.25 H 2.5(ot).15 G
-(he current position in the history list.)-2.5 E F2(!)108 460.8 Q F0
-1.608(Start a history substitution, e)144 460.8 R 1.608
-(xcept when follo)-.15 F 1.607(wed by a)-.25 F F2(blank)4.107 E F0 4.107
-(,n)C -.25(ew)-4.107 G 1.607(line, carriage return, = or \().25 F
-(\(when the)144 472.8 Q F2(extglob)2.5 E F0
-(shell option is enabled using the)2.5 E F2(shopt)2.5 E F0 -.2(bu)2.5 G
-(iltin\).).2 E F2(!)108 484.8 Q F1(n)A F0(Refer to command line)144
-484.8 Q F1(n)2.86 E F0(.).24 E F2<21ad>108 496.8 Q F1(n)A F0
-(Refer to the current command minus)144 496.8 Q F1(n)2.86 E F0(.).24 E
-F2(!!)108 508.8 Q F0(Refer to the pre)144 508.8 Q(vious command.)-.25 E
-(This is a synon)5 E(ym for `!\2551'.)-.15 E F2(!)108 520.8 Q F1(string)
-A F0 .865(Refer to the most recent command preceding the current positi\
-on in the history list starting with)144 520.8 R F1(string)144.34 532.8
-Q F0(.).22 E F2(!?)108 544.8 Q F1(string)A F2([?])A F0 1.503(Refer to t\
-he most recent command preceding the current position in the history li\
-st containing)144 556.8 R F1(string)144.34 568.8 Q F0 5.496(.T).22 G
-.496(he trailing)-5.496 F F2(?)2.996 E F0 .496(may be omitted if)2.996 F
-F1(string)3.336 E F0 .497(is follo)3.216 F .497(wed immediately by a ne)
--.25 F 2.997(wline. If)-.25 F F1(string)2.997 E F0(is)2.997 E .391(miss\
-ing, the string from the most recent search is used; it is an error if \
-there is no pre)144 580.8 R .39(vious search)-.25 F(string.)144 592.8 Q
-/F3 12/Times-Bold@0 SF(^)108 609.8 Q F1(string1)-5 I F3(^)5 I F1
-(string2)-5 I F3(^)5 I F0 .752(Quick substitution.)144 616.8 R .752
-(Repeat the pre)5.752 F .753(vious command, replacing)-.25 F F1(string1)
-3.593 E F0(with)3.253 E F1(string2)3.593 E F0 5.753(.E).02 G(qui)-5.753
-E -.25(va)-.25 G .753(lent to).25 F -.74(``)144 628.8 S(!!:s).74 E/F4 12
-/Times-Roman@0 SF(^)5 I F1(string1)-5 I F4(^)5 I F1(string2)-5 I F4(^)5
-I F0 1.48 -.74('' \()-5 L(see).74 E F2(Modi\214ers)2.5 E F0(belo)2.5 E
-(w\).)-.25 E F2(!#)108 640.8 Q F0(The entire command line typed so f)144
-640.8 Q(ar)-.1 E(.)-.55 E F2 -.75(Wo)87 657.6 S(rd Designators).75 E F0
--.8(Wo)108 669.6 S 1.314(rd designators are used to select desired w).8
-F 1.314(ords from the e)-.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F2(:)
-3.814 E F0 1.313(separates the e)3.813 F -.15(ve)-.25 G 1.313
-(nt speci\214cation).15 F .529(from the w)108 681.6 R .529
-(ord designator)-.1 F 5.529(.I)-.55 G 3.029(tm)-5.529 G .529
-(ay be omitted if the w)-3.029 F .529(ord designator be)-.1 F .529
-(gins with a)-.15 F F2(^)3.029 E F0(,)A F2($)3.029 E F0(,)A F2(*)3.029 E
-F0(,)A F2<ad>3.029 E F0 3.029(,o)C(r)-3.029 E F2(%)3.029 E F0 5.53(.W)C
-(ords)-6.33 E .516(are numbered from the be)108 693.6 R .516
+y list.).15 F .204(Unless the reference is abso-)5.204 F(lute, e)108
+237.6 Q -.15(ve)-.25 G(nts are relati).15 E .3 -.15(ve t)-.25 H 2.5(ot)
+.15 G(he current position in the history list.)-2.5 E F1(!)108 254.4 Q
+F0 1.607(Start a history substitution, e)144 254.4 R 1.607
+(xcept when follo)-.15 F 1.607(wed by a)-.25 F F1(blank)4.107 E F0 4.107
+(,n)C -.25(ew)-4.107 G 1.608(line, carriage return, = or \().25 F
+(\(when the)144 266.4 Q F1(extglob)2.5 E F0
+(shell option is enabled using the)2.5 E F1(shopt)2.5 E F0 -.2(bu)2.5 G
+(iltin\).).2 E F1(!)108 278.4 Q/F2 10/Times-Italic@0 SF(n)A F0
+(Refer to command line)144 278.4 Q F2(n)2.86 E F0(.).24 E F1<21ad>108
+290.4 Q F2(n)A F0(Refer to the current command minus)144 290.4 Q F2(n)
+2.86 E F0(.).24 E F1(!!)108 302.4 Q F0(Refer to the pre)144 302.4 Q
+(vious command.)-.25 E(This is a synon)5 E(ym for `!\2551'.)-.15 E F1(!)
+108 314.4 Q F2(string)A F0 .865(Refer to the most recent command preced\
+ing the current position in the history list starting with)144 314.4 R
+F2(string)144.34 326.4 Q F0(.).22 E F1(!?)108 338.4 Q F2(string)A F1
+([?])A F0 1.503(Refer to the most recent command preceding the current \
+position in the history list containing)144 350.4 R F2(string)144.34
+362.4 Q F0 5.497(.T).22 G .497(he trailing)-5.497 F F1(?)2.997 E F0 .497
+(may be omitted if)2.997 F F2(string)3.337 E F0 .496(is follo)3.216 F
+.496(wed immediately by a ne)-.25 F 2.996(wline. If)-.25 F F2(string)
+2.996 E F0(is)2.996 E .39(missing, the string from the most recent sear\
+ch is used; it is an error if there is no pre)144 374.4 R .391
+(vious search)-.25 F(string.)144 386.4 Q/F3 12/Times-Bold@0 SF(^)108
+403.4 Q F2(string1)-5 I F3(^)5 I F2(string2)-5 I F3(^)5 I F0 .753
+(Quick substitution.)144 410.4 R .753(Repeat the pre)5.753 F .753
+(vious command, replacing)-.25 F F2(string1)3.593 E F0(with)3.253 E F2
+(string2)3.592 E F0 5.752(.E).02 G(qui)-5.752 E -.25(va)-.25 G .752
+(lent to).25 F -.74(``)144 422.4 S(!!:s).74 E/F4 12/Times-Roman@0 SF(^)5
+I F2(string1)-5 I F4(^)5 I F2(string2)-5 I F4(^)5 I F0 1.48 -.74('' \()
+-5 L(see).74 E F1(Modi\214ers)2.5 E F0(belo)2.5 E(w\).)-.25 E F1(!#)108
+434.4 Q F0(The entire command line typed so f)144 434.4 Q(ar)-.1 E(.)
+-.55 E F1 -.75(Wo)87 451.2 S(rd Designators).75 E F0 -.8(Wo)108 463.2 S
+1.313(rd designators are used to select desired w).8 F 1.314
+(ords from the e)-.1 F -.15(ve)-.25 G 3.814(nt. A).15 F F1(:)3.814 E F0
+1.314(separates the e)3.814 F -.15(ve)-.25 G 1.314(nt speci\214cation)
+.15 F .53(from the w)108 475.2 R .529(ord designator)-.1 F 5.529(.I)-.55
+G 3.029(tm)-5.529 G .529(ay be omitted if the w)-3.029 F .529
+(ord designator be)-.1 F .529(gins with a)-.15 F F1(^)3.029 E F0(,)A F1
+($)3.029 E F0(,)A F1(*)3.029 E F0(,)A F1<ad>3.029 E F0 3.029(,o)C(r)
+-3.029 E F1(%)3.029 E F0 5.529(.W)C(ords)-6.329 E .515
+(are numbered from the be)108 487.2 R .516
(ginning of the line, with the \214rst w)-.15 F .516
-(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)5.515 G .515(rds are in-)
-.8 F(serted into the current line separated by single spaces.)108 705.6
-Q(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(55)190.395 E 0 Cg EP
-%%Page: 56 56
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF 2.5(0\()108 84 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 96 Q 2.5
-(ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E/F2
-10/Times-Italic@0 SF(n)108.36 108 Q F0(The)144 108 Q F2(n)2.5 E F0(th w)
-A(ord.)-.1 E F1(^)108 120 Q F0(The \214rst ar)144 120 Q 2.5
-(gument. That)-.18 F(is, w)2.5 E(ord 1.)-.1 E F1($)108 132 Q F0 .063
-(The last w)144 132 R 2.563(ord. This)-.1 F .063(is usually the last ar)
-2.563 F .064(gument, b)-.18 F .064(ut will e)-.2 F .064
-(xpand to the zeroth w)-.15 F .064(ord if there is only)-.1 F(one w)144
-144 Q(ord in the line.)-.1 E F1(%)108 156 Q F0 1.42(The \214rst w)144
-156 R 1.42(ord matched by the most recent `?)-.1 F F2(string)A F0 1.419
-(?' search, if the search string be)B 1.419(gins with a)-.15 F
-(character that is part of a w)144 168 Q(ord.)-.1 E F2(x)108.77 180 Q F1
-<ad>A F2(y)A F0 2.5(Ar)144 180 S(ange of w)-2.5 E(ords; `\255)-.1 E F2
+(ord being denoted by 0 \(zero\).)-.1 F -.8(Wo)5.516 G .516(rds are in-)
+.8 F(serted into the current line separated by single spaces.)108 499.2
+Q F1 2.5(0\()108 516 S(zer)-2.5 E(o\))-.18 E F0(The zeroth w)144 528 Q
+2.5(ord. F)-.1 F(or the shell, this is the command w)-.15 E(ord.)-.1 E
+F2(n)108.36 540 Q F0(The)144 540 Q F2(n)2.5 E F0(th w)A(ord.)-.1 E F1(^)
+108 552 Q F0(The \214rst ar)144 552 Q 2.5(gument. That)-.18 F(is, w)2.5
+E(ord 1.)-.1 E F1($)108 564 Q F0 .064(The last w)144 564 R 2.564
+(ord. This)-.1 F .064(is usually the last ar)2.564 F .064(gument, b)-.18
+F .064(ut will e)-.2 F .064(xpand to the zeroth w)-.15 F .063
+(ord if there is only)-.1 F(one w)144 576 Q(ord in the line.)-.1 E F1(%)
+108 588 Q F0 1.419(The \214rst w)144 588 R 1.419
+(ord matched by the most recent `?)-.1 F F2(string)A F0 1.42
+(?' search, if the search string be)B 1.42(gins with a)-.15 F
+(character that is part of a w)144 600 Q(ord.)-.1 E F2(x)108.77 612 Q F1
+<ad>A F2(y)A F0 2.5(Ar)144 612 S(ange of w)-2.5 E(ords; `\255)-.1 E F2
(y)A F0 2.5('a)C(bbre)-2.5 E(viates `0\255)-.25 E F2(y)A F0('.)A F1(*)
-108 192 Q F0 .315(All of the w)144 192 R .315(ords b)-.1 F .315
+108 624 Q F0 .316(All of the w)144 624 R .316(ords b)-.1 F .316
(ut the zeroth.)-.2 F .315(This is a synon)5.315 F .315(ym for `)-.15 F
F2(1\255$)A F0 2.815('. It)B .315(is not an error to use)2.815 F F1(*)
-2.816 E F0 .316(if there is)2.816 F(just one w)144 204 Q(ord in the e)
+2.815 E F0 .315(if there is)2.815 F(just one w)144 636 Q(ord in the e)
-.1 E -.15(ve)-.25 G(nt; the empty string is returned in that case.).15
-E F1(x*)108 216 Q F0(Abbre)144 216 Q(viates)-.25 E F2(x\255$)2.5 E F0(.)
-A F1<78ad>108 228 Q F0(Abbre)144 228 Q(viates)-.25 E F2(x\255$)2.5 E F0
+E F1(x*)108 648 Q F0(Abbre)144 648 Q(viates)-.25 E F2(x\255$)2.5 E F0(.)
+A F1<78ad>108 660 Q F0(Abbre)144 660 Q(viates)-.25 E F2(x\255$)2.5 E F0
(lik)2.5 E(e)-.1 E F1(x*)2.5 E F0 2.5(,b)C(ut omits the last w)-2.7 E
2.5(ord. If)-.1 F F1(x)2.5 E F0(is missing, it def)2.5 E(aults to 0.)-.1
-E(If a w)108 244.8 Q(ord designator is supplied without an e)-.1 E -.15
+E(If a w)108 676.8 Q(ord designator is supplied without an e)-.1 E -.15
(ve)-.25 G(nt speci\214cation, the pre).15 E
(vious command is used as the e)-.25 E -.15(ve)-.25 G(nt.).15 E F1
-(Modi\214ers)87 261.6 Q F0 .184(After the optional w)108 273.6 R .184
-(ord designator)-.1 F 2.684(,t)-.4 G .183
-(here may appear a sequence of one or more of the follo)-2.684 F .183
-(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 285.6 Q
+(Modi\214ers)87 693.6 Q F0 .183(After the optional w)108 705.6 R .183
+(ord designator)-.1 F 2.683(,t)-.4 G .184
+(here may appear a sequence of one or more of the follo)-2.683 F .184
+(wing modi\214ers,)-.25 F(each preceded by a `:'.)108 717.6 Q
(These modify)5 E 2.5(,o)-.65 G 2.5(re)-2.5 G(dit, the w)-2.5 E
(ord or w)-.1 E(ords selected from the history e)-.1 E -.15(ve)-.25 G
-(nt.).15 E F1(h)108 302.4 Q F0(Remo)144 302.4 Q .3 -.15(ve a t)-.15 H
+(nt.).15 E(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(58)185.115
+E 0 Cg EP
+%%Page: 59 59
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(h)108 84 Q F0(Remo)144 84 Q .3 -.15(ve a t)-.15 H
(railing \214lename component, lea).15 E(ving only the head.)-.2 E F1(t)
-108 314.4 Q F0(Remo)144 314.4 Q .3 -.15(ve a)-.15 H
+108 96 Q F0(Remo)144 96 Q .3 -.15(ve a)-.15 H
(ll leading \214lename components, lea).15 E(ving the tail.)-.2 E F1(r)
-108 326.4 Q F0(Remo)144 326.4 Q .3 -.15(ve a t)-.15 H(railing suf).15 E
-(\214x of the form)-.25 E F2(.xxx)2.5 E F0 2.5(,l)C(ea)-2.5 E
-(ving the basename.)-.2 E F1(e)108 338.4 Q F0(Remo)144 338.4 Q .3 -.15
-(ve a)-.15 H(ll b).15 E(ut the trailing suf)-.2 E(\214x.)-.25 E F1(p)108
-350.4 Q F0(Print the ne)144 350.4 Q 2.5(wc)-.25 G(ommand b)-2.5 E
-(ut do not e)-.2 E -.15(xe)-.15 G(cute it.).15 E F1(q)108 362.4 Q F0
-(Quote the substituted w)144 362.4 Q
-(ords, escaping further substitutions.)-.1 E F1(x)108 374.4 Q F0 .385
-(Quote the substituted w)144 374.4 R .385(ords as with)-.1 F F1(q)2.885
-E F0 2.885(,b)C .386(ut break into w)-3.085 F .386(ords at)-.1 F F1
-(blanks)2.886 E F0 .386(and ne)2.886 F 2.886(wlines. The)-.25 F F1(q)
-2.886 E F0(and)2.886 E F1(x)2.886 E F0(modi\214ers are mutually e)144
-386.4 Q(xclusi)-.15 E -.15(ve)-.25 G 2.5(;t).15 G
-(he last one supplied is used.)-2.5 E F1(s/)108 398.4 Q F2(old)A F1(/)A
-F2(ne)A(w)-.15 E F1(/)A F0(Substitute)144 410.4 Q F2(ne)3.329 E(w)-.15 E
-F0 .469(for the \214rst occurrence of)3.279 F F2(old)3.199 E F0 .469
+108 108 Q F0(Remo)144 108 Q .3 -.15(ve a t)-.15 H(railing suf).15 E
+(\214x of the form)-.25 E/F2 10/Times-Italic@0 SF(.xxx)2.5 E F0 2.5(,l)C
+(ea)-2.5 E(ving the basename.)-.2 E F1(e)108 120 Q F0(Remo)144 120 Q .3
+-.15(ve a)-.15 H(ll b).15 E(ut the trailing suf)-.2 E(\214x.)-.25 E F1
+(p)108 132 Q F0(Print the ne)144 132 Q 2.5(wc)-.25 G(ommand b)-2.5 E
+(ut do not e)-.2 E -.15(xe)-.15 G(cute it.).15 E F1(q)108 144 Q F0
+(Quote the substituted w)144 144 Q
+(ords, escaping further substitutions.)-.1 E F1(x)108 156 Q F0 .386
+(Quote the substituted w)144 156 R .386(ords as with)-.1 F F1(q)2.886 E
+F0 2.886(,b)C .386(ut break into w)-3.086 F .385(ords at)-.1 F F1
+(blanks)2.885 E F0 .385(and ne)2.885 F 2.885(wlines. The)-.25 F F1(q)
+2.885 E F0(and)2.885 E F1(x)2.885 E F0(modi\214ers are mutually e)144
+168 Q(xclusi)-.15 E -.15(ve)-.25 G 2.5(;t).15 G
+(he last one supplied is used.)-2.5 E F1(s/)108 180 Q F2(old)A F1(/)A F2
+(ne)A(w)-.15 E F1(/)A F0(Substitute)144 192 Q F2(ne)3.328 E(w)-.15 E F0
+.469(for the \214rst occurrence of)3.278 F F2(old)3.199 E F0 .469
(in the e)3.739 F -.15(ve)-.25 G .469(nt line.).15 F(An)5.469 E 2.969
-(yc)-.15 G .469(haracter may be used as the)-2.969 F .953
-(delimiter in place of /.)144 422.4 R .953
+(yc)-.15 G .469(haracter may be used as the)-2.969 F .954
+(delimiter in place of /.)144 204 R .953
(The \214nal delimiter is optional if it is the last character of the e)
-5.953 F -.15(ve)-.25 G .954(nt line.).15 F .131
-(The delimiter may be quoted in)144 434.4 R F2(old)2.861 E F0(and)3.401
-E F2(ne)2.991 E(w)-.15 E F0 .131(with a single backslash.)2.941 F .131
+5.953 F -.15(ve)-.25 G .953(nt line.).15 F .131
+(The delimiter may be quoted in)144 216 R F2(old)2.861 E F0(and)3.401 E
+F2(ne)2.991 E(w)-.15 E F0 .131(with a single backslash.)2.941 F .131
(If & appears in)5.131 F F2(ne)2.991 E(w)-.15 E F0 2.631(,i).31 G 2.631
-(ti)-2.631 G 2.631(sr)-2.631 G(e-)-2.631 E .619(placed by)144 446.4 R F2
+(ti)-2.631 G 2.631(sr)-2.631 G(e-)-2.631 E .62(placed by)144 228 R F2
(old)3.349 E F0 5.619(.A).77 G .619(single backslash will quote the &.)
-2.5 F(If)5.619 E F2(old)3.349 E F0 .619(is null, it is set to the last)
-3.889 F F2(old)3.349 E F0(substi-)3.89 E .487(tuted, or)144 458.4 R
-2.987(,i)-.4 G 2.987(fn)-2.987 G 2.987(op)-2.987 G(re)-2.987 E .486
+3.889 F F2(old)3.349 E F0(substi-)3.889 E .486(tuted, or)144 240 R 2.986
+(,i)-.4 G 2.986(fn)-2.986 G 2.986(op)-2.986 G(re)-2.986 E .486
(vious history substitutions took place, the last)-.25 F F2(string)3.326
-E F0 .486(in a)3.206 F F1(!?)2.986 E F2(string)A F1([?])A F0 2.986
-(search. If)5.486 F F2(ne)144.36 470.4 Q(w)-.15 E F0
+E F0 .487(in a)3.206 F F1(!?)2.987 E F2(string)A F1([?])A F0 2.987
+(search. If)5.487 F F2(ne)144.36 252 Q(w)-.15 E F0
(is null, each matching)2.81 E F2(old)2.73 E F0(is deleted.)3.27 E F1(&)
-108 482.4 Q F0(Repeat the pre)144 482.4 Q(vious substitution.)-.25 E F1
-(g)108 494.4 Q F0 .397(Cause changes to be applied o)144 494.4 R -.15
-(ve)-.15 G 2.897(rt).15 G .398(he entire e)-2.897 F -.15(ve)-.25 G .398
-(nt line.).15 F .398(This is used in conjunction with `)5.398 F F1(:s)A
-F0 2.898('\()C(e.g.,)-2.898 E(`)144 506.4 Q F1(:gs/)A F2(old)A F1(/)A F2
-(ne)A(w)-.15 E F1(/)A F0 .351('\) or `)B F1(:&)A F0 2.851('. If)B .351
-(used with `)2.851 F F1(:s)A F0 .351(', an)B 2.851(yd)-.15 G .35
-(elimiter can be used in place of /, and the \214nal de-)-2.851 F
-(limiter is optional if it is the last character of the e)144 518.4 Q
--.15(ve)-.25 G(nt line.).15 E(An)5 E F1(a)2.5 E F0
-(may be used as a synon)2.5 E(ym for)-.15 E F1(g)2.5 E F0(.)A F1(G)108
-530.4 Q F0(Apply the follo)144 530.4 Q(wing `)-.25 E F1(s)A F0 2.5('o)C
-2.5(r`)-2.5 G F1(&)-2.5 E F0 2.5('m)C(odi\214er once to each w)-2.5 E
-(ord in the e)-.1 E -.15(ve)-.25 G(nt line.).15 E/F3 10.95/Times-Bold@0
-SF(SHELL B)72 547.2 Q(UIL)-.11 E(TIN COMMANDS)-1.007 E F0 .062
-(Unless otherwise noted, each b)108 559.2 R .062(uiltin command documen\
-ted in this section as accepting options preceded by)-.2 F F1<ad>108
-571.2 Q F0(accepts)3.077 E F1<adad>3.077 E F0 .577
-(to signify the end of the options.)3.077 F(The)5.577 E F1(:)3.077 E F0
-(,)A F1(true)3.077 E F0(,)A F1(false)3.077 E F0 3.077(,a)C(nd)-3.077 E
+108 264 Q F0(Repeat the pre)144 264 Q(vious substitution.)-.25 E F1(g)
+108 276 Q F0 .398(Cause changes to be applied o)144 276 R -.15(ve)-.15 G
+2.898(rt).15 G .398(he entire e)-2.898 F -.15(ve)-.25 G .398(nt line.)
+.15 F .397(This is used in conjunction with `)5.398 F F1(:s)A F0 2.897
+('\()C(e.g.,)-2.897 E(`)144 288 Q F1(:gs/)A F2(old)A F1(/)A F2(ne)A(w)
+-.15 E F1(/)A F0 .35('\) or `)B F1(:&)A F0 2.85('. If)B .35(used with `)
+2.85 F F1(:s)A F0 .35(', an)B 2.85(yd)-.15 G .351
+(elimiter can be used in place of /, and the \214nal de-)-2.85 F
+(limiter is optional if it is the last character of the e)144 300 Q -.15
+(ve)-.25 G(nt line.).15 E(An)5 E F1(a)2.5 E F0(may be used as a synon)
+2.5 E(ym for)-.15 E F1(g)2.5 E F0(.)A F1(G)108 312 Q F0(Apply the follo)
+144 312 Q(wing `)-.25 E F1(s)A F0 2.5('o)C 2.5(r`)-2.5 G F1(&)-2.5 E F0
+2.5('m)C(odi\214er once to each w)-2.5 E(ord in the e)-.1 E -.15(ve)-.25
+G(nt line.).15 E/F3 10.95/Times-Bold@0 SF(SHELL B)72 328.8 Q(UIL)-.11 E
+(TIN COMMANDS)-1.007 E F0 .063(Unless otherwise noted, each b)108 340.8
+R .062(uiltin command documented in this section as accepting options p\
+receded by)-.2 F F1<ad>108 352.8 Q F0(accepts)3.077 E F1<adad>3.077 E F0
+.577(to signify the end of the options.)3.077 F(The)5.577 E F1(:)3.077 E
+F0(,)A F1(true)3.077 E F0(,)A F1(false)3.077 E F0 3.077(,a)C(nd)-3.077 E
F1(test)3.077 E F0(/)A F1([)A F0 -.2(bu)3.077 G .577
-(iltins do not accept options).2 F .461(and do not treat)108 583.2 R F1
+(iltins do not accept options).2 F .462(and do not treat)108 364.8 R F1
<adad>2.961 E F0(specially)2.961 E 5.461(.T)-.65 G(he)-5.461 E F1(exit)
2.961 E F0(,)A F1(logout)2.961 E F0(,)A F1 -.18(re)2.961 G(tur).18 E(n)
-.15 E F0(,)A F1(br)2.961 E(eak)-.18 E F0(,)A F1(continue)2.961 E F0(,)A
F1(let)2.961 E F0 2.961(,a)C(nd)-2.961 E F1(shift)2.961 E F0 -.2(bu)
-2.962 G .462(iltins accept and).2 F .261(process ar)108 595.2 R .261
-(guments be)-.18 F .261(ginning with)-.15 F F1<ad>2.761 E F0 .261
-(without requiring)2.761 F F1<adad>2.761 E F0 5.261(.O)C .261(ther b)
--5.261 F .26(uiltins that accept ar)-.2 F .26(guments b)-.18 F .26
+2.961 G .461(iltins accept and).2 F .26(process ar)108 376.8 R .26
+(guments be)-.18 F .26(ginning with)-.15 F F1<ad>2.76 E F0 .261
+(without requiring)2.76 F F1<adad>2.761 E F0 5.261(.O)C .261(ther b)
+-5.261 F .261(uiltins that accept ar)-.2 F .261(guments b)-.18 F .261
(ut are not)-.2 F 1.154(speci\214ed as accepting options interpret ar)
-108 607.2 R 1.154(guments be)-.18 F 1.154(ginning with)-.15 F F1<ad>
+108 388.8 R 1.154(guments be)-.18 F 1.154(ginning with)-.15 F F1<ad>
3.654 E F0 1.154(as in)3.654 F -.25(va)-.4 G 1.154
(lid options and require).25 F F1<adad>3.654 E F0(to)3.654 E(pre)108
-619.2 Q -.15(ve)-.25 G(nt this interpretation.).15 E F1(:)108 637.2 Q F0
-([)2.5 E F2(ar)A(guments)-.37 E F0(])A .452(No ef)144 649.2 R .452
+400.8 Q -.15(ve)-.25 G(nt this interpretation.).15 E F1(:)108 418.8 Q F0
+([)2.5 E F2(ar)A(guments)-.37 E F0(])A .451(No ef)144 430.8 R .451
(fect; the command does nothing be)-.25 F .452(yond e)-.15 F(xpanding)
--.15 E F2(ar)3.282 E(guments)-.37 E F0 .451(and performing an)3.221 F
-2.951(ys)-.15 G(peci\214ed)-2.951 E 2.5(redirections. The)144 661.2 R
-(return status is zero.)2.5 E F1(.)110.5 678 Q F2(\214lename)6.666 E F0
-([)2.5 E F2(ar)A(guments)-.37 E F0(])A F1(sour)108 690 Q(ce)-.18 E F2
-(\214lename)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A 1.02
-(Read and e)144 702 R -.15(xe)-.15 G 1.02(cute commands from).15 F F2
+-.15 E F2(ar)3.282 E(guments)-.37 E F0 .452(and performing an)3.222 F
+2.952(ys)-.15 G(peci\214ed)-2.952 E 2.5(redirections. The)144 442.8 R
+(return status is zero.)2.5 E F1(.)110.5 459.6 Q F2(\214lename)6.666 E
+F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A F1(sour)108 471.6 Q(ce)-.18 E
+F2(\214lename)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A 1.02
+(Read and e)144 483.6 R -.15(xe)-.15 G 1.02(cute commands from).15 F F2
(\214lename)5.43 E F0 1.02(in the current shell en)3.7 F 1.02
-(vironment and return the e)-.4 F(xit)-.15 E 1.331
-(status of the last command e)144 714 R -.15(xe)-.15 G 1.331(cuted from)
-.15 F F2(\214lename)5.741 E F0 6.331(.I).18 G(f)-6.331 E F2(\214lename)
-5.741 E F0 1.33(does not contain a slash, \214le-)4.011 F .488(names in)
-144 726 R/F4 9/Times-Bold@0 SF -.666(PA)2.988 G(TH)-.189 E F0 .488
-(are used to \214nd the directory containing)2.738 F F2(\214lename)4.899
-E F0 5.489(.T).18 G .489(he \214le searched for in)-5.489 F F4 -.666(PA)
-2.989 G(TH)-.189 E F0(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E
-(56)190.395 E 0 Cg EP
-%%Page: 57 57
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .833
-(need not be e)144 84 R -.15(xe)-.15 G 3.333(cutable. When).15 F/F1 10
-/Times-Bold@0 SF(bash)3.333 E F0 .832(is not in)3.333 F/F2 10
-/Times-Italic@0 SF .832(posix mode)3.332 F F0 3.332(,t)C .832
-(he current directory is searched if no)-3.332 F .981
-(\214le is found in)144 96 R/F3 9/Times-Bold@0 SF -.666(PA)3.481 G(TH)
--.189 E/F4 9/Times-Roman@0 SF(.)A F0 .981(If the)5.481 F F1(sour)3.481 E
-(cepath)-.18 E F0 .981(option to the)3.481 F F1(shopt)3.481 E F0 -.2(bu)
-3.481 G .981(iltin command is turned of).2 F .982(f, the)-.25 F F3 -.666
-(PA)144 108 S(TH)-.189 E F0 .112(is not searched.)2.363 F .112(If an)
-5.112 F(y)-.15 E F2(ar)2.612 E(guments)-.37 E F0 .112(are supplied, the)
-2.612 F 2.612(yb)-.15 G .112(ecome the positional parameters when)-2.612
-F F2(\214lename)144 120 Q F0 .485(is e)2.985 F -.15(xe)-.15 G 2.985
-(cuted. Otherwise).15 F .485(the positional parameters are unchanged.)
-2.985 F .485(If the)5.485 F F1<ad54>2.985 E F0 .485(option is en-)2.985
-F(abled,)144 132 Q F1(sour)3.325 E(ce)-.18 E F0 .825(inherits an)3.325 F
-3.325(yt)-.15 G .825(rap on)-3.325 F F1(DEB)3.325 E(UG)-.1 E F0 3.325
-(;i)C 3.325(fi)-3.325 G 3.324(ti)-3.325 G 3.324(sn)-3.324 G .824(ot, an)
--3.324 F(y)-.15 E F1(DEB)3.324 E(UG)-.1 E F0 .824(trap string is sa)
-3.324 F -.15(ve)-.2 G 3.324(da).15 G .824(nd re-)-3.324 F .817
-(stored around the call to)144 144 R F1(sour)3.317 E(ce)-.18 E F0 3.317
-(,a)C(nd)-3.317 E F1(sour)3.317 E(ce)-.18 E F0 .817(unsets the)3.317 F
-F1(DEB)3.317 E(UG)-.1 E F0 .817(trap while it e)3.317 F -.15(xe)-.15 G
-3.317(cutes. If).15 F F1<ad54>3.317 E F0(is)3.318 E 1.435
-(not set, and the sourced \214le changes the)144 156 R F1(DEB)3.935 E
-(UG)-.1 E F0 1.435(trap, the ne)3.935 F 3.935(wv)-.25 G 1.435
-(alue is retained when)-4.185 F F1(sour)3.935 E(ce)-.18 E F0 3.762
-(completes. The)144 168 R 1.262
-(return status is the status of the last command e)3.762 F 1.263
-(xited within the script \(0 if no)-.15 F(commands are e)144 180 Q -.15
-(xe)-.15 G(cuted\), and f).15 E(alse if)-.1 E F2(\214lename)4.41 E F0
-(is not found or cannot be read.)2.68 E F1(alias)108 196.8 Q F0([)2.5 E
-F1<ad70>A F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C(..])
--2.5 E F1(Alias)144 208.8 Q F0 2.725(with no ar)5.225 F 2.724
+(vironment and return the e)-.4 F(xit)-.15 E 1.33
+(status of the last command e)144 495.6 R -.15(xe)-.15 G 1.331
+(cuted from).15 F F2(\214lename)5.741 E F0 6.331(.I).18 G(f)-6.331 E F2
+(\214lename)5.741 E F0 1.331(does not contain a slash, \214le-)4.011 F
+.023(names in)144 507.6 R/F4 9/Times-Bold@0 SF -.666(PA)2.523 G(TH)-.189
+E F0 .022(are used to \214nd the directory containing)2.273 F F2
+(\214lename)4.432 E F0 2.522(,b).18 G(ut)-2.722 E F2(\214lename)2.522 E
+F0 .022(does not need to be)2.522 F -.15(exe)144 519.6 S 3.86
+(cutable. The).15 F 1.36(\214le searched for in)3.86 F F4 -.666(PA)3.86
+G(TH)-.189 E F0 1.361(need not be e)3.61 F -.15(xe)-.15 G 3.861
+(cutable. When).15 F F1(bash)3.861 E F0 1.361(is not in)3.861 F F2
+(posix)3.861 E(mode)144 531.6 Q F0 2.772(,i)C 2.772(ts)-2.772 G .272
+(earches the current directory if no \214le is found in)-2.772 F F4
+-.666(PA)2.771 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .271(If the)
+4.771 F F1(sour)2.771 E(cepath)-.18 E F0 .271(option to the)2.771 F F1
+(shopt)144 543.6 Q F0 -.2(bu)3.659 G 1.159(iltin command is turned of).2
+F 1.159(f, the)-.25 F F4 -.666(PA)3.659 G(TH)-.189 E F0 1.159
+(is not searched.)3.409 F 1.16(If an)6.159 F(y)-.15 E F2(ar)3.66 E
+(guments)-.37 E F0 1.16(are supplied,)3.66 F(the)144 555.6 Q 3.692(yb)
+-.15 G 1.192(ecome the positional parameters when)-3.692 F F2
+(\214lename)3.692 E F0 1.192(is e)3.692 F -.15(xe)-.15 G 3.691
+(cuted. Otherwise).15 F 1.191(the positional pa-)3.691 F .82
+(rameters are unchanged.)144 567.6 R .82(If the)5.82 F F1<ad54>3.32 E F0
+.82(option is enabled,)3.32 F F1(.)3.32 E F0 .82(inherits an)3.32 F 3.32
+(yt)-.15 G .82(rap on)-3.32 F F1(DEB)3.32 E(UG)-.1 E F0 3.32(;i)C 3.32
+(fi)-3.32 G 3.32(ti)-3.32 G 3.32(sn)-3.32 G(ot,)-3.32 E(an)144 579.6 Q
+(y)-.15 E F1(DEB)3.323 E(UG)-.1 E F0 .823(trap string is sa)3.323 F -.15
+(ve)-.2 G 3.322(da).15 G .822(nd restored around the call to)-3.322 F F1
+(.)3.322 E F0 3.322(,a)C(nd)-3.322 E F1(.)3.322 E F0 .822(unsets the)
+3.322 F F1(DEB)3.322 E(UG)-.1 E F0(trap)3.322 E .226(while it e)144
+591.6 R -.15(xe)-.15 G 2.726(cutes. If).15 F F1<ad54>2.727 E F0 .227
+(is not set, and the sourced \214le changes the)2.727 F F1(DEB)2.727 E
+(UG)-.1 E F0 .227(trap, the ne)2.727 F 2.727(wv)-.25 G .227(alue is)
+-2.977 F .891(retained when)144 603.6 R F1(.)3.391 E F0 3.391
+(completes. The)3.391 F .891
+(return status is the status of the last command e)3.391 F .89
+(xited within the)-.15 F(script \(0 if no commands are e)144 615.6 Q
+-.15(xe)-.15 G(cuted\), and f).15 E(alse if)-.1 E F2(\214lename)4.41 E
+F0(is not found or cannot be read.)2.68 E F1(alias)108 632.4 Q F0([)2.5
+E F1<ad70>A F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C
+(..])-2.5 E F1(Alias)144 644.4 Q F0 2.724(with no ar)5.224 F 2.724
(guments or with the)-.18 F F1<ad70>5.224 E F0 2.724
-(option prints the list of aliases in the form)5.224 F F1(alias)5.224 E
-F2(name)144 220.8 Q F0(=)A F2(value)A F0 .58(on standard output.)3.08 F
+(option prints the list of aliases in the form)5.224 F F1(alias)5.225 E
+F2(name)144 656.4 Q F0(=)A F2(value)A F0 .58(on standard output.)3.08 F
.58(When ar)5.58 F .58
(guments are supplied, an alias is de\214ned for each)-.18 F F2(name)
-3.08 E F0(whose)144 232.8 Q F2(value)2.509 E F0 .009(is gi)2.509 F -.15
+3.08 E F0(whose)144 668.4 Q F2(value)2.508 E F0 .009(is gi)2.508 F -.15
(ve)-.25 G 2.509(n. A).15 F .009(trailing space in)2.509 F F2(value)
2.509 E F0 .009(causes the ne)2.509 F .009(xt w)-.15 F .009
-(ord to be check)-.1 F .008(ed for alias substi-)-.1 F .579
-(tution when the alias is e)144 244.8 R 3.079(xpanded. F)-.15 F .579
+(ord to be check)-.1 F .009(ed for alias substi-)-.1 F .579
+(tution when the alias is e)144 680.4 R 3.079(xpanded. F)-.15 F .579
(or each)-.15 F F2(name)3.079 E F0 .579(in the ar)3.079 F .579
-(gument list for which no)-.18 F F2(value)3.079 E F0 .579(is sup-)3.079
-F 1.314(plied, the name and v)144 256.8 R 1.314
+(gument list for which no)-.18 F F2(value)3.079 E F0 .578(is sup-)3.078
+F 1.313(plied, the name and v)144 692.4 R 1.314
(alue of the alias is printed.)-.25 F F1(Alias)6.314 E F0 1.314
-(returns true unless a)3.814 F F2(name)3.814 E F0 1.313(is gi)3.814 F
--.15(ve)-.25 G 3.813(nf).15 G(or)-3.813 E
-(which no alias has been de\214ned.)144 268.8 Q F1(bg)108 285.6 Q F0([)
-2.5 E F2(jobspec)A F0(...])2.5 E .744(Resume each suspended job)144
-297.6 R F2(jobspec)3.244 E F0 .745
-(in the background, as if it had been started with)3.244 F F1(&)3.245 E
-F0 5.745(.I)C(f)-5.745 E F2(job-)4.985 E(spec)144 309.6 Q F0 .672
-(is not present, the shell')3.482 F 3.172(sn)-.55 G .672(otion of the)
--3.172 F F2(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F1
-(bg)5.671 E F2(jobspec)4.911 E F0 .671(returns 0 unless run)3.481 F .418
-(when job control is disabled or)144 321.6 R 2.919(,w)-.4 G .419
-(hen run with job control enabled, an)-2.919 F 2.919(ys)-.15 G
-(peci\214ed)-2.919 E F2(jobspec)2.919 E F0 -.1(wa)2.919 G 2.919(sn).1 G
-(ot)-2.919 E(found or w)144 333.6 Q(as started without job control.)-.1
-E F1(bind)108 350.4 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0
-2.5(][)C F1(\255lpsvPSVX)-2.5 E F0(])A F1(bind)108 362.4 Q F0([)2.5 E F1
+(returns true unless a)3.814 F F2(name)3.814 E F0 1.314(is gi)3.814 F
+-.15(ve)-.25 G 3.814(nf).15 G(or)-3.814 E
+(which no alias has been de\214ned.)144 704.4 Q(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(59)185.115 E 0 Cg EP
+%%Page: 60 60
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(bg)108 84 Q F0([)2.5 E/F2 10/Times-Italic@0 SF(jobspec)A F0(...])2.5
+E .745(Resume each suspended job)144 96 R F2(jobspec)3.245 E F0 .745
+(in the background, as if it had been started with)3.245 F F1(&)3.244 E
+F0 5.744(.I)C(f)-5.744 E F2(job-)4.984 E(spec)144 108 Q F0 .671
+(is not present, the shell')3.481 F 3.171(sn)-.55 G .672(otion of the)
+-3.171 F F2(curr)3.172 E .672(ent job)-.37 F F0 .672(is used.)3.172 F F1
+(bg)5.672 E F2(jobspec)4.912 E F0 .672(returns 0 unless run)3.482 F .419
+(when job control is disabled or)144 120 R 2.919(,w)-.4 G .419
+(hen run with job control enabled, an)-2.919 F 2.918(ys)-.15 G
+(peci\214ed)-2.918 E F2(jobspec)2.918 E F0 -.1(wa)2.918 G 2.918(sn).1 G
+(ot)-2.918 E(found or w)144 132 Q(as started without job control.)-.1 E
+F1(bind)108 148.8 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0
+2.5(][)C F1(\255lpsvPSVX)-2.5 E F0(])A F1(bind)108 160.8 Q F0([)2.5 E F1
<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0 2.5(][)C F1<ad71>-2.5 E F2
(function)2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2(function)2.5 E F0 2.5(][)C
-F1<ad72>-2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(])A F1(bind)108 374.4 Q F0
+F1<ad72>-2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(])A F1(bind)108 172.8 Q F0
([)2.5 E F1<ad6d>A F2 -.1(ke)2.5 G(ymap)-.2 E F0(])A F1<ad66>2.5 E F2
-(\214lename)2.5 E F1(bind)108 386.4 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5
+(\214lename)2.5 E F1(bind)108 184.8 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)2.5
G(ymap)-.2 E F0(])A F1<ad78>2.5 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F2
-(shell\255command)A F1(bind)108 398.4 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)
+(shell\255command)A F1(bind)108 196.8 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)
2.5 G(ymap)-.2 E F0(])A F2 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F2
-(function\255name)A F1(bind)108 410.4 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)
+(function\255name)A F1(bind)108 208.8 Q F0([)2.5 E F1<ad6d>A F2 -.1(ke)
2.5 G(ymap)-.2 E F0(])A F2 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F2 -.37(re)C
-(adline\255command).37 E F0 .239(Display current)144 422.4 R F1 -.18(re)
-2.739 G(adline).18 E F0 -.1(ke)2.739 G 2.739(ya)-.05 G .239
-(nd function bindings, bind a k)-2.739 F .539 -.15(ey s)-.1 H .238
-(equence to a).15 F F1 -.18(re)2.738 G(adline).18 E F0 .238(function or)
-2.738 F .475(macro, or set a)144 434.4 R F1 -.18(re)2.975 G(adline).18 E
-F0 -.25(va)2.975 G 2.975(riable. Each).25 F .476(non-option ar)2.976 F
-.476(gument is a command as it w)-.18 F .476(ould appear in)-.1 F F2
-(.inputr)144.23 446.4 Q(c)-.37 E F0 2.968(,b).31 G .467
-(ut each binding or command must be passed as a separate ar)-3.168 F
-.467(gument; e.g., '"\\C\255x\\C\255r":)-.18 F 2.5
-(re\255read\255init\255\214le'. Options,)144 458.4 R(if supplied, ha)2.5
-E .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad6d>144
-470.4 Q F2 -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 482.4 Q F2 -.1(ke)5.158 G
-(ymap)-.2 E F0 2.658(as the k)5.348 F -.15(ey)-.1 G 2.658(map to be af)
-.15 F 2.659(fected by the subsequent bindings.)-.25 F(Acceptable)7.659 E
-F2 -.1(ke)180 494.4 S(ymap)-.2 E F0 3.193(names are)5.883 F F2 3.193
+(adline\255command).37 E F1(bind)108 220.8 Q F2 -.37(re)2.5 G
+(adline-command-line).37 E F0 .238(Display current)144 232.8 R F1 -.18
+(re)2.738 G(adline).18 E F0 -.1(ke)2.738 G 2.738(ya)-.05 G .239
+(nd function bindings, bind a k)-2.738 F .539 -.15(ey s)-.1 H .239
+(equence to a).15 F F1 -.18(re)2.739 G(adline).18 E F0 .239(function or)
+2.739 F .04(macro, or set a)144 244.8 R F1 -.18(re)2.54 G(adline).18 E
+F0 -.25(va)2.54 G 2.54(riable. Each).25 F .039(non-option ar)2.54 F .039
+(gument is a command as it w)-.18 F .039(ould appear in a)-.1 F F1 -.18
+(re)144 256.8 S(adline).18 E F0 .182(initialization \214le such as)2.681
+F F2(.inputr)2.912 E(c)-.37 E F0 2.682(,b).31 G .182
+(ut each binding or command must be passed as a sep-)-2.882 F 1.907
+(arate ar)144 268.8 R 1.907
+(gument; e.g., '"\\C\255x\\C\255r": re\255read\255init\255\214le'.)-.18
+F 1.907(Options, if supplied, ha)6.907 F 2.207 -.15(ve t)-.2 H 1.907
+(he follo).15 F(wing)-.25 E(meanings:)144 280.8 Q F1<ad6d>144 292.8 Q F2
+-.1(ke)2.5 G(ymap)-.2 E F0(Use)180 304.8 Q F2 -.1(ke)5.158 G(ymap)-.2 E
+F0 2.658(as the k)5.348 F -.15(ey)-.1 G 2.658(map to be af).15 F 2.659
+(fected by the subsequent bindings.)-.25 F(Acceptable)7.659 E F2 -.1(ke)
+180 316.8 S(ymap)-.2 E F0 3.193(names are)5.883 F F2 3.193
(emacs, emacs\255standar)5.693 F 3.192
(d, emacs\255meta, emacs\255ctlx, vi, vi\255mo)-.37 F(ve)-.1 E(,)-.1 E
-(vi\255command)180 506.4 Q F0 4.089(,a)C(nd)-4.089 E F2(vi\255insert)
+(vi\255command)180 328.8 Q F0 4.089(,a)C(nd)-4.089 E F2(vi\255insert)
4.379 E F0(.).68 E F2(vi)6.589 E F0 1.589(is equi)4.089 F -.25(va)-.25 G
1.589(lent to).25 F F2(vi\255command)4.089 E F0(\()4.089 E F2(vi\255mo)A
-(ve)-.1 E F0 1.59(is also a syn-)4.089 F(on)180 518.4 Q(ym\);)-.15 E F2
+(ve)-.1 E F0 1.59(is also a syn-)4.089 F(on)180 340.8 Q(ym\);)-.15 E F2
(emacs)2.5 E F0(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F2
-(emacs\255standar)2.5 E(d)-.37 E F0(.)A F1<ad6c>144 530.4 Q F0
-(List the names of all)180 530.4 Q F1 -.18(re)2.5 G(adline).18 E F0
-(functions.)2.5 E F1<ad70>144 542.4 Q F0(Display)180 542.4 Q F1 -.18(re)
+(emacs\255standar)2.5 E(d)-.37 E F0(.)A F1<ad6c>144 352.8 Q F0
+(List the names of all)180 352.8 Q F1 -.18(re)2.5 G(adline).18 E F0
+(functions.)2.5 E F1<ad70>144 364.8 Q F0(Display)180 364.8 Q F1 -.18(re)
2.5 G(adline).18 E F0(function names and bindings in such a w)2.5 E
-(ay that the)-.1 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad50>144 554.4
-Q F0(List current)180 554.4 Q F1 -.18(re)2.5 G(adline).18 E F0
-(function names and bindings.)2.5 E F1<ad73>144 566.4 Q F0(Display)180
-566.4 Q F1 -.18(re)3.655 G(adline).18 E F0 -.1(ke)3.655 G 3.655(ys)-.05
+(ay that the)-.1 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad50>144 376.8
+Q F0(List current)180 376.8 Q F1 -.18(re)2.5 G(adline).18 E F0
+(function names and bindings.)2.5 E F1<ad73>144 388.8 Q F0(Display)180
+388.8 Q F1 -.18(re)3.655 G(adline).18 E F0 -.1(ke)3.655 G 3.655(ys)-.05
G 1.155(equences bound to macros and the strings the)-3.655 F 3.655(yo)
--.15 G 1.155(utput in such a)-3.655 F -.1(wa)180 578.4 S 2.5(yt).1 G
-(hat the)-2.5 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad53>144 590.4 Q
-F0(Display)180 590.4 Q F1 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5
+-.15 G 1.155(utput in such a)-3.655 F -.1(wa)180 400.8 S 2.5(yt).1 G
+(hat the)-2.5 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad53>144 412.8 Q
+F0(Display)180 412.8 Q F1 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5
(ys)-.05 G(equences bound to macros and the strings the)-2.5 E 2.5(yo)
--.15 G(utput.)-2.5 E F1<ad76>144 602.4 Q F0(Display)180 602.4 Q F1 -.18
+-.15 G(utput.)-2.5 E F1<ad76>144 424.8 Q F0(Display)180 424.8 Q F1 -.18
(re)2.5 G(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E
(alues in such a w)-.25 E(ay that the)-.1 E 2.5(yc)-.15 G
-(an be re-read.)-2.5 E F1<ad56>144 614.4 Q F0(List current)180 614.4 Q
+(an be re-read.)-2.5 E F1<ad56>144 436.8 Q F0(List current)180 436.8 Q
F1 -.18(re)2.5 G(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E
-(alues.)-.25 E F1<ad66>144 626.4 Q F2(\214lename)2.5 E F0(Read k)180
-638.4 Q .3 -.15(ey b)-.1 H(indings from).15 E F2(\214lename)2.5 E F0(.)A
-F1<ad71>144 650.4 Q F2(function)2.5 E F0(Query about which k)180 662.4 Q
+(alues.)-.25 E F1<ad66>144 448.8 Q F2(\214lename)2.5 E F0(Read k)180
+460.8 Q .3 -.15(ey b)-.1 H(indings from).15 E F2(\214lename)2.5 E F0(.)A
+F1<ad71>144 472.8 Q F2(function)2.5 E F0(Query about which k)180 484.8 Q
-.15(ey)-.1 G 2.5(si).15 G -1.9 -.4(nv o)-2.5 H .2 -.1(ke t).4 H
-(he named).1 E F2(function)2.5 E F0(.)A F1<ad75>144 674.4 Q F2(function)
-2.5 E F0(Unbind all k)180 686.4 Q -.15(ey)-.1 G 2.5(sb).15 G
-(ound to the named)-2.5 E F2(function)2.5 E F0(.)A F1<ad72>144 698.4 Q
-F2 -.1(ke)2.5 G(yseq)-.2 E F0(Remo)180 710.4 Q .3 -.15(ve a)-.15 H .3
+(he named).1 E F2(function)2.5 E F0(.)A F1<ad75>144 496.8 Q F2(function)
+2.5 E F0(Unbind all k)180 508.8 Q -.15(ey)-.1 G 2.5(sb).15 G
+(ound to the named)-2.5 E F2(function)2.5 E F0(.)A F1<ad72>144 520.8 Q
+F2 -.1(ke)2.5 G(yseq)-.2 E F0(Remo)180 532.8 Q .3 -.15(ve a)-.15 H .3
-.15(ny c).15 H(urrent binding for).15 E F2 -.1(ke)2.5 G(yseq)-.2 E F0
-(.)A(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(57)190.395 E 0 Cg
-EP
-%%Page: 58 58
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF<ad78>144 84 Q/F2 10/Times-Italic@0 SF -.1(ke)2.5 G(yseq)-.2 E F1(:)A
-F2(shell\255command)A F0(Cause)180 96 Q F2(shell\255command)4.325 E F0
+(.)A F1<ad78>144 544.8 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2
+(shell\255command)A F0(Cause)180 556.8 Q F2(shell\255command)4.325 E F0
1.825(to be e)4.325 F -.15(xe)-.15 G 1.825(cuted whene).15 F -.15(ve)
-.25 G(r).15 E F2 -.1(ke)4.325 G(yseq)-.2 E F0 1.825(is entered.)4.325 F
-(When)6.825 E F2(shell\255com-)4.325 E(mand)180 108 Q F0 1.765(is e)
+(When)6.825 E F2(shell\255com-)4.325 E(mand)180 568.8 Q F0 1.765(is e)
4.265 F -.15(xe)-.15 G 1.765(cuted, the shell sets the).15 F/F3 9
/Times-Bold@0 SF(READLINE_LINE)4.265 E F0 -.25(va)4.015 G 1.765
-(riable to the contents of the).25 F F1 -.18(re)180 120 S(adline).18 E
+(riable to the contents of the).25 F F1 -.18(re)180 580.8 S(adline).18 E
F0 .375(line b)2.874 F(uf)-.2 E .375(fer and the)-.25 F F3
(READLINE_POINT)2.875 E F0(and)2.625 E F3(READLINE_MARK)2.875 E F0 -.25
(va)2.625 G .375(riables to the).25 F 1.186
-(current location of the insertion point and the sa)180 132 R -.15(ve)
+(current location of the insertion point and the sa)180 592.8 R -.15(ve)
-.2 G 3.685(di).15 G 1.185(nsertion point \(the mark\), respec-)-3.685 F
-(ti)180 144 Q -.15(ve)-.25 G(ly).15 E 5.701(.I)-.65 G 3.201(ft)-5.701 G
-.701(he e)-3.201 F -.15(xe)-.15 G .701(cuted command changes the v).15 F
-.702(alue of an)-.25 F 3.202(yo)-.15 G(f)-3.202 E F3(READLINE_LINE)3.202
-E/F4 9/Times-Roman@0 SF(,)A F3(READ-)2.952 E(LINE_POINT)180 156 Q F4(,)A
-F0(or)3.581 E F3(READLINE_MARK)3.831 E F4(,)A F0 1.331(those ne)3.581 F
-3.831(wv)-.25 G 1.33(alues will be re\215ected in the editing)-4.081 F
-(state.)180 168 Q F1<ad58>144 180 Q F0 .829(List all k)180 180 R 1.129
--.15(ey s)-.1 H .829
+(ti)180 604.8 Q -.15(ve)-.25 G(ly).15 E 5.377(.T)-.65 G .377
+(he shell assigns an)-5.377 F 2.877(yn)-.15 G .377(umeric ar)-2.877 F
+.377(gument the user supplied to the)-.18 F F3(READLINE_AR-)2.878 E
+(GUMENT)180 616.8 Q F0 -.25(va)3.605 G 3.855(riable. If).25 F 1.355
+(there w)3.855 F 1.354(as no ar)-.1 F 1.354(gument, that v)-.18 F 1.354
+(ariable is not set.)-.25 F 1.354(If the e)6.354 F -.15(xe)-.15 G(cuted)
+.15 E .343(command changes the v)180 628.8 R .343(alue of an)-.25 F
+2.843(yo)-.15 G(f)-2.843 E F3(READLINE_LINE)2.844 E/F4 9/Times-Roman@0
+SF(,)A F3(READLINE_POINT)2.594 E F4(,)A F0(or)2.594 E F3(READ-)2.844 E
+(LINE_MARK)180 640.8 Q F4(,)A F0(those ne)2.25 E 2.5(wv)-.25 G
+(alues will be re\215ected in the editing state.)-2.75 E F1<ad58>144
+652.8 Q F0 .83(List all k)180 652.8 R 1.13 -.15(ey s)-.1 H .829
(equences bound to shell commands and the associated commands in a for)
-.15 F(-)-.2 E(mat that can be reused as input.)180 192 Q(The return v)
-144 208.8 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
+.15 F(-)-.2 E(mat that can be reused as input.)180 664.8 Q(The return v)
+144 681.6 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
(ve)-.25 G 2.5(no).15 G 2.5(ra)-2.5 G 2.5(ne)-2.5 G(rror occurred.)-2.5
-E F1(br)108 225.6 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .055
-(Exit from within a)144 237.6 R F1 -.25(fo)2.555 G(r).25 E F0(,)A F1
-(while)2.555 E F0(,)A F1(until)2.555 E F0 2.555(,o)C(r)-2.555 E F1
+E F1(br)108 698.4 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .054
+(Exit from within a)144 710.4 R F1 -.25(fo)2.554 G(r).25 E F0(,)A F1
+(while)2.554 E F0(,)A F1(until)2.555 E F0 2.555(,o)C(r)-2.555 E F1
(select)2.555 E F0 2.555(loop. If)2.555 F F2(n)2.555 E F0 .055
(is speci\214ed, break)2.555 F F2(n)2.555 E F0(le)2.555 E -.15(ve)-.25 G
-(ls.).15 E F2(n)5.414 E F0 .054(must be)2.794 F/F5 10/Symbol SF<b3>2.554
-E F0(1.)2.554 E(If)144 249.6 Q F2(n)3.074 E F0 .215(is greater than the\
- number of enclosing loops, all enclosing loops are e)2.954 F 2.715
-(xited. The)-.15 F .215(return v)2.715 F(alue)-.25 E(is 0 unless)144
-261.6 Q F2(n)2.5 E F0(is not greater than or equal to 1.)2.5 E F1 -.2
-(bu)108 278.4 S(iltin).2 E F2(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E
-F2(ar)A(guments)-.37 E F0(])A(Ex)144 290.4 Q .771
-(ecute the speci\214ed shell b)-.15 F .771(uiltin, passing it)-.2 F F2
-(ar)3.601 E(guments)-.37 E F0 3.271(,a).27 G .771(nd return its e)-3.271
-F .77(xit status.)-.15 F .77(This is useful)5.77 F .615
+(ls.).15 E F2(n)5.415 E F0 .055(must be)2.795 F/F5 10/Symbol SF<b3>2.555
+E F0(1.)2.555 E(If)144 722.4 Q F2(n)3.075 E F0 .215(is greater than the\
+ number of enclosing loops, all enclosing loops are e)2.955 F 2.714
+(xited. The)-.15 F .214(return v)2.714 F(alue)-.25 E(GNU Bash 5.2)72 768
+Q(2022 September 19)135.955 E(60)185.115 E 0 Cg EP
+%%Page: 61 61
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(is 0 unless)144 84
+Q/F1 10/Times-Italic@0 SF(n)2.5 E F0(is not greater than or equal to 1.)
+2.5 E/F2 10/Times-Bold@0 SF -.2(bu)108 100.8 S(iltin).2 E F1(shell\255b)
+2.5 E(uiltin)-.2 E F0([)2.5 E F1(ar)A(guments)-.37 E F0(])A(Ex)144 112.8
+Q .77(ecute the speci\214ed shell b)-.15 F .77(uiltin, passing it)-.2 F
+F1(ar)3.601 E(guments)-.37 E F0 3.271(,a).27 G .771(nd return its e)
+-3.271 F .771(xit status.)-.15 F .771(This is useful)5.771 F .616
(when de\214ning a function whose name is the same as a shell b)144
-302.4 R .616(uiltin, retaining the functionality of)-.2 F .57(the b)144
-314.4 R .57(uiltin within the function.)-.2 F(The)5.57 E F1(cd)3.07 E F0
+124.8 R .615(uiltin, retaining the functionality of)-.2 F .57(the b)144
+136.8 R .57(uiltin within the function.)-.2 F(The)5.57 E F2(cd)3.07 E F0
-.2(bu)3.07 G .57(iltin is commonly rede\214ned this w).2 F(ay)-.1 E
-5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 326.4 Q(alse if)-.1
-E F2(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E
-(uiltin command.)-.2 E F1(caller)108 343.2 Q F0([)2.5 E F2 -.2(ex)C(pr)
-.2 E F0(])A .253(Returns the conte)144 355.2 R .254(xt of an)-.15 F
+5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 148.8 Q(alse if)-.1
+E F1(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E
+(uiltin command.)-.2 E F2(caller)108 165.6 Q F0([)2.5 E F1 -.2(ex)C(pr)
+.2 E F0(])A .254(Returns the conte)144 177.6 R .254(xt of an)-.15 F
2.754(ya)-.15 G(cti)-2.754 E .554 -.15(ve s)-.25 H .254
(ubroutine call \(a shell function or a script e).15 F -.15(xe)-.15 G
-.254(cuted with the).15 F F1(.)2.754 E F0(or)2.754 E F1(sour)144 367.2 Q
-(ce)-.18 E F0 -.2(bu)2.825 G 2.825(iltins\). W).2 F(ithout)-.4 E F2 -.2
-(ex)2.825 G(pr).2 E F0(,)A F1(caller)2.825 E F0 .324
+.254(cuted with the).15 F F2(.)2.753 E F0(or)2.753 E F2(sour)144 189.6 Q
+(ce)-.18 E F0 -.2(bu)2.824 G 2.824(iltins\). W).2 F(ithout)-.4 E F1 -.2
+(ex)2.824 G(pr).2 E F0(,)A F2(caller)2.824 E F0 .324
(displays the line number and source \214lename of the current)2.824 F
-.253(subroutine call.)144 379.2 R .253(If a non-ne)5.253 F -.05(ga)-.15
-G(ti).05 E .553 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15
-F F2 -.2(ex)2.753 G(pr).2 E F0(,)A F1(caller)2.753 E F0 .254
-(displays the line number)2.754 F 2.754(,s)-.4 G(ub-)-2.754 E 1.327(rou\
+.254(subroutine call.)144 201.6 R .254(If a non-ne)5.254 F -.05(ga)-.15
+G(ti).05 E .554 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15
+F F1 -.2(ex)2.753 G(pr).2 E F0(,)A F2(caller)2.753 E F0 .253
+(displays the line number)2.753 F 2.753(,s)-.4 G(ub-)-2.753 E 1.327(rou\
tine name, and source \214le corresponding to that position in the curr\
-ent e)144 391.2 R -.15(xe)-.15 G 1.327(cution call stack.).15 F(This e)
-144 403.2 Q(xtra information may be used, for e)-.15 E .001
-(xample, to print a stack trace.)-.15 F .001(The current frame is frame)
-5.001 F 3.02(0. The)144 415.2 R .52(return v)3.02 F .52
-(alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .519
-(cuting a subroutine call or).15 F F2 -.2(ex)3.019 G(pr).2 E F0 .519
-(does not corre-)3.019 F(spond to a v)144 427.2 Q
-(alid position in the call stack.)-.25 E F1(cd)108 444 Q F0([)2.5 E F1
-<ad4c>A F0(|[)A F1<ad50>A F0([)2.5 E F1<ad65>A F0(]] [\255@]] [)A F2
-(dir)A F0(])A .321(Change the current directory to)144 456 R F2(dir)
-2.821 E F0 5.321(.i)C(f)-5.321 E F2(dir)2.821 E F0 .322
-(is not supplied, the v)2.821 F .322(alue of the)-.25 F F3(HOME)2.822 E
-F0 .322(shell v)2.572 F .322(ariable is)-.25 F 1.036(the def)144 468 R
-3.536(ault. An)-.1 F 3.536(ya)-.15 G 1.035(dditional ar)-3.536 F 1.035
-(guments follo)-.18 F(wing)-.25 E F2(dir)3.535 E F0 1.035(are ignored.)
-3.535 F 1.035(The v)6.035 F(ariable)-.25 E F3(CDP)3.535 E -.855(AT)-.666
-G(H).855 E F0(de\214nes)3.285 E .826
-(the search path for the directory containing)144 480 R F2(dir)3.676 E
-F0 3.326(:e).73 G .826(ach directory name in)-3.326 F F3(CDP)3.326 E
--.855(AT)-.666 G(H).855 E F0 .827(is searched for)3.077 F F2(dir)144 492
-Q F0 5.665(.A)C(lternati)-5.665 E .965 -.15(ve d)-.25 H .665
-(irectory names in).15 F F3(CDP)3.165 E -.855(AT)-.666 G(H).855 E F0
-.665(are separated by a colon \(:\).)2.915 F 3.165(An)5.665 G .664
-(ull directory name)-3.165 F(in)144 504 Q F3(CDP)3.101 E -.855(AT)-.666
-G(H).855 E F0 .601(is the same as the current directory)2.851 F 3.102
-(,i)-.65 G .602(.e., `)-3.102 F(`)-.74 E F1(.)A F0 -.74('')C 5.602(.I)
-.74 G(f)-5.602 E F2(dir)3.452 E F0(be)3.832 E .602
-(gins with a slash \(/\), then)-.15 F F3(CD-)3.102 E -.666(PA)144 516 S
-(TH)-.189 E F0 1.003(is not used.)3.254 F(The)6.003 E F1<ad50>3.503 E F0
-1.003(option causes)3.503 F F1(cd)3.503 E F0 1.003(to use the ph)3.503 F
-1.003(ysical directory structure by resolving)-.05 F .123
-(symbolic links while tra)144 528 R -.15(ve)-.2 G(rsing).15 E F2(dir)
-2.623 E F0 .123(and before processing instances of)2.623 F F2(..)2.623 E
-F0(in)2.623 E F2(dir)2.623 E F0 .123(\(see also the)2.623 F F1<ad50>
-2.623 E F0(op-)2.623 E .43(tion to the)144 540 R F1(set)2.93 E F0 -.2
-(bu)2.93 G .43(iltin command\); the).2 F F1<ad4c>2.929 E F0 .429
-(option forces symbolic links to be follo)2.929 F .429(wed by resolving)
--.25 F .472(the link after processing instances of)144 552 R F2(..)2.972
-E F0(in)2.972 E F2(dir)2.973 E F0 5.473(.I)C(f)-5.473 E F2(..)2.973 E F0
-.473(appears in)2.973 F F2(dir)2.973 E F0 2.973(,i)C 2.973(ti)-2.973 G
-2.973(sp)-2.973 G .473(rocessed by remo)-2.973 F .473(ving the)-.15 F
-.948(immediately pre)144 564 R .948(vious pathname component from)-.25 F
-F2(dir)3.448 E F0 3.448(,b)C .948(ack to a slash or the be)-3.448 F .948
-(ginning of)-.15 F F2(dir)3.448 E F0 5.948(.I)C(f)-5.948 E(the)144 576 Q
-F1<ad65>2.868 E F0 .368(option is supplied with)2.868 F F1<ad50>2.868 E
-F0 2.868(,a)C .368(nd the current w)-2.868 F .368
-(orking directory cannot be successfully deter)-.1 F(-)-.2 E .612
-(mined after a successful directory change,)144 588 R F1(cd)3.112 E F0
-.612(will return an unsuccessful status.)3.112 F .612(On systems that)
-5.612 F .353(support it, the)144 600 R F1<ad40>2.853 E F0 .354
-(option presents the e)2.853 F .354(xtended attrib)-.15 F .354
-(utes associated with a \214le as a directory)-.2 F 5.354(.A)-.65 G(n)
--5.354 E(ar)144 612 Q .072(gument of)-.18 F F1<ad>2.572 E F0 .072
-(is con)2.572 F -.15(ve)-.4 G .072(rted to).15 F F3($OLDPWD)2.572 E F0
-.072(before the directory change is attempted.)2.322 F .072
-(If a non-empty)5.072 F .054(directory name from)144 624 R F3(CDP)2.554
-E -.855(AT)-.666 G(H).855 E F0 .054(is used, or if)2.304 F F1<ad>2.555 E
-F0 .055(is the \214rst ar)2.555 F .055
-(gument, and the directory change is suc-)-.18 F .168
-(cessful, the absolute pathname of the ne)144 636 R 2.668(ww)-.25 G .168
-(orking directory is written to the standard output.)-2.768 F(The)5.168
-E(return v)144 648 Q(alue is true if the directory w)-.25 E
-(as successfully changed; f)-.1 E(alse otherwise.)-.1 E F1(command)108
-664.8 Q F0([)2.5 E F1(\255pVv)A F0(])A F2(command)2.5 E F0([)2.5 E F2
-(ar)A(g)-.37 E F0(...])2.5 E(Run)144 676.8 Q F2(command)2.764 E F0(with)
-3.334 E F2(ar)2.894 E(gs)-.37 E F0 .065
-(suppressing the normal shell function lookup.)2.834 F .065(Only b)5.065
-F .065(uiltin commands or)-.2 F .502(commands found in the)144 688.8 R
-F3 -.666(PA)3.002 G(TH)-.189 E F0 .502(are e)2.752 F -.15(xe)-.15 G
-3.002(cuted. If).15 F(the)3.002 E F1<ad70>3.002 E F0 .502(option is gi)
-3.002 F -.15(ve)-.25 G .501(n, the search for).15 F F2(command)3.201 E
-F0(is)3.771 E .399(performed using a def)144 700.8 R .399(ault v)-.1 F
-.399(alue for)-.25 F F3 -.666(PA)2.899 G(TH)-.189 E F0 .4
+ent e)144 213.6 R -.15(xe)-.15 G 1.328(cution call stack.).15 F .001
+(This e)144 225.6 R .001(xtra information may be used, for e)-.15 F .001
+(xample, to print a stack trace.)-.15 F(The current frame is frame)5 E
+3.019(0. The)144 237.6 R .519(return v)3.019 F .519
+(alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .52
+(cuting a subroutine call or).15 F F1 -.2(ex)3.02 G(pr).2 E F0 .52
+(does not corre-)3.02 F(spond to a v)144 249.6 Q
+(alid position in the call stack.)-.25 E F2(cd)108 266.4 Q F0([)2.5 E F2
+<ad4c>A F0(|[)A F2<ad50>A F0([)2.5 E F2<ad65>A F0(]] [\255@]] [)A F1
+(dir)A F0(])A .322(Change the current directory to)144 278.4 R F1(dir)
+2.822 E F0 5.322(.i)C(f)-5.322 E F1(dir)2.822 E F0 .321
+(is not supplied, the v)2.822 F .321(alue of the)-.25 F/F3 9
+/Times-Bold@0 SF(HOME)2.821 E F0 .321(shell v)2.571 F .321(ariable is)
+-.25 F .929(the def)144 290.4 R 3.429(ault. The)-.1 F -.25(va)3.429 G
+(riable).25 E F3(CDP)3.429 E -.855(AT)-.666 G(H).855 E F0 .93
+(de\214nes the search path for the directory containing)3.179 F F1(dir)
+3.78 E F0 3.43(:e).73 G(ach)-3.43 E .407(directory name in)144 302.4 R
+F3(CDP)2.907 E -.855(AT)-.666 G(H).855 E F0 .407(is searched for)2.657 F
+F1(dir)2.907 E F0 5.407(.A)C(lternati)-5.407 E .707 -.15(ve d)-.25 H
+.407(irectory names in).15 F F3(CDP)2.907 E -.855(AT)-.666 G(H).855 E F0
+.406(are sepa-)2.656 F .799(rated by a colon \(:\).)144 314.4 R 3.299
+(An)5.799 G .799(ull directory name in)-3.299 F F3(CDP)3.299 E -.855(AT)
+-.666 G(H).855 E F0 .799(is the same as the current directory)3.049 F
+3.3(,i)-.65 G(.e.,)-3.3 E -.74(``)144 326.4 S F2(.).74 E F0 -.74('')C
+5.428(.I).74 G(f)-5.428 E F1(dir)3.278 E F0(be)3.658 E .428
+(gins with a slash \(/\), then)-.15 F F3(CDP)2.928 E -.855(AT)-.666 G(H)
+.855 E F0 .428(is not used.)2.678 F(The)5.428 E F2<ad50>2.927 E F0 .427
+(option causes)2.927 F F2(cd)2.927 E F0 .427(to use the)2.927 F(ph)144
+338.4 Q .167
+(ysical directory structure by resolving symbolic links while tra)-.05 F
+-.15(ve)-.2 G(rsing).15 E F1(dir)2.668 E F0 .168(and before processing)
+2.668 F 1.225(instances of)144 350.4 R F1(..)3.725 E F0(in)3.725 E F1
+(dir)3.725 E F0 1.225(\(see also the)3.725 F F2<ad50>3.725 E F0 1.225
+(option to the)3.725 F F2(set)3.725 E F0 -.2(bu)3.725 G 1.225
+(iltin command\); the).2 F F2<ad4c>3.725 E F0 1.225(option forces)3.725
+F .411(symbolic links to be follo)144 362.4 R .411
+(wed by resolving the link after processing instances of)-.25 F F1(..)
+2.911 E F0(in)2.911 E F1(dir)2.911 E F0 5.411(.I)C(f)-5.411 E F1(..)
+2.912 E F0(ap-)2.912 E .341(pears in)144 374.4 R F1(dir)2.841 E F0 2.841
+(,i)C 2.841(ti)-2.841 G 2.841(sp)-2.841 G .341(rocessed by remo)-2.841 F
+.341(ving the immediately pre)-.15 F .34(vious pathname component from)
+-.25 F F1(dir)2.84 E F0(,)A .175(back to a slash or the be)144 386.4 R
+.175(ginning of)-.15 F F1(dir)2.675 E F0 5.175(.I)C 2.675(ft)-5.175 G
+(he)-2.675 E F2<ad65>2.676 E F0 .176(option is supplied with)2.676 F F2
+<ad50>2.676 E F0 2.676(,a)C .176(nd the current w)-2.676 F(ork-)-.1 E
+.341(ing directory cannot be successfully determined after a successful\
+ directory change,)144 398.4 R F2(cd)2.84 E F0 .34(will return)2.84 F
+.356(an unsuccessful status.)144 410.4 R .356
+(On systems that support it, the)5.356 F F2<ad40>2.857 E F0 .357
+(option presents the e)2.857 F .357(xtended attrib)-.15 F(utes)-.2 E .07
+(associated with a \214le as a directory)144 422.4 R 5.07(.A)-.65 G
+2.569(na)-5.07 G -.18(rg)-2.569 G .069(ument of).18 F F2<ad>2.569 E F0
+.069(is con)2.569 F -.15(ve)-.4 G .069(rted to).15 F F3($OLDPWD)2.569 E
+F0 .069(before the direc-)2.319 F .306(tory change is attempted.)144
+434.4 R .306(If a non-empty directory name from)5.306 F F3(CDP)2.806 E
+-.855(AT)-.666 G(H).855 E F0 .306(is used, or if)2.556 F F2<ad>2.807 E
+F0 .307(is the \214rst)2.807 F(ar)144 446.4 Q .116(gument, and the dire\
+ctory change is successful, the absolute pathname of the ne)-.18 F 2.615
+(ww)-.25 G .115(orking direc-)-2.715 F .15
+(tory is written to the standard output.)144 458.4 R .15
+(If the directory change is successful,)5.15 F F2(cd)2.65 E F0 .15
+(sets the v)2.65 F .15(alue of the)-.25 F F2(PWD)144 470.4 Q F0(en)2.958
+E .458(vironment v)-.4 F .458(ariable to the ne)-.25 F 2.958(wd)-.25 G
+.458(irectory name, and sets the)-2.958 F F2(OLDPWD)2.957 E F0(en)2.957
+E .457(vironment v)-.4 F(ari-)-.25 E .125(able to the v)144 482.4 R .125
+(alue of the current w)-.25 F .126(orking directory before the change.)
+-.1 F .126(The return v)5.126 F .126(alue is true if the)-.25 F
+(directory w)144 494.4 Q(as successfully changed; f)-.1 E
+(alse otherwise.)-.1 E F2(command)108 511.2 Q F0([)2.5 E F2(\255pVv)A F0
+(])A F1(command)2.5 E F0([)2.5 E F1(ar)A(g)-.37 E F0(...])2.5 E(Run)144
+523.2 Q F1(command)2.765 E F0(with)3.335 E F1(ar)2.895 E(gs)-.37 E F0
+.065(suppressing the normal shell function lookup.)2.835 F .064(Only b)
+5.064 F .064(uiltin commands or)-.2 F .501(commands found in the)144
+535.2 R F3 -.666(PA)3.001 G(TH)-.189 E F0 .502(are e)2.751 F -.15(xe)
+-.15 G 3.002(cuted. If).15 F(the)3.002 E F2<ad70>3.002 E F0 .502
+(option is gi)3.002 F -.15(ve)-.25 G .502(n, the search for).15 F F1
+(command)3.202 E F0(is)3.772 E .4(performed using a def)144 547.2 R .4
+(ault v)-.1 F .4(alue for)-.25 F F3 -.666(PA)2.9 G(TH)-.189 E F0 .399
(that is guaranteed to \214nd all of the standard utilities.)2.649 F(If)
-5.4 E .175(either the)144 712.8 R F1<ad56>2.675 E F0(or)2.675 E F1<ad76>
-2.675 E F0 .175(option is supplied, a description of)2.675 F F2(command)
-2.875 E F0 .174(is printed.)3.445 F(The)5.174 E F1<ad76>2.674 E F0 .174
-(option causes)2.674 F 3.317(as)144 724.8 S .817(ingle w)-3.317 F .817
-(ord indicating the command or \214lename used to in)-.1 F -.2(vo)-.4 G
--.1(ke).2 G F2(command)3.618 E F0 .818(to be displayed; the)4.088 F
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(58)190.395 E 0 Cg EP
-%%Page: 59 59
+5.399 E .174(either the)144 559.2 R F2<ad56>2.674 E F0(or)2.674 E F2
+<ad76>2.674 E F0 .175(option is supplied, a description of)2.674 F F1
+(command)2.875 E F0 .175(is printed.)3.445 F(The)5.175 E F2<ad76>2.675 E
+F0 .175(option causes)2.675 F 3.318(as)144 571.2 S .818(ingle w)-3.318 F
+.817(ord indicating the command or \214lename used to in)-.1 F -.2(vo)
+-.4 G -.1(ke).2 G F1(command)3.617 E F0 .817(to be displayed; the)4.087
+F F2<ad56>144 583.2 Q F0 .249(option produces a more v)2.749 F .249
+(erbose description.)-.15 F .249(If the)5.249 F F2<ad56>2.749 E F0(or)
+2.749 E F2<ad76>2.75 E F0 .25(option is supplied, the e)2.75 F .25
+(xit status)-.15 F 1.005(is 0 if)144 595.2 R F1(command)3.705 E F0 -.1
+(wa)4.275 G 3.505(sf).1 G 1.005(ound, and 1 if not.)-3.505 F 1.004
+(If neither option is supplied and an error occurred or)6.005 F F1
+(command)144.2 607.2 Q F0 1.598(cannot be found, the e)4.868 F 1.599
+(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.599
+(xit status of the)-.15 F F2(command)4.099 E F0 -.2(bu)144 619.2 S
+(iltin is the e).2 E(xit status of)-.15 E F1(command)2.7 E F0(.).77 E F2
+(compgen)108 636 Q F0([)2.5 E F1(option)A F0 2.5(][)C F1(wor)-2.5 E(d)
+-.37 E F0(])A .013(Generate possible completion matches for)144 648 R F1
+(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F1(option)2.513 E
+F0 .013(s, which may be an)B 2.512(yo)-.15 G(ption)-2.512 E .981
+(accepted by the)144 660 R F2(complete)3.481 E F0 -.2(bu)3.481 G .981
+(iltin with the e).2 F .981(xception of)-.15 F F2<ad70>3.481 E F0(and)
+3.481 E F2<ad72>3.481 E F0 3.481(,a)C .982(nd write the matches to the)
+-3.481 F .131(standard output.)144 672 R .131(When using the)5.131 F F2
+<ad46>2.631 E F0(or)2.631 E F2<ad43>2.631 E F0 .131(options, the v)2.631
+F .13(arious shell v)-.25 F .13(ariables set by the program-)-.25 F
+(mable completion f)144 684 Q(acilities, while a)-.1 E -.25(va)-.2 G
+(ilable, will not ha).25 E .3 -.15(ve u)-.2 H(seful v).15 E(alues.)-.25
+E .352(The matches will be generated in the same w)144 708 R .352
+(ay as if the programmable completion code had gen-)-.1 F .02(erated th\
+em directly from a completion speci\214cation with the same \215ags.)144
+720 R(If)5.02 E F1(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)2.52
+F(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(61)185.115 E 0 Cg EP
+%%Page: 62 62
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF<ad56>144 84 Q F0 .25(option produces a more v)2.75 F .25
-(erbose description.)-.15 F .249(If the)5.25 F F1<ad56>2.749 E F0(or)
-2.749 E F1<ad76>2.749 E F0 .249(option is supplied, the e)2.749 F .249
-(xit status)-.15 F 1.004(is 0 if)144 96 R/F2 10/Times-Italic@0 SF
-(command)3.704 E F0 -.1(wa)4.274 G 3.504(sf).1 G 1.005
-(ound, and 1 if not.)-3.504 F 1.005
-(If neither option is supplied and an error occurred or)6.005 F F2
-(command)144.2 108 Q F0 1.599(cannot be found, the e)4.869 F 1.599
-(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.598
-(xit status of the)-.15 F F1(command)4.098 E F0 -.2(bu)144 120 S
-(iltin is the e).2 E(xit status of)-.15 E F2(command)2.7 E F0(.).77 E F1
-(compgen)108 136.8 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(wor)-2.5 E(d)
--.37 E F0(])A .012(Generate possible completion matches for)144 148.8 R
-F2(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F2(option)2.513
-E F0 .013(s, which may be an)B 2.513(yo)-.15 G(ption)-2.513 E .982
-(accepted by the)144 160.8 R F1(complete)3.482 E F0 -.2(bu)3.481 G .981
-(iltin with the e).2 F .981(xception of)-.15 F F1<ad70>3.481 E F0(and)
-3.481 E F1<ad72>3.481 E F0 3.481(,a)C .981(nd write the matches to the)
--3.481 F .13(standard output.)144 172.8 R .13(When using the)5.13 F F1
-<ad46>2.63 E F0(or)2.63 E F1<ad43>2.631 E F0 .131(options, the v)2.631 F
-.131(arious shell v)-.25 F .131(ariables set by the program-)-.25 F
-(mable completion f)144 184.8 Q(acilities, while a)-.1 E -.25(va)-.2 G
-(ilable, will not ha).25 E .3 -.15(ve u)-.2 H(seful v).15 E(alues.)-.25
-E .352(The matches will be generated in the same w)144 208.8 R .352
-(ay as if the programmable completion code had gen-)-.1 F .02(erated th\
-em directly from a completion speci\214cation with the same \215ags.)144
-220.8 R(If)5.02 E F2(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)
-2.52 F(those completions matching)144 232.8 Q F2(wor)2.5 E(d)-.37 E F0
-(will be displayed.)2.5 E(The return v)144 256.8 Q
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E
+(those completions matching)144 84 Q/F1 10/Times-Italic@0 SF(wor)2.5 E
+(d)-.37 E F0(will be displayed.)2.5 E(The return v)144 108 Q
(alue is true unless an in)-.25 E -.25(va)-.4 G
-(lid option is supplied, or no matches were generated.).25 E F1
-(complete)108 273.6 Q F0([)2.5 E F1(\255abcdefgjksuv)A F0 2.5(][)C F1
-<ad6f>-2.5 E F2(comp-option)2.5 E F0 2.5(][)C F1(\255DEI)-2.5 E F0 2.5
-(][)C F1<ad41>-2.5 E F2(action)2.5 E F0 2.5(][)C F1<ad47>-2.5 E F2
-(globpat)2.5 E F0 2.5(][)C F1<ad57>-2.5 E F2(wor)2.5 E(dlist)-.37 E F0
-(])A([)144 285.6 Q F1<ad46>A F2(function)2.5 E F0 2.5(][)C F1<ad43>-2.5
-E F2(command)2.5 E F0 2.5(][)C F1<ad58>-2.5 E F2(\214lterpat)2.5 E F0
-2.5(][)C F1<ad50>-2.5 E F2(pr)2.5 E(e\214x)-.37 E F0 2.5(][)C F1<ad53>
--2.5 E F2(suf)2.5 E<8c78>-.18 E F0(])A F2(name)2.5 E F0([)2.5 E F2
-(name ...)A F0(])A F1(complete \255pr)108 297.6 Q F0([)2.5 E F1(\255DEI)
-A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .634(Specify ho)144 309.6 R
-3.134(wa)-.25 G -.18(rg)-3.134 G .634(uments to each).18 F F2(name)3.134
-E F0 .634(should be completed.)3.134 F .633(If the)5.634 F F1<ad70>3.133
-E F0 .633(option is supplied, or if no)3.133 F .139
-(options are supplied, e)144 321.6 R .139
-(xisting completion speci\214cations are printed in a w)-.15 F .14
-(ay that allo)-.1 F .14(ws them to be)-.25 F .31(reused as input.)144
-333.6 R(The)5.31 E F1<ad72>2.81 E F0 .31(option remo)2.81 F -.15(ve)-.15
-G 2.81(sac).15 G .31(ompletion speci\214cation for each)-2.81 F F2(name)
-2.81 E F0 2.81(,o)C 1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E F2
-(name)2.81 E F0(s)A 1.207
-(are supplied, all completion speci\214cations.)144 345.6 R(The)6.207 E
-F1<ad44>3.707 E F0 1.208(option indicates that other supplied options)
-3.708 F .5(and actions should apply to the `)144 357.6 R(`def)-.74 E
+(lid option is supplied, or no matches were generated.).25 E/F2 10
+/Times-Bold@0 SF(complete)108 124.8 Q F0([)2.5 E F2(\255abcdefgjksuv)A
+F0 2.5(][)C F2<ad6f>-2.5 E F1(comp-option)2.5 E F0 2.5(][)C F2(\255DEI)
+-2.5 E F0 2.5(][)C F2<ad41>-2.5 E F1(action)2.5 E F0 2.5(][)C F2<ad47>
+-2.5 E F1(globpat)2.5 E F0 2.5(][)C F2<ad57>-2.5 E F1(wor)2.5 E(dlist)
+-.37 E F0(])A([)144 136.8 Q F2<ad46>A F1(function)2.5 E F0 2.5(][)C F2
+<ad43>-2.5 E F1(command)2.5 E F0 2.5(][)C F2<ad58>-2.5 E F1(\214lterpat)
+2.5 E F0 2.5(][)C F2<ad50>-2.5 E F1(pr)2.5 E(e\214x)-.37 E F0 2.5(][)C
+F2<ad53>-2.5 E F1(suf)2.5 E<8c78>-.18 E F0(])A F1(name)2.5 E F0([)2.5 E
+F1(name ...)A F0(])A F2(complete \255pr)108 148.8 Q F0([)2.5 E F2
+(\255DEI)A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E .633(Specify ho)144
+160.8 R 3.133(wa)-.25 G -.18(rg)-3.133 G .633(uments to each).18 F F1
+(name)3.133 E F0 .633(should be completed.)3.133 F .634(If the)5.634 F
+F2<ad70>3.134 E F0 .634(option is supplied, or if no)3.134 F .14
+(options are supplied, e)144 172.8 R .139
+(xisting completion speci\214cations are printed in a w)-.15 F .139
+(ay that allo)-.1 F .139(ws them to be)-.25 F .31(reused as input.)144
+184.8 R(The)5.31 E F2<ad72>2.81 E F0 .31(option remo)2.81 F -.15(ve)-.15
+G 2.81(sac).15 G .31(ompletion speci\214cation for each)-2.81 F F1(name)
+2.81 E F0 2.81(,o)C 1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E F1
+(name)2.81 E F0(s)A 1.208
+(are supplied, all completion speci\214cations.)144 196.8 R(The)6.208 E
+F2<ad44>3.708 E F0 1.207(option indicates that other supplied options)
+3.707 F .5(and actions should apply to the `)144 208.8 R(`def)-.74 E
(ault')-.1 E 3('c)-.74 G .5
(ommand completion; that is, completion attempted on)-3 F 3.455(ac)144
-369.6 S .955(ommand for which no completion has pre)-3.455 F .955
-(viously been de\214ned.)-.25 F(The)5.955 E F1<ad45>3.455 E F0 .955
+220.8 S .955(ommand for which no completion has pre)-3.455 F .955
+(viously been de\214ned.)-.25 F(The)5.955 E F2<ad45>3.455 E F0 .955
(option indicates that)3.455 F .876
-(other supplied options and actions should apply to `)144 381.6 R
+(other supplied options and actions should apply to `)144 232.8 R
(`empty')-.74 E 3.376('c)-.74 G .876(ommand completion; that is, com-)
--3.376 F .447(pletion attempted on a blank line.)144 393.6 R(The)5.447 E
-F1<ad49>2.947 E F0 .448
+-3.376 F .448(pletion attempted on a blank line.)144 244.8 R(The)5.447 E
+F2<ad49>2.947 E F0 .447
(option indicates that other supplied options and actions)2.947 F .123
-(should apply to completion on the initial non-assignment w)144 405.6 R
-.123(ord on the line, or after a command de-)-.1 F 1.02(limiter such as)
-144 417.6 R F1(;)3.52 E F0(or)3.52 E F1(|)3.52 E F0 3.52(,w)C 1.021
-(hich is usually command name completion.)-3.52 F 1.021
-(If multiple options are sup-)6.021 F .708(plied, the)144 429.6 R F1
-<ad44>3.208 E F0 .708(option tak)3.208 F .708(es precedence o)-.1 F -.15
-(ve)-.15 G(r).15 E F1<ad45>3.208 E F0 3.208(,a)C .708(nd both tak)-3.208
-F 3.208(ep)-.1 G .707(recedence o)-3.208 F -.15(ve)-.15 G(r).15 E F1
-<ad49>3.207 E F0 5.707(.I)C 3.207(fa)-5.707 G 1.007 -.15(ny o)-3.207 H
-(f).15 E F1<ad44>3.207 E F0(,)A F1<ad45>144 441.6 Q F0 2.603(,o)C(r)
--2.603 E F1<ad49>2.603 E F0 .103(are supplied, an)2.603 F 2.603(yo)-.15
-G(ther)-2.603 E F2(name)2.603 E F0(ar)2.603 E .103
+(should apply to completion on the initial non-assignment w)144 256.8 R
+.123(ord on the line, or after a command de-)-.1 F 1.021
+(limiter such as)144 268.8 R F2(;)3.521 E F0(or)3.521 E F2(|)3.521 E F0
+3.521(,w)C 1.021(hich is usually command name completion.)-3.521 F 1.02
+(If multiple options are sup-)6.02 F .707(plied, the)144 280.8 R F2
+<ad44>3.207 E F0 .707(option tak)3.207 F .707(es precedence o)-.1 F -.15
+(ve)-.15 G(r).15 E F2<ad45>3.208 E F0 3.208(,a)C .708(nd both tak)-3.208
+F 3.208(ep)-.1 G .708(recedence o)-3.208 F -.15(ve)-.15 G(r).15 E F2
+<ad49>3.208 E F0 5.708(.I)C 3.208(fa)-5.708 G 1.008 -.15(ny o)-3.208 H
+(f).15 E F2<ad44>3.208 E F0(,)A F2<ad45>144 292.8 Q F0 2.604(,o)C(r)
+-2.604 E F2<ad49>2.604 E F0 .103(are supplied, an)2.603 F 2.603(yo)-.15
+G(ther)-2.603 E F1(name)2.603 E F0(ar)2.603 E .103
(guments are ignored; these completions only apply to the)-.18 F
-(case speci\214ed by the option.)144 453.6 Q .153
+(case speci\214ed by the option.)144 304.8 Q .152
(The process of applying these completion speci\214cations when w)144
-477.6 R .152(ord completion is attempted is de-)-.1 F(scribed abo)144
-489.6 Q .3 -.15(ve u)-.15 H(nder).15 E F1(Pr)2.5 E
-(ogrammable Completion)-.18 E F0(.)A .555
-(Other options, if speci\214ed, ha)144 513.6 R .855 -.15(ve t)-.2 H .555
+328.8 R .153(ord completion is attempted is de-)-.1 F(scribed abo)144
+340.8 Q .3 -.15(ve u)-.15 H(nder).15 E F2(Pr)2.5 E
+(ogrammable Completion)-.18 E F0(.)A .556
+(Other options, if speci\214ed, ha)144 364.8 R .856 -.15(ve t)-.2 H .555
(he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F .555
-(guments to the)-.18 F F1<ad47>3.056 E F0(,)A F1<ad57>3.056 E F0 3.056
-(,a)C(nd)-3.056 E F1<ad58>3.056 E F0 .723(options \(and, if necessary)
-144 525.6 R 3.223(,t)-.65 G(he)-3.223 E F1<ad50>3.223 E F0(and)3.223 E
-F1<ad53>3.223 E F0 .722
-(options\) should be quoted to protect them from e)3.223 F(xpan-)-.15 E
-(sion before the)144 537.6 Q F1(complete)2.5 E F0 -.2(bu)2.5 G
-(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1<ad6f>144 549.6 Q
-F2(comp-option)2.5 E F0(The)184 561.6 Q F2(comp-option)2.79 E F0 .291
+(guments to the)-.18 F F2<ad47>3.055 E F0(,)A F2<ad57>3.055 E F0 3.055
+(,a)C(nd)-3.055 E F2<ad58>3.055 E F0 .722(options \(and, if necessary)
+144 376.8 R 3.222(,t)-.65 G(he)-3.222 E F2<ad50>3.222 E F0(and)3.222 E
+F2<ad53>3.222 E F0 .723
+(options\) should be quoted to protect them from e)3.222 F(xpan-)-.15 E
+(sion before the)144 388.8 Q F2(complete)2.5 E F0 -.2(bu)2.5 G
+(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F2<ad6f>144 400.8 Q
+F1(comp-option)2.5 E F0(The)184 412.8 Q F1(comp-option)2.791 E F0 .291
(controls se)2.791 F -.15(ve)-.25 G .291(ral aspects of the compspec')
.15 F 2.791(sb)-.55 G(eha)-2.791 E .291(vior be)-.2 F .291
-(yond the simple)-.15 F(generation of completions.)184 573.6 Q F2
-(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 585.6 Q F0
-.281(Perform the rest of the def)224 597.6 R(ault)-.1 E F1(bash)2.781 E
+(yond the simple)-.15 F(generation of completions.)184 424.8 Q F1
+(comp-option)5 E F0(may be one of:)2.5 E F2(bashdefault)184 436.8 Q F0
+.281(Perform the rest of the def)224 448.8 R(ault)-.1 E F2(bash)2.781 E
F0 .281(completions if the compspec generates no)2.781 F(matches.)224
-609.6 Q F1(default)184 621.6 Q F0 2.875(Use readline')224 621.6 R 5.375
-(sd)-.55 G(ef)-5.375 E 2.876
+460.8 Q F2(default)184 472.8 Q F0 2.876(Use readline')224 472.8 R 5.376
+(sd)-.55 G(ef)-5.376 E 2.875
(ault \214lename completion if the compspec generates no)-.1 F(matches.)
-224 633.6 Q F1(dir)184 645.6 Q(names)-.15 E F0(Perform directory name c\
-ompletion if the compspec generates no matches.)224 657.6 Q F1
-(\214lenames)184 669.6 Q F0 -.7(Te)224 681.6 S .137(ll readline that th\
-e compspec generates \214lenames, so it can perform an).7 F 2.636<798c>
--.15 G(le-)-2.636 E .134(name\255speci\214c processing \(lik)224 693.6 R
+224 484.8 Q F2(dir)184 496.8 Q(names)-.15 E F0(Perform directory name c\
+ompletion if the compspec generates no matches.)224 508.8 Q F2
+(\214lenames)184 520.8 Q F0 -.7(Te)224 532.8 S .137(ll readline that th\
+e compspec generates \214lenames, so it can perform an).7 F 2.637<798c>
+-.15 G(le-)-2.637 E .134(name\255speci\214c processing \(lik)224 544.8 R
2.634(ea)-.1 G .134(dding a slash to directory names, quoting spe-)
-2.634 F .45(cial characters, or suppressing trailing spaces\).)224
-705.6 R .45(Intended to be used with shell)5.45 F(functions.)224 717.6 Q
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(59)190.395 E 0 Cg EP
-%%Page: 60 60
+556.8 R .45(Intended to be used with shell)5.45 F(functions.)224 568.8 Q
+F2(noquote)184 580.8 Q F0 -.7(Te)224 580.8 S .814
+(ll readline not to quote the completed w).7 F .814(ords if the)-.1 F
+3.314(ya)-.15 G .814(re \214lenames \(quoting)-3.314 F
+(\214lenames is the def)224 592.8 Q(ault\).)-.1 E F2(nosort)184 604.8 Q
+F0 -.7(Te)224 604.8 S(ll readline not to sort the list of possible comp\
+letions alphabetically).7 E(.)-.65 E F2(nospace)184 616.8 Q F0 -.7(Te)
+224 616.8 S .22(ll readline not to append a space \(the def).7 F .22
+(ault\) to w)-.1 F .22(ords completed at the end)-.1 F(of the line.)224
+628.8 Q F2(plusdirs)184 640.8 Q F0 1.985(After an)224 640.8 R 4.485(ym)
+-.15 G 1.985
+(atches de\214ned by the compspec are generated, directory name)-4.485 F
+.583(completion is attempted and an)224 652.8 R 3.084(ym)-.15 G .584
+(atches are added to the results of the other)-3.084 F(actions.)224
+664.8 Q F2<ad41>144 676.8 Q F1(action)2.5 E F0(The)184 688.8 Q F1
+(action)2.5 E F0(may be one of the follo)2.5 E
+(wing to generate a list of possible completions:)-.25 E F2(alias)184
+700.8 Q F0(Alias names.)224 700.8 Q(May also be speci\214ed as)5 E F2
+<ad61>2.5 E F0(.)A(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(62)
+185.115 E 0 Cg EP
+%%Page: 63 63
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(noquote)184 84 Q F0 -.7(Te)224 84 S .814
-(ll readline not to quote the completed w).7 F .814(ords if the)-.1 F
-3.314(ya)-.15 G .815(re \214lenames \(quoting)-3.314 F
-(\214lenames is the def)224 96 Q(ault\).)-.1 E F1(nosort)184 108 Q F0
--.7(Te)224 108 S(ll readline not to sort the list of possible completio\
-ns alphabetically).7 E(.)-.65 E F1(nospace)184 120 Q F0 -.7(Te)224 120 S
-.22(ll readline not to append a space \(the def).7 F .22(ault\) to w)-.1
-F .22(ords completed at the end)-.1 F(of the line.)224 132 Q F1
-(plusdirs)184 144 Q F0 1.985(After an)224 144 R 4.485(ym)-.15 G 1.985
-(atches de\214ned by the compspec are generated, directory name)-4.485 F
-.584(completion is attempted and an)224 156 R 3.084(ym)-.15 G .584
-(atches are added to the results of the other)-3.084 F(actions.)224 168
-Q F1<ad41>144 180 Q/F2 10/Times-Italic@0 SF(action)2.5 E F0(The)184 192
-Q F2(action)2.5 E F0(may be one of the follo)2.5 E
-(wing to generate a list of possible completions:)-.25 E F1(alias)184
-204 Q F0(Alias names.)224 204 Q(May also be speci\214ed as)5 E F1<ad61>
-2.5 E F0(.)A F1(arrayv)184 216 Q(ar)-.1 E F0(Array v)224 228 Q
-(ariable names.)-.25 E F1(binding)184 240 Q(Readline)224 240 Q F0 -.1
-(ke)2.5 G 2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 252 S(iltin)
-.2 E F0(Names of shell b)224 252 Q(uiltin commands.)-.2 E
-(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 264
-Q F0(Command names.)224 276 Q(May also be speci\214ed as)5 E F1<ad63>2.5
-E F0(.)A F1(dir)184 288 Q(ectory)-.18 E F0(Directory names.)224 300 Q
-(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 312
-Q F0(Names of disabled shell b)224 324 Q(uiltins.)-.2 E F1(enabled)184
-336 Q F0(Names of enabled shell b)224 336 Q(uiltins.)-.2 E F1(export)184
-348 Q F0(Names of e)224 348 Q(xported shell v)-.15 E 2.5(ariables. May)
+SF(arrayv)184 84 Q(ar)-.1 E F0(Array v)224 96 Q(ariable names.)-.25 E F1
+(binding)184 108 Q(Readline)224 108 Q F0 -.1(ke)2.5 G 2.5(yb)-.05 G
+(inding names.)-2.5 E F1 -.2(bu)184 120 S(iltin).2 E F0
+(Names of shell b)224 120 Q(uiltin commands.)-.2 E
+(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 132
+Q F0(Command names.)224 144 Q(May also be speci\214ed as)5 E F1<ad63>2.5
+E F0(.)A F1(dir)184 156 Q(ectory)-.18 E F0(Directory names.)224 168 Q
+(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 180
+Q F0(Names of disabled shell b)224 192 Q(uiltins.)-.2 E F1(enabled)184
+204 Q F0(Names of enabled shell b)224 204 Q(uiltins.)-.2 E F1(export)184
+216 Q F0(Names of e)224 216 Q(xported shell v)-.15 E 2.5(ariables. May)
-.25 F(also be speci\214ed as)2.5 E F1<ad65>2.5 E F0(.)A F1(\214le)184
-360 Q F0(File names.)224 360 Q(May also be speci\214ed as)5 E F1<ad66>
-2.5 E F0(.)A F1(function)184 372 Q F0(Names of shell functions.)224 384
-Q F1(gr)184 396 Q(oup)-.18 E F0(Group names.)224 396 Q
+228 Q F0(File names.)224 228 Q(May also be speci\214ed as)5 E F1<ad66>
+2.5 E F0(.)A F1(function)184 240 Q F0(Names of shell functions.)224 252
+Q F1(gr)184 264 Q(oup)-.18 E F0(Group names.)224 264 Q
(May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)A F1(helptopic)184
-408 Q F0(Help topics as accepted by the)224 420 Q F1(help)2.5 E F0 -.2
-(bu)2.5 G(iltin.).2 E F1(hostname)184 432 Q F0(Hostnames, as tak)224 444
-Q(en from the \214le speci\214ed by the)-.1 E/F3 9/Times-Bold@0 SF
-(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 456 Q F0
-(Job names, if job control is acti)224 456 Q -.15(ve)-.25 G 5(.M).15 G
-(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1 -.1(ke)184 468 S
-(yw).1 E(ord)-.1 E F0(Shell reserv)224 480 Q(ed w)-.15 E 2.5(ords. May)
+276 Q F0(Help topics as accepted by the)224 288 Q F1(help)2.5 E F0 -.2
+(bu)2.5 G(iltin.).2 E F1(hostname)184 300 Q F0(Hostnames, as tak)224 312
+Q(en from the \214le speci\214ed by the)-.1 E/F2 9/Times-Bold@0 SF
+(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 324 Q F0
+(Job names, if job control is acti)224 324 Q -.15(ve)-.25 G 5(.M).15 G
+(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1 -.1(ke)184 336 S
+(yw).1 E(ord)-.1 E F0(Shell reserv)224 348 Q(ed w)-.15 E 2.5(ords. May)
-.1 F(also be speci\214ed as)2.5 E F1<ad6b>2.5 E F0(.)A F1(running)184
-492 Q F0(Names of running jobs, if job control is acti)224 492 Q -.15
-(ve)-.25 G(.).15 E F1(ser)184 504 Q(vice)-.1 E F0(Service names.)224 504
-Q(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 516
-Q F0 -1.11(Va)224 516 S(lid ar)1.11 E(guments for the)-.18 E F1<ad6f>2.5
+360 Q F0(Names of running jobs, if job control is acti)224 360 Q -.15
+(ve)-.25 G(.).15 E F1(ser)184 372 Q(vice)-.1 E F0(Service names.)224 372
+Q(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 384
+Q F0 -1.11(Va)224 384 S(lid ar)1.11 E(guments for the)-.18 E F1<ad6f>2.5
E F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1
-(shopt)184 528 Q F0(Shell option names as accepted by the)224 528 Q F1
-(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 540 Q F0
-(Signal names.)224 540 Q F1(stopped)184 552 Q F0
-(Names of stopped jobs, if job control is acti)224 552 Q -.15(ve)-.25 G
-(.).15 E F1(user)184 564 Q F0(User names.)224 564 Q
-(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 576 S
-(riable).1 E F0(Names of all shell v)224 576 Q 2.5(ariables. May)-.25 F
-(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad43>144 588 Q F2
-(command)2.5 E(command)184 600 Q F0 1.055(is e)3.555 F -.15(xe)-.15 G
-1.055(cuted in a subshell en).15 F 1.056
-(vironment, and its output is used as the possible)-.4 F(completions.)
-184 612 Q F1<ad46>144 624 Q F2(function)2.5 E F0 .114
-(The shell function)184 636 R F2(function)2.614 E F0 .114(is e)2.614 F
+(shopt)184 396 Q F0(Shell option names as accepted by the)224 396 Q F1
+(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 408 Q F0
+(Signal names.)224 408 Q F1(stopped)184 420 Q F0
+(Names of stopped jobs, if job control is acti)224 420 Q -.15(ve)-.25 G
+(.).15 E F1(user)184 432 Q F0(User names.)224 432 Q
+(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 444 S
+(riable).1 E F0(Names of all shell v)224 444 Q 2.5(ariables. May)-.25 F
+(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad43>144 456 Q/F3
+10/Times-Italic@0 SF(command)2.5 E(command)184 468 Q F0 1.056(is e)3.556
+F -.15(xe)-.15 G 1.056(cuted in a subshell en).15 F 1.056
+(vironment, and its output is used as the possible)-.4 F 2.5
+(completions. Ar)184 480 R(guments are passed as with the)-.18 E F1
+<ad46>2.5 E F0(option.)2.5 E F1<ad46>144 492 Q F3(function)2.5 E F0 .113
+(The shell function)184 504 R F3(function)2.614 E F0 .114(is e)2.614 F
-.15(xe)-.15 G .114(cuted in the current shell en).15 F 2.614
-(vironment. When)-.4 F .113(the func-)2.613 F .816(tion is e)184 648 R
--.15(xe)-.15 G .816(cuted, the \214rst ar).15 F .816(gument \()-.18 F F1
-($1)A F0 3.316(\)i)C 3.316(st)-3.316 G .817
+(vironment. When)-.4 F .114(the func-)2.614 F .817(tion is e)184 516 R
+-.15(xe)-.15 G .817(cuted, the \214rst ar).15 F .817(gument \()-.18 F F1
+($1)A F0 3.316(\)i)C 3.316(st)-3.316 G .816
(he name of the command whose ar)-3.316 F(guments)-.18 E 1.407
-(are being completed, the second ar)184 660 R 1.407(gument \()-.18 F F1
+(are being completed, the second ar)184 528 R 1.407(gument \()-.18 F F1
($2)A F0 3.907(\)i)C 3.907(st)-3.907 G 1.407(he w)-3.907 F 1.407
-(ord being completed, and the)-.1 F .103(third ar)184 672 R .103
-(gument \()-.18 F F1($3)A F0 2.603(\)i)C 2.603(st)-2.603 G .103(he w)
--2.603 F .104(ord preceding the w)-.1 F .104
-(ord being completed on the current com-)-.1 F .102(mand line.)184 684 R
-.102(When it \214nishes, the possible completions are retrie)5.102 F
--.15(ve)-.25 G 2.601(df).15 G .101(rom the v)-2.601 F .101(alue of the)
--.25 F F3(COMPREPL)184 696 Q(Y)-.828 E F0(array v)2.25 E(ariable.)-.25 E
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(60)190.395 E 0 Cg EP
-%%Page: 61 61
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF<ad47>144 84 Q/F2 10/Times-Italic@0 SF(globpat)2.5 E F0 1.007
-(The pathname e)184 96 R 1.007(xpansion pattern)-.15 F F2(globpat)3.507
-E F0 1.007(is e)3.507 F 1.008(xpanded to generate the possible comple-)
--.15 F(tions.)184 108 Q F1<ad50>144 120 Q F2(pr)2.5 E(e\214x)-.37 E(pr)
-184 132 Q(e\214x)-.37 E F0 .535(is added at the be)3.035 F .534
+(ord being completed, and the)-.1 F .104(third ar)184 540 R .104
+(gument \()-.18 F F1($3)A F0 2.604(\)i)C 2.604(st)-2.604 G .104(he w)
+-2.604 F .104(ord preceding the w)-.1 F .103
+(ord being completed on the current com-)-.1 F .101(mand line.)184 552 R
+.101(When it \214nishes, the possible completions are retrie)5.101 F
+-.15(ve)-.25 G 2.602(df).15 G .102(rom the v)-2.602 F .102(alue of the)
+-.25 F F2(COMPREPL)184 564 Q(Y)-.828 E F0(array v)2.25 E(ariable.)-.25 E
+F1<ad47>144 576 Q F3(globpat)2.5 E F0 1.008(The pathname e)184 588 R
+1.008(xpansion pattern)-.15 F F3(globpat)3.507 E F0 1.007(is e)3.507 F
+1.007(xpanded to generate the possible comple-)-.15 F(tions.)184 600 Q
+F1<ad50>144 612 Q F3(pr)2.5 E(e\214x)-.37 E(pr)184 624 Q(e\214x)-.37 E
+F0 .534(is added at the be)3.034 F .534
(ginning of each possible completion after all other options ha)-.15 F
--.15(ve)-.2 G(been applied.)184 144 Q F1<ad53>144 156 Q F2(suf)2.5 E
-<8c78>-.18 E(suf)184 156 Q<8c78>-.18 E F0
+-.15(ve)-.2 G(been applied.)184 636 Q F1<ad53>144 648 Q F3(suf)2.5 E
+<8c78>-.18 E(suf)184 648 Q<8c78>-.18 E F0
(is appended to each possible completion after all other options ha)2.5
-E .3 -.15(ve b)-.2 H(een applied.).15 E F1<ad57>144 168 Q F2(wor)2.5 E
-(dlist)-.37 E F0(The)184 180 Q F2(wor)3.639 E(dlist)-.37 E F0 1.14
-(is split using the characters in the)3.639 F/F3 9/Times-Bold@0 SF(IFS)
-3.64 E F0 1.14(special v)3.39 F 1.14(ariable as delimiters, and)-.25 F
-.981(each resultant w)184 192 R .981(ord is e)-.1 F 3.481
-(xpanded. Shell)-.15 F .981(quoting is honored within)3.481 F F2(wor)
-3.481 E(dlist)-.37 E F0 3.48(,i)C 3.48(no)-3.48 G .98(rder to)-3.48 F
-(pro)184 204 Q .765(vide a mechanism for the w)-.15 F .766
+E .3 -.15(ve b)-.2 H(een applied.).15 E F1<ad57>144 660 Q F3(wor)2.5 E
+(dlist)-.37 E F0(The)184 672 Q F3(wor)3.64 E(dlist)-.37 E F0 1.14
+(is split using the characters in the)3.64 F F2(IFS)3.64 E F0 1.139
+(special v)3.39 F 1.139(ariable as delimiters, and)-.25 F .98
+(each resultant w)184 684 R .98(ord is e)-.1 F 3.481(xpanded. Shell)-.15
+F .981(quoting is honored within)3.481 F F3(wor)3.481 E(dlist)-.37 E F0
+3.481(,i)C 3.481(no)-3.481 G .981(rder to)-3.481 F(pro)184 696 Q .766
+(vide a mechanism for the w)-.15 F .765
(ords to contain shell metacharacters or characters in the)-.1 F -.25
-(va)184 216 S 1.965(lue of).25 F F3(IFS)4.465 E/F4 9/Times-Roman@0 SF(.)
+(va)184 708 S 1.964(lue of).25 F F2(IFS)4.464 E/F4 9/Times-Roman@0 SF(.)
A F0 1.964
(The possible completions are the members of the resultant list which)
-6.465 F(match the w)184 228 Q(ord being completed.)-.1 E F1<ad58>144 240
-Q F2(\214lterpat)2.5 E(\214lterpat)184 252 Q F0 .455
-(is a pattern as used for pathname e)2.955 F 2.956(xpansion. It)-.15 F
-.456(is applied to the list of possible)2.956 F 1.596
-(completions generated by the preceding options and ar)184 264 R 1.596
-(guments, and each completion)-.18 F(matching)184 276 Q F2(\214lterpat)
-3.204 E F0 .704(is remo)3.204 F -.15(ve)-.15 G 3.204(df).15 G .704
-(rom the list.)-3.204 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
-(in)3.204 E F2(\214lterpat)3.205 E F0(ne)3.205 E -.05(ga)-.15 G .705
-(tes the pattern;).05 F(in this case, an)184 288 Q 2.5(yc)-.15 G
+6.464 F(match the w)184 720 Q(ord being completed.)-.1 E(GNU Bash 5.2)72
+768 Q(2022 September 19)135.955 E(63)185.115 E 0 Cg EP
+%%Page: 64 64
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF<ad58>144 84 Q/F2 10/Times-Italic@0 SF(\214lterpat)2.5 E(\214lterpat)
+184 96 Q F0 .456(is a pattern as used for pathname e)2.956 F 2.956
+(xpansion. It)-.15 F .455(is applied to the list of possible)2.956 F
+1.596(completions generated by the preceding options and ar)184 108 R
+1.596(guments, and each completion)-.18 F(matching)184 120 Q F2
+(\214lterpat)3.205 E F0 .705(is remo)3.205 F -.15(ve)-.15 G 3.205(df).15
+G .704(rom the list.)-3.205 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)
+3.204 E F0(in)3.204 E F2(\214lterpat)3.204 E F0(ne)3.204 E -.05(ga)-.15
+G .704(tes the pattern;).05 F(in this case, an)184 132 Q 2.5(yc)-.15 G
(ompletion not matching)-2.5 E F2(\214lterpat)2.5 E F0(is remo)2.5 E
--.15(ve)-.15 G(d.).15 E .467(The return v)144 304.8 R .467
+-.15(ve)-.15 G(d.).15 E .466(The return v)144 148.8 R .466
(alue is true unless an in)-.25 F -.25(va)-.4 G .466
-(lid option is supplied, an option other than).25 F F1<ad70>2.966 E F0
-(or)2.966 E F1<ad72>2.966 E F0 .466(is sup-)2.966 F 1.361
-(plied without a)144 316.8 R F2(name)3.861 E F0(ar)3.861 E 1.361
-(gument, an attempt is made to remo)-.18 F 1.662 -.15(ve a c)-.15 H
-1.362(ompletion speci\214cation for a).15 F F2(name)144 328.8 Q F0
+(lid option is supplied, an option other than).25 F F1<ad70>2.967 E F0
+(or)2.967 E F1<ad72>2.967 E F0 .467(is sup-)2.967 F 1.362
+(plied without a)144 160.8 R F2(name)3.862 E F0(ar)3.862 E 1.361
+(gument, an attempt is made to remo)-.18 F 1.661 -.15(ve a c)-.15 H
+1.361(ompletion speci\214cation for a).15 F F2(name)144 172.8 Q F0
(for which no speci\214cation e)2.5 E
(xists, or an error occurs adding a completion speci\214cation.)-.15 E
-F1(compopt)108 345.6 Q F0([)2.5 E F1<ad6f>A F2(option)2.5 E F0 2.5(][)C
+F1(compopt)108 189.6 Q F0([)2.5 E F1<ad6f>A F2(option)2.5 E F0 2.5(][)C
F1(\255DEI)-2.5 E F0 2.5(][)C F1(+o)-2.5 E F2(option)2.5 E F0 2.5(][)C
-F2(name)-2.5 E F0(])A .447(Modify completion options for each)144 357.6
+F2(name)-2.5 E F0(])A .447(Modify completion options for each)144 201.6
R F2(name)2.947 E F0 .447(according to the)2.947 F F2(option)2.947 E F0
-.447(s, or for the currently-e)B -.15(xe)-.15 G(cuting).15 E .725
-(completion if no)144 369.6 R F2(name)3.225 E F0 3.225(sa)C .725
-(re supplied.)-3.225 F .725(If no)5.725 F F2(option)3.225 E F0 3.225(sa)
-C .725(re gi)-3.225 F -.15(ve)-.25 G .726
-(n, display the completion options for).15 F(each)144 381.6 Q F2(name)
-3.224 E F0 .724(or the current completion.)3.224 F .724(The possible v)
+.447(s, or for the currently-e)B -.15(xe)-.15 G(cuting).15 E .726
+(completion if no)144 213.6 R F2(name)3.226 E F0 3.226(sa)C .726
+(re supplied.)-3.226 F .725(If no)5.725 F F2(option)3.225 E F0 3.225(sa)
+C .725(re gi)-3.225 F -.15(ve)-.25 G .725
+(n, display the completion options for).15 F(each)144 225.6 Q F2(name)
+3.223 E F0 .723(or the current completion.)3.223 F .724(The possible v)
5.724 F .724(alues of)-.25 F F2(option)3.224 E F0 .724(are those v)3.224
-F .723(alid for the)-.25 F F1(com-)3.223 E(plete)144 393.6 Q F0 -.2(bu)
-2.677 G .177(iltin described abo).2 F -.15(ve)-.15 G 5.178(.T).15 G(he)
+F .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 237.6 Q F0 -.2(bu)
+2.678 G .178(iltin described abo).2 F -.15(ve)-.15 G 5.178(.T).15 G(he)
-5.178 E F1<ad44>2.678 E F0 .178
(option indicates that other supplied options should apply to)2.678 F
-1.228(the `)144 405.6 R(`def)-.74 E(ault')-.1 E 3.728('c)-.74 G 1.228(o\
+1.227(the `)144 249.6 R(`def)-.74 E(ault')-.1 E 3.727('c)-.74 G 1.228(o\
mmand completion; that is, completion attempted on a command for which \
-no)-3.728 F 2.038(completion has pre)144 417.6 R 2.038
-(viously been de\214ned.)-.25 F(The)7.038 E F1<ad45>4.538 E F0 2.039
-(option indicates that other supplied options)4.538 F 1.539
-(should apply to `)144 429.6 R(`empty')-.74 E 4.039('c)-.74 G 1.538
+no)-3.727 F 2.039(completion has pre)144 261.6 R 2.039
+(viously been de\214ned.)-.25 F(The)7.038 E F1<ad45>4.538 E F0 2.038
+(option indicates that other supplied options)4.538 F 1.538
+(should apply to `)144 273.6 R(`empty')-.74 E 4.038('c)-.74 G 1.539
(ommand completion; that is, completion attempted on a blank line.)
--4.039 F(The)144 441.6 Q F1<ad49>3.02 E F0 .52(option indicates that ot\
+-4.038 F(The)144 285.6 Q F1<ad49>3.02 E F0 .52(option indicates that ot\
her supplied options should apply to completion on the initial non-)3.02
-F .868(assignment w)144 453.6 R .868
+F .867(assignment w)144 297.6 R .868
(ord on the line, or after a command delimiter such as)-.1 F F1(;)3.368
-E F0(or)3.368 E F1(|)3.368 E F0 3.367(,w)C .867(hich is usually com-)
--3.367 F(mand name completion.)144 465.6 Q .431(The return v)144 489.6 R
+E F0(or)3.368 E F1(|)3.368 E F0 3.368(,w)C .868(hich is usually com-)
+-3.368 F(mand name completion.)144 309.6 Q .432(The return v)144 333.6 R
.431(alue is true unless an in)-.25 F -.25(va)-.4 G .431
(lid option is supplied, an attempt is made to modify the op-).25 F
-(tions for a)144 501.6 Q F2(name)2.5 E F0
+(tions for a)144 345.6 Q F2(name)2.5 E F0
(for which no completion speci\214cation e)2.5 E
-(xists, or an output error occurs.)-.15 E F1(continue)108 518.4 Q F0([)
-2.5 E F2(n)A F0(])A .851(Resume the ne)144 530.4 R .851
-(xt iteration of the enclosing)-.15 F F1 -.25(fo)3.351 G(r).25 E F0(,)A
+(xists, or an output error occurs.)-.15 E F1(continue)108 362.4 Q F0([)
+2.5 E F2(n)A F0(])A .85(Resume the ne)144 374.4 R .85
+(xt iteration of the enclosing)-.15 F F1 -.25(fo)3.35 G(r).25 E F0(,)A
F1(while)3.351 E F0(,)A F1(until)3.351 E F0 3.351(,o)C(r)-3.351 E F1
-(select)3.35 E F0 3.35(loop. If)3.35 F F2(n)3.71 E F0 .85
-(is speci\214ed, re-)3.59 F .203(sume at the)144 542.4 R F2(n)2.703 E F0
-.203(th enclosing loop.)B F2(n)5.563 E F0 .203(must be)2.943 F/F5 10
-/Symbol SF<b3>2.703 E F0 2.704(1. If)2.703 F F2(n)3.064 E F0 .204
-(is greater than the number of enclosing loops,)2.944 F 1.184
-(the last enclosing loop \(the `)144 554.4 R(`top-le)-.74 E -.15(ve)-.25
-G(l').15 E 3.684('l)-.74 G 1.184(oop\) is resumed.)-3.684 F 1.183
-(The return v)6.184 F 1.183(alue is 0 unless)-.25 F F2(n)3.683 E F0
-1.183(is not)3.683 F(greater than or equal to 1.)144 566.4 Q F1(declar)
-108 583.2 Q(e)-.18 E F0([)2.5 E F1(\255aAfFgiIlnrtux)A F0 2.5(][)C F1
+(select)3.351 E F0 3.351(loop. If)3.351 F F2(n)3.711 E F0 .851
+(is speci\214ed, re-)3.591 F .204(sume at the)144 386.4 R F2(n)2.704 E
+F0 .204(th enclosing loop.)B F2(n)5.564 E F0 .204(must be)2.944 F/F3 10
+/Symbol SF<b3>2.704 E F0 2.703(1. If)2.704 F F2(n)3.063 E F0 .203
+(is greater than the number of enclosing loops,)2.943 F 1.183
+(the last enclosing loop \(the `)144 398.4 R(`top-le)-.74 E -.15(ve)-.25
+G(l').15 E 3.683('l)-.74 G 1.183(oop\) is resumed.)-3.683 F 1.184
+(The return v)6.184 F 1.184(alue is 0 unless)-.25 F F2(n)3.684 E F0
+1.184(is not)3.684 F(greater than or equal to 1.)144 410.4 Q F1(declar)
+108 427.2 Q(e)-.18 E F0([)2.5 E F1(\255aAfFgiIlnrtux)A F0 2.5(][)C F1
<ad70>-2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C
-(..])-2.5 E F1(typeset)108 595.2 Q F0([)2.5 E F1(\255aAfFgiIlnrtux)A F0
+(..])-2.5 E F1(typeset)108 439.2 Q F0([)2.5 E F1(\255aAfFgiIlnrtux)A F0
2.5(][)C F1<ad70>-2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0
-2.5(].)C(..])-2.5 E 1.264(Declare v)144 607.2 R 1.264
-(ariables and/or gi)-.25 F 1.564 -.15(ve t)-.25 H 1.264(hem attrib).15 F
+2.5(].)C(..])-2.5 E 1.265(Declare v)144 451.2 R 1.265
+(ariables and/or gi)-.25 F 1.565 -.15(ve t)-.25 H 1.265(hem attrib).15 F
3.765(utes. If)-.2 F(no)3.765 E F2(name)3.765 E F0 3.765(sa)C 1.265
-(re gi)-3.765 F -.15(ve)-.25 G 3.765(nt).15 G 1.265(hen display the v)
--3.765 F 1.265(alues of)-.25 F -.25(va)144 619.2 S 3.46(riables. The).25
+(re gi)-3.765 F -.15(ve)-.25 G 3.764(nt).15 G 1.264(hen display the v)
+-3.764 F 1.264(alues of)-.25 F -.25(va)144 463.2 S 3.46(riables. The).25
F F1<ad70>3.46 E F0 .96(option will display the attrib)3.46 F .96
(utes and v)-.2 F .96(alues of each)-.25 F F2(name)3.82 E F0 5.96(.W).18
-G(hen)-5.96 E F1<ad70>3.46 E F0 .96(is used)3.46 F(with)144 631.2 Q F2
-(name)2.774 E F0(ar)2.774 E .274
+G(hen)-5.96 E F1<ad70>3.46 E F0 .96(is used)3.46 F(with)144 475.2 Q F2
+(name)2.775 E F0(ar)2.775 E .275
(guments, additional options, other than)-.18 F F1<ad66>2.775 E F0(and)
-2.775 E F1<ad46>2.775 E F0 2.775(,a)C .275(re ignored.)-2.775 F(When)
-5.275 E F1<ad70>2.775 E F0 .275(is supplied)2.775 F(without)144 643.2 Q
-F2(name)3.79 E F0(ar)3.79 E 1.29(guments, it will display the attrib)
--.18 F 1.289(utes and v)-.2 F 1.289(alues of all v)-.25 F 1.289
-(ariables ha)-.25 F 1.289(ving the at-)-.2 F(trib)144 655.2 Q .38
+2.775 E F1<ad46>2.775 E F0 2.775(,a)C .274(re ignored.)-2.775 F(When)
+5.274 E F1<ad70>2.774 E F0 .274(is supplied)2.774 F(without)144 487.2 Q
+F2(name)3.789 E F0(ar)3.789 E 1.289(guments, it will display the attrib)
+-.18 F 1.289(utes and v)-.2 F 1.29(alues of all v)-.25 F 1.29
+(ariables ha)-.25 F 1.29(ving the at-)-.2 F(trib)144 499.2 Q .38
(utes speci\214ed by the additional options.)-.2 F .38
(If no other options are supplied with)5.38 F F1<ad70>2.88 E F0(,)A F1
-(declar)2.88 E(e)-.18 E F0(will)2.88 E 1.107(display the attrib)144
-667.2 R 1.107(utes and v)-.2 F 1.106(alues of all shell v)-.25 F 3.606
-(ariables. The)-.25 F F1<ad66>3.606 E F0 1.106
-(option will restrict the display to)3.606 F .299(shell functions.)144
-679.2 R(The)5.299 E F1<ad46>2.799 E F0 .299(option inhibits the display\
- of function de\214nitions; only the function name)2.799 F 1.54
-(and attrib)144 691.2 R 1.54(utes are printed.)-.2 F 1.54(If the)6.54 F
-F1(extdeb)4.04 E(ug)-.2 E F0 1.54(shell option is enabled using)4.04 F
-F1(shopt)4.04 E F0 4.04(,t)C 1.54(he source \214le)-4.04 F .648
-(name and line number where each)144 703.2 R F2(name)3.148 E F0 .648
+(declar)2.88 E(e)-.18 E F0(will)2.88 E 1.106(display the attrib)144
+511.2 R 1.106(utes and v)-.2 F 1.106(alues of all shell v)-.25 F 3.606
+(ariables. The)-.25 F F1<ad66>3.606 E F0 1.107
+(option will restrict the display to)3.606 F .3(shell functions.)144
+523.2 R(The)5.3 E F1<ad46>2.8 E F0 .299(option inhibits the display of \
+function de\214nitions; only the function name)2.8 F 1.54(and attrib)144
+535.2 R 1.54(utes are printed.)-.2 F 1.54(If the)6.54 F F1(extdeb)4.04 E
+(ug)-.2 E F0 1.54(shell option is enabled using)4.04 F F1(shopt)4.04 E
+F0 4.04(,t)C 1.54(he source \214le)-4.04 F .648
+(name and line number where each)144 547.2 R F2(name)3.148 E F0 .648
(is de\214ned are displayed as well.)3.148 F(The)5.648 E F1<ad46>3.148 E
-F0 .649(option implies)3.149 F F1<ad66>144 715.2 Q F0 5.837(.T)C(he)
--5.837 E F1<ad67>3.337 E F0 .837(option forces v)3.337 F .836
+F0 .648(option implies)3.148 F F1<ad66>144 559.2 Q F0 5.836(.T)C(he)
+-5.836 E F1<ad67>3.336 E F0 .836(option forces v)3.336 F .837
(ariables to be created or modi\214ed at the global scope, e)-.25 F -.15
-(ve)-.25 G 3.336(nw).15 G(hen)-3.336 E F1(de-)3.336 E(clar)144 727.2 Q
-(e)-.18 E F0 .818(is e)3.318 F -.15(xe)-.15 G .818
+(ve)-.25 G 3.337(nw).15 G(hen)-3.337 E F1(de-)3.337 E(clar)144 571.2 Q
+(e)-.18 E F0 .819(is e)3.319 F -.15(xe)-.15 G .819
(cuted in a shell function.).15 F .818
-(It is ignored in all other cases.)5.818 F(The)5.819 E F1<ad49>3.319 E
-F0 .819(option causes local)3.319 F(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(61)190.395 E 0 Cg EP
-%%Page: 62 62
+(It is ignored in all other cases.)5.818 F(The)5.818 E F1<ad49>3.318 E
+F0 .818(option causes local)3.318 F -.25(va)144 583.2 S .693
+(riables to inherit the attrib).25 F .693(utes \(e)-.2 F .693(xcept the)
+-.15 F F2(namer)3.194 E(ef)-.37 E F0(attrib)3.194 E .694(ute\) and v)-.2
+F .694(alue of an)-.25 F 3.194(ye)-.15 G .694(xisting v)-3.344 F
+(ariable)-.25 E .82(with the same)144 595.2 R F2(name)3.32 E F0 .82
+(at a surrounding scope.)3.32 F .82(If there is no e)5.82 F .82
+(xisting v)-.15 F .82(ariable, the local v)-.25 F .82(ariable is)-.25 F
+.379(initially unset.)144 607.2 R .379(The follo)5.379 F .379
+(wing options can be used to restrict output to v)-.25 F .38
+(ariables with the speci\214ed)-.25 F(attrib)144 619.2 Q(ute or to gi)
+-.2 E .3 -.15(ve v)-.25 H(ariables attrib)-.1 E(utes:)-.2 E F1<ad61>144
+631.2 Q F0(Each)180 631.2 Q F2(name)2.5 E F0(is an inde)2.5 E -.15(xe)
+-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F1(Arrays)2.5 E
+F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F1<ad41>144 643.2 Q F0(Each)180
+643.2 Q F2(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25 H
+(rray v).15 E(ariable \(see)-.25 E F1(Arrays)2.5 E F0(abo)2.5 E -.15(ve)
+-.15 G(\).).15 E F1<ad66>144 655.2 Q F0(Use function names only)180
+655.2 Q(.)-.65 E F1<ad69>144 667.2 Q F0 .558(The v)180 667.2 R .558
+(ariable is treated as an inte)-.25 F .558(ger; arithmetic e)-.15 F -.25
+(va)-.25 G .558(luation \(see).25 F/F4 9/Times-Bold@0 SF .557
+(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION)180 679.2 Q F0(abo)
+2.25 E -.15(ve)-.15 G 2.5(\)i).15 G 2.5(sp)-2.5 G(erformed when the v)
+-2.5 E(ariable is assigned a v)-.25 E(alue.)-.25 E F1<ad6c>144 691.2 Q
+F0 .909(When the v)180 691.2 R .909(ariable is assigned a v)-.25 F .909
+(alue, all upper)-.25 F .909(-case characters are con)-.2 F -.15(ve)-.4
+G .91(rted to lo).15 F(wer)-.25 E(-)-.2 E 2.5(case. The)180 703.2 R
+(upper)2.5 E(-case attrib)-.2 E(ute is disabled.)-.2 E F1<ad6e>144 715.2
+Q F0(Gi)180 715.2 Q 1.62 -.15(ve e)-.25 H(ach).15 E F2(name)3.82 E F0
+(the)3.82 E F2(namer)3.819 E(ef)-.37 E F0(attrib)3.819 E 1.319
+(ute, making it a name reference to another v)-.2 F(ariable.)-.25 E
+1.518(That other v)180 727.2 R 1.518(ariable is de\214ned by the v)-.25
+F 1.519(alue of)-.25 F F2(name)4.019 E F0 6.519(.A)C 1.519
+(ll references, assignments, and)-6.519 F(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(64)185.115 E 0 Cg EP
+%%Page: 65 65
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E -.25(va)144 84 S
-.694(riables to inherit the attrib).25 F .694(utes \(e)-.2 F .694
-(xcept the)-.15 F/F1 10/Times-Italic@0 SF(namer)3.194 E(ef)-.37 E F0
-(attrib)3.194 E .693(ute\) and v)-.2 F .693(alue of an)-.25 F 3.193(ye)
--.15 G .693(xisting v)-3.343 F(ariable)-.25 E .82(with the same)144 96 R
-F1(name)3.32 E F0 .82(at a surrounding scope.)3.32 F .82
-(If there is no e)5.82 F .82(xisting v)-.15 F .82(ariable, the local v)
--.25 F .82(ariable is)-.25 F .38(initially unset.)144 108 R .38
-(The follo)5.38 F .379(wing options can be used to restrict output to v)
--.25 F .379(ariables with the speci\214ed)-.25 F(attrib)144 120 Q
-(ute or to gi)-.2 E .3 -.15(ve v)-.25 H(ariables attrib)-.1 E(utes:)-.2
-E/F2 10/Times-Bold@0 SF<ad61>144 132 Q F0(Each)180 132 Q F1(name)2.5 E
-F0(is an inde)2.5 E -.15(xe)-.15 G 2.5(da).15 G(rray v)-2.5 E
-(ariable \(see)-.25 E F2(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
-.15 E F2<ad41>144 144 Q F0(Each)180 144 Q F1(name)2.5 E F0
-(is an associati)2.5 E .3 -.15(ve a)-.25 H(rray v).15 E(ariable \(see)
--.25 E F2(Arrays)2.5 E F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F2<ad66>144
-156 Q F0(Use function names only)180 156 Q(.)-.65 E F2<ad69>144 168 Q F0
-.557(The v)180 168 R .558(ariable is treated as an inte)-.25 F .558
-(ger; arithmetic e)-.15 F -.25(va)-.25 G .558(luation \(see).25 F/F3 9
-/Times-Bold@0 SF .558(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION)
-180 180 Q F0(abo)2.25 E -.15(ve)-.15 G 2.5(\)i).15 G 2.5(sp)-2.5 G
-(erformed when the v)-2.5 E(ariable is assigned a v)-.25 E(alue.)-.25 E
-F2<ad6c>144 192 Q F0 .91(When the v)180 192 R .909
-(ariable is assigned a v)-.25 F .909(alue, all upper)-.25 F .909
-(-case characters are con)-.2 F -.15(ve)-.4 G .909(rted to lo).15 F(wer)
--.25 E(-)-.2 E 2.5(case. The)180 204 R(upper)2.5 E(-case attrib)-.2 E
-(ute is disabled.)-.2 E F2<ad6e>144 216 Q F0(Gi)180 216 Q 1.619 -.15
-(ve e)-.25 H(ach).15 E F1(name)3.819 E F0(the)3.819 E F1(namer)3.819 E
-(ef)-.37 E F0(attrib)3.819 E 1.319
-(ute, making it a name reference to another v)-.2 F(ariable.)-.25 E .478
-(That other v)180 228 R .478(ariable is de\214ned by the v)-.25 F .478
-(alue of)-.25 F F1(name)2.978 E F0 5.478(.A)C .478
-(ll references, assignments, and at-)-5.478 F(trib)180 240 Q .781
-(ute modi\214cations to)-.2 F F1(name)3.281 E F0 3.281(,e)C .782
-(xcept those using or changing the)-3.431 F F2<ad6e>3.282 E F0(attrib)
-3.282 E .782(ute itself, are)-.2 F .809(performed on the v)180 252 R
-.809(ariable referenced by)-.25 F F1(name)3.308 E F0 1.908 -.55('s v)D
-3.308(alue. The).3 F .808(nameref attrib)3.308 F .808(ute cannot be)-.2
-F(applied to array v)180 264 Q(ariables.)-.25 E F2<ad72>144 276 Q F0
-(Mak)180 276 Q(e)-.1 E F1(name)3.654 E F0 3.654(sr)C(eadonly)-3.654 E
-6.154(.T)-.65 G 1.154(hese names cannot then be assigned v)-6.154 F
-1.155(alues by subsequent as-)-.25 F(signment statements or unset.)180
-288 Q F2<ad74>144 300 Q F0(Gi)180 300 Q .73 -.15(ve e)-.25 H(ach).15 E
-F1(name)2.93 E F0(the)2.929 E F1(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(attrib)180 84 Q
+.227(ute modi\214cations to)-.2 F/F1 10/Times-Italic@0 SF(name)2.726 E
+F0 2.726(,e)C .226(xcept those using or changing the)-2.876 F/F2 10
+/Times-Bold@0 SF<ad6e>2.726 E F0(attrib)2.726 E .226(ute itself, are)-.2
+F .808(performed on the v)180 96 R .808(ariable referenced by)-.25 F F1
+(name)3.308 E F0 1.908 -.55('s v)D 3.308(alue. The).3 F .809
+(nameref attrib)3.309 F .809(ute cannot be)-.2 F(applied to array v)180
+108 Q(ariables.)-.25 E F2<ad72>144 120 Q F0(Mak)180 120 Q(e)-.1 E F1
+(name)3.655 E F0 3.655(sr)C(eadonly)-3.655 E 6.154(.T)-.65 G 1.154
+(hese names cannot then be assigned v)-6.154 F 1.154
+(alues by subsequent as-)-.25 F(signment statements or unset.)180 132 Q
+F2<ad74>144 144 Q F0(Gi)180 144 Q .729 -.15(ve e)-.25 H(ach).15 E F1
+(name)2.929 E F0(the)2.929 E F1(tr)2.929 E(ace)-.15 E F0(attrib)2.929 E
2.929(ute. T)-.2 F .429(raced functions inherit the)-.35 F F2(DEB)2.929
-E(UG)-.1 E F0(and)2.929 E F2(RETURN)2.929 E F0
-(traps from the calling shell.)180 312 Q(The trace attrib)5 E
-(ute has no special meaning for v)-.2 E(ariables.)-.25 E F2<ad75>144 324
-Q F0 .909(When the v)180 324 R .909(ariable is assigned a v)-.25 F .909
+E(UG)-.1 E F0(and)2.93 E F2(RETURN)2.93 E F0
+(traps from the calling shell.)180 156 Q(The trace attrib)5 E
+(ute has no special meaning for v)-.2 E(ariables.)-.25 E F2<ad75>144 168
+Q F0 .91(When the v)180 168 R .909(ariable is assigned a v)-.25 F .909
(alue, all lo)-.25 F(wer)-.25 E .909(-case characters are con)-.2 F -.15
-(ve)-.4 G .91(rted to upper).15 F(-)-.2 E 2.5(case. The)180 336 R(lo)2.5
-E(wer)-.25 E(-case attrib)-.2 E(ute is disabled.)-.2 E F2<ad78>144 348 Q
-F0(Mark)180 348 Q F1(name)2.5 E F0 2.5(sf)C(or e)-2.5 E
-(xport to subsequent commands via the en)-.15 E(vironment.)-.4 E .144
-(Using `+' instead of `\255' turns of)144 364.8 R 2.643(ft)-.25 G .143
-(he attrib)-2.643 F .143(ute instead, with the e)-.2 F .143
-(xceptions that)-.15 F F2(+a)2.643 E F0(and)2.643 E F2(+A)2.643 E F0
-.143(may not)2.643 F .578(be used to destro)144 376.8 R 3.079(ya)-.1 G
+(ve)-.4 G .909(rted to upper).15 F(-)-.2 E 2.5(case. The)180 180 R(lo)
+2.5 E(wer)-.25 E(-case attrib)-.2 E(ute is disabled.)-.2 E F2<ad78>144
+192 Q F0(Mark)180 192 Q F1(name)2.5 E F0 2.5(sf)C(or e)-2.5 E
+(xport to subsequent commands via the en)-.15 E(vironment.)-.4 E .143
+(Using `+' instead of `\255' turns of)144 208.8 R 2.643(ft)-.25 G .143
+(he attrib)-2.643 F .143(ute instead, with the e)-.2 F .144
+(xceptions that)-.15 F F2(+a)2.644 E F0(and)2.644 E F2(+A)2.644 E F0
+.144(may not)2.644 F .579(be used to destro)144 220.8 R 3.079(ya)-.1 G
.579(rray v)-3.079 F .579(ariables and)-.25 F F2(+r)3.079 E F0 .579
(will not remo)3.079 F .879 -.15(ve t)-.15 H .579(he readonly attrib).15
-F 3.079(ute. When)-.2 F .579(used in a)3.079 F(function,)144 388.8 Q F2
-(declar)3.544 E(e)-.18 E F0(and)3.544 E F2(typeset)3.544 E F0(mak)3.544
-E 3.544(ee)-.1 G(ach)-3.544 E F1(name)3.543 E F0 1.043
-(local, as with the)3.543 F F2(local)3.543 E F0 1.043
-(command, unless the)3.543 F F2<ad67>3.543 E F0 1.205
-(option is supplied.)144 400.8 R 1.205(If a v)6.205 F 1.205
+F 3.079(ute. When)-.2 F .578(used in a)3.078 F(function,)144 232.8 Q F2
+(declar)3.543 E(e)-.18 E F0(and)3.543 E F2(typeset)3.543 E F0(mak)3.543
+E 3.543(ee)-.1 G(ach)-3.543 E F1(name)3.543 E F0 1.043
+(local, as with the)3.543 F F2(local)3.544 E F0 1.044
+(command, unless the)3.544 F F2<ad67>3.544 E F0 1.205
+(option is supplied.)144 244.8 R 1.205(If a v)6.205 F 1.205
(ariable name is follo)-.25 F 1.205(wed by =)-.25 F F1(value)A F0 3.705
(,t)C 1.205(he v)-3.705 F 1.205(alue of the v)-.25 F 1.205
-(ariable is set to)-.25 F F1(value)144 412.8 Q F0 5.218(.W)C .218
-(hen using)-5.218 F F2<ad61>2.718 E F0(or)2.718 E F2<ad41>2.718 E F0
-.217(and the compound assignment syntax to create array v)2.717 F .217
-(ariables, addi-)-.25 F .882(tional attrib)144 424.8 R .882
+(ariable is set to)-.25 F F1(value)144 256.8 Q F0 5.217(.W)C .217
+(hen using)-5.217 F F2<ad61>2.717 E F0(or)2.717 E F2<ad41>2.717 E F0
+.217(and the compound assignment syntax to create array v)2.717 F .218
+(ariables, addi-)-.25 F .882(tional attrib)144 268.8 R .882
(utes do not tak)-.2 F 3.382(ee)-.1 G -.25(ff)-3.382 G .882
(ect until subsequent assignments.).25 F .882(The return v)5.882 F .882
-(alue is 0 unless an)-.25 F(in)144 436.8 Q -.25(va)-.4 G .366(lid optio\
+(alue is 0 unless an)-.25 F(in)144 280.8 Q -.25(va)-.4 G .365(lid optio\
n is encountered, an attempt is made to de\214ne a function using).25 F
-/F4 10/Courier@0 SF .365(\255f foo=bar)2.865 F F0 2.865(,a)C 2.865(na)
--2.865 G(t-)-2.865 E .548(tempt is made to assign a v)144 448.8 R .548
-(alue to a readonly v)-.25 F .549
-(ariable, an attempt is made to assign a v)-.25 F .549(alue to an)-.25 F
-1.749(array v)144 460.8 R 1.749
+/F3 10/Courier@0 SF .366(\255f foo=bar)2.866 F F0 2.866(,a)C 2.866(na)
+-2.866 G(t-)-2.866 E .549(tempt is made to assign a v)144 292.8 R .549
+(alue to a readonly v)-.25 F .548
+(ariable, an attempt is made to assign a v)-.25 F .548(alue to an)-.25 F
+1.748(array v)144 304.8 R 1.748
(ariable without using the compound assignment syntax \(see)-.25 F F2
-(Arrays)4.248 E F0(abo)4.248 E -.15(ve)-.15 G 1.748(\), one of the).15 F
-F1(names)144 472.8 Q F0 .359(is not a v)2.858 F .359(alid shell v)-.25 F
+(Arrays)4.249 E F0(abo)4.249 E -.15(ve)-.15 G 1.749(\), one of the).15 F
+F1(names)144 316.8 Q F0 .359(is not a v)2.859 F .359(alid shell v)-.25 F
.359(ariable name, an attempt is made to turn of)-.25 F 2.859(fr)-.25 G
-.359(eadonly status for a read-)-2.859 F 1.213(only v)144 484.8 R 1.213
+.359(eadonly status for a read-)-2.859 F 1.212(only v)144 328.8 R 1.213
(ariable, an attempt is made to turn of)-.25 F 3.713(fa)-.25 G 1.213
-(rray status for an array v)-3.713 F 1.212(ariable, or an attempt is)
--.25 F(made to display a non-e)144 496.8 Q(xistent function with)-.15 E
-F2<ad66>2.5 E F0(.)A F2(dirs [\255clpv] [+)108 513.6 Q F1(n)A F2 2.5(][)
-C<ad>-2.5 E F1(n)A F2(])A F0 -.4(Wi)144 525.6 S .328
+(rray status for an array v)-3.713 F 1.213(ariable, or an attempt is)
+-.25 F(made to display a non-e)144 340.8 Q(xistent function with)-.15 E
+F2<ad66>2.5 E F0(.)A F2(dirs [\255clpv] [+)108 357.6 Q F1(n)A F2 2.5(][)
+C<ad>-2.5 E F1(n)A F2(])A F0 -.4(Wi)144 369.6 S .329
(thout options, displays the list of currently remembered directories.)
-.4 F .329(The def)5.329 F .329(ault display is on a)-.1 F 1.238
-(single line with directory names separated by spaces.)144 537.6 R 1.238
-(Directories are added to the list with the)6.238 F F2(pushd)144 549.6 Q
-F0 .927(command; the)3.427 F F2(popd)3.428 E F0 .928(command remo)3.428
+.4 F .328(The def)5.328 F .328(ault display is on a)-.1 F 1.238
+(single line with directory names separated by spaces.)144 381.6 R 1.238
+(Directories are added to the list with the)6.238 F F2(pushd)144 393.6 Q
+F0 .928(command; the)3.428 F F2(popd)3.428 E F0 .928(command remo)3.428
F -.15(ve)-.15 G 3.428(se).15 G .928(ntries from the list.)-3.428 F .928
-(The current directory is al-)5.928 F -.1(wa)144 561.6 S
-(ys the \214rst directory in the stack.).1 E F2<ad63>144 573.6 Q F0
-(Clears the directory stack by deleting all of the entries.)180 573.6 Q
-F2<ad6c>144 585.6 Q F0 .882
-(Produces a listing using full pathnames; the def)180 585.6 R .881
+(The current directory is al-)5.928 F -.1(wa)144 405.6 S
+(ys the \214rst directory in the stack.).1 E F2<ad63>144 417.6 Q F0
+(Clears the directory stack by deleting all of the entries.)180 417.6 Q
+F2<ad6c>144 429.6 Q F0 .881
+(Produces a listing using full pathnames; the def)180 429.6 R .882
(ault listing format uses a tilde to denote)-.1 F(the home directory)180
-597.6 Q(.)-.65 E F2<ad70>144 609.6 Q F0
-(Print the directory stack with one entry per line.)180 609.6 Q F2<ad76>
-144 621.6 Q F0 .272(Print the directory stack with one entry per line, \
-pre\214xing each entry with its inde)180 621.6 R 2.773(xi)-.15 G 2.773
-(nt)-2.773 G(he)-2.773 E(stack.)180 633.6 Q F2(+)144 645.6 Q F1(n)A F0
-1.565(Displays the)180 645.6 R F1(n)4.065 E F0 1.565
-(th entry counting from the left of the list sho)B 1.564(wn by)-.25 F F2
-(dirs)4.064 E F0 1.564(when in)4.064 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
-(without options, starting with zero.)180 657.6 Q F2<ad>144 669.6 Q F1
-(n)A F0 1.194(Displays the)180 669.6 R F1(n)3.694 E F0 1.194
+441.6 Q(.)-.65 E F2<ad70>144 453.6 Q F0
+(Print the directory stack with one entry per line.)180 453.6 Q F2<ad76>
+144 465.6 Q F0 .273(Print the directory stack with one entry per line, \
+pre\214xing each entry with its inde)180 465.6 R 2.772(xi)-.15 G 2.772
+(nt)-2.772 G(he)-2.772 E(stack.)180 477.6 Q F2(+)144 489.6 Q F1(n)A F0
+1.564(Displays the)180 489.6 R F1(n)4.064 E F0 1.565
+(th entry counting from the left of the list sho)B 1.565(wn by)-.25 F F2
+(dirs)4.065 E F0 1.565(when in)4.065 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
+(without options, starting with zero.)180 501.6 Q F2<ad>144 513.6 Q F1
+(n)A F0 1.194(Displays the)180 513.6 R F1(n)3.694 E F0 1.194
(th entry counting from the right of the list sho)B 1.194(wn by)-.25 F
F2(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
-(without options, starting with zero.)180 681.6 Q .258(The return v)144
-698.4 R .258(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
+(without options, starting with zero.)180 525.6 Q .257(The return v)144
+542.4 R .258(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
(lid option is supplied or).25 F F1(n)2.758 E F0(inde)2.758 E -.15(xe)
-.15 G 2.758(sb).15 G -.15(ey)-2.758 G .258(ond the end of the direc-)
-.15 F(tory stack.)144 710.4 Q(GNU Bash 5.1)72 768 Q(2020 October 29)
-141.235 E(62)190.395 E 0 Cg EP
-%%Page: 63 63
+.15 F(tory stack.)144 554.4 Q F2(diso)108 571.2 Q(wn)-.1 E F0([)2.5 E F2
+(\255ar)A F0 2.5(][)C F2<ad68>-2.5 E F0 2.5(][)C F1(jobspec)-2.5 E F0
+(... |)2.5 E F1(pid)2.5 E F0(... ])2.5 E -.4(Wi)144 583.2 S .122
+(thout options, remo).4 F .422 -.15(ve e)-.15 H(ach).15 E F1(jobspec)
+4.362 E F0 .122(from the table of acti)2.932 F .422 -.15(ve j)-.25 H
+2.622(obs. If).15 F F1(jobspec)4.362 E F0 .121(is not present, and)2.932
+F .096(neither the)144 595.2 R F2<ad61>2.596 E F0 .096(nor the)2.596 F
+F2<ad72>2.596 E F0 .096(option is supplied, the)2.596 F F1(curr)2.596 E
+.096(ent job)-.37 F F0 .096(is used.)2.596 F .096(If the)5.096 F F2
+<ad68>2.596 E F0 .096(option is gi)2.596 F -.15(ve)-.25 G .096(n, each)
+.15 F F1(jobspec)145.74 607.2 Q F0 .586(is not remo)3.396 F -.15(ve)-.15
+G 3.086(df).15 G .585(rom the table, b)-3.086 F .585(ut is mark)-.2 F
+.585(ed so that)-.1 F/F4 9/Times-Bold@0 SF(SIGHUP)3.085 E F0 .585
+(is not sent to the job if the)2.835 F .962(shell recei)144 619.2 R -.15
+(ve)-.25 G 3.462(sa).15 G F4(SIGHUP)A/F5 9/Times-Roman@0 SF(.)A F0 .962
+(If no)5.462 F F1(jobspec)5.202 E F0 .962(is supplied, the)3.772 F F2
+<ad61>3.462 E F0 .962(option means to remo)3.462 F 1.262 -.15(ve o)-.15
+H 3.462(rm).15 G .962(ark all)-3.462 F 1.359(jobs; the)144 631.2 R F2
+<ad72>3.859 E F0 1.359(option without a)3.859 F F1(jobspec)5.599 E F0
+(ar)4.169 E 1.358(gument restricts operation to running jobs.)-.18 F
+1.358(The return)6.358 F -.25(va)144 643.2 S(lue is 0 unless a).25 E F1
+(jobspec)4.24 E F0(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E
+F2(echo)108 660 Q F0([)2.5 E F2(\255neE)A F0 2.5(][)C F1(ar)-2.5 E(g)
+-.37 E F0(...])2.5 E .424(Output the)144 672 R F1(ar)2.924 E(g)-.37 E F0
+.424(s, separated by spaces, follo)B .424(wed by a ne)-.25 F 2.924
+(wline. The)-.25 F .424(return status is 0 unless a write)2.924 F .308
+(error occurs.)144 684 R(If)5.308 E F2<ad6e>2.808 E F0 .308
+(is speci\214ed, the trailing ne)2.808 F .308(wline is suppressed.)-.25
+F .307(If the)5.308 F F2<ad65>2.807 E F0 .307(option is gi)2.807 F -.15
+(ve)-.25 G .307(n, inter).15 F(-)-.2 E .197(pretation of the follo)144
+696 R .198(wing backslash-escaped characters is enabled.)-.25 F(The)
+5.198 E F2<ad45>2.698 E F0 .198(option disables the in-)2.698 F .067
+(terpretation of these escape characters, e)144 708 R -.15(ve)-.25 G
+2.567(no).15 G 2.567(ns)-2.567 G .067(ystems where the)-2.567 F 2.567
+(ya)-.15 G .067(re interpreted by def)-2.567 F 2.567(ault. The)-.1 F F2
+(xpg_echo)144 720 Q F0 .601
+(shell option may be used to dynamically determine whether or not)3.101
+F F2(echo)3.102 E F0 -.15(ex)3.102 G .602(pands these).15 F
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(65)185.115 E 0 Cg EP
+%%Page: 66 66
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(diso)108 84 Q(wn)-.1 E F0([)2.5 E F1(\255ar)A F0 2.5(][)C F1<ad68>
--2.5 E F0 2.5(][)C/F2 10/Times-Italic@0 SF(jobspec)-2.5 E F0(... |)2.5 E
-F2(pid)2.5 E F0(... ])2.5 E -.4(Wi)144 96 S .121(thout options, remo).4
-F .422 -.15(ve e)-.15 H(ach).15 E F2(jobspec)4.362 E F0 .122
-(from the table of acti)2.932 F .422 -.15(ve j)-.25 H 2.622(obs. If).15
-F F2(jobspec)4.362 E F0 .122(is not present, and)2.932 F .096
-(neither the)144 108 R F1<ad61>2.596 E F0 .096(nor the)2.596 F F1<ad72>
-2.596 E F0 .096(option is supplied, the)2.596 F F2(curr)2.596 E .096
-(ent job)-.37 F F0 .096(is used.)2.596 F .096(If the)5.096 F F1<ad68>
-2.596 E F0 .096(option is gi)2.596 F -.15(ve)-.25 G .096(n, each).15 F
-F2(jobspec)145.74 120 Q F0 .585(is not remo)3.395 F -.15(ve)-.15 G 3.085
-(df).15 G .585(rom the table, b)-3.085 F .585(ut is mark)-.2 F .585
-(ed so that)-.1 F/F3 9/Times-Bold@0 SF(SIGHUP)3.085 E F0 .586
-(is not sent to the job if the)2.835 F .962(shell recei)144 132 R -.15
-(ve)-.25 G 3.462(sa).15 G F3(SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 .962
-(If no)5.462 F F2(jobspec)5.202 E F0 .962(is supplied, the)3.772 F F1
-<ad61>3.462 E F0 .962(option means to remo)3.462 F 1.262 -.15(ve o)-.15
-H 3.462(rm).15 G .962(ark all)-3.462 F 1.358(jobs; the)144 144 R F1
-<ad72>3.858 E F0 1.358(option without a)3.858 F F2(jobspec)5.598 E F0
-(ar)4.169 E 1.359(gument restricts operation to running jobs.)-.18 F
-1.359(The return)6.359 F -.25(va)144 156 S(lue is 0 unless a).25 E F2
-(jobspec)4.24 E F0(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E
-F1(echo)108 172.8 Q F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)
--.37 E F0(...])2.5 E .425(Output the)144 184.8 R F2(ar)2.925 E(g)-.37 E
-F0 .424(s, separated by spaces, follo)B .424(wed by a ne)-.25 F 2.924
-(wline. The)-.25 F .424(return status is 0 unless a write)2.924 F .307
-(error occurs.)144 196.8 R(If)5.307 E F1<ad6e>2.807 E F0 .307
-(is speci\214ed, the trailing ne)2.807 F .308(wline is suppressed.)-.25
-F .308(If the)5.308 F F1<ad65>2.808 E F0 .308(option is gi)2.808 F -.15
-(ve)-.25 G .308(n, inter).15 F(-)-.2 E .198(pretation of the follo)144
-208.8 R .198(wing backslash-escaped characters is enabled.)-.25 F(The)
-5.198 E F1<ad45>2.698 E F0 .197(option disables the in-)2.697 F .067
-(terpretation of these escape characters, e)144 220.8 R -.15(ve)-.25 G
-2.567(no).15 G 2.567(ns)-2.567 G .067(ystems where the)-2.567 F 2.567
-(ya)-.15 G .067(re interpreted by def)-2.567 F 2.568(ault. The)-.1 F F1
-(xpg_echo)144 232.8 Q F0 .602
-(shell option may be used to dynamically determine whether or not)3.102
-F F1(echo)3.101 E F0 -.15(ex)3.101 G .601(pands these).15 F .658
-(escape characters by def)144 244.8 R(ault.)-.1 E F1(echo)5.658 E F0
-.659(does not interpret)3.159 F F1<adad>3.159 E F0 .659
-(to mean the end of options.)3.159 F F1(echo)5.659 E F0(inter)3.159 E(-)
--.2 E(prets the follo)144 256.8 Q(wing escape sequences:)-.25 E F1(\\a)
-144 268.8 Q F0(alert \(bell\))180 268.8 Q F1(\\b)144 280.8 Q F0
-(backspace)180 280.8 Q F1(\\c)144 292.8 Q F0(suppress further output)180
-292.8 Q F1(\\e)144 304.8 Q(\\E)144 316.8 Q F0(an escape character)180
-316.8 Q F1(\\f)144 328.8 Q F0(form feed)180 328.8 Q F1(\\n)144 340.8 Q
-F0(ne)180 340.8 Q 2.5(wl)-.25 G(ine)-2.5 E F1(\\r)144 352.8 Q F0
-(carriage return)180 352.8 Q F1(\\t)144 364.8 Q F0(horizontal tab)180
-364.8 Q F1(\\v)144 376.8 Q F0 -.15(ve)180 376.8 S(rtical tab).15 E F1
-(\\\\)144 388.8 Q F0(backslash)180 388.8 Q F1(\\0)144 400.8 Q F2(nnn)A
-F0(the eight-bit character whose v)180 400.8 Q(alue is the octal v)-.25
-E(alue)-.25 E F2(nnn)2.5 E F0(\(zero to three octal digits\))2.5 E F1
-(\\x)144 412.8 Q F2(HH)A F0(the eight-bit character whose v)180 412.8 Q
-(alue is the he)-.25 E(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0
-(\(one or tw)2.5 E 2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1
-(\\u)144 424.8 Q F2(HHHH)A F0 1.507
-(the Unicode \(ISO/IEC 10646\) character whose v)180 436.8 R 1.506
-(alue is the he)-.25 F 1.506(xadecimal v)-.15 F(alue)-.25 E F2(HHHH)
-4.006 E F0(\(one to four he)180 448.8 Q 2.5(xd)-.15 G(igits\))-2.5 E F1
-(\\U)144 460.8 Q F2(HHHHHHHH)A F0 .547
-(the Unicode \(ISO/IEC 10646\) character whose v)180 472.8 R .547
-(alue is the he)-.25 F .548(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-)
-3.048 E(HHH)180 484.8 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G
-(igits\))-2.5 E F1(enable)108 501.6 Q F0([)2.5 E F1<ad61>A F0 2.5(][)C
-F1(\255dnps)-2.5 E F0 2.5(][)C F1<ad66>-2.5 E F2(\214lename)2.5 E F0 2.5
-(][)C F2(name)-2.5 E F0(...])2.5 E .278(Enable and disable b)144 513.6 R
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .659
+(escape characters by def)144 84 R(ault.)-.1 E/F1 10/Times-Bold@0 SF
+(echo)5.659 E F0 .659(does not interpret)3.159 F F1<adad>3.159 E F0 .659
+(to mean the end of options.)3.159 F F1(echo)5.658 E F0(inter)3.158 E(-)
+-.2 E(prets the follo)144 96 Q(wing escape sequences:)-.25 E F1(\\a)144
+108 Q F0(alert \(bell\))180 108 Q F1(\\b)144 120 Q F0(backspace)180 120
+Q F1(\\c)144 132 Q F0(suppress further output)180 132 Q F1(\\e)144 144 Q
+(\\E)144 156 Q F0(an escape character)180 156 Q F1(\\f)144 168 Q F0
+(form feed)180 168 Q F1(\\n)144 180 Q F0(ne)180 180 Q 2.5(wl)-.25 G(ine)
+-2.5 E F1(\\r)144 192 Q F0(carriage return)180 192 Q F1(\\t)144 204 Q F0
+(horizontal tab)180 204 Q F1(\\v)144 216 Q F0 -.15(ve)180 216 S
+(rtical tab).15 E F1(\\\\)144 228 Q F0(backslash)180 228 Q F1(\\0)144
+240 Q/F2 10/Times-Italic@0 SF(nnn)A F0(the eight-bit character whose v)
+180 240 Q(alue is the octal v)-.25 E(alue)-.25 E F2(nnn)2.5 E F0
+(\(zero to three octal digits\))2.5 E F1(\\x)144 252 Q F2(HH)A F0
+(the eight-bit character whose v)180 252 Q(alue is the he)-.25 E
+(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0(\(one or tw)2.5 E 2.5(oh)
+-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1(\\u)144 264 Q F2(HHHH)A F0
+1.506(the Unicode \(ISO/IEC 10646\) character whose v)180 276 R 1.507
+(alue is the he)-.25 F 1.507(xadecimal v)-.15 F(alue)-.25 E F2(HHHH)
+4.007 E F0(\(one to four he)180 288 Q 2.5(xd)-.15 G(igits\))-2.5 E F1
+(\\U)144 300 Q F2(HHHHHHHH)A F0 .548
+(the Unicode \(ISO/IEC 10646\) character whose v)180 312 R .547
+(alue is the he)-.25 F .547(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-)
+3.047 E(HHH)180 324 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G(igits\))
+-2.5 E F1(enable)108 340.8 Q F0([)2.5 E F1<ad61>A F0 2.5(][)C F1
+(\255dnps)-2.5 E F0 2.5(][)C F1<ad66>-2.5 E F2(\214lename)2.5 E F0 2.5
+(][)C F2(name)-2.5 E F0(...])2.5 E .277(Enable and disable b)144 352.8 R
.278(uiltin shell commands.)-.2 F .278(Disabling a b)5.278 F .278
-(uiltin allo)-.2 F .278(ws a disk command which has)-.25 F .833
-(the same name as a shell b)144 525.6 R .834(uiltin to be e)-.2 F -.15
+(uiltin allo)-.2 F .278(ws a disk command which has)-.25 F .834
+(the same name as a shell b)144 364.8 R .834(uiltin to be e)-.2 F -.15
(xe)-.15 G .834(cuted without specifying a full pathname, e).15 F -.15
-(ve)-.25 G 3.334(nt).15 G(hough)-3.334 E .99
-(the shell normally searches for b)144 537.6 R .989
-(uiltins before disk commands.)-.2 F(If)5.989 E F1<ad6e>3.489 E F0 .989
-(is used, each)3.489 F F2(name)3.489 E F0 .989(is dis-)3.489 F .648
-(abled; otherwise,)144 549.6 R F2(names)3.148 E F0 .648(are enabled.)
+(ve)-.25 G 3.333(nt).15 G(hough)-3.333 E .989
+(the shell normally searches for b)144 376.8 R .989
+(uiltins before disk commands.)-.2 F(If)5.989 E F1<ad6e>3.489 E F0 .99
+(is used, each)3.49 F F2(name)3.49 E F0 .99(is dis-)3.49 F .649
+(abled; otherwise,)144 388.8 R F2(names)3.148 E F0 .648(are enabled.)
3.148 F -.15(Fo)5.648 G 3.148(re).15 G .648(xample, to use the)-3.298 F
-F1(test)3.148 E F0 .648(binary found via the)3.148 F F3 -.666(PA)3.148 G
-(TH)-.189 E F0(in-)2.899 E .539(stead of the shell b)144 561.6 R .538
-(uiltin v)-.2 F .538(ersion, run)-.15 F/F5 10/Courier@0 SF .538
-(enable -n test)3.038 F F0 5.538(.T)C(he)-5.538 E F1<ad66>3.038 E F0
-.538(option means to load the ne)3.038 F(w)-.25 E -.2(bu)144 573.6 S
+F1(test)3.148 E F0 .648(binary found via the)3.148 F/F3 9/Times-Bold@0
+SF -.666(PA)3.148 G(TH)-.189 E F0(in-)2.898 E .538(stead of the shell b)
+144 400.8 R .538(uiltin v)-.2 F .538(ersion, run)-.15 F/F4 10/Courier@0
+SF .538(enable -n test)3.038 F F0 5.538(.T)C(he)-5.538 E F1<ad66>3.038 E
+F0 .539(option means to load the ne)3.038 F(w)-.25 E -.2(bu)144 412.8 S
1.365(iltin command).2 F F2(name)4.225 E F0 1.365(from shared object)
4.045 F F2(\214lename)5.775 E F0 3.865(,o).18 G 3.865(ns)-3.865 G 1.365
-(ystems that support dynamic loading.)-3.865 F(The)144 585.6 Q F1<ad64>
-2.867 E F0 .367(option will delete a b)2.867 F .367(uiltin pre)-.2 F
-.367(viously loaded with)-.25 F F1<ad66>2.866 E F0 5.366(.I)C 2.866(fn)
--5.366 G(o)-2.866 E F2(name)2.866 E F0(ar)2.866 E .366(guments are gi)
--.18 F -.15(ve)-.25 G .366(n, or).15 F .398(if the)144 597.6 R F1<ad70>
-2.898 E F0 .399(option is supplied, a list of shell b)2.899 F .399
-(uiltins is printed.)-.2 F -.4(Wi)5.399 G .399(th no other option ar).4
-F .399(guments, the)-.18 F .099(list consists of all enabled shell b)144
-609.6 R 2.598(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098
-(is supplied, only disabled b)2.598 F .098(uiltins are printed.)-.2 F
-(If)5.098 E F1<ad61>2.598 E F0 .905
-(is supplied, the list printed includes all b)144 621.6 R .905
-(uiltins, with an indication of whether or not each is en-)-.2 F 2.873
-(abled. If)144 633.6 R F1<ad73>2.873 E F0 .372
-(is supplied, the output is restricted to the POSIX)2.873 F F2(special)
-2.872 E F0 -.2(bu)2.872 G 2.872(iltins. The).2 F .372(return v)2.872 F
-.372(alue is)-.25 F 2.5(0u)144 645.6 S(nless a)-2.5 E F2(name)2.86 E F0
-(is not a shell b)2.68 E(uiltin or there is an error loading a ne)-.2 E
-2.5(wb)-.25 G(uiltin from a shared object.)-2.7 E F1 -2.3 -.15(ev a)108
-662.4 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(The)144 674.4
-Q F2(ar)3.17 E(g)-.37 E F0 3.17(sa)C .671
-(re read and concatenated together into a single command.)-3.17 F .671
-(This command is then read)5.671 F .479(and e)144 686.4 R -.15(xe)-.15 G
-.479(cuted by the shell, and its e).15 F .479
-(xit status is returned as the v)-.15 F .478(alue of)-.25 F F1 -2.3 -.15
-(ev a)2.978 H(l).15 E F0 5.478(.I)C 2.978(ft)-5.478 G .478(here are no)
--2.978 F F2(ar)3.308 E(gs)-.37 E F0(,).27 E(or only null ar)144 698.4 Q
-(guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(63)190.395 E 0 Cg EP
-%%Page: 64 64
+(ystems that support dynamic loading.)-3.865 F .606(Bash will use the v)
+144 424.8 R .606(alue of the)-.25 F F1 -.3(BA)3.106 G(SH_LO).3 E(AD)-.4
+E(ABLES_P)-.35 E -.95(AT)-.74 G(H).95 E F0 -.25(va)3.106 G .606
+(riable as a colon-separated list of).25 F .549
+(directories in which to search for)144 436.8 R F2(\214lename)3.049 E F0
+5.549(.T)C .549(he def)-5.549 F .548(ault is system-dependent.)-.1 F
+(The)5.548 E F1<ad64>3.048 E F0 .548(option will)3.048 F .546
+(delete a b)144 448.8 R .546(uiltin pre)-.2 F .546(viously loaded with)
+-.25 F F1<ad66>3.046 E F0 5.547(.I)C 3.047(fn)-5.547 G(o)-3.047 E F2
+(name)3.047 E F0(ar)3.047 E .547(guments are gi)-.18 F -.15(ve)-.25 G
+.547(n, or if the).15 F F1<ad70>3.047 E F0 .547(option is)3.047 F .546
+(supplied, a list of shell b)144 460.8 R .545(uiltins is printed.)-.2 F
+-.4(Wi)5.545 G .545(th no other option ar).4 F .545
+(guments, the list consists of all)-.18 F .695(enabled shell b)144 472.8
+R 3.195(uiltins. If)-.2 F F1<ad6e>3.195 E F0 .695
+(is supplied, only disabled b)3.195 F .695(uiltins are printed.)-.2 F
+(If)5.695 E F1<ad61>3.195 E F0 .695(is supplied, the)3.195 F .262
+(list printed includes all b)144 484.8 R .261
+(uiltins, with an indication of whether or not each is enabled.)-.2 F
+(If)5.261 E F1<ad73>2.761 E F0 .261(is sup-)2.761 F .268
+(plied, the output is restricted to the POSIX)144 496.8 R F2(special)
+2.768 E F0 -.2(bu)2.768 G 2.768(iltins. If).2 F .269
+(no options are supplied and a)2.768 F F2(name)2.769 E F0 .285
+(is not a shell b)144 508.8 R(uiltin,)-.2 E F1(enable)2.784 E F0 .284
+(will attempt to load)2.784 F F2(name)2.784 E F0 .284
+(from a shared object named)2.784 F F2(name)2.784 E F0 2.784(,a)C 2.784
+(si)-2.784 G 2.784(ft)-2.784 G(he)-2.784 E 1.41(command were)144 520.8 R
+F4 1.41(enable \255f)3.91 F F2 1.41(name name)3.91 F F0 6.41(.T)3.91 G
+1.41(he return v)-6.41 F 1.41(alue is 0 unless a)-.25 F F2(name)4.27 E
+F0 1.41(is not a shell)4.09 F -.2(bu)144 532.8 S
+(iltin or there is an error loading a ne).2 E 2.5(wb)-.25 G
+(uiltin from a shared object.)-2.7 E F1 -2.3 -.15(ev a)108 549.6 T(l).15
+E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(The)144 561.6 Q F2(ar)3.171
+E(g)-.37 E F0 3.171(sa)C .671
+(re read and concatenated together into a single command.)-3.171 F .67
+(This command is then read)5.67 F .478(and e)144 573.6 R -.15(xe)-.15 G
+.478(cuted by the shell, and its e).15 F .478
+(xit status is returned as the v)-.15 F .479(alue of)-.25 F F1 -2.3 -.15
+(ev a)2.979 H(l).15 E F0 5.479(.I)C 2.979(ft)-5.479 G .479(here are no)
+-2.979 F F2(ar)3.309 E(gs)-.37 E F0(,).27 E(or only null ar)144 585.6 Q
+(guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E F1
+(exec)108 602.4 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E F2
+(name)2.5 E F0 2.5(][)C F2(command)-2.5 E F0([)2.5 E F2(ar)A(guments)
+-.37 E F0(]])A(If)144 614.4 Q F2(command)3.006 E F0 .306
+(is speci\214ed, it replaces the shell.)3.576 F .305(No ne)5.305 F 2.805
+(wp)-.25 G .305(rocess is created.)-2.805 F(The)5.305 E F2(ar)3.135 E
+(guments)-.37 E F0(become)3.075 E .176(the ar)144 626.4 R .176
+(guments to)-.18 F F2(command)2.676 E F0 5.176(.I)C 2.676(ft)-5.176 G
+(he)-2.676 E F1<ad6c>2.676 E F0 .176
+(option is supplied, the shell places a dash at the be)2.676 F .177
+(ginning of)-.15 F .48(the zeroth ar)144 638.4 R .48(gument passed to)
+-.18 F F2(command)3.18 E F0 5.48(.T).77 G .48(his is what)-5.48 F F2(lo)
+3.07 E(gin)-.1 E F0 .48(\(1\) does.).24 F(The)5.48 E F1<ad63>2.98 E F0
+.48(option causes)2.98 F F2(com-)3.18 E(mand)144 650.4 Q F0 .638
+(to be e)3.908 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
+(vironment. If)-.4 F F1<ad61>3.138 E F0 .638
+(is supplied, the shell passes)3.138 F F2(name)3.499 E F0 .639(as the)
+3.319 F 1.078(zeroth ar)144 662.4 R 1.077(gument to the e)-.18 F -.15
+(xe)-.15 G 1.077(cuted command.).15 F(If)6.077 E F2(command)3.777 E F0
+1.077(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a)
+.15 F(non-interacti)144 674.4 Q .876 -.15(ve s)-.25 H .576(hell e).15 F
+.576(xits, unless the)-.15 F F1(execfail)3.076 E F0 .577
+(shell option is enabled.)3.077 F .577(In that case, it returns f)5.577
+F(ail-)-.1 E 3.32(ure. An)144 686.4 R(interacti)3.32 E 1.12 -.15(ve s)
+-.25 H .82(hell returns f).15 F .82(ailure if the \214le cannot be e)-.1
+F -.15(xe)-.15 G 3.32(cuted. A).15 F .82(subshell e)3.32 F .82
+(xits uncondi-)-.15 F .287(tionally if)144 698.4 R F1(exec)2.787 E F0
+-.1(fa)2.787 G 2.787(ils. If).1 F F2(command)2.987 E F0 .287
+(is not speci\214ed, an)3.557 F 2.788(yr)-.15 G .288(edirections tak)
+-2.788 F 2.788(ee)-.1 G -.25(ff)-2.788 G .288(ect in the current shell,)
+.25 F(and the return status is 0.)144 710.4 Q
+(If there is a redirection error)5 E 2.5(,t)-.4 G
+(he return status is 1.)-2.5 E(GNU Bash 5.2)72 768 Q(2022 September 19)
+135.955 E(66)185.115 E 0 Cg EP
+%%Page: 67 67
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(exec)108 84 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E/F2 10
-/Times-Italic@0 SF(name)2.5 E F0 2.5(][)C F2(command)-2.5 E F0([)2.5 E
-F2(ar)A(guments)-.37 E F0(]])A(If)144 96 Q F2(command)3.005 E F0 .305
-(is speci\214ed, it replaces the shell.)3.575 F .305(No ne)5.305 F 2.805
-(wp)-.25 G .306(rocess is created.)-2.805 F(The)5.306 E F2(ar)3.136 E
-(guments)-.37 E F0(become)3.076 E .177(the ar)144 108 R .177(guments to)
--.18 F F2(command)2.676 E F0 5.176(.I)C 2.676(ft)-5.176 G(he)-2.676 E F1
-<ad6c>2.676 E F0 .176
-(option is supplied, the shell places a dash at the be)2.676 F .176
-(ginning of)-.15 F .48(the zeroth ar)144 120 R .48(gument passed to)-.18
-F F2(command)3.18 E F0 5.48(.T).77 G .48(his is what)-5.48 F F2(lo)3.07
-E(gin)-.1 E F0 .48(\(1\) does.).24 F(The)5.48 E F1<ad63>2.98 E F0 .48
-(option causes)2.98 F F2(com-)3.18 E(mand)144 132 Q F0 .639(to be e)
-3.909 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
-(vironment. If)-.4 F F1<ad61>3.138 E F0 .638
-(is supplied, the shell passes)3.138 F F2(name)3.498 E F0 .638(as the)
-3.318 F 1.077(zeroth ar)144 144 R 1.077(gument to the e)-.18 F -.15(xe)
--.15 G 1.077(cuted command.).15 F(If)6.077 E F2(command)3.777 E F0 1.077
-(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a).15 F
-(non-interacti)144 156 Q .877 -.15(ve s)-.25 H .577(hell e).15 F .577
-(xits, unless the)-.15 F F1(execfail)3.077 E F0 .577
-(shell option is enabled.)3.077 F .576(In that case, it returns f)5.577
-F(ail-)-.1 E 3.32(ure. An)144 168 R(interacti)3.32 E 1.12 -.15(ve s)-.25
-H .82(hell returns f).15 F .82(ailure if the \214le cannot be e)-.1 F
--.15(xe)-.15 G 3.32(cuted. A).15 F .82(subshell e)3.32 F .82
-(xits uncondi-)-.15 F .288(tionally if)144 180 R F1(exec)2.788 E F0 -.1
-(fa)2.788 G 2.788(ils. If).1 F F2(command)2.988 E F0 .288
-(is not speci\214ed, an)3.558 F 2.787(yr)-.15 G .287(edirections tak)
--2.787 F 2.787(ee)-.1 G -.25(ff)-2.787 G .287(ect in the current shell,)
-.25 F(and the return status is 0.)144 192 Q
-(If there is a redirection error)5 E 2.5(,t)-.4 G
-(he return status is 1.)-2.5 E F1(exit)108 208.8 Q F0([)2.5 E F2(n)A F0
-(])A .095(Cause the shell to e)144 208.8 R .095(xit with a status of)
--.15 F F2(n)2.595 E F0 5.095(.I)C(f)-5.095 E F2(n)2.955 E F0 .096
-(is omitted, the e)2.835 F .096(xit status is that of the last command)
--.15 F -.15(exe)144 220.8 S 2.5(cuted. A).15 F(trap on)2.5 E/F3 9
-/Times-Bold@0 SF(EXIT)2.5 E F0(is e)2.25 E -.15(xe)-.15 G
-(cuted before the shell terminates.).15 E F1(export)108 237.6 Q F0([)2.5
-E F1(\255fn)A F0 2.5(][).833 G F2(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E
-F0(]] ...)A F1(export \255p)108 249.6 Q F0 .257(The supplied)144 261.6 R
-F2(names)3.117 E F0 .257(are mark)3.027 F .257(ed for automatic e)-.1 F
-.257(xport to the en)-.15 F .257(vironment of subsequently e)-.4 F -.15
-(xe)-.15 G(cuted).15 E 2.626(commands. If)144 273.6 R(the)2.626 E F1
-<ad66>2.626 E F0 .127(option is gi)2.627 F -.15(ve)-.25 G .127(n, the)
-.15 F F2(names)2.987 E F0 .127(refer to functions.)2.897 F .127(If no)
-5.127 F F2(names)2.987 E F0 .127(are gi)2.897 F -.15(ve)-.25 G .127
-(n, or if the).15 F F1<ad70>144 285.6 Q F0 .048
-(option is supplied, a list of names of all e)2.548 F .048(xported v)
--.15 F .048(ariables is printed.)-.25 F(The)5.048 E F1<ad6e>2.547 E F0
-.047(option causes the)2.547 F -.15(ex)144 297.6 S 1.446
-(port property to be remo).15 F -.15(ve)-.15 G 3.947(df).15 G 1.447
+SF(exit)108 84 Q F0([)2.5 E/F2 10/Times-Italic@0 SF(n)A F0(])A .096
+(Cause the shell to e)144 84 R .096(xit with a status of)-.15 F F2(n)
+2.596 E F0 5.096(.I)C(f)-5.096 E F2(n)2.955 E F0 .095(is omitted, the e)
+2.835 F .095(xit status is that of the last command)-.15 F -.15(exe)144
+96 S 2.5(cuted. A).15 F(trap on)2.5 E/F3 9/Times-Bold@0 SF(EXIT)2.5 E F0
+(is e)2.25 E -.15(xe)-.15 G(cuted before the shell terminates.).15 E F1
+(export)108 112.8 Q F0([)2.5 E F1(\255fn)A F0 2.5(][).833 G F2(name)-2.5
+E F0([=)A F2(wor)A(d)-.37 E F0(]] ...)A F1(export \255p)108 124.8 Q F0
+.256(The supplied)144 136.8 R F2(names)3.117 E F0 .257(are mark)3.027 F
+.257(ed for automatic e)-.1 F .257(xport to the en)-.15 F .257
+(vironment of subsequently e)-.4 F -.15(xe)-.15 G(cuted).15 E 2.627
+(commands. If)144 148.8 R(the)2.627 E F1<ad66>2.627 E F0 .127
+(option is gi)2.627 F -.15(ve)-.25 G .127(n, the).15 F F2(names)2.987 E
+F0 .127(refer to functions.)2.897 F .127(If no)5.127 F F2(names)2.987 E
+F0 .127(are gi)2.897 F -.15(ve)-.25 G .126(n, or if the).15 F F1<ad70>
+144 160.8 Q F0 .048(option is supplied, a list of names of all e)2.547 F
+.048(xported v)-.15 F .048(ariables is printed.)-.25 F(The)5.048 E F1
+<ad6e>2.548 E F0 .048(option causes the)2.548 F -.15(ex)144 172.8 S
+1.447(port property to be remo).15 F -.15(ve)-.15 G 3.947(df).15 G 1.447
(rom each)-3.947 F F2(name)3.947 E F0 6.447(.I)C 3.947(fav)-6.447 G
1.447(ariable name is follo)-4.197 F 1.447(wed by =)-.25 F F2(wor)A(d)
--.37 E F0 3.947(,t)C(he)-3.947 E -.25(va)144 309.6 S .742(lue of the v)
-.25 F .742(ariable is set to)-.25 F F2(wor)3.242 E(d)-.37 E F0(.)A F1
-(export)5.742 E F0 .742(returns an e)3.242 F .741
-(xit status of 0 unless an in)-.15 F -.25(va)-.4 G .741(lid option is)
-.25 F .031(encountered, one of the)144 321.6 R F2(names)2.531 E F0 .031
-(is not a v)2.531 F .032(alid shell v)-.25 F .032(ariable name, or)-.25
-F F1<ad66>2.532 E F0 .032(is supplied with a)2.532 F F2(name)2.892 E F0
-(that)2.712 E(is not a function.)144 333.6 Q F1(fc)108 350.4 Q F0([)2.5
+-.37 E F0 3.946(,t)C(he)-3.946 E -.25(va)144 184.8 S .741(lue of the v)
+.25 F .741(ariable is set to)-.25 F F2(wor)3.241 E(d)-.37 E F0(.)A F1
+(export)5.741 E F0 .742(returns an e)3.242 F .742
+(xit status of 0 unless an in)-.15 F -.25(va)-.4 G .742(lid option is)
+.25 F .032(encountered, one of the)144 196.8 R F2(names)2.532 E F0 .032
+(is not a v)2.532 F .032(alid shell v)-.25 F .032(ariable name, or)-.25
+F F1<ad66>2.531 E F0 .031(is supplied with a)2.531 F F2(name)2.891 E F0
+(that)2.711 E(is not a function.)144 208.8 Q F1(fc)108 225.6 Q F0([)2.5
E F1<ad65>A F2(ename)2.5 E F0 2.5(][)C F1(\255lnr)-2.5 E F0 2.5(][)C F2
<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F2(last)-2.5 E F0(])A F1(fc \255s)108
-362.4 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2
-(cmd)-2.5 E F0(])A .432
-(The \214rst form selects a range of commands from)144 374.4 R F2<8c72>
-4.842 E(st)-.1 E F0(to)3.612 E F2(last)3.022 E F0 .431
-(from the history list and displays or)3.612 F .141(edits and re-e)144
-386.4 R -.15(xe)-.15 G .141(cutes them.).15 F F2 -.45(Fi)5.141 G -.1(rs)
+237.6 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2
+(cmd)-2.5 E F0(])A .431
+(The \214rst form selects a range of commands from)144 249.6 R F2<8c72>
+4.842 E(st)-.1 E F0(to)3.612 E F2(last)3.022 E F0 .432
+(from the history list and displays or)3.612 F .142(edits and re-e)144
+261.6 R -.15(xe)-.15 G .142(cutes them.).15 F F2 -.45(Fi)5.141 G -.1(rs)
.45 G(t).1 E F0(and)3.321 E F2(last)2.731 E F0 .141
(may be speci\214ed as a string \(to locate the last command)3.321 F(be)
-144 398.4 Q .311(ginning with that string\) or as a number \(an inde)
--.15 F 2.811(xi)-.15 G .31(nto the history list, where a ne)-2.811 F
--.05(ga)-.15 G(ti).05 E .61 -.15(ve n)-.25 H(umber).15 E .071
-(is used as an of)144 410.4 R .071
+144 273.6 Q .31(ginning with that string\) or as a number \(an inde)-.15
+F 2.811(xi)-.15 G .311(nto the history list, where a ne)-2.811 F -.05
+(ga)-.15 G(ti).05 E .611 -.15(ve n)-.25 H(umber).15 E .071
+(is used as an of)144 285.6 R .071
(fset from the current command number\).)-.25 F .071(When listing, a)
5.071 F F2<8c72>2.571 E(st)-.1 E F0(or)2.571 E F2(last)2.571 E F0 .071
(of 0 is equi)2.571 F -.25(va)-.25 G(-).25 E .653
-(lent to \2551 and \2550 is equi)144 422.4 R -.25(va)-.25 G .653
+(lent to \2551 and \2550 is equi)144 297.6 R -.25(va)-.25 G .653
(lent to the current command \(usually the).25 F F1(fc)3.153 E F0 .653
-(command\); otherwise 0 is)3.153 F(equi)144 434.4 Q -.25(va)-.25 G .242
+(command\); otherwise 0 is)3.153 F(equi)144 309.6 Q -.25(va)-.25 G .242
(lent to \2551 and \2550 is in).25 F -.25(va)-.4 G 2.742(lid. If).25 F
F2(last)2.832 E F0 .242
(is not speci\214ed, it is set to the current command for list-)3.422 F
-.093(ing \(so that)144 446.4 R/F4 10/Courier@0 SF .093(fc \255l \25510)
-2.593 F F0 .093(prints the last 10 commands\) and to)2.593 F F2<8c72>
-4.502 E(st)-.1 E F0 2.592(otherwise. If)3.272 F F2<8c72>4.502 E(st)-.1 E
-F0 .092(is not speci-)3.272 F(\214ed, it is set to the pre)144 458.4 Q
-(vious command for editing and \25516 for listing.)-.25 E(The)144 482.4
+.092(ing \(so that)144 321.6 R/F4 10/Courier@0 SF .092(fc \255l \25510)
+2.592 F F0 .093(prints the last 10 commands\) and to)2.592 F F2<8c72>
+4.503 E(st)-.1 E F0 2.593(otherwise. If)3.273 F F2<8c72>4.503 E(st)-.1 E
+F0 .093(is not speci-)3.273 F(\214ed, it is set to the pre)144 333.6 Q
+(vious command for editing and \25516 for listing.)-.25 E(The)144 357.6
Q F1<ad6e>2.522 E F0 .022
(option suppresses the command numbers when listing.)2.522 F(The)5.022 E
F1<ad72>2.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022
-(rses the order of).15 F .438(the commands.)144 494.4 R .438(If the)
+(rses the order of).15 F .438(the commands.)144 369.6 R .438(If the)
5.438 F F1<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438
(n, the commands are listed on standard output.).15 F(Otherwise,)5.438 E
-.334(the editor gi)144 506.4 R -.15(ve)-.25 G 2.834(nb).15 G(y)-2.834 E
-F2(ename)3.024 E F0 .335(is in)3.014 F -.2(vo)-.4 G -.1(ke).2 G 2.835
+.335(the editor gi)144 381.6 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E
+F2(ename)3.025 E F0 .335(is in)3.015 F -.2(vo)-.4 G -.1(ke).2 G 2.835
(do).1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835
-F(If)5.335 E F2(ename)3.025 E F0 .335(is not gi)3.015 F -.15(ve)-.25 G
-(n,).15 E .631(the v)144 518.4 R .631(alue of the)-.25 F F3(FCEDIT)3.131
-E F0 -.25(va)2.881 G .631(riable is used, and the v).25 F .631(alue of)
--.25 F F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.13 E F0 .63
-(is not set.)2.88 F .63(If nei-)5.63 F .005(ther v)144 530.4 R .005
+F(If)5.334 E F2(ename)3.024 E F0 .334(is not gi)3.014 F -.15(ve)-.25 G
+(n,).15 E .63(the v)144 393.6 R .63(alue of the)-.25 F F3(FCEDIT)3.13 E
+F0 -.25(va)2.88 G .631(riable is used, and the v).25 F .631(alue of)-.25
+F F3(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F3(FCEDIT)3.131 E F0 .631
+(is not set.)2.881 F .631(If nei-)5.631 F .006(ther v)144 405.6 R .006
(ariable is set,)-.25 F F2(vi)4.171 E F0 .005(is used.)4.171 F .005
(When editing is complete, the edited commands are echoed and e)5.005 F
-(x-)-.15 E(ecuted.)144 542.4 Q .789(In the second form,)144 566.4 R F2
+(x-)-.15 E(ecuted.)144 417.6 Q .788(In the second form,)144 441.6 R F2
(command)3.288 E F0 .788(is re-e)3.288 F -.15(xe)-.15 G .788
(cuted after each instance of).15 F F2(pat)3.288 E F0 .788
-(is replaced by)3.288 F F2 -.37(re)3.288 G(p).37 E F0(.)A F2(Com-)5.788
-E(mand)144 578.4 Q F0 .171(is interpreted the same as)2.671 F F2<8c72>
-2.671 E(st)-.1 E F0(abo)2.671 E -.15(ve)-.15 G 5.171(.A).15 G .172
-(useful alias to use with this is)-2.499 F F4 .172(r='fc \255s')2.672 F
-F0 2.672(,s)C 2.672(ot)-2.672 G(hat)-2.672 E(typing)144 590.4 Q F4 7.166
-(rc)3.666 G(c)-7.166 E F0 1.166(runs the last command be)3.666 F 1.166
-(ginning with)-.15 F F4(cc)3.666 E F0 1.165(and typing)3.666 F F4(r)
-3.665 E F0(re-e)3.665 E -.15(xe)-.15 G 1.165(cutes the last com-).15 F
-(mand.)144 602.4 Q .142(If the \214rst form is used, the return v)144
-626.4 R .142(alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
+(is replaced by)3.288 F F2 -.37(re)3.289 G(p).37 E F0(.)A F2(Com-)5.789
+E(mand)144 453.6 Q F0 .172(is interpreted the same as)2.672 F F2<8c72>
+2.672 E(st)-.1 E F0(abo)2.672 E -.15(ve)-.15 G 5.172(.A).15 G .171
+(useful alias to use with this is)-2.5 F F4 .171(r='fc \255s')2.671 F F0
+2.671(,s)C 2.671(ot)-2.671 G(hat)-2.671 E(typing)144 465.6 Q F4 7.165
+(rc)3.665 G(c)-7.165 E F0 1.165(runs the last command be)3.665 F 1.166
+(ginning with)-.15 F F4(cc)3.666 E F0 1.166(and typing)3.666 F F4(r)
+3.666 E F0(re-e)3.666 E -.15(xe)-.15 G 1.166(cutes the last com-).15 F
+(mand.)144 477.6 Q .142(If the \214rst form is used, the return v)144
+501.6 R .142(alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
(lid option is encountered or).25 F F2<8c72>4.552 E(st)-.1 E F0(or)3.322
-E F2(last)2.732 E F0 .455(specify history lines out of range.)144 638.4
+E F2(last)2.732 E F0 .454(specify history lines out of range.)144 513.6
R .454(If the)5.454 F F1<ad65>2.954 E F0 .454
-(option is supplied, the return v)2.954 F .454(alue is the v)-.25 F .454
-(alue of the)-.25 F .787(last command e)144 650.4 R -.15(xe)-.15 G .787
-(cuted or f).15 F .788
+(option is supplied, the return v)2.954 F .455(alue is the v)-.25 F .455
+(alue of the)-.25 F .788(last command e)144 525.6 R -.15(xe)-.15 G .788
+(cuted or f).15 F .787
(ailure if an error occurs with the temporary \214le of commands.)-.1 F
-.788(If the)5.788 F 1.136
+.787(If the)5.787 F 1.135
(second form is used, the return status is that of the command re-e)144
-662.4 R -.15(xe)-.15 G 1.135(cuted, unless).15 F F2(cmd)3.835 E F0 1.135
-(does not)4.405 F(specify a v)144 674.4 Q
+537.6 R -.15(xe)-.15 G 1.136(cuted, unless).15 F F2(cmd)3.836 E F0 1.136
+(does not)4.406 F(specify a v)144 549.6 Q
(alid history line, in which case)-.25 E F1(fc)2.5 E F0(returns f)2.5 E
-(ailure.)-.1 E F1(fg)108 691.2 Q F0([)2.5 E F2(jobspec)A F0(])A(Resume)
-144 703.2 Q F2(jobspec)5.653 E F0 1.413(in the fore)4.223 F 1.413
+(ailure.)-.1 E F1(fg)108 566.4 Q F0([)2.5 E F2(jobspec)A F0(])A(Resume)
+144 578.4 Q F2(jobspec)5.654 E F0 1.413(in the fore)4.224 F 1.413
(ground, and mak)-.15 F 3.913(ei)-.1 G 3.913(tt)-3.913 G 1.413
(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F2(jobspec)5.653 E F0
-1.414(is not present, the)4.223 F(shell')144 715.2 Q 3.117(sn)-.55 G
-.617(otion of the)-3.117 F F2(curr)3.117 E .617(ent job)-.37 F F0 .617
-(is used.)3.117 F .617(The return v)5.617 F .616
-(alue is that of the command placed into the)-.25 F(fore)144 727.2 Q
-.362(ground, or f)-.15 F .362
-(ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .363
-(hen run with job control enabled, if)-2.862 F(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(64)190.395 E 0 Cg EP
-%%Page: 65 65
+1.413(is not present, the)4.223 F(shell')144 590.4 Q 3.116(sn)-.55 G
+.616(otion of the)-3.116 F F2(curr)3.116 E .616(ent job)-.37 F F0 .617
+(is used.)3.116 F .617(The return v)5.617 F .617
+(alue is that of the command placed into the)-.25 F(fore)144 602.4 Q
+.363(ground, or f)-.15 F .363
+(ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .362
+(hen run with job control enabled, if)-2.862 F F2(jobspec)145.74 614.4 Q
+F0(does not specify a v)2.81 E(alid job or)-.25 E F2(jobspec)4.24 E F0
+(speci\214es a job that w)2.81 E(as started without job control.)-.1 E
+F1(getopts)108 631.2 Q F2(optstring name)2.5 E F0([)2.5 E F2(ar)A 2.5
+(g.)-.37 G(..)-2.5 E F0(])A F1(getopts)144 643.2 Q F0 .793
+(is used by shell procedures to parse positional parameters.)3.293 F F2
+(optstring)6.023 E F0 .793(contains the option)3.513 F .15
+(characters to be recognized; if a character is follo)144 655.2 R .149
+(wed by a colon, the option is e)-.25 F .149(xpected to ha)-.15 F .449
+-.15(ve a)-.2 H(n).15 E(ar)144 667.2 Q .578
+(gument, which should be separated from it by white space.)-.18 F .579
+(The colon and question mark char)5.579 F(-)-.2 E .636
+(acters may not be used as option characters.)144 679.2 R .636
+(Each time it is in)5.636 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F1(getopts)
+3.136 E F0 .636(places the ne)3.136 F .635(xt op-)-.15 F .029
+(tion in the shell v)144 691.2 R(ariable)-.25 E F2(name)2.889 E F0 2.529
+(,i).18 G(nitializing)-2.529 E F2(name)2.889 E F0 .029(if it does not e)
+2.709 F .03(xist, and the inde)-.15 F 2.53(xo)-.15 G 2.53(ft)-2.53 G .03
+(he ne)-2.53 F .03(xt ar)-.15 F(gu-)-.18 E .066
+(ment to be processed into the v)144 703.2 R(ariable)-.25 E F3(OPTIND)
+2.566 E/F5 9/Times-Roman@0 SF(.)A F3(OPTIND)4.566 E F0 .065
+(is initialized to 1 each time the shell or a)2.315 F .885
+(shell script is in)144 715.2 R -.2(vo)-.4 G -.1(ke).2 G 3.385(d. When)
+.1 F .885(an option requires an ar)3.385 F(gument,)-.18 E F1(getopts)
+3.385 E F0 .885(places that ar)3.385 F .885(gument into)-.18 F .567
+(the v)144 727.2 R(ariable)-.25 E F3(OPT)3.067 E(ARG)-.81 E F5(.)A F0
+.566(The shell does not reset)5.067 F F3(OPTIND)3.066 E F0 .566
+(automatically; it must be manually reset)2.816 F(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(67)185.115 E 0 Cg EP
+%%Page: 68 68
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10
-/Times-Italic@0 SF(jobspec)145.74 84 Q F0(does not specify a v)2.81 E
-(alid job or)-.25 E F1(jobspec)4.24 E F0(speci\214es a job that w)2.81 E
-(as started without job control.)-.1 E/F2 10/Times-Bold@0 SF(getopts)108
-100.8 Q F1(optstring name)2.5 E F0([)2.5 E F1(ar)A 2.5(g.)-.37 G(..)-2.5
-E F0(])A F2(getopts)144 112.8 Q F0 .793
-(is used by shell procedures to parse positional parameters.)3.294 F F1
-(optstring)6.023 E F0 .793(contains the option)3.513 F .149
-(characters to be recognized; if a character is follo)144 124.8 R .15
-(wed by a colon, the option is e)-.25 F .15(xpected to ha)-.15 F .45
--.15(ve a)-.2 H(n).15 E(ar)144 136.8 Q .579
-(gument, which should be separated from it by white space.)-.18 F .578
-(The colon and question mark char)5.579 F(-)-.2 E .636
-(acters may not be used as option characters.)144 148.8 R .636
-(Each time it is in)5.636 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F2(getopts)
-3.136 E F0 .636(places the ne)3.136 F .636(xt op-)-.15 F .03
-(tion in the shell v)144 160.8 R(ariable)-.25 E F1(name)2.89 E F0 2.53
-(,i).18 G(nitializing)-2.53 E F1(name)2.89 E F0 .029(if it does not e)
-2.71 F .029(xist, and the inde)-.15 F 2.529(xo)-.15 G 2.529(ft)-2.529 G
-.029(he ne)-2.529 F .029(xt ar)-.15 F(gu-)-.18 E .065
-(ment to be processed into the v)144 172.8 R(ariable)-.25 E/F3 9
-/Times-Bold@0 SF(OPTIND)2.565 E/F4 9/Times-Roman@0 SF(.)A F3(OPTIND)
-4.565 E F0 .066(is initialized to 1 each time the shell or a)2.315 F
-.885(shell script is in)144 184.8 R -.2(vo)-.4 G -.1(ke).2 G 3.385
-(d. When).1 F .885(an option requires an ar)3.385 F(gument,)-.18 E F2
-(getopts)3.385 E F0 .885(places that ar)3.385 F .885(gument into)-.18 F
-.566(the v)144 196.8 R(ariable)-.25 E F3(OPT)3.066 E(ARG)-.81 E F4(.)A
-F0 .566(The shell does not reset)5.066 F F3(OPTIND)3.066 E F0 .567
-(automatically; it must be manually reset)2.816 F .39
-(between multiple calls to)144 208.8 R F2(getopts)2.89 E F0 .39
-(within the same shell in)2.89 F -.2(vo)-.4 G .389(cation if a ne).2 F
-2.889(ws)-.25 G .389(et of parameters is to)-2.889 F(be used.)144 220.8
-Q 2.043(When the end of options is encountered,)144 244.8 R F2(getopts)
-4.543 E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.044
-(alue greater than zero.)-.25 F F3(OPTIND)144 256.8 Q F0
-(is set to the inde)2.25 E 2.5(xo)-.15 G 2.5(ft)-2.5 G
-(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F1(name)2.5 E F0
-(is set to ?.)2.5 E F2(getopts)144 280.8 Q F0 .485
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .389
+(between multiple calls to)144 84 R/F1 10/Times-Bold@0 SF(getopts)2.889
+E F0 .389(within the same shell in)2.889 F -.2(vo)-.4 G .39
+(cation if a ne).2 F 2.89(ws)-.25 G .39(et of parameters is to)-2.89 F
+(be used.)144 96 Q 2.044(When the end of options is encountered,)144 120
+R F1(getopts)4.543 E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F
+2.043(alue greater than zero.)-.25 F/F2 9/Times-Bold@0 SF(OPTIND)144 132
+Q F0(is set to the inde)2.25 E 2.5(xo)-.15 G 2.5(ft)-2.5 G
+(he \214rst non-option ar)-2.5 E(gument, and)-.18 E/F3 10/Times-Italic@0
+SF(name)2.5 E F0(is set to ?.)2.5 E F1(getopts)144 156 Q F0 .485
(normally parses the positional parameters, b)2.985 F .485
-(ut if more ar)-.2 F .485(guments are supplied as)-.18 F F1(ar)3.315 E
-(g)-.37 E F0 -.25(va)3.205 G(l-).25 E(ues,)144 292.8 Q F2(getopts)2.5 E
-F0(parses those instead.)2.5 E F2(getopts)144 316.8 Q F0 .345
+(ut if more ar)-.2 F .485(guments are supplied as)-.18 F F3(ar)3.315 E
+(g)-.37 E F0 -.25(va)3.205 G(l-).25 E(ues,)144 168 Q F1(getopts)2.5 E F0
+(parses those instead.)2.5 E F1(getopts)144 192 Q F0 .345
(can report errors in tw)2.845 F 2.845(ow)-.1 G 2.845(ays. If)-2.945 F
-.345(the \214rst character of)2.845 F F1(optstring)3.075 E F0 .345
-(is a colon,)3.065 F F1(silent)3.185 E F0 .345(error re-)3.525 F 1.669
-(porting is used.)144 328.8 R 1.668
-(In normal operation, diagnostic messages are printed when in)6.669 F
--.25(va)-.4 G 1.668(lid options or).25 F .393(missing option ar)144
-340.8 R .393(guments are encountered.)-.18 F .394(If the v)5.394 F
-(ariable)-.25 E F3(OPTERR)2.894 E F0 .394
-(is set to 0, no error messages)2.644 F(will be displayed, e)144 352.8 Q
--.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214rst character of)-2.5 E
-F1(optstring)2.73 E F0(is not a colon.)2.72 E .667(If an in)144 376.8 R
--.25(va)-.4 G .667(lid option is seen,).25 F F2(getopts)3.167 E F0 .667
-(places ? into)3.167 F F1(name)3.527 E F0 .666
-(and, if not silent, prints an error message)3.347 F .399(and unsets)144
-388.8 R F3(OPT)2.899 E(ARG)-.81 E F4(.)A F0(If)4.899 E F2(getopts)2.899
-E F0 .399(is silent, the option character found is placed in)2.899 F F3
-(OPT)2.899 E(ARG)-.81 E F0 .4(and no)2.65 F
-(diagnostic message is printed.)144 400.8 Q 1.242(If a required ar)144
-424.8 R 1.242(gument is not found, and)-.18 F F2(getopts)3.741 E F0
-1.241(is not silent, a question mark \()3.741 F F2(?).833 E F0 3.741
-(\)i).833 G 3.741(sp)-3.741 G 1.241(laced in)-3.741 F F1(name)144.36
-436.8 Q F0(,).18 E F3(OPT)2.713 E(ARG)-.81 E F0 .213
-(is unset, and a diagnostic message is printed.)2.463 F(If)5.213 E F2
-(getopts)2.713 E F0 .213(is silent, then a colon \()2.713 F F2(:).833 E
-F0(\)).833 E(is placed in)144 448.8 Q F1(name)2.86 E F0(and)2.68 E F3
-(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F2
-(getopts)144 472.8 Q F0 .902
+.345(the \214rst character of)2.845 F F3(optstring)3.075 E F0 .345
+(is a colon,)3.065 F F3(silent)3.185 E F0 .345(error re-)3.525 F 1.668
+(porting is used.)144 204 R 1.668
+(In normal operation, diagnostic messages are printed when in)6.668 F
+-.25(va)-.4 G 1.669(lid options or).25 F .394(missing option ar)144 216
+R .394(guments are encountered.)-.18 F .394(If the v)5.394 F(ariable)
+-.25 E F2(OPTERR)2.894 E F0 .394(is set to 0, no error messages)2.644 F
+(will be displayed, e)144 228 Q -.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5
+G(he \214rst character of)-2.5 E F3(optstring)2.73 E F0(is not a colon.)
+2.72 E .666(If an in)144 252 R -.25(va)-.4 G .666(lid option is seen,)
+.25 F F1(getopts)3.166 E F0 .667(places ? into)3.167 F F3(name)3.527 E
+F0 .667(and, if not silent, prints an error message)3.347 F .4
+(and unsets)144 264 R F2(OPT)2.9 E(ARG)-.81 E/F4 9/Times-Roman@0 SF(.)A
+F0(If)4.899 E F1(getopts)2.899 E F0 .399
+(is silent, the option character found is placed in)2.899 F F2(OPT)2.899
+E(ARG)-.81 E F0 .399(and no)2.649 F(diagnostic message is printed.)144
+276 Q 1.241(If a required ar)144 300 R 1.241(gument is not found, and)
+-.18 F F1(getopts)3.741 E F0 1.241(is not silent, a question mark \()
+3.741 F F1(?).833 E F0 3.742(\)i).833 G 3.742(sp)-3.742 G 1.242
+(laced in)-3.742 F F3(name)144.36 312 Q F0(,).18 E F2(OPT)2.714 E(ARG)
+-.81 E F0 .213(is unset, and a diagnostic message is printed.)2.463 F
+(If)5.213 E F1(getopts)2.713 E F0 .213(is silent, then a colon \()2.713
+F F1(:).833 E F0(\)).833 E(is placed in)144 324 Q F3(name)2.86 E F0(and)
+2.68 E F2(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)
+2.25 E F1(getopts)144 348 Q F0 .902
(returns true if an option, speci\214ed or unspeci\214ed, is found.)
-3.402 F .902(It returns f)5.902 F .901(alse if the end of)-.1 F
-(options is encountered or an error occurs.)144 484.8 Q F2(hash)108
-501.6 Q F0([)2.5 E F2(\255lr)A F0 2.5(][)C F2<ad70>-2.5 E F1(\214lename)
-2.5 E F0 2.5(][)C F2(\255dt)-2.5 E F0 2.5(][)C F1(name)-2.5 E F0(])A
-.858(Each time)144 513.6 R F2(hash)3.358 E F0 .858(is in)3.358 F -.2(vo)
--.4 G -.1(ke).2 G .858(d, the full pathname of the command).1 F F1(name)
+3.401 F .902(It returns f)5.902 F .902(alse if the end of)-.1 F
+(options is encountered or an error occurs.)144 360 Q F1(hash)108 376.8
+Q F0([)2.5 E F1(\255lr)A F0 2.5(][)C F1<ad70>-2.5 E F3(\214lename)2.5 E
+F0 2.5(][)C F1(\255dt)-2.5 E F0 2.5(][)C F3(name)-2.5 E F0(])A .858
+(Each time)144 388.8 R F1(hash)3.358 E F0 .858(is in)3.358 F -.2(vo)-.4
+G -.1(ke).2 G .858(d, the full pathname of the command).1 F F3(name)
3.718 E F0 .858(is determined by searching)3.538 F .956
-(the directories in)144 525.6 R F2($P)3.456 E -.95(AT)-.74 G(H).95 E F0
+(the directories in)144 400.8 R F1($P)3.456 E -.95(AT)-.74 G(H).95 E F0
.956(and remembered.)3.456 F(An)5.956 E 3.456(yp)-.15 G(re)-3.456 E .956
-(viously-remembered pathname is discarded.)-.25 F .242(If the)144 537.6
-R F2<ad70>2.742 E F0 .243
-(option is supplied, no path search is performed, and)2.742 F F1
-(\214lename)4.653 E F0 .243(is used as the full \214lename)2.923 F .615
-(of the command.)144 549.6 R(The)5.615 E F2<ad72>3.115 E F0 .615
+(viously-remembered pathname is discarded.)-.25 F .243(If the)144 412.8
+R F1<ad70>2.743 E F0 .243
+(option is supplied, no path search is performed, and)2.743 F F3
+(\214lename)4.653 E F0 .242(is used as the full \214lename)2.923 F .615
+(of the command.)144 424.8 R(The)5.615 E F1<ad72>3.115 E F0 .615
(option causes the shell to for)3.115 F .615
-(get all remembered locations.)-.18 F(The)5.615 E F2<ad64>3.115 E F0
-(op-)3.115 E .293(tion causes the shell to for)144 561.6 R .293
-(get the remembered location of each)-.18 F F1(name)2.794 E F0 5.294(.I)
-C 2.794(ft)-5.294 G(he)-2.794 E F2<ad74>2.794 E F0 .294
-(option is supplied,)2.794 F .028(the full pathname to which each)144
-573.6 R F1(name)2.528 E F0 .028(corresponds is printed.)2.528 F .028
-(If multiple)5.028 F F1(name)2.528 E F0(ar)2.528 E .028
-(guments are sup-)-.18 F .175(plied with)144 585.6 R F2<ad74>2.675 E F0
-2.675(,t)C(he)-2.675 E F1(name)2.675 E F0 .175
-(is printed before the hashed full pathname.)2.675 F(The)5.175 E F2
-<ad6c>2.676 E F0 .176(option causes output to)2.676 F .783
-(be displayed in a format that may be reused as input.)144 597.6 R .783
+(get all remembered locations.)-.18 F(The)5.615 E F1<ad64>3.115 E F0
+(op-)3.115 E .294(tion causes the shell to for)144 436.8 R .294
+(get the remembered location of each)-.18 F F3(name)2.793 E F0 5.293(.I)
+C 2.793(ft)-5.293 G(he)-2.793 E F1<ad74>2.793 E F0 .293
+(option is supplied,)2.793 F .028(the full pathname to which each)144
+448.8 R F3(name)2.528 E F0 .028(corresponds is printed.)2.528 F .028
+(If multiple)5.028 F F3(name)2.528 E F0(ar)2.528 E .028
+(guments are sup-)-.18 F .176(plied with)144 460.8 R F1<ad74>2.676 E F0
+2.676(,t)C(he)-2.676 E F3(name)2.676 E F0 .175
+(is printed before the hashed full pathname.)2.676 F(The)5.175 E F1
+<ad6c>2.675 E F0 .175(option causes output to)2.675 F .783
+(be displayed in a format that may be reused as input.)144 472.8 R .783
(If no ar)5.783 F .783(guments are gi)-.18 F -.15(ve)-.25 G .783
-(n, or if only).15 F F2<ad6c>3.283 E F0(is)3.283 E .807
-(supplied, information about remembered commands is printed.)144 609.6 R
-.807(The return status is true unless a)5.807 F F1(name)144.36 621.6 Q
+(n, or if only).15 F F1<ad6c>3.283 E F0(is)3.283 E .807
+(supplied, information about remembered commands is printed.)144 484.8 R
+.807(The return status is true unless a)5.807 F F3(name)144.36 496.8 Q
F0(is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.)
-.25 E F2(help)108 638.4 Q F0([)2.5 E F2(\255dms)A F0 2.5(][)C F1
-(pattern)-2.5 E F0(])A .867(Display helpful information about b)144
-650.4 R .867(uiltin commands.)-.2 F(If)5.867 E F1(pattern)4.617 E F0
-.866(is speci\214ed,)3.607 F F2(help)3.366 E F0(gi)3.366 E -.15(ve)-.25
-G 3.366(sd).15 G(etailed)-3.366 E .223(help on all commands matching)144
-662.4 R F1(pattern)3.973 E F0 2.723(;o).24 G .223
-(therwise help for all the b)-2.723 F .224
-(uiltins and shell control struc-)-.2 F(tures is printed.)144 674.4 Q F2
-<ad64>144 686.4 Q F0(Display a short description of each)180 686.4 Q F1
-(pattern)2.5 E F2<ad6d>144 698.4 Q F0(Display the description of each)
-180 698.4 Q F1(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G
-(ormat)-2.5 E F2<ad73>144 710.4 Q F0
-(Display only a short usage synopsis for each)180 710.4 Q F1(pattern)2.5
-E F0(The return status is 0 unless no command matches)144 727.2 Q F1
-(pattern)3.75 E F0(.).24 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235
-E(65)190.395 E 0 Cg EP
-%%Page: 66 66
+.25 E F1(help)108 513.6 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F3
+(pattern)-2.5 E F0(])A .866(Display helpful information about b)144
+525.6 R .867(uiltin commands.)-.2 F(If)5.867 E F3(pattern)4.617 E F0
+.867(is speci\214ed,)3.607 F F1(help)3.367 E F0(gi)3.367 E -.15(ve)-.25
+G 3.367(sd).15 G(etailed)-3.367 E .224(help on all commands matching)144
+537.6 R F3(pattern)3.974 E F0 2.723(;o).24 G .223
+(therwise help for all the b)-2.723 F .223
+(uiltins and shell control struc-)-.2 F(tures is printed.)144 549.6 Q F1
+<ad64>144 561.6 Q F0(Display a short description of each)180 561.6 Q F3
+(pattern)2.5 E F1<ad6d>144 573.6 Q F0(Display the description of each)
+180 573.6 Q F3(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G
+(ormat)-2.5 E F1<ad73>144 585.6 Q F0
+(Display only a short usage synopsis for each)180 585.6 Q F3(pattern)2.5
+E F0(The return status is 0 unless no command matches)144 602.4 Q F3
+(pattern)3.75 E F0(.).24 E F1(history [)108 619.2 Q F3(n)A F1(])A
+(history \255c)108 631.2 Q(history \255d)108 643.2 Q F3(of)2.5 E(fset)
+-.18 E F1(history \255d)108 655.2 Q F3(start)2.5 E F0<ad>A F3(end)A F1
+(history \255anrw)108 667.2 Q F0([)2.5 E F3(\214lename)A F0(])A F1
+(history \255p)108 679.2 Q F3(ar)2.5 E(g)-.37 E F0([)2.5 E F3(ar)A 2.5
+(g.)-.37 G(..)-2.5 E F0(])A F1(history \255s)108 691.2 Q F3(ar)2.5 E(g)
+-.37 E F0([)2.5 E F3(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144
+703.2 S .752
+(th no options, display the command history list with line numbers.).4 F
+.752(Lines listed with a)5.752 F F1(*)3.252 E F0(ha)3.252 E -.15(ve)-.2
+G .381(been modi\214ed.)144 715.2 R .38(An ar)5.38 F .38(gument of)-.18
+F F3(n)3.24 E F0 .38(lists only the last)3.12 F F3(n)3.24 E F0 2.88
+(lines. If)3.12 F .38(the shell v)2.88 F(ariable)-.25 E F2(HISTTIMEFOR-)
+2.88 E(MA)144 727.2 Q(T)-.855 E F0 1.491
+(is set and not null, it is used as a format string for)3.741 F F3
+(strftime)3.992 E F0 1.492(\(3\) to display the time stamp)B
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(68)185.115 E 0 Cg EP
+%%Page: 69 69
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(history [)108 84 Q/F2 10/Times-Italic@0 SF(n)A F1(])A(history \255c)
-108 96 Q(history \255d)108 108 Q F2(of)2.5 E(fset)-.18 E F1
-(history \255d)108 120 Q F2(start)2.5 E F0<ad>A F2(end)A F1
-(history \255anrw)108 132 Q F0([)2.5 E F2(\214lename)A F0(])A F1
-(history \255p)108 144 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A 2.5(g.)
--.37 G(..)-2.5 E F0(])A F1(history \255s)108 156 Q F2(ar)2.5 E(g)-.37 E
-F0([)2.5 E F2(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144 168 S .752
-(th no options, display the command history list with line numbers.).4 F
-.752(Lines listed with a)5.752 F F1(*)3.251 E F0(ha)3.251 E -.15(ve)-.2
-G .38(been modi\214ed.)144 180 R .38(An ar)5.38 F .38(gument of)-.18 F
-F2(n)3.24 E F0 .38(lists only the last)3.12 F F2(n)3.24 E F0 2.88
-(lines. If)3.12 F .38(the shell v)2.88 F(ariable)-.25 E/F3 9
-/Times-Bold@0 SF(HISTTIMEFOR-)2.881 E(MA)144 192 Q(T)-.855 E F0 .265
-(is set and not null, it is used as a format string for)2.515 F F2
-(strftime)2.764 E F0 .264(\(3\) to display the time stamp asso-)B 1.019
-(ciated with each displayed history entry)144 204 R 6.019(.N)-.65 G
-3.519(oi)-6.019 G(nterv)-3.519 E 1.019
-(ening blank is printed between the formatted)-.15 F .176
-(time stamp and the history line.)144 216 R(If)5.176 E F2(\214lename)
-2.676 E F0 .176
-(is supplied, it is used as the name of the history \214le; if)2.676 F
-(not, the v)144 228 Q(alue of)-.25 E F3(HISTFILE)2.5 E F0(is used.)2.25
-E(Options, if supplied, ha)5 E .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad63>144 240 Q F0
-(Clear the history list by deleting all the entries.)180 240 Q F1<ad64>
-144 252 Q F2(of)2.5 E(fset)-.18 E F0 .389
-(Delete the history entry at position)180 264 R F2(of)2.889 E(fset)-.18
-E F0 5.389(.I)C(f)-5.389 E F2(of)2.889 E(fset)-.18 E F0 .389(is ne)2.889
-F -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G 2.89(,i).15 G 2.89(ti)-2.89 G
-2.89(si)-2.89 G .39(nterpreted as relati)-2.89 F -.15(ve)-.25 G .599
-(to one greater than the last history position, so ne)180 276 R -.05(ga)
--.15 G(ti).05 E .899 -.15(ve i)-.25 H .598
-(ndices count back from the end).15 F(of the history)180 288 Q 2.5(,a)
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .379
+(associated with each displayed history entry)144 84 R 5.379(.N)-.65 G
+2.878(oi)-5.379 G(nterv)-2.878 E .378
+(ening blank is printed between the format-)-.15 F .814
+(ted time stamp and the history line.)144 96 R(If)5.814 E/F1 10
+/Times-Italic@0 SF(\214lename)3.314 E F0 .814
+(is supplied, it is used as the name of the history)3.314 F
+(\214le; if not, the v)144 108 Q(alue of)-.25 E/F2 9/Times-Bold@0 SF
+(HISTFILE)2.5 E F0(is used.)2.25 E(Options, if supplied, ha)5 E .3 -.15
+(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E/F3 10/Times-Bold@0 SF
+<ad63>144 120 Q F0(Clear the history list by deleting all the entries.)
+180 120 Q F3<ad64>144 132 Q F1(of)2.5 E(fset)-.18 E F0 .39
+(Delete the history entry at position)180 144 R F1(of)2.889 E(fset)-.18
+E F0 5.389(.I)C(f)-5.389 E F1(of)2.889 E(fset)-.18 E F0 .389(is ne)2.889
+F -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G 2.889(,i).15 G 2.889(ti)-2.889
+G 2.889(si)-2.889 G .389(nterpreted as relati)-2.889 F -.15(ve)-.25 G
+.598(to one greater than the last history position, so ne)180 156 R -.05
+(ga)-.15 G(ti).05 E .899 -.15(ve i)-.25 H .599
+(ndices count back from the end).15 F(of the history)180 168 Q 2.5(,a)
-.65 G(nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5 G 2.5(1r)-2.5 G
-(efers to the current)-2.5 E F1(history -d)2.5 E F0(command.)2.5 E F1
-<ad64>144 300 Q F2(start)2.5 E F0<ad>A F2(end)A F0 .757
-(Delete the history entries between positions)180 312 R F2(start)3.257 E
-F0(and)3.258 E F2(end)3.258 E F0 3.258(,i)C(nclusi)-3.258 E -.15(ve)-.25
-G 5.758(.P).15 G(ositi)-5.758 E 1.058 -.15(ve a)-.25 H .758(nd ne).15 F
--.05(ga)-.15 G(-).05 E(ti)180 324 Q .3 -.15(ve v)-.25 H(alues for)-.1 E
-F2(start)2.5 E F0(and)2.5 E F2(end)2.5 E F0
-(are interpreted as described abo)2.5 E -.15(ve)-.15 G(.).15 E F1<ad61>
-144 336 Q F0 .565(Append the `)180 336 R(`ne)-.74 E(w')-.25 E 3.065('h)
--.74 G .564(istory lines to the history \214le.)-3.065 F .564
-(These are history lines entered since)5.564 F(the be)180 348 Q
-(ginning of the current)-.15 E F1(bash)2.5 E F0(session, b)2.5 E
-(ut not already appended to the history \214le.)-.2 E F1<ad6e>144 360 Q
+(efers to the current)-2.5 E F3(history -d)2.5 E F0(command.)2.5 E F3
+<ad64>144 180 Q F1(start)2.5 E F0<ad>A F1(end)A F0 1.25
+(Delete the range of history entries between positions)180 192 R F1
+(start)3.75 E F0(and)3.75 E F1(end)3.75 E F0 3.75(,i)C(nclusi)-3.75 E
+-.15(ve)-.25 G 6.25(.P).15 G(ositi)-6.25 E -.15(ve)-.25 G(and ne)180 204
+Q -.05(ga)-.15 G(ti).05 E .3 -.15(ve v)-.25 H(alues for)-.1 E F1(start)
+2.5 E F0(and)2.5 E F1(end)2.5 E F0(are interpreted as described abo)2.5
+E -.15(ve)-.15 G(.).15 E F3<ad61>144 216 Q F0 .564(Append the `)180 216
+R(`ne)-.74 E(w')-.25 E 3.064('h)-.74 G .564
+(istory lines to the history \214le.)-3.064 F .565
+(These are history lines entered since)5.564 F(the be)180 228 Q
+(ginning of the current)-.15 E F3(bash)2.5 E F0(session, b)2.5 E
+(ut not already appended to the history \214le.)-.2 E F3<ad6e>144 240 Q
F0 .854(Read the history lines not already read from the history \214le\
- into the current history list.)180 360 R .773
-(These are lines appended to the history \214le since the be)180 372 R
-.772(ginning of the current)-.15 F F1(bash)3.272 E F0(ses-)3.272 E
-(sion.)180 384 Q F1<ad72>144 396 Q F0(Read the contents of the history \
-\214le and append them to the current history list.)180 396 Q F1<ad77>
-144 408 Q F0(Write the current history list to the history \214le, o)180
-408 Q -.15(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G
-(ontents.)-2.5 E F1<ad70>144 420 Q F0 .625
-(Perform history substitution on the follo)180 420 R(wing)-.25 E F2(ar)
-3.125 E(gs)-.37 E F0 .626(and display the result on the standard)3.125 F
-2.975(output. Does)180 432 R .475
-(not store the results in the history list.)2.975 F(Each)5.475 E F2(ar)
+ into the current history list.)180 240 R .772
+(These are lines appended to the history \214le since the be)180 252 R
+.773(ginning of the current)-.15 F F3(bash)3.273 E F0(ses-)3.273 E
+(sion.)180 264 Q F3<ad72>144 276 Q F0(Read the contents of the history \
+\214le and append them to the current history list.)180 276 Q F3<ad77>
+144 288 Q F0(Write the current history list to the history \214le, o)180
+288 Q -.15(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G
+(ontents.)-2.5 E F3<ad70>144 300 Q F0 .626
+(Perform history substitution on the follo)180 300 R(wing)-.25 E F1(ar)
+3.125 E(gs)-.37 E F0 .625(and display the result on the standard)3.125 F
+2.975(output. Does)180 312 R .475
+(not store the results in the history list.)2.975 F(Each)5.475 E F1(ar)
2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F
-(normal history e)180 444 Q(xpansion.)-.15 E F1<ad73>144 456 Q F0 .362
-(Store the)180 456 R F2(ar)3.192 E(gs)-.37 E F0 .363
-(in the history list as a single entry)3.132 F 5.363(.T)-.65 G .363
-(he last command in the history list is)-5.363 F(remo)180 468 Q -.15(ve)
--.15 G 2.5(db).15 G(efore the)-2.5 E F2(ar)2.83 E(gs)-.37 E F0
-(are added.)2.77 E .146(If the)144 484.8 R F3(HISTTIMEFORMA)2.645 E(T)
+(normal history e)180 324 Q(xpansion.)-.15 E F3<ad73>144 336 Q F0 .363
+(Store the)180 336 R F1(ar)3.193 E(gs)-.37 E F0 .363
+(in the history list as a single entry)3.133 F 5.363(.T)-.65 G .362
+(he last command in the history list is)-5.363 F(remo)180 348 Q -.15(ve)
+-.15 G 2.5(db).15 G(efore the)-2.5 E F1(ar)2.83 E(gs)-.37 E F0
+(are added.)2.77 E .145(If the)144 364.8 R F2(HISTTIMEFORMA)2.645 E(T)
-.855 E F0 -.25(va)2.395 G .145
(riable is set, the time stamp information associated with each history)
-.25 F .668(entry is written to the history \214le, mark)144 496.8 R .669
-(ed with the history comment character)-.1 F 5.669(.W)-.55 G .669
-(hen the history)-5.669 F .956(\214le is read, lines be)144 508.8 R .956
-(ginning with the history comment character follo)-.15 F .955
-(wed immediately by a digit)-.25 F .832
-(are interpreted as timestamps for the follo)144 520.8 R .832
-(wing history entry)-.25 F 5.833(.T)-.65 G .833(he return v)-5.833 F
-.833(alue is 0 unless an in-)-.25 F -.25(va)144 532.8 S .168(lid option\
+.25 F .669(entry is written to the history \214le, mark)144 376.8 R .669
+(ed with the history comment character)-.1 F 5.668(.W)-.55 G .668
+(hen the history)-5.668 F .955(\214le is read, lines be)144 388.8 R .956
+(ginning with the history comment character follo)-.15 F .956
+(wed immediately by a digit)-.25 F .833
+(are interpreted as timestamps for the follo)144 400.8 R .833
+(wing history entry)-.25 F 5.832(.T)-.65 G .832(he return v)-5.832 F
+.832(alue is 0 unless an in-)-.25 F -.25(va)144 412.8 S .168(lid option\
is encountered, an error occurs while reading or writing the history \
-\214le, an in).25 F -.25(va)-.4 G(lid).25 E F2(of)2.668 E(f-)-.18 E(set)
-144 544.8 Q F0(is supplied as an ar)2.5 E(gument to)-.18 E F1<ad64>2.5 E
-F0 2.5(,o)C 2.5(rt)-2.5 G(he history e)-2.5 E
-(xpansion supplied as an ar)-.15 E(gument to)-.18 E F1<ad70>2.5 E F0 -.1
-(fa)2.5 G(ils.).1 E F1(jobs)108 561.6 Q F0([)2.5 E F1(\255lnprs)A F0 2.5
-(][)C F2(jobspec)A F0(... ])2.5 E F1(jobs \255x)108 573.6 Q F2(command)
-2.5 E F0([)2.5 E F2(ar)2.5 E(gs)-.37 E F0(... ])2.5 E
-(The \214rst form lists the acti)144 585.6 Q .3 -.15(ve j)-.25 H 2.5
-(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad6c>144 597.6 Q F0
-(List process IDs in addition to the normal information.)180 597.6 Q F1
-<ad6e>144 609.6 Q F0 .193(Display information only about jobs that ha)
-180 609.6 R .494 -.15(ve c)-.2 H .194(hanged status since the user w).15
-F .194(as last noti-)-.1 F(\214ed of their status.)180 621.6 Q F1<ad70>
-144 633.6 Q F0(List only the process ID of the job')180 633.6 Q 2.5(sp)
--.55 G(rocess group leader)-2.5 E(.)-.55 E F1<ad72>144 645.6 Q F0
-(Display only running jobs.)180 645.6 Q F1<ad73>144 657.6 Q F0
-(Display only stopped jobs.)180 657.6 Q(If)144 674.4 Q F2(jobspec)4.554
+\214le, an in).25 F -.25(va)-.4 G(lid).25 E F1(of)2.669 E(f-)-.18 E(set)
+144 424.8 Q F0 .341(or range is supplied as an ar)2.841 F .341
+(gument to)-.18 F F3<ad64>2.841 E F0 2.841(,o)C 2.84(rt)-2.841 G .34
+(he history e)-2.84 F .34(xpansion supplied as an ar)-.15 F .34
+(gument to)-.18 F F3<ad70>144 436.8 Q F0 -.1(fa)2.5 G(ils.).1 E F3(jobs)
+108 453.6 Q F0([)2.5 E F3(\255lnprs)A F0 2.5(][)C F1(jobspec)A F0(... ])
+2.5 E F3(jobs \255x)108 465.6 Q F1(command)2.5 E F0([)2.5 E F1(ar)2.5 E
+(gs)-.37 E F0(... ])2.5 E(The \214rst form lists the acti)144 477.6 Q .3
+-.15(ve j)-.25 H 2.5(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H
+(he follo).15 E(wing meanings:)-.25 E F3<ad6c>144 489.6 Q F0
+(List process IDs in addition to the normal information.)180 489.6 Q F3
+<ad6e>144 501.6 Q F0 .193(Display information only about jobs that ha)
+180 501.6 R .494 -.15(ve c)-.2 H .194(hanged status since the user w).15
+F .194(as last noti-)-.1 F(\214ed of their status.)180 513.6 Q F3<ad70>
+144 525.6 Q F0(List only the process ID of the job')180 525.6 Q 2.5(sp)
+-.55 G(rocess group leader)-2.5 E(.)-.55 E F3<ad72>144 537.6 Q F0
+(Display only running jobs.)180 537.6 Q F3<ad73>144 549.6 Q F0
+(Display only stopped jobs.)180 549.6 Q(If)144 566.4 Q F1(jobspec)4.554
E F0 .314(is gi)3.124 F -.15(ve)-.25 G .314
(n, output is restricted to information about that job).15 F 5.313(.T)
--.4 G .313(he return status is 0 unless)-5.313 F(an in)144 686.4 Q -.25
+-.4 G .313(he return status is 0 unless)-5.313 F(an in)144 578.4 Q -.25
(va)-.4 G(lid option is encountered or an in).25 E -.25(va)-.4 G(lid).25
-E F2(jobspec)4.24 E F0(is supplied.)2.81 E .394(If the)144 703.2 R F1
-<ad78>2.894 E F0 .394(option is supplied,)2.894 F F1(jobs)2.894 E F0
-.394(replaces an)2.894 F(y)-.15 E F2(jobspec)4.634 E F0 .394(found in)
-3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37 E F0 .395
-(with the corre-)3.164 F(sponding process group ID, and e)144 715.2 Q
--.15(xe)-.15 G(cutes).15 E F2(command)2.7 E F0(passing it)3.27 E F2(ar)
+E F1(jobspec)4.24 E F0(is supplied.)2.81 E .394(If the)144 595.2 R F3
+<ad78>2.894 E F0 .394(option is supplied,)2.894 F F3(jobs)2.894 E F0
+.394(replaces an)2.894 F(y)-.15 E F1(jobspec)4.634 E F0 .394(found in)
+3.204 F F1(command)3.094 E F0(or)3.664 E F1(ar)3.224 E(gs)-.37 E F0 .395
+(with the corre-)3.164 F(sponding process group ID, and e)144 607.2 Q
+-.15(xe)-.15 G(cutes).15 E F1(command)2.7 E F0(passing it)3.27 E F1(ar)
2.83 E(gs)-.37 E F0 2.5(,r).27 G(eturning its e)-2.5 E(xit status.)-.15
-E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(66)190.395 E 0 Cg EP
-%%Page: 67 67
+E F3(kill)108 624 Q F0([)2.5 E F3<ad73>A F1(sigspec)2.5 E F0(|)2.5 E F3
+<ad6e>2.5 E F1(signum)2.5 E F0(|)2.5 E F3<ad>2.5 E F1(sigspec)A F0 2.5
+(][)C F1(pid)-2.5 E F0(|)2.5 E F1(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F3
+(kill \255l)108 636 Q F0(|)A F3<ad4c>A F0([)2.5 E F1(sigspec)A F0(|)2.5
+E F1 -.2(ex)2.5 G(it_status).2 E F0(])A .017(Send the signal named by)
+144 648 R F1(sigspec)2.857 E F0(or)2.827 E F1(signum)2.857 E F0 .017
+(to the processes named by)2.837 F F1(pid)3.767 E F0(or)3.287 E F1
+(jobspec)4.257 E F0(.).31 E F1(sigspec)5.357 E F0(is)2.827 E .318
+(either a case-insensiti)144 660 R .618 -.15(ve s)-.25 H .318
+(ignal name such as).15 F F2(SIGKILL)2.818 E F0 .319
+(\(with or without the)2.569 F F2(SIG)2.819 E F0 .319
+(pre\214x\) or a signal)2.569 F(number;)144 672 Q F1(signum)3.268 E F0
+.427(is a signal number)3.247 F 5.427(.I)-.55 G(f)-5.427 E F1(sigspec)
+3.267 E F0 .427(is not present, then)3.237 F F2(SIGTERM)2.927 E F0 .427
+(is assumed.)2.677 F .427(An ar)5.427 F(-)-.2 E .313(gument of)144 684 R
+F3<ad6c>2.813 E F0 .314(lists the signal names.)2.814 F .314(If an)5.314
+F 2.814(ya)-.15 G -.18(rg)-2.814 G .314(uments are supplied when).18 F
+F3<ad6c>2.814 E F0 .314(is gi)2.814 F -.15(ve)-.25 G .314
+(n, the names of).15 F .12(the signals corresponding to the ar)144 696 R
+.119(guments are listed, and the return status is 0.)-.18 F(The)5.119 E
+F1 -.2(ex)2.619 G(it_status).2 E F0(ar)2.619 E(-)-.2 E .799(gument to)
+144 708 R F3<ad6c>3.299 E F0 .799
+(is a number specifying either a signal number or the e)3.299 F .8
+(xit status of a process termi-)-.15 F .963(nated by a signal.)144 720 R
+(The)5.962 E F3<ad4c>3.462 E F0 .962(option is equi)3.462 F -.25(va)-.25
+G .962(lent to).25 F F3<ad6c>3.462 E F0(.)A F3(kill)5.962 E F0 .962
+(returns true if at least one signal w)3.462 F(as)-.1 E(GNU Bash 5.2)72
+768 Q(2022 September 19)135.955 E(69)185.115 E 0 Cg EP
+%%Page: 70 70
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(kill)108 84 Q F0([)2.5 E F1<ad73>A/F2 10/Times-Italic@0 SF(sigspec)
-2.5 E F0(|)2.5 E F1<ad6e>2.5 E F2(signum)2.5 E F0(|)2.5 E F1<ad>2.5 E F2
-(sigspec)A F0 2.5(][)C F2(pid)-2.5 E F0(|)2.5 E F2(jobspec)2.5 E F0 2.5
-(].)C(..)-2.5 E F1(kill \255l)108 96 Q F0(|)A F1<ad4c>A F0([)2.5 E F2
-(sigspec)A F0(|)2.5 E F2 -.2(ex)2.5 G(it_status).2 E F0(])A .017
-(Send the signal named by)144 108 R F2(sigspec)2.857 E F0(or)2.827 E F2
-(signum)2.857 E F0 .017(to the processes named by)2.837 F F2(pid)3.767 E
-F0(or)3.287 E F2(jobspec)4.257 E F0(.).31 E F2(sigspec)5.357 E F0(is)
-2.827 E .318(either a case-insensiti)144 120 R .618 -.15(ve s)-.25 H
-.318(ignal name such as).15 F/F3 9/Times-Bold@0 SF(SIGKILL)2.818 E F0
-.319(\(with or without the)2.569 F F3(SIG)2.819 E F0 .319
-(pre\214x\) or a signal)2.569 F(number;)144 132 Q F2(signum)3.268 E F0
-.427(is a signal number)3.247 F 5.427(.I)-.55 G(f)-5.427 E F2(sigspec)
-3.267 E F0 .427(is not present, then)3.237 F F3(SIGTERM)2.927 E F0 .427
-(is assumed.)2.677 F .427(An ar)5.427 F(-)-.2 E .313(gument of)144 144 R
-F1<ad6c>2.813 E F0 .314(lists the signal names.)2.814 F .314(If an)5.314
-F 2.814(ya)-.15 G -.18(rg)-2.814 G .314(uments are supplied when).18 F
-F1<ad6c>2.814 E F0 .314(is gi)2.814 F -.15(ve)-.25 G .314
-(n, the names of).15 F .12(the signals corresponding to the ar)144 156 R
-.119(guments are listed, and the return status is 0.)-.18 F(The)5.119 E
-F2 -.2(ex)2.619 G(it_status).2 E F0(ar)2.619 E(-)-.2 E .799(gument to)
-144 168 R F1<ad6c>3.299 E F0 .799
-(is a number specifying either a signal number or the e)3.299 F .8
-(xit status of a process termi-)-.15 F .963(nated by a signal.)144 180 R
-(The)5.962 E F1<ad4c>3.462 E F0 .962(option is equi)3.462 F -.25(va)-.25
-G .962(lent to).25 F F1<ad6c>3.462 E F0(.)A F1(kill)5.962 E F0 .962
-(returns true if at least one signal w)3.462 F(as)-.1 E
-(successfully sent, or f)144 192 Q(alse if an error occurs or an in)-.1
-E -.25(va)-.4 G(lid option is encountered.).25 E F1(let)108 208.8 Q F2
-(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(Each)144
-220.8 Q F2(ar)3.026 E(g)-.37 E F0 .196(is an arithmetic e)2.916 F .197
-(xpression to be e)-.15 F -.25(va)-.25 G .197(luated \(see).25 F F3 .197
-(ARITHMETIC EV)2.697 F(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(abo)
-2.447 E -.15(ve)-.15 G 2.697(\). If).15 F(the last)144 232.8 Q F2(ar)
-2.83 E(g)-.37 E F0 -.25(eva)2.72 G(luates to 0,).25 E F1(let)2.5 E F0
-(returns 1; 0 is returned otherwise.)2.5 E F1(local)108 249.6 Q F0([)2.5
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E
+(successfully sent, or f)144 84 Q(alse if an error occurs or an in)-.1 E
+-.25(va)-.4 G(lid option is encountered.).25 E/F1 10/Times-Bold@0 SF
+(let)108 100.8 Q/F2 10/Times-Italic@0 SF(ar)2.5 E(g)-.37 E F0([)2.5 E F2
+(ar)A(g)-.37 E F0(...])2.5 E(Each)144 112.8 Q F2(ar)3.026 E(g)-.37 E F0
+.196(is an arithmetic e)2.916 F .197(xpression to be e)-.15 F -.25(va)
+-.25 G .197(luated \(see).25 F/F3 9/Times-Bold@0 SF .197(ARITHMETIC EV)
+2.697 F(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(abo)2.447 E -.15(ve)
+-.15 G 2.697(\). If).15 F(the last)144 124.8 Q F2(ar)2.83 E(g)-.37 E F0
+-.25(eva)2.72 G(luates to 0,).25 E F1(let)2.5 E F0
+(returns 1; 0 is returned otherwise.)2.5 E F1(local)108 141.6 Q F0([)2.5
E F2(option)A F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C
-(.. | \255 ])-2.5 E -.15(Fo)144 261.6 S 2.542(re).15 G .042(ach ar)
+(.. | \255 ])-2.5 E -.15(Fo)144 153.6 S 2.542(re).15 G .042(ach ar)
-2.542 F .042(gument, a local v)-.18 F .042(ariable named)-.25 F F2
(name)2.902 E F0 .042(is created, and assigned)2.722 F F2(value)2.832 E
F0 5.042(.T).18 G(he)-5.042 E F2(option)2.542 E F0 .041(can be)2.541 F
-(an)144 273.6 Q 3.152(yo)-.15 G 3.152(ft)-3.152 G .652
+(an)144 165.6 Q 3.152(yo)-.15 G 3.152(ft)-3.152 G .652
(he options accepted by)-3.152 F F1(declar)3.152 E(e)-.18 E F0 5.652(.W)
C(hen)-5.652 E F1(local)3.152 E F0 .653
(is used within a function, it causes the v)3.152 F(ari-)-.25 E(able)144
-285.6 Q F2(name)3.282 E F0 .422(to ha)3.102 F .722 -.15(ve a v)-.2 H
+177.6 Q F2(name)3.282 E F0 .422(to ha)3.102 F .722 -.15(ve a v)-.2 H
.422(isible scope restricted to that function and its children.).15 F
(If)5.421 E F2(name)2.921 E F0 .421(is \255, the set)2.921 F .509
-(of shell options is made local to the function in which)144 297.6 R F1
+(of shell options is made local to the function in which)144 189.6 R F1
(local)3.01 E F0 .51(is in)3.01 F -.2(vo)-.4 G -.1(ke).2 G .51
-(d: shell options changed us-).1 F 1.171(ing the)144 309.6 R F1(set)
+(d: shell options changed us-).1 F 1.171(ing the)144 201.6 R F1(set)
3.671 E F0 -.2(bu)3.671 G 1.171
(iltin inside the function are restored to their original v).2 F 1.17
-(alues when the function re-)-.25 F 3.38(turns. The)144 321.6 R .88
+(alues when the function re-)-.25 F 3.38(turns. The)144 213.6 R .88
(restore is ef)3.38 F .88(fected as if a series of)-.25 F F1(set)3.381 E
F0 .881(commands were e)3.381 F -.15(xe)-.15 G .881
(cuted to restore the v).15 F(alues)-.25 E .788
-(that were in place before the function.)144 333.6 R -.4(Wi)5.788 G .788
+(that were in place before the function.)144 225.6 R -.4(Wi)5.788 G .788
(th no operands,).4 F F1(local)3.288 E F0 .787(writes a list of local v)
-3.288 F .787(ariables to)-.25 F .654(the standard output.)144 345.6 R
+3.288 F .787(ariables to)-.25 F .654(the standard output.)144 237.6 R
.654(It is an error to use)5.654 F F1(local)3.154 E F0 .654
(when not within a function.)3.154 F .655(The return status is 0)5.654 F
-(unless)144 357.6 Q F1(local)2.5 E F0(is used outside a function, an in)
+(unless)144 249.6 Q F1(local)2.5 E F0(is used outside a function, an in)
2.5 E -.25(va)-.4 G(lid).25 E F2(name)2.86 E F0(is supplied, or)2.68 E
F2(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F1(logout)108
-374.4 Q F0(Exit a login shell.)144 374.4 Q F1(map\214le)108 391.2 Q F0
+266.4 Q F0(Exit a login shell.)144 266.4 Q F1(map\214le)108 283.2 Q F0
([)2.5 E F1<ad64>A F2(delim)2.5 E F0 2.5(][)C F1<ad6e>-2.5 E F2(count)
2.5 E F0 2.5(][)C F1<ad4f>-2.5 E F2(origin)2.5 E F0 2.5(][)C F1<ad73>
-2.5 E F2(count)2.5 E F0 2.5(][)C F1<ad74>-2.5 E F0 2.5(][)C F1<ad75>
-2.5 E F2(fd)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2(callbac)2.5 E(k)-.2 E
F0 2.5(][)C F1<ad63>-2.5 E F2(quantum)2.5 E F0 2.5(][)C F2(arr)-2.5 E
-(ay)-.15 E F0(])A F1 -.18(re)108 403.2 S(adarray).18 E F0([)2.5 E F1
+(ay)-.15 E F0(])A F1 -.18(re)108 295.2 S(adarray).18 E F0([)2.5 E F1
<ad64>A F2(delim)2.5 E F0 2.5(][)C F1<ad6e>-2.5 E F2(count)2.5 E F0 2.5
(][)C F1<ad4f>-2.5 E F2(origin)2.5 E F0 2.5(][)C F1<ad73>-2.5 E F2
(count)2.5 E F0 2.5(][)C F1<ad74>-2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2
(fd)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2(callbac)2.5 E(k)-.2 E F0 2.5(][)
C F1<ad63>-2.5 E F2(quantum)2.5 E F0 2.5(][)C F2(arr)-2.5 E(ay)-.15 E F0
-(])A .159(Read lines from the standard input into the inde)144 415.2 R
+(])A .159(Read lines from the standard input into the inde)144 307.2 R
-.15(xe)-.15 G 2.659(da).15 G .159(rray v)-2.659 F(ariable)-.25 E F2
(arr)2.989 E(ay)-.15 E F0 2.659(,o).32 G 2.658(rf)-2.659 G .158
-(rom \214le descriptor)-2.658 F F2(fd)4.628 E F0 1.248(if the)144 427.2
+(rom \214le descriptor)-2.658 F F2(fd)4.628 E F0 1.248(if the)144 319.2
R F1<ad75>3.748 E F0 1.248(option is supplied.)3.748 F 1.249(The v)6.249
F(ariable)-.25 E F3(MAPFILE)3.749 E F0 1.249(is the def)3.499 F(ault)-.1
E F2(arr)3.749 E(ay)-.15 E F0 6.249(.O)C 1.249(ptions, if supplied,)
--6.249 F(ha)144 439.2 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad64>144 451.2 Q F0 .911
-(The \214rst character of)180 451.2 R F2(delim)3.411 E F0 .911
+-6.249 F(ha)144 331.2 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad64>144 343.2 Q F0 .911
+(The \214rst character of)180 343.2 R F2(delim)3.411 E F0 .911
(is used to terminate each input line, rather than ne)3.411 F 3.41
-(wline. If)-.25 F F2(delim)180 463.2 Q F0(is the empty string,)2.5 E F1
+(wline. If)-.25 F F2(delim)180 355.2 Q F0(is the empty string,)2.5 E F1
(map\214le)2.5 E F0(will terminate a line when it reads a NUL character)
-2.5 E(.)-.55 E F1<ad6e>144 475.2 Q F0(Cop)180 475.2 Q 2.5(ya)-.1 G 2.5
+2.5 E(.)-.55 E F1<ad6e>144 367.2 Q F0(Cop)180 367.2 Q 2.5(ya)-.1 G 2.5
(tm)-2.5 G(ost)-2.5 E F2(count)2.7 E F0 2.5(lines. If)3.18 F F2(count)
-2.5 E F0(is 0, all lines are copied.)2.5 E F1<ad4f>144 487.2 Q F0(Be)180
-487.2 Q(gin assigning to)-.15 E F2(arr)2.83 E(ay)-.15 E F0(at inde)2.82
+2.5 E F0(is 0, all lines are copied.)2.5 E F1<ad4f>144 379.2 Q F0(Be)180
+379.2 Q(gin assigning to)-.15 E F2(arr)2.83 E(ay)-.15 E F0(at inde)2.82
E(x)-.15 E F2(origin)2.73 E F0 5(.T).24 G(he def)-5 E(ault inde)-.1 E
-2.5(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F1<ad73>144 499.2 Q F0
-(Discard the \214rst)180 499.2 Q F2(count)2.5 E F0(lines read.)2.5 E F1
-<ad74>144 511.2 Q F0(Remo)180 511.2 Q .3 -.15(ve a t)-.15 H(railing).15
+2.5(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F1<ad73>144 391.2 Q F0
+(Discard the \214rst)180 391.2 Q F2(count)2.5 E F0(lines read.)2.5 E F1
+<ad74>144 403.2 Q F0(Remo)180 403.2 Q .3 -.15(ve a t)-.15 H(railing).15
E F2(delim)2.5 E F0(\(def)2.5 E(ault ne)-.1 E
-(wline\) from each line read.)-.25 E F1<ad75>144 523.2 Q F0
-(Read lines from \214le descriptor)180 523.2 Q F2(fd)2.5 E F0
-(instead of the standard input.)2.5 E F1<ad43>144 535.2 Q F0(Ev)180
-535.2 Q(aluate)-.25 E F2(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F2
+(wline\) from each line read.)-.25 E F1<ad75>144 415.2 Q F0
+(Read lines from \214le descriptor)180 415.2 Q F2(fd)2.5 E F0
+(instead of the standard input.)2.5 E F1<ad43>144 427.2 Q F0(Ev)180
+427.2 Q(aluate)-.25 E F2(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F2
(quantum)2.5 E F0(lines are read.)2.5 E(The)5 E F1<ad63>2.5 E F0
-(option speci\214es)2.5 E F2(quantum)2.75 E F0(.).32 E F1<ad63>144 547.2
-Q F0(Specify the number of lines read between each call to)180 547.2 Q
-F2(callbac)2.7 E(k)-.2 E F0(.).67 E(If)144 564 Q F1<ad43>2.967 E F0 .467
+(option speci\214es)2.5 E F2(quantum)2.75 E F0(.).32 E F1<ad63>144 439.2
+Q F0(Specify the number of lines read between each call to)180 439.2 Q
+F2(callbac)2.7 E(k)-.2 E F0(.).67 E(If)144 456 Q F1<ad43>2.967 E F0 .467
(is speci\214ed without)2.967 F F1<ad63>2.967 E F0 2.967(,t)C .467
(he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F2
(callbac)2.967 E(k)-.2 E F0 .467(is e)2.967 F -.25(va)-.25 G .467
-(luated, it is sup-).25 F .262(plied the inde)144 576 R 2.762(xo)-.15 G
+(luated, it is sup-).25 F .262(plied the inde)144 468 R 2.762(xo)-.15 G
2.762(ft)-2.762 G .262(he ne)-2.762 F .261(xt array element to be assig\
ned and the line to be assigned to that element)-.15 F .274
-(as additional ar)144 588 R(guments.)-.18 E F2(callbac)5.274 E(k)-.2 E
+(as additional ar)144 480 R(guments.)-.18 E F2(callbac)5.274 E(k)-.2 E
F0 .274(is e)2.774 F -.25(va)-.25 G .274
(luated after the line is read b).25 F .275
-(ut before the array element is)-.2 F(assigned.)144 600 Q
-(If not supplied with an e)144 616.8 Q(xplicit origin,)-.15 E F1
+(ut before the array element is)-.2 F(assigned.)144 492 Q
+(If not supplied with an e)144 508.8 Q(xplicit origin,)-.15 E F1
(map\214le)2.5 E F0(will clear)2.5 E F2(arr)2.5 E(ay)-.15 E F0
-(before assigning to it.)2.5 E F1(map\214le)144 633.6 Q F0 .797
+(before assigning to it.)2.5 E F1(map\214le)144 525.6 Q F0 .797
(returns successfully unless an in)3.298 F -.25(va)-.4 G .797
(lid option or option ar).25 F .797(gument is supplied,)-.18 F F2(arr)
-3.297 E(ay)-.15 E F0 .797(is in-)3.297 F -.25(va)144 645.6 S
+3.297 E(ay)-.15 E F0 .797(is in-)3.297 F -.25(va)144 537.6 S
(lid or unassignable, or if).25 E F2(arr)2.5 E(ay)-.15 E F0
(is not an inde)2.5 E -.15(xe)-.15 G 2.5(da).15 G(rray)-2.5 E(.)-.65 E
-F1(popd)108 662.4 Q F0<5bad>2.5 E F1(n)A F0 2.5(][)C(+)-2.5 E F2(n)A F0
-2.5(][)C<ad>-2.5 E F2(n)A F0(])A(Remo)144 674.4 Q -.15(ve)-.15 G 2.799
-(se).15 G .299(ntries from the directory stack.)-2.799 F -.4(Wi)5.299 G
-.299(th no ar).4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15
-G .3(he top directory from the)-2.799 F 1.479(stack, and performs a)144
-686.4 R F1(cd)3.979 E F0 1.479(to the ne)3.979 F 3.979(wt)-.25 G 1.479
-(op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.478
-(uments, if supplied, ha).18 F 1.778 -.15(ve t)-.2 H 1.478(he follo).15
-F(wing)-.25 E(meanings:)144 698.4 Q F1<ad6e>144 710.4 Q F0 .551
-(Suppresses the normal change of directory when remo)180 710.4 R .551
+F1(popd)108 554.4 Q F0<5bad>2.5 E F1(n)A F0 2.5(][)C(+)-2.5 E F2(n)A F0
+2.5(][)C<ad>-2.5 E F2(n)A F0(])A(Remo)144 566.4 Q -.15(ve)-.15 G 3.091
+(se).15 G .591(ntries from the directory stack.)-3.091 F .592
+(The elements are numbered from 0 starting at the \214rst)5.591 F .665
+(directory listed by)144 578.4 R F1(dirs)3.165 E F0 5.665(.W)C .665
+(ith no ar)-6.065 F(guments,)-.18 E F1(popd)3.165 E F0(remo)3.165 E -.15
+(ve)-.15 G 3.165(st).15 G .664(he top directory from the stack, and)
+-3.165 F(changes to the ne)144 590.4 Q 2.5(wt)-.25 G(op directory)-2.5 E
+5(.A)-.65 G -.18(rg)-5 G(uments, if supplied, ha).18 E .3 -.15(ve t)-.2
+H(he follo).15 E(wing meanings:)-.25 E F1<ad6e>144 602.4 Q F0 .551
+(Suppresses the normal change of directory when remo)180 602.4 R .551
(ving directories from the stack, so)-.15 F
-(that only the stack is manipulated.)180 722.4 Q(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(67)190.395 E 0 Cg EP
-%%Page: 68 68
+(that only the stack is manipulated.)180 614.4 Q F1(+)144 626.4 Q F2(n)A
+F0(Remo)180 626.4 Q -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F2(n)2.64 E
+F0 .14(th entry counting from the left of the list sho)B .14(wn by)-.25
+F F1(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero,)-2.64 F .779
+(from the stack.)180 638.4 R -.15(Fo)5.779 G 3.279(re).15 G(xample:)
+-3.429 E/F4 10/Courier@0 SF .779(popd +0)3.279 F F0(remo)3.279 E -.15
+(ve)-.15 G 3.279(st).15 G .779(he \214rst directory)-3.279 F(,)-.65 E F4
+.78(popd +1)3.28 F F0 .78(the sec-)3.28 F(ond.)180 650.4 Q F1<ad>144
+662.4 Q F2(n)A F0(Remo)180 662.4 Q -.15(ve)-.15 G 3.76(st).15 G(he)-3.76
+E F2(n)3.76 E F0 1.259(th entry counting from the right of the list sho)
+B 1.259(wn by)-.25 F F1(dirs)3.759 E F0 3.759(,s)C 1.259(tarting with)
+-3.759 F 2.5(zero. F)180 674.4 R(or e)-.15 E(xample:)-.15 E F4(popd -0)
+2.5 E F0(remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E
+(,)-.65 E F4(popd -1)2.5 E F0(the ne)2.5 E(xt to last.)-.15 E .093
+(If the top element of the directory stack is modi\214ed, and the)144
+691.2 R F2(-n)2.593 E F0 .094(option w)2.594 F .094(as not supplied,)-.1
+F F1(popd)2.594 E F0(uses)2.594 E(the)144 703.2 Q F1(cd)2.697 E F0 -.2
+(bu)2.697 G .196
+(iltin to change to the directory at the top of the stack.).2 F .196
+(If the)5.196 F F1(cd)2.696 E F0 -.1(fa)2.696 G(ils,).1 E F1(popd)2.696
+E F0 .196(returns a non-)2.696 F(zero v)144 715.2 Q(alue.)-.25 E
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(70)185.115 E 0 Cg EP
+%%Page: 71 71
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(+)144 84 Q/F2 10/Times-Italic@0 SF(n)A F0(Remo)180 84 Q -.15(ve)-.15
-G 2.64(st).15 G(he)-2.64 E F2(n)2.64 E F0 .14
-(th entry counting from the left of the list sho)B .14(wn by)-.25 F F1
-(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180 96
-S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0(remo)
-2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,)-.65 E
-F3(popd +1)2.5 E F0(the second.)2.5 E F1<ad>144 108 Q F2(n)A F0(Remo)180
-108 Q -.15(ve)-.15 G 3.759(st).15 G(he)-3.759 E F2(n)3.759 E F0 1.259
-(th entry counting from the right of the list sho)B 1.26(wn by)-.25 F F1
-(dirs)3.76 E F0 3.76(,s)C 1.26(tarting with)-3.76 F 2.5(zero. F)180 120
-R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0(remo)2.5 E -.15(ve)-.15
-G 2.5(st).15 G(he last directory)-2.5 E(,)-.65 E F3(popd -1)2.5 E F0
-(the ne)2.5 E(xt to last.)-.15 E .644(If the)144 136.8 R F1(popd)3.144 E
-F0 .644(command is successful, a)3.144 F F1(dirs)3.143 E F0 .643
-(is performed as well, and the return status is 0.)3.143 F F1(popd)5.643
-E F0 .415(returns f)144 148.8 R .415(alse if an in)-.1 F -.25(va)-.4 G
-.415(lid option is encountered, the directory stack is empty).25 F 2.916
-(,an)-.65 G(on-e)-2.916 E .416(xistent direc-)-.15 F
-(tory stack entry is speci\214ed, or the directory change f)144 160.8 Q
-(ails.)-.1 E F1(printf)108 177.6 Q F0([)2.5 E F1<ad76>A F2(var)2.5 E F0
-(])A F2(format)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A .358
-(Write the formatted)144 189.6 R F2(ar)2.858 E(guments)-.37 E F0 .358
-(to the standard output under the control of the)2.858 F F2(format)2.857
-E F0 5.357(.T)C(he)-5.357 E F1<ad76>2.857 E F0(op-)2.857 E .714
-(tion causes the output to be assigned to the v)144 201.6 R(ariable)-.25
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(Otherwise,)144 84
+Q/F1 10/Times-Bold@0 SF(popd)2.67 E F0 .17(returns f)2.67 F .17
+(alse if an in)-.1 F -.25(va)-.4 G .171
+(lid option is encountered, the directory stack is empty).25 F 2.671(,o)
+-.65 G 2.671(ra)-2.671 G(non-e)144 96 Q
+(xistent directory stack entry is speci\214ed.)-.15 E 1.556(If the)144
+112.8 R F1(popd)4.056 E F0 1.556(command is successful, bash runs)4.056
+F F1(dirs)4.056 E F0 1.556(to sho)4.056 F 4.055(wt)-.25 G 1.555
+(he \214nal contents of the directory)-4.055 F
+(stack, and the return status is 0.)144 124.8 Q F1(printf)108 141.6 Q F0
+([)2.5 E F1<ad76>A/F2 10/Times-Italic@0 SF(var)2.5 E F0(])A F2(format)
+2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A .357(Write the formatted)
+144 153.6 R F2(ar)2.857 E(guments)-.37 E F0 .357
+(to the standard output under the control of the)2.857 F F2(format)2.858
+E F0 5.358(.T)C(he)-5.358 E F1<ad76>2.858 E F0(op-)2.858 E .714
+(tion causes the output to be assigned to the v)144 165.6 R(ariable)-.25
E F2(var)3.214 E F0 .714(rather than being printed to the standard)3.214
-F(output.)144 213.6 Q(The)144 237.6 Q F2(format)3.018 E F0 .517(is a ch\
+F(output.)144 177.6 Q(The)144 201.6 Q F2(format)3.017 E F0 .517(is a ch\
aracter string which contains three types of objects: plain characters,\
- which are)3.018 F .704(simply copied to standard output, character esc\
-ape sequences, which are con)144 249.6 R -.15(ve)-.4 G .704
+ which are)3.017 F .704(simply copied to standard output, character esc\
+ape sequences, which are con)144 213.6 R -.15(ve)-.4 G .703
(rted and copied to).15 F .036(the standard output, and format speci\
-\214cations, each of which causes printing of the ne)144 261.6 R .036
-(xt successi)-.15 F -.15(ve)-.25 G F2(ar)144 273.6 Q(gument)-.37 E F0
-5.531(.I)C 3.031(na)-5.531 G .531(ddition to the standard)-3.031 F F2
-(printf)3.032 E F0 .532(\(1\) format speci\214cations,)B F1(printf)3.032
-E F0 .532(interprets the follo)3.032 F(w-)-.25 E(ing e)144 285.6 Q
-(xtensions:)-.15 E F1(%b)144 297.6 Q F0(causes)180 297.6 Q F1(printf)
-2.596 E F0 .096(to e)2.596 F .096
+\214cations, each of which causes printing of the ne)144 225.6 R .037
+(xt successi)-.15 F -.15(ve)-.25 G F2(ar)144 237.6 Q(gument)-.37 E F0
+5.532(.I)C 3.032(na)-5.532 G .532(ddition to the standard)-3.032 F F2
+(printf)3.032 E F0 .532(\(1\) format speci\214cations,)B F1(printf)3.031
+E F0 .531(interprets the follo)3.031 F(w-)-.25 E(ing e)144 249.6 Q
+(xtensions:)-.15 E F1(%b)144 261.6 Q F0(causes)180 261.6 Q F1(printf)
+2.595 E F0 .096(to e)2.595 F .096
(xpand backslash escape sequences in the corresponding)-.15 F F2(ar)
-2.596 E(gument)-.37 E F0 .095(in the)2.595 F(same w)180 309.6 Q(ay as)
--.1 E F1(echo \255e)2.5 E F0(.)A F1(%q)144 321.6 Q F0(causes)180 321.6 Q
+2.596 E(gument)-.37 E F0 .096(in the)2.596 F(same w)180 273.6 Q(ay as)
+-.1 E F1(echo \255e)2.5 E F0(.)A F1(%q)144 285.6 Q F0(causes)180 285.6 Q
F1(printf)2.51 E F0 .01(to output the corresponding)2.51 F F2(ar)2.51 E
(gument)-.37 E F0 .01(in a format that can be reused as shell)2.51 F
-(input.)180 333.6 Q F1(%\()144 345.6 Q F2(datefmt)A F1(\)T)A F0(causes)
-180 357.6 Q F1(printf)4.404 E F0 1.904
-(to output the date-time string resulting from using)4.404 F F2(datefmt)
-4.404 E F0 1.903(as a format)4.404 F .38(string for)180 369.6 R F2
+(input.)180 297.6 Q F1(%Q)144 309.6 Q F0(lik)180 309.6 Q(e)-.1 E F1(%q)
+2.5 E F0 2.5(,b)C(ut applies an)-2.7 E 2.5(ys)-.15 G
+(upplied precision to the)-2.5 E F2(ar)2.5 E(gument)-.37 E F0
+(before quoting it.)2.5 E F1(%\()144 321.6 Q F2(datefmt)A F1(\)T)A F0
+(causes)180 333.6 Q F1(printf)4.403 E F0 1.904
+(to output the date-time string resulting from using)4.403 F F2(datefmt)
+4.404 E F0 1.904(as a format)4.404 F .381(string for)180 345.6 R F2
(strftime)2.881 E F0 2.881(\(3\). The)B(corresponding)2.881 E F2(ar)
2.881 E(gument)-.37 E F0 .381(is an inte)2.881 F .381
-(ger representing the number)-.15 F .293(of seconds since the epoch.)180
-381.6 R -1 -.8(Tw o)5.293 H .293(special ar)3.593 F .293(gument v)-.18 F
-.293(alues may be used: \2551 represents the)-.25 F .693
-(current time, and \2552 represents the time the shell w)180 393.6 R
-.693(as in)-.1 F -.2(vo)-.4 G -.1(ke).2 G 3.194(d. If).1 F .694(no ar)
-3.194 F .694(gument is speci-)-.18 F .21(\214ed, con)180 405.6 R -.15
+(ger representing the number)-.15 F .292(of seconds since the epoch.)180
+357.6 R -1 -.8(Tw o)5.293 H .293(special ar)3.593 F .293(gument v)-.18 F
+.293(alues may be used: \2551 represents the)-.25 F .694
+(current time, and \2552 represents the time the shell w)180 369.6 R
+.693(as in)-.1 F -.2(vo)-.4 G -.1(ke).2 G 3.193(d. If).1 F .693(no ar)
+3.193 F .693(gument is speci-)-.18 F .21(\214ed, con)180 381.6 R -.15
(ve)-.4 G .21(rsion beha).15 F -.15(ve)-.2 G 2.71(sa).15 G 2.71(si)-2.71
G 2.71<66ad>-2.71 G 2.71(1h)-2.71 G .21(ad been gi)-2.71 F -.15(ve)-.25
G 2.71(n. This).15 F .21(is an e)2.71 F .21(xception to the usual)-.15 F
-F1(printf)2.71 E F0(beha)180 417.6 Q(vior)-.2 E(.)-.55 E .901
-(The %b, %q, and %T directi)144 434.4 R -.15(ve)-.25 G 3.401(sa).15 G
-.901(ll use the \214eld width and precision ar)-3.401 F .902
-(guments from the format)-.18 F .358(speci\214cation and write that man)
-144 446.4 R 2.858(yb)-.15 G .357
-(ytes from \(or use that wide a \214eld for\) the e)-2.858 F .357
+F1(printf)2.71 E F0(beha)180 393.6 Q(vior)-.2 E(.)-.55 E .902
+(The %b, %q, and %T directi)144 410.4 R -.15(ve)-.25 G 3.401(sa).15 G
+.901(ll use the \214eld width and precision ar)-3.401 F .901
+(guments from the format)-.18 F .357(speci\214cation and write that man)
+144 422.4 R 2.857(yb)-.15 G .358
+(ytes from \(or use that wide a \214eld for\) the e)-2.857 F .358
(xpanded ar)-.15 F(gument,)-.18 E
-(which usually contains more characters than the original.)144 458.4 Q
-(Ar)144 475.2 Q .463(guments to non-string format speci\214ers are trea\
-ted as C constants, e)-.18 F .464(xcept that a leading plus or)-.15 F
-1.259(minus sign is allo)144 487.2 R 1.259
+(which usually contains more characters than the original.)144 434.4 Q
+(Ar)144 451.2 Q .464(guments to non-string format speci\214ers are trea\
+ted as C constants, e)-.18 F .463(xcept that a leading plus or)-.15 F
+1.258(minus sign is allo)144 463.2 R 1.259
(wed, and if the leading character is a single or double quote, the v)
--.25 F 1.258(alue is the)-.25 F(ASCII v)144 499.2 Q(alue of the follo)
--.25 E(wing character)-.25 E(.)-.55 E(The)144 516 Q F2(format)2.514 E F0
-.015(is reused as necessary to consume all of the)2.514 F F2(ar)2.515 E
-(guments)-.37 E F0 5.015(.I)C 2.515(ft)-5.015 G(he)-2.515 E F2(format)
-2.515 E F0 .015(requires more)2.515 F F2(ar)2.515 E(-)-.2 E(guments)144
-528 Q F0 .566(than are supplied, the e)3.066 F .566
+-.25 F 1.259(alue is the)-.25 F(ASCII v)144 475.2 Q(alue of the follo)
+-.25 E(wing character)-.25 E(.)-.55 E(The)144 492 Q F2(format)2.515 E F0
+.015(is reused as necessary to consume all of the)2.515 F F2(ar)2.515 E
+(guments)-.37 E F0 5.015(.I)C 2.514(ft)-5.015 G(he)-2.514 E F2(format)
+2.514 E F0 .014(requires more)2.514 F F2(ar)2.514 E(-)-.2 E(guments)144
+504 Q F0 .565(than are supplied, the e)3.065 F .566
(xtra format speci\214cations beha)-.15 F .866 -.15(ve a)-.2 H 3.066(si)
-.15 G 3.065(faz)-3.066 G .565(ero v)-3.065 F .565(alue or null string,)
--.25 F(as appropriate, had been supplied.)144 540 Q(The return v)5 E
+.15 G 3.066(faz)-3.066 G .566(ero v)-3.066 F .566(alue or null string,)
+-.25 F(as appropriate, had been supplied.)144 516 Q(The return v)5 E
(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F1(pushd)
-108 556.8 Q F0([)2.5 E F1<ad6e>A F0 2.5(][)C(+)-2.5 E F2(n)A F0 2.5(][)C
-<ad>-2.5 E F2(n)A F0(])A F1(pushd)108 568.8 Q F0([)2.5 E F1<ad6e>A F0
-2.5(][)C F2(dir)-2.5 E F0(])A .639(Adds a directory to the top of the d\
-irectory stack, or rotates the stack, making the ne)144 580.8 R 3.14(wt)
--.25 G .64(op of the)-3.14 F .417(stack the current w)144 592.8 R .416
-(orking directory)-.1 F 5.416(.W)-.65 G .416(ith no ar)-5.816 F
-(guments,)-.18 E F1(pushd)2.916 E F0 -.15(ex)2.916 G .416
-(changes the top tw).15 F 2.916(od)-.1 G(irectories)-2.916 E 1.625
-(and returns 0, unless the directory stack is empty)144 604.8 R 6.625
-(.A)-.65 G -.18(rg)-6.625 G 1.625(uments, if supplied, ha).18 F 1.925
--.15(ve t)-.2 H 1.625(he follo).15 F(wing)-.25 E(meanings:)144 616.8 Q
-F1<ad6e>144 628.8 Q F0 1.811(Suppresses the normal change of directory \
-when rotating or adding directories to the)180 628.8 R
-(stack, so that only the stack is manipulated.)180 640.8 Q F1(+)144
-652.8 Q F2(n)A F0 1.267(Rotates the stack so that the)180 652.8 R F2(n)
+108 532.8 Q F0([)2.5 E F1<ad6e>A F0 2.5(][)C(+)-2.5 E F2(n)A F0 2.5(][)C
+<ad>-2.5 E F2(n)A F0(])A F1(pushd)108 544.8 Q F0([)2.5 E F1<ad6e>A F0
+2.5(][)C F2(dir)-2.5 E F0(])A .64(Adds a directory to the top of the di\
+rectory stack, or rotates the stack, making the ne)144 556.8 R 3.139(wt)
+-.25 G .639(op of the)-3.139 F .088(stack the current w)144 568.8 R .088
+(orking directory)-.1 F 5.088(.W)-.65 G .088(ith no ar)-5.488 F
+(guments,)-.18 E F1(pushd)2.589 E F0 -.15(ex)2.589 G .089
+(changes the top tw).15 F 2.589(oe)-.1 G .089(lements of)-2.589 F
+(the directory stack.)144 580.8 Q(Ar)5 E(guments, if supplied, ha)-.18 E
+.3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad6e>144
+592.8 Q F0 1.811(Suppresses the normal change of directory when rotatin\
+g or adding directories to the)180 592.8 R
+(stack, so that only the stack is manipulated.)180 604.8 Q F1(+)144
+616.8 Q F2(n)A F0 1.267(Rotates the stack so that the)180 616.8 R F2(n)
3.767 E F0 1.268(th directory \(counting from the left of the list sho)B
-1.268(wn by)-.25 F F1(dirs)180 664.8 Q F0 2.5(,s)C
-(tarting with zero\) is at the top.)-2.5 E F1<ad>144 676.8 Q F2(n)A F0
-.92(Rotates the stack so that the)180 676.8 R F2(n)3.42 E F0 .92
+1.268(wn by)-.25 F F1(dirs)180 628.8 Q F0 2.5(,s)C
+(tarting with zero\) is at the top.)-2.5 E F1<ad>144 640.8 Q F2(n)A F0
+.92(Rotates the stack so that the)180 640.8 R F2(n)3.42 E F0 .92
(th directory \(counting from the right of the list sho)B .92(wn by)-.25
-F F1(dirs)180 688.8 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
--2.5 E F2(dir)144.35 700.8 Q F0(Adds)180 700.8 Q F2(dir)3.137 E F0 .287
-(to the directory stack at the top, making it the ne)3.517 F 2.788(wc)
--.25 G .288(urrent w)-2.788 F .288(orking directory as)-.1 F
-(if it had been supplied as the ar)180 712.8 Q(gument to the)-.18 E F1
-(cd)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .489(If the)144 729.6 R F1(pushd)
-2.989 E F0 .489(command is successful, a)2.989 F F1(dirs)2.988 E F0 .488
-(is performed as well.)2.988 F .488(If the \214rst form is used,)5.488 F
-F1(pushd)2.988 E F0(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(68)
-190.395 E 0 Cg EP
-%%Page: 69 69
+F F1(dirs)180 652.8 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
+-2.5 E F2(dir)144.35 664.8 Q F0(Adds)180 664.8 Q F2(dir)2.85 E F0
+(to the directory stack at the top)3.23 E .434
+(After the stack has been modi\214ed, if the)144 681.6 R F1<ad6e>2.934 E
+F0 .434(option w)2.934 F .435(as not supplied,)-.1 F F1(pushd)2.935 E F0
+.435(uses the)2.935 F F1(cd)2.935 E F0 -.2(bu)2.935 G .435(iltin to).2 F
+(change to the directory at the top of the stack.)144 693.6 Q(If the)5 E
+F1(cd)2.5 E F0 -.1(fa)2.5 G(ils,).1 E F1(pushd)2.5 E F0
+(returns a non-zero v)2.5 E(alue.)-.25 E 1.78(Otherwise, if no ar)144
+710.4 R 1.78(guments are supplied,)-.18 F F1(pushd)4.28 E F0 1.78
+(returns 0 unless the directory stack is empty)4.28 F(.)-.65 E .881
+(When rotating the directory stack,)144 722.4 R F1(pushd)3.381 E F0 .881
+(returns 0 unless the directory stack is empty or a non-)3.381 F
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(71)185.115 E 0 Cg EP
+%%Page: 72 72
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 1.039
-(returns 0 unless the cd to)144 84 R/F1 10/Times-Italic@0 SF(dir)3.889 E
-F0 -.1(fa)4.269 G 3.539(ils. W).1 F 1.039(ith the second form,)-.4 F/F2
-10/Times-Bold@0 SF(pushd)3.54 E F0 1.04(returns 0 unless the directory)
-3.54 F .847(stack is empty)144 96 R 3.347(,an)-.65 G(on-e)-3.347 E .847
-(xistent directory stack element is speci\214ed, or the directory chang\
-e to the)-.15 F(speci\214ed ne)144 108 Q 2.5(wc)-.25 G
-(urrent directory f)-2.5 E(ails.)-.1 E F2(pwd)108 124.8 Q F0([)2.5 E F2
-(\255LP)A F0(])A .844(Print the absolute pathname of the current w)144
-136.8 R .845(orking directory)-.1 F 5.845(.T)-.65 G .845
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E -.15(ex)144 84 S
+(istent directory stack element is speci\214ed.).15 E 1.278(If the)144
+100.8 R/F1 10/Times-Bold@0 SF(pushd)3.778 E F0 1.278
+(command is successful, bash runs)3.778 F F1(dirs)3.778 E F0 1.277
+(to sho)3.777 F 3.777(wt)-.25 G 1.277
+(he \214nal contents of the directory)-3.777 F(stack.)144 112.8 Q F1
+(pwd)108 129.6 Q F0([)2.5 E F1(\255LP)A F0(])A .844
+(Print the absolute pathname of the current w)144 141.6 R .845
+(orking directory)-.1 F 5.845(.T)-.65 G .845
(he pathname printed contains no)-5.845 F .182(symbolic links if the)144
-148.8 R F2<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F2
-.181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F2
+153.6 R F1<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F1
+.181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F1
(set)2.681 E F0 -.2(bu)2.681 G .181(iltin command is).2 F 3.263
-(enabled. If)144 160.8 R(the)3.263 E F2<ad4c>3.263 E F0 .763
+(enabled. If)144 165.6 R(the)3.263 E F1<ad4c>3.263 E F0 .763
(option is used, the pathname printed may contain symbolic links.)3.263
F .764(The return)5.764 F .405(status is 0 unless an error occurs while\
- reading the name of the current directory or an in)144 172.8 R -.25(va)
--.4 G .405(lid op-).25 F(tion is supplied.)144 184.8 Q F2 -.18(re)108
-201.6 S(ad).18 E F0([)3.816 E F2(\255ers)A F0 3.816(][)C F2<ad61>-3.816
-E F1(aname)3.816 E F0 3.816(][)C F2<ad64>-3.816 E F1(delim)3.816 E F0
-3.816(][)C F2<ad69>-3.816 E F1(te)3.816 E(xt)-.2 E F0 3.816(][)C F2
-<ad6e>-3.816 E F1(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.817(][)C F2<ad4e>
--3.817 E F1(nc)3.817 E(har)-.15 E(s)-.1 E F0 3.817(][)C F2<ad70>-3.817 E
-F1(pr)3.817 E(ompt)-.45 E F0 3.817(][)C F2<ad74>-3.817 E F1(timeout)
-3.817 E F0 3.817(][)C F2<ad75>-3.817 E F1(fd)3.817 E F0(])A([)108 213.6
-Q F1(name)A F0(...])2.5 E .516(One line is read from the standard input\
-, or from the \214le descriptor)144 225.6 R F1(fd)3.016 E F0 .516
-(supplied as an ar)3.016 F .516(gument to)-.18 F(the)144 237.6 Q F2
-<ad75>2.935 E F0 .435(option, split into w)2.935 F .435
-(ords as described abo)-.1 F .735 -.15(ve u)-.15 H(nder).15 E F2 -.75
+ reading the name of the current directory or an in)144 177.6 R -.25(va)
+-.4 G .405(lid op-).25 F(tion is supplied.)144 189.6 Q F1 -.18(re)108
+206.4 S(ad).18 E F0([)3.816 E F1(\255ers)A F0 3.816(][)C F1<ad61>-3.816
+E/F2 10/Times-Italic@0 SF(aname)3.816 E F0 3.816(][)C F1<ad64>-3.816 E
+F2(delim)3.816 E F0 3.816(][)C F1<ad69>-3.816 E F2(te)3.816 E(xt)-.2 E
+F0 3.816(][)C F1<ad6e>-3.816 E F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.817
+(][)C F1<ad4e>-3.817 E F2(nc)3.817 E(har)-.15 E(s)-.1 E F0 3.817(][)C F1
+<ad70>-3.817 E F2(pr)3.817 E(ompt)-.45 E F0 3.817(][)C F1<ad74>-3.817 E
+F2(timeout)3.817 E F0 3.817(][)C F1<ad75>-3.817 E F2(fd)3.817 E F0(])A
+([)108 218.4 Q F2(name)A F0(...])2.5 E .516(One line is read from the s\
+tandard input, or from the \214le descriptor)144 230.4 R F2(fd)3.016 E
+F0 .516(supplied as an ar)3.016 F .516(gument to)-.18 F(the)144 242.4 Q
+F1<ad75>2.935 E F0 .435(option, split into w)2.935 F .435
+(ords as described abo)-.1 F .735 -.15(ve u)-.15 H(nder).15 E F1 -.75
(Wo)2.935 G .435(rd Splitting).75 F F0 2.935(,a)C .436(nd the \214rst w)
--2.935 F .436(ord is as-)-.1 F .376(signed to the \214rst)144 249.6 R F1
+-2.935 F .436(ord is as-)-.1 F .376(signed to the \214rst)144 254.4 R F2
(name)3.236 E F0 2.876(,t).18 G .376(he second w)-2.876 F .376
-(ord to the second)-.1 F F1(name)3.236 E F0 2.876(,a).18 G .376
+(ord to the second)-.1 F F2(name)3.236 E F0 2.876(,a).18 G .376
(nd so on.)-2.876 F .375(If there are more w)5.376 F(ords)-.1 E .236
-(than names, the remaining w)144 261.6 R .237(ords and their interv)-.1
-F .237(ening delimiters are assigned to the last)-.15 F F1(name)3.097 E
-F0 5.237(.I).18 G(f)-5.237 E .875(there are fe)144 273.6 R .875(wer w)
+(than names, the remaining w)144 266.4 R .237(ords and their interv)-.1
+F .237(ening delimiters are assigned to the last)-.15 F F2(name)3.097 E
+F0 5.237(.I).18 G(f)-5.237 E .875(there are fe)144 278.4 R .875(wer w)
-.25 F .875(ords read from the input stream than names, the remaining n\
-ames are assigned)-.1 F .517(empty v)144 285.6 R 3.017(alues. The)-.25 F
+ames are assigned)-.1 F .517(empty v)144 290.4 R 3.017(alues. The)-.25 F
.517(characters in)3.017 F/F3 9/Times-Bold@0 SF(IFS)3.017 E F0 .518
(are used to split the line into w)2.767 F .518
-(ords using the same rules the)-.1 F .027(shell uses for e)144 297.6 R
-.026(xpansion \(described abo)-.15 F .326 -.15(ve u)-.15 H(nder).15 E F2
+(ords using the same rules the)-.1 F .027(shell uses for e)144 302.4 R
+.026(xpansion \(described abo)-.15 F .326 -.15(ve u)-.15 H(nder).15 E F1
-.75(Wo)2.526 G .026(rd Splitting).75 F F0 2.526(\). The)B .026
-(backslash character \()2.526 F F2(\\)A F0 2.526(\)m)C(ay)-2.526 E .488
-(be used to remo)144 309.6 R .788 -.15(ve a)-.15 H .788 -.15(ny s).15 H
+(backslash character \()2.526 F F1(\\)A F0 2.526(\)m)C(ay)-2.526 E .488
+(be used to remo)144 314.4 R .788 -.15(ve a)-.15 H .788 -.15(ny s).15 H
.488(pecial meaning for the ne).15 F .488
(xt character read and for line continuation.)-.15 F(Op-)5.489 E
-(tions, if supplied, ha)144 321.6 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F2<ad61>144 333.6 Q F1(aname)2.5 E F0 1.026
-(The w)180 345.6 R 1.026
+(tions, if supplied, ha)144 326.4 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad61>144 338.4 Q F2(aname)2.5 E F0 1.026
+(The w)180 350.4 R 1.026
(ords are assigned to sequential indices of the array v)-.1 F(ariable)
--.25 E F1(aname)3.855 E F0 3.525(,s).18 G 1.025(tarting at 0.)-3.525 F
-F1(aname)180.33 357.6 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5
--.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F1(name)2.5 E F0
-(ar)2.5 E(guments are ignored.)-.18 E F2<ad64>144 369.6 Q F1(delim)2.5 E
-F0 .28(The \214rst character of)180 381.6 R F1(delim)2.78 E F0 .281
+-.25 E F2(aname)3.855 E F0 3.525(,s).18 G 1.025(tarting at 0.)-3.525 F
+F2(aname)180.33 362.4 Q F0(is unset before an)2.68 E 2.5(yn)-.15 G .5
+-.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E F2(name)2.5 E F0
+(ar)2.5 E(guments are ignored.)-.18 E F1<ad64>144 374.4 Q F2(delim)2.5 E
+F0 .28(The \214rst character of)180 386.4 R F2(delim)2.78 E F0 .281
(is used to terminate the input line, rather than ne)2.78 F 2.781
-(wline. If)-.25 F F1(de-)2.781 E(lim)180 393.6 Q F0
-(is the empty string,)2.5 E F2 -.18(re)2.5 G(ad).18 E F0
-(will terminate a line when it reads a NUL character)2.5 E(.)-.55 E F2
-<ad65>144 405.6 Q F0 .373
-(If the standard input is coming from a terminal,)180 405.6 R F2 -.18
+(wline. If)-.25 F F2(de-)2.781 E(lim)180 398.4 Q F0
+(is the empty string,)2.5 E F1 -.18(re)2.5 G(ad).18 E F0
+(will terminate a line when it reads a NUL character)2.5 E(.)-.55 E F1
+<ad65>144 410.4 Q F0 .373
+(If the standard input is coming from a terminal,)180 410.4 R F1 -.18
(re)2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.872 E F0(abo)
2.622 E -.15(ve)-.15 G 2.872(\)i).15 G 2.872(su)-2.872 G(sed)-2.872 E
-.218(to obtain the line.)180 417.6 R .218
+.218(to obtain the line.)180 422.4 R .218
(Readline uses the current \(or def)5.218 F .218
(ault, if line editing w)-.1 F .218(as not pre)-.1 F(viously)-.25 E
-(acti)180 429.6 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings, b)-2.5 E
-(ut uses Readline')-.2 E 2.5(sd)-.55 G(ef)-2.5 E
-(ault \214lename completion.)-.1 E F2<ad69>144 441.6 Q F1(te)2.5 E(xt)
--.2 E F0(If)180 441.6 Q F2 -.18(re)2.716 G(adline).18 E F0 .216
-(is being used to read the line,)2.716 F F1(te)2.716 E(xt)-.2 E F0 .216
+(acti)180 434.4 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings, b)-2.5 E
+(ut uses readline')-.2 E 2.5(sd)-.55 G(ef)-2.5 E
+(ault \214lename completion.)-.1 E F1<ad69>144 446.4 Q F2(te)2.5 E(xt)
+-.2 E F0(If)180 446.4 Q F1 -.18(re)2.716 G(adline).18 E F0 .216
+(is being used to read the line,)2.716 F F2(te)2.716 E(xt)-.2 E F0 .216
(is placed into the editing b)2.716 F(uf)-.2 E .215(fer before edit-)
--.25 F(ing be)180 453.6 Q(gins.)-.15 E F2<ad6e>144 465.6 Q F1(nc)2.5 E
-(har)-.15 E(s)-.1 E F2 -.18(re)180 477.6 S(ad).18 E F0 .322
-(returns after reading)2.822 F F1(nc)2.823 E(har)-.15 E(s)-.1 E F0 .323
+-.25 F(ing be)180 458.4 Q(gins.)-.15 E F1<ad6e>144 470.4 Q F2(nc)2.5 E
+(har)-.15 E(s)-.1 E F1 -.18(re)180 482.4 S(ad).18 E F0 .322
+(returns after reading)2.822 F F2(nc)2.823 E(har)-.15 E(s)-.1 E F0 .323
(characters rather than w)2.823 F .323
-(aiting for a complete line of in-)-.1 F(put, b)180 489.6 Q
-(ut honors a delimiter if fe)-.2 E(wer than)-.25 E F1(nc)2.5 E(har)-.15
-E(s)-.1 E F0(characters are read before the delimiter)2.5 E(.)-.55 E F2
-<ad4e>144 501.6 Q F1(nc)2.5 E(har)-.15 E(s)-.1 E F2 -.18(re)180 513.6 S
-(ad).18 E F0 1.269(returns after reading e)3.77 F(xactly)-.15 E F1(nc)
+(aiting for a complete line of in-)-.1 F(put, b)180 494.4 Q
+(ut honors a delimiter if fe)-.2 E(wer than)-.25 E F2(nc)2.5 E(har)-.15
+E(s)-.1 E F0(characters are read before the delimiter)2.5 E(.)-.55 E F1
+<ad4e>144 506.4 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 518.4 S
+(ad).18 E F0 1.269(returns after reading e)3.77 F(xactly)-.15 E F2(nc)
3.769 E(har)-.15 E(s)-.1 E F0 1.269(characters rather than w)3.769 F
1.269(aiting for a complete)-.1 F .274
-(line of input, unless EOF is encountered or)180 525.6 R F2 -.18(re)
+(line of input, unless EOF is encountered or)180 530.4 R F1 -.18(re)
2.775 G(ad).18 E F0 .275(times out.)2.775 F .275
(Delimiter characters encoun-)5.275 F 1.003
-(tered in the input are not treated specially and do not cause)180 537.6
-R F2 -.18(re)3.502 G(ad).18 E F0 1.002(to return until)3.502 F F1(nc)
-3.502 E(har)-.15 E(s)-.1 E F0 .608(characters are read.)180 549.6 R .608
-(The result is not split on the characters in)5.608 F F2(IFS)3.108 E F0
-3.108(;t)C .609(he intent is that the)-3.108 F -.25(va)180 561.6 S .67
+(tered in the input are not treated specially and do not cause)180 542.4
+R F1 -.18(re)3.502 G(ad).18 E F0 1.002(to return until)3.502 F F2(nc)
+3.502 E(har)-.15 E(s)-.1 E F0 .608(characters are read.)180 554.4 R .608
+(The result is not split on the characters in)5.608 F F1(IFS)3.108 E F0
+3.108(;t)C .609(he intent is that the)-3.108 F -.25(va)180 566.4 S .67
(riable is assigned e).25 F .669
(xactly the characters read \(with the e)-.15 F .669
-(xception of backslash; see the)-.15 F F2<ad72>180 573.6 Q F0
-(option belo)2.5 E(w\).)-.25 E F2<ad70>144 585.6 Q F1(pr)2.5 E(ompt)-.45
-E F0(Display)180 597.6 Q F1(pr)3.66 E(ompt)-.45 E F0 1.161
+(xception of backslash; see the)-.15 F F1<ad72>180 578.4 Q F0
+(option belo)2.5 E(w\).)-.25 E F1<ad70>144 590.4 Q F2(pr)2.5 E(ompt)-.45
+E F0(Display)180 602.4 Q F2(pr)3.66 E(ompt)-.45 E F0 1.161
(on standard error)3.66 F 3.661(,w)-.4 G 1.161(ithout a trailing ne)
--3.661 F 1.161(wline, before attempting to read)-.25 F(an)180 609.6 Q
+-3.661 F 1.161(wline, before attempting to read)-.25 F(an)180 614.4 Q
2.5(yi)-.15 G 2.5(nput. The)-2.5 F
-(prompt is displayed only if input is coming from a terminal.)2.5 E F2
-<ad72>144 621.6 Q F0 .544(Backslash does not act as an escape character)
-180 621.6 R 5.543(.T)-.55 G .543
+(prompt is displayed only if input is coming from a terminal.)2.5 E F1
+<ad72>144 626.4 Q F0 .544(Backslash does not act as an escape character)
+180 626.4 R 5.543(.T)-.55 G .543
(he backslash is considered to be part of)-5.543 F .492(the line.)180
-633.6 R .492(In particular)5.492 F 2.992(,ab)-.4 G(ackslash-ne)-2.992 E
+638.4 R .492(In particular)5.492 F 2.992(,ab)-.4 G(ackslash-ne)-2.992 E
.493(wline pair may not then be used as a line continua-)-.25 F(tion.)
-180 645.6 Q F2<ad73>144 657.6 Q F0(Silent mode.)180 657.6 Q
-(If input is coming from a terminal, characters are not echoed.)5 E F2
-<ad74>144 669.6 Q F1(timeout)2.5 E F0(Cause)180 681.6 Q F2 -.18(re)2.929
+180 650.4 Q F1<ad73>144 662.4 Q F0(Silent mode.)180 662.4 Q
+(If input is coming from a terminal, characters are not echoed.)5 E F1
+<ad74>144 674.4 Q F2(timeout)2.5 E F0(Cause)180 686.4 Q F1 -.18(re)2.929
G(ad).18 E F0 .428(to time out and return f)2.929 F .428
(ailure if a complete line of input \(or a speci\214ed num-)-.1 F .56
-(ber of characters\) is not read within)180 693.6 R F1(timeout)3.061 E
-F0(seconds.)3.061 E F1(timeout)5.561 E F0 .561(may be a decimal number)
-3.061 F(with a fractional portion follo)180 705.6 Q
+(ber of characters\) is not read within)180 698.4 R F2(timeout)3.061 E
+F0(seconds.)3.061 E F2(timeout)5.561 E F0 .561(may be a decimal number)
+3.061 F(with a fractional portion follo)180 710.4 Q
(wing the decimal point.)-.25 E(This option is only ef)5 E(fecti)-.25 E
-.3 -.15(ve i)-.25 H(f).15 E F2 -.18(re)2.5 G(ad).18 E F0 .506(is readin\
+.3 -.15(ve i)-.25 H(f).15 E F1 -.18(re)2.5 G(ad).18 E F0 .506(is readin\
g input from a terminal, pipe, or other special \214le; it has no ef)180
-717.6 R .506(fect when reading)-.25 F .59(from re)180 729.6 R .59
-(gular \214les.)-.15 F(If)5.59 E F2 -.18(re)3.09 G(ad).18 E F0 .589
-(times out,)3.09 F F2 -.18(re)3.089 G(ad).18 E F0(sa)3.089 E -.15(ve)-.2
-G 3.089(sa).15 G .889 -.15(ny p)-3.089 H .589
-(artial input read into the speci\214ed).15 F(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(69)190.395 E 0 Cg EP
-%%Page: 70 70
+722.4 R .506(fect when reading)-.25 F(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(72)185.115 E 0 Cg EP
+%%Page: 73 73
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E -.25(va)180 84 S
-(riable).25 E/F1 10/Times-Italic@0 SF(name)2.77 E F0 5.27(.I)C(f)-5.27 E
-F1(timeout)2.77 E F0 .27(is 0,)2.77 F/F2 10/Times-Bold@0 SF -.18(re)2.77
-G(ad).18 E F0 .27(returns immediately)2.77 F 2.77(,w)-.65 G .27
-(ithout trying to read an)-2.77 F 2.77(yd)-.15 G(ata.)-2.77 E 1.12
-(The e)180 96 R 1.12(xit status is 0 if input is a)-.15 F -.25(va)-.2 G
-1.12(ilable on the speci\214ed \214le descriptor).25 F 3.62(,n)-.4 G
-1.12(on-zero other)-3.62 F(-)-.2 E 2.5(wise. The)180 108 R -.15(ex)2.5 G
-(it status is greater than 128 if the timeout is e).15 E(xceeded.)-.15 E
-F2<ad75>144 120 Q F1(fd)2.5 E F0(Read input from \214le descriptor)180
-120 Q F1(fd)2.5 E F0(.)A .522(If no)144 136.8 R F1(names)3.382 E F0 .522
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .59(from re)180 84
+R .59(gular \214les.)-.15 F(If)5.59 E/F1 10/Times-Bold@0 SF -.18(re)3.09
+G(ad).18 E F0 .589(times out,)3.09 F F1 -.18(re)3.089 G(ad).18 E F0(sa)
+3.089 E -.15(ve)-.2 G 3.089(sa).15 G .889 -.15(ny p)-3.089 H .589
+(artial input read into the speci\214ed).15 F -.25(va)180 96 S(riable)
+.25 E/F2 10/Times-Italic@0 SF(name)2.77 E F0 5.27(.I)C(f)-5.27 E F2
+(timeout)2.77 E F0 .27(is 0,)2.77 F F1 -.18(re)2.77 G(ad).18 E F0 .27
+(returns immediately)2.77 F 2.77(,w)-.65 G .27(ithout trying to read an)
+-2.77 F 2.77(yd)-.15 G(ata.)-2.77 E .228(The e)180 108 R .228
+(xit status is 0 if input is a)-.15 F -.25(va)-.2 G .228
+(ilable on the speci\214ed \214le descriptor).25 F 2.728(,o)-.4 G 2.727
+(rt)-2.728 G .227(he read will re-)-2.727 F 1.224(turn EOF)180 120 R
+3.724(,n)-.8 G 1.224(on-zero otherwise.)-3.724 F 1.224(The e)6.224 F
+1.225(xit status is greater than 128 if the timeout is e)-.15 F(x-)-.15
+E(ceeded.)180 132 Q F1<ad75>144 144 Q F2(fd)2.5 E F0
+(Read input from \214le descriptor)180 144 Q F2(fd)2.5 E F0(.)A .522
+(If no)144 160.8 R F2(names)3.382 E F0 .522
(are supplied, the line read, without the ending delimiter b)3.292 F
-.522(ut otherwise unmodi\214ed, is)-.2 F 1.187(assigned to the v)144
-148.8 R(ariable)-.25 E/F3 9/Times-Bold@0 SF(REPL)3.686 E(Y)-.828 E/F4 9
+.522(ut otherwise unmodi\214ed, is)-.2 F 1.186(assigned to the v)144
+172.8 R(ariable)-.25 E/F3 9/Times-Bold@0 SF(REPL)3.686 E(Y)-.828 E/F4 9
/Times-Roman@0 SF(.)A F0 1.186(The e)5.686 F 1.186
-(xit status is zero, unless end-of-\214le is encountered,)-.15 F F2 -.18
-(re)3.686 G(ad).18 E F0 .96
+(xit status is zero, unless end-of-\214le is encountered,)-.15 F F1 -.18
+(re)3.687 G(ad).18 E F0 .961
(times out \(in which case the status is greater than 128\), a v)144
-160.8 R .961(ariable assignment error \(such as as-)-.25 F .707
-(signing to a readonly v)144 172.8 R .706(ariable\) occurs, or an in)
+184.8 R .96(ariable assignment error \(such as as-)-.25 F .706
+(signing to a readonly v)144 196.8 R .706(ariable\) occurs, or an in)
-.25 F -.25(va)-.4 G .706(lid \214le descriptor is supplied as the ar)
-.25 F .706(gument to)-.18 F F2<ad75>144 184.8 Q F0(.)A F2 -.18(re)108
-201.6 S(adonly).18 E F0([)2.5 E F2(\255aAf)A F0 2.5(][)C F2<ad70>-2.5 E
-F0 2.5(][)C F1(name)-2.5 E F0([=)A F1(wor)A(d)-.37 E F0 2.5(].)C(..])
--2.5 E .77(The gi)144 213.6 R -.15(ve)-.25 G(n).15 E F1(names)3.27 E F0
+.25 F .707(gument to)-.18 F F1<ad75>144 208.8 Q F0(.)A F1 -.18(re)108
+225.6 S(adonly).18 E F0([)2.5 E F1(\255aAf)A F0 2.5(][)C F1<ad70>-2.5 E
+F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E F0 2.5(].)C(..])
+-2.5 E .77(The gi)144 237.6 R -.15(ve)-.25 G(n).15 E F2(names)3.27 E F0
.77(are mark)3.27 F .77(ed readonly; the v)-.1 F .77(alues of these)-.25
-F F1(names)3.63 E F0 .77(may not be changed by subse-)3.54 F 1.097
-(quent assignment.)144 225.6 R 1.097(If the)6.097 F F2<ad66>3.597 E F0
-1.097(option is supplied, the functions corresponding to the)3.597 F F1
-(names)3.596 E F0 1.096(are so)3.596 F(mark)144 237.6 Q 3.334(ed. The)
--.1 F F2<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834
+F F2(names)3.63 E F0 .77(may not be changed by subse-)3.54 F 1.096
+(quent assignment.)144 249.6 R 1.096(If the)6.096 F F1<ad66>3.596 E F0
+1.097(option is supplied, the functions corresponding to the)3.596 F F2
+(names)3.597 E F0 1.097(are so)3.597 F(mark)144 261.6 Q 3.334(ed. The)
+-.1 F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834
(ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the)
--3.334 F F2<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-)
--.25 E .777(ables to associati)144 249.6 R 1.077 -.15(ve a)-.25 H 3.277
-(rrays. If).15 F .777(both options are supplied,)3.277 F F2<ad41>3.277 E
-F0(tak)3.277 E .776(es precedence.)-.1 F .776(If no)5.776 F F1(name)
-3.636 E F0(ar)3.456 E(gu-)-.18 E .521(ments are gi)144 261.6 R -.15(ve)
--.25 G .521(n, or if the).15 F F2<ad70>3.021 E F0 .521
+-3.334 F F1<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-)
+-.25 E .776(ables to associati)144 273.6 R 1.076 -.15(ve a)-.25 H 3.276
+(rrays. If).15 F .777(both options are supplied,)3.276 F F1<ad41>3.277 E
+F0(tak)3.277 E .777(es precedence.)-.1 F .777(If no)5.777 F F2(name)
+3.637 E F0(ar)3.457 E(gu-)-.18 E .522(ments are gi)144 285.6 R -.15(ve)
+-.25 G .521(n, or if the).15 F F1<ad70>3.021 E F0 .521
(option is supplied, a list of all readonly names is printed.)3.021 F
-.522(The other)5.521 F .295(options may be used to restrict the output \
-to a subset of the set of readonly names.)144 273.6 R(The)5.295 E F2
-<ad70>2.795 E F0(option)2.795 E .786
+.521(The other)5.521 F .295(options may be used to restrict the output \
+to a subset of the set of readonly names.)144 297.6 R(The)5.296 E F1
+<ad70>2.796 E F0(option)2.796 E .786
(causes output to be displayed in a format that may be reused as input.)
-144 285.6 R .786(If a v)5.786 F .786(ariable name is fol-)-.25 F(lo)144
-297.6 Q .718(wed by =)-.25 F F1(wor)A(d)-.37 E F0 3.218(,t)C .718(he v)
--3.218 F .718(alue of the v)-.25 F .718(ariable is set to)-.25 F F1(wor)
+144 309.6 R .786(If a v)5.786 F .785(ariable name is fol-)-.25 F(lo)144
+321.6 Q .717(wed by =)-.25 F F2(wor)A(d)-.37 E F0 3.218(,t)C .718(he v)
+-3.218 F .718(alue of the v)-.25 F .718(ariable is set to)-.25 F F2(wor)
3.218 E(d)-.37 E F0 5.718(.T)C .718(he return status is 0 unless an in)
-5.718 F -.25(va)-.4 G(lid).25 E .26(option is encountered, one of the)
-144 309.6 R F1(names)3.12 E F0 .26(is not a v)3.03 F .26(alid shell v)
--.25 F .26(ariable name, or)-.25 F F2<ad66>2.76 E F0 .26
-(is supplied with a)2.76 F F1(name)144.36 321.6 Q F0
-(that is not a function.)2.68 E F2 -.18(re)108 338.4 S(tur).18 E(n)-.15
-E F0([)2.5 E F1(n)A F0(])A .021(Causes a function to stop e)144 350.4 R
--.15(xe)-.15 G .021(cuting and return the v).15 F .021
-(alue speci\214ed by)-.25 F F1(n)2.88 E F0 .02(to its caller)2.76 F 5.02
-(.I)-.55 G(f)-5.02 E F1(n)2.88 E F0 .02(is omitted,)2.76 F .596
-(the return status is that of the last command e)144 362.4 R -.15(xe)
--.15 G .597(cuted in the function body).15 F 5.597(.I)-.65 G(f)-5.597 E
-F2 -.18(re)3.097 G(tur).18 E(n)-.15 E F0 .597(is e)3.097 F -.15(xe)-.15
-G(cuted).15 E .267(by a trap handler)144 374.4 R 2.767(,t)-.4 G .267
+144 333.6 R F2(names)3.12 E F0 .26(is not a v)3.03 F .26(alid shell v)
+-.25 F .26(ariable name, or)-.25 F F1<ad66>2.76 E F0 .26
+(is supplied with a)2.76 F F2(name)144.36 345.6 Q F0
+(that is not a function.)2.68 E F1 -.18(re)108 362.4 S(tur).18 E(n)-.15
+E F0([)2.5 E F2(n)A F0(])A .02(Causes a function to stop e)144 374.4 R
+-.15(xe)-.15 G .02(cuting and return the v).15 F .021
+(alue speci\214ed by)-.25 F F2(n)2.881 E F0 .021(to its caller)2.761 F
+5.021(.I)-.55 G(f)-5.021 E F2(n)2.881 E F0 .021(is omitted,)2.761 F .597
+(the return status is that of the last command e)144 386.4 R -.15(xe)
+-.15 G .596(cuted in the function body).15 F 5.596(.I)-.65 G(f)-5.596 E
+F1 -.18(re)3.096 G(tur).18 E(n)-.15 E F0 .596(is e)3.096 F -.15(xe)-.15
+G(cuted).15 E .267(by a trap handler)144 398.4 R 2.767(,t)-.4 G .267
(he last command used to determine the status is the last command e)
--2.767 F -.15(xe)-.15 G .267(cuted be-).15 F .02(fore the trap handler)
-144 386.4 R 5.02(.I)-.55 G(f)-5.02 E F2 -.18(re)2.52 G(tur).18 E(n)-.15
-E F0 .02(is e)2.52 F -.15(xe)-.15 G .02(cuted during a).15 F F2(DEB)2.52
+-2.767 F -.15(xe)-.15 G .268(cuted be-).15 F .02(fore the trap handler)
+144 410.4 R 5.02(.I)-.55 G(f)-5.02 E F1 -.18(re)2.52 G(tur).18 E(n)-.15
+E F0 .02(is e)2.52 F -.15(xe)-.15 G .02(cuted during a).15 F F1(DEB)2.52
E(UG)-.1 E F0 .02(trap, the last command used to deter)2.52 F(-)-.2 E
-.886(mine the status is the last command e)144 398.4 R -.15(xe)-.15 G
-.886(cuted by the trap handler before).15 F F2 -.18(re)3.385 G(tur).18 E
-(n)-.15 E F0 -.1(wa)3.385 G 3.385(si).1 G -1.9 -.4(nv o)-3.385 H -.1(ke)
-.4 G 3.385(d. If).1 F F2 -.18(re)144 410.4 S(tur).18 E(n)-.15 E F0 .627
-(is used outside a function, b)3.127 F .628(ut during e)-.2 F -.15(xe)
--.15 G .628(cution of a script by the).15 F F2(.)3.128 E F0(\()5.628 E
-F2(sour)A(ce)-.18 E F0 3.128(\)c)C .628(ommand, it)-3.128 F .589
-(causes the shell to stop e)144 422.4 R -.15(xe)-.15 G .589
-(cuting that script and return either).15 F F1(n)3.448 E F0 .588
-(or the e)3.328 F .588(xit status of the last com-)-.15 F .325(mand e)
-144 434.4 R -.15(xe)-.15 G .325(cuted within the script as the e).15 F
-.326(xit status of the script.)-.15 F(If)5.326 E F1(n)2.826 E F0 .326
-(is supplied, the return v)2.826 F .326(alue is)-.25 F .445
-(its least signi\214cant 8 bits.)144 446.4 R .444
-(The return status is non-zero if)5.445 F F2 -.18(re)2.944 G(tur).18 E
-(n)-.15 E F0 .444(is supplied a non-numeric ar)2.944 F(gu-)-.18 E .381
-(ment, or is used outside a function and not during e)144 458.4 R -.15
-(xe)-.15 G .381(cution of a script by).15 F F2(.)2.881 E F0(or)3.714 E
-F2(sour)2.881 E(ce)-.18 E F0 5.381(.A)C .681 -.15(ny c)-5.381 H(om-).15
-E .75(mand associated with the)144 470.4 R F2(RETURN)3.249 E F0 .749
+.885(mine the status is the last command e)144 422.4 R -.15(xe)-.15 G
+.886(cuted by the trap handler before).15 F F1 -.18(re)3.386 G(tur).18 E
+(n)-.15 E F0 -.1(wa)3.386 G 3.386(si).1 G -1.9 -.4(nv o)-3.386 H -.1(ke)
+.4 G 3.386(d. If).1 F F1 -.18(re)144 434.4 S(tur).18 E(n)-.15 E F0 .628
+(is used outside a function, b)3.128 F .628(ut during e)-.2 F -.15(xe)
+-.15 G .628(cution of a script by the).15 F F1(.)3.127 E F0(\()5.627 E
+F1(sour)A(ce)-.18 E F0 3.127(\)c)C .627(ommand, it)-3.127 F .588
+(causes the shell to stop e)144 446.4 R -.15(xe)-.15 G .588
+(cuting that script and return either).15 F F2(n)3.448 E F0 .589
+(or the e)3.329 F .589(xit status of the last com-)-.15 F .326(mand e)
+144 458.4 R -.15(xe)-.15 G .326(cuted within the script as the e).15 F
+.326(xit status of the script.)-.15 F(If)5.326 E F2(n)2.826 E F0 .325
+(is supplied, the return v)2.826 F .325(alue is)-.25 F .444
+(its least signi\214cant 8 bits.)144 470.4 R .444
+(The return status is non-zero if)5.444 F F1 -.18(re)2.945 G(tur).18 E
+(n)-.15 E F0 .445(is supplied a non-numeric ar)2.945 F(gu-)-.18 E .381
+(ment, or is used outside a function and not during e)144 482.4 R -.15
+(xe)-.15 G .381(cution of a script by).15 F F1(.)2.881 E F0(or)3.714 E
+F1(sour)2.881 E(ce)-.18 E F0 5.38(.A)C .68 -.15(ny c)-5.38 H(om-).15 E
+.749(mand associated with the)144 494.4 R F1(RETURN)3.249 E F0 .749
(trap is e)3.249 F -.15(xe)-.15 G .749(cuted before e).15 F -.15(xe)-.15
-G .749(cution resumes after the function).15 F(or script.)144 482.4 Q F2
-(set)108 499.2 Q F0([)2.5 E F2(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C
-F2<ad6f>-2.5 E F1(option\255name)2.5 E F0 2.5(][)C F1(ar)-2.5 E(g)-.37 E
-F0(...])2.5 E F2(set)108 511.2 Q F0([)2.5 E F2(+abefhkmnptuvxBCEHPT)A F0
-2.5(][)C F2(+o)-2.5 E F1(option\255name)2.5 E F0 2.5(][)C F1(ar)-2.5 E
-(g)-.37 E F0(...])2.5 E -.4(Wi)144 523.2 S .835
-(thout options, the name and v).4 F .835(alue of each shell v)-.25 F
-.836(ariable are displayed in a format that can be)-.25 F .784
-(reused as input for setting or resetting the currently-set v)144 535.2
-R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .783
-(riables cannot be).25 F 2.946(reset. In)144 547.2 R F1 .447(posix mode)
-2.946 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
-(ariables are listed.)-.25 F .447
-(The output is sorted according to the current)5.447 F 3.531
-(locale. When)144 559.2 R 1.031(options are speci\214ed, the)3.531 F
-3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.53(utes. An)
--.2 F 3.53(ya)-.15 G -.18(rg)-3.53 G 1.03(uments remaining).18 F .584
-(after option processing are treated as v)144 571.2 R .585
-(alues for the positional parameters and are assigned, in or)-.25 F(-)
--.2 E(der)144 583.2 Q 2.5(,t)-.4 G(o)-2.5 E F2($1)2.5 E F0(,)A F2($2)2.5
-E F0(,)A F2 2.5(... $)2.5 F F1(n)A F0 5(.O)C(ptions, if speci\214ed, ha)
--5 E .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F2<ad61>144
-595.2 Q F0 1.378(Each v)184 595.2 R 1.377
+G .75(cution resumes after the function).15 F(or script.)144 506.4 Q F1
+(set)108 523.2 Q F0([)2.5 E F1(\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1
+<ad6f>-2.5 E F2(option\255name)2.5 E F0 2.5(][)C F1<adad>-2.5 E F0 2.5
+(][)C F1<ad>-2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1
+(set)108 535.2 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)
+-2.5 E F2(option\255name)2.5 E F0 2.5(][)C F1<adad>-2.5 E F0 2.5(][)C F1
+<ad>-2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144
+547.2 S .574(thout options, display the name and v).4 F .574
+(alue of each shell v)-.25 F .573
+(ariable in a format that can be reused)-.25 F .113
+(as input for setting or resetting the currently-set v)144 559.2 R 2.613
+(ariables. Read-only)-.25 F -.25(va)2.613 G .113
+(riables cannot be reset.).25 F(In)5.113 E F2 1.032(posix mode)144 571.2
+R F0 3.532(,o)C 1.032(nly shell v)-3.532 F 1.032(ariables are listed.)
+-.25 F 1.032(The output is sorted according to the current locale.)6.032
+F .58(When options are speci\214ed, the)144 583.2 R 3.081(ys)-.15 G .581
+(et or unset shell attrib)-3.081 F 3.081(utes. An)-.2 F 3.081(ya)-.15 G
+-.18(rg)-3.081 G .581(uments remaining after op-).18 F .161
+(tion processing are treated as v)144 595.2 R .161
+(alues for the positional parameters and are assigned, in order)-.25 F
+2.66(,t)-.4 G(o)-2.66 E F1($1)2.66 E F0(,)A F1($2)144 607.2 Q F0(,)A F1
+2.5(... $)2.5 F F2(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3 -.15
+(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 619.2 Q F0
+1.377(Each v)184 619.2 R 1.377
(ariable or function that is created or modi\214ed is gi)-.25 F -.15(ve)
--.25 G 3.877(nt).15 G 1.377(he e)-3.877 F 1.377(xport attrib)-.15 F
-1.377(ute and)-.2 F(mark)184 607.2 Q(ed for e)-.1 E(xport to the en)-.15
-E(vironment of subsequent commands.)-.4 E F2<ad62>144 619.2 Q F0 .131
-(Report the status of terminated background jobs immediately)184 619.2 R
-2.632(,r)-.65 G .132(ather than before the ne)-2.632 F(xt)-.15 E
-(primary prompt.)184 631.2 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
--.25 H(nly when job control is enabled.).15 E F2<ad65>144 643.2 Q F0
-.088(Exit immediately if a)184 643.2 R F1(pipeline)2.588 E F0 .087
-(\(which may consist of a single)2.588 F F1 .087(simple command)2.587 F
-F0 .087(\), a)B F1(list)2.587 E F0 2.587(,o)C(r)-2.587 E(a)184 655.2 Q
-F1 1.52(compound command)4.02 F F0(\(see)4.021 E F3 1.521(SHELL GRAMMAR)
-4.021 F F0(abo)3.771 E -.15(ve)-.15 G 1.521(\), e).15 F 1.521
-(xits with a non-zero status.)-.15 F .08(The shell does not e)184 667.2
-R .079(xit if the command that f)-.15 F .079
-(ails is part of the command list immediately)-.1 F(follo)184 679.2 Q
-1.654(wing a)-.25 F F2(while)4.154 E F0(or)4.154 E F2(until)4.154 E F0
--.1(ke)4.154 G(yw)-.05 E 1.655(ord, part of the test follo)-.1 F 1.655
-(wing the)-.25 F F2(if)4.155 E F0(or)4.155 E F2(elif)4.155 E F0(reserv)
-4.155 E(ed)-.15 E -.1(wo)184 691.2 S .582(rds, part of an).1 F 3.082(yc)
--.15 G .582(ommand e)-3.082 F -.15(xe)-.15 G .581(cuted in a).15 F F2
-(&&)3.081 E F0(or)3.081 E F2(||)3.081 E F0 .581(list e)3.081 F .581
-(xcept the command follo)-.15 F(wing)-.25 E .917(the \214nal)184 703.2 R
-F2(&&)3.417 E F0(or)3.417 E F2(||)3.417 E F0 3.417(,a)C 1.217 -.15(ny c)
--3.417 H .918(ommand in a pipeline b).15 F .918
-(ut the last, or if the command')-.2 F 3.418(sr)-.55 G(eturn)-3.418 E
--.25(va)184 715.2 S .661(lue is being in).25 F -.15(ve)-.4 G .661
-(rted with).15 F F2(!)3.161 E F0 5.661(.I)C 3.161(fac)-5.661 G .66
-(ompound command other than a subshell returns a)-3.161 F 1.112
-(non-zero status because a command f)184 727.2 R 1.112(ailed while)-.1 F
-F2<ad65>3.612 E F0 -.1(wa)3.612 G 3.612(sb).1 G 1.113
-(eing ignored, the shell does)-3.612 F(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(70)190.395 E 0 Cg EP
-%%Page: 71 71
+-.25 G 3.877(nt).15 G 1.377(he e)-3.877 F 1.378(xport attrib)-.15 F
+1.378(ute and)-.2 F(mark)184 631.2 Q(ed for e)-.1 E(xport to the en)-.15
+E(vironment of subsequent commands.)-.4 E F1<ad62>144 643.2 Q F0 .132
+(Report the status of terminated background jobs immediately)184 643.2 R
+2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E
+(primary prompt.)184 655.2 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
+-.25 H(nly when job control is enabled.).15 E F1<ad65>144 667.2 Q F0
+.087(Exit immediately if a)184 667.2 R F2(pipeline)2.587 E F0 .087
+(\(which may consist of a single)2.587 F F2 .088(simple command)2.588 F
+F0 .088(\), a)B F2(list)2.588 E F0 2.588(,o)C(r)-2.588 E(a)184 679.2 Q
+F2 1.521(compound command)4.021 F F0(\(see)4.021 E F3 1.521
+(SHELL GRAMMAR)4.021 F F0(abo)3.771 E -.15(ve)-.15 G 1.521(\), e).15 F
+1.521(xits with a non-zero status.)-.15 F .079(The shell does not e)184
+691.2 R .079(xit if the command that f)-.15 F .08
+(ails is part of the command list immediately)-.1 F(follo)184 703.2 Q
+1.655(wing a)-.25 F F1(while)4.155 E F0(or)4.155 E F1(until)4.155 E F0
+-.1(ke)4.155 G(yw)-.05 E 1.655(ord, part of the test follo)-.1 F 1.654
+(wing the)-.25 F F1(if)4.154 E F0(or)4.154 E F1(elif)4.154 E F0(reserv)
+4.154 E(ed)-.15 E -.1(wo)184 715.2 S .581(rds, part of an).1 F 3.081(yc)
+-.15 G .581(ommand e)-3.081 F -.15(xe)-.15 G .581(cuted in a).15 F F1
+(&&)3.081 E F0(or)3.081 E F1(||)3.081 E F0 .582(list e)3.082 F .582
+(xcept the command follo)-.15 F(wing)-.25 E .918(the \214nal)184 727.2 R
+F1(&&)3.418 E F0(or)3.418 E F1(||)3.418 E F0 3.418(,a)C 1.218 -.15(ny c)
+-3.418 H .918(ommand in a pipeline b).15 F .917
+(ut the last, or if the command')-.2 F 3.417(sr)-.55 G(eturn)-3.417 E
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(73)185.115 E 0 Cg EP
+%%Page: 74 74
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .178(not e)184 84
-R 2.678(xit. A)-.15 F .178(trap on)2.678 F/F1 10/Times-Bold@0 SF(ERR)
-2.678 E F0 2.678(,i)C 2.678(fs)-2.678 G .178(et, is e)-2.678 F -.15(xe)
--.15 G .178(cuted before the shell e).15 F 2.677(xits. This)-.15 F .177
-(option applies to)2.677 F .617(the shell en)184 96 R .617
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E -.25(va)184 84 S
+.66(lue is being in).25 F -.15(ve)-.4 G .66(rted with).15 F/F1 10
+/Times-Bold@0 SF(!)3.16 E F0 5.661(.I)C 3.161(fac)-5.661 G .661
+(ompound command other than a subshell returns a)-3.161 F 1.113
+(non-zero status because a command f)184 96 R 1.112(ailed while)-.1 F F1
+<ad65>3.612 E F0 -.1(wa)3.612 G 3.612(sb).1 G 1.112
+(eing ignored, the shell does)-3.612 F .177(not e)184 108 R 2.677
+(xit. A)-.15 F .177(trap on)2.677 F F1(ERR)2.677 E F0 2.677(,i)C 2.678
+(fs)-2.677 G .178(et, is e)-2.678 F -.15(xe)-.15 G .178
+(cuted before the shell e).15 F 2.678(xits. This)-.15 F .178
+(option applies to)2.678 F .618(the shell en)184 120 R .617
(vironment and each subshell en)-.4 F .617(vironment separately \(see)
--.4 F/F2 9/Times-Bold@0 SF .618(COMMAND EXE-)3.118 F .643(CUTION ENVIR)
-184 108 R(ONMENT)-.27 E F0(abo)2.893 E -.15(ve)-.15 G .643
+-.4 F/F2 9/Times-Bold@0 SF .617(COMMAND EXE-)3.117 F .642(CUTION ENVIR)
+184 132 R(ONMENT)-.27 E F0(abo)2.893 E -.15(ve)-.15 G .643
(\), and may cause subshells to e).15 F .643(xit before e)-.15 F -.15
-(xe)-.15 G .642(cuting all).15 F(the commands in the subshell.)184 120 Q
-.998(If a compound command or shell function e)184 138 R -.15(xe)-.15 G
-.999(cutes in a conte).15 F .999(xt where)-.15 F F1<ad65>3.499 E F0 .999
-(is being ig-)3.499 F .089(nored, none of the commands e)184 150 R -.15
+(xe)-.15 G .643(cuting all).15 F(the commands in the subshell.)184 144 Q
+.999(If a compound command or shell function e)184 162 R -.15(xe)-.15 G
+.999(cutes in a conte).15 F .998(xt where)-.15 F F1<ad65>3.498 E F0 .998
+(is being ig-)3.498 F .089(nored, none of the commands e)184 174 R -.15
(xe)-.15 G .089(cuted within the compound command or function body).15 F
-.502(will be af)184 162 R .502(fected by the)-.25 F F1<ad65>3.002 E F0
+.503(will be af)184 186 R .503(fected by the)-.25 F F1<ad65>3.002 E F0
.502(setting, e)3.002 F -.15(ve)-.25 G 3.002(ni).15 G(f)-3.002 E F1
-<ad65>3.002 E F0 .502(is set and a command returns a f)3.002 F .503
-(ailure sta-)-.1 F 4.184(tus. If)184 174 R 4.184(ac)4.184 G 1.684
-(ompound command or shell function sets)-4.184 F F1<ad65>4.183 E F0
-1.683(while e)4.183 F -.15(xe)-.15 G 1.683(cuting in a conte).15 F(xt)
--.15 E(where)184 186 Q F1<ad65>3.153 E F0 .653
-(is ignored, that setting will not ha)3.153 F .954 -.15(ve a)-.2 H .954
--.15(ny e).15 H -.25(ff).15 G .654(ect until the compound command).25 F
-(or the command containing the function call completes.)184 198 Q F1
-<ad66>144 210 Q F0(Disable pathname e)184 210 Q(xpansion.)-.15 E F1
-<ad68>144 222 Q F0 .988(Remember the location of commands as the)184 222
+<ad65>3.002 E F0 .502(is set and a command returns a f)3.002 F .502
+(ailure sta-)-.1 F 4.183(tus. If)184 198 R 4.183(ac)4.183 G 1.683
+(ompound command or shell function sets)-4.183 F F1<ad65>4.184 E F0
+1.684(while e)4.184 F -.15(xe)-.15 G 1.684(cuting in a conte).15 F(xt)
+-.15 E(where)184 210 Q F1<ad65>3.154 E F0 .654
+(is ignored, that setting will not ha)3.154 F .953 -.15(ve a)-.2 H .953
+-.15(ny e).15 H -.25(ff).15 G .653(ect until the compound command).25 F
+(or the command containing the function call completes.)184 222 Q F1
+<ad66>144 234 Q F0(Disable pathname e)184 234 Q(xpansion.)-.15 E F1
+<ad68>144 246 Q F0 .988(Remember the location of commands as the)184 246
R 3.488(ya)-.15 G .988(re look)-3.488 F .988(ed up for e)-.1 F -.15(xe)
--.15 G 3.488(cution. This).15 F .987(is en-)3.487 F(abled by def)184 234
-Q(ault.)-.1 E F1<ad6b>144 246 Q F0 .513(All ar)184 246 R .514
+-.15 G 3.488(cution. This).15 F .988(is en-)3.488 F(abled by def)184 258
+Q(ault.)-.1 E F1<ad6b>144 270 Q F0 .514(All ar)184 270 R .514
(guments in the form of assignment statements are placed in the en)-.18
-F .514(vironment for a)-.4 F
-(command, not just those that precede the command name.)184 258 Q F1
-<ad6d>144 270 Q F0 .149(Monitor mode.)184 270 R .149
-(Job control is enabled.)5.149 F .148(This option is on by def)5.149 F
-.148(ault for interacti)-.1 F .448 -.15(ve s)-.25 H(hells).15 E .65
-(on systems that support it \(see)184 282 R F2 .651(JOB CONTR)3.151 F
-(OL)-.27 E F0(abo)2.901 E -.15(ve)-.15 G 3.151(\). All).15 F .651
-(processes run in a separate)3.151 F .679(process group.)184 294 R .678
+F .513(vironment for a)-.4 F
+(command, not just those that precede the command name.)184 282 Q F1
+<ad6d>144 294 Q F0 .148(Monitor mode.)184 294 R .148
+(Job control is enabled.)5.148 F .149(This option is on by def)5.148 F
+.149(ault for interacti)-.1 F .449 -.15(ve s)-.25 H(hells).15 E .651
+(on systems that support it \(see)184 306 R F2 .651(JOB CONTR)3.151 F
+(OL)-.27 E F0(abo)2.901 E -.15(ve)-.15 G 3.151(\). All).15 F .65
+(processes run in a separate)3.151 F .678(process group.)184 318 R .679
(When a background job completes, the shell prints a line containing it\
-s)5.679 F -.15(ex)184 306 S(it status.).15 E F1<ad6e>144 318 Q F0 .652
-(Read commands b)184 318 R .652(ut do not e)-.2 F -.15(xe)-.15 G .652
-(cute them.).15 F .653(This may be used to check a shell script for)
-5.652 F(syntax errors.)184 330 Q(This is ignored by interacti)5 E .3
--.15(ve s)-.25 H(hells.).15 E F1<ad6f>144 342 Q/F3 10/Times-Italic@0 SF
-(option\255name)2.5 E F0(The)184 354 Q F3(option\255name)2.5 E F0
-(can be one of the follo)2.5 E(wing:)-.25 E F1(allexport)184 366 Q F0
-(Same as)224 378 Q F1<ad61>2.5 E F0(.)A F1(braceexpand)184 390 Q F0
-(Same as)224 402 Q F1<ad42>2.5 E F0(.)A F1(emacs)184 414 Q F0 .089
-(Use an emacs-style command line editing interf)224 414 R 2.589
+s)5.678 F -.15(ex)184 330 S(it status.).15 E F1<ad6e>144 342 Q F0 .653
+(Read commands b)184 342 R .653(ut do not e)-.2 F -.15(xe)-.15 G .653
+(cute them.).15 F .652(This may be used to check a shell script for)
+5.653 F(syntax errors.)184 354 Q(This is ignored by interacti)5 E .3
+-.15(ve s)-.25 H(hells.).15 E F1<ad6f>144 366 Q/F3 10/Times-Italic@0 SF
+(option\255name)2.5 E F0(The)184 378 Q F3(option\255name)2.5 E F0
+(can be one of the follo)2.5 E(wing:)-.25 E F1(allexport)184 390 Q F0
+(Same as)224 402 Q F1<ad61>2.5 E F0(.)A F1(braceexpand)184 414 Q F0
+(Same as)224 426 Q F1<ad42>2.5 E F0(.)A F1(emacs)184 438 Q F0 .089
+(Use an emacs-style command line editing interf)224 438 R 2.589
(ace. This)-.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
-(when the shell is interacti)224 426 R -.15(ve)-.25 G 3.45(,u).15 G .95
+(when the shell is interacti)224 450 R -.15(ve)-.25 G 3.45(,u).15 G .95
(nless the shell is started with the)-3.45 F F1(\255\255noediting)3.45 E
-F0 2.5(option. This)224 438 R(also af)2.5 E(fects the editing interf)
+F0 2.5(option. This)224 462 R(also af)2.5 E(fects the editing interf)
-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1(err)
-184 450 Q(exit)-.18 E F0(Same as)224 450 Q F1<ad65>2.5 E F0(.)A F1
-(errtrace)184 462 Q F0(Same as)224 462 Q F1<ad45>2.5 E F0(.)A F1
-(functrace)184 474 Q F0(Same as)224 486 Q F1<ad54>2.5 E F0(.)A F1
-(hashall)184 498 Q F0(Same as)224 498 Q F1<ad68>2.5 E F0(.)A F1
-(histexpand)184 510 Q F0(Same as)224 522 Q F1<ad48>2.5 E F0(.)A F1
-(history)184 534 Q F0 .587(Enable command history)224 534 R 3.087(,a)
+184 474 Q(exit)-.18 E F0(Same as)224 474 Q F1<ad65>2.5 E F0(.)A F1
+(errtrace)184 486 Q F0(Same as)224 486 Q F1<ad45>2.5 E F0(.)A F1
+(functrace)184 498 Q F0(Same as)224 510 Q F1<ad54>2.5 E F0(.)A F1
+(hashall)184 522 Q F0(Same as)224 522 Q F1<ad68>2.5 E F0(.)A F1
+(histexpand)184 534 Q F0(Same as)224 546 Q F1<ad48>2.5 E F0(.)A F1
+(history)184 558 Q F0 .586(Enable command history)224 558 R 3.087(,a)
-.65 G 3.087(sd)-3.087 G .587(escribed abo)-3.087 F .887 -.15(ve u)-.15
H(nder).15 E F2(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F4 9/Times-Roman@0 SF
-(.)A F0 .587(This option is)5.087 F(on by def)224 546 Q
+(.)A F0 .587(This option is)5.087 F(on by def)224 570 Q
(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184
-558 Q(eeof)-.18 E F0 1.656(The ef)224 570 R 1.656
+582 Q(eeof)-.18 E F0 1.657(The ef)224 594 R 1.657
(fect is as if the shell command)-.25 F/F5 10/Courier@0 SF(IGNOREEOF=10)
-4.157 E F0 1.657(had been e)4.157 F -.15(xe)-.15 G(cuted).15 E(\(see)224
-582 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
-.15 E F1 -.1(ke)184 594 S(yw).1 E(ord)-.1 E F0(Same as)224 606 Q F1
-<ad6b>2.5 E F0(.)A F1(monitor)184 618 Q F0(Same as)224 618 Q F1<ad6d>2.5
-E F0(.)A F1(noclob)184 630 Q(ber)-.1 E F0(Same as)224 642 Q F1<ad43>2.5
-E F0(.)A F1(noexec)184 654 Q F0(Same as)224 654 Q F1<ad6e>2.5 E F0(.)A
-F1(noglob)184 666 Q F0(Same as)224 666 Q F1<ad66>2.5 E F0(.)A F1(nolog)
-184 678 Q F0(Currently ignored.)224 678 Q F1(notify)184 690 Q F0
-(Same as)224 690 Q F1<ad62>2.5 E F0(.)A F1(nounset)184 702 Q F0(Same as)
-224 702 Q F1<ad75>2.5 E F0(.)A F1(onecmd)184 714 Q F0(Same as)224 714 Q
-F1<ad74>2.5 E F0(.)A(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(71)
-190.395 E 0 Cg EP
-%%Page: 72 72
+4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted).15 E(\(see)224
+606 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
+.15 E F1 -.1(ke)184 618 S(yw).1 E(ord)-.1 E F0(Same as)224 630 Q F1
+<ad6b>2.5 E F0(.)A F1(monitor)184 642 Q F0(Same as)224 642 Q F1<ad6d>2.5
+E F0(.)A F1(noclob)184 654 Q(ber)-.1 E F0(Same as)224 666 Q F1<ad43>2.5
+E F0(.)A F1(noexec)184 678 Q F0(Same as)224 678 Q F1<ad6e>2.5 E F0(.)A
+F1(noglob)184 690 Q F0(Same as)224 690 Q F1<ad66>2.5 E F0(.)A F1(nolog)
+184 702 Q F0(Currently ignored.)224 702 Q F1(notify)184 714 Q F0
+(Same as)224 714 Q F1<ad62>2.5 E F0(.)A(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(74)185.115 E 0 Cg EP
+%%Page: 75 75
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(ph)184 84 Q(ysical)-.15 E F0(Same as)224 84 Q F1<ad50>2.5 E F0(.)A F1
-(pipefail)184 96 Q F0 1.03(If set, the return v)224 96 R 1.029
-(alue of a pipeline is the v)-.25 F 1.029
-(alue of the last \(rightmost\) com-)-.25 F 1.136(mand to e)224 108 R
+SF(nounset)184 84 Q F0(Same as)224 84 Q F1<ad75>2.5 E F0(.)A F1(onecmd)
+184 96 Q F0(Same as)224 96 Q F1<ad74>2.5 E F0(.)A F1(ph)184 108 Q
+(ysical)-.15 E F0(Same as)224 108 Q F1<ad50>2.5 E F0(.)A F1(pipefail)184
+120 Q F0 1.029(If set, the return v)224 120 R 1.029
+(alue of a pipeline is the v)-.25 F 1.03
+(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 132 R
1.136
(xit with a non-zero status, or zero if all commands in the pipeline)
--.15 F -.15(ex)224 120 S(it successfully).15 E 5(.T)-.65 G
-(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 132 Q F0
-2.091(Change the beha)224 132 R 2.091(vior of)-.2 F F1(bash)4.591 E F0
+-.15 F -.15(ex)224 144 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 156 Q F0
+2.09(Change the beha)224 156 R 2.091(vior of)-.2 F F1(bash)4.591 E F0
2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091
(fers from the)-.25 F 1.212(POSIX standard to match the standard \()224
-144 R/F2 10/Times-Italic@0 SF 1.212(posix mode)B F0 3.712(\). See)B/F3 9
-/Times-Bold@0 SF 1.212(SEE ALSO)3.712 F F0(belo)3.463 E(w)-.25 E .955
-(for a reference to a document that details ho)224 156 R 3.454(wp)-.25 G
-.954(osix mode af)-3.454 F .954(fects bash')-.25 F 3.454(sb)-.55 G(e-)
--3.454 E(ha)224 168 Q(vior)-.2 E(.)-.55 E F1(pri)184 180 Q(vileged)-.1 E
-F0(Same as)224 192 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 204 S(rbose).1 E
-F0(Same as)224 204 Q F1<ad76>2.5 E F0(.)A F1(vi)184 216 Q F0 .209
-(Use a vi-style command line editing interf)224 216 R 2.709(ace. This)
--.1 F .209(also af)2.709 F .21(fects the editing in-)-.25 F(terf)224 228
-Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1(xtrace)
-184 240 Q F0(Same as)224 240 Q F1<ad78>2.5 E F0(.)A(If)184 258 Q F1
-<ad6f>3.053 E F0 .553(is supplied with no)3.053 F F2(option\255name)
-3.053 E F0 3.053(,t)C .553(he v)-3.053 F .552
-(alues of the current options are printed.)-.25 F(If)5.552 E F1(+o)184
-270 Q F0 1.071(is supplied with no)3.571 F F2(option\255name)3.571 E F0
-3.571(,as)C 1.071(eries of)-3.571 F F1(set)3.572 E F0 1.072
-(commands to recreate the current)3.572 F
-(option settings is displayed on the standard output.)184 282 Q F1<ad70>
-144 294 Q F0 -.45(Tu)184 294 S 1.072(rn on).45 F F2(privile)4.822 E -.1
-(ge)-.4 G(d).1 E F0 3.572(mode. In)4.342 F 1.072(this mode, the)3.572 F
-F3($ENV)3.572 E F0(and)3.322 E F3($B)3.572 E(ASH_ENV)-.27 E F0 1.071
-(\214les are not pro-)3.322 F 1.5
-(cessed, shell functions are not inherited from the en)184 306 R 1.501
-(vironment, and the)-.4 F F3(SHELLOPTS)4.001 E/F4 9/Times-Roman@0 SF(,)A
-F3 -.27(BA)184 318 S(SHOPTS).27 E F4(,)A F3(CDP)2.775 E -.855(AT)-.666 G
-(H).855 E F4(,)A F0(and)2.775 E F3(GLOBIGNORE)3.025 E F0 -.25(va)2.775 G
-.524(riables, if the).25 F 3.024(ya)-.15 G .524(ppear in the en)-3.024 F
-(vironment,)-.4 E .379(are ignored.)184 330 R .379
-(If the shell is started with the ef)5.379 F(fecti)-.25 E .679 -.15
-(ve u)-.25 H .38(ser \(group\) id not equal to the real).15 F .462
-(user \(group\) id, and the)184 342 R F1<ad70>2.961 E F0 .461
-(option is not supplied, these actions are tak)2.961 F .461
-(en and the ef)-.1 F(fec-)-.25 E(ti)184 354 Q .694 -.15(ve u)-.25 H .394
+168 R/F2 10/Times-Italic@0 SF 1.212(posix mode)B F0 3.712(\). See)B/F3 9
+/Times-Bold@0 SF 1.212(SEE ALSO)3.712 F F0(belo)3.462 E(w)-.25 E .954
+(for a reference to a document that details ho)224 180 R 3.455(wp)-.25 G
+.955(osix mode af)-3.455 F .955(fects bash')-.25 F 3.455(sb)-.55 G(e-)
+-3.455 E(ha)224 192 Q(vior)-.2 E(.)-.55 E F1(pri)184 204 Q(vileged)-.1 E
+F0(Same as)224 216 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 228 S(rbose).1 E
+F0(Same as)224 228 Q F1<ad76>2.5 E F0(.)A F1(vi)184 240 Q F0 .209
+(Use a vi-style command line editing interf)224 240 R 2.709(ace. This)
+-.1 F .209(also af)2.709 F .209(fects the editing in-)-.25 F(terf)224
+252 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1
+(xtrace)184 264 Q F0(Same as)224 264 Q F1<ad78>2.5 E F0(.)A(If)184 282 Q
+F1<ad6f>3.052 E F0 .552(is supplied with no)3.052 F F2(option\255name)
+3.053 E F0 3.053(,t)C .553(he v)-3.053 F .553
+(alues of the current options are printed.)-.25 F(If)5.553 E F1(+o)184
+294 Q F0 1.072(is supplied with no)3.572 F F2(option\255name)3.572 E F0
+3.572(,a)C 1.071(series of)-.001 F F1(set)3.571 E F0 1.071
+(commands to recreate the current)3.571 F
+(option settings is displayed on the standard output.)184 306 Q F1<ad70>
+144 318 Q F0 -.45(Tu)184 318 S 1.071(rn on).45 F F2(privile)4.821 E -.1
+(ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F
+F3($ENV)3.572 E F0(and)3.322 E F3($B)3.572 E(ASH_ENV)-.27 E F0 1.072
+(\214les are not pro-)3.322 F 1.501
+(cessed, shell functions are not inherited from the en)184 330 R 1.5
+(vironment, and the)-.4 F F3(SHELLOPTS)4 E/F4 9/Times-Roman@0 SF(,)A F3
+-.27(BA)184 342 S(SHOPTS).27 E F4(,)A F3(CDP)2.774 E -.855(AT)-.666 G(H)
+.855 E F4(,)A F0(and)2.774 E F3(GLOBIGNORE)3.024 E F0 -.25(va)2.774 G
+.524(riables, if the).25 F 3.025(ya)-.15 G .525(ppear in the en)-3.025 F
+(vironment,)-.4 E .38(are ignored.)184 354 R .38
+(If the shell is started with the ef)5.38 F(fecti)-.25 E .679 -.15(ve u)
+-.25 H .379(ser \(group\) id not equal to the real).15 F .461
+(user \(group\) id, and the)184 366 R F1<ad70>2.961 E F0 .461
+(option is not supplied, these actions are tak)2.961 F .462
+(en and the ef)-.1 F(fec-)-.25 E(ti)184 378 Q .695 -.15(ve u)-.25 H .395
(ser id is set to the real user id.).15 F .395(If the)5.395 F F1<ad70>
-2.895 E F0 .395(option is supplied at startup, the ef)2.895 F(fecti)-.25
-E -.15(ve)-.25 G .387(user id is not reset.)184 366 R -.45(Tu)5.387 G
-.387(rning this option of).45 F 2.886(fc)-.25 G .386(auses the ef)-2.886
-F(fecti)-.25 E .686 -.15(ve u)-.25 H .386(ser and group ids to be).15 F
-(set to the real user and group ids.)184 378 Q F1<ad74>144 390 Q F0
-(Exit after reading and e)184 390 Q -.15(xe)-.15 G(cuting one command.)
-.15 E F1<ad75>144 402 Q F0 -.35(Tr)184 402 S .043(eat unset v).35 F .044
-(ariables and parameters other than the special parameters "@" and "*" \
-as an)-.25 F .183(error when performing parameter e)184 414 R 2.683
-(xpansion. If)-.15 F -.15(ex)2.683 G .182
-(pansion is attempted on an unset v).15 F(ari-)-.25 E .746
-(able or parameter)184 426 R 3.246(,t)-.4 G .746
-(he shell prints an error message, and, if not interacti)-3.246 F -.15
-(ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184
-438 Q F1<ad76>144 450 Q F0(Print shell input lines as the)184 450 Q 2.5
-(ya)-.15 G(re read.)-2.5 E F1<ad78>144 462 Q F0 .315(After e)184 462 R
-.315(xpanding each)-.15 F F2 .315(simple command)2.815 F F0(,)A F1 -.25
-(fo)2.815 G(r).25 E F0(command,)2.815 E F1(case)2.815 E F0(command,)
-2.815 E F1(select)2.815 E F0(command,)2.815 E 1.235(or arithmetic)184
-474 R F1 -.25(fo)3.736 G(r).25 E F0 1.236(command, display the e)3.736 F
-1.236(xpanded v)-.15 F 1.236(alue of)-.25 F F3(PS4)3.736 E F4(,)A F0
-(follo)3.486 E 1.236(wed by the com-)-.25 F(mand and its e)184 486 Q
-(xpanded ar)-.15 E(guments or associated w)-.18 E(ord list.)-.1 E F1
-<ad42>144 498 Q F0 1.206(The shell performs brace e)184 498 R 1.206
-(xpansion \(see)-.15 F F1 1.205(Brace Expansion)3.705 F F0(abo)3.705 E
--.15(ve)-.15 G 3.705(\). This).15 F 1.205(is on by de-)3.705 F -.1(fa)
-184 510 S(ult.).1 E F1<ad43>144 522 Q F0 .213(If set,)184 522 R F1(bash)
-2.713 E F0 .213(does not o)2.713 F -.15(ve)-.15 G .214(rwrite an e).15 F
-.214(xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0
-2.714(,a)C(nd)-2.714 E F1(<>)2.714 E F0 .214(redirection opera-)2.714 F
-3.054(tors. This)184 534 R .553(may be o)3.053 F -.15(ve)-.15 G .553
+2.895 E F0 .394(option is supplied at startup, the ef)2.895 F(fecti)-.25
+E -.15(ve)-.25 G .386(user id is not reset.)184 390 R -.45(Tu)5.386 G
+.386(rning this option of).45 F 2.886(fc)-.25 G .387(auses the ef)-2.886
+F(fecti)-.25 E .687 -.15(ve u)-.25 H .387(ser and group ids to be).15 F
+(set to the real user and group ids.)184 402 Q F1<ad72>144 414 Q F0
+(Enable restricted shell mode.)184 414 Q
+(This option cannot be unset once it has been set.)5 E F1<ad74>144 426 Q
+F0(Exit after reading and e)184 426 Q -.15(xe)-.15 G
+(cuting one command.).15 E F1<ad75>144 438 Q F0 -.35(Tr)184 438 S .774
+(eat unset v).35 F .773(ariables and parameters other than the special \
+parameters "@" and "*", or)-.25 F .459(array v)184 450 R .459(ariables \
+subscripted with "@" or "*", as an error when performing parameter e)
+-.25 F(x-)-.15 E 2.891(pansion. If)184 462 R -.15(ex)2.891 G .391
+(pansion is attempted on an unset v).15 F .391(ariable or parameter)-.25
+F 2.89(,t)-.4 G .39(he shell prints an)-2.89 F
+(error message, and, if not interacti)184 474 Q -.15(ve)-.25 G 2.5(,e)
+.15 G(xits with a non-zero status.)-2.65 E F1<ad76>144 486 Q F0
+(Print shell input lines as the)184 486 Q 2.5(ya)-.15 G(re read.)-2.5 E
+F1<ad78>144 498 Q F0 .315(After e)184 498 R .315(xpanding each)-.15 F F2
+.315(simple command)2.815 F F0(,)A F1 -.25(fo)2.815 G(r).25 E F0
+(command,)2.815 E F1(case)2.815 E F0(command,)2.815 E F1(select)2.815 E
+F0(command,)2.815 E 1.236(or arithmetic)184 510 R F1 -.25(fo)3.736 G(r)
+.25 E F0 1.236(command, display the e)3.736 F 1.236(xpanded v)-.15 F
+1.236(alue of)-.25 F F3(PS4)3.736 E F4(,)A F0(follo)3.486 E 1.236
+(wed by the com-)-.25 F(mand and its e)184 522 Q(xpanded ar)-.15 E
+(guments or associated w)-.18 E(ord list.)-.1 E F1<ad42>144 534 Q F0
+1.205(The shell performs brace e)184 534 R 1.205(xpansion \(see)-.15 F
+F1 1.205(Brace Expansion)3.705 F F0(abo)3.705 E -.15(ve)-.15 G 3.706
+(\). This).15 F 1.206(is on by de-)3.706 F -.1(fa)184 546 S(ult.).1 E F1
+<ad43>144 558 Q F0 .214(If set,)184 558 R F1(bash)2.714 E F0 .214
+(does not o)2.714 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
+(xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0
+2.713(,a)C(nd)-2.713 E F1(<>)2.713 E F0 .213(redirection opera-)2.713 F
+3.053(tors. This)184 570 R .553(may be o)3.053 F -.15(ve)-.15 G .553
(rridden when creating output \214les by using the redirection opera-)
-.15 F(tor)184 546 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
-<ad45>144 558 Q F0 .103(If set, an)184 558 R 2.603(yt)-.15 G .103
-(rap on)-2.603 F F1(ERR)2.603 E F0 .104
-(is inherited by shell functions, command substitutions, and com-)2.603
-F .839(mands e)184 570 R -.15(xe)-.15 G .839(cuted in a subshell en).15
-F 3.339(vironment. The)-.4 F F1(ERR)3.338 E F0 .838
-(trap is normally not inherited in)3.338 F(such cases.)184 582 Q F1
-<ad48>144 594 Q F0(Enable)184 594 Q F1(!)3.031 E F0 .531
-(style history substitution.)5.531 F .531(This option is on by def)5.531
-F .532(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 606 Q -.15
-(ve)-.25 G(.).15 E F1<ad50>144 618 Q F0 .96
-(If set, the shell does not resolv)184 618 R 3.459(es)-.15 G .959
-(ymbolic links when e)-3.459 F -.15(xe)-.15 G .959
-(cuting commands such as).15 F F1(cd)3.459 E F0 1.452
-(that change the current w)184 630 R 1.452(orking directory)-.1 F 6.452
-(.I)-.65 G 3.953(tu)-6.452 G 1.453(ses the ph)-3.953 F 1.453
-(ysical directory structure in-)-.05 F 3.335(stead. By)184 642 R(def)
-3.335 E(ault,)-.1 E F1(bash)3.334 E F0(follo)3.334 E .834
+.15 F(tor)184 582 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
+<ad45>144 594 Q F0 .104(If set, an)184 594 R 2.604(yt)-.15 G .104
+(rap on)-2.604 F F1(ERR)2.604 E F0 .103
+(is inherited by shell functions, command substitutions, and com-)2.604
+F .838(mands e)184 606 R -.15(xe)-.15 G .838(cuted in a subshell en).15
+F 3.338(vironment. The)-.4 F F1(ERR)3.338 E F0 .839
+(trap is normally not inherited in)3.339 F(such cases.)184 618 Q F1
+<ad48>144 630 Q F0(Enable)184 630 Q F1(!)3.032 E F0 .532
+(style history substitution.)5.532 F .531(This option is on by def)5.532
+F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 642 Q -.15
+(ve)-.25 G(.).15 E F1<ad50>144 654 Q F0 .959
+(If set, the shell does not resolv)184 654 R 3.459(es)-.15 G .959
+(ymbolic links when e)-3.459 F -.15(xe)-.15 G .96
+(cuting commands such as).15 F F1(cd)3.46 E F0 1.453
+(that change the current w)184 666 R 1.453(orking directory)-.1 F 6.453
+(.I)-.65 G 3.952(tu)-6.453 G 1.452(ses the ph)-3.952 F 1.452
+(ysical directory structure in-)-.05 F 3.334(stead. By)184 678 R(def)
+3.334 E(ault,)-.1 E F1(bash)3.334 E F0(follo)3.334 E .834
(ws the logical chain of directories when performing com-)-.25 F
-(mands which change the current directory)184 654 Q(.)-.65 E F1<ad54>144
-666 Q F0 .89(If set, an)184 666 R 3.39(yt)-.15 G .89(raps on)-3.39 F F1
+(mands which change the current directory)184 690 Q(.)-.65 E F1<ad54>144
+702 Q F0 .89(If set, an)184 702 R 3.39(yt)-.15 G .89(raps on)-3.39 F F1
(DEB)3.39 E(UG)-.1 E F0(and)3.39 E F1(RETURN)3.39 E F0 .89
(are inherited by shell functions, command)3.39 F 1.932
-(substitutions, and commands e)184 678 R -.15(xe)-.15 G 1.932
+(substitutions, and commands e)184 714 R -.15(xe)-.15 G 1.932
(cuted in a subshell en).15 F 4.432(vironment. The)-.4 F F1(DEB)4.432 E
-(UG)-.1 E F0(and)4.432 E F1(RETURN)184 690 Q F0
-(traps are normally not inherited in such cases.)2.5 E F1<adad>144 702 Q
-F0 .4(If no ar)184 702 R .401(guments follo)-.18 F 2.901(wt)-.25 G .401
-(his option, then the positional parameters are unset.)-2.901 F
-(Otherwise,)5.401 E(the positional parameters are set to the)184 714 Q
-F2(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni).15 G 2.5(fs)-2.5 G
-(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>2.5 E F0(.)A
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(72)190.395 E 0 Cg EP
-%%Page: 73 73
+(UG)-.1 E F0(and)4.432 E F1(RETURN)184 726 Q F0
+(traps are normally not inherited in such cases.)2.5 E(GNU Bash 5.2)72
+768 Q(2022 September 19)135.955 E(75)185.115 E 0 Cg EP
+%%Page: 76 76
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF<ad>144 84 Q F0 .797(Signal the end of options, cause all remaining)
-184 84 R/F2 10/Times-Italic@0 SF(ar)3.297 E(g)-.37 E F0 3.297(st)C 3.297
-(ob)-3.297 G 3.296(ea)-3.297 G .796(ssigned to the positional pa-)-3.296
-F 3.021(rameters. The)184 96 R F1<ad78>3.021 E F0(and)3.022 E F1<ad76>
-3.022 E F0 .522(options are turned of)3.022 F 3.022(f. If)-.25 F .522
-(there are no)3.022 F F2(ar)3.022 E(g)-.37 E F0 .522
-(s, the positional pa-)B(rameters remain unchanged.)184 108 Q .425
-(The options are of)144 124.8 R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)
--2.925 E .425(ault unless otherwise noted.)-.1 F .425
-(Using + rather than \255 causes these options)5.425 F .177
-(to be turned of)144 136.8 R 2.677(f. The)-.25 F .178
+SF<adad>144 84 Q F0 .401(If no ar)184 84 R .401(guments follo)-.18 F
+2.901(wt)-.25 G .401
+(his option, then the positional parameters are unset.)-2.901 F
+(Otherwise,)5.4 E(the positional parameters are set to the)184 96 Q/F2
+10/Times-Italic@0 SF(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni)
+.15 G 2.5(fs)-2.5 G(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>2.5 E
+F0(.)A F1<ad>144 108 Q F0 .796
+(Signal the end of options, cause all remaining)184 108 R F2(ar)3.297 E
+(g)-.37 E F0 3.297(st)C 3.297(ob)-3.297 G 3.297(ea)-3.297 G .797
+(ssigned to the positional pa-)-3.297 F 3.022(rameters. The)184 120 R F1
+<ad78>3.022 E F0(and)3.022 E F1<ad76>3.022 E F0 .522
+(options are turned of)3.022 F 3.022(f. If)-.25 F .522(there are no)
+3.022 F F2(ar)3.022 E(g)-.37 E F0 .521(s, the positional pa-)B
+(rameters remain unchanged.)184 132 Q .425(The options are of)144 148.8
+R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
+(ault unless otherwise noted.)-.1 F .425
+(Using + rather than \255 causes these options)5.425 F .178
+(to be turned of)144 160.8 R 2.678(f. The)-.25 F .178
(options can also be speci\214ed as ar)2.678 F .178(guments to an in)
--.18 F -.2(vo)-.4 G .178(cation of the shell.).2 F(The)5.178 E .066
-(current set of options may be found in)144 148.8 R F1<24ad>2.566 E F0
+-.18 F -.2(vo)-.4 G .177(cation of the shell.).2 F(The)5.177 E .066
+(current set of options may be found in)144 172.8 R F1<24ad>2.566 E F0
5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)-.1 G .066
-(ys true unless an in).1 F -.25(va)-.4 G .066(lid option).25 F
-(is encountered.)144 160.8 Q F1(shift)108 177.6 Q F0([)2.5 E F2(n)A F0
-(])A .428(The positional parameters from)144 189.6 R F2(n)2.928 E F0
-.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.429 G
-.429(rameters represented by the num-).15 F(bers)144 201.6 Q F1($#)2.583
-E F0(do)2.583 E .083(wn to)-.25 F F1($#)2.583 E F0<ad>A F2(n)A F0 .083
-(+1 are unset.)B F2(n)5.443 E F0 .083(must be a non-ne)2.823 F -.05(ga)
--.15 G(ti).05 E .382 -.15(ve n)-.25 H .082(umber less than or equal to)
-.15 F F1($#)2.582 E F0 5.082(.I)C(f)-5.082 E F2(n)2.942 E F0 .06
-(is 0, no parameters are changed.)144 213.6 R(If)5.06 E F2(n)2.92 E F0
+(ys true unless an in).1 F -.25(va)-.4 G .067(lid option).25 F
+(is encountered.)144 184.8 Q F1(shift)108 201.6 Q F0([)2.5 E F2(n)A F0
+(])A .429(The positional parameters from)144 213.6 R F2(n)2.929 E F0
+.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.428 G
+.428(rameters represented by the num-).15 F(bers)144 225.6 Q F1($#)2.582
+E F0(do)2.582 E .082(wn to)-.25 F F1($#)2.582 E F0<ad>A F2(n)A F0 .082
+(+1 are unset.)B F2(n)5.442 E F0 .082(must be a non-ne)2.822 F -.05(ga)
+-.15 G(ti).05 E .383 -.15(ve n)-.25 H .083(umber less than or equal to)
+.15 F F1($#)2.583 E F0 5.083(.I)C(f)-5.083 E F2(n)2.943 E F0 .06
+(is 0, no parameters are changed.)144 237.6 R(If)5.06 E F2(n)2.92 E F0
.06(is not gi)2.8 F -.15(ve)-.25 G .06(n, it is assumed to be 1.).15 F
(If)5.06 E F2(n)2.92 E F0 .06(is greater than)2.8 F F1($#)2.56 E F0 2.56
-(,t)C(he)-2.56 E .144(positional parameters are not changed.)144 225.6 R
-.144(The return status is greater than zero if)5.144 F F2(n)3.003 E F0
-.143(is greater than)2.883 F F1($#)2.643 E F0
-(or less than zero; otherwise 0.)144 237.6 Q F1(shopt)108 254.4 Q F0([)
+(,t)C(he)-2.56 E .143(positional parameters are not changed.)144 249.6 R
+.144(The return status is greater than zero if)5.143 F F2(n)3.004 E F0
+.144(is greater than)2.884 F F1($#)2.644 E F0
+(or less than zero; otherwise 0.)144 261.6 Q F1(shopt)108 278.4 Q F0([)
2.5 E F1(\255pqsu)A F0 2.5(][)C F1<ad6f>-2.5 E F0 2.5(][)C F2(optname)
--2.5 E F0(...])2.5 E -.8(To)144 266.4 S .639(ggle the v).8 F .639
+-2.5 E F0(...])2.5 E -.8(To)144 290.4 S .64(ggle the v).8 F .639
(alues of settings controlling optional shell beha)-.25 F(vior)-.2 E
-5.639(.T)-.55 G .64(he settings can be either those)-5.639 F .375
-(listed belo)144 278.4 R 1.675 -.65(w, o)-.25 H 1.175 -.4(r, i).65 H
-2.875(ft).4 G(he)-2.875 E F1<ad6f>2.875 E F0 .375
+5.639(.T)-.55 G .639(he settings can be either those)-5.639 F .374
+(listed belo)144 302.4 R 1.674 -.65(w, o)-.25 H 1.174 -.4(r, i).65 H
+2.874(ft).4 G(he)-2.874 E F1<ad6f>2.874 E F0 .375
(option is used, those a)2.875 F -.25(va)-.2 G .375(ilable with the).25
-F F1<ad6f>2.875 E F0 .374(option to the)2.875 F F1(set)2.874 E F0 -.2
-(bu)2.874 G .374(iltin com-).2 F 2.565(mand. W)144 290.4 R .065
+F F1<ad6f>2.875 E F0 .375(option to the)2.875 F F1(set)2.875 E F0 -.2
+(bu)2.875 G .375(iltin com-).2 F 2.566(mand. W)144 314.4 R .066
(ith no options, or with the)-.4 F F1<ad70>2.566 E F0 .066
(option, a list of all settable options is displayed, with an in-)2.566
-F .074(dication of whether or not each is set; if)144 302.4 R F2
+F .074(dication of whether or not each is set; if)144 326.4 R F2
(optnames)2.574 E F0 .074
(are supplied, the output is restricted to those op-)2.574 F 3.105
-(tions. The)144 314.4 R F1<ad70>3.105 E F0 .605(option causes output to\
+(tions. The)144 338.4 R F1<ad70>3.105 E F0 .605(option causes output to\
be displayed in a form that may be reused as input.)3.105 F(Other)5.605
-E(options ha)144 326.4 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad73>144 338.4 Q F0(Enable \(set\) each)180
-338.4 Q F2(optname)2.5 E F0(.)A F1<ad75>144 350.4 Q F0
-(Disable \(unset\) each)180 350.4 Q F2(optname)2.5 E F0(.)A F1<ad71>144
-362.4 Q F0 .003(Suppresses normal output \(quiet mode\); the return sta\
-tus indicates whether the)180 362.4 R F2(optname)2.503 E F0(is)2.503 E
-.255(set or unset.)180 374.4 R .255(If multiple)5.255 F F2(optname)2.755
-E F0(ar)2.755 E .256(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G
-(ith)-2.756 E F1<ad71>2.756 E F0 2.756(,t)C .256
-(he return status is zero if)-2.756 F(all)180 386.4 Q F2(optnames)2.5 E
-F0(are enabled; non-zero otherwise.)2.5 E F1<ad6f>144 398.4 Q F0
-(Restricts the v)180 398.4 Q(alues of)-.25 E F2(optname)2.5 E F0
+E(options ha)144 350.4 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad73>144 362.4 Q F0(Enable \(set\) each)180
+362.4 Q F2(optname)2.5 E F0(.)A F1<ad75>144 374.4 Q F0
+(Disable \(unset\) each)180 374.4 Q F2(optname)2.5 E F0(.)A F1<ad71>144
+386.4 Q F0 .003(Suppresses normal output \(quiet mode\); the return sta\
+tus indicates whether the)180 386.4 R F2(optname)2.504 E F0(is)2.504 E
+.256(set or unset.)180 398.4 R .256(If multiple)5.256 F F2(optname)2.756
+E F0(ar)2.756 E .256(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G
+(ith)-2.756 E F1<ad71>2.756 E F0 2.755(,t)C .255
+(he return status is zero if)-2.755 F(all)180 410.4 Q F2(optnames)2.5 E
+F0(are enabled; non-zero otherwise.)2.5 E F1<ad6f>144 422.4 Q F0
+(Restricts the v)180 422.4 Q(alues of)-.25 E F2(optname)2.5 E F0
(to be those de\214ned for the)2.5 E F1<ad6f>2.5 E F0(option to the)2.5
-E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .625(If either)144 415.2 R F1
-<ad73>3.125 E F0(or)3.124 E F1<ad75>3.124 E F0 .624(is used with no)
+E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .624(If either)144 439.2 R F1
+<ad73>3.124 E F0(or)3.124 E F1<ad75>3.124 E F0 .624(is used with no)
3.124 F F2(optname)3.124 E F0(ar)3.124 E(guments,)-.18 E F1(shopt)3.124
-E F0(sho)3.124 E .624(ws only those options which are)-.25 F .983
-(set or unset, respecti)144 427.2 R -.15(ve)-.25 G(ly).15 E 5.983(.U)
--.65 G .983(nless otherwise noted, the)-5.983 F F1(shopt)3.484 E F0 .984
-(options are disabled \(unset\) by de-)3.484 F -.1(fa)144 439.2 S(ult.)
-.1 E 1.544(The return status when listing options is zero if all)144 456
-R F2(optnames)4.044 E F0 1.544(are enabled, non-zero otherwise.)4.044 F
+E F0(sho)3.124 E .624(ws only those options which are)-.25 F .984
+(set or unset, respecti)144 451.2 R -.15(ve)-.25 G(ly).15 E 5.984(.U)
+-.65 G .984(nless otherwise noted, the)-5.984 F F1(shopt)3.484 E F0 .983
+(options are disabled \(unset\) by de-)3.483 F -.1(fa)144 463.2 S(ult.)
+.1 E 1.544(The return status when listing options is zero if all)144 480
+R F2(optnames)4.044 E F0 1.545(are enabled, non-zero otherwise.)4.045 F
.696
(When setting or unsetting options, the return status is zero unless an)
-144 468 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .696(alid shell)
--.25 F(option.)144 480 Q(The list of)144 496.8 Q F1(shopt)2.5 E F0
-(options is:)2.5 E F1(assoc_expand_once)144 514.8 Q F0 1.945
-(If set, the shell suppresses multiple e)184 526.8 R -.25(va)-.25 G
-1.944(luation of associati).25 F 2.244 -.15(ve a)-.25 H 1.944
-(rray subscripts during).15 F .885(arithmetic e)184 538.8 R .885
+144 492 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695(alid shell)
+-.25 F(option.)144 504 Q(The list of)144 520.8 Q F1(shopt)2.5 E F0
+(options is:)2.5 E F1(assoc_expand_once)144 538.8 Q F0 1.944
+(If set, the shell suppresses multiple e)184 550.8 R -.25(va)-.25 G
+1.945(luation of associati).25 F 2.245 -.15(ve a)-.25 H 1.945
+(rray subscripts during).15 F .885(arithmetic e)184 562.8 R .885
(xpression e)-.15 F -.25(va)-.25 G .885(luation, while e).25 F -.15(xe)
-.15 G .885(cuting b).15 F .885(uiltins that can perform v)-.2 F .885
-(ariable as-)-.25 F(signments, and while e)184 550.8 Q -.15(xe)-.15 G
+(ariable as-)-.25 F(signments, and while e)184 574.8 Q -.15(xe)-.15 G
(cuting b).15 E(uiltins that perform array dereferencing.)-.2 E F1
-(autocd)144 562.8 Q F0 .2
-(If set, a command name that is the name of a directory is e)184 562.8 R
--.15(xe)-.15 G .199(cuted as if it were the ar).15 F(gu-)-.18 E
-(ment to the)184 574.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
+(autocd)144 586.8 Q F0 .199
+(If set, a command name that is the name of a directory is e)184 586.8 R
+-.15(xe)-.15 G .2(cuted as if it were the ar).15 F(gu-)-.18 E
+(ment to the)184 598.8 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
(option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F1(cdable_v)144 586.8 Q(ars)-.1 E F0 .155(If set, an ar)184 598.8 R .155
-(gument to the)-.18 F F1(cd)2.655 E F0 -.2(bu)2.655 G .156
+F1(cdable_v)144 610.8 Q(ars)-.1 E F0 .156(If set, an ar)184 622.8 R .156
+(gument to the)-.18 F F1(cd)2.656 E F0 -.2(bu)2.656 G .155
(iltin command that is not a directory is assumed to be the).2 F
-(name of a v)184 610.8 Q(ariable whose v)-.25 E
-(alue is the directory to change to.)-.25 E F1(cdspell)144 622.8 Q F0
+(name of a v)184 634.8 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 646.8 Q F0
1.055
(If set, minor errors in the spelling of a directory component in a)184
-622.8 R F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.987
-(corrected. The)184 634.8 R 1.487(errors check)3.987 F 1.487
-(ed for are transposed characters, a missing character)-.1 F 3.988(,a)
--.4 G(nd)-3.988 E .77(one character too man)184 646.8 R 4.57 -.65(y. I)
+646.8 R F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
+(corrected. The)184 658.8 R 1.488(errors check)3.988 F 1.487
+(ed for are transposed characters, a missing character)-.1 F 3.987(,a)
+-.4 G(nd)-3.987 E .77(one character too man)184 670.8 R 4.57 -.65(y. I)
-.15 H 3.27(fac).65 G .77
(orrection is found, the corrected \214lename is printed, and)-3.27 F
-(the command proceeds.)184 658.8 Q
+(the command proceeds.)184 682.8 Q
(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F1(checkhash)144 670.8 Q F0 .736(If set,)184 682.8 R F1(bash)3.236
-E F0 .736(checks that a command found in the hash table e)3.236 F .737
+.15 E F1(checkhash)144 694.8 Q F0 .737(If set,)184 706.8 R F1(bash)3.237
+E F0 .736(checks that a command found in the hash table e)3.237 F .736
(xists before trying to e)-.15 F -.15(xe)-.15 G(-).15 E(cute it.)184
-694.8 Q(If a hashed command no longer e)5 E
-(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 706.8
-Q F0 .449(If set,)184 718.8 R F1(bash)2.949 E F0 .449
-(lists the status of an)2.949 F 2.949(ys)-.15 G .448
-(topped and running jobs before e)-2.949 F .448(xiting an interacti)-.15
-F -.15(ve)-.25 G 3.438(shell. If)184 730.8 R(an)3.438 E 3.438(yj)-.15 G
-.938(obs are running, this causes the e)-3.438 F .938
-(xit to be deferred until a second e)-.15 F .939(xit is)-.15 F
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(73)190.395 E 0 Cg EP
-%%Page: 74 74
+718.8 Q(If a hashed command no longer e)5 E
+(xists, a normal path search is performed.)-.15 E(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(76)185.115 E 0 Cg EP
+%%Page: 77 77
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .817
-(attempted without an interv)184 84 R .817(ening command \(see)-.15 F/F1
-9/Times-Bold@0 SF .816(JOB CONTR)3.316 F(OL)-.27 E F0(abo)3.066 E -.15
-(ve)-.15 G 3.316(\). The).15 F .816(shell al-)3.316 F -.1(wa)184 96 S
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF(checkjobs)144 84 Q F0 .448(If set,)184 96 R F1(bash)2.948 E F0 .448
+(lists the status of an)2.948 F 2.949(ys)-.15 G .449
+(topped and running jobs before e)-2.949 F .449(xiting an interacti)-.15
+F -.15(ve)-.25 G 2.662(shell. If)184 108 R(an)2.662 E 2.661(yj)-.15 G
+.161(obs are running, this causes the e)-2.661 F .161
+(xit to be deferred until a second e)-.15 F .161(xit is at-)-.15 F 1.472
+(tempted without an interv)184 120 R 1.473(ening command \(see)-.15 F/F2
+9/Times-Bold@0 SF 1.473(JOB CONTR)3.973 F(OL)-.27 E F0(abo)3.723 E -.15
+(ve)-.15 G 3.973(\). The).15 F 1.473(shell al-)3.973 F -.1(wa)184 132 S
(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G(obs are stopped.)
--2.5 E/F2 10/Times-Bold@0 SF(checkwinsize)144 108 Q F0 1.09(If set,)184
-120 R F2(bash)3.59 E F0 1.09(checks the windo)3.59 F 3.59(ws)-.25 G 1.09
-(ize after each e)-3.59 F 1.09(xternal \(non-b)-.15 F 1.09
-(uiltin\) command and, if)-.2 F(necessary)184 132 Q 3.351(,u)-.65 G .851
-(pdates the v)-3.351 F .85(alues of)-.25 F F1(LINES)3.35 E F0(and)3.1 E
-F1(COLUMNS)3.35 E/F3 9/Times-Roman@0 SF(.)A F0 .85
-(This option is enabled by de-)5.35 F -.1(fa)184 144 S(ult.).1 E F2
-(cmdhist)144 156 Q F0 .172(If set,)184 156 R F2(bash)2.672 E F0 .172
-(attempts to sa)2.672 F .472 -.15(ve a)-.2 H .173
+-2.5 E F1(checkwinsize)144 144 Q F0 1.09(If set,)184 156 R F1(bash)3.59
+E F0 1.09(checks the windo)3.59 F 3.59(ws)-.25 G 1.09(ize after each e)
+-3.59 F 1.09(xternal \(non-b)-.15 F 1.09(uiltin\) command and, if)-.2 F
+(necessary)184 168 Q 3.35(,u)-.65 G .85(pdates the v)-3.35 F .85
+(alues of)-.25 F F2(LINES)3.35 E F0(and)3.1 E F2(COLUMNS)3.35 E/F3 9
+/Times-Roman@0 SF(.)A F0 .85(This option is enabled by de-)5.35 F -.1
+(fa)184 180 S(ult.).1 E F1(cmdhist)144 192 Q F0 .173(If set,)184 192 R
+F1(bash)2.673 E F0 .173(attempts to sa)2.673 F .473 -.15(ve a)-.2 H .172
(ll lines of a multiple-line command in the same history en-).15 F(try)
-184 168 Q 5.597(.T)-.65 G .597(his allo)-5.597 F .597
+184 204 Q 5.596(.T)-.65 G .597(his allo)-5.596 F .597
(ws easy re-editing of multi-line commands.)-.25 F .597
-(This option is enabled by de-)5.597 F -.1(fa)184 180 S 1.287(ult, b).1
+(This option is enabled by de-)5.597 F -.1(fa)184 216 S 1.288(ult, b).1
F 1.288(ut only has an ef)-.2 F 1.288
-(fect if command history is enabled, as described abo)-.25 F 1.588 -.15
-(ve u)-.15 H(nder).15 E F1(HIST)184 192 Q(OR)-.162 E(Y)-.315 E F3(.)A F2
-(compat31)144 204 Q(compat32)144 216 Q(compat40)144 228 Q(compat41)144
-240 Q(compat42)144 252 Q(compat43)144 264 Q(compat44)144 276 Q F0 .889
-(These control aspects of the shell')184 288 R 3.389(sc)-.55 G .889
-(ompatibility mode \(see)-3.389 F F1 .889(SHELL COMP)3.389 F -.855(AT)
--.666 G(IBILITY).855 E(MODE)184 300 Q F0(belo)2.25 E(w\).)-.25 E F2
-(complete_fullquote)144 316.8 Q F0 .653(If set,)184 328.8 R F2(bash)
-3.153 E F0 .653(quotes all shell metacharacters in \214lenames and dire\
-ctory names when per)3.153 F(-)-.2 E 1.525(forming completion.)184 340.8
-R 1.524(If not set,)6.525 F F2(bash)4.024 E F0(remo)4.024 E -.15(ve)-.15
-G 4.024(sm).15 G 1.524(etacharacters such as the dollar sign)-4.024 F
-2.667(from the set of characters that will be quoted in completed \214l\
-enames when these)184 352.8 R .029(metacharacters appear in shell v)184
-364.8 R .028(ariable references in w)-.25 F .028(ords to be completed.)
--.1 F .028(This means)5.028 F 1.072(that dollar signs in v)184 376.8 R
-1.073(ariable names that e)-.25 F 1.073
+(fect if command history is enabled, as described abo)-.25 F 1.587 -.15
+(ve u)-.15 H(nder).15 E F2(HIST)184 228 Q(OR)-.162 E(Y)-.315 E F3(.)A F1
+(compat31)144 240 Q(compat32)144 252 Q(compat40)144 264 Q(compat41)144
+276 Q(compat42)144 288 Q(compat43)144 300 Q(compat44)144 312 Q(compat50)
+144 324 Q F0 .889(These control aspects of the shell')184 336 R 3.389
+(sc)-.55 G .889(ompatibility mode \(see)-3.389 F F2 .889(SHELL COMP)
+3.389 F -.855(AT)-.666 G(IBILITY).855 E(MODE)184 348 Q F0(belo)2.25 E
+(w\).)-.25 E F1(complete_fullquote)144 364.8 Q F0 .654(If set,)184 376.8
+R F1(bash)3.153 E F0 .653(quotes all shell metacharacters in \214lename\
+s and directory names when per)3.153 F(-)-.2 E 1.524
+(forming completion.)184 388.8 R 1.524(If not set,)6.524 F F1(bash)4.024
+E F0(remo)4.024 E -.15(ve)-.15 G 4.024(sm).15 G 1.524
+(etacharacters such as the dollar sign)-4.024 F 2.667(from the set of c\
+haracters that will be quoted in completed \214lenames when these)184
+400.8 R .028(metacharacters appear in shell v)184 412.8 R .028
+(ariable references in w)-.25 F .029(ords to be completed.)-.1 F .029
+(This means)5.029 F 1.073(that dollar signs in v)184 424.8 R 1.073
+(ariable names that e)-.25 F 1.073
(xpand to directories will not be quoted; ho)-.15 F(w-)-.25 E -2.15 -.25
-(ev e)184 388.8 T 1.923 -.4(r, a).25 H 1.423 -.15(ny d).4 H 1.123
+(ev e)184 436.8 T 1.922 -.4(r, a).25 H 1.422 -.15(ny d).4 H 1.123
(ollar signs appearing in \214lenames will not be quoted, either).15 F
-6.123(.T)-.55 G 1.122(his is acti)-6.123 F -.15(ve)-.25 G .59
+6.123(.T)-.55 G 1.123(his is acti)-6.123 F -.15(ve)-.25 G .59
(only when bash is using backslashes to quote completed \214lenames.)184
-400.8 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 412.8 Q
+448.8 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 460.8 Q
(ault, which is the def)-.1 E(ault bash beha)-.1 E(vior in v)-.2 E
-(ersions through 4.2.)-.15 E F2(dir)144 429.6 Q(expand)-.18 E F0 .487
-(If set,)184 441.6 R F2(bash)2.987 E F0 .486
+(ersions through 4.2.)-.15 E F1(dir)144 477.6 Q(expand)-.18 E F0 .486
+(If set,)184 489.6 R F1(bash)2.986 E F0 .486
(replaces directory names with the results of w)2.986 F .486(ord e)-.1 F
-.486(xpansion when perform-)-.15 F .179(ing \214lename completion.)184
-453.6 R .179(This changes the contents of the readline editing b)5.179 F
-(uf)-.2 E(fer)-.25 E 5.18(.I)-.55 G 2.68(fn)-5.18 G(ot)-2.68 E(set,)184
-465.6 Q F2(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G
-(hat the user typed.)-2.5 E F2(dirspell)144 482.4 Q F0 .859(If set,)184
-482.4 R F2(bash)3.359 E F0 .858
-(attempts spelling correction on directory names during w)3.359 F .858
+.487(xpansion when perform-)-.15 F .18(ing \214lename completion.)184
+501.6 R .179(This changes the contents of the readline editing b)5.18 F
+(uf)-.2 E(fer)-.25 E 5.179(.I)-.55 G 2.679(fn)-5.179 G(ot)-2.679 E(set,)
+184 513.6 Q F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G
+(hat the user typed.)-2.5 E F1(dirspell)144 530.4 Q F0 .858(If set,)184
+530.4 R F1(bash)3.358 E F0 .858
+(attempts spelling correction on directory names during w)3.358 F .859
(ord completion if)-.1 F
-(the directory name initially supplied does not e)184 494.4 Q(xist.)-.15
-E F2(dotglob)144 511.2 Q F0 .165(If set,)184 511.2 R F2(bash)2.665 E F0
+(the directory name initially supplied does not e)184 542.4 Q(xist.)-.15
+E F1(dotglob)144 559.2 Q F0 .165(If set,)184 559.2 R F1(bash)2.665 E F0
.165(includes \214lenames be)2.665 F .165(ginning with a `.)-.15 F 2.665
('i)-.7 G 2.665(nt)-2.665 G .165(he results of pathname e)-2.665 F
-(xpansion.)-.15 E(The \214lenames)184 523.2 Q F2 -.63(``)2.5 G -.55(.')
-.63 G(')-.08 E F0(and)5 E F2 -.63(``)2.5 G(..).63 E -.63('')-.55 G F0
+(xpansion.)-.15 E(The \214lenames)184 571.2 Q F1 -.63(``)2.5 G -.55(.')
+.63 G(')-.08 E F0(and)5 E F1 -.63(``)2.5 G(..).63 E -.63('')-.55 G F0
(must al)5.63 E -.1(wa)-.1 G(ys be matched e).1 E(xplicitly)-.15 E 2.5
-(,e)-.65 G -.15(ve)-2.75 G 2.5(ni).15 G(f)-2.5 E F2(dotglob)2.5 E F0
-(is set.)2.5 E F2(execfail)144 540 Q F0 .517(If set, a non-interacti)184
-540 R .817 -.15(ve s)-.25 H .517(hell will not e).15 F .516
-(xit if it cannot e)-.15 F -.15(xe)-.15 G .516
+(,e)-.65 G -.15(ve)-2.75 G 2.5(ni).15 G(f)-2.5 E F1(dotglob)2.5 E F0
+(is set.)2.5 E F1(execfail)144 588 Q F0 .516(If set, a non-interacti)184
+588 R .816 -.15(ve s)-.25 H .516(hell will not e).15 F .516
+(xit if it cannot e)-.15 F -.15(xe)-.15 G .517
(cute the \214le speci\214ed as an ar).15 F(-)-.2 E(gument to the)184
-552 Q F2(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E(An interacti)5 E
-.3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15 E F2(exec)2.5 E F0
--.1(fa)2.5 G(ils.).1 E F2(expand_aliases)144 568.8 Q F0 .716
-(If set, aliases are e)184 580.8 R .717(xpanded as described abo)-.15 F
-1.017 -.15(ve u)-.15 H(nder).15 E F1(ALIASES)3.217 E F3(.)A F0 .717
-(This option is enabled)5.217 F(by def)184 592.8 Q(ault for interacti)
--.1 E .3 -.15(ve s)-.25 H(hells.).15 E F2(extdeb)144 609.6 Q(ug)-.2 E F0
-.17(If set at shell in)184 621.6 R -.2(vo)-.4 G .17
+600 Q F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E(An interacti)5 E
+.3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15 E F1(exec)2.5 E F0
+-.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 616.8 Q F0 .717
+(If set, aliases are e)184 628.8 R .717(xpanded as described abo)-.15 F
+1.017 -.15(ve u)-.15 H(nder).15 E F2(ALIASES)3.217 E F3(.)A F0 .716
+(This option is enabled)5.217 F(by def)184 640.8 Q(ault for interacti)
+-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(extdeb)144 657.6 Q(ug)-.2 E F0
+.17(If set at shell in)184 669.6 R -.2(vo)-.4 G .17
(cation, or in a shell startup \214le, arrange to e).2 F -.15(xe)-.15 G
-.17(cute the deb).15 F .17(ugger pro\214le)-.2 F 1.081
-(before the shell starts, identical to the)184 633.6 R F2<adad646562>
-3.582 E(ugger)-.2 E F0 3.582(option. If)3.582 F 1.082(set after in)3.582
-F -.2(vo)-.4 G 1.082(cation, be-).2 F(ha)184 645.6 Q
-(vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F2(1.)184
-662.4 Q F0(The)220 662.4 Q F2<ad46>4.251 E F0 1.751(option to the)4.251
-F F2(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251 G 1.751
+.17(cute the deb).15 F .17(ugger pro\214le)-.2 F 1.082
+(before the shell starts, identical to the)184 681.6 R F1<adad646562>
+3.582 E(ugger)-.2 E F0 3.581(option. If)3.581 F 1.081(set after in)3.581
+F -.2(vo)-.4 G 1.081(cation, be-).2 F(ha)184 693.6 Q
+(vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F1(1.)184
+710.4 Q F0(The)220 710.4 Q F1<ad46>4.25 E F0 1.75(option to the)4.25 F
+F1(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251 G 1.751
(iltin displays the source \214le name and line).2 F
-(number corresponding to each function name supplied as an ar)220 674.4
-Q(gument.)-.18 E F2(2.)184 691.2 Q F0 1.667(If the command run by the)
-220 691.2 R F2(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)
-4.167 F 1.667(alue, the ne)-.25 F(xt)-.15 E
-(command is skipped and not e)220 703.2 Q -.15(xe)-.15 G(cuted.).15 E
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(74)190.395 E 0 Cg EP
-%%Page: 75 75
+(number corresponding to each function name supplied as an ar)220 722.4
+Q(gument.)-.18 E(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(77)
+185.115 E 0 Cg EP
+%%Page: 78 78
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(3.)184 84 Q F0 .841(If the command run by the)220 84 R F1(DEB)3.341 E
-(UG)-.1 E F0 .841(trap returns a v)3.341 F .84
-(alue of 2, and the shell is)-.25 F -.15(exe)220 96 S .488
+SF(2.)184 84 Q F0 1.667(If the command run by the)220 84 R F1(DEB)4.167
+E(UG)-.1 E F0 1.667(trap returns a non-zero v)4.167 F 1.667
+(alue, the ne)-.25 F(xt)-.15 E(command is skipped and not e)220 96 Q
+-.15(xe)-.15 G(cuted.).15 E F1(3.)184 112.8 Q F0 .84
+(If the command run by the)220 112.8 R F1(DEB)3.34 E(UG)-.1 E F0 .841
+(trap returns a v)3.341 F .841(alue of 2, and the shell is)-.25 F -.15
+(exe)220 124.8 S .488
(cuting in a subroutine \(a shell function or a shell script e).15 F
-.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1
-(sour)220 108 Q(ce)-.18 E F0 -.2(bu)2.5 G
+(sour)220 136.8 Q(ce)-.18 E F0 -.2(bu)2.5 G
(iltins\), the shell simulates a call to).2 E F1 -.18(re)2.5 G(tur).18 E
-(n)-.15 E F0(.)A F1(4.)184 124.8 Q/F2 9/Times-Bold@0 SF -.27(BA)220
-124.8 S(SH_ARGC).27 E F0(and)3.154 E F2 -.27(BA)3.404 G(SH_ARGV).27 E F0
+(n)-.15 E F0(.)A F1(4.)184 153.6 Q/F2 9/Times-Bold@0 SF -.27(BA)220
+153.6 S(SH_ARGC).27 E F0(and)3.153 E F2 -.27(BA)3.403 G(SH_ARGV).27 E F0
.904(are updated as described in their descriptions)3.154 F(abo)220
-136.8 Q -.15(ve)-.15 G(.).15 E F1(5.)184 153.6 Q F0 1.637(Function trac\
-ing is enabled: command substitution, shell functions, and sub-)220
-153.6 R(shells in)220 165.6 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)
+165.6 Q -.15(ve)-.15 G(\).).15 E F1(5.)184 182.4 Q F0 1.637(Function tr\
+acing is enabled: command substitution, shell functions, and sub-)220
+182.4 R(shells in)220 194.4 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)
-2.5 E F1(\()2.5 E/F3 10/Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0
(inherit the)2.5 E F1(DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0
-(traps.)2.5 E F1(6.)184 182.4 Q F0 1.082(Error tracing is enabled: comm\
-and substitution, shell functions, and subshells)220 182.4 R(in)220
-194.4 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F3
+(traps.)2.5 E F1(6.)184 211.2 Q F0 1.082(Error tracing is enabled: comm\
+and substitution, shell functions, and subshells)220 211.2 R(in)220
+223.2 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F3
(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E F0(trap.)
-2.5 E F1(extglob)144 211.2 Q F0 .4(If set, the e)184 211.2 R .4
+2.5 E F1(extglob)144 240 Q F0 .4(If set, the e)184 240 R .4
(xtended pattern matching features described abo)-.15 F .7 -.15(ve u)
--.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 223.2 Q
-F0(are enabled.)2.5 E F1(extquote)144 240 Q F0 .86(If set,)184 252 R F1
-($)3.36 E F0<08>A F3(string)A F0 3.36<0861>C(nd)-3.36 E F1($)3.36 E F0
+-.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 252 Q
+F0(are enabled.)2.5 E F1(extquote)144 268.8 Q F0 .86(If set,)184 280.8 R
+F1($)3.36 E F0<08>A F3(string)A F0 3.36<0861>C(nd)-3.36 E F1($)3.36 E F0
(")A F3(string)A F0 3.36("q)C .86(uoting is performed within)-3.36 F F1
(${)3.36 E F3(par)A(ameter)-.15 E F1(})A F0 -.15(ex)3.36 G .86
-(pansions en-).15 F(closed in double quotes.)184 264 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 280.8 Q
-F0 .242(If set, patterns which f)184 280.8 R .243
+(pansions en-).15 F(closed in double quotes.)184 292.8 Q
+(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 309.6 Q
+F0 .243(If set, patterns which f)184 309.6 R .243
(ail to match \214lenames during pathname e)-.1 F .243
-(xpansion result in an e)-.15 F(x-)-.15 E(pansion error)184 292.8 Q(.)
--.55 E F1 -.25(fo)144 309.6 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
-.937(If set, the suf)184 321.6 R<8c78>-.25 E .936(es speci\214ed by the)
+(xpansion result in an e)-.15 F(x-)-.15 E(pansion error)184 321.6 Q(.)
+-.55 E F1 -.25(fo)144 338.4 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
+.936(If set, the suf)184 350.4 R<8c78>-.25 E .936(es speci\214ed by the)
-.15 F F2(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936(ariable cause w)
--.25 F .936(ords to be ignored)-.1 F .32(when performing w)184 333.6 R
+-.25 F .937(ords to be ignored)-.1 F .32(when performing w)184 362.4 R
.32(ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G
-.32(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 2.948
-(pletions. See)184 345.6 R F2 .448(SHELL V)2.948 F(ARIABLES)-1.215 E F0
-(abo)2.698 E .748 -.15(ve f)-.15 H .448(or a description of).15 F F2
-(FIGNORE)2.947 E/F4 9/Times-Roman@0 SF(.)A F0 .447(This option is)4.947
-F(enabled by def)184 357.6 Q(ault.)-.1 E F1(globasciiranges)144 374.4 Q
-F0 2.518(If set, range e)184 386.4 R 2.519
-(xpressions used in pattern matching brack)-.15 F 2.519(et e)-.1 F 2.519
-(xpressions \(see)-.15 F F2 -.09(Pa)5.019 G(tter).09 E(n)-.135 E
-(Matching)184 398.4 Q F0(abo)2.965 E -.15(ve)-.15 G 3.215(\)b).15 G(eha)
--3.215 E 1.015 -.15(ve a)-.2 H 3.214(si).15 G 3.214(fi)-3.214 G 3.214
+.32(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 2.947
+(pletions. See)184 374.4 R F2 .447(SHELL V)2.947 F(ARIABLES)-1.215 E F0
+(abo)2.697 E .747 -.15(ve f)-.15 H .448(or a description of).15 F F2
+(FIGNORE)2.948 E/F4 9/Times-Roman@0 SF(.)A F0 .448(This option is)4.948
+F(enabled by def)184 386.4 Q(ault.)-.1 E F1(globasciiranges)144 403.2 Q
+F0 2.519(If set, range e)184 415.2 R 2.519
+(xpressions used in pattern matching brack)-.15 F 2.518(et e)-.1 F 2.518
+(xpressions \(see)-.15 F F2 -.09(Pa)5.018 G(tter).09 E(n)-.135 E
+(Matching)184 427.2 Q F0(abo)2.964 E -.15(ve)-.15 G 3.214(\)b).15 G(eha)
+-3.214 E 1.014 -.15(ve a)-.2 H 3.214(si).15 G 3.214(fi)-3.214 G 3.214
(nt)-3.214 G .714(he traditional C locale when performing comparisons.)
--3.214 F 1.02(That is, the current locale')184 410.4 R 3.52(sc)-.55 G
+-3.214 F 1.02(That is, the current locale')184 439.2 R 3.52(sc)-.55 G
1.02(ollating sequence is not tak)-3.52 F 1.02(en into account, so)-.1 F
-F1(b)3.52 E F0 1.02(will not)3.52 F .957(collate between)184 422.4 R F1
-(A)3.457 E F0(and)3.457 E F1(B)3.457 E F0 3.457(,a)C .957(nd upper)
--3.457 F .957(-case and lo)-.2 F(wer)-.25 E .956
-(-case ASCII characters will collate)-.2 F(together)184 434.4 Q(.)-.55 E
-F1(globstar)144 451.2 Q F0 .518(If set, the pattern)184 451.2 R F1(**)
+F1(b)3.52 E F0 1.02(will not)3.52 F .956(collate between)184 451.2 R F1
+(A)3.456 E F0(and)3.456 E F1(B)3.456 E F0 3.457(,a)C .957(nd upper)
+-3.457 F .957(-case and lo)-.2 F(wer)-.25 E .957
+(-case ASCII characters will collate)-.2 F(together)184 463.2 Q(.)-.55 E
+F1(globskipdots)144 480 Q F0 .285(If set, pathname e)184 492 R .285
+(xpansion will ne)-.15 F -.15(ve)-.25 G 2.785(rm).15 G .285
+(atch the \214lenames)-2.785 F F1 -.63(``)2.785 G -.55(.').63 G(')-.08 E
+F0(and)5.285 E F1 -.63(``)2.784 G(..).63 E -.63('')-.55 G F0 2.784(,e)
+.63 G -.15(ve)-3.034 G 2.784(ni).15 G 2.784(ft)-2.784 G .284(he pat-)
+-2.784 F(tern be)184 504 Q(gins with a)-.15 E F1 -.63(``)2.5 G -.55(.')
+.63 G(')-.08 E F0 5(.T)C(his option is enabled by def)-5 E(ault.)-.1 E
+F1(globstar)144 520.8 Q F0 .518(If set, the pattern)184 520.8 R F1(**)
3.018 E F0 .519(used in a pathname e)3.019 F .519(xpansion conte)-.15 F
.519(xt will match all \214les and zero)-.15 F .432
-(or more directories and subdirectories.)184 463.2 R .431
+(or more directories and subdirectories.)184 532.8 R .431
(If the pattern is follo)5.432 F .431(wed by a)-.25 F F1(/)2.931 E F0
2.931(,o)C .431(nly directories)-2.931 F(and subdirectories match.)184
-475.2 Q F1(gnu_errfmt)144 492 Q F0(If set, shell error messages are wri\
-tten in the standard GNU error message format.)184 504 Q F1(histappend)
-144 520.8 Q F0 .676
+544.8 Q F1(gnu_errfmt)144 561.6 Q F0(If set, shell error messages are w\
+ritten in the standard GNU error message format.)184 573.6 Q F1
+(histappend)144 590.4 Q F0 .676
(If set, the history list is appended to the \214le named by the v)184
-532.8 R .676(alue of the)-.25 F F2(HISTFILE)3.177 E F0 -.25(va)2.927 G
-(ri-).25 E(able when the shell e)184 544.8 Q(xits, rather than o)-.15 E
--.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 561.6 Q(eedit)
--.18 E F0 .576(If set, and)184 573.6 R F1 -.18(re)3.076 G(adline).18 E
+602.4 R .676(alue of the)-.25 F F2(HISTFILE)3.177 E F0 -.25(va)2.927 G
+(ri-).25 E(able when the shell e)184 614.4 Q(xits, rather than o)-.15 E
+-.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 631.2 Q(eedit)
+-.18 E F0 .576(If set, and)184 643.2 R F1 -.18(re)3.076 G(adline).18 E
F0 .575(is being used, a user is gi)3.076 F -.15(ve)-.25 G 3.075(nt).15
G .575(he opportunity to re-edit a f)-3.075 F .575(ailed his-)-.1 F
-(tory substitution.)184 585.6 Q F1(histv)144 602.4 Q(erify)-.1 E F0 .402
-(If set, and)184 614.4 R F1 -.18(re)2.903 G(adline).18 E F0 .403
+(tory substitution.)184 655.2 Q F1(histv)144 672 Q(erify)-.1 E F0 .402
+(If set, and)184 684 R F1 -.18(re)2.903 G(adline).18 E F0 .403
(is being used, the results of history substitution are not immediately)
-2.903 F .662(passed to the shell parser)184 626.4 R 5.662(.I)-.55 G .661
+2.903 F .662(passed to the shell parser)184 696 R 5.662(.I)-.55 G .661
(nstead, the resulting line is loaded into the)-5.662 F F1 -.18(re)3.161
-G(adline).18 E F0(editing)3.161 E -.2(bu)184 638.4 S -.25(ff).2 G(er).25
-E 2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1
-(hostcomplete)144 655.2 Q F0 1.181(If set, and)184 667.2 R F1 -.18(re)
-3.681 G(adline).18 E F0 1.181(is being used,)3.681 F F1(bash)3.682 E F0
-1.182(will attempt to perform hostname completion)3.682 F 1.381
-(when a w)184 679.2 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381
-(is being completed \(see)3.881 F F1(Completing)3.88 E F0(under)3.88 E
-F2(READLINE)3.88 E F0(abo)184 691.2 Q -.15(ve)-.15 G 2.5(\). This).15 F
-(is enabled by def)2.5 E(ault.)-.1 E(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(75)190.395 E 0 Cg EP
-%%Page: 76 76
+G(adline).18 E F0(editing)3.161 E -.2(bu)184 708 S -.25(ff).2 G(er).25 E
+2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(78)185.115 E 0 Cg EP
+%%Page: 79 79
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(huponexit)144 84 Q F0(If set,)184 96 Q F1(bash)2.5 E F0(will send)2.5
-E/F2 9/Times-Bold@0 SF(SIGHUP)2.5 E F0(to all jobs when an interacti)
-2.25 E .3 -.15(ve l)-.25 H(ogin shell e).15 E(xits.)-.15 E F1
-(inherit_err)144 112.8 Q(exit)-.18 E F0 .219
-(If set, command substitution inherits the v)184 124.8 R .219
+SF(hostcomplete)144 84 Q F0 1.181(If set, and)184 96 R F1 -.18(re)3.681
+G(adline).18 E F0 1.181(is being used,)3.681 F F1(bash)3.682 E F0 1.182
+(will attempt to perform hostname completion)3.682 F 1.381(when a w)184
+108 R 1.381(ord containing a)-.1 F F1(@)3.881 E F0 1.381
+(is being completed \(see)3.881 F F1(Completing)3.88 E F0(under)3.88 E
+/F2 9/Times-Bold@0 SF(READLINE)3.88 E F0(abo)184 120 Q -.15(ve)-.15 G
+2.5(\). This).15 F(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144
+136.8 Q F0(If set,)184 148.8 Q F1(bash)2.5 E F0(will send)2.5 E F2
+(SIGHUP)2.5 E F0(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25
+H(ogin shell e).15 E(xits.)-.15 E F1(inherit_err)144 165.6 Q(exit)-.18 E
+F0 .219(If set, command substitution inherits the v)184 177.6 R .219
(alue of the)-.25 F F1(err)2.719 E(exit)-.18 E F0 .22
-(option, instead of unsetting)2.719 F(it in the subshell en)184 136.8 Q
+(option, instead of unsetting)2.719 F(it in the subshell en)184 189.6 Q
2.5(vironment. This)-.4 F(option is enabled when)2.5 E/F3 10
/Times-Italic@0 SF(posix mode)2.5 E F0(is enabled.)2.5 E F1(interacti)
-144 153.6 Q -.1(ve)-.1 G(_comments).1 E F0 .33(If set, allo)184 165.6 R
+144 206.4 Q -.1(ve)-.1 G(_comments).1 E F0 .33(If set, allo)184 218.4 R
2.83(waw)-.25 G .33(ord be)-2.93 F .33(ginning with)-.15 F F1(#)2.83 E
F0 .33(to cause that w)2.83 F .33(ord and all remaining characters on)
--.1 F .967(that line to be ignored in an interacti)184 177.6 R 1.267
+-.1 F .967(that line to be ignored in an interacti)184 230.4 R 1.267
-.15(ve s)-.25 H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217
E -.15(ve)-.15 G 3.467(\). This).15 F .968(option is)3.468 F
-(enabled by def)184 189.6 Q(ault.)-.1 E F1(lastpipe)144 206.4 Q F0 .066
-(If set, and job control is not acti)184 206.4 R -.15(ve)-.25 G 2.566
+(enabled by def)184 242.4 Q(ault.)-.1 E F1(lastpipe)144 259.2 Q F0 .066
+(If set, and job control is not acti)184 259.2 R -.15(ve)-.25 G 2.566
(,t).15 G .066(he shell runs the last command of a pipeline not e)-2.566
F -.15(xe)-.15 G(-).15 E
-(cuted in the background in the current shell en)184 218.4 Q(vironment.)
--.4 E F1(lithist)144 235.2 Q F0 .654(If set, and the)184 235.2 R F1
-(cmdhist)3.154 E F0 .654(option is enabled, multi-line commands are sa)
-3.154 F -.15(ve)-.2 G 3.155(dt).15 G 3.155(ot)-3.155 G .655(he history)
--3.155 F(with embedded ne)184 247.2 Q
+(cuted in the background in the current shell en)184 271.2 Q(vironment.)
+-.4 E F1(lithist)144 288 Q F0 .654(If set, and the)184 288 R F1(cmdhist)
+3.154 E F0 .654(option is enabled, multi-line commands are sa)3.154 F
+-.15(ve)-.2 G 3.155(dt).15 G 3.155(ot)-3.155 G .655(he history)-3.155 F
+(with embedded ne)184 300 Q
(wlines rather than using semicolon separators where possible.)-.25 E F1
-(localv)144 264 Q(ar_inherit)-.1 E F0 .422(If set, local v)184 276 R
+(localv)144 316.8 Q(ar_inherit)-.1 E F0 .422(If set, local v)184 328.8 R
.422(ariables inherit the v)-.25 F .422(alue and attrib)-.25 F .422
(utes of a v)-.2 F .422(ariable of the same name that)-.25 F -.15(ex)184
-288 S .173(ists at a pre).15 F .173(vious scope before an)-.25 F 2.673
+340.8 S .173(ists at a pre).15 F .173(vious scope before an)-.25 F 2.673
(yn)-.15 G .673 -.25(ew va)-2.673 H .173(lue is assigned.).25 F .174
-(The nameref attrib)5.174 F .174(ute is not)-.2 F(inherited.)184 300 Q
-F1(localv)144 316.8 Q(ar_unset)-.1 E F0 .329(If set, calling)184 328.8 R
+(The nameref attrib)5.174 F .174(ute is not)-.2 F(inherited.)184 352.8 Q
+F1(localv)144 369.6 Q(ar_unset)-.1 E F0 .329(If set, calling)184 381.6 R
F1(unset)2.829 E F0 .329(on local v)2.829 F .329(ariables in pre)-.25 F
.328(vious function scopes marks them so subse-)-.25 F .543(quent looku\
ps \214nd them unset until that function returns. This is identical to \
-the beha)184 340.8 R(v-)-.2 E(ior of unsetting local v)184 352.8 Q
-(ariables at the current function scope.)-.25 E F1(login_shell)144 369.6
+the beha)184 393.6 R(v-)-.2 E(ior of unsetting local v)184 405.6 Q
+(ariables at the current function scope.)-.25 E F1(login_shell)144 422.4
Q F0 .486
(The shell sets this option if it is started as a login shell \(see)184
-381.6 R F2(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve)
--.15 G 2.986(\). The).15 F -.25(va)184 393.6 S(lue may not be changed.)
-.25 E F1(mailwar)144 410.4 Q(n)-.15 E F0 .814(If set, and a \214le that)
-184 422.4 R F1(bash)3.314 E F0 .815
+434.4 R F2(INV)2.986 E(OCA)-.405 E(TION)-.855 E F0(abo)2.736 E -.15(ve)
+-.15 G 2.986(\). The).15 F -.25(va)184 446.4 S(lue may not be changed.)
+.25 E F1(mailwar)144 463.2 Q(n)-.15 E F0 .814(If set, and a \214le that)
+184 475.2 R F1(bash)3.314 E F0 .815
(is checking for mail has been accessed since the last time it)3.314 F
--.1(wa)184 434.4 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
+-.1(wa)184 487.2 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
(`The mail in)-.74 E F3(mail\214le)2.5 E F0(has been read')2.5 E 2.5('i)
--.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1(no_empty_cmd_completion)144
-451.2 Q F0 .325(If set, and)184 463.2 R F1 -.18(re)2.825 G(adline).18 E
-F0 .325(is being used,)2.825 F F1(bash)2.824 E F0 .324
+-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1(no_empty_cmd_completion)144 504
+Q F0 .325(If set, and)184 516 R F1 -.18(re)2.825 G(adline).18 E F0 .325
+(is being used,)2.825 F F1(bash)2.824 E F0 .324
(will not attempt to search the)2.824 F F2 -.666(PA)2.824 G(TH)-.189 E
F0 .324(for possible)2.574 F
-(completions when completion is attempted on an empty line.)184 475.2 Q
-F1(nocaseglob)144 492 Q F0 .436(If set,)184 504 R F1(bash)2.936 E F0
+(completions when completion is attempted on an empty line.)184 528 Q F1
+(nocaseglob)144 544.8 Q F0 .436(If set,)184 556.8 R F1(bash)2.936 E F0
.436(matches \214lenames in a case\255insensiti)2.936 F .737 -.15(ve f)
--.25 H .437(ashion when performing pathname).05 F -.15(ex)184 516 S
+-.25 H .437(ashion when performing pathname).05 F -.15(ex)184 568.8 S
(pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(abo)2.5 E
--.15(ve)-.15 G(\).).15 E F1(nocasematch)144 532.8 Q F0 1.194(If set,)184
-544.8 R F1(bash)3.694 E F0 1.194
+-.15(ve)-.15 G(\).).15 E F1(nocasematch)144 585.6 Q F0 1.194(If set,)184
+597.6 R F1(bash)3.694 E F0 1.194
(matches patterns in a case\255insensiti)3.694 F 1.493 -.15(ve f)-.25 H
-1.193(ashion when performing matching).05 F .551(while e)184 556.8 R
+1.193(ashion when performing matching).05 F .551(while e)184 609.6 R
-.15(xe)-.15 G(cuting).15 E F1(case)3.051 E F0(or)3.051 E F1([[)3.051 E
F0 .551(conditional commands, when performing pattern substitution)3.051
-F -.1(wo)184 568.8 S .623(rd e).1 F .623(xpansions, or when \214ltering\
+F -.1(wo)184 621.6 S .623(rd e).1 F .623(xpansions, or when \214ltering\
possible completions as part of programmable com-)-.15 F(pletion.)184
-580.8 Q F1(nullglob)144 597.6 Q F0 .854(If set,)184 609.6 R F1(bash)
-3.354 E F0(allo)3.354 E .855(ws patterns which match no \214les \(see)
--.25 F F1 -.1(Pa)3.355 G .855(thname Expansion).1 F F0(abo)3.355 E -.15
-(ve)-.15 G 3.355(\)t).15 G(o)-3.355 E -.15(ex)184 621.6 S
-(pand to a null string, rather than themselv).15 E(es.)-.15 E F1(pr)144
-638.4 Q(ogcomp)-.18 E F0 .677(If set, the programmable completion f)184
-650.4 R .677(acilities \(see)-.1 F F1(Pr)3.176 E .676
-(ogrammable Completion)-.18 F F0(abo)3.176 E -.15(ve)-.15 G(\)).15 E
-(are enabled.)184 662.4 Q(This option is enabled by def)5 E(ault.)-.1 E
-F1(pr)144 679.2 Q(ogcomp_alias)-.18 E F0 2.124
-(If set, and programmable completion is enabled,)184 691.2 R F1(bash)
-4.624 E F0 2.124(treats a command name that)4.624 F(doesn')184 703.2 Q
-3.289(th)-.18 G -2.25 -.2(av e)-3.289 H(an)3.489 E 3.289(yc)-.15 G .789
-(ompletions as a possible alias and attempts alias e)-3.289 F .788
-(xpansion. If it has)-.15 F 1.473(an alias,)184 715.2 R F1(bash)3.973 E
-F0 1.473(attempts programmable completion using the command w)3.973 F
-1.473(ord resulting)-.1 F(from the e)184 727.2 Q(xpanded alias.)-.15 E
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(76)190.395 E 0 Cg EP
-%%Page: 77 77
+633.6 Q F1(noexpand_translation)144 650.4 Q F0 1.117(If set,)184 662.4 R
+F1(bash)3.617 E F0 1.117(encloses the translated results of $"..." quot\
+ing in single quotes instead of)3.617 F(double quotes.)184 674.4 Q
+(If the string is not translated, this has no ef)5 E(fect.)-.25 E F1
+(nullglob)144 691.2 Q F0 .855(If set,)184 703.2 R F1(bash)3.355 E F0
+(allo)3.355 E .855(ws patterns which match no \214les \(see)-.25 F F1
+-.1(Pa)3.354 G .854(thname Expansion).1 F F0(abo)3.354 E -.15(ve)-.15 G
+3.354(\)t).15 G(o)-3.354 E -.15(ex)184 715.2 S
+(pand to a null string, rather than themselv).15 E(es.)-.15 E
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(79)185.115 E 0 Cg EP
+%%Page: 80 80
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(pr)144 84 Q(omptv)-.18 E(ars)-.1 E F0 1.448
-(If set, prompt strings under)184 96 R 1.448(go parameter e)-.18 F 1.447
-(xpansion, command substitution, arithmetic)-.15 F -.15(ex)184 108 S .17
-(pansion, and quote remo).15 F -.25(va)-.15 G 2.67(la).25 G .17
-(fter being e)-2.67 F .17(xpanded as described in)-.15 F/F2 9
-/Times-Bold@0 SF(PR)2.671 E(OMPTING)-.27 E F0(abo)2.421 E -.15(ve)-.15 G
-(.).15 E(This option is enabled by def)184 120 Q(ault.)-.1 E F1 -.18(re)
-144 136.8 S(stricted_shell).18 E F0 1.069
+SF(patsub_r)144 84 Q(eplacement)-.18 E F0 .105(If set,)184 96 R F1(bash)
+2.605 E F0 -.15(ex)2.605 G .105(pands occurrences of).15 F F1(&)2.606 E
+F0 .106(in the replacement string of pattern substitution to)2.606 F
+.528(the te)184 108 R .528
+(xt matched by the pattern, as described under)-.15 F F1 -.1(Pa)3.027 G
+.527(rameter Expansion).1 F F0(abo)3.027 E -.15(ve)-.15 G 5.527(.T).15 G
+(his)-5.527 E(option is enabled by def)184 120 Q(ault.)-.1 E F1(pr)144
+136.8 Q(ogcomp)-.18 E F0 .676(If set, the programmable completion f)184
+148.8 R .677(acilities \(see)-.1 F F1(Pr)3.177 E .677
+(ogrammable Completion)-.18 F F0(abo)3.177 E -.15(ve)-.15 G(\)).15 E
+(are enabled.)184 160.8 Q(This option is enabled by def)5 E(ault.)-.1 E
+F1(pr)144 177.6 Q(ogcomp_alias)-.18 E F0 2.124
+(If set, and programmable completion is enabled,)184 189.6 R F1(bash)
+4.624 E F0 2.124(treats a command name that)4.624 F(doesn')184 201.6 Q
+3.288(th)-.18 G -2.25 -.2(av e)-3.288 H(an)3.488 E 3.288(yc)-.15 G .789
+(ompletions as a possible alias and attempts alias e)-3.288 F .789
+(xpansion. If it has)-.15 F 1.473(an alias,)184 213.6 R F1(bash)3.973 E
+F0 1.473(attempts programmable completion using the command w)3.973 F
+1.473(ord resulting)-.1 F(from the e)184 225.6 Q(xpanded alias.)-.15 E
+F1(pr)144 242.4 Q(omptv)-.18 E(ars)-.1 E F0 1.447
+(If set, prompt strings under)184 254.4 R 1.448(go parameter e)-.18 F
+1.448(xpansion, command substitution, arithmetic)-.15 F -.15(ex)184
+266.4 S .171(pansion, and quote remo).15 F -.25(va)-.15 G 2.67(la).25 G
+.17(fter being e)-2.67 F .17(xpanded as described in)-.15 F/F2 9
+/Times-Bold@0 SF(PR)2.67 E(OMPTING)-.27 E F0(abo)2.42 E -.15(ve)-.15 G
+(.).15 E(This option is enabled by def)184 278.4 Q(ault.)-.1 E F1 -.18
+(re)144 295.2 S(stricted_shell).18 E F0 1.069
(The shell sets this option if it is started in restricted mode \(see)
-184 148.8 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 160.8 Q 2.86
+184 307.2 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 319.2 Q 2.86
(w\). The)-.25 F -.25(va)2.86 G .36(lue may not be changed.).25 F .36
(This is not reset when the startup \214les are e)5.36 F -.15(xe)-.15 G
-(-).15 E(cuted, allo)184 172.8 Q(wing the startup \214les to disco)-.25
+(-).15 E(cuted, allo)184 331.2 Q(wing the startup \214les to disco)-.25
E -.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5
-E F1(shift_v)144 189.6 Q(erbose)-.1 E F0 .502(If set, the)184 201.6 R F1
-(shift)3.002 E F0 -.2(bu)3.002 G .501
-(iltin prints an error message when the shift count e).2 F .501
-(xceeds the number)-.15 F(of positional parameters.)184 213.6 Q F1(sour)
-144 230.4 Q(cepath)-.18 E F0 .77(If set, the)184 242.4 R F1(sour)3.27 E
-(ce)-.18 E F0(\()3.27 E F1(.)A F0 3.27(\)b)C .77(uiltin uses the v)-3.47
-F .771(alue of)-.25 F F2 -.666(PA)3.271 G(TH)-.189 E F0 .771
-(to \214nd the directory containing the)3.021 F
-(\214le supplied as an ar)184 254.4 Q 2.5(gument. This)-.18 F
-(option is enabled by def)2.5 E(ault.)-.1 E F1(xpg_echo)144 271.2 Q F0
-(If set, the)184 283.2 Q F1(echo)2.5 E F0 -.2(bu)2.5 G(iltin e).2 E
-(xpands backslash-escape sequences by def)-.15 E(ault.)-.1 E F1(suspend)
-108 300 Q F0([)2.5 E F1<ad66>A F0(])A 1.002(Suspend the e)144 312 R -.15
-(xe)-.15 G 1.002(cution of this shell until it recei).15 F -.15(ve)-.25
-G 3.501(sa).15 G F2(SIGCONT)A F0 3.501(signal. A)3.251 F 1.001
-(login shell cannot be)3.501 F .022(suspended; the)144 324 R F1<ad66>
-2.522 E F0 .022(option can be used to o)2.522 F -.15(ve)-.15 G .022
-(rride this and force the suspension.).15 F .023(The return status is)
-5.023 F 2.5(0u)144 336 S(nless the shell is a login shell and)-2.5 E F1
-<ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5 E
-F1(test)108 352.8 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)
-108 364.8 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 .878
-(Return a status of 0 \(true\) or 1 \(f)144 364.8 R .877
+E F1(shift_v)144 348 Q(erbose)-.1 E F0 .501(If set, the)184 360 R F1
+(shift)3.001 E F0 -.2(bu)3.001 G .501
+(iltin prints an error message when the shift count e).2 F .502
+(xceeds the number)-.15 F(of positional parameters.)184 372 Q F1(sour)
+144 388.8 Q(cepath)-.18 E F0 .771(If set, the)184 400.8 R F1(.)3.271 E
+F0(\()3.271 E F1(sour)A(ce)-.18 E F0 3.271(\)b)C .771(uiltin uses the v)
+-3.471 F .771(alue of)-.25 F F2 -.666(PA)3.27 G(TH)-.189 E F0 .77
+(to \214nd the directory containing the)3.02 F(\214le supplied as an ar)
+184 412.8 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E
+(ault.)-.1 E F1 -.1(va)144 429.6 S(rr).1 E(edir_close)-.18 E F0 .74(If \
+set, the shell automatically closes \214le descriptors assigned using t\
+he)184 441.6 R/F3 10/Times-Italic@0 SF({varname})3.24 E F0(redi-)3.24 E
+.424(rection syntax \(see)184 453.6 R F2(REDIRECTION)2.924 E F0(abo)
+2.674 E -.15(ve)-.15 G 2.924(\)i).15 G .424(nstead of lea)-2.924 F .424
+(ving them open when the com-)-.2 F(mand completes.)184 465.6 Q F1
+(xpg_echo)144 482.4 Q F0(If set, the)184 494.4 Q F1(echo)2.5 E F0 -.2
+(bu)2.5 G(iltin e).2 E(xpands backslash-escape sequences by def)-.15 E
+(ault.)-.1 E F1(suspend)108 511.2 Q F0([)2.5 E F1<ad66>A F0(])A .909
+(Suspend the e)144 523.2 R -.15(xe)-.15 G .909
+(cution of this shell until it recei).15 F -.15(ve)-.25 G 3.41(sa).15 G
+F2(SIGCONT)A F0 3.41(signal. A)3.16 F .91(login shell, or a shell)3.41 F
+.753(without job control enabled, cannot be suspended; the)144 535.2 R
+F1<ad66>3.253 E F0 .752(option can be used to o)3.252 F -.15(ve)-.15 G
+.752(rride this and).15 F .107(force the suspension.)144 547.2 R .107(T\
+he return status is 0 unless the shell is a login shell or job control \
+is not en-)5.107 F(abled and)144 559.2 Q F1<ad66>2.5 E F0
+(is not supplied.)2.5 E F1(test)108 576 Q F3 -.2(ex)2.5 G(pr).2 E F1([)
+108 588 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 .878
+(Return a status of 0 \(true\) or 1 \(f)144 588 R .877
(alse\) depending on the e)-.1 F -.25(va)-.25 G .877
-(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 376.8
-S(pr).2 E F0 5.53(.E).73 G .53
+(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 600 S
+(pr).2 E F0 5.53(.E).73 G .53
(ach operator and operand must be a separate ar)-5.53 F 3.03
(gument. Expressions)-.18 F .53(are composed of the)3.03 F 1.361
-(primaries described abo)144 388.8 R 1.661 -.15(ve u)-.15 H(nder).15 E
-F2(CONDITION)3.861 E 1.36(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)
-A F1(test)5.86 E F0 1.36(does not accept an)3.86 F 3.86(yo)-.15 G(p-)
--3.86 E(tions, nor does it accept and ignore an ar)144 400.8 Q
-(gument of)-.18 E F1<adad>2.5 E F0(as signifying the end of options.)2.5
-E .785(Expressions may be combined using the follo)144 418.8 R .786
+(primaries described abo)144 612 R 1.661 -.15(ve u)-.15 H(nder).15 E F2
+(CONDITION)3.861 E 1.36(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(.)A
+F1(test)5.86 E F0 1.36(does not accept an)3.86 F 3.86(yo)-.15 G(p-)-3.86
+E(tions, nor does it accept and ignore an ar)144 624 Q(gument of)-.18 E
+F1<adad>2.5 E F0(as signifying the end of options.)2.5 E .785
+(Expressions may be combined using the follo)144 642 R .786
(wing operators, listed in decreasing order of prece-)-.25 F 3.412
-(dence. The)144 430.8 R -.25(eva)3.412 G .912
+(dence. The)144 654 R -.25(eva)3.412 G .912
(luation depends on the number of ar).25 F .911(guments; see belo)-.18 F
4.711 -.65(w. O)-.25 H .911(perator precedence is).65 F
-(used when there are \214v)144 442.8 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G
-(ore ar)-2.5 E(guments.)-.18 E F1(!)144 454.8 Q F3 -.2(ex)2.5 G(pr).2 E
-F0 -.35(Tr)180 454.8 S(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23
-E(alse.)-.1 E F1(\()144 466.8 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0
-.26(Returns the v)180 466.8 R .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2
-E F0 5.26(.T)C .26(his may be used to o)-5.26 F -.15(ve)-.15 G .26
-(rride the normal precedence of opera-).15 F(tors.)180 478.8 Q F3 -.2
-(ex)144 490.8 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0
--.35(Tr)180 502.8 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5
-E F3 -.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 514.8 S
-(pr1).2 E F0<ad>2.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180
-526.8 S(ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2
-(ex)2.5 G(pr2).2 E F0(is true.)2.52 E F1(test)144 543.6 Q F0(and)2.5 E
-F1([)2.5 E F0 -.25(eva)2.5 G(luate conditional e).25 E
+(used when there are \214v)144 666 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G(ore ar)
+-2.5 E(guments.)-.18 E F1(!)144 678 Q F3 -.2(ex)2.5 G(pr).2 E F0 -.35
+(Tr)180 678 S(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)
+-.1 E F1(\()144 690 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26
+(Returns the v)180 690 R .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2 E F0
+5.26(.T)C .26(his may be used to o)-5.26 F -.15(ve)-.15 G .26
+(rride the normal precedence of opera-).15 F(tors.)180 702 Q
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(80)185.115 E 0 Cg EP
+%%Page: 81 81
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10
+/Times-Italic@0 SF -.2(ex)144 84 S(pr1).2 E F0<ad>2.5 E/F2 10
+/Times-Bold@0 SF(a)A F1 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 96 S
+(ue if both).35 E F1 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F1 -.2(ex)2.5 G
+(pr2).2 E F0(are true.)2.52 E F1 -.2(ex)144 108 S(pr1).2 E F0<ad>2.5 E
+F2(o)A F1 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 120 S(ue if either).35 E
+F1 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F1 -.2(ex)2.5 G(pr2).2 E F0
+(is true.)2.52 E F2(test)144 136.8 Q F0(and)2.5 E F2([)2.5 E F0 -.25
+(eva)2.5 G(luate conditional e).25 E
(xpressions using a set of rules based on the number of ar)-.15 E
-(guments.)-.18 E 2.5(0a)144 561.6 S -.18(rg)-2.5 G(uments).18 E(The e)
-180 573.6 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 585.6 S -.18
-(rg)-2.5 G(ument).18 E(The e)180 597.6 Q
+(guments.)-.18 E 2.5(0a)144 154.8 S -.18(rg)-2.5 G(uments).18 E(The e)
+180 166.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 178.8 S -.18
+(rg)-2.5 G(ument).18 E(The e)180 190.8 Q
(xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
-E 2.5(2a)144 609.6 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
-180 621.6 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
+E 2.5(2a)144 202.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
+180 214.8 R .37(gument is)-.18 F F2(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
F .37(xpression is true if and only if the second ar)-.15 F .37
-(gument is null.)-.18 F .379(If the \214rst ar)180 633.6 R .38
+(gument is null.)-.18 F .379(If the \214rst ar)180 226.8 R .38
(gument is one of the unary conditional operators listed abo)-.18 F .68
--.15(ve u)-.15 H(nder).15 E F2(CONDI-)2.88 E(TION)180 645.6 Q .553
-(AL EXPRESSIONS)-.18 F F4(,)A F0 .552(the e)2.802 F .552
-(xpression is true if the unary test is true.)-.15 F .552
-(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 657.6 Q
+-.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 SF(CONDI-)2.88 E(TION)180
+238.8 Q .553(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(,)A F0 .552
+(the e)2.802 F .552(xpression is true if the unary test is true.)-.15 F
+.552(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 250.8 Q
(alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E
-(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 669.6 S -.18(rg)-2.5 G
-(uments).18 E .236(The follo)180 681.6 R .236
+(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 262.8 S -.18(rg)-2.5 G
+(uments).18 E .236(The follo)180 274.8 R .236
(wing conditions are applied in the order listed.)-.25 F .236
(If the second ar)5.236 F .236(gument is one of)-.18 F .855
-(the binary conditional operators listed abo)180 693.6 R 1.155 -.15
-(ve u)-.15 H(nder).15 E F2(CONDITION)3.355 E .855(AL EXPRESSIONS)-.18 F
-F4(,)A F0(the)3.104 E .578(result of the e)180 705.6 R .578(xpression i\
+(the binary conditional operators listed abo)180 286.8 R 1.155 -.15
+(ve u)-.15 H(nder).15 E F3(CONDITION)3.355 E .855(AL EXPRESSIONS)-.18 F
+F4(,)A F0(the)3.104 E .578(result of the e)180 298.8 R .578(xpression i\
s the result of the binary test using the \214rst and third ar)-.15 F
-(guments)-.18 E 1.333(as operands.)180 717.6 R(The)6.333 E F1<ad61>3.833
-E F0(and)3.833 E F1<ad6f>3.832 E F0 1.332
+(guments)-.18 E 1.333(as operands.)180 310.8 R(The)6.333 E F2<ad61>3.833
+E F0(and)3.833 E F2<ad6f>3.832 E F0 1.332
(operators are considered binary operators when there are)3.832 F .558
-(three ar)180 729.6 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058
-F .558(gument is)-.18 F F1(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F
+(three ar)180 322.8 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058
+F .558(gument is)-.18 F F2(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F
.558(alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F
-(o-ar)-.1 E(gument)-.18 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235
-E(77)190.395 E 0 Cg EP
-%%Page: 78 78
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .521
-(test using the second and third ar)180 84 R 3.021(guments. If)-.18 F
-.521(the \214rst ar)3.021 F .52(gument is e)-.18 F(xactly)-.15 E/F1 10
-/Times-Bold@0 SF(\()3.02 E F0 .52(and the third)3.02 F(ar)180 96 Q .485
-(gument is e)-.18 F(xactly)-.15 E F1(\))2.985 E F0 2.985(,t)C .485
-(he result is the one-ar)-2.985 F .485(gument test of the second ar)-.18
-F 2.985(gument. Other)-.18 F(-)-.2 E(wise, the e)180 108 Q
-(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144 120 S -.18(rg)-2.5 G
-(uments).18 E .385(If the \214rst ar)180 132 R .385(gument is)-.18 F F1
-(!)2.885 E F0 2.885(,t)C .385(he result is the ne)-2.885 F -.05(ga)-.15
-G .384(tion of the three-ar).05 F .384(gument e)-.18 F .384
-(xpression com-)-.15 F .284(posed of the remaining ar)180 144 R 2.784
-(guments. Otherwise,)-.18 F .284(the e)2.784 F .284
-(xpression is parsed and e)-.15 F -.25(va)-.25 G .285(luated ac-).25 F
-(cording to precedence using the rules listed abo)180 156 Q -.15(ve)-.15
-G(.).15 E 2.5(5o)144 168 S 2.5(rm)-2.5 G(ore ar)-2.5 E(guments)-.18 E
-1.635(The e)180 180 R 1.635(xpression is parsed and e)-.15 F -.25(va)
--.25 G 1.635(luated according to precedence using the rules listed).25 F
-(abo)180 192 Q -.15(ve)-.15 G(.).15 E(When used with)144 210 Q F1(test)
-2.5 E F0(or)2.5 E F1([)2.5 E F0 2.5(,t)C(he)-2.5 E F1(<)2.5 E F0(and)2.5
-E F1(>)2.5 E F0(operators sort le)2.5 E
-(xicographically using ASCII ordering.)-.15 E F1(times)108 226.8 Q F0
+(o-ar)-.1 E(gument)-.18 E .521(test using the second and third ar)180
+334.8 R 3.021(guments. If)-.18 F .521(the \214rst ar)3.021 F .52
+(gument is e)-.18 F(xactly)-.15 E F2(\()3.02 E F0 .52(and the third)3.02
+F(ar)180 346.8 Q .485(gument is e)-.18 F(xactly)-.15 E F2(\))2.985 E F0
+2.985(,t)C .485(he result is the one-ar)-2.985 F .485
+(gument test of the second ar)-.18 F 2.985(gument. Other)-.18 F(-)-.2 E
+(wise, the e)180 358.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144
+370.8 S -.18(rg)-2.5 G(uments).18 E .43(The follo)180 382.8 R .43
+(wing conditions are applied in the order listed.)-.25 F .429
+(If the \214rst ar)5.429 F .429(gument is)-.18 F F2(!)2.929 E F0 2.929
+(,t)C .429(he re-)-2.929 F 1.314(sult is the ne)180 394.8 R -.05(ga)-.15
+G 1.314(tion of the three-ar).05 F 1.314(gument e)-.18 F 1.314
+(xpression composed of the remaining ar)-.15 F(gu-)-.18 E 2.745
+(ments. the)180 406.8 R(tw)2.745 E(o-ar)-.1 E .245
+(gument test using the second and third ar)-.18 F 2.744(guments. If)-.18
+F .244(the \214rst ar)2.744 F(gument)-.18 E .309(is e)180 418.8 R
+(xactly)-.15 E F2(\()2.809 E F0 .309(and the fourth ar)2.809 F .309
+(gument is e)-.18 F(xactly)-.15 E F2(\))2.809 E F0 2.809(,t)C .31
+(he result is the tw)-2.809 F(o-ar)-.1 E .31(gument test of the)-.18 F
+.184(second and third ar)180 430.8 R 2.684(guments. Otherwise,)-.18 F
+.184(the e)2.684 F .183(xpression is parsed and e)-.15 F -.25(va)-.25 G
+.183(luated according).25 F(to precedence using the rules listed abo)180
+442.8 Q -.15(ve)-.15 G(.).15 E 2.5(5o)144 454.8 S 2.5(rm)-2.5 G(ore ar)
+-2.5 E(guments)-.18 E 1.635(The e)180 466.8 R 1.635
+(xpression is parsed and e)-.15 F -.25(va)-.25 G 1.635
+(luated according to precedence using the rules listed).25 F(abo)180
+478.8 Q -.15(ve)-.15 G(.).15 E(When used with)144 496.8 Q F2(test)2.5 E
+F0(or)2.5 E F2([)2.5 E F0 2.5(,t)C(he)-2.5 E F2(<)2.5 E F0(and)2.5 E F2
+(>)2.5 E F0(operators sort le)2.5 E
+(xicographically using ASCII ordering.)-.15 E F2(times)108 513.6 Q F0
1.229(Print the accumulated user and system times for the shell and for\
- processes run from the shell.)144 226.8 R(The return status is 0.)144
-238.8 Q F1(trap)108 255.6 Q F0([)2.5 E F1(\255lp)A F0 2.5(][)C([)-2.5 E
-/F2 10/Times-Italic@0 SF(ar)A(g)-.37 E F0(])A F2(sigspec)2.5 E F0(...])
-2.5 E .683(The command)144 267.6 R F2(ar)3.513 E(g)-.37 E F0 .683
-(is to be read and e)3.403 F -.15(xe)-.15 G .682
-(cuted when the shell recei).15 F -.15(ve)-.25 G 3.182(ss).15 G
-(ignal\(s\))-3.182 E F2(sigspec)3.522 E F0 5.682(.I).31 G(f)-5.682 E F2
-(ar)3.512 E(g)-.37 E F0(is)3.402 E .608(absent \(and there is a single)
-144 279.6 R F2(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F1<ad>3.108 E
-F0 3.108(,e)C .608
+ processes run from the shell.)144 513.6 R(The return status is 0.)144
+525.6 Q F2(trap)108 542.4 Q F0([)2.5 E F2(\255lp)A F0 2.5(][)C([)-2.5 E
+F1(ar)A(g)-.37 E F0(])A F1(sigspec)2.5 E F0(...])2.5 E .682(The command)
+144 554.4 R F1(ar)3.512 E(g)-.37 E F0 .682(is to be read and e)3.402 F
+-.15(xe)-.15 G .682(cuted when the shell recei).15 F -.15(ve)-.25 G
+3.183(ss).15 G(ignal\(s\))-3.183 E F1(sigspec)3.523 E F0 5.683(.I).31 G
+(f)-5.683 E F1(ar)3.513 E(g)-.37 E F0(is)3.403 E .609
+(absent \(and there is a single)144 566.4 R F1(sigspec)3.108 E F0 3.108
+(\)o)C(r)-3.108 E F2<ad>3.108 E F0 3.108(,e)C .608
(ach speci\214ed signal is reset to its original disposition)-3.108 F
-.659(\(the v)144 291.6 R .659(alue it had upon entrance to the shell\).)
--.25 F(If)5.658 E F2(ar)3.488 E(g)-.37 E F0 .658
-(is the null string the signal speci\214ed by each)3.378 F F2(sigspec)
-144.34 303.6 Q F0 .58(is ignored by the shell and by the commands it in)
-3.39 F -.2(vo)-.4 G -.1(ke).2 G 3.081(s. If).1 F F2(ar)3.411 E(g)-.37 E
-F0 .581(is not present and)3.301 F F1<ad70>3.081 E F0(has)3.081 E 1.215
-(been supplied, then the trap commands associated with each)144 315.6 R
-F2(sigspec)4.054 E F0 1.214(are displayed.)4.024 F 1.214(If no ar)6.214
-F(gu-)-.18 E .86(ments are supplied or if only)144 327.6 R F1<ad70>3.36
-E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86
+.658(\(the v)144 578.4 R .658(alue it had upon entrance to the shell\).)
+-.25 F(If)5.658 E F1(ar)3.488 E(g)-.37 E F0 .659
+(is the null string the signal speci\214ed by each)3.378 F F1(sigspec)
+144.34 590.4 Q F0 .581
+(is ignored by the shell and by the commands it in)3.391 F -.2(vo)-.4 G
+-.1(ke).2 G 3.08(s. If).1 F F1(ar)3.41 E(g)-.37 E F0 .58
+(is not present and)3.3 F F2<ad70>3.08 E F0(has)3.08 E 1.214
+(been supplied, then the trap commands associated with each)144 602.4 R
+F1(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215
+F(gu-)-.18 E .86(ments are supplied or if only)144 614.4 R F2<ad70>3.36
+E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F2(trap)3.36 E F0 .86
(prints the list of commands associated with each)3.36 F 2.83
-(signal. The)144 339.6 R F1<ad6c>2.83 E F0 .33(option causes the shell \
-to print a list of signal names and their corresponding num-)2.83 F 4.31
-(bers. Each)144 351.6 R F2(sigspec)4.65 E F0 1.811
-(is either a signal name de\214ned in <)4.62 F F2(signal.h)A F0 1.811
-(>, or a signal number)B 6.811(.S)-.55 G(ignal)-6.811 E
-(names are case insensiti)144 363.6 Q .3 -.15(ve a)-.25 H(nd the).15 E
-/F3 9/Times-Bold@0 SF(SIG)2.5 E F0(pre\214x is optional.)2.25 E .667
-(If a)144 381.6 R F2(sigspec)3.507 E F0(is)3.477 E F3(EXIT)3.167 E F0
-.667(\(0\) the command)2.917 F F2(ar)3.496 E(g)-.37 E F0 .666(is e)3.386
-F -.15(xe)-.15 G .666(cuted on e).15 F .666(xit from the shell.)-.15 F
-.666(If a)5.666 F F2(sigspec)3.506 E F0(is)3.476 E F3(DE-)3.166 E -.09
-(BU)144 393.6 S(G).09 E/F4 9/Times-Roman@0 SF(,)A F0 .483(the command)
-2.733 F F2(ar)3.313 E(g)-.37 E F0 .483(is e)3.203 F -.15(xe)-.15 G .484
-(cuted before e).15 F -.15(ve)-.25 G(ry).15 E F2 .484(simple command)
-2.984 F F0(,)A F2(for)2.984 E F0(command,)2.984 E F2(case)2.984 E F0
-(command,)2.984 E F2(select)144 405.6 Q F0 .563(command, e)3.063 F -.15
-(ve)-.25 G .563(ry arithmetic).15 F F2(for)3.063 E F0 .563
-(command, and before the \214rst command e)3.063 F -.15(xe)-.15 G .562
-(cutes in a shell).15 F .622(function \(see)144 417.6 R F3 .622
+(signal. The)144 626.4 R F2<ad6c>2.83 E F0 .33(option causes the shell \
+to print a list of signal names and their corresponding num-)2.83 F
+4.311(bers. Each)144 638.4 R F1(sigspec)4.651 E F0 1.811
+(is either a signal name de\214ned in <)4.621 F F1(signal.h)A F0 1.81
+(>, or a signal number)B 6.81(.S)-.55 G(ignal)-6.81 E
+(names are case insensiti)144 650.4 Q .3 -.15(ve a)-.25 H(nd the).15 E
+F3(SIG)2.5 E F0(pre\214x is optional.)2.25 E .666(If a)144 668.4 R F1
+(sigspec)3.506 E F0(is)3.476 E F3(EXIT)3.166 E F0 .666
+(\(0\) the command)2.916 F F1(ar)3.496 E(g)-.37 E F0 .666(is e)3.386 F
+-.15(xe)-.15 G .666(cuted on e).15 F .667(xit from the shell.)-.15 F
+.667(If a)5.667 F F1(sigspec)3.507 E F0(is)3.477 E F3(DE-)3.167 E -.09
+(BU)144 680.4 S(G).09 E F4(,)A F0 .484(the command)2.734 F F1(ar)3.314 E
+(g)-.37 E F0 .484(is e)3.204 F -.15(xe)-.15 G .484(cuted before e).15 F
+-.15(ve)-.25 G(ry).15 E F1 .483(simple command)2.984 F F0(,)A F1(for)
+2.983 E F0(command,)2.983 E F1(case)2.983 E F0(command,)2.983 E F1
+(select)144 692.4 Q F0 .562(command, e)3.062 F -.15(ve)-.25 G .563
+(ry arithmetic).15 F F1(for)3.063 E F0 .563
+(command, and before the \214rst command e)3.063 F -.15(xe)-.15 G .563
+(cutes in a shell).15 F .623(function \(see)144 704.4 R F3 .622
(SHELL GRAMMAR)3.122 F F0(abo)2.872 E -.15(ve)-.15 G 3.122(\). Refer).15
-F .622(to the description of the)3.122 F F1(extdeb)3.122 E(ug)-.2 E F0
-.622(option to the)3.122 F F1(shopt)144 429.6 Q F0 -.2(bu)2.996 G .496
-(iltin for details of its ef).2 F .496(fect on the)-.25 F F1(DEB)2.996 E
-(UG)-.1 E F0 2.996(trap. If)2.996 F(a)2.996 E F2(sigspec)3.336 E F0(is)
-3.306 E F3(RETURN)2.996 E F4(,)A F0 .496(the command)2.746 F F2(ar)
-144.33 441.6 Q(g)-.37 E F0 .18(is e)2.9 F -.15(xe)-.15 G .18
+F .622(to the description of the)3.122 F F2(extdeb)3.122 E(ug)-.2 E F0
+.622(option to the)3.122 F F2(shopt)144 716.4 Q F0 -.2(bu)2.996 G .496
+(iltin for details of its ef).2 F .496(fect on the)-.25 F F2(DEB)2.996 E
+(UG)-.1 E F0 2.996(trap. If)2.996 F(a)2.996 E F1(sigspec)3.336 E F0(is)
+3.306 E F3(RETURN)2.996 E F4(,)A F0 .496(the command)2.746 F F1(ar)
+144.33 728.4 Q(g)-.37 E F0 .18(is e)2.9 F -.15(xe)-.15 G .18
(cuted each time a shell function or a script e).15 F -.15(xe)-.15 G .18
-(cuted with the).15 F F1(.)2.68 E F0(or)2.68 E F1(sour)2.68 E(ce)-.18 E
-F0 -.2(bu)2.68 G .18(iltins \214nishes).2 F -.15(exe)144 453.6 S
-(cuting.).15 E .961(If a)144 471.6 R F2(sigspec)3.801 E F0(is)3.771 E F3
-(ERR)3.461 E F4(,)A F0 .961(the command)3.211 F F2(ar)3.791 E(g)-.37 E
-F0 .961(is e)3.681 F -.15(xe)-.15 G .961(cuted whene).15 F -.15(ve)-.25
-G 3.461(ra).15 G .96(pipeline \(which may consist of a)-.001 F .185(sin\
-gle simple command\), a list, or a compound command returns a non\255ze\
-ro e)144 483.6 R .185(xit status, subject to)-.15 F .452(the follo)144
-495.6 R .452(wing conditions.)-.25 F(The)5.452 E F3(ERR)2.952 E F0 .451
-(trap is not e)2.701 F -.15(xe)-.15 G .451(cuted if the f).15 F .451
-(ailed command is part of the com-)-.1 F .387
-(mand list immediately follo)144 507.6 R .387(wing a)-.25 F F1(while)
-2.887 E F0(or)2.887 E F1(until)2.888 E F0 -.1(ke)2.888 G(yw)-.05 E .388
-(ord, part of the test in an)-.1 F F2(if)2.898 E F0 .388
-(statement, part)4.848 F .778(of a command e)144 519.6 R -.15(xe)-.15 G
-.778(cuted in a).15 F F1(&&)3.278 E F0(or)3.278 E F1(||)3.278 E F0 .778
-(list e)3.278 F .778(xcept the command follo)-.15 F .778
-(wing the \214nal)-.25 F F1(&&)3.278 E F0(or)3.278 E F1(||)3.277 E F0
-3.277(,a)C -.15(ny)-3.277 G 1.28(command in a pipeline b)144 531.6 R
-1.28(ut the last, or if the command')-.2 F 3.78(sr)-.55 G 1.28(eturn v)
--3.78 F 1.28(alue is being in)-.25 F -.15(ve)-.4 G 1.28(rted using).15 F
-F1(!)3.78 E F0(.)A(These are the same conditions obe)144 543.6 Q
-(yed by the)-.15 E F1(err)2.5 E(exit)-.18 E F0(\()2.5 E F1<ad65>A F0 2.5
-(\)o)C(ption.)-2.5 E .133
-(Signals ignored upon entry to the shell cannot be trapped or reset.)144
-561.6 R -.35(Tr)5.132 G .132(apped signals that are not be-).35 F .117
-(ing ignored are reset to their original v)144 573.6 R .117
-(alues in a subshell or subshell en)-.25 F .117
-(vironment when one is cre-)-.4 F 2.5(ated. The)144 585.6 R
-(return status is f)2.5 E(alse if an)-.1 E(y)-.15 E F2(sigspec)2.84 E F0
-(is in)2.81 E -.25(va)-.4 G(lid; otherwise).25 E F1(trap)2.5 E F0
-(returns true.)2.5 E F1(type)108 602.4 Q F0([)2.5 E F1(\255aftpP)A F0(])
-A F2(name)2.5 E F0([)2.5 E F2(name)A F0(...])2.5 E -.4(Wi)144 614.4 S
-.174(th no options, indicate ho).4 F 2.674(we)-.25 G(ach)-2.674 E F2
-(name)3.034 E F0 -.1(wo)2.854 G .173
-(uld be interpreted if used as a command name.).1 F .173(If the)5.173 F
-F1<ad74>144 626.4 Q F0 .715(option is used,)3.215 F F1(type)3.215 E F0
-.715(prints a string which is one of)3.215 F F2(alias)3.545 E F0(,).27 E
-F2 -.1(ke)3.215 G(ywor)-.2 E(d)-.37 E F0(,).77 E F2(function)5.185 E F0
-(,).24 E F2 -.2(bu)3.215 G(iltin).2 E F0 3.215(,o).24 G(r)-3.215 E F2
-(\214le)5.125 E F0(if)3.395 E F2(name)144.36 638.4 Q F0 .087
-(is an alias, shell reserv)2.767 F .087(ed w)-.15 F .087
-(ord, function, b)-.1 F .086(uiltin, or disk \214le, respecti)-.2 F -.15
-(ve)-.25 G(ly).15 E 5.086(.I)-.65 G 2.586(ft)-5.086 G(he)-2.586 E F2
-(name)2.946 E F0 .086(is not)2.766 F .118
-(found, then nothing is printed, and an e)144 650.4 R .118
-(xit status of f)-.15 F .118(alse is returned.)-.1 F .119(If the)5.119 F
-F1<ad70>2.619 E F0 .119(option is used,)2.619 F F1(type)2.619 E F0 .855
-(either returns the name of the disk \214le that w)144 662.4 R .855
-(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0
-.855(were speci\214ed as a com-)3.535 F .528(mand name, or nothing if)
-144 674.4 R/F5 10/Courier@0 SF .528(type -t name)3.028 F F0 -.1(wo)3.028
-G .528(uld not return).1 F F2(\214le)4.938 E F0 5.528(.T).18 G(he)-5.528
-E F1<ad50>3.028 E F0 .529(option forces a)3.028 F F3 -.666(PA)3.029 G
-(TH)-.189 E F0 .007(search for each)144 686.4 R F2(name)2.507 E F0 2.507
-(,e)C -.15(ve)-2.757 G 2.507(ni).15 G(f)-2.507 E F5 .007(type -t name)
-2.507 F F0 -.1(wo)2.507 G .007(uld not return).1 F F2(\214le)4.417 E F0
-5.006(.I).18 G 2.506(fac)-5.006 G .006(ommand is hashed,)-2.506 F F1
-<ad70>2.506 E F0(and)144 698.4 Q F1<ad50>3.23 E F0 .73
-(print the hashed v)3.23 F .731
-(alue, which is not necessarily the \214le that appears \214rst in)-.25
-F F3 -.666(PA)3.231 G(TH)-.189 E F4(.)A F0 .731(If the)5.231 F F1<ad61>
-144 710.4 Q F0 .824(option is used,)3.324 F F1(type)3.324 E F0 .824
-(prints all of the places that contain an e)3.324 F -.15(xe)-.15 G .823
-(cutable named).15 F F2(name)3.683 E F0 5.823(.T).18 G .823(his in-)
--5.823 F 1.176(cludes aliases and functions, if and only if the)144
-722.4 R F1<ad70>3.676 E F0 1.176(option is not also used.)3.676 F 1.177
-(The table of hashed)6.176 F(GNU Bash 5.1)72 768 Q(2020 October 29)
-141.235 E(78)190.395 E 0 Cg EP
-%%Page: 79 79
+(cuted with the).15 F F2(.)2.68 E F0(or)2.68 E F2(sour)2.68 E(ce)-.18 E
+F0 -.2(bu)2.68 G .18(iltins \214nishes).2 F(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(81)185.115 E 0 Cg EP
+%%Page: 82 82
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 1.223
-(commands is not consulted when using)144 84 R/F1 10/Times-Bold@0 SF
-<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F1<ad66>3.723 E F0 1.223
-(option suppresses shell function lookup, as)3.723 F .325(with the)144
-96 R F1(command)2.825 E F0 -.2(bu)2.825 G(iltin.).2 E F1(type)5.325 E F0
-.325(returns true if all of the ar)2.825 F .326(guments are found, f)
--.18 F .326(alse if an)-.1 F 2.826(ya)-.15 G .326(re not)-2.826 F
-(found.)144 108 Q F1(ulimit)108 124.8 Q F0([)2.5 E F1(\255HS)A F0(])A F1
-<ad61>2.5 E(ulimit)108 136.8 Q F0([)2.5 E F1(\255HS)A F0 2.5(][)C F1
-(\255bcde\214klmnpqrstuvxPR)-2.5 E(T)-.4 E F0([)2.5 E/F2 10
-/Times-Italic@0 SF(limit)A F0(]])A(Pro)144 148.8 Q .244(vides control o)
--.15 F -.15(ve)-.15 G 2.744(rt).15 G .244(he resources a)-2.744 F -.25
-(va)-.2 G .244
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E -.15(exe)144 84 S
+(cuting.).15 E .96(If a)144 102 R/F1 10/Times-Italic@0 SF(sigspec)3.8 E
+F0(is)3.77 E/F2 9/Times-Bold@0 SF(ERR)3.46 E/F3 9/Times-Roman@0 SF(,)A
+F0 .96(the command)3.21 F F1(ar)3.791 E(g)-.37 E F0 .961(is e)3.681 F
+-.15(xe)-.15 G .961(cuted whene).15 F -.15(ve)-.25 G 3.461(rap).15 G
+.961(ipeline \(which may consist of a)-3.461 F .185(single simple comma\
+nd\), a list, or a compound command returns a non\255zero e)144 114 R
+.184(xit status, subject to)-.15 F .451(the follo)144 126 R .451
+(wing conditions.)-.25 F(The)5.451 E F2(ERR)2.951 E F0 .451
+(trap is not e)2.701 F -.15(xe)-.15 G .451(cuted if the f).15 F .452
+(ailed command is part of the com-)-.1 F .388
+(mand list immediately follo)144 138 R .388(wing a)-.25 F/F4 10
+/Times-Bold@0 SF(while)2.888 E F0(or)2.888 E F4(until)2.888 E F0 -.1(ke)
+2.888 G(yw)-.05 E .388(ord, part of the test in an)-.1 F F1(if)2.897 E
+F0 .387(statement, part)4.847 F .777(of a command e)144 150 R -.15(xe)
+-.15 G .778(cuted in a).15 F F4(&&)3.278 E F0(or)3.278 E F4(||)3.278 E
+F0 .778(list e)3.278 F .778(xcept the command follo)-.15 F .778
+(wing the \214nal)-.25 F F4(&&)3.278 E F0(or)3.278 E F4(||)3.278 E F0
+3.278(,a)C -.15(ny)-3.278 G 1.28(command in a pipeline b)144 162 R 1.28
+(ut the last, or if the command')-.2 F 3.78(sr)-.55 G 1.28(eturn v)-3.78
+F 1.28(alue is being in)-.25 F -.15(ve)-.4 G 1.28(rted using).15 F F4(!)
+3.78 E F0(.)A(These are the same conditions obe)144 174 Q(yed by the)
+-.15 E F4(err)2.5 E(exit)-.18 E F0(\()2.5 E F4<ad65>A F0 2.5(\)o)C
+(ption.)-2.5 E .132
+(Signals ignored upon entry to the shell cannot be trapped or reset.)144
+192 R -.35(Tr)5.133 G .133(apped signals that are not be-).35 F .117
+(ing ignored are reset to their original v)144 204 R .117
+(alues in a subshell or subshell en)-.25 F .117
+(vironment when one is cre-)-.4 F 2.5(ated. The)144 216 R
+(return status is f)2.5 E(alse if an)-.1 E(y)-.15 E F1(sigspec)2.84 E F0
+(is in)2.81 E -.25(va)-.4 G(lid; otherwise).25 E F4(trap)2.5 E F0
+(returns true.)2.5 E F4(type)108 232.8 Q F0([)2.5 E F4(\255aftpP)A F0(])
+A F1(name)2.5 E F0([)2.5 E F1(name)A F0(...])2.5 E -.4(Wi)144 244.8 S
+.173(th no options, indicate ho).4 F 2.673(we)-.25 G(ach)-2.673 E F1
+(name)3.033 E F0 -.1(wo)2.853 G .174
+(uld be interpreted if used as a command name.).1 F .174(If the)5.174 F
+F4<ad74>144 256.8 Q F0 .715(option is used,)3.215 F F4(type)3.215 E F0
+.715(prints a string which is one of)3.215 F F1(alias)3.545 E F0(,).27 E
+F1 -.1(ke)3.215 G(ywor)-.2 E(d)-.37 E F0(,).77 E F1(function)5.185 E F0
+(,).24 E F1 -.2(bu)3.215 G(iltin).2 E F0 3.215(,o).24 G(r)-3.215 E F1
+(\214le)5.125 E F0(if)3.395 E F1(name)144.36 268.8 Q F0 .086
+(is an alias, shell reserv)2.766 F .086(ed w)-.15 F .086
+(ord, function, b)-.1 F .087(uiltin, or disk \214le, respecti)-.2 F -.15
+(ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F1
+(name)2.947 E F0 .087(is not)2.767 F .119
+(found, then nothing is printed, and an e)144 280.8 R .118
+(xit status of f)-.15 F .118(alse is returned.)-.1 F .118(If the)5.118 F
+F4<ad70>2.618 E F0 .118(option is used,)2.618 F F4(type)2.618 E F0 .855
+(either returns the name of the disk \214le that w)144 292.8 R .855
+(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F1(name)3.715 E F0
+.855(were speci\214ed as a com-)3.535 F .529(mand name, or nothing if)
+144 304.8 R/F5 10/Courier@0 SF .528(type -t name)3.028 F F0 -.1(wo)3.028
+G .528(uld not return).1 F F1(\214le)4.938 E F0 5.528(.T).18 G(he)-5.528
+E F4<ad50>3.028 E F0 .528(option forces a)3.028 F F2 -.666(PA)3.028 G
+(TH)-.189 E F0 .006(search for each)144 316.8 R F1(name)2.506 E F0 2.506
+(,e)C -.15(ve)-2.756 G 2.506(ni).15 G(f)-2.506 E F5 .007(type -t name)
+2.506 F F0 -.1(wo)2.507 G .007(uld not return).1 F F1(\214le)4.417 E F0
+5.007(.I).18 G 2.507(fac)-5.007 G .007(ommand is hashed,)-2.507 F F4
+<ad70>2.507 E F0(and)144 328.8 Q F4<ad50>3.231 E F0 .731
+(print the hashed v)3.231 F .73
+(alue, which is not necessarily the \214le that appears \214rst in)-.25
+F F2 -.666(PA)3.23 G(TH)-.189 E F3(.)A F0 .73(If the)5.23 F F4<ad61>144
+340.8 Q F0 .823(option is used,)3.323 F F4(type)3.323 E F0 .824
+(prints all of the places that contain an e)3.323 F -.15(xe)-.15 G .824
+(cutable named).15 F F1(name)3.684 E F0 5.824(.T).18 G .824(his in-)
+-5.824 F 1.176(cludes aliases and functions, if and only if the)144
+352.8 R F4<ad70>3.676 E F0 1.176(option is not also used.)3.676 F 1.176
+(The table of hashed)6.176 F 1.223(commands is not consulted when using)
+144 364.8 R F4<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F4<ad66>3.723 E F0
+1.223(option suppresses shell function lookup, as)3.723 F .326(with the)
+144 376.8 R F4(command)2.826 E F0 -.2(bu)2.826 G(iltin.).2 E F4(type)
+5.326 E F0 .326(returns true if all of the ar)2.826 F .325
+(guments are found, f)-.18 F .325(alse if an)-.1 F 2.825(ya)-.15 G .325
+(re not)-2.825 F(found.)144 388.8 Q F4(ulimit)108 405.6 Q F0([)2.5 E F4
+(\255HS)A F0(])A F4<ad61>2.5 E(ulimit)108 417.6 Q F0([)2.5 E F4(\255HS)A
+F0 2.5(][)C F4(\255bcde\214klmnpqrstuvxPR)-2.5 E(T)-.4 E F0([)2.5 E F1
+(limit)A F0(]])A(Pro)144 429.6 Q .243(vides control o)-.15 F -.15(ve)
+-.15 G 2.743(rt).15 G .243(he resources a)-2.743 F -.25(va)-.2 G .244
(ilable to the shell and to processes started by it, on systems).25 F
-.943(that allo)144 160.8 R 3.443(ws)-.25 G .943(uch control.)-3.443 F
-(The)5.943 E F1<ad48>3.443 E F0(and)3.443 E F1<ad53>3.444 E F0 .944
+.944(that allo)144 441.6 R 3.444(ws)-.25 G .944(uch control.)-3.444 F
+(The)5.944 E F4<ad48>3.444 E F0(and)3.444 E F4<ad53>3.444 E F0 .943
(options specify that the hard or soft limit is set for the)3.444 F(gi)
-144 172.8 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
+144 453.6 Q -.15(ve)-.25 G 2.708(nr).15 G 2.708(esource. A)-2.708 F .208
(hard limit cannot be increased by a non-root user once it is set; a so\
-ft limit may)2.709 F .425(be increased up to the v)144 184.8 R .425
-(alue of the hard limit.)-.25 F .426(If neither)5.425 F F1<ad48>2.926 E
-F0(nor)2.926 E F1<ad53>2.926 E F0 .426
-(is speci\214ed, both the soft and)2.926 F .139(hard limits are set.)144
-196.8 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
+ft limit may)2.708 F .426(be increased up to the v)144 465.6 R .426
+(alue of the hard limit.)-.25 F .425(If neither)5.426 F F4<ad48>2.925 E
+F0(nor)2.925 E F4<ad53>2.925 E F0 .425
+(is speci\214ed, both the soft and)2.925 F .139(hard limits are set.)144
+477.6 R .139(The v)5.139 F .139(alue of)-.25 F F1(limit)2.729 E F0 .139
(can be a number in the unit speci\214ed for the resource or one)3.319 F
-.741(of the special v)144 208.8 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1
-(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w)
-C .741(hich stand for the current hard limit, the current)-3.241 F .024
-(soft limit, and no limit, respecti)144 220.8 R -.15(ve)-.25 G(ly).15 E
-5.023(.I)-.65 G(f)-5.023 E F2(limit)2.613 E F0 .023
+.742(of the special v)144 489.6 R(alues)-.25 E F4(hard)3.242 E F0(,)A F4
+(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F4(unlimited)3.241 E F0 3.241(,w)
+C .741(hich stand for the current hard limit, the current)-3.241 F .023
+(soft limit, and no limit, respecti)144 501.6 R -.15(ve)-.25 G(ly).15 E
+5.023(.I)-.65 G(f)-5.023 E F1(limit)2.613 E F0 .023
(is omitted, the current v)3.203 F .023
-(alue of the soft limit of the re-)-.25 F .984
-(source is printed, unless the)144 232.8 R F1<ad48>3.484 E F0 .984
-(option is gi)3.484 F -.15(ve)-.25 G 3.484(n. When).15 F .985
+(alue of the soft limit of the re-)-.25 F .985
+(source is printed, unless the)144 513.6 R F4<ad48>3.485 E F0 .984
+(option is gi)3.485 F -.15(ve)-.25 G 3.484(n. When).15 F .984
(more than one resource is speci\214ed, the)3.484 F .7
-(limit name and unit, if appropriate, are printed before the v)144 244.8
+(limit name and unit, if appropriate, are printed before the v)144 525.6
R 3.2(alue. Other)-.25 F .7(options are interpreted as)3.2 F(follo)144
-256.8 Q(ws:)-.25 E F1<ad61>144 268.8 Q F0
-(All current limits are reported; no limits are set)180 268.8 Q F1<ad62>
-144 280.8 Q F0(The maximum sock)180 280.8 Q(et b)-.1 E(uf)-.2 E
-(fer size)-.25 E F1<ad63>144 292.8 Q F0
-(The maximum size of core \214les created)180 292.8 Q F1<ad64>144 304.8
-Q F0(The maximum size of a process')180 304.8 Q 2.5(sd)-.55 G(ata se)
--2.5 E(gment)-.15 E F1<ad65>144 316.8 Q F0
-(The maximum scheduling priority \("nice"\))180 316.8 Q F1<ad66>144
-328.8 Q F0
+537.6 Q(ws:)-.25 E F4<ad61>144 549.6 Q F0
+(All current limits are reported; no limits are set)180 549.6 Q F4<ad62>
+144 561.6 Q F0(The maximum sock)180 561.6 Q(et b)-.1 E(uf)-.2 E
+(fer size)-.25 E F4<ad63>144 573.6 Q F0
+(The maximum size of core \214les created)180 573.6 Q F4<ad64>144 585.6
+Q F0(The maximum size of a process')180 585.6 Q 2.5(sd)-.55 G(ata se)
+-2.5 E(gment)-.15 E F4<ad65>144 597.6 Q F0
+(The maximum scheduling priority \("nice"\))180 597.6 Q F4<ad66>144
+609.6 Q F0
(The maximum size of \214les written by the shell and its children)180
-328.8 Q F1<ad69>144 340.8 Q F0(The maximum number of pending signals)180
-340.8 Q F1<ad6b>144 352.8 Q F0
-(The maximum number of kqueues that may be allocated)180 352.8 Q F1
-<ad6c>144 364.8 Q F0(The maximum size that may be lock)180 364.8 Q
-(ed into memory)-.1 E F1<ad6d>144 376.8 Q F0
-(The maximum resident set size \(man)180 376.8 Q 2.5(ys)-.15 G
-(ystems do not honor this limit\))-2.5 E F1<ad6e>144 388.8 Q F0 .791(Th\
+609.6 Q F4<ad69>144 621.6 Q F0(The maximum number of pending signals)180
+621.6 Q F4<ad6b>144 633.6 Q F0
+(The maximum number of kqueues that may be allocated)180 633.6 Q F4
+<ad6c>144 645.6 Q F0(The maximum size that may be lock)180 645.6 Q
+(ed into memory)-.1 E F4<ad6d>144 657.6 Q F0
+(The maximum resident set size \(man)180 657.6 Q 2.5(ys)-.15 G
+(ystems do not honor this limit\))-2.5 E F4<ad6e>144 669.6 Q F0 .791(Th\
e maximum number of open \214le descriptors \(most systems do not allo)
-180 388.8 R 3.291(wt)-.25 G .791(his v)-3.291 F .791(alue to)-.25 F
-(be set\))180 400.8 Q F1<ad70>144 412.8 Q F0
-(The pipe size in 512-byte blocks \(this may not be set\))180 412.8 Q F1
-<ad71>144 424.8 Q F0
-(The maximum number of bytes in POSIX message queues)180 424.8 Q F1
-<ad72>144 436.8 Q F0(The maximum real-time scheduling priority)180 436.8
-Q F1<ad73>144 448.8 Q F0(The maximum stack size)180 448.8 Q F1<ad74>144
-460.8 Q F0(The maximum amount of cpu time in seconds)180 460.8 Q F1
-<ad75>144 472.8 Q F0(The maximum number of processes a)180 472.8 Q -.25
-(va)-.2 G(ilable to a single user).25 E F1<ad76>144 484.8 Q F0 .47
-(The maximum amount of virtual memory a)180 484.8 R -.25(va)-.2 G .47
-(ilable to the shell and, on some systems, to).25 F(its children)180
-496.8 Q F1<ad78>144 508.8 Q F0(The maximum number of \214le locks)180
-508.8 Q F1<ad50>144 520.8 Q F0(The maximum number of pseudoterminals)180
-520.8 Q F1<ad52>144 532.8 Q F0(The maximum time a real-time process can\
- run before blocking, in microseconds)180 532.8 Q F1<ad54>144 544.8 Q F0
-(The maximum number of threads)180 544.8 Q(If)144 561.6 Q F2(limit)3.058
-E F0 .468(is gi)3.648 F -.15(ve)-.25 G .468(n, and the).15 F F1<ad61>
-2.968 E F0 .468(option is not used,)2.968 F F2(limit)2.968 E F0 .468
-(is the ne)2.968 F 2.968(wv)-.25 G .468
-(alue of the speci\214ed resource.)-3.218 F(If)5.468 E .045
-(no option is gi)144 573.6 R -.15(ve)-.25 G .045(n, then).15 F F1<ad66>
-2.545 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045 G .045
-(lues are in 1024-byte increments, e)1.11 F .044(xcept for)-.15 F F1
-<ad74>2.544 E F0 2.544(,w)C .044(hich is)-2.544 F .67(in seconds;)144
-585.6 R F1<ad52>3.17 E F0 3.17(,w)C .67(hich is in microseconds;)-3.17 F
+180 669.6 R 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F
+(be set\))180 681.6 Q F4<ad70>144 693.6 Q F0
+(The pipe size in 512-byte blocks \(this may not be set\))180 693.6 Q F4
+<ad71>144 705.6 Q F0
+(The maximum number of bytes in POSIX message queues)180 705.6 Q F4
+<ad72>144 717.6 Q F0(The maximum real-time scheduling priority)180 717.6
+Q(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(82)185.115 E 0 Cg EP
+%%Page: 83 83
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
+SF<ad73>144 84 Q F0(The maximum stack size)180 84 Q F1<ad74>144 96 Q F0
+(The maximum amount of cpu time in seconds)180 96 Q F1<ad75>144 108 Q F0
+(The maximum number of processes a)180 108 Q -.25(va)-.2 G
+(ilable to a single user).25 E F1<ad76>144 120 Q F0 .47
+(The maximum amount of virtual memory a)180 120 R -.25(va)-.2 G .47
+(ilable to the shell and, on some systems, to).25 F(its children)180 132
+Q F1<ad78>144 144 Q F0(The maximum number of \214le locks)180 144 Q F1
+<ad50>144 156 Q F0(The maximum number of pseudoterminals)180 156 Q F1
+<ad52>144 168 Q F0(The maximum time a real-time process can run before \
+blocking, in microseconds)180 168 Q F1<ad54>144 180 Q F0
+(The maximum number of threads)180 180 Q(If)144 196.8 Q/F2 10
+/Times-Italic@0 SF(limit)3.058 E F0 .468(is gi)3.648 F -.15(ve)-.25 G
+.468(n, and the).15 F F1<ad61>2.968 E F0 .468(option is not used,)2.968
+F F2(limit)2.968 E F0 .468(is the ne)2.968 F 2.968(wv)-.25 G .468
+(alue of the speci\214ed resource.)-3.218 F(If)5.468 E .044
+(no option is gi)144 208.8 R -.15(ve)-.25 G .044(n, then).15 F F1<ad66>
+2.544 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045 G .045
+(lues are in 1024-byte increments, e)1.11 F .045(xcept for)-.15 F F1
+<ad74>2.545 E F0 2.545(,w)C .045(hich is)-2.545 F .67(in seconds;)144
+220.8 R F1<ad52>3.17 E F0 3.17(,w)C .67(hich is in microseconds;)-3.17 F
F1<ad70>3.17 E F0 3.17(,w)C .67(hich is in units of 512-byte blocks;)
-3.17 F F1<ad50>3.17 E F0(,)A F1<ad54>3.17 E F0(,)A F1<ad62>3.17 E F0(,)
-A F1<ad6b>144 597.6 Q F0(,)A F1<ad6e>3.737 E F0 3.737(,a)C(nd)-3.737 E
+A F1<ad6b>144 232.8 Q F0(,)A F1<ad6e>3.736 E F0 3.736(,a)C(nd)-3.736 E
F1<ad75>3.736 E F0 3.736(,w)C 1.236(hich are unscaled v)-3.736 F 1.236
(alues; and, when in posix mode,)-.25 F F1<ad63>3.736 E F0(and)3.736 E
-F1<ad66>3.736 E F0 3.736(,w)C 1.236(hich are in)-3.736 F .238
-(512-byte increments.)144 609.6 R .238
-(The return status is 0 unless an in)5.238 F -.25(va)-.4 G .238
+F1<ad66>3.736 E F0 3.736(,w)C 1.237(hich are in)-3.736 F .239
+(512-byte increments.)144 244.8 R .238
+(The return status is 0 unless an in)5.239 F -.25(va)-.4 G .238
(lid option or ar).25 F .238(gument is supplied, or an)-.18 F
-(error occurs while setting a ne)144 621.6 Q 2.5(wl)-.25 G(imit.)-2.5 E
-F1(umask)108 638.4 Q F0([)2.5 E F1<ad70>A F0 2.5(][)C F1<ad53>-2.5 E F0
+(error occurs while setting a ne)144 256.8 Q 2.5(wl)-.25 G(imit.)-2.5 E
+F1(umask)108 273.6 Q F0([)2.5 E F1<ad70>A F0 2.5(][)C F1<ad53>-2.5 E F0
2.5(][)C F2(mode)-2.5 E F0(])A .18
-(The user \214le-creation mask is set to)144 650.4 R F2(mode)3.06 E F0
+(The user \214le-creation mask is set to)144 285.6 R F2(mode)3.06 E F0
5.18(.I).18 G(f)-5.18 E F2(mode)3.06 E F0(be)2.86 E .18
(gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\
therwise it is interpreted as a symbolic mode mask similar to that acce\
-pted by)144 662.4 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-674.4 Q F2(mode)3.263 E F0 .382(is omitted, the current v)3.063 F .382
+pted by)144 297.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
+309.6 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
(alue of the mask is printed.)-.25 F(The)5.382 E F1<ad53>2.882 E F0 .382
(option causes the mask to be)2.882 F .547
-(printed in symbolic form; the def)144 686.4 R .547
+(printed in symbolic form; the def)144 321.6 R .547
(ault output is an octal number)-.1 F 5.547(.I)-.55 G 3.047(ft)-5.547 G
(he)-3.047 E F1<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F2
-(mode)144.38 698.4 Q F0 .552
-(is omitted, the output is in a form that may be reused as input.)3.232
-F .551(The return status is 0 if the)5.551 F(mode w)144 710.4 Q
+(mode)144.38 333.6 Q F0 .551
+(is omitted, the output is in a form that may be reused as input.)3.231
+F .552(The return status is 0 if the)5.552 F(mode w)144 345.6 Q
(as successfully changed or if no)-.1 E F2(mode)2.5 E F0(ar)2.5 E
-(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E
-(GNU Bash 5.1)72 768 Q(2020 October 29)141.235 E(79)190.395 E 0 Cg EP
-%%Page: 80 80
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(unalias)108 84 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C/F2 10
-/Times-Italic@0 SF(name)-2.5 E F0(...])2.5 E(Remo)144 96 Q 1.057 -.15
-(ve e)-.15 H(ach).15 E F2(name)3.257 E F0 .757
-(from the list of de\214ned aliases.)3.257 F(If)5.758 E F1<ad61>3.258 E
-F0 .758(is supplied, all alias de\214nitions are re-)3.258 F(mo)144 108
-Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
+(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F1
+(unalias)108 362.4 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
+(...])2.5 E(Remo)144 374.4 Q 1.058 -.15(ve e)-.15 H(ach).15 E F2(name)
+3.258 E F0 .758(from the list of de\214ned aliases.)3.258 F(If)5.758 E
+F1<ad61>3.258 E F0 .757(is supplied, all alias de\214nitions are re-)
+3.258 F(mo)144 386.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
(alue is true unless a supplied)-.25 E F2(name)2.86 E F0
-(is not a de\214ned alias.)2.68 E F1(unset)108 124.8 Q F0<5bad>2.5 E F1
+(is not a de\214ned alias.)2.68 E F1(unset)108 403.2 Q F0<5bad>2.5 E F1
(fv)A F0 2.5(][)C<ad>-2.5 E F1(n)A F0 2.5(][)C F2(name)-2.5 E F0(...])
-2.5 E -.15(Fo)144 136.8 S 3.804(re).15 G(ach)-3.804 E F2(name)4.164 E F0
-3.804(,r).18 G(emo)-3.804 E 1.604 -.15(ve t)-.15 H 1.304
+2.5 E -.15(Fo)144 415.2 S 3.803(re).15 G(ach)-3.803 E F2(name)4.163 E F0
+3.803(,r).18 G(emo)-3.803 E 1.603 -.15(ve t)-.15 H 1.303
(he corresponding v).15 F 1.303(ariable or function.)-.25 F 1.303
-(If the)6.303 F F1<ad76>3.803 E F0 1.303(option is gi)3.803 F -.15(ve)
--.25 G 1.303(n, each).15 F F2(name)144.36 148.8 Q F0 .464
-(refers to a shell v)3.144 F .464(ariable, and that v)-.25 F .464
-(ariable is remo)-.25 F -.15(ve)-.15 G 2.965(d. Read-only).15 F -.25(va)
-2.965 G .465(riables may not be un-).25 F 2.769(set. If)144 160.8 R F1
-<ad66>2.769 E F0 .269(is speci\214ed, each)2.769 F F2(name)3.129 E F0
+(If the)6.303 F F1<ad76>3.804 E F0 1.304(option is gi)3.804 F -.15(ve)
+-.25 G 1.304(n, each).15 F F2(name)144.36 427.2 Q F0 .465
+(refers to a shell v)3.145 F .464(ariable, and that v)-.25 F .464
+(ariable is remo)-.25 F -.15(ve)-.15 G 2.964(d. Read-only).15 F -.25(va)
+2.964 G .464(riables may not be un-).25 F 2.768(set. If)144 439.2 R F1
+<ad66>2.768 E F0 .269(is speci\214ed, each)2.768 F F2(name)3.129 E F0
.269(refers to a shell function, and the function de\214nition is remo)
-2.949 F -.15(ve)-.15 G(d.).15 E .403(If the)144 172.8 R F1<ad6e>2.903 E
+2.949 F -.15(ve)-.15 G(d.).15 E .404(If the)144 451.2 R F1<ad6e>2.904 E
F0 .404(option is supplied, and)2.904 F F2(name)2.904 E F0 .404(is a v)
2.904 F .404(ariable with the)-.25 F F2(namer)2.904 E(ef)-.37 E F0
-(attrib)2.904 E(ute,)-.2 E F2(name)2.904 E F0 .404(will be unset)2.904 F
-.72(rather than the v)144 184.8 R .72(ariable it references.)-.25 F F1
-<ad6e>5.72 E F0 .72(has no ef)3.22 F .719(fect if the)-.25 F F1<ad66>
-3.219 E F0 .719(option is supplied.)3.219 F .719(If no options)5.719 F
-.736(are supplied, each)144 196.8 R F2(name)3.236 E F0 .736
-(refers to a v)3.236 F .737(ariable; if there is no v)-.25 F .737
-(ariable by that name, a function with)-.25 F 1.762(that name, if an)144
-208.8 R 3.062 -.65(y, i)-.15 H 4.262(su).65 G 4.261(nset. Each)-4.262 F
+(attrib)2.904 E(ute,)-.2 E F2(name)2.904 E F0 .403(will be unset)2.904 F
+.719(rather than the v)144 463.2 R .719(ariable it references.)-.25 F F1
+<ad6e>5.719 E F0 .719(has no ef)3.219 F .719(fect if the)-.25 F F1<ad66>
+3.22 E F0 .72(option is supplied.)3.22 F .72(If no options)5.72 F .737
+(are supplied, each)144 475.2 R F2(name)3.237 E F0 .737(refers to a v)
+3.237 F .737(ariable; if there is no v)-.25 F .736
+(ariable by that name, a function with)-.25 F 1.761(that name, if an)144
+487.2 R 3.061 -.65(y, i)-.15 H 4.261(su).65 G 4.261(nset. Each)-4.261 F
1.761(unset v)4.261 F 1.761(ariable or function is remo)-.25 F -.15(ve)
--.15 G 4.261(df).15 G 1.761(rom the en)-4.261 F(vironment)-.4 E 3.171
-(passed to subsequent commands.)144 220.8 R 3.172(If an)8.172 F 5.672
+-.15 G 4.262(df).15 G 1.762(rom the en)-4.262 F(vironment)-.4 E 3.172
+(passed to subsequent commands.)144 499.2 R 3.172(If an)8.172 F 5.672
(yo)-.15 G(f)-5.672 E/F3 9/Times-Bold@0 SF -.27(BA)5.672 G(SH_ALIASES)
-.27 E/F4 9/Times-Roman@0 SF(,)A F3 -.27(BA)5.422 G(SH_ARGV0).27 E F4(,)A
-F3 -.27(BA)5.422 G(SH_CMDS).27 E F4(,)A F3 -.27(BA)144 232.8 S
-(SH_COMMAND).27 E F4(,)A F3 -.27(BA)11.482 G(SH_SUBSHELL).27 E F4(,)A F3
+.27 E/F4 9/Times-Roman@0 SF(,)A F3 -.27(BA)5.421 G(SH_ARGV0).27 E F4(,)A
+F3 -.27(BA)5.421 G(SH_CMDS).27 E F4(,)A F3 -.27(BA)144 511.2 S
+(SH_COMMAND).27 E F4(,)A F3 -.27(BA)11.481 G(SH_SUBSHELL).27 E F4(,)A F3
-.27(BA)11.482 G(SHPID).27 E F4(,)A F3(COMP_W)11.482 E(ORDBREAKS)-.09 E
-F4(,)A F3(DIRST)11.481 E -.495(AC)-.81 G(K).495 E F4(,)A F3(EPOCHREAL)
-144 244.8 Q(TIME)-.828 E F4(,)A F3(EPOCHSECONDS)2.67 E F4(,)A F3(FUNCN)
+F4(,)A F3(DIRST)11.482 E -.495(AC)-.81 G(K).495 E F4(,)A F3(EPOCHREAL)
+144 523.2 Q(TIME)-.828 E F4(,)A F3(EPOCHSECONDS)2.67 E F4(,)A F3(FUNCN)
2.67 E(AME)-.18 E F4(,)A F3(GR)2.67 E(OUPS)-.27 E F4(,)A F3(HISTCMD)2.67
E F4(,)A F3(LINENO)2.67 E F4(,)A F3(RANDOM)2.67 E F4(,)A F3(SECONDS)144
-256.8 Q F4(,)A F0(or)4.03 E F3(SRANDOM)4.28 E F0 1.779(are unset, the)
-4.03 F 4.279(yl)-.15 G 1.779(ose their special properties, e)-4.279 F
--.15(ve)-.25 G 4.279(ni).15 G 4.279(ft)-4.279 G(he)-4.279 E 4.279(ya)
--.15 G 1.779(re subse-)-4.279 F(quently reset.)144 268.8 Q(The e)5 E
-(xit status is true unless a)-.15 E F2(name)2.86 E F0(is readonly)2.68 E
-(.)-.65 E F1(wait)108 285.6 Q F0([)2.5 E F1(\255fn)A F0 2.5(][)C F1
-<ad70>-2.5 E F2(varname)2.5 E F0 2.5(][)C F2(id ...)-2.5 E F0(])A -.8
-(Wa)144 297.6 S .659(it for each speci\214ed child process and return i\
-ts termination status.).8 F(Each)5.659 E F2(id)3.169 E F0 .659
-(may be a process)3.929 F .009
-(ID or a job speci\214cation; if a job spec is gi)144 309.6 R -.15(ve)
--.25 G .008(n, all processes in that job').15 F 2.508(sp)-.55 G .008
-(ipeline are w)-2.508 F .008(aited for)-.1 F 5.008(.I)-.55 G(f)-5.008 E
-F2(id)144.01 321.6 Q F0 .441(is not gi)3.711 F -.15(ve)-.25 G(n,).15 E
-F1(wait)2.941 E F0 -.1(wa)2.941 G .441
+535.2 Q F4(,)A F0(or)4.029 E F3(SRANDOM)4.279 E F0 1.779(are unset, the)
+4.029 F 4.279(yl)-.15 G 1.779(ose their special properties, e)-4.279 F
+-.15(ve)-.25 G 4.279(ni).15 G 4.28(ft)-4.279 G(he)-4.28 E 4.28(ya)-.15 G
+1.78(re subse-)-4.28 F(quently reset.)144 547.2 Q(The e)5 E
+(xit status is true unless a)-.15 E F2(name)2.86 E F0
+(is readonly or may not be unset.)2.68 E F1(wait)108 564 Q F0([)2.5 E F1
+(\255fn)A F0 2.5(][)C F1<ad70>-2.5 E F2(varname)2.5 E F0 2.5(][)C F2
+(id ...)-2.5 E F0(])A -.8(Wa)144 576 S .659(it for each speci\214ed chi\
+ld process and return its termination status.).8 F(Each)5.659 E F2(id)
+3.169 E F0 .658(may be a process)3.928 F .008
+(ID or a job speci\214cation; if a job spec is gi)144 588 R -.15(ve)-.25
+G .009(n, all processes in that job').15 F 2.509(sp)-.55 G .009
+(ipeline are w)-2.509 F .009(aited for)-.1 F 5.009(.I)-.55 G(f)-5.009 E
+F2(id)144.01 600 Q F0 .442(is not gi)3.712 F -.15(ve)-.25 G(n,).15 E F1
+(wait)2.942 E F0 -.1(wa)2.942 G .441
(its for all running background jobs and the last-e).1 F -.15(xe)-.15 G
-.442(cuted process substitu-).15 F .598
-(tion, if its process id is the same as)144 333.6 R F1($!)3.098 E F0
-3.098(,a)C .598(nd the return status is zero.)-3.098 F .597(If the)5.597
-F F1<ad6e>3.097 E F0 .597(option is supplied,)3.097 F F1(wait)144 345.6
-Q F0 -.1(wa)3.082 G .583(its for a single job from the list of).1 F F2
-(id)3.083 E F0 3.083(so)C 1.383 -.4(r, i)-3.083 H 3.083(fn).4 G(o)-3.083
-E F2(id)3.083 E F0 3.083(sa)C .583(re supplied, an)-3.083 F 3.083(yj)
--.15 G .583(ob, to complete and)-3.083 F .404(returns its e)144 357.6 R
-.404(xit status.)-.15 F .403(If none of the supplied ar)5.403 F .403
-(guments is a child of the shell, or if no ar)-.18 F(guments)-.18 E .572
-(are supplied and the shell has no unw)144 369.6 R .573
-(aited-for children, the e)-.1 F .573(xit status is 127.)-.15 F .573
-(If the)5.573 F F1<ad70>3.073 E F0 .573(option is)3.073 F .39
+.441(cuted process substitu-).15 F .597
+(tion, if its process id is the same as)144 612 R F1($!)3.098 E F0 3.098
+(,a)C .598(nd the return status is zero.)-3.098 F .598(If the)5.598 F F1
+<ad6e>3.098 E F0 .598(option is supplied,)3.098 F F1(wait)144 624 Q F0
+-.1(wa)3.083 G .583(its for a single job from the list of).1 F F2(id)
+3.083 E F0 3.083(so)C 1.383 -.4(r, i)-3.083 H 3.083(fn).4 G(o)-3.083 E
+F2(id)3.083 E F0 3.083(sa)C .583(re supplied, an)-3.083 F 3.083(yj)-.15
+G .582(ob, to complete and)-3.083 F .403(returns its e)144 636 R .403
+(xit status.)-.15 F .403(If none of the supplied ar)5.403 F .403
+(guments is a child of the shell, or if no ar)-.18 F(guments)-.18 E .573
+(are supplied and the shell has no unw)144 648 R .573
+(aited-for children, the e)-.1 F .573(xit status is 127.)-.15 F .572
+(If the)5.573 F F1<ad70>3.072 E F0 .572(option is)3.072 F .39
(supplied, the process or job identi\214er of the job for which the e)
-144 381.6 R .39(xit status is returned is assigned to)-.15 F .905(the v)
-144 393.6 R(ariable)-.25 E F2(varname)3.405 E F0 .905
+144 660 R .39(xit status is returned is assigned to)-.15 F .905(the v)
+144 672 R(ariable)-.25 E F2(varname)3.405 E F0 .905
(named by the option ar)3.405 F 3.405(gument. The)-.18 F -.25(va)3.405 G
.905(riable will be unset initially).25 F 3.405(,b)-.65 G(efore)-3.405 E
-(an)144 405.6 Q 3.89(ya)-.15 G 3.89(ssignment. This)-3.89 F 1.39
+(an)144 684 Q 3.89(ya)-.15 G 3.89(ssignment. This)-3.89 F 1.39
(is useful only when the)3.89 F F1<ad6e>3.89 E F0 1.39
(option is supplied.)3.89 F 1.39(Supplying the)6.39 F F1<ad66>3.89 E F0
-(option,)3.89 E .574(when job control is enabled, forces)144 417.6 R F1
+(option,)3.89 E .575(when job control is enabled, forces)144 696 R F1
(wait)3.075 E F0 .575(to w)3.075 F .575(ait for)-.1 F F2(id)3.075 E F0
-.575(to terminate before returning its status, in-)3.075 F .635
-(stead of returning when it changes status.)144 429.6 R(If)5.635 E F2
-(id)3.145 E F0 .635(speci\214es a non-e)3.905 F .635
-(xistent process or job, the return)-.15 F(status is 127.)144 441.6 Q
-(Otherwise, the return status is the e)5 E
-(xit status of the last process or job w)-.15 E(aited for)-.1 E(.)-.55 E
-/F5 10.95/Times-Bold@0 SF(SHELL COMP)72 458.4 Q -1.04(AT)-.81 G
-(IBILITY MODE)1.04 E F0 .911
-(Bash-4.0 introduced the concept of a `shell compatibility le)108 470.4
-R -.15(ve)-.25 G .912(l', speci\214ed as a set of options to the shopt)
-.15 F -.2(bu)108 482.4 S(iltin).2 E F1(compat31)3.378 E F0(,)A F1
-(compat32)3.378 E F0(,)A F1(compat40)3.378 E F0(,)A F1(compat41)3.378 E
-F0 3.378(,a)C .878(nd so on\).)-3.378 F .877
-(There is only one current compatibility)5.878 F(le)108 494.4 Q -.15(ve)
--.25 G 3.253(l-).15 G 3.253(-e)-3.253 G .753(ach option is mutually e)
--3.253 F(xclusi)-.15 E -.15(ve)-.25 G 5.753(.T).15 G .753
-(he compatibility le)-5.753 F -.15(ve)-.25 G 3.254(li).15 G 3.254(si)
--3.254 G .754(ntended to allo)-3.254 F 3.254(wu)-.25 G .754
-(sers to select be-)-3.254 F(ha)108 506.4 Q 1.084(vior from pre)-.2 F
-1.084(vious v)-.25 F 1.083(ersions that is incompatible with ne)-.15 F
-1.083(wer v)-.25 F 1.083(ersions while the)-.15 F 3.583(ym)-.15 G 1.083
-(igrate scripts to use)-3.583 F(current features and beha)108 518.4 Q
-(vior)-.2 E 2.5(.I)-.55 G(t')-2.5 E 2.5(si)-.55 G
-(ntended to be a temporary solution.)-2.5 E 1.456
-(This section does not mention beha)108 535.2 R 1.457
-(vior that is standard for a particular v)-.2 F 1.457
-(ersion \(e.g., setting)-.15 F F1(compat32)3.957 E F0 .887
-(means that quoting the rhs of the re)108 547.2 R(ge)-.15 E .886
-(xp matching operator quotes special re)-.15 F(ge)-.15 E .886
-(xp characters in the w)-.15 F(ord,)-.1 E(which is def)108 559.2 Q
-(ault beha)-.1 E(vior in bash-3.2 and abo)-.2 E -.15(ve)-.15 G(\).).15 E
-.522(If a user enables, say)108 576 R(,)-.65 E F1(compat32)3.023 E F0
-3.023(,i)C 3.023(tm)-3.023 G .523(ay af)-3.023 F .523(fect the beha)-.25
-F .523(vior of other compatibility le)-.2 F -.15(ve)-.25 G .523
-(ls up to and includ-).15 F .26(ing the current compatibility le)108 588
-R -.15(ve)-.25 G 2.76(l. The).15 F .259
-(idea is that each compatibility le)2.759 F -.15(ve)-.25 G 2.759(lc).15
-G .259(ontrols beha)-2.759 F .259(vior that changed)-.2 F 1.645
-(in that v)108 600 R 1.646(ersion of)-.15 F F1(bash)4.146 E F0 4.146(,b)
-C 1.646(ut that beha)-4.346 F 1.646(vior may ha)-.2 F 1.946 -.15(ve b)
--.2 H 1.646(een present in earlier v).15 F 4.146(ersions. F)-.15 F 1.646
-(or instance, the)-.15 F .761
-(change to use locale-based comparisons with the)108 612 R F1([[)3.261 E
-F0 .76(command came in bash-4.1, and earlier v)3.261 F .76(ersions used)
--.15 F 1.904(ASCII-based comparisons, so enabling)108 624 R F1(compat32)
-4.404 E F0 1.905(will enable ASCII-based comparisons as well.)4.404 F
-(That)6.905 E .296(granularity may not be suf)108 636 R .296
-(\214cient for all uses, and as a result users should emplo)-.25 F 2.796
-(yc)-.1 G .295(ompatibility le)-2.796 F -.15(ve)-.25 G .295(ls care-).15
-F(fully)108 648 Q 5(.R)-.65 G(ead the documentation for a particular fe\
-ature to \214nd out the current beha)-5 E(vior)-.2 E(.)-.55 E .531
-(Bash-4.3 introduced a ne)108 664.8 R 3.031(ws)-.25 G .531(hell v)-3.031
-F(ariable:)-.25 E F3 -.27(BA)3.031 G(SH_COMP).27 E -.855(AT)-.666 G F4
-(.).855 E F0 .531(The v)5.031 F .531(alue assigned to this v)-.25 F .532
-(ariable \(a decimal)-.25 F -.15(ve)108 676.8 S .108(rsion number lik)
-.15 F 2.608(e4)-.1 G .108(.2, or an inte)-2.608 F .108
-(ger corresponding to the)-.15 F F1(compat)2.607 E F2(NN)A F0 .107
-(option, lik)2.607 F 2.607(e4)-.1 G .107(2\) determines the com-)-2.607
-F(patibility le)108 688.8 Q -.15(ve)-.25 G(l.).15 E .387
-(Starting with bash-4.4, Bash has be)108 705.6 R .388
-(gun deprecating older compatibility le)-.15 F -.15(ve)-.25 G 2.888
-(ls. Ev).15 F(entually)-.15 E 2.888(,t)-.65 G .388(he options will)
--2.888 F(be remo)108 717.6 Q -.15(ve)-.15 G 2.5(di).15 G 2.5(nf)-2.5 G
--.2(avo)-2.6 G 2.5(ro).2 G(f)-2.5 E F3 -.27(BA)2.5 G(SH_COMP).27 E -.855
-(AT)-.666 G F4(.).855 E F0(GNU Bash 5.1)72 768 Q(2020 October 29)141.235
-E(80)190.395 E 0 Cg EP
-%%Page: 81 81
+.574(to terminate before returning its status, in-)3.075 F .635
+(stead of returning when it changes status.)144 708 R(If)5.635 E F2(id)
+3.145 E F0 .635(speci\214es a non-e)3.905 F .635
+(xistent process or job, the return)-.15 F 1.694(status is 127.)144 720
+R(If)6.694 E F1(wait)4.194 E F0 1.694(is interrupted by a signal, the r\
+eturn status will be greater than 128, as)4.194 F(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(83)185.115 E 0 Cg EP
+%%Page: 84 84
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E 1.164
-(Bash-5.0 is the \214nal v)108 84 R 1.164
-(ersion for which there will be an indi)-.15 F 1.163
-(vidual shopt option for the pre)-.25 F 1.163(vious v)-.25 F(ersion.)
--.15 E(Users should use)108 96 Q/F1 9/Times-Bold@0 SF -.27(BA)2.5 G
-(SH_COMP).27 E -.855(AT)-.666 G F0(on bash-5.0 and later v)3.105 E
-(ersions.)-.15 E 1.613(The follo)108 112.8 R 1.613
-(wing table describes the beha)-.25 F 1.613
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E .113
+(described under)144 84 R/F1 10/Times-Bold@0 SF(SIGN)2.613 E(ALS)-.2 E
+F0(abo)2.613 E -.15(ve)-.15 G 5.113(.O).15 G .113
+(therwise, the return status is the e)-5.113 F .114
+(xit status of the last process)-.15 F(or job w)144 96 Q(aited for)-.1 E
+(.)-.55 E/F2 10.95/Times-Bold@0 SF(SHELL COMP)72 112.8 Q -1.04(AT)-.81 G
+(IBILITY MODE)1.04 E F0 1.355(Bash-4.0 introduced the concept of a)108
+124.8 R/F3 10/Times-Italic@0 SF 1.355(shell compatibility le)3.855 F
+(vel)-.15 E F0 3.855(,s)C 1.354
+(peci\214ed as a set of options to the shopt)-3.855 F -.2(bu)108 136.8 S
+.398(iltin \().2 F F1(compat31)2.898 E F0(,)A F1(compat32)2.898 E F0(,)A
+F1(compat40)2.898 E F0(,)A F1(compat41)2.898 E F0 2.898(,a)C .399
+(nd so on\).)-2.898 F .399(There is only one current compatibility)5.399
+F(le)108 148.8 Q -.15(ve)-.25 G 3.254(l-).15 G 3.254(-e)-3.254 G .754
+(ach option is mutually e)-3.254 F(xclusi)-.15 E -.15(ve)-.25 G 5.754
+(.T).15 G .754(he compatibility le)-5.754 F -.15(ve)-.25 G 3.253(li).15
+G 3.253(si)-3.253 G .753(ntended to allo)-3.253 F 3.253(wu)-.25 G .753
+(sers to select be-)-3.253 F(ha)108 160.8 Q 1.083(vior from pre)-.2 F
+1.083(vious v)-.25 F 1.083(ersions that is incompatible with ne)-.15 F
+1.083(wer v)-.25 F 1.083(ersions while the)-.15 F 3.584(ym)-.15 G 1.084
+(igrate scripts to use)-3.584 F(current features and beha)108 172.8 Q
+(vior)-.2 E 2.5(.I)-.55 G(t')-2.5 E 2.5(si)-.55 G
+(ntended to be a temporary solution.)-2.5 E 1.457
+(This section does not mention beha)108 189.6 R 1.457
+(vior that is standard for a particular v)-.2 F 1.456
+(ersion \(e.g., setting)-.15 F F1(compat32)3.956 E F0 .886
+(means that quoting the rhs of the re)108 201.6 R(ge)-.15 E .886
+(xp matching operator quotes special re)-.15 F(ge)-.15 E .887
+(xp characters in the w)-.15 F(ord,)-.1 E(which is def)108 213.6 Q
+(ault beha)-.1 E(vior in bash-3.2 and subsequent v)-.2 E(ersions\).)-.15
+E .523(If a user enables, say)108 230.4 R(,)-.65 E F1(compat32)3.023 E
+F0 3.023(,i)C 3.023(tm)-3.023 G .523(ay af)-3.023 F .523(fect the beha)
+-.25 F .523(vior of other compatibility le)-.2 F -.15(ve)-.25 G .522
+(ls up to and includ-).15 F .259(ing the current compatibility le)108
+242.4 R -.15(ve)-.25 G 2.759(l. The).15 F .259
+(idea is that each compatibility le)2.759 F -.15(ve)-.25 G 2.76(lc).15 G
+.26(ontrols beha)-2.76 F .26(vior that changed)-.2 F 1.646(in that v)108
+254.4 R 1.646(ersion of)-.15 F F1(bash)4.146 E F0 4.146(,b)C 1.646
+(ut that beha)-4.346 F 1.646(vior may ha)-.2 F 1.946 -.15(ve b)-.2 H
+1.646(een present in earlier v).15 F 4.146(ersions. F)-.15 F 1.645
+(or instance, the)-.15 F .76
+(change to use locale-based comparisons with the)108 266.4 R F1([[)3.261
+E F0 .761(command came in bash-4.1, and earlier v)3.261 F .761
+(ersions used)-.15 F 1.905(ASCII-based comparisons, so enabling)108
+278.4 R F1(compat32)4.405 E F0 1.904
+(will enable ASCII-based comparisons as well.)4.405 F(That)6.904 E .295
+(granularity may not be suf)108 290.4 R .296
+(\214cient for all uses, and as a result users should emplo)-.25 F 2.796
+(yc)-.1 G .296(ompatibility le)-2.796 F -.15(ve)-.25 G .296(ls care-).15
+F(fully)108 302.4 Q 5(.R)-.65 G(ead the documentation for a particular \
+feature to \214nd out the current beha)-5 E(vior)-.2 E(.)-.55 E .532
+(Bash-4.3 introduced a ne)108 319.2 R 3.032(ws)-.25 G .531(hell v)-3.032
+F(ariable:)-.25 E/F4 9/Times-Bold@0 SF -.27(BA)3.031 G(SH_COMP).27 E
+-.855(AT)-.666 G/F5 9/Times-Roman@0 SF(.).855 E F0 .531(The v)5.031 F
+.531(alue assigned to this v)-.25 F .531(ariable \(a decimal)-.25 F -.15
+(ve)108 331.2 S .107(rsion number lik).15 F 2.607(e4)-.1 G .107
+(.2, or an inte)-2.607 F .107(ger corresponding to the)-.15 F F1(compat)
+2.608 E F3(NN)A F0 .108(option, lik)2.608 F 2.608(e4)-.1 G .108
+(2\) determines the com-)-2.608 F(patibility le)108 343.2 Q -.15(ve)-.25
+G(l.).15 E .388(Starting with bash-4.4, Bash has be)108 360 R .388
+(gun deprecating older compatibility le)-.15 F -.15(ve)-.25 G 2.887
+(ls. Ev).15 F(entually)-.15 E 2.887(,t)-.65 G .387(he options will)
+-2.887 F(be remo)108 372 Q -.15(ve)-.15 G 2.5(di).15 G 2.5(nf)-2.5 G -.2
+(avo)-2.6 G 2.5(ro).2 G(f)-2.5 E F4 -.27(BA)2.5 G(SH_COMP).27 E -.855
+(AT)-.666 G F5(.).855 E F0 1.163(Bash-5.0 is the \214nal v)108 388.8 R
+1.163(ersion for which there will be an indi)-.15 F 1.164
+(vidual shopt option for the pre)-.25 F 1.164(vious v)-.25 F(ersion.)
+-.15 E(Users should use)108 400.8 Q F4 -.27(BA)2.5 G(SH_COMP).27 E -.855
+(AT)-.666 G F0(on bash-5.0 and later v)3.105 E(ersions.)-.15 E 1.614
+(The follo)108 417.6 R 1.613(wing table describes the beha)-.25 F 1.613
(vior changes controlled by each compatibility le)-.2 F -.15(ve)-.25 G
-4.113(ls).15 G 4.114(etting. The)-4.113 F/F2 10/Times-Bold@0 SF(compat)
-108 124.8 Q/F3 10/Times-Italic@0 SF(NN)A F0 1.186
-(tag is used as shorthand for setting the compatibility le)3.686 F -.15
-(ve)-.25 G 3.686(lt).15 G(o)-3.686 E F3(NN)3.686 E F0 1.186
-(using one of the follo)3.686 F(wing)-.25 E 3.806(mechanisms. F)108
-136.8 R 1.306(or v)-.15 F 1.306
+4.113(ls).15 G 4.113(etting. The)-4.113 F F1(compat)108 429.6 Q F3(NN)A
+F0 1.186(tag is used as shorthand for setting the compatibility le)3.685
+F -.15(ve)-.25 G 3.686(lt).15 G(o)-3.686 E F3(NN)3.686 E F0 1.186
+(using one of the follo)3.686 F(wing)-.25 E 3.807(mechanisms. F)108
+441.6 R 1.307(or v)-.15 F 1.307
(ersions prior to bash-5.0, the compatibility le)-.15 F -.15(ve)-.25 G
-3.807(lm).15 G 1.307(ay be set using the corresponding)-3.807 F F2
-(compat)108 148.8 Q F3(NN)A F0 .502(shopt option.)3.002 F -.15(Fo)5.502
+3.806(lm).15 G 1.306(ay be set using the corresponding)-3.806 F F1
+(compat)108 453.6 Q F3(NN)A F0 .502(shopt option.)3.002 F -.15(Fo)5.502
G 3.002(rb).15 G .502(ash-4.3 and later v)-3.002 F .502(ersions, the)
--.15 F F1 -.27(BA)3.002 G(SH_COMP).27 E -.855(AT)-.666 G F0 -.25(va)
+-.15 F F4 -.27(BA)3.002 G(SH_COMP).27 E -.855(AT)-.666 G F0 -.25(va)
3.607 G .502(riable is preferred, and it).25 F
-(is required for bash-5.1 and later v)108 160.8 Q(ersions.)-.15 E F2
-(compat31)108 177.6 Q F0<83>144 189.6 Q(quoting the rhs of the)180 189.6
-Q F2([[)2.5 E F0(command')2.5 E 2.5(sr)-.55 G -.15(eg)-2.5 G -.15(ex).15
+(is required for bash-5.1 and later v)108 465.6 Q(ersions.)-.15 E F1
+(compat31)108 482.4 Q F0<83>144 494.4 Q(quoting the rhs of the)180 494.4
+Q F1([[)2.5 E F0(command')2.5 E 2.5(sr)-.55 G -.15(eg)-2.5 G -.15(ex).15
G 2.5(pm).15 G(atching operator \(=~\) has no special ef)-2.5 E(fect)
--.25 E F2(compat32)108 206.4 Q F0<83>144 218.4 Q .35
-(interrupting a command list such as "a ; b ; c" causes the e)180 218.4
-R -.15(xe)-.15 G .35(cution of the ne).15 F .35(xt command)-.15 F .018
-(in the list \(in bash-4.0 and later v)180 230.4 R .018
-(ersions, the shell acts as if it recei)-.15 F -.15(ve)-.25 G 2.517(dt)
-.15 G .017(he interrupt, so in-)-2.517 F
-(terrupting one command in a list aborts the e)180 242.4 Q -.15(xe)-.15
-G(cution of the entire list\)).15 E F2(compat40)108 259.2 Q F0<83>144
-271.2 Q(the)180 271.2 Q F2(<)2.673 E F0(and)2.673 E F2(>)2.673 E F0 .173
-(operators to the)2.673 F F2([[)2.673 E F0 .173
+-.25 E F1(compat32)108 511.2 Q F0<83>144 523.2 Q .35
+(interrupting a command list such as "a ; b ; c" causes the e)180 523.2
+R -.15(xe)-.15 G .35(cution of the ne).15 F .35(xt command)-.15 F .017
+(in the list \(in bash-4.0 and later v)180 535.2 R .018
+(ersions, the shell acts as if it recei)-.15 F -.15(ve)-.25 G 2.518(dt)
+.15 G .018(he interrupt, so in-)-2.518 F
+(terrupting one command in a list aborts the e)180 547.2 Q -.15(xe)-.15
+G(cution of the entire list\)).15 E F1(compat40)108 564 Q F0<83>144 576
+Q(the)180 576 Q F1(<)2.674 E F0(and)2.674 E F1(>)2.673 E F0 .173
+(operators to the)2.673 F F1([[)2.673 E F0 .173
(command do not consider the current locale when compar)2.673 F(-)-.2 E
-.068(ing strings; the)180 283.2 R 2.568(yu)-.15 G .068
-(se ASCII ordering.)-2.568 F .068(Bash v)5.068 F .067
-(ersions prior to bash-4.1 use ASCII collation)-.15 F(and)180 295.2 Q F3
-(str)4.742 E(cmp)-.37 E F0 1.902
-(\(3\); bash-4.1 and later use the current locale').19 F 4.403(sc)-.55 G
-1.903(ollation sequence and)-4.403 F F3(str)4.743 E(-)-.2 E(coll)180
-307.2 Q F0(\(3\).).51 E F2(compat41)108 324 Q F0<83>144 336 Q(in)180 336
-Q F3(posix)3.79 E F0(mode,)3.79 E F2(time)3.79 E F0 1.29(may be follo)
+.067(ing strings; the)180 588 R 2.567(yu)-.15 G .067(se ASCII ordering.)
+-2.567 F .068(Bash v)5.068 F .068
+(ersions prior to bash-4.1 use ASCII collation)-.15 F(and)180 600 Q F3
+(str)4.743 E(cmp)-.37 E F0 1.903
+(\(3\); bash-4.1 and later use the current locale').19 F 4.402(sc)-.55 G
+1.902(ollation sequence and)-4.402 F F3(str)4.742 E(-)-.2 E(coll)180 612
+Q F0(\(3\).).51 E F1(compat41)108 628.8 Q F0<83>144 640.8 Q(in)180 640.8
+Q F3(posix)3.79 E F0(mode,)3.79 E F1(time)3.79 E F0 1.29(may be follo)
3.79 F 1.29(wed by options and still be recognized as a reserv)-.25 F
-(ed)-.15 E -.1(wo)180 348 S(rd \(this is POSIX interpretation 267\)).1 E
-<83>144 360 Q(in)180 360 Q F3(posix)2.708 E F0 .208
-(mode, the parser requires that an e)2.708 F -.15(ve)-.25 G 2.708(nn).15
-G .208(umber of single quotes occur in the)-2.708 F F3(wor)2.709 E(d)
--.37 E F0 .282(portion of a double-quoted parameter e)180 372 R .282
-(xpansion and treats them specially)-.15 F 2.781(,s)-.65 G 2.781(ot)
--2.781 G .281(hat charac-)-2.781 F(ters within the single quotes are co\
-nsidered quoted \(this is POSIX interpretation 221\))180 384 Q F2
-(compat42)108 400.8 Q F0<83>144 412.8 Q 1.055(the replacement string in\
- double-quoted pattern substitution does not under)180 412.8 R 1.056
-(go quote re-)-.18 F(mo)180 424.8 Q -.25(va)-.15 G(l, as it does in v)
-.25 E(ersions after bash-4.2)-.15 E<83>144 436.8 Q .021
-(in posix mode, single quotes are considered special when e)180 436.8 R
-.021(xpanding the)-.15 F F3(wor)2.52 E(d)-.37 E F0 .02(portion of a)2.52
-F .017(double-quoted parameter e)180 448.8 R .017
+(ed)-.15 E -.1(wo)180 652.8 S(rd \(this is POSIX interpretation 267\)).1
+E<83>144 664.8 Q(in)180 664.8 Q F3(posix)2.709 E F0 .208
+(mode, the parser requires that an e)2.709 F -.15(ve)-.25 G 2.708(nn).15
+G .208(umber of single quotes occur in the)-2.708 F F3(wor)2.708 E(d)
+-.37 E F0 .281(portion of a double-quoted parameter e)180 676.8 R .282
+(xpansion and treats them specially)-.15 F 2.782(,s)-.65 G 2.782(ot)
+-2.782 G .282(hat charac-)-2.782 F(ters within the single quotes are co\
+nsidered quoted \(this is POSIX interpretation 221\))180 688.8 Q F1
+(compat42)108 705.6 Q F0<83>144 717.6 Q 1.056(the replacement string in\
+ double-quoted pattern substitution does not under)180 717.6 R 1.055
+(go quote re-)-.18 F(mo)180 729.6 Q -.25(va)-.15 G(l, as it does in v)
+.25 E(ersions after bash-4.2)-.15 E(GNU Bash 5.2)72 768 Q
+(2022 September 19)135.955 E(84)185.115 E 0 Cg EP
+%%Page: 85 85
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E<83>144 84 Q .021
+(in posix mode, single quotes are considered special when e)180 84 R
+.021(xpanding the)-.15 F/F1 10/Times-Italic@0 SF(wor)2.521 E(d)-.37 E F0
+.021(portion of a)2.521 F .018(double-quoted parameter e)180 96 R .017
(xpansion and can be used to quote a closing brace or other spe-)-.15 F
-.999(cial character \(this is part of POSIX interpretation 221\); in la\
-ter v)180 460.8 R .998(ersions, single quotes)-.15 F
-(are not special within double-quoted w)180 472.8 Q(ord e)-.1 E
-(xpansions)-.15 E F2(compat43)108 489.6 Q F0<83>144 501.6 Q 1.07
-(the shell does not print a w)180 501.6 R 1.071
-(arning message if an attempt is made to use a quoted com-)-.1 F .249
-(pound assignment as an ar)180 513.6 R .248
-(gument to declare \(declare -a foo='\(1 2\)'\). Later v)-.18 F .248
-(ersions w)-.15 F(arn)-.1 E(that this usage is deprecated)180 525.6 Q
-<83>144 537.6 Q -.1(wo)180 537.6 S .5(rd e).1 F .501
-(xpansion errors are considered non-f)-.15 F .501
-(atal errors that cause the current command to)-.1 F -.1(fa)180 549.6 S
+.998(cial character \(this is part of POSIX interpretation 221\); in la\
+ter v)180 108 R .999(ersions, single quotes)-.15 F
+(are not special within double-quoted w)180 120 Q(ord e)-.1 E(xpansions)
+-.15 E/F2 10/Times-Bold@0 SF(compat43)108 136.8 Q F0<83>144 148.8 Q
+1.071(the shell does not print a w)180 148.8 R 1.07
+(arning message if an attempt is made to use a quoted com-)-.1 F .71
+(pound assignment as an ar)180 160.8 R .711
+(gument to declare \(e.g., declare -a foo=\010\(1 2\)\010\). Later v)
+-.18 F(ersions)-.15 E -.1(wa)180 172.8 S
+(rn that this usage is deprecated).1 E<83>144 184.8 Q -.1(wo)180 184.8 S
+.501(rd e).1 F .501(xpansion errors are considered non-f)-.15 F .501
+(atal errors that cause the current command to)-.1 F -.1(fa)180 196.8 S
.605(il, e).1 F -.15(ve)-.25 G 3.105(ni).15 G 3.105(np)-3.105 G .605
(osix mode \(the def)-3.105 F .605(ault beha)-.1 F .605(vior is to mak)
-.2 F 3.105(et)-.1 G .605(hem f)-3.105 F .605
-(atal errors that cause the)-.1 F(shell to e)180 561.6 Q(xit\))-.15 E
-<83>144 573.6 Q .354(when e)180 573.6 R -.15(xe)-.15 G .354
-(cuting a shell function, the loop state \(while/until/etc.\)).15 F .355
-(is not reset, so)5.354 F F2(br)2.855 E(eak)-.18 E F0(or)2.855 E F2
-(continue)180 585.6 Q F0 .052
+(atal errors that cause the)-.1 F(shell to e)180 208.8 Q(xit\))-.15 E
+<83>144 220.8 Q .355(when e)180 220.8 R -.15(xe)-.15 G .354
+(cuting a shell function, the loop state \(while/until/etc.\)).15 F .354
+(is not reset, so)5.354 F F2(br)2.854 E(eak)-.18 E F0(or)2.854 E F2
+(continue)180 232.8 Q F0 .052
(in that function will break or continue loops in the calling conte)
-2.553 F .052(xt. Bash-4.4 and)-.15 F(later reset the loop state to pre)
-180 597.6 Q -.15(ve)-.25 G(nt this).15 E F2(compat44)108 614.4 Q F0<83>
-144 626.4 Q .719(the shell sets up the v)180 626.4 R .719(alues used by)
--.25 F F1 -.27(BA)3.219 G(SH_ARGV).27 E F0(and)2.969 E F1 -.27(BA)3.219
-G(SH_ARGC).27 E F0 .719(so the)2.969 F 3.219(yc)-.15 G .719(an e)-3.219
-F(xpand)-.15 E(to the shell')180 638.4 Q 2.5(sp)-.55 G
+2.552 F .053(xt. Bash-4.4 and)-.15 F(later reset the loop state to pre)
+180 244.8 Q -.15(ve)-.25 G(nt this).15 E F2(compat44)108 261.6 Q F0<83>
+144 273.6 Q .719(the shell sets up the v)180 273.6 R .719(alues used by)
+-.25 F/F3 9/Times-Bold@0 SF -.27(BA)3.219 G(SH_ARGV).27 E F0(and)2.969 E
+F3 -.27(BA)3.219 G(SH_ARGC).27 E F0 .719(so the)2.969 F 3.218(yc)-.15 G
+.718(an e)-3.218 F(xpand)-.15 E(to the shell')180 285.6 Q 2.5(sp)-.55 G
(ositional parameters e)-2.5 E -.15(ve)-.25 G 2.5(ni).15 G 2.5(fe)-2.5 G
-(xtended deb)-2.65 E(ugging mode is not enabled)-.2 E<83>144 650.4 Q
-2.635(as)180 650.4 S .135(ubshell inherits loops from its parent conte)
--2.635 F .135(xt, so)-.15 F F2(br)2.635 E(eak)-.18 E F0(or)2.635 E F2
-(continue)2.634 E F0 .134(will cause the sub-)2.634 F(shell to e)180
-662.4 Q 2.5(xit. Bash-5.0)-.15 F(and later reset the loop state to pre)
-2.5 E -.15(ve)-.25 G(nt the e).15 E(xit)-.15 E<83>144 674.4 Q -.25(va)
-180 674.4 S .618(riable assignments preceding b).25 F .618(uiltins lik)
+(xtended deb)-2.65 E(ugging mode is not enabled)-.2 E<83>144 297.6 Q
+2.634(as)180 297.6 S .134(ubshell inherits loops from its parent conte)
+-2.634 F .135(xt, so)-.15 F F2(br)2.635 E(eak)-.18 E F0(or)2.635 E F2
+(continue)2.635 E F0 .135(will cause the sub-)2.635 F(shell to e)180
+309.6 Q 2.5(xit. Bash-5.0)-.15 F(and later reset the loop state to pre)
+2.5 E -.15(ve)-.25 G(nt the e).15 E(xit)-.15 E<83>144 321.6 Q -.25(va)
+180 321.6 S .619(riable assignments preceding b).25 F .618(uiltins lik)
-.2 F(e)-.1 E F2(export)3.118 E F0(and)3.118 E F2 -.18(re)3.118 G
-(adonly).18 E F0 .618(that set attrib)3.118 F .619(utes con-)-.2 F .12
-(tinue to af)180 686.4 R .12(fect v)-.25 F .119
-(ariables with the same name in the calling en)-.25 F .119(vironment e)
--.4 F -.15(ve)-.25 G 2.619(ni).15 G 2.619(ft)-2.619 G .119(he shell is)
--2.619 F(not in posix mode)180 698.4 Q(GNU Bash 5.1)72 768 Q
-(2020 October 29)141.235 E(81)190.395 E 0 Cg EP
-%%Page: 82 82
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10/Times-Bold@0
-SF(compat50)108 84 Q F0<83>144 96 Q 1.209(Bash-5.1 changed the w)180 96
-R(ay)-.1 E/F2 9/Times-Bold@0 SF($RANDOM)3.709 E F0 1.209
-(is generated to introduce slightly more random-)3.459 F 1.019
-(ness. If the shell compatibility le)180 108 R -.15(ve)-.25 G 3.518(li)
-.15 G 3.518(ss)-3.518 G 1.018(et to 50 or lo)-3.518 F(wer)-.25 E 3.518
-(,i)-.4 G 3.518(tr)-3.518 G -2.15 -.25(ev e)-3.518 H 1.018
-(rts to the method from).25 F .732(bash-5.0 and pre)180 120 R .732
-(vious v)-.25 F .733
+(adonly).18 E F0 .618(that set attrib)3.118 F .618(utes con-)-.2 F .119
+(tinue to af)180 333.6 R .119(fect v)-.25 F .119
+(ariables with the same name in the calling en)-.25 F .12(vironment e)
+-.4 F -.15(ve)-.25 G 2.62(ni).15 G 2.62(ft)-2.62 G .12(he shell is)-2.62
+F(not in posix mode)180 345.6 Q F2(compat50)108 362.4 Q F0<83>144 374.4
+Q 1.209(Bash-5.1 changed the w)180 374.4 R(ay)-.1 E F3($RANDOM)3.709 E
+F0 1.209(is generated to introduce slightly more random-)3.459 F 1.018
+(ness. If the shell compatibility le)180 386.4 R -.15(ve)-.25 G 3.518
+(li).15 G 3.518(ss)-3.518 G 1.018(et to 50 or lo)-3.518 F(wer)-.25 E
+3.518(,i)-.4 G 3.518(tr)-3.518 G -2.15 -.25(ev e)-3.518 H 1.019
+(rts to the method from).25 F .733(bash-5.0 and pre)180 398.4 R .733
+(vious v)-.25 F .732
(ersions, so seeding the random number generator by assigning a)-.15 F
--.25(va)180 132 S(lue to).25 E F2(RANDOM)2.5 E F0
-(will produce the same sequence as in bash-5.0)2.25 E<83>144 144 Q .696
-(If the command hash table is empty)180 144 R 3.196(,b)-.65 G .696
-(ash v)-3.196 F .695(ersions prior to bash-5.1 printed an informa-)-.15
-F 1.32(tional message to that ef)180 156 R 1.321(fect, e)-.25 F -.15(ve)
--.25 G 3.821(nw).15 G 1.321
+-.25(va)180 410.4 S(lue to).25 E F3(RANDOM)2.5 E F0
+(will produce the same sequence as in bash-5.0)2.25 E<83>144 422.4 Q
+.695(If the command hash table is empty)180 422.4 R 3.196(,b)-.65 G .696
+(ash v)-3.196 F .696(ersions prior to bash-5.1 printed an informa-)-.15
+F 1.321(tional message to that ef)180 434.4 R 1.321(fect, e)-.25 F -.15
+(ve)-.25 G 3.821(nw).15 G 1.321
(hen producing output that can be reused as input.)-3.821 F
-(Bash-5.1 suppresses that message when the)180 168 Q F1<ad6c>2.5 E F0
-(option is supplied.)2.5 E/F3 10.95/Times-Bold@0 SF(RESTRICTED SHELL)72
-184.8 Q F0(If)108 196.8 Q F1(bash)3.582 E F0 1.081
-(is started with the name)3.581 F F1(rbash)3.581 E F0 3.581(,o)C 3.581
-(rt)-3.581 G(he)-3.581 E F1<ad72>3.581 E F0 1.081
+(Bash-5.1 suppresses that message when the)180 446.4 Q F2<ad6c>2.5 E F0
+(option is supplied.)2.5 E F2(compat51)108 463.2 Q F0<83>144 475.2 Q
+(The)180 475.2 Q F2(unset)2.954 E F0 -.2(bu)2.954 G .454
+(iltin treats attempts to unset array subscripts).2 F F2(@)2.955 E F0
+(and)2.955 E F2(*)2.955 E F0(dif)2.955 E .455(ferently depending)-.25 F
+(on whether the array is inde)180 487.2 Q -.15(xe)-.15 G 2.5(do).15 G
+2.5(ra)-2.5 G(ssociati)-2.5 E -.15(ve)-.25 G 2.5(,a).15 G(nd dif)-2.5 E
+(ferently than in pre)-.25 E(vious v)-.25 E(ersions.)-.15 E/F4 10.95
+/Times-Bold@0 SF(RESTRICTED SHELL)72 504 Q F0(If)108 516 Q F2(bash)3.582
+E F0 1.081(is started with the name)3.581 F F2(rbash)3.581 E F0 3.581
+(,o)C 3.581(rt)-3.581 G(he)-3.581 E F2<ad72>3.581 E F0 1.081
(option is supplied at in)3.581 F -.2(vo)-.4 G 1.081
-(cation, the shell becomes re-).2 F 2.976(stricted. A)108 208.8 R .476
+(cation, the shell becomes re-).2 F 2.976(stricted. A)108 528 R .476
(restricted shell is used to set up an en)2.976 F .476
(vironment more controlled than the standard shell.)-.4 F .477(It be-)
-5.477 F(ha)108 220.8 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E
-F1(bash)2.5 E F0(with the e)2.5 E(xception that the follo)-.15 E
-(wing are disallo)-.25 E(wed or not performed:)-.25 E<83>108 237.6 Q
-(changing directories with)144 237.6 Q F1(cd)2.5 E F0<83>108 254.4 Q
-(setting or unsetting the v)144 254.4 Q(alues of)-.25 E F2(SHELL)2.5 E
-/F4 9/Times-Roman@0 SF(,)A F2 -.666(PA)2.25 G(TH)-.189 E F4(,)A F2
-(HISTFILE)2.25 E F4(,)A F2(ENV)2.25 E F4(,)A F0(or)2.25 E F2 -.27(BA)2.5
-G(SH_ENV).27 E F0<83>108 271.2 Q(specifying command names containing)144
-271.2 Q F1(/)2.5 E F0<83>108 288 Q(specifying a \214lename containing a)
-144 288 Q F1(/)2.5 E F0(as an ar)2.5 E(gument to the)-.18 E F1(.)2.5 E
-F0 -.2(bu)5 G(iltin command).2 E<83>108 304.8 Q
-(specifying a \214lename containing a slash as an ar)144 304.8 Q
-(gument to the)-.18 E F1(history)2.5 E F0 -.2(bu)2.5 G(iltin command).2
-E<83>108 321.6 Q .45
-(specifying a \214lename containing a slash as an ar)144 321.6 R .449
-(gument to the)-.18 F F1<ad70>2.949 E F0 .449(option to the)2.949 F F1
-(hash)2.949 E F0 -.2(bu)2.949 G .449(iltin com-).2 F(mand)144 333.6 Q
-<83>108 350.4 Q(importing function de\214nitions from the shell en)144
-350.4 Q(vironment at startup)-.4 E<83>108 367.2 Q(parsing the v)144
-367.2 Q(alue of)-.25 E F2(SHELLOPTS)2.5 E F0(from the shell en)2.25 E
-(vironment at startup)-.4 E<83>108 384 Q(redirecting output using the >\
-, >|, <>, >&, &>, and >> redirection operators)144 384 Q<83>108 400.8 Q
-(using the)144 400.8 Q F1(exec)2.5 E F0 -.2(bu)2.5 G
+5.477 F(ha)108 540 Q -.15(ve)-.2 G 2.5(si).15 G(dentically to)-2.5 E F2
+(bash)2.5 E F0(with the e)2.5 E(xception that the follo)-.15 E
+(wing are disallo)-.25 E(wed or not performed:)-.25 E<83>108 556.8 Q
+(changing directories with)144 556.8 Q F2(cd)2.5 E F0<83>108 573.6 Q
+(setting or unsetting the v)144 573.6 Q(alues of)-.25 E F3(SHELL)2.5 E
+/F5 9/Times-Roman@0 SF(,)A F3 -.666(PA)2.25 G(TH)-.189 E F5(,)A F3
+(HISTFILE)2.25 E F5(,)A F3(ENV)2.25 E F5(,)A F0(or)2.25 E F3 -.27(BA)2.5
+G(SH_ENV).27 E F0<83>108 590.4 Q(specifying command names containing)144
+590.4 Q F2(/)2.5 E F0<83>108 607.2 Q
+(specifying a \214lename containing a)144 607.2 Q F2(/)2.5 E F0
+(as an ar)2.5 E(gument to the)-.18 E F2(.)2.5 E F0 -.2(bu)5 G
+(iltin command).2 E<83>108 624 Q
+(specifying a \214lename containing a slash as an ar)144 624 Q
+(gument to the)-.18 E F2(history)2.5 E F0 -.2(bu)2.5 G(iltin command).2
+E<83>108 640.8 Q .45
+(specifying a \214lename containing a slash as an ar)144 640.8 R .449
+(gument to the)-.18 F F2<ad70>2.949 E F0 .449(option to the)2.949 F F2
+(hash)2.949 E F0 -.2(bu)2.949 G .449(iltin com-).2 F(mand)144 652.8 Q
+<83>108 669.6 Q(importing function de\214nitions from the shell en)144
+669.6 Q(vironment at startup)-.4 E<83>108 686.4 Q(parsing the v)144
+686.4 Q(alue of)-.25 E F3(SHELLOPTS)2.5 E F0(from the shell en)2.25 E
+(vironment at startup)-.4 E<83>108 703.2 Q(redirecting output using the\
+ >, >|, <>, >&, &>, and >> redirection operators)144 703.2 Q
+(GNU Bash 5.2)72 768 Q(2022 September 19)135.955 E(85)185.115 E 0 Cg EP
+%%Page: 86 86
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E<83>108 84 Q
+(using the)144 84 Q/F1 10/Times-Bold@0 SF(exec)2.5 E F0 -.2(bu)2.5 G
(iltin command to replace the shell with another command).2 E<83>108
-417.6 Q(adding or deleting b)144 417.6 Q(uiltin commands with the)-.2 E
+100.8 Q(adding or deleting b)144 100.8 Q(uiltin commands with the)-.2 E
F1<ad66>2.5 E F0(and)2.5 E F1<ad64>2.5 E F0(options to the)2.5 E F1
-(enable)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E<83>108 434.4 Q
-(using the)144 434.4 Q F1(enable)2.5 E F0 -.2(bu)2.5 G
+(enable)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E<83>108 117.6 Q
+(using the)144 117.6 Q F1(enable)2.5 E F0 -.2(bu)2.5 G
(iltin command to enable disabled shell b).2 E(uiltins)-.2 E<83>108
-451.2 Q(specifying the)144 451.2 Q F1<ad70>2.5 E F0(option to the)2.5 E
-F1(command)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E<83>108 468 Q
-(turning of)144 468 Q 2.5(fr)-.25 G(estricted mode with)-2.5 E F1
-(set +r)2.5 E F0(or)2.5 E F1(set +o r)2.5 E(estricted)-.18 E F0(.)A
-(These restrictions are enforced after an)108 484.8 Q 2.5(ys)-.15 G
+134.4 Q(specifying the)144 134.4 Q F1<ad70>2.5 E F0(option to the)2.5 E
+F1(command)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E<83>108 151.2 Q
+(turning of)144 151.2 Q 2.5(fr)-.25 G(estricted mode with)-2.5 E F1
+(set +r)2.5 E F0(or)2.5 E F1(shopt -u r)2.5 E(estricted_shell)-.18 E F0
+(.)A(These restrictions are enforced after an)108 168 Q 2.5(ys)-.15 G
(tartup \214les are read.)-2.5 E 1.566
-(When a command that is found to be a shell script is e)108 501.6 R -.15
-(xe)-.15 G 1.567(cuted \(see).15 F F2 1.567(COMMAND EXECUTION)4.067 F F0
-(abo)3.817 E -.15(ve)-.15 G(\),).15 E F1(rbash)108 513.6 Q F0(turns of)
-2.5 E 2.5(fa)-.25 G .3 -.15(ny r)-2.5 H(estrictions in the shell spa).15
-E(wned to e)-.15 E -.15(xe)-.15 G(cute the script.).15 E F3(SEE ALSO)72
-530.4 Q/F5 10/Times-Italic@0 SF(Bash Refer)108 542.4 Q(ence Manual)-.37
-E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F5
-(The Gnu Readline Libr)108 554.4 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
-(ox and Chet Rame)-.15 E(y)-.15 E F5(The Gnu History Libr)108 566.4 Q
+(When a command that is found to be a shell script is e)108 184.8 R -.15
+(xe)-.15 G 1.567(cuted \(see).15 F/F2 9/Times-Bold@0 SF 1.567
+(COMMAND EXECUTION)4.067 F F0(abo)3.817 E -.15(ve)-.15 G(\),).15 E F1
+(rbash)108 196.8 Q F0(turns of)2.5 E 2.5(fa)-.25 G .3 -.15(ny r)-2.5 H
+(estrictions in the shell spa).15 E(wned to e)-.15 E -.15(xe)-.15 G
+(cute the script.).15 E/F3 10.95/Times-Bold@0 SF(SEE ALSO)72 213.6 Q/F4
+10/Times-Italic@0 SF(Bash Refer)108 225.6 Q(ence Manual)-.37 E F0 2.5
+(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E F4
+(The Gnu Readline Libr)108 237.6 Q(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E
+(ox and Chet Rame)-.15 E(y)-.15 E F4(The Gnu History Libr)108 249.6 Q
(ary)-.15 E F0 2.5(,B)C(rian F)-2.5 E(ox and Chet Rame)-.15 E(y)-.15 E
-F5 -.8(Po)108 578.4 S(rtable Oper).8 E
+F4 -.8(Po)108 261.6 S(rtable Oper).8 E
(ating System Interface \(POSIX\) P)-.15 E(art 2: Shell and Utilities)
--.8 E F0 2.5(,I)C(EEE --)-2.5 E(http://pubs.opengroup.or)144 590.4 Q
-(g/onlinepubs/9699919799/)-.18 E(http://tiswww)108 602.4 Q
-(.case.edu/~chet/bash/POSIX -- a description of posix mode)-.65 E F5(sh)
-108 614.4 Q F0(\(1\),)A F5(ksh)2.5 E F0(\(1\),)A F5(csh)2.5 E F0(\(1\))A
-F5(emacs)108 626.4 Q F0(\(1\),)A F5(vi)2.5 E F0(\(1\))A F5 -.37(re)108
-638.4 S(adline).37 E F0(\(3\))A F3(FILES)72 655.2 Q F5(/bin/bash)109.666
-667.2 Q F0(The)144 679.2 Q F1(bash)2.5 E F0 -.15(exe)2.5 G(cutable).15 E
-F5(/etc/pr)109.666 691.2 Q(o\214le)-.45 E F0
-(The systemwide initialization \214le, e)144 703.2 Q -.15(xe)-.15 G
-(cuted for login shells).15 E(GNU Bash 5.1)72 768 Q(2020 October 29)
-141.235 E(82)190.395 E 0 Cg EP
-%%Page: 83 83
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
-(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E/F1 10
-/Times-Italic@0 SF(~/.bash_pr)109.666 84 Q(o\214le)-.45 E F0
-(The personal initialization \214le, e)144 96 Q -.15(xe)-.15 G
-(cuted for login shells).15 E F1(~/.bashr)109.666 108 Q(c)-.37 E F0
-(The indi)144 120 Q(vidual per)-.25 E(-interacti)-.2 E -.15(ve)-.25 G
-(-shell startup \214le).15 E F1(~/.bash_lo)109.666 132 Q(gout)-.1 E F0
-(The indi)144 144 Q(vidual login shell cleanup \214le, e)-.25 E -.15(xe)
--.15 G(cuted when a login shell e).15 E(xits)-.15 E F1(~/.inputr)109.666
-156 Q(c)-.37 E F0(Indi)144 168 Q(vidual)-.25 E F1 -.37(re)2.5 G(adline)
-.37 E F0(initialization \214le)2.5 E/F2 10.95/Times-Bold@0 SF -.548(AU)
-72 184.8 S(THORS).548 E F0(Brian F)108 196.8 Q(ox, Free Softw)-.15 E
-(are F)-.1 E(oundation)-.15 E(bfox@gnu.or)108 208.8 Q(g)-.18 E
-(Chet Rame)108 225.6 Q 1.3 -.65(y, C)-.15 H(ase W).65 E(estern Reserv)
--.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E(chet.rame)108
-237.6 Q(y@case.edu)-.15 E F2 -.11(BU)72 254.4 S 2.738(GR).11 G(EPOR)
--2.738 E(TS)-.438 E F0 .568(If you \214nd a b)108 266.4 R .568(ug in)-.2
-F/F3 10/Times-Bold@0 SF(bash,)3.068 E F0 .568(you should report it.)
+-.8 E F0 2.5(,I)C(EEE --)-2.5 E(http://pubs.opengroup.or)144 273.6 Q
+(g/onlinepubs/9699919799/)-.18 E(http://tiswww)108 285.6 Q
+(.case.edu/~chet/bash/POSIX -- a description of posix mode)-.65 E F4(sh)
+108 297.6 Q F0(\(1\),)A F4(ksh)2.5 E F0(\(1\),)A F4(csh)2.5 E F0(\(1\))A
+F4(emacs)108 309.6 Q F0(\(1\),)A F4(vi)2.5 E F0(\(1\))A F4 -.37(re)108
+321.6 S(adline).37 E F0(\(3\))A F3(FILES)72 338.4 Q F4(/bin/bash)109.666
+350.4 Q F0(The)144 362.4 Q F1(bash)2.5 E F0 -.15(exe)2.5 G(cutable).15 E
+F4(/etc/pr)109.666 374.4 Q(o\214le)-.45 E F0
+(The systemwide initialization \214le, e)144 386.4 Q -.15(xe)-.15 G
+(cuted for login shells).15 E F4(~/.bash_pr)109.666 398.4 Q(o\214le)-.45
+E F0(The personal initialization \214le, e)144 410.4 Q -.15(xe)-.15 G
+(cuted for login shells).15 E F4(~/.bashr)109.666 422.4 Q(c)-.37 E F0
+(The indi)144 434.4 Q(vidual per)-.25 E(-interacti)-.2 E -.15(ve)-.25 G
+(-shell startup \214le).15 E F4(~/.bash_lo)109.666 446.4 Q(gout)-.1 E F0
+(The indi)144 458.4 Q(vidual login shell cleanup \214le, e)-.25 E -.15
+(xe)-.15 G(cuted when a login shell e).15 E(xits)-.15 E F4
+(~/.bash_history)109.666 470.4 Q F0(The def)144 482.4 Q(ault v)-.1 E
+(alue of)-.25 E F1(HISTFILE)2.5 E F0 2.5(,t)C
+(he \214le in which bash sa)-2.5 E -.15(ve)-.2 G 2.5(st).15 G
+(he command history)-2.5 E F4(~/.inputr)109.666 494.4 Q(c)-.37 E F0
+(Indi)144 506.4 Q(vidual)-.25 E F4 -.37(re)2.5 G(adline).37 E F0
+(initialization \214le)2.5 E F3 -.548(AU)72 523.2 S(THORS).548 E F0
+(Brian F)108 535.2 Q(ox, Free Softw)-.15 E(are F)-.1 E(oundation)-.15 E
+(bfox@gnu.or)108 547.2 Q(g)-.18 E(Chet Rame)108 564 Q 1.3 -.65(y, C)-.15
+H(ase W).65 E(estern Reserv)-.8 E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)-.25 G
+(rsity).15 E(chet.rame)108 576 Q(y@case.edu)-.15 E F3 -.11(BU)72 592.8 S
+2.738(GR).11 G(EPOR)-2.738 E(TS)-.438 E F0 .568(If you \214nd a b)108
+604.8 R .568(ug in)-.2 F F1(bash,)3.068 E F0 .568(you should report it.)
3.068 F .568(But \214rst, you should mak)5.568 F 3.068(es)-.1 G .568
(ure that it really is a b)-3.068 F .567(ug, and)-.2 F 5.625
-(that it appears in the latest v)108 278.4 R 5.625(ersion of)-.15 F F3
+(that it appears in the latest v)108 616.8 R 5.625(ersion of)-.15 F F1
(bash)8.125 E F0 10.625(.T)C 5.625(he latest v)-10.625 F 5.626
(ersion is al)-.15 F -.1(wa)-.1 G 5.626(ys a).1 F -.25(va)-.2 G 5.626
-(ilable from).25 F F1(ftp://ftp.gnu.or)108 290.4 Q(g/pub/gnu/bash/)-.37
-E F0(.)A .411(Once you ha)108 307.2 R .711 -.15(ve d)-.2 H .411
+(ilable from).25 F F4(ftp://ftp.gnu.or)108 628.8 Q(g/pub/gnu/bash/)-.37
+E F0(and)2.5 E F4(http://git.savannah.gnu.or)2.5 E
+(g/cgit/bash.git/snapshot/bash-master)-.37 E(.tar)-1.11 E(.gz)-1.11 E F0
+(.)A .411(Once you ha)108 645.6 R .711 -.15(ve d)-.2 H .411
(etermined that a b).15 F .411(ug actually e)-.2 F .411(xists, use the)
--.15 F F1(bashb)3.18 E(ug)-.2 E F0 .41(command to submit a b)3.13 F .41
-(ug report.)-.2 F(If)5.41 E .594(you ha)108 319.2 R .894 -.15(ve a \214)
+-.15 F F4(bashb)3.18 E(ug)-.2 E F0 .41(command to submit a b)3.13 F .41
+(ug report.)-.2 F(If)5.41 E .594(you ha)108 657.6 R .894 -.15(ve a \214)
-.2 H .595(x, you are encouraged to mail that as well!).15 F .595
(Suggestions and `philosophical' b)5.595 F .595(ug reports may)-.2 F
-(be mailed to)108 331.2 Q F1 -.2(bu)2.5 G(g-bash@gnu.or).2 E(g)-.37 E F0
-(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F3(gnu.bash.b)2.5 E(ug)
--.2 E F0(.)A(ALL b)108 348 Q(ug reports should include:)-.2 E(The v)108
-364.8 Q(ersion number of)-.15 E F3(bash)2.5 E F0(The hardw)108 376.8 Q
-(are and operating system)-.1 E(The compiler used to compile)108 388.8 Q
-2.5(Ad)108 400.8 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2 E
-2.5(As)108 412.8 S(hort script or `recipe' which e)-2.5 E -.15(xe)-.15 G
-(rcises the b).15 E(ug)-.2 E F1(bashb)108.27 429.6 Q(ug)-.2 E F0
+(be mailed to)108 669.6 Q F4 -.2(bu)2.5 G(g-bash@gnu.or).2 E(g)-.37 E F0
+(or posted to the Usenet ne)2.5 E(wsgroup)-.25 E F1(gnu.bash.b)2.5 E(ug)
+-.2 E F0(.)A(ALL b)108 686.4 Q(ug reports should include:)-.2 E(The v)
+108 703.2 Q(ersion number of)-.15 E F1(bash)2.5 E F0(GNU Bash 5.2)72 768
+Q(2022 September 19)135.955 E(86)185.115 E 0 Cg EP
+%%Page: 87 87
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S 137.14(SH\(1\) General).35 F
+(Commands Manual)2.5 E -.35(BA)139.64 G(SH\(1\)).35 E(The hardw)108 84 Q
+(are and operating system)-.1 E(The compiler used to compile)108 96 Q
+2.5(Ad)108 108 S(escription of the b)-2.5 E(ug beha)-.2 E(viour)-.2 E
+2.5(As)108 120 S(hort script or `recipe' which e)-2.5 E -.15(xe)-.15 G
+(rcises the b).15 E(ug)-.2 E/F1 10/Times-Italic@0 SF(bashb)108.27 136.8
+Q(ug)-.2 E F0
(inserts the \214rst three items automatically into the template it pro)
2.72 E(vides for \214ling a b)-.15 E(ug report.)-.2 E(Comments and b)108
-446.4 Q(ug reports concerning this manual page should be directed to)-.2
+153.6 Q(ug reports concerning this manual page should be directed to)-.2
E F1 -.15(ch)2.5 G(et.r).15 E(ame)-.15 E(y@case)-.3 E(.edu)-.15 E F0(.)
-.25 E F2 -.11(BU)72 463.2 S(GS).11 E F0(It')108 475.2 Q 2.5(st)-.55 G
-(oo big and too slo)-2.5 E -.65(w.)-.25 G 1.869
-(There are some subtle dif)108 492 R 1.869(ferences between)-.25 F F3
-(bash)4.369 E F0 1.869(and traditional v)4.369 F 1.869(ersions of)-.15 F
-F3(sh)4.368 E F0 4.368(,m)C 1.868(ostly because of the)-4.368 F/F4 9
-/Times-Bold@0 SF(POSIX)108 504 Q F0(speci\214cation.)2.25 E
-(Aliases are confusing in some uses.)108 520.8 Q(Shell b)108 537.6 Q
+.25 E/F2 10.95/Times-Bold@0 SF -.11(BU)72 170.4 S(GS).11 E F0(It')108
+182.4 Q 2.5(st)-.55 G(oo big and too slo)-2.5 E -.65(w.)-.25 G 1.869
+(There are some subtle dif)108 199.2 R 1.869(ferences between)-.25 F/F3
+10/Times-Bold@0 SF(bash)4.369 E F0 1.869(and traditional v)4.369 F 1.869
+(ersions of)-.15 F F3(sh)4.368 E F0 4.368(,m)C 1.868
+(ostly because of the)-4.368 F/F4 9/Times-Bold@0 SF(POSIX)108 211.2 Q F0
+(speci\214cation.)2.25 E(Aliases are confusing in some uses.)108 228 Q
+(Shell b)108 244.8 Q
(uiltin commands and functions are not stoppable/restartable.)-.2 E
1.315(Compound commands and command sequences of the form `a ; b ; c' a\
-re not handled gracefully when)108 554.4 R .39
-(process suspension is attempted.)108 566.4 R .389
+re not handled gracefully when)108 261.6 R .39
+(process suspension is attempted.)108 273.6 R .389
(When a process is stopped, the shell immediately e)5.39 F -.15(xe)-.15
G .389(cutes the ne).15 F .389(xt com-)-.15 F .192
-(mand in the sequence.)108 578.4 R .192(It suf)5.192 F .192(\214ces to \
+(mand in the sequence.)108 285.6 R .192(It suf)5.192 F .192(\214ces to \
place the sequence of commands between parentheses to force it into a)
--.25 F(subshell, which may be stopped as a unit.)108 590.4 Q(Array v)108
-607.2 Q(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E
-(There may be only one acti)108 624 Q .3 -.15(ve c)-.25 H
-(oprocess at a time.).15 E(GNU Bash 5.1)72 768 Q(2020 October 29)141.235
-E(83)190.395 E 0 Cg EP
+-.25 F(subshell, which may be stopped as a unit.)108 297.6 Q(Array v)108
+314.4 Q(ariables may not \(yet\) be e)-.25 E(xported.)-.15 E
+(There may be only one acti)108 331.2 Q .3 -.15(ve c)-.25 H
+(oprocess at a time.).15 E(GNU Bash 5.2)72 768 Q(2022 September 19)
+135.955 E(87)185.115 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/doc/bashbug.0 b/doc/bashbug.0
index 373c47b1..58f08de2 100644
--- a/doc/bashbug.0
+++ b/doc/bashbug.0
@@ -49,4 +49,4 @@ AAUUTTHHOORRSS
-GNU Bash 5.1 2020 August 1 BASHBUG(1)
+GNU Bash 5.2 2020 August 1 BASHBUG(1)
diff --git a/doc/bashbug.ps b/doc/bashbug.ps
index 9c60a331..55fe45ce 100644
--- a/doc/bashbug.ps
+++ b/doc/bashbug.ps
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.22.4
-%%CreationDate: Fri Aug 7 11:58:10 2020
+%%CreationDate: Tue Jan 11 16:04:43 2022
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
@@ -290,7 +290,7 @@ F2(EDIT)108 300 Q(OR)-.18 E F0 .327(Speci\214es the preferred editor)144
(are F)-.1 E(oundation)-.15 E(bfox@gnu.or)108 463.2 Q(g)-.18 E
(Chet Rame)108 480 Q 1.3 -.65(y, C)-.15 H(ase W).65 E(estern Reserv)-.8
E 2.5(eU)-.15 G(ni)-2.5 E -.15(ve)-.25 G(rsity).15 E(chet@po.cwru.edu)
-108 492 Q(GNU Bash 5.1)72 768 Q(2020 August 1)145.395 E(1)199.555 E 0 Cg
+108 492 Q(GNU Bash 5.2)72 768 Q(2020 August 1)145.395 E(1)199.555 E 0 Cg
EP
%%Trailer
end
diff --git a/doc/bashref.dvi b/doc/bashref.dvi
index 2b682d27..a7a571b8 100644
--- a/doc/bashref.dvi
+++ b/doc/bashref.dvi
Binary files differ
diff --git a/doc/bashref.html b/doc/bashref.html
index 6a4c3ab8..928b3ff1 100644
--- a/doc/bashref.html
+++ b/doc/bashref.html
@@ -1,13 +1,16 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
+<!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
+<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.1, 29 October 2020).
+the Bash shell (version 5.2, 19 September 2022).
-This is Edition 5.1, last updated 29 October 2020,
+This is Edition 5.2, last updated 19 September 2022,
of The GNU Bash Reference Manual,
-for Bash, Version 5.1.
+for Bash, Version 5.2.
-Copyright (C) 1988-2020 Free Software Foundation, Inc.
+Copyright (C) 1988-2022 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -15,9 +18,6 @@ any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled
"GNU Free Documentation License". -->
-<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ -->
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Bash Reference Manual</title>
<meta name="description" content="Bash Reference Manual">
@@ -25,17 +25,21 @@ A copy of the license is included in the section entitled
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+
<link href="#Top" rel="start" title="Top">
<link href="#Indexes" rel="index" title="Indexes">
<link href="#SEC_Contents" rel="contents" title="Table of Contents">
<link href="dir.html#Top" rel="up" title="(dir)">
+<link href="#Introduction" rel="next" title="Introduction">
+<link href="dir.html#Top" rel="prev" title="(dir)">
<style type="text/css">
<!--
+a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
-div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
@@ -44,6 +48,7 @@ pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
+span:hover a.copiable-anchor {visibility: visible}
ul.no-bullet {list-style: none}
-->
</style>
@@ -63,7 +68,36 @@ ul.no-bullet {list-style: none}
-<span id="SEC_Contents"></span>
+
+<div class="top" id="Top">
+<div class="header">
+<p>
+Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+</div>
+<span id="Bash-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, 19 September 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 19 September 2022,
+of <cite>The GNU Bash Reference Manual</cite>,
+for <code>Bash</code>, Version 5.2.
+</p>
+<p>Bash contains features that appear in other popular shells, and some
+features that only appear in Bash. Some of the shells that Bash has
+borrowed concepts from are the Bourne Shell (<samp>sh</samp>), the Korn Shell
+(<samp>ksh</samp>), and the C-shell (<samp>csh</samp> and its successor,
+<samp>tcsh</samp>). The following menu breaks the features up into
+categories, noting which features were inspired by other shells and
+which are specific to Bash.
+</p>
+<p>This manual is meant as a brief introduction to features found in
+Bash. The Bash manual page should be used as the definitive
+reference on shell behavior.
+</p>
+
+<div class="Contents_element" id="SEC_Contents">
<h2 class="contents-heading">Table of Contents</h2>
<div class="contents">
@@ -266,85 +300,22 @@ ul.no-bullet {list-style: none}
</ul></li>
</ul>
</div>
-
-
-<span id="Top"></span><div class="header">
-<p>
-Next: <a href="#Introduction" accesskey="n" rel="next">Introduction</a>, Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
-<span id="Bash-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.1, 29 October 2020).
-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.1, last updated 29 October 2020,
-of <cite>The GNU Bash Reference Manual</cite>,
-for <code>Bash</code>, Version 5.1.
-</p>
-<p>Bash contains features that appear in other popular shells, and some
-features that only appear in Bash. Some of the shells that Bash has
-borrowed concepts from are the Bourne Shell (<samp>sh</samp>), the Korn Shell
-(<samp>ksh</samp>), and the C-shell (<samp>csh</samp> and its successor,
-<samp>tcsh</samp>). The following menu breaks the features up into
-categories, noting which features were inspired by other shells and
-which are specific to Bash.
-</p>
-<p>This manual is meant as a brief introduction to features found in
-Bash. The Bash manual page should be used as the definitive
-reference on shell behavior.
-</p>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Introduction" accesskey="1">Introduction</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">An introduction to the shell.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Definitions" accesskey="2">Definitions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Some definitions used in the rest of this
- manual.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Basic-Shell-Features" accesskey="3">Basic Shell Features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The shell &quot;building blocks&quot;.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Shell-Builtin-Commands" accesskey="4">Shell Builtin Commands</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Commands that are a part of the shell.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Shell-Variables" accesskey="5">Shell Variables</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Variables used or set by Bash.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Bash-Features" accesskey="6">Bash Features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Features found only in Bash.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Job-Control" accesskey="7">Job Control</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">What job control is and how Bash allows you
- to use it.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Command-Line-Editing" accesskey="8">Command Line Editing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Chapter describing the command line
- editing features.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Using-History-Interactively" accesskey="9">Using History Interactively</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Command History Expansion
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Installing-Bash">Installing Bash</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to build and install Bash on your system.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Reporting-Bugs">Reporting Bugs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to report bugs in Bash.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Major-Differences-From-The-Bourne-Shell">Major Differences From The Bourne Shell</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">A terse list of the differences
- between Bash and historical
- versions of /bin/sh.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#GNU-Free-Documentation-License">GNU Free Documentation License</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Copying and sharing this documentation.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Indexes">Indexes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Various indexes for this manual.
-</td></tr>
-</table>
-
<hr>
-<span id="Introduction"></span><div class="header">
+<div class="chapter" id="Introduction">
+<div class="header">
<p>
-Next: <a href="#Definitions" accesskey="n" rel="next">Definitions</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Definitions" accesskey="n" rel="next">Definitions</a>, Up: <a href="#Top" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Introduction-1"></span><h2 class="chapter">1 Introduction</h2>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#What-is-Bash_003f" accesskey="1">What is Bash?</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">A short description of Bash.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#What-is-a-shell_003f" accesskey="2">What is a shell?</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">A brief introduction to shells.
-</td></tr>
-</table>
+<ul class="section-toc">
+<li><a href="#What-is-Bash_003f" accesskey="1">What is Bash?</a></li>
+<li><a href="#What-is-a-shell_003f" accesskey="2">What is a shell?</a></li>
+</ul>
<hr>
-<span id="What-is-Bash_003f"></span><div class="header">
+<div class="section" id="What-is-Bash_003f">
+<div class="header">
<p>
Next: <a href="#What-is-a-shell_003f" accesskey="n" rel="next">What is a shell?</a>, Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -374,7 +345,9 @@ independently-supported ports exist for <small>MS-DOS</small>, <small>OS/2</smal
and Windows platforms.
</p>
<hr>
-<span id="What-is-a-shell_003f"></span><div class="header">
+</div>
+<div class="section" id="What-is-a-shell_003f">
+<div class="header">
<p>
Previous: <a href="#What-is-Bash_003f" accesskey="p" rel="prev">What is Bash?</a>, Up: <a href="#Introduction" accesskey="u" rel="up">Introduction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -433,146 +406,132 @@ editing, command history and aliases. Each of these features is
described in this manual.
</p>
<hr>
-<span id="Definitions"></span><div class="header">
+</div>
+</div>
+<div class="chapter" id="Definitions">
+<div class="header">
<p>
-Next: <a href="#Basic-Shell-Features" accesskey="n" rel="next">Basic Shell Features</a>, Previous: <a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Basic-Shell-Features" accesskey="n" rel="next">Basic Shell Features</a>, Previous: <a href="#Introduction" accesskey="p" rel="prev">Introduction</a>, Up: <a href="#Top" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Definitions-1"></span><h2 class="chapter">2 Definitions</h2>
<p>These definitions are used throughout the remainder of this manual.
</p>
<dl compact="compact">
-<dt><code>POSIX</code></dt>
-<dd><span id="index-POSIX"></span>
-<p>A family of open system standards based on Unix. Bash
+<dt id='index-POSIX'><span><code>POSIX</code><a href='#index-POSIX' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A family of open system standards based on Unix. Bash
is primarily concerned with the Shell and Utilities portion of the
<small>POSIX</small> 1003.1 standard.
</p>
</dd>
-<dt><code>blank</code></dt>
+<dt><span><code>blank</code></span></dt>
<dd><p>A space or tab character.
</p>
</dd>
-<dt><code>builtin</code></dt>
-<dd><span id="index-builtin-1"></span>
-<p>A command that is implemented internally by the shell itself, rather
+<dt id='index-builtin-1'><span><code>builtin</code><a href='#index-builtin-1' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A command that is implemented internally by the shell itself, rather
than by an executable program somewhere in the file system.
</p>
</dd>
-<dt><code>control operator</code></dt>
-<dd><span id="index-control-operator"></span>
-<p>A <code>token</code> that performs a control function. It is a <code>newline</code>
+<dt id='index-control-operator'><span><code>control operator</code><a href='#index-control-operator' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A <code>token</code> that performs a control function. It is a <code>newline</code>
or one of the following:
&lsquo;<samp>||</samp>&rsquo;, &lsquo;<samp>&amp;&amp;</samp>&rsquo;, &lsquo;<samp>&amp;</samp>&rsquo;, &lsquo;<samp>;</samp>&rsquo;, &lsquo;<samp>;;</samp>&rsquo;, &lsquo;<samp>;&amp;</samp>&rsquo;, &lsquo;<samp>;;&amp;</samp>&rsquo;,
&lsquo;<samp>|</samp>&rsquo;, &lsquo;<samp>|&amp;</samp>&rsquo;, &lsquo;<samp>(</samp>&rsquo;, or &lsquo;<samp>)</samp>&rsquo;.
</p>
</dd>
-<dt><code>exit status</code></dt>
-<dd><span id="index-exit-status"></span>
-<p>The value returned by a command to its caller. The value is restricted
+<dt id='index-exit-status'><span><code>exit status</code><a href='#index-exit-status' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>The value returned by a command to its caller. The value is restricted
to eight bits, so the maximum value is 255.
</p>
</dd>
-<dt><code>field</code></dt>
-<dd><span id="index-field"></span>
-<p>A unit of text that is the result of one of the shell expansions. After
+<dt id='index-field'><span><code>field</code><a href='#index-field' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A unit of text that is the result of one of the shell expansions. After
expansion, when executing a command, the resulting fields are used as
the command name and arguments.
</p>
</dd>
-<dt><code>filename</code></dt>
-<dd><span id="index-filename"></span>
-<p>A string of characters used to identify a file.
+<dt id='index-filename'><span><code>filename</code><a href='#index-filename' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A string of characters used to identify a file.
</p>
</dd>
-<dt><code>job</code></dt>
-<dd><span id="index-job"></span>
-<p>A set of processes comprising a pipeline, and any processes descended
+<dt id='index-job'><span><code>job</code><a href='#index-job' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A set of processes comprising a pipeline, and any processes descended
from it, that are all in the same process group.
</p>
</dd>
-<dt><code>job control</code></dt>
-<dd><span id="index-job-control"></span>
-<p>A mechanism by which users can selectively stop (suspend) and restart
+<dt id='index-job-control'><span><code>job control</code><a href='#index-job-control' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A mechanism by which users can selectively stop (suspend) and restart
(resume) execution of processes.
</p>
</dd>
-<dt><code>metacharacter</code></dt>
-<dd><span id="index-metacharacter"></span>
-<p>A character that, when unquoted, separates words. A metacharacter is
+<dt id='index-metacharacter'><span><code>metacharacter</code><a href='#index-metacharacter' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A character that, when unquoted, separates words. A metacharacter is
a <code>space</code>, <code>tab</code>, <code>newline</code>, or one of the following characters:
&lsquo;<samp>|</samp>&rsquo;, &lsquo;<samp>&amp;</samp>&rsquo;, &lsquo;<samp>;</samp>&rsquo;, &lsquo;<samp>(</samp>&rsquo;, &lsquo;<samp>)</samp>&rsquo;, &lsquo;<samp>&lt;</samp>&rsquo;, or
&lsquo;<samp>&gt;</samp>&rsquo;.
</p>
</dd>
-<dt><code>name</code></dt>
-<dd><span id="index-name"></span>
-<span id="index-identifier"></span>
+<dt id='index-name'><span><code>name</code><a href='#index-name' class='copiable-anchor'> &para;</a></span></dt>
+<dd><span id="index-identifier"></span>
<p>A <code>word</code> consisting solely of letters, numbers, and underscores,
and beginning with a letter or underscore. <code>Name</code>s are used as
shell variable and function names.
Also referred to as an <code>identifier</code>.
</p>
</dd>
-<dt><code>operator</code></dt>
-<dd><span id="index-operator_002c-shell"></span>
-<p>A <code>control operator</code> or a <code>redirection operator</code>.
+<dt id='index-operator_002c-shell'><span><code>operator</code><a href='#index-operator_002c-shell' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A <code>control operator</code> or a <code>redirection operator</code>.
See <a href="#Redirections">Redirections</a>, for a list of redirection operators.
Operators contain at least one unquoted <code>metacharacter</code>.
</p>
</dd>
-<dt><code>process group</code></dt>
-<dd><span id="index-process-group"></span>
-<p>A collection of related processes each having the same process
+<dt id='index-process-group'><span><code>process group</code><a href='#index-process-group' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A collection of related processes each having the same process
group <small>ID</small>.
</p>
</dd>
-<dt><code>process group ID</code></dt>
-<dd><span id="index-process-group-ID"></span>
-<p>A unique identifier that represents a <code>process group</code>
+<dt id='index-process-group-ID'><span><code>process group ID</code><a href='#index-process-group-ID' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A unique identifier that represents a <code>process group</code>
during its lifetime.
</p>
</dd>
-<dt><code>reserved word</code></dt>
-<dd><span id="index-reserved-word"></span>
-<p>A <code>word</code> that has a special meaning to the shell. Most reserved
+<dt id='index-reserved-word'><span><code>reserved word</code><a href='#index-reserved-word' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A <code>word</code> that has a special meaning to the shell. Most reserved
words introduce shell flow control constructs, such as <code>for</code> and
<code>while</code>.
</p>
</dd>
-<dt><code>return status</code></dt>
-<dd><span id="index-return-status"></span>
-<p>A synonym for <code>exit status</code>.
+<dt id='index-return-status'><span><code>return status</code><a href='#index-return-status' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A synonym for <code>exit status</code>.
</p>
</dd>
-<dt><code>signal</code></dt>
-<dd><span id="index-signal"></span>
-<p>A mechanism by which a process may be notified by the kernel
+<dt id='index-signal'><span><code>signal</code><a href='#index-signal' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A mechanism by which a process may be notified by the kernel
of an event occurring in the system.
</p>
</dd>
-<dt><code>special builtin</code></dt>
-<dd><span id="index-special-builtin"></span>
-<p>A shell builtin command that has been classified as special by the
+<dt id='index-special-builtin'><span><code>special builtin</code><a href='#index-special-builtin' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A shell builtin command that has been classified as special by the
<small>POSIX</small> standard.
</p>
</dd>
-<dt><code>token</code></dt>
-<dd><span id="index-token"></span>
-<p>A sequence of characters considered a single unit by the shell.
+<dt id='index-token'><span><code>token</code><a href='#index-token' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A sequence of characters considered a single unit by the shell.
It is either a <code>word</code> or an <code>operator</code>.
</p>
</dd>
-<dt><code>word</code></dt>
-<dd><span id="index-word"></span>
-<p>A sequence of characters treated as a unit by the shell.
+<dt id='index-word'><span><code>word</code><a href='#index-word' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A sequence of characters treated as a unit by the shell.
Words may not include unquoted <code>metacharacters</code>.
</p></dd>
</dl>
<hr>
-<span id="Basic-Shell-Features"></span><div class="header">
+</div>
+<div class="chapter" id="Basic-Shell-Features">
+<div class="header">
<p>
-Next: <a href="#Shell-Builtin-Commands" accesskey="n" rel="next">Shell Builtin Commands</a>, Previous: <a href="#Definitions" accesskey="p" rel="prev">Definitions</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Shell-Builtin-Commands" accesskey="n" rel="next">Shell Builtin Commands</a>, Previous: <a href="#Definitions" accesskey="p" rel="prev">Definitions</a>, Up: <a href="#Top" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Basic-Shell-Features-1"></span><h2 class="chapter">3 Basic Shell Features</h2>
<span id="index-Bourne-shell"></span>
@@ -590,40 +549,24 @@ shell expansions,
<i>redirections</i>, which are a way to direct input and output from
and to named files, and how the shell executes commands.
</p>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Shell-Syntax" accesskey="1">Shell Syntax</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">What your input means to the shell.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Shell-Commands" accesskey="2">Shell Commands</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The types of commands you can use.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Shell-Functions" accesskey="3">Shell Functions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Grouping commands by name.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Shell-Parameters" accesskey="4">Shell Parameters</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How the shell stores values.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Shell-Expansions" accesskey="5">Shell Expansions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How Bash expands parameters and the various
- expansions available.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Redirections" accesskey="6">Redirections</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">A way to control where input and output go.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Executing-Commands" accesskey="7">Executing Commands</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">What happens when you run a command.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Shell-Scripts" accesskey="8">Shell Scripts</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Executing files of shell commands.
-</td></tr>
-</table>
+<ul class="section-toc">
+<li><a href="#Shell-Syntax" accesskey="1">Shell Syntax</a></li>
+<li><a href="#Shell-Commands" accesskey="2">Shell Commands</a></li>
+<li><a href="#Shell-Functions" accesskey="3">Shell Functions</a></li>
+<li><a href="#Shell-Parameters" accesskey="4">Shell Parameters</a></li>
+<li><a href="#Shell-Expansions" accesskey="5">Shell Expansions</a></li>
+<li><a href="#Redirections" accesskey="6">Redirections</a></li>
+<li><a href="#Executing-Commands" accesskey="7">Executing Commands</a></li>
+<li><a href="#Shell-Scripts" accesskey="8">Shell Scripts</a></li>
+</ul>
<hr>
-<span id="Shell-Syntax"></span><div class="header">
+<div class="section" id="Shell-Syntax">
+<div class="header">
<p>
Next: <a href="#Shell-Commands" accesskey="n" rel="next">Shell Commands</a>, Up: <a href="#Basic-Shell-Features" accesskey="u" rel="up">Basic Shell Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Shell-Syntax-1"></span><h3 class="section">3.1 Shell Syntax</h3>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Shell-Operation" accesskey="1">Shell Operation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The basic operation of the shell.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Quoting" accesskey="2">Quoting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to remove the special meaning from characters.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Comments" accesskey="3">Comments</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to specify comments.
-</td></tr>
-</table>
<p>When the shell reads input, it proceeds through a
sequence of operations. If the input indicates the beginning of a
@@ -640,8 +583,14 @@ others, redirects input and output as needed, executes the specified
command, waits for the command&rsquo;s exit status, and makes that exit status
available for further inspection or processing.
</p>
+<ul class="section-toc">
+<li><a href="#Shell-Operation" accesskey="1">Shell Operation</a></li>
+<li><a href="#Quoting" accesskey="2">Quoting</a></li>
+<li><a href="#Comments" accesskey="3">Comments</a></li>
+</ul>
<hr>
-<span id="Shell-Operation"></span><div class="header">
+<div class="subsection" id="Shell-Operation">
+<div class="header">
<p>
Next: <a href="#Quoting" accesskey="n" rel="next">Quoting</a>, Up: <a href="#Shell-Syntax" accesskey="u" rel="up">Shell Syntax</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -679,27 +628,14 @@ status (see <a href="#Exit-Status">Exit Status</a>).
</li></ol>
<hr>
-<span id="Quoting"></span><div class="header">
+</div>
+<div class="subsection" id="Quoting">
+<div class="header">
<p>
Next: <a href="#Comments" accesskey="n" rel="next">Comments</a>, Previous: <a href="#Shell-Operation" accesskey="p" rel="prev">Shell Operation</a>, Up: <a href="#Shell-Syntax" accesskey="u" rel="up">Shell Syntax</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Quoting-1"></span><h4 class="subsection">3.1.2 Quoting</h4>
<span id="index-quoting"></span>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Escape-Character" accesskey="1">Escape Character</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to remove the special meaning from a single
- character.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Single-Quotes" accesskey="2">Single Quotes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to inhibit all interpretation of a sequence
- of characters.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Double-Quotes" accesskey="3">Double Quotes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to suppress most of the interpretation of a
- sequence of characters.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#ANSI_002dC-Quoting" accesskey="4">ANSI-C Quoting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to expand ANSI-C sequences in quoted strings.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Locale-Translation" accesskey="5">Locale Translation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to translate strings into different languages.
-</td></tr>
-</table>
<p>Quoting is used to remove the special meaning of certain
characters or words to the shell. Quoting can be used to
@@ -711,16 +647,24 @@ parameter expansion.
has special meaning to the shell and must be quoted if it is to
represent itself.
When the command history expansion facilities are being used
-(see <a href="#History-Interaction">History Interaction</a>), the
-<var>history expansion</var> character, usually &lsquo;<samp>!</samp>&rsquo;, must be quoted
+(see <a href="#History-Interaction">History Expansion</a>), the
+<em>history expansion</em> character, usually &lsquo;<samp>!</samp>&rsquo;, must be quoted
to prevent history expansion. See <a href="#Bash-History-Facilities">Bash History Facilities</a>, for
more details concerning history expansion.
</p>
<p>There are three quoting mechanisms: the
-<var>escape character</var>, single quotes, and double quotes.
-</p>
+<em>escape character</em>, single quotes, and double quotes.
+</p>
+<ul class="section-toc">
+<li><a href="#Escape-Character" accesskey="1">Escape Character</a></li>
+<li><a href="#Single-Quotes" accesskey="2">Single Quotes</a></li>
+<li><a href="#Double-Quotes" accesskey="3">Double Quotes</a></li>
+<li><a href="#ANSI_002dC-Quoting" accesskey="4">ANSI-C Quoting</a></li>
+<li><a href="#Locale-Translation" accesskey="5">Locale-Specific Translation</a></li>
+</ul>
<hr>
-<span id="Escape-Character"></span><div class="header">
+<div class="subsubsection" id="Escape-Character">
+<div class="header">
<p>
Next: <a href="#Single-Quotes" accesskey="n" rel="next">Single Quotes</a>, Up: <a href="#Quoting" accesskey="u" rel="up">Quoting</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -733,7 +677,9 @@ is treated as a line continuation (that is, it is removed from
the input stream and effectively ignored).
</p>
<hr>
-<span id="Single-Quotes"></span><div class="header">
+</div>
+<div class="subsubsection" id="Single-Quotes">
+<div class="header">
<p>
Next: <a href="#Double-Quotes" accesskey="n" rel="next">Double Quotes</a>, Previous: <a href="#Escape-Character" accesskey="p" rel="prev">Escape Character</a>, Up: <a href="#Quoting" accesskey="u" rel="up">Quoting</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -744,7 +690,9 @@ of each character within the quotes. A single quote may not occur
between single quotes, even when preceded by a backslash.
</p>
<hr>
-<span id="Double-Quotes"></span><div class="header">
+</div>
+<div class="subsubsection" id="Double-Quotes">
+<div class="header">
<p>
Next: <a href="#ANSI_002dC-Quoting" accesskey="n" rel="next">ANSI-C Quoting</a>, Previous: <a href="#Single-Quotes" accesskey="p" rel="prev">Single Quotes</a>, Up: <a href="#Quoting" accesskey="u" rel="up">Quoting</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -776,73 +724,76 @@ The backslash preceding the &lsquo;<samp>!</samp>&rsquo; is not removed.
when in double quotes (see <a href="#Shell-Parameter-Expansion">Shell Parameter Expansion</a>).
</p>
<hr>
-<span id="ANSI_002dC-Quoting"></span><div class="header">
+</div>
+<div class="subsubsection" id="ANSI_002dC-Quoting">
+<div class="header">
<p>
-Next: <a href="#Locale-Translation" accesskey="n" rel="next">Locale Translation</a>, Previous: <a href="#Double-Quotes" accesskey="p" rel="prev">Double Quotes</a>, Up: <a href="#Quoting" accesskey="u" rel="up">Quoting</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Locale-Translation" accesskey="n" rel="next">Locale-Specific Translation</a>, Previous: <a href="#Double-Quotes" accesskey="p" rel="prev">Double Quotes</a>, Up: <a href="#Quoting" accesskey="u" rel="up">Quoting</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="ANSI_002dC-Quoting-1"></span><h4 class="subsubsection">3.1.2.4 ANSI-C Quoting</h4>
<span id="index-quoting_002c-ANSI"></span>
-<p>Words of the form <code>$'<var>string</var>'</code> are treated specially. The
-word expands to <var>string</var>, with backslash-escaped characters replaced
-as specified by the ANSI C standard. Backslash escape sequences, if
-present, are decoded as follows:
+<p>Character sequences of the form $&rsquo;<var>string</var>&rsquo; are treated as a special
+kind of single quotes.
+The sequence expands to <var>string</var>, with backslash-escaped characters
+in <var>string</var> replaced as specified by the ANSI C standard.
+Backslash escape sequences, if present, are decoded as follows:
</p>
<dl compact="compact">
-<dt><code>\a</code></dt>
+<dt><span><code>\a</code></span></dt>
<dd><p>alert (bell)
</p></dd>
-<dt><code>\b</code></dt>
+<dt><span><code>\b</code></span></dt>
<dd><p>backspace
</p></dd>
-<dt><code>\e</code></dt>
-<dt><code>\E</code></dt>
+<dt><span><code>\e</code></span></dt>
+<dt><span><code>\E</code></span></dt>
<dd><p>an escape character (not ANSI C)
</p></dd>
-<dt><code>\f</code></dt>
+<dt><span><code>\f</code></span></dt>
<dd><p>form feed
</p></dd>
-<dt><code>\n</code></dt>
+<dt><span><code>\n</code></span></dt>
<dd><p>newline
</p></dd>
-<dt><code>\r</code></dt>
+<dt><span><code>\r</code></span></dt>
<dd><p>carriage return
</p></dd>
-<dt><code>\t</code></dt>
+<dt><span><code>\t</code></span></dt>
<dd><p>horizontal tab
</p></dd>
-<dt><code>\v</code></dt>
+<dt><span><code>\v</code></span></dt>
<dd><p>vertical tab
</p></dd>
-<dt><code>\\</code></dt>
+<dt><span><code>\\</code></span></dt>
<dd><p>backslash
</p></dd>
-<dt><code>\'</code></dt>
+<dt><span><code>\'</code></span></dt>
<dd><p>single quote
</p></dd>
-<dt><code>\&quot;</code></dt>
+<dt><span><code>\&quot;</code></span></dt>
<dd><p>double quote
</p></dd>
-<dt><code>\?</code></dt>
+<dt><span><code>\?</code></span></dt>
<dd><p>question mark
</p></dd>
-<dt><code>\<var>nnn</var></code></dt>
+<dt><span><code>\<var>nnn</var></code></span></dt>
<dd><p>the eight-bit character whose value is the octal value <var>nnn</var>
(one to three octal digits)
</p></dd>
-<dt><code>\x<var>HH</var></code></dt>
+<dt><span><code>\x<var>HH</var></code></span></dt>
<dd><p>the eight-bit character whose value is the hexadecimal value <var>HH</var>
(one or two hex digits)
</p></dd>
-<dt><code>\u<var>HHHH</var></code></dt>
+<dt><span><code>\u<var>HHHH</var></code></span></dt>
<dd><p>the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value
<var>HHHH</var> (one to four hex digits)
</p></dd>
-<dt><code>\U<var>HHHHHHHH</var></code></dt>
+<dt><span><code>\U<var>HHHHHHHH</var></code></span></dt>
<dd><p>the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value
<var>HHHHHHHH</var> (one to eight hex digits)
</p></dd>
-<dt><code>\c<var>x</var></code></dt>
+<dt><span><code>\c<var>x</var></code></span></dt>
<dd><p>a control-<var>x</var> character
</p></dd>
</dl>
@@ -851,7 +802,9 @@ present, are decoded as follows:
been present.
</p>
<hr>
-<span id="Locale-Translation"></span><div class="header">
+</div>
+<div class="subsubsection" id="Locale-Translation">
+<div class="header">
<p>
Previous: <a href="#ANSI_002dC-Quoting" accesskey="p" rel="prev">ANSI-C Quoting</a>, Up: <a href="#Quoting" accesskey="u" rel="up">Quoting</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -861,32 +814,142 @@ Previous: <a href="#ANSI_002dC-Quoting" accesskey="p" rel="prev">ANSI-C Quoting<
<span id="index-native-languages"></span>
<span id="index-translation_002c-native-languages"></span>
-<p>A double-quoted string preceded by a dollar sign (&lsquo;<samp>$</samp>&rsquo;)
+<p>Prefixing a double-quoted string with a dollar sign (&lsquo;<samp>$</samp>&rsquo;), such
+as <tt>$&quot;hello, world&quot;</tt>,
will cause the string to be translated according to the current locale.
-The <var>gettext</var> infrastructure performs the message catalog lookup and
-translation, using the <code>LC_MESSAGES</code> and <code>TEXTDOMAIN</code> shell
-variables, as explained below. See the gettext documentation for additional
-details.
+The <code>gettext</code> infrastructure performs the lookup and
+translation, using the <code>LC_MESSAGES</code>, <code>TEXTDOMAINDIR</code>,
+and <code>TEXTDOMAIN</code> shell variables, as explained below.
+See the gettext documentation for additional details not covered here.
If the current locale is <code>C</code> or <code>POSIX</code>,
-or if there are no translations available,
+if there are no translations available,
+of if the string is not translated,
the dollar sign is ignored.
-If the string is translated and replaced, the replacement is
-double-quoted.
+Since this is a form of double quoting, the string remains double-quoted
+by default, whether or not it is translated and replaced.
+If the <code>noexpand_translation</code> option is enabled
+using the <code>shopt</code> builtin (see <a href="#The-Shopt-Builtin">The Shopt Builtin</a>),
+translated strings are single-quoted instead of double-quoted.
</p>
+<p>The rest of this section is a brief overview of how you use gettext to
+create translations for strings in a shell script named <var>scriptname</var>.
+There are more details in the gettext documentation.
+</p>
+<hr>
+<span id="Creating-Internationalized-Scripts"></span><div class="header">
+<p>
+ &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+</div>
+<h4 class="node-heading">Creating Internationalized Scripts</h4>
+<span id="index-internationalized-scripts"></span>
+<span id="index-string-translations"></span>
+<p>Once you&rsquo;ve marked the strings in your script
+that you want to translate using $&quot;...&quot;,
+you create a gettext &quot;template&quot; file using the command
+</p>
+<div class="example">
+<pre class="example">bash --dump-po-strings <var>scriptname</var> &gt; <var>domain</var>.pot
+</pre></div>
+
+<p>The <var>domain</var> is your <em>message domain</em>.
+It&rsquo;s just an arbitrary string that&rsquo;s used to identify the files gettext
+needs, like a package or script name.
+It needs to be unique among all
+the message domains on systems where you install the translations, so
+gettext knows which translations correspond to your script.
+You&rsquo;ll use the template file to create translations for each target language.
+The template file conventionally has the suffix &lsquo;<samp>.pot</samp>&rsquo;.
+</p>
+<p>You copy this template file to a separate file for each target language
+you want to support (called &quot;PO&quot; files, which use the suffix &lsquo;<samp>.po</samp>&rsquo;).
+PO files use various naming conventions, but
+when you are working to translate a template file into a particular
+language, you first copy the template file to a file whose name is the
+language you want to target, with the &lsquo;<samp>.po</samp>&rsquo; suffix.
+For instance, the Spanish translations of your strings would be
+in a file named &lsquo;<samp>es.po</samp>&rsquo;, and to get started using a message
+domain named &quot;example,&quot; you would run
+</p>
+<div class="example">
+<pre class="example">cp example.pot es.po
+</pre></div>
+
+<p>Ultimately, PO files are often named <var>domain</var>.po and installed in
+directories that contain multiple translation files for a particular language.
+</p>
+<p>Whichever naming convention you choose, you will need to translate the
+strings in the PO files into the appropriate languages.
+This has to be done manually.
+</p>
+<p>When you have the translations and PO files complete, you&rsquo;ll use the
+gettext tools to produce what are called &quot;MO&quot; files, which are compiled
+versions of the PO files the gettext tools use to look up translations
+efficiently.
+MO files are also called &quot;message catalog&quot; files.
+You use the <code>msgfmt</code> program to do this.
+For instance, if you had a file with Spanish translations, you could run
+</p>
+<div class="example">
+<pre class="example">msgfmt -o es.mo es.po
+</pre></div>
+
+<p>to produce the corresponding MO file.
+</p>
+<p>Once you have the MO files, you decide where to install them and use the
+<code>TEXTDOMAINDIR</code> shell variable to tell the gettext tools where they are.
+Make sure to use the same message domain to name the MO files
+as you did for the PO files when you install them.
+</p>
+<span id="index-LANG"></span>
<span id="index-LC_005fMESSAGES"></span>
<span id="index-TEXTDOMAIN"></span>
<span id="index-TEXTDOMAINDIR"></span>
-<p>Some systems use the message catalog selected by the <code>LC_MESSAGES</code>
-shell variable. Others create the name of the message catalog from the
-value of the <code>TEXTDOMAIN</code> shell variable, possibly adding a
-suffix of &lsquo;<samp>.mo</samp>&rsquo;. If you use the <code>TEXTDOMAIN</code> variable, you
-may need to set the <code>TEXTDOMAINDIR</code> variable to the location of
-the message catalog files. Still others use both variables in this
-fashion:
-<code>TEXTDOMAINDIR</code>/<code>LC_MESSAGES</code>/LC_MESSAGES/<code>TEXTDOMAIN</code>.mo.
+<p>Your users will use the <code>LANG</code> or <code>LC_MESSAGES</code> shell variables to
+select the desired language.
+</p>
+<p>You set the <code>TEXTDOMAIN</code> variable to the script&rsquo;s message domain.
+As above, you use the message domain to name your translation files.
+</p>
+<p>You, or possibly your users, set the <code>TEXTDOMAINDIR</code> variable to the
+name of a directory where the message catalog files are stored.
+If you install the message files into the system&rsquo;s standard message catalog
+directory, you don&rsquo;t need to worry about this variable.
+</p>
+<p>The directory where the message catalog files are stored varies between
+systems.
+Some use the message catalog selected by the <code>LC_MESSAGES</code>
+shell variable.
+Others create the name of the message catalog from the value of the
+<code>TEXTDOMAIN</code> shell variable, possibly adding the &lsquo;<samp>.mo</samp>&rsquo; suffix.
+If you use the <code>TEXTDOMAIN</code> variable, you may need to set the
+<code>TEXTDOMAINDIR</code> variable to the location of the message catalog files,
+as above.
+It&rsquo;s common to use both variables in this fashion:
+<code>$TEXTDOMAINDIR</code>/<code>$LC_MESSAGES</code>/LC_MESSAGES/<code>$TEXTDOMAIN</code>.mo.
+</p>
+<p>If you used that last convention, and you wanted to store the message
+catalog files with Spanish (es) and Esperanto (eo) translations into a
+local directory you use for custom translation files, you could run
+</p>
+<div class="example">
+<pre class="example">TEXTDOMAIN=example
+TEXTDOMAINDIR=/usr/local/share/locale
+
+cp es.mo ${TEXTDOMAINDIR}/es/LC_MESSAGES/${TEXTDOMAIN}.mo
+cp eo.mo ${TEXTDOMAINDIR}/eo/LC_MESSAGES/${TEXTDOMAIN}.mo
+</pre></div>
+
+<p>When all of this is done, and the message catalog files containing the
+compiled translations are installed in the correct location,
+your users will be able to see translated strings
+in any of the supported languages by setting the <code>LANG</code> or
+<code>LC_MESSAGES</code> environment variables before running your script.
</p>
<hr>
-<span id="Comments"></span><div class="header">
+</div>
+</div>
+<div class="subsection" id="Comments">
+<div class="header">
<p>
Previous: <a href="#Quoting" accesskey="p" rel="prev">Quoting</a>, Up: <a href="#Shell-Syntax" accesskey="u" rel="up">Shell Syntax</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -905,7 +968,10 @@ See <a href="#Interactive-Shells">Interactive Shells</a>, for a description of w
a shell interactive.
</p>
<hr>
-<span id="Shell-Commands"></span><div class="header">
+</div>
+</div>
+<div class="section" id="Shell-Commands">
+<div class="header">
<p>
Next: <a href="#Shell-Functions" accesskey="n" rel="next">Shell Functions</a>, Previous: <a href="#Shell-Syntax" accesskey="p" rel="prev">Shell Syntax</a>, Up: <a href="#Basic-Shell-Features" accesskey="u" rel="up">Basic Shell Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -920,26 +986,19 @@ in a variety of ways: in a pipeline in which the output of one command
becomes the input of a second, in a loop or conditional construct, or in
some other grouping.
</p>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Reserved-Words" accesskey="1">Reserved Words</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Words that have special meaning to the shell.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Simple-Commands" accesskey="2">Simple Commands</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The most common type of command.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Pipelines" accesskey="3">Pipelines</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Connecting the input and output of several
- commands.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Lists" accesskey="4">Lists</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to execute commands sequentially.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Compound-Commands" accesskey="5">Compound Commands</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Shell commands for control flow.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Coprocesses" accesskey="6">Coprocesses</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Two-way communication between commands.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#GNU-Parallel" accesskey="7">GNU Parallel</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Running commands in parallel.
-</td></tr>
-</table>
+<ul class="section-toc">
+<li><a href="#Reserved-Words" accesskey="1">Reserved Words</a></li>
+<li><a href="#Simple-Commands" accesskey="2">Simple Commands</a></li>
+<li><a href="#Pipelines" accesskey="3">Pipelines</a></li>
+<li><a href="#Lists" accesskey="4">Lists of Commands</a></li>
+<li><a href="#Compound-Commands" accesskey="5">Compound Commands</a></li>
+<li><a href="#Coprocesses" accesskey="6">Coprocesses</a></li>
+<li><a href="#GNU-Parallel" accesskey="7">GNU Parallel</a></li>
+</ul>
<hr>
-<span id="Reserved-Words"></span><div class="header">
+<div class="subsection" id="Reserved-Words">
+<div class="header">
<p>
Next: <a href="#Simple-Commands" accesskey="n" rel="next">Simple Commands</a>, Up: <a href="#Shell-Commands" accesskey="u" rel="up">Shell Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -965,7 +1024,9 @@ the first word of a command (see below for exceptions):
words if they are the third word in a <code>for</code> command.
</p>
<hr>
-<span id="Simple-Commands"></span><div class="header">
+</div>
+<div class="subsection" id="Simple-Commands">
+<div class="header">
<p>
Next: <a href="#Pipelines" accesskey="n" rel="next">Pipelines</a>, Previous: <a href="#Reserved-Words" accesskey="p" rel="prev">Reserved Words</a>, Up: <a href="#Shell-Commands" accesskey="u" rel="up">Shell Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -984,9 +1045,11 @@ by the <small>POSIX</small> 1003.1 <code>waitpid</code> function, or 128+<var>n<
the command was terminated by signal <var>n</var>.
</p>
<hr>
-<span id="Pipelines"></span><div class="header">
+</div>
+<div class="subsection" id="Pipelines">
+<div class="header">
<p>
-Next: <a href="#Lists" accesskey="n" rel="next">Lists</a>, Previous: <a href="#Simple-Commands" accesskey="p" rel="prev">Simple Commands</a>, Up: <a href="#Shell-Commands" accesskey="u" rel="up">Shell Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Lists" accesskey="n" rel="next">Lists of Commands</a>, Previous: <a href="#Simple-Commands" accesskey="p" rel="prev">Simple Commands</a>, Up: <a href="#Shell-Commands" accesskey="u" rel="up">Shell Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Pipelines-1"></span><h4 class="subsection">3.2.3 Pipelines</h4>
<span id="index-pipeline"></span>
@@ -1006,15 +1069,15 @@ one of the control operators &lsquo;<samp>|</samp>&rsquo; or &lsquo;<samp>|&amp;
<p>The output of each command in the pipeline is connected via a pipe
to the input of the next command.
That is, each command reads the previous command&rsquo;s output. This
-connection is performed before any redirections specified by the
-command.
+connection is performed before any redirections specified by
+<var>command1</var>.
</p>
<p>If &lsquo;<samp>|&amp;</samp>&rsquo; is used, <var>command1</var>&rsquo;s standard error, in addition to
its standard output, is connected to
<var>command2</var>&rsquo;s standard input through the pipe;
it is shorthand for <code>2&gt;&amp;1 |</code>.
This implicit redirection of the standard error to the standard output is
-performed after any redirections specified by the command.
+performed after any redirections specified by <var>command1</var>.
</p>
<p>The reserved word <code>time</code> causes timing statistics
to be printed for the pipeline once it finishes.
@@ -1038,14 +1101,17 @@ total user and system time consumed by the shell and its children.
The <code>TIMEFORMAT</code> variable may be used to specify the format of
the time information.
</p>
-<p>If the pipeline is not executed asynchronously (see <a href="#Lists">Lists</a>), the
+<p>If the pipeline is not executed asynchronously (see <a href="#Lists">Lists of Commands</a>), the
shell waits for all commands in the pipeline to complete.
</p>
-<p>Each command in a pipeline is executed in its own subshell, which is a
+<p>Each command in a multi-command pipeline,
+where pipes are created,
+is executed in its own <em>subshell</em>, which is a
separate process (see <a href="#Command-Execution-Environment">Command Execution Environment</a>).
If the <code>lastpipe</code> option is enabled using the <code>shopt</code> builtin
(see <a href="#The-Shopt-Builtin">The Shopt Builtin</a>),
-the last element of a pipeline may be run by the shell process.
+the last element of a pipeline may be run by the shell process
+when job control is not active.
</p>
<p>The exit
status of a pipeline is the exit status of the last command in the
@@ -1061,7 +1127,9 @@ The shell waits for all commands in the pipeline to terminate before
returning a value.
</p>
<hr>
-<span id="Lists"></span><div class="header">
+</div>
+<div class="subsection" id="Lists">
+<div class="header">
<p>
Next: <a href="#Compound-Commands" accesskey="n" rel="next">Compound Commands</a>, Previous: <a href="#Pipelines" accesskey="p" rel="prev">Pipelines</a>, Up: <a href="#Shell-Commands" accesskey="u" rel="up">Shell Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -1082,8 +1150,8 @@ to delimit commands, equivalent to a semicolon.
</p>
<p>If a command is terminated by the control operator &lsquo;<samp>&amp;</samp>&rsquo;,
the shell executes the command asynchronously in a subshell.
-This is known as executing the command in the <var>background</var>,
-and these are referred to as <var>asynchronous</var> commands.
+This is known as executing the command in the <em>background</em>,
+and these are referred to as <em>asynchronous</em> commands.
The shell does not wait for the command to finish, and the return
status is 0 (true).
When job control is not active (see <a href="#Job-Control">Job Control</a>),
@@ -1120,21 +1188,15 @@ returns a non-zero exit status.
executed in the list.
</p>
<hr>
-<span id="Compound-Commands"></span><div class="header">
+</div>
+<div class="subsection" id="Compound-Commands">
+<div class="header">
<p>
-Next: <a href="#Coprocesses" accesskey="n" rel="next">Coprocesses</a>, Previous: <a href="#Lists" accesskey="p" rel="prev">Lists</a>, Up: <a href="#Shell-Commands" accesskey="u" rel="up">Shell Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Coprocesses" accesskey="n" rel="next">Coprocesses</a>, Previous: <a href="#Lists" accesskey="p" rel="prev">Lists of Commands</a>, Up: <a href="#Shell-Commands" accesskey="u" rel="up">Shell Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Compound-Commands-1"></span><h4 class="subsection">3.2.5 Compound Commands</h4>
<span id="index-commands_002c-compound"></span>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Looping-Constructs" accesskey="1">Looping Constructs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Shell commands for iterative action.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Conditional-Constructs" accesskey="2">Conditional Constructs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Shell commands for conditional execution.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Command-Grouping" accesskey="3">Command Grouping</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Ways to group commands.
-</td></tr>
-</table>
<p>Compound commands are the shell programming language constructs.
Each construct begins with a reserved word or control operator and is
@@ -1149,8 +1211,14 @@ followed by a newline in place of a semicolon.
<p>Bash provides looping constructs, conditional commands, and mechanisms
to group commands and execute them as a unit.
</p>
+<ul class="section-toc">
+<li><a href="#Looping-Constructs" accesskey="1">Looping Constructs</a></li>
+<li><a href="#Conditional-Constructs" accesskey="2">Conditional Constructs</a></li>
+<li><a href="#Command-Grouping" accesskey="3">Grouping Commands</a></li>
+</ul>
<hr>
-<span id="Looping-Constructs"></span><div class="header">
+<div class="subsubsection" id="Looping-Constructs">
+<div class="header">
<p>
Next: <a href="#Conditional-Constructs" accesskey="n" rel="next">Conditional Constructs</a>, Up: <a href="#Compound-Commands" accesskey="u" rel="up">Compound Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -1163,9 +1231,8 @@ Next: <a href="#Conditional-Constructs" accesskey="n" rel="next">Conditional Con
command&rsquo;s syntax, it may be replaced with one or more newlines.
</p>
<dl compact="compact">
-<dt><code>until</code></dt>
-<dd><span id="index-until"></span>
-<span id="index-do"></span>
+<dt id='index-until'><span><code>until</code><a href='#index-until' class='copiable-anchor'> &para;</a></span></dt>
+<dd><span id="index-do"></span>
<span id="index-done"></span>
<p>The syntax of the <code>until</code> command is:
</p>
@@ -1179,9 +1246,8 @@ The return status is the exit status of the last command executed
in <var>consequent-commands</var>, or zero if none was executed.
</p>
</dd>
-<dt><code>while</code></dt>
-<dd><span id="index-while"></span>
-<p>The syntax of the <code>while</code> command is:
+<dt id='index-while'><span><code>while</code><a href='#index-while' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>The syntax of the <code>while</code> command is:
</p>
<div class="example">
<pre class="example">while <var>test-commands</var>; do <var>consequent-commands</var>; done
@@ -1193,9 +1259,8 @@ The return status is the exit status of the last command executed
in <var>consequent-commands</var>, or zero if none was executed.
</p>
</dd>
-<dt><code>for</code></dt>
-<dd><span id="index-for"></span>
-<p>The syntax of the <code>for</code> command is:
+<dt id='index-for'><span><code>for</code><a href='#index-for' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>The syntax of the <code>for</code> command is:
</p>
<div class="example">
<pre class="example">for <var>name</var> [ [in [<var>words</var> &hellip;] ] ; ] do <var>commands</var>; done
@@ -1235,17 +1300,18 @@ that is executed, or false if any of the expressions is invalid.
may be used to control loop execution.
</p>
<hr>
-<span id="Conditional-Constructs"></span><div class="header">
+</div>
+<div class="subsubsection" id="Conditional-Constructs">
+<div class="header">
<p>
-Next: <a href="#Command-Grouping" accesskey="n" rel="next">Command Grouping</a>, Previous: <a href="#Looping-Constructs" accesskey="p" rel="prev">Looping Constructs</a>, Up: <a href="#Compound-Commands" accesskey="u" rel="up">Compound Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Command-Grouping" accesskey="n" rel="next">Grouping Commands</a>, Previous: <a href="#Looping-Constructs" accesskey="p" rel="prev">Looping Constructs</a>, Up: <a href="#Compound-Commands" accesskey="u" rel="up">Compound Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Conditional-Constructs-1"></span><h4 class="subsubsection">3.2.5.2 Conditional Constructs</h4>
<span id="index-commands_002c-conditional"></span>
<dl compact="compact">
-<dt><code>if</code></dt>
-<dd><span id="index-if"></span>
-<span id="index-then"></span>
+<dt id='index-if'><span><code>if</code><a href='#index-if' class='copiable-anchor'> &para;</a></span></dt>
+<dd><span id="index-then"></span>
<span id="index-else"></span>
<span id="index-elif"></span>
<span id="index-fi"></span>
@@ -1273,9 +1339,8 @@ The return status is the exit status of the last command executed, or
zero if no condition tested true.
</p>
</dd>
-<dt><code>case</code></dt>
-<dd><span id="index-case"></span>
-<span id="index-in"></span>
+<dt id='index-case'><span><code>case</code><a href='#index-case' class='copiable-anchor'> &para;</a></span></dt>
+<dd><span id="index-in"></span>
<span id="index-esac"></span>
<p>The syntax of the <code>case</code> command is:
</p>
@@ -1302,9 +1367,10 @@ as a <var>clause</var>.
The <var>word</var> undergoes tilde expansion, parameter expansion, command
substitution, arithmetic expansion, and quote removal
(see <a href="#Shell-Parameter-Expansion">Shell Parameter Expansion</a>)
-before matching is
-attempted. Each <var>pattern</var> undergoes tilde expansion, parameter
-expansion, command substitution, and arithmetic expansion.
+before matching is attempted.
+Each <var>pattern</var> undergoes tilde expansion, parameter expansion,
+command substitution, arithmetic expansion, process substitution, and
+quote removal.
</p>
<p>There may be an arbitrary number of <code>case</code> clauses, each terminated
by a &lsquo;<samp>;;</samp>&rsquo;, &lsquo;<samp>;&amp;</samp>&rsquo;, or &lsquo;<samp>;;&amp;</samp>&rsquo;.
@@ -1342,9 +1408,8 @@ continuing the case statement execution as if the pattern list had not matched.
return status is the exit status of the <var>command-list</var> executed.
</p>
</dd>
-<dt><code>select</code></dt>
-<dd><span id="index-select"></span>
-
+<dt id='index-select'><span><code>select</code><a href='#index-select' class='copiable-anchor'> &para;</a></span></dt>
+<dd>
<p>The <code>select</code> construct allows the easy generation of menus.
It has almost the same syntax as the <code>for</code> command:
</p>
@@ -1353,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>
@@ -1383,24 +1448,24 @@ done
</pre></div>
</dd>
-<dt><code>((&hellip;))</code></dt>
+<dt><span><code>((&hellip;))</code></span></dt>
<dd><div class="example">
<pre class="example">(( <var>expression</var> ))
</pre></div>
<p>The arithmetic <var>expression</var> is evaluated according to the rules
described below (see <a href="#Shell-Arithmetic">Shell Arithmetic</a>).
+The <var>expression</var> undergoes the same expansions
+as if it were within double quotes,
+but double quote characters in <var>expression</var> are not treated specially
+are removed.
If the value of the expression is non-zero, the return status is 0;
-otherwise the return status is 1. This is exactly equivalent to
-</p><div class="example">
-<pre class="example">let &quot;<var>expression</var>&quot;
-</pre></div>
-<p>See <a href="#Bash-Builtins">Bash Builtins</a>, for a full description of the <code>let</code> builtin.
+otherwise the return status is 1.
</p>
+
</dd>
-<dt><code>[[&hellip;]]</code></dt>
-<dd><span id="index-_005b_005b"></span>
-<span id="index-_005d_005d"></span>
+<dt id='index-_005b_005b'><span><code>[[&hellip;]]</code><a href='#index-_005b_005b' class='copiable-anchor'> &para;</a></span></dt>
+<dd><span id="index-_005d_005d"></span>
<div class="example">
<pre class="example">[[ <var>expression</var> ]]
</pre></div>
@@ -1409,10 +1474,12 @@ otherwise the return status is 1. This is exactly equivalent to
the conditional expression <var>expression</var>.
Expressions are composed of the primaries described below in
<a href="#Bash-Conditional-Expressions">Bash Conditional Expressions</a>.
-Word splitting and filename expansion are not performed on the words
-between the <code>[[</code> and <code>]]</code>; tilde expansion, parameter and
+The words between the <code>[[</code> and <code>]]</code> do not undergo word splitting
+and filename expansion.
+The shell performs tilde expansion, parameter and
variable expansion, arithmetic expansion, command substitution, process
-substitution, and quote removal are performed.
+substitution, and quote removal on those words
+(the expansions that would occur if the words were enclosed in double quotes).
Conditional operators such as &lsquo;<samp>-f</samp>&rsquo; must be unquoted to be recognized
as primaries.
</p>
@@ -1430,78 +1497,110 @@ is enabled, the match is performed without regard to the case
of alphabetic characters.
The return value is 0 if the string matches (&lsquo;<samp>==</samp>&rsquo;) or does not
match (&lsquo;<samp>!=</samp>&rsquo;) the pattern, and 1 otherwise.
-Any part of the pattern may be quoted to force the quoted portion
-to be matched as a string.
+</p>
+<p>If you quote any part of the pattern,
+using any of the shell&rsquo;s quoting mechanisms,
+the quoted portion is matched literally.
+This means every character in the quoted portion matches itself,
+instead of having any special pattern matching meaning.
</p>
<p>An additional binary operator, &lsquo;<samp>=~</samp>&rsquo;, is available, with the same
precedence as &lsquo;<samp>==</samp>&rsquo; and &lsquo;<samp>!=</samp>&rsquo;.
-When it is used, the string to the right of the operator is considered
-a <small>POSIX</small> extended regular expression and matched accordingly
+When you use &lsquo;<samp>=~</samp>&rsquo;, the string to the right of the operator is considered
+a <small>POSIX</small> extended regular expression pattern and matched accordingly
(using the <small>POSIX</small> <code>regcomp</code> and <code>regexec</code> interfaces
usually described in <i>regex</i>(3)).
-The return value is 0 if the string matches
-the pattern, and 1 otherwise.
+The return value is 0 if the string matches the pattern, and 1 if it does not.
If the regular expression is syntactically incorrect, the conditional
-expression&rsquo;s return value is 2.
+expression returns 2.
If the <code>nocasematch</code> shell option
(see the description of <code>shopt</code> in <a href="#The-Shopt-Builtin">The Shopt Builtin</a>)
is enabled, the match is performed without regard to the case
of alphabetic characters.
-Any part of the pattern may be quoted to force the quoted portion
-to be matched as a string.
-Bracket expressions in regular expressions must be treated carefully,
-since normal quoting characters lose their meanings between brackets.
+</p>
+<p>You can quote any part of the pattern
+to force the quoted portion to be matched literally
+instead of as a regular expression (see above).
If the pattern is stored in a shell variable, quoting the variable
-expansion forces the entire pattern to be matched as a string.
+expansion forces the entire pattern to be matched literally.
</p>
<p>The pattern will match if it matches any part of the string.
-Anchor the pattern using the &lsquo;<samp>^</samp>&rsquo; and &lsquo;<samp>$</samp>&rsquo; regular expression
-operators to force it to match the entire string.
-The array variable <code>BASH_REMATCH</code> records which parts of the string
-matched the pattern.
-The element of <code>BASH_REMATCH</code> with index 0 contains the portion of
-the string matching the entire regular expression.
-Substrings matched by parenthesized subexpressions within the regular
-expression are saved in the remaining <code>BASH_REMATCH</code> indices.
-The element of <code>BASH_REMATCH</code> with index <var>n</var> is the portion of the
-string matching the <var>n</var>th parenthesized subexpression.
+If you want to force the pattern to match the entire string,
+anchor the pattern using the &lsquo;<samp>^</samp>&rsquo; and &lsquo;<samp>$</samp>&rsquo; regular expression
+operators.
</p>
<p>For example, the following will match a line
-(stored in the shell variable <var>line</var>)
+(stored in the shell variable <code>line</code>)
if there is a sequence of characters anywhere in the value consisting of
any number, including zero, of
characters in the <code>space</code> character class,
-zero or one instances of &lsquo;<samp>a</samp>&rsquo;, then a &lsquo;<samp>b</samp>&rsquo;:
-</p><div class="example">
+immediately followed by zero or one instances of &lsquo;<samp>a</samp>&rsquo;,
+then a &lsquo;<samp>b</samp>&rsquo;:
+</p>
+<div class="example">
<pre class="example">[[ $line =~ [[:space:]]*(a)?b ]]
</pre></div>
-<p>That means values like &lsquo;<samp>aab</samp>&rsquo; and &lsquo;<samp> aaaaaab</samp>&rsquo; will match, as
-will a line containing a &lsquo;<samp>b</samp>&rsquo; anywhere in its value.
+<p>That means values for <code>line</code> like
+&lsquo;<samp>aab</samp>&rsquo;, &lsquo;<samp> aaaaaab</samp>&rsquo;, &lsquo;<samp>xaby</samp>&rsquo;, and &lsquo;<samp> ab</samp>&rsquo;
+will all match,
+as will a line containing a &lsquo;<samp>b</samp>&rsquo; anywhere in its value.
+</p>
+<p>If you want to match a character that&rsquo;s special to the regular expression
+grammar (&lsquo;<samp>^$|[]()\.*+?</samp>&rsquo;), it has to be quoted to remove its special
+meaning.
+This means that in the pattern &lsquo;<samp>xxx.txt</samp>&rsquo;, the &lsquo;<samp>.</samp>&rsquo; matches any
+character in the string (its usual regular expression meaning), but in the
+pattern &lsquo;<samp>&quot;xxx.txt&quot;</samp>&rsquo;, it can only match a literal &lsquo;<samp>.</samp>&rsquo;.
</p>
-<p>Storing the regular expression in a shell variable is often a useful
+<p>Likewise, if you want to include a character in your pattern that has a
+special meaning to the regular expression grammar, you must make sure it&rsquo;s
+not quoted.
+If you want to anchor a pattern at the beginning or end of the string,
+for instance, you cannot quote the &lsquo;<samp>^</samp>&rsquo; or &lsquo;<samp>$</samp>&rsquo;
+characters using any form of shell quoting.
+</p>
+<p>If you want to match &lsquo;<samp>initial string</samp>&rsquo; at the start of a line,
+the following will work:
+</p><div class="example">
+<pre class="example">[[ $line =~ ^&quot;initial string&quot; ]]
+</pre></div>
+<p>but this will not:
+</p><div class="example">
+<pre class="example">[[ $line =~ &quot;^initial string&quot; ]]
+</pre></div>
+<p>because in the second example the &lsquo;<samp>^</samp>&rsquo; is quoted and doesn&rsquo;t have its
+usual special meaning.
+</p>
+<p>It is sometimes difficult to specify a regular expression properly
+without using quotes, or to keep track of the quoting used by regular
+expressions while paying attention to
+shell quoting and the shell&rsquo;s quote removal.
+Storing the regular expression in a shell variable is often a useful
way to avoid problems with quoting characters that are special to the
shell.
-It is sometimes difficult to specify a regular expression literally
-without using quotes, or to keep track of the quoting used by regular
-expressions while paying attention to the shell&rsquo;s quote removal.
-Using a shell variable to store the pattern decreases these problems.
-For example, the following is equivalent to the above:
-</p><div class="example">
+For example, the following is equivalent to the pattern used above:
+</p>
+<div class="example">
<pre class="example">pattern='[[:space:]]*(a)?b'
[[ $line =~ $pattern ]]
</pre></div>
-<p>If you want to match a character that&rsquo;s special to the regular expression
-grammar, it has to be quoted to remove its special meaning.
-This means that in the pattern &lsquo;<samp>xxx.txt</samp>&rsquo;, the &lsquo;<samp>.</samp>&rsquo; matches any
-character in the string (its usual regular expression meaning), but in the
-pattern &lsquo;<samp>&quot;xxx.txt&quot;</samp>&rsquo; it can only match a literal &lsquo;<samp>.</samp>&rsquo;.
-Shell programmers should take special care with backslashes, since backslashes
-are used both by the shell and regular expressions to remove the special
-meaning from the following character.
-The following two sets of commands are <em>not</em> equivalent:
-</p><div class="example">
+<p>Shell programmers should take special care with backslashes, since
+backslashes are used by both the shell and regular expressions to remove
+the special meaning from the following character.
+This means that after the shell&rsquo;s word expansions complete
+(see <a href="#Shell-Expansions">Shell Expansions</a>),
+any backslashes remaining in parts of the pattern
+that were originally not quoted can remove the
+special meaning of pattern characters.
+If any part of the pattern is quoted, the shell does its best to ensure that
+the regular expression treats those remaining backslashes as literal,
+if they appeared in a quoted portion.
+</p>
+<p>The following two sets of commands are <em>not</em> equivalent:
+</p>
+<div class="example">
<pre class="example">pattern='\.'
[[ . =~ $pattern ]]
@@ -1513,30 +1612,71 @@ The following two sets of commands are <em>not</em> equivalent:
<p>The first two matches will succeed, but the second two will not, because
in the second two the backslash will be part of the pattern to be matched.
-In the first two examples, the backslash removes the special meaning from
+In the first two examples, the pattern passed to the regular expression
+parser is &lsquo;<samp>\.</samp>&rsquo;. The backslash removes the special meaning from
&lsquo;<samp>.</samp>&rsquo;, so the literal &lsquo;<samp>.</samp>&rsquo; matches.
+In the second two examples, the pattern passed to the regular expression
+parser has the backslash quoted (e.g., &lsquo;<samp>\\\.</samp>&rsquo;), which will not match
+the string, since it does not contain a backslash.
If the string in the first examples were anything other than &lsquo;<samp>.</samp>&rsquo;, say
&lsquo;<samp>a</samp>&rsquo;, the pattern would not match, because the quoted &lsquo;<samp>.</samp>&rsquo; in the
pattern loses its special meaning of matching any single character.
</p>
+<p>Bracket expressions in regular expressions can be sources of errors as well,
+since characters that are normally special in regular expressions
+lose their special meanings between brackets.
+However, you can use bracket expressions to match special pattern characters
+without quoting them, so they are sometimes useful for this purpose.
+</p>
+<p>Though it might seem like a strange way to write it, the following pattern
+will match a &lsquo;<samp>.</samp>&rsquo; in the string:
+</p>
+<div class="example">
+<pre class="example">[[ . =~ [.] ]]
+</pre></div>
+
+<p>The shell performs any word expansions before passing the pattern
+to the regular expression functions,
+so you can assume that the shell&rsquo;s quoting takes precedence.
+As noted above, the regular expression parser will interpret any
+unquoted backslashes remaining in the pattern after shell expansion
+according to its own rules.
+The intention is to avoid making shell programmers quote things twice
+as much as possible, so shell quoting should be sufficient to quote
+special pattern characters where that&rsquo;s necessary.
+</p>
+<p>The array variable <code>BASH_REMATCH</code> records which parts of the string
+matched the pattern.
+The element of <code>BASH_REMATCH</code> with index 0 contains the portion of
+the string matching the entire regular expression.
+Substrings matched by parenthesized subexpressions within the regular
+expression are saved in the remaining <code>BASH_REMATCH</code> indices.
+The element of <code>BASH_REMATCH</code> with index <var>n</var> is the portion of the
+string matching the <var>n</var>th parenthesized subexpression.
+</p>
+<p>Bash sets
+<code>BASH_REMATCH</code>
+in the global scope; declaring it as a local variable will lead to
+unexpected results.
+</p>
<p>Expressions may be combined using the following operators, listed
in decreasing order of precedence:
</p>
<dl compact="compact">
-<dt><code>( <var>expression</var> )</code></dt>
+<dt><span><code>( <var>expression</var> )</code></span></dt>
<dd><p>Returns the value of <var>expression</var>.
This may be used to override the normal precedence of operators.
</p>
</dd>
-<dt><code>! <var>expression</var></code></dt>
+<dt><span><code>! <var>expression</var></code></span></dt>
<dd><p>True if <var>expression</var> is false.
</p>
</dd>
-<dt><code><var>expression1</var> &amp;&amp; <var>expression2</var></code></dt>
+<dt><span><code><var>expression1</var> &amp;&amp; <var>expression2</var></code></span></dt>
<dd><p>True if both <var>expression1</var> and <var>expression2</var> are true.
</p>
</dd>
-<dt><code><var>expression1</var> || <var>expression2</var></code></dt>
+<dt><span><code><var>expression1</var> || <var>expression2</var></code></span></dt>
<dd><p>True if either <var>expression1</var> or <var>expression2</var> is true.
</p></dd>
</dl>
@@ -1548,7 +1688,9 @@ value of the entire conditional expression.
</dl>
<hr>
-<span id="Command-Grouping"></span><div class="header">
+</div>
+<div class="subsubsection" id="Command-Grouping">
+<div class="header">
<p>
Previous: <a href="#Conditional-Constructs" accesskey="p" rel="prev">Conditional Constructs</a>, Up: <a href="#Compound-Commands" accesskey="u" rel="up">Compound Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -1561,21 +1703,20 @@ to the entire command list. For example, the output of all the
commands in the list may be redirected to a single stream.
</p>
<dl compact="compact">
-<dt><code>()</code></dt>
+<dt><span><code>()</code></span></dt>
<dd><div class="example">
<pre class="example">( <var>list</var> )
</pre></div>
-<p>Placing a list of commands between parentheses causes a subshell
-environment to be created (see <a href="#Command-Execution-Environment">Command Execution Environment</a>), and each
-of the commands in <var>list</var> to be executed in that subshell. Since the
-<var>list</var> is executed in a subshell, variable assignments do not remain in
-effect after the subshell completes.
+<p>Placing a list of commands between parentheses forces the shell to create
+a subshell (see <a href="#Command-Execution-Environment">Command Execution Environment</a>), and each
+of the commands in <var>list</var> is executed in that subshell environment.
+Since the <var>list</var> is executed in a subshell, variable assignments do not
+remain in effect after the subshell completes.
</p>
</dd>
-<dt><code>{}</code></dt>
-<dd><span id="index-_007b"></span>
-<span id="index-_007d"></span>
+<dt id='index-_007b'><span><code>{}</code><a href='#index-_007b' class='copiable-anchor'> &para;</a></span></dt>
+<dd><span id="index-_007d"></span>
<div class="example">
<pre class="example">{ <var>list</var>; }
</pre></div>
@@ -1588,9 +1729,9 @@ The semicolon (or newline) following <var>list</var> is required.
<p>In addition to the creation of a subshell, there is a subtle difference
between these two constructs due to historical reasons. The braces
-are <code>reserved words</code>, so they must be separated from the <var>list</var>
+are reserved words, so they must be separated from the <var>list</var>
by <code>blank</code>s or other shell metacharacters.
-The parentheses are <code>operators</code>, and are
+The parentheses are operators, and are
recognized as separate tokens by the shell even if they are not separated
from the <var>list</var> by whitespace.
</p>
@@ -1598,7 +1739,10 @@ from the <var>list</var> by whitespace.
<var>list</var>.
</p>
<hr>
-<span id="Coprocesses"></span><div class="header">
+</div>
+</div>
+<div class="subsection" id="Coprocesses">
+<div class="header">
<p>
Next: <a href="#GNU-Parallel" accesskey="n" rel="next">GNU Parallel</a>, Previous: <a href="#Compound-Commands" accesskey="p" rel="prev">Compound Commands</a>, Up: <a href="#Shell-Commands" accesskey="u" rel="up">Shell Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -1611,26 +1755,53 @@ A coprocess is executed asynchronously in a subshell, as if the command
had been terminated with the &lsquo;<samp>&amp;</samp>&rsquo; control operator, with a two-way pipe
established between the executing shell and the coprocess.
</p>
-<p>The format for a coprocess is:
-</p><div class="example">
+<p>The syntax for a coprocess is:
+</p>
+<div class="example">
<pre class="example">coproc [<var>NAME</var>] <var>command</var> [<var>redirections</var>]
</pre></div>
<p>This creates a coprocess named <var>NAME</var>.
-If <var>NAME</var> is not supplied, the default name is <var>COPROC</var>.
-<var>NAME</var> must not be supplied if <var>command</var> is a simple
-command (see <a href="#Simple-Commands">Simple Commands</a>); otherwise, it is interpreted as
-the first word of the simple command.
+<var>command</var> may be either a simple command (see <a href="#Simple-Commands">Simple Commands</a>)
+or a compound command (see <a href="#Compound-Commands">Compound Commands</a>).
+<var>NAME</var> is a shell variable name.
+If <var>NAME</var> is not supplied, the default name is <code>COPROC</code>.
+</p>
+<p>The recommended form to use for a coprocess is
+</p>
+<div class="example">
+<pre class="example">coproc <var>NAME</var> { <var>command</var>; }
+</pre></div>
+
+<p>This form is recommended because simple commands result in the coprocess
+always being named <code>COPROC</code>, and it is simpler to use and more complete
+than the other compound commands.
+</p>
+<p>There are other forms of coprocesses:
+</p>
+<div class="example">
+<pre class="example">coproc <var>NAME</var> <var>compound-command</var>
+coproc <var>compound-command</var>
+coproc <var>simple-command</var>
+</pre></div>
+
+<p>If <var>command</var> is a compound command, <var>NAME</var> is optional. The
+word following <code>coproc</code> determines whether that word is interpreted
+as a variable name: it is interpreted as <var>NAME</var> if it is not a
+reserved word that introduces a compound command.
+If <var>command</var> is a simple command, <var>NAME</var> is not allowed; this
+is to avoid confusion between <var>NAME</var> and the first word of the simple
+command.
</p>
<p>When the coprocess is executed, the shell creates an array variable
(see <a href="#Arrays">Arrays</a>)
-named <code>NAME</code> in the context of the executing shell.
+named <var>NAME</var> in the context of the executing shell.
The standard output of <var>command</var>
is connected via a pipe to a file descriptor in the executing shell,
-and that file descriptor is assigned to <code>NAME</code>[0].
+and that file descriptor is assigned to <var>NAME</var>[0].
The standard input of <var>command</var>
is connected via a pipe to a file descriptor in the executing shell,
-and that file descriptor is assigned to <code>NAME</code>[1].
+and that file descriptor is assigned to <var>NAME</var>[1].
This pipe is established before any redirections specified by the
command (see <a href="#Redirections">Redirections</a>).
The file descriptors can be utilized as arguments to shell commands
@@ -1639,7 +1810,7 @@ Other than those created to execute command and process substitutions,
the file descriptors are not available in subshells.
</p>
<p>The process ID of the shell spawned to execute the coprocess is
-available as the value of the variable <code>NAME</code>_PID.
+available as the value of the variable <code><var>NAME</var>_PID</code>.
The <code>wait</code>
builtin command may be used to wait for the coprocess to terminate.
</p>
@@ -1648,7 +1819,9 @@ the <code>coproc</code> command always returns success.
The return status of a coprocess is the exit status of <var>command</var>.
</p>
<hr>
-<span id="GNU-Parallel"></span><div class="header">
+</div>
+<div class="subsection" id="GNU-Parallel">
+<div class="header">
<p>
Previous: <a href="#Coprocesses" accesskey="p" rel="prev">Coprocesses</a>, Up: <a href="#Shell-Commands" accesskey="u" rel="up">Shell Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -1665,113 +1838,15 @@ Parallel provides shorthand references to many of the most common operations
the input source, and so on). Parallel can replace <code>xargs</code> or feed
commands from its input sources to several different instances of Bash.
</p>
-<p>For a complete description, refer to the GNU Parallel documentation. A few
-examples should provide a brief introduction to its use.
-</p>
-<p>For example, it is easy to replace <code>xargs</code> to gzip all html files in the
-current directory and its subdirectories:
-</p><div class="example">
-<pre class="example">find . -type f -name '*.html' -print | parallel gzip
-</pre></div>
-<p>If you need to protect special characters such as newlines in file names,
-use find&rsquo;s <samp>-print0</samp> option and parallel&rsquo;s <samp>-0</samp> option.
-</p>
-<p>You can use Parallel to move files from the current directory when the
-number of files is too large to process with one <code>mv</code> invocation:
-</p><div class="example">
-<pre class="example">printf '%s\n' * | parallel mv {} destdir
-</pre></div>
-
-<p>As you can see, the {} is replaced with each line read from standard input.
-While using <code>ls</code> will work in most instances, it is not sufficient to
-deal with all filenames. <code>printf</code> is a shell builtin, and therefore is
-not subject to the kernel&rsquo;s limit on the number of arguments to a program,
-so you can use &lsquo;<samp>*</samp>&rsquo; (but see below about the <code>dotglob</code> shell option).
-If you need to accommodate special characters in filenames, you can use
-</p>
-<div class="example">
-<pre class="example">printf '%s\0' * | parallel -0 mv {} destdir
-</pre></div>
-
-<p>as alluded to above.
-</p>
-<p>This will run as many <code>mv</code> commands as there are files in the current
-directory.
-You can emulate a parallel <code>xargs</code> by adding the <samp>-X</samp> option:
-</p><div class="example">
-<pre class="example">printf '%s\0' * | parallel -0 -X mv {} destdir
-</pre></div>
-
-<p>(You may have to modify the pattern if you have the <code>dotglob</code> option
-enabled.)
-</p>
-<p>GNU Parallel can replace certain common idioms that operate on lines read
-from a file (in this case, filenames listed one per line):
-</p><div class="example">
-<pre class="example"> while IFS= read -r x; do
- do-something1 &quot;$x&quot; &quot;config-$x&quot;
- do-something2 &lt; &quot;$x&quot;
- done &lt; file | process-output
-</pre></div>
-
-<p>with a more compact syntax reminiscent of lambdas:
-</p><div class="example">
-<pre class="example">cat list | parallel &quot;do-something1 {} config-{} ; do-something2 &lt; {}&quot; |
- process-output
-</pre></div>
-
-<p>Parallel provides a built-in mechanism to remove filename extensions, which
-lends itself to batch file transformations or renaming:
-</p><div class="example">
-<pre class="example">ls *.gz | parallel -j+0 &quot;zcat {} | bzip2 &gt;{.}.bz2 &amp;&amp; rm {}&quot;
-</pre></div>
-<p>This will recompress all files in the current directory with names ending
-in .gz using bzip2, running one job per CPU (-j+0) in parallel.
-(We use <code>ls</code> for brevity here; using <code>find</code> as above is more
-robust in the face of filenames containing unexpected characters.)
-Parallel can take arguments from the command line; the above can also be
-written as
-</p>
-<div class="example">
-<pre class="example">parallel &quot;zcat {} | bzip2 &gt;{.}.bz2 &amp;&amp; rm {}&quot; ::: *.gz
-</pre></div>
-
-<p>If a command generates output, you may want to preserve the input order in
-the output. For instance, the following command
-</p><div class="example">
-<pre class="example">{
- echo foss.org.my ;
- echo debian.org ;
- echo freenetproject.org ;
-} | parallel traceroute
-</pre></div>
-<p>will display as output the traceroute invocation that finishes first.
-Adding the <samp>-k</samp> option
-</p><div class="example">
-<pre class="example">{
- echo foss.org.my ;
- echo debian.org ;
- echo freenetproject.org ;
-} | parallel -k traceroute
-</pre></div>
-<p>will ensure that the output of <code>traceroute foss.org.my</code> is displayed first.
-</p>
-<p>Finally, Parallel can be used to run a sequence of shell commands in parallel,
-similar to &lsquo;<samp>cat file | bash</samp>&rsquo;.
-It is not uncommon to take a list of filenames, create a series of shell
-commands to operate on them, and feed that list of commands to a shell.
-Parallel can speed this up. Assuming that <samp>file</samp> contains a list of
-shell commands, one per line,
-</p>
-<div class="example">
-<pre class="example">parallel -j 10 &lt; file
-</pre></div>
-
-<p>will evaluate the commands using the shell (since no explicit command is
-supplied as an argument), in blocks of ten shell jobs at a time.
+<p>For a complete description, refer to the GNU Parallel documentation, which
+is available at
+<a href="https://www.gnu.org/software/parallel/parallel_tutorial.html">https://www.gnu.org/software/parallel/parallel_tutorial.html</a>.
</p>
<hr>
-<span id="Shell-Functions"></span><div class="header">
+</div>
+</div>
+<div class="section" id="Shell-Functions">
+<div class="header">
<p>
Next: <a href="#Shell-Parameters" accesskey="n" rel="next">Shell Parameters</a>, Previous: <a href="#Shell-Commands" accesskey="p" rel="prev">Shell Commands</a>, Up: <a href="#Basic-Shell-Features" accesskey="u" rel="up">Basic Shell Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -1803,16 +1878,16 @@ shell context; no new process is created to interpret them.
word <code>function</code> is optional.
If the <code>function</code> reserved
word is supplied, the parentheses are optional.
-The <var>body</var> of the function is the compound command
+The <em>body</em> of the function is the compound command
<var>compound-command</var> (see <a href="#Compound-Commands">Compound Commands</a>).
That command is usually a <var>list</var> enclosed between { and }, but
-may be any compound command listed above,
-with one exception: If the <code>function</code> reserved word is used, but the
-parentheses are not supplied, the braces are required.
+may be any compound command listed above.
+If the <code>function</code> reserved word is used, but the
+parentheses are not supplied, the braces are recommended.
<var>compound-command</var> is executed whenever <var>fname</var> is specified as the
-name of a command.
+name of a simple command.
When the shell is in <small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>),
-<var>fname</var> must be a valid shell <var>name</var> and
+<var>fname</var> must be a valid shell name and
may not be the same as one of the special builtins
(see <a href="#Special-Builtins">Special Builtins</a>).
In default mode, a function name can be any unquoted shell word that does
@@ -1879,17 +1954,29 @@ return status is the exit status of the last command executed
before the <code>return</code>.
</p>
<p>Variables local to the function may be declared with the
-<code>local</code> builtin. These variables are visible only to
+<code>local</code> builtin (<em>local variables</em>).
+Ordinarily, variables and their values
+are shared between a function and its caller.
+These variables are visible only to
the function and the commands it invokes. This is particularly
important when a shell function calls other functions.
</p>
+<p>In the following description, the <em>current scope</em> is a currently-
+executing function.
+Previous scopes consist of that function&rsquo;s caller and so on,
+back to the &quot;global&quot; scope, where the shell is not executing
+any shell function.
+Consequently, a local variable at the current local scope is a variable
+declared using the <code>local</code> or <code>declare</code> builtins in the
+function that is currently executing.
+</p>
<p>Local variables &quot;shadow&quot; variables with the same name declared at
previous scopes. For instance, a local variable declared in a function
hides a global variable of the same name: references and assignments
refer to the local variable, leaving the global variable unmodified.
When the function returns, the global variable is once again visible.
</p>
-<p>The shell uses <var>dynamic scoping</var> to control a variable&rsquo;s visibility
+<p>The shell uses <em>dynamic scoping</em> to control a variable&rsquo;s visibility
within functions.
With dynamic scoping, visible variables and their values
are a result of the sequence of function calls that caused execution
@@ -1901,11 +1988,11 @@ This is also the value that a local variable
declaration &quot;shadows&quot;, and the value that is restored when the function
returns.
</p>
-<p>For example, if a variable <var>var</var> is declared as local in function
-<var>func1</var>, and <var>func1</var> calls another function <var>func2</var>,
-references to <var>var</var> made from within <var>func2</var> will resolve to the
-local variable <var>var</var> from <var>func1</var>, shadowing any global variable
-named <var>var</var>.
+<p>For example, if a variable <code>var</code> is declared as local in function
+<code>func1</code>, and <code>func1</code> calls another function <code>func2</code>,
+references to <code>var</code> made from within <code>func2</code> will resolve to the
+local variable <code>var</code> from <code>func1</code>, shadowing any global variable
+named <code>var</code>.
</p>
<p>The following script demonstrates this behavior.
When executed, the script displays
@@ -1935,20 +2022,23 @@ variable is local to the current scope, <code>unset</code> will unset it;
otherwise the unset will refer to the variable found in any calling scope
as described above.
If a variable at the current local scope is unset, it will remain so
+(appearing as unset)
until it is reset in that scope or until the function returns.
Once the function returns, any instance of the variable at a previous
scope will become visible.
If the unset acts on a variable at a previous scope, any instance of a
-variable with that name that had been shadowed will become visible.
+variable with that name that had been shadowed will become visible
+(see below how <code>localvar_unset</code>shell option changes this behavior).
</p>
<p>Function names and definitions may be listed with the
<samp>-f</samp> option to the <code>declare</code> (<code>typeset</code>)
-builtin command (see <a href="#Bash-Builtins">Bash Builtins</a>).
+builtin command (see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
The <samp>-F</samp> option to <code>declare</code> or <code>typeset</code>
will list the function names only
(and optionally the source file and line number, if the <code>extdebug</code>
shell option is enabled).
-Functions may be exported so that subshells
+Functions may be exported so that child shell processes
+(those created when executing a separate shell invocation)
automatically have them defined with the
<samp>-f</samp> option to the <code>export</code> builtin
(see <a href="#Bourne-Shell-Builtins">Bourne Shell Builtins</a>).
@@ -1959,7 +2049,9 @@ function call stack and restrict the number of function invocations.
By default, no limit is placed on the number of recursive calls.
</p>
<hr>
-<span id="Shell-Parameters"></span><div class="header">
+</div>
+<div class="section" id="Shell-Parameters">
+<div class="header">
<p>
Next: <a href="#Shell-Expansions" accesskey="n" rel="next">Shell Expansions</a>, Previous: <a href="#Shell-Functions" accesskey="p" rel="prev">Shell Functions</a>, Up: <a href="#Basic-Shell-Features" accesskey="u" rel="up">Basic Shell Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -1968,20 +2060,14 @@ Next: <a href="#Shell-Expansions" accesskey="n" rel="next">Shell Expansions</a>,
<span id="index-variable_002c-shell"></span>
<span id="index-shell-variable"></span>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Positional-Parameters" accesskey="1">Positional Parameters</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The shell&rsquo;s command-line arguments.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Special-Parameters" accesskey="2">Special Parameters</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Parameters denoted by special characters.
-</td></tr>
-</table>
-<p>A <var>parameter</var> is an entity that stores values.
+<p>A <em>parameter</em> is an entity that stores values.
It can be a <code>name</code>, a number, or one of the special characters
listed below.
-A <var>variable</var> is a parameter denoted by a <code>name</code>.
-A variable has a <var>value</var> and zero or more <var>attributes</var>.
+A <em>variable</em> is a parameter denoted by a <code>name</code>.
+A variable has a <code>value</code> and zero or more <code>attributes</code>.
Attributes are assigned using the <code>declare</code> builtin command
-(see the description of the <code>declare</code> builtin in <a href="#Bash-Builtins">Bash Builtins</a>).
+(see the description of the <code>declare</code> builtin in <a href="#Bash-Builtins">Bash Builtin Commands</a>).
</p>
<p>A parameter is set if it has been assigned a value. The null string is
a valid value. Once a variable is set, it may be unset only by using
@@ -1995,17 +2081,16 @@ the <code>unset</code> builtin command.
is not given, the variable is assigned the null string. All
<var>value</var>s undergo tilde expansion, parameter and variable expansion,
command substitution, arithmetic expansion, and quote
-removal (detailed below). If the variable has its <code>integer</code>
+removal (see <a href="#Shell-Parameter-Expansion">Shell Parameter Expansion</a>).
+If the variable has its <code>integer</code>
attribute set, then <var>value</var>
is evaluated as an arithmetic expression even if the <code>$((&hellip;))</code>
expansion is not used (see <a href="#Arithmetic-Expansion">Arithmetic Expansion</a>).
-Word splitting is not performed, with the exception
-of <code>&quot;$@&quot;</code> as explained below.
-Filename expansion is not performed.
+Word splitting and filename expansion are not performed.
Assignment statements may also appear as arguments to the
<code>alias</code>,
<code>declare</code>, <code>typeset</code>, <code>export</code>, <code>readonly</code>,
-and <code>local</code> builtin commands (<var>declaration</var> commands).
+and <code>local</code> builtin commands (<em>declaration</em> commands).
When in <small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>), these builtins may appear
in a command after one or more instances of the <code>command</code> builtin
and retain these assignment statement properties.
@@ -2015,8 +2100,8 @@ to a shell variable or array index (see <a href="#Arrays">Arrays</a>), the &lsqu
operator can be used to
append to or add to the variable&rsquo;s previous value.
This includes arguments to builtin commands such as <code>declare</code> that
-accept assignment statements (<var>declaration</var> commands).
-When &lsquo;<samp>+=</samp>&rsquo; is applied to a variable for which the <var>integer</var> attribute
+accept assignment statements (declaration commands).
+When &lsquo;<samp>+=</samp>&rsquo; is applied to a variable for which the <code>integer</code> attribute
has been set, <var>value</var> is evaluated as an arithmetic expression and
added to the variable&rsquo;s current value, which is also evaluated.
When &lsquo;<samp>+=</samp>&rsquo; is applied to an array variable using compound assignment
@@ -2028,10 +2113,10 @@ in an associative array.
When applied to a string-valued variable, <var>value</var> is expanded and
appended to the variable&rsquo;s value.
</p>
-<p>A variable can be assigned the <var>nameref</var> attribute using the
+<p>A variable can be assigned the <code>nameref</code> attribute using the
<samp>-n</samp> option to the <code>declare</code> or <code>local</code> builtin commands
-(see <a href="#Bash-Builtins">Bash Builtins</a>)
-to create a <var>nameref</var>, or a reference to another variable.
+(see <a href="#Bash-Builtins">Bash Builtin Commands</a>)
+to create a <em>nameref</em>, or a reference to another variable.
This allows variables to be manipulated indirectly.
Whenever the nameref variable is referenced, assigned to, unset, or has
its attributes modified (other than using or changing the nameref
@@ -2045,9 +2130,9 @@ argument, running
</p><div class="example">
<pre class="example">declare -n ref=$1
</pre></div>
-<p>inside the function creates a nameref variable <var>ref</var> whose value is
+<p>inside the function creates a nameref variable <code>ref</code> whose value is
the variable name passed as the first argument.
-References and assignments to <var>ref</var>, and changes to its attributes,
+References and assignments to <code>ref</code>, and changes to its attributes,
are treated as references, assignments, and attribute modifications
to the variable whose name was passed as <code>$1</code>.
</p>
@@ -2063,15 +2148,20 @@ Namerefs can be unset using the <samp>-n</samp> option to the <code>unset</code>
Otherwise, if <code>unset</code> is executed with the name of a nameref variable
as an argument, the variable referenced by the nameref variable will be unset.
</p>
+<ul class="section-toc">
+<li><a href="#Positional-Parameters" accesskey="1">Positional Parameters</a></li>
+<li><a href="#Special-Parameters" accesskey="2">Special Parameters</a></li>
+</ul>
<hr>
-<span id="Positional-Parameters"></span><div class="header">
+<div class="subsection" id="Positional-Parameters">
+<div class="header">
<p>
Next: <a href="#Special-Parameters" accesskey="n" rel="next">Special Parameters</a>, Up: <a href="#Shell-Parameters" accesskey="u" rel="up">Shell Parameters</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Positional-Parameters-1"></span><h4 class="subsection">3.4.1 Positional Parameters</h4>
<span id="index-parameters_002c-positional"></span>
-<p>A <var>positional parameter</var> is a parameter denoted by one or more
+<p>A <em>positional parameter</em> is a parameter denoted by one or more
digits, other than the single digit <code>0</code>. Positional parameters are
assigned from the shell&rsquo;s arguments when it is invoked,
and may be reassigned using the <code>set</code> builtin command.
@@ -2088,7 +2178,9 @@ temporarily replaced when a shell function is executed
digit is expanded, it must be enclosed in braces.
</p>
<hr>
-<span id="Special-Parameters"></span><div class="header">
+</div>
+<div class="subsection" id="Special-Parameters">
+<div class="header">
<p>
Previous: <a href="#Positional-Parameters" accesskey="p" rel="prev">Positional Parameters</a>, Up: <a href="#Shell-Parameters" accesskey="u" rel="up">Shell Parameters</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -2099,9 +2191,7 @@ Previous: <a href="#Positional-Parameters" accesskey="p" rel="prev">Positional P
only be referenced; assignment to them is not allowed.
</p>
<dl compact="compact">
-<dt><code>*</code>
-<span id="index-_002a"></span>
-</dt>
+<dt id='index-_002a'><span><code>*</code><a href='#index-_002a' class='copiable-anchor'> &para;</a></span></dt>
<dd><span id="index-_0024_002a"></span>
<p>($*) Expands to the positional parameters, starting from one.
When the expansion is not within double quotes, each positional parameter
@@ -2119,9 +2209,7 @@ If <code>IFS</code> is null, the parameters are joined without intervening
separators.
</p>
</dd>
-<dt><code>@</code>
-<span id="index-_0040"></span>
-</dt>
+<dt id='index-_0040'><span><code>@</code><a href='#index-_0040' class='copiable-anchor'> &para;</a></span></dt>
<dd><span id="index-_0024_0040"></span>
<p>($@) Expands to the positional parameters, starting from one.
In contexts where word splitting is performed, this expands each
@@ -2144,24 +2232,18 @@ When there are no positional parameters, <code>&quot;$@&quot;</code> and
expand to nothing (i.e., they are removed).
</p>
</dd>
-<dt><code>#</code>
-<span id="index-_0023"></span>
-</dt>
+<dt id='index-_0023'><span><code>#</code><a href='#index-_0023' class='copiable-anchor'> &para;</a></span></dt>
<dd><span id="index-_0024_0023"></span>
<p>($#) Expands to the number of positional parameters in decimal.
</p>
</dd>
-<dt><code>?</code>
-<span id="index-_003f"></span>
-</dt>
+<dt id='index-_003f'><span><code>?</code><a href='#index-_003f' class='copiable-anchor'> &para;</a></span></dt>
<dd><span id="index-_0024_003f"></span>
<p>($?) Expands to the exit status of the most recently executed foreground
pipeline.
</p>
</dd>
-<dt><code>-</code>
-<span id="index-_002d"></span>
-</dt>
+<dt id='index-_002d'><span><code>-</code><a href='#index-_002d' class='copiable-anchor'> &para;</a></span></dt>
<dd><span id="index-_0024_002d"></span>
<p>($-, a hyphen.) Expands to the current option flags as specified upon
invocation, by the <code>set</code>
@@ -2169,26 +2251,20 @@ builtin command, or those set by the shell itself
(such as the <samp>-i</samp> option).
</p>
</dd>
-<dt><code>$</code>
-<span id="index-_0024"></span>
-</dt>
+<dt id='index-_0024'><span><code>$</code><a href='#index-_0024' class='copiable-anchor'> &para;</a></span></dt>
<dd><span id="index-_0024_0024"></span>
-<p>($$) Expands to the process <small>ID</small> of the shell. In a <code>()</code> subshell, it
+<p>($$) Expands to the process <small>ID</small> of the shell. In a subshell, it
expands to the process <small>ID</small> of the invoking shell, not the subshell.
</p>
</dd>
-<dt><code>!</code>
-<span id="index-_0021-1"></span>
-</dt>
+<dt id='index-_0021-1'><span><code>!</code><a href='#index-_0021-1' class='copiable-anchor'> &para;</a></span></dt>
<dd><span id="index-_0024_0021"></span>
<p>($!) Expands to the process <small>ID</small> of the job most recently placed into the
background, whether executed as an asynchronous command or using
the <code>bg</code> builtin (see <a href="#Job-Control-Builtins">Job Control Builtins</a>).
</p>
</dd>
-<dt><code>0</code>
-<span id="index-0"></span>
-</dt>
+<dt id='index-0'><span><code>0</code><a href='#index-0' class='copiable-anchor'> &para;</a></span></dt>
<dd><span id="index-_00240"></span>
<p>($0) Expands to the name of the shell or shell script. This is set at
shell initialization. If Bash is invoked with a file of commands
@@ -2201,7 +2277,10 @@ to the filename used to invoke Bash, as given by argument zero.
</dl>
<hr>
-<span id="Shell-Expansions"></span><div class="header">
+</div>
+</div>
+<div class="section" id="Shell-Expansions">
+<div class="header">
<p>
Next: <a href="#Redirections" accesskey="n" rel="next">Redirections</a>, Previous: <a href="#Shell-Parameters" accesskey="p" rel="prev">Shell Parameters</a>, Up: <a href="#Basic-Shell-Features" accesskey="u" rel="up">Basic Shell Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -2221,29 +2300,6 @@ Next: <a href="#Redirections" accesskey="n" rel="next">Redirections</a>, Previou
</li><li> filename expansion
</li></ul>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Brace-Expansion" accesskey="1">Brace Expansion</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Expansion of expressions within braces.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Tilde-Expansion" accesskey="2">Tilde Expansion</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Expansion of the ~ character.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Shell-Parameter-Expansion" accesskey="3">Shell Parameter Expansion</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How Bash expands variables to their values.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Command-Substitution" accesskey="4">Command Substitution</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Using the output of a command as an argument.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Arithmetic-Expansion" accesskey="5">Arithmetic Expansion</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to use arithmetic in shell expansions.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Process-Substitution" accesskey="6">Process Substitution</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">A way to write and read to and from a
- command.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Word-Splitting" accesskey="7">Word Splitting</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How the results of expansion are split into separate
- arguments.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Filename-Expansion" accesskey="8">Filename Expansion</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">A shorthand for specifying filenames matching patterns.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Quote-Removal" accesskey="9">Quote Removal</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How and when quote characters are removed from
- words.
-</td></tr>
-</table>
<p>The order of expansions is:
brace expansion;
@@ -2253,14 +2309,14 @@ word splitting;
and filename expansion.
</p>
<p>On systems that can support it, there is an additional expansion
-available: <var>process substitution</var>.
+available: <em>process substitution</em>.
This is performed at the
same time as tilde, parameter, variable, and arithmetic expansion and
command substitution.
</p>
<p>After these expansions are performed, quote characters present in the
original word are removed unless they have been quoted themselves
-(<var>quote removal</var>).
+(<em>quote removal</em>).
</p>
<p>Only brace expansion, word splitting, and filename expansion
can increase the number of words of the expansion; other expansions
@@ -2273,8 +2329,20 @@ The only exceptions to this are the expansions of
<p>After all expansions, <code>quote removal</code> (see <a href="#Quote-Removal">Quote Removal</a>)
is performed.
</p>
+<ul class="section-toc">
+<li><a href="#Brace-Expansion" accesskey="1">Brace Expansion</a></li>
+<li><a href="#Tilde-Expansion" accesskey="2">Tilde Expansion</a></li>
+<li><a href="#Shell-Parameter-Expansion" accesskey="3">Shell Parameter Expansion</a></li>
+<li><a href="#Command-Substitution" accesskey="4">Command Substitution</a></li>
+<li><a href="#Arithmetic-Expansion" accesskey="5">Arithmetic Expansion</a></li>
+<li><a href="#Process-Substitution" accesskey="6">Process Substitution</a></li>
+<li><a href="#Word-Splitting" accesskey="7">Word Splitting</a></li>
+<li><a href="#Filename-Expansion" accesskey="8">Filename Expansion</a></li>
+<li><a href="#Quote-Removal" accesskey="9">Quote Removal</a></li>
+</ul>
<hr>
-<span id="Brace-Expansion"></span><div class="header">
+<div class="subsection" id="Brace-Expansion">
+<div class="header">
<p>
Next: <a href="#Tilde-Expansion" accesskey="n" rel="next">Tilde Expansion</a>, Up: <a href="#Shell-Expansions" accesskey="u" rel="up">Shell Expansions</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -2284,7 +2352,7 @@ Next: <a href="#Tilde-Expansion" accesskey="n" rel="next">Tilde Expansion</a>, U
<p>Brace expansion is a mechanism by which arbitrary strings may be generated.
This mechanism is similar to
-<var>filename expansion</var> (see <a href="#Filename-Expansion">Filename Expansion</a>),
+<em>filename expansion</em> (see <a href="#Filename-Expansion">Filename Expansion</a>),
but the filenames generated need not exist.
Patterns to be brace expanded take the form of an optional <var>preamble</var>,
followed by either a series of comma-separated strings or a sequence expression
@@ -2304,7 +2372,7 @@ ade ace abe
</pre></div>
<p>A sequence expression takes the form <code>{<var>x</var>..<var>y</var>[..<var>incr</var>]}</code>,
-where <var>x</var> and <var>y</var> are either integers or single characters,
+where <var>x</var> and <var>y</var> are either integers or letters,
and <var>incr</var>, an optional increment, is an integer.
When integers are supplied, the expression expands to each number between
<var>x</var> and <var>y</var>, inclusive.
@@ -2313,10 +2381,11 @@ same width.
When either <var>x</var> or <var>y</var> begins with a zero, the shell
attempts to force all generated terms to contain the same number of digits,
zero-padding where necessary.
-When characters are supplied, the expression expands to each character
+When letters are supplied, the expression expands to each character
lexicographically between <var>x</var> and <var>y</var>, inclusive,
using the default C locale.
-Note that both <var>x</var> and <var>y</var> must be of the same type.
+Note that both <var>x</var> and <var>y</var> must be of the same type
+(integer or letter).
When the increment is supplied, it is used as the difference between
each term. The default increment is 1 or -1 as appropriate.
</p>
@@ -2349,7 +2418,9 @@ above example:
</pre></div>
<hr>
-<span id="Tilde-Expansion"></span><div class="header">
+</div>
+<div class="subsection" id="Tilde-Expansion">
+<div class="header">
<p>
Next: <a href="#Shell-Parameter-Expansion" accesskey="n" rel="next">Shell Parameter Expansion</a>, Previous: <a href="#Brace-Expansion" accesskey="p" rel="prev">Brace Expansion</a>, Up: <a href="#Shell-Expansions" accesskey="u" rel="up">Shell Expansions</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -2359,10 +2430,10 @@ Next: <a href="#Shell-Parameter-Expansion" accesskey="n" rel="next">Shell Parame
<p>If a word begins with an unquoted tilde character (&lsquo;<samp>~</samp>&rsquo;), all of the
characters up to the first unquoted slash (or all characters,
-if there is no unquoted slash) are considered a <var>tilde-prefix</var>.
+if there is no unquoted slash) are considered a <em>tilde-prefix</em>.
If none of the characters in the tilde-prefix are quoted, the
characters in the tilde-prefix following the tilde are treated as a
-possible <var>login name</var>.
+possible <em>login name</em>.
If this login name is the null string, the tilde is replaced with the
value of the <code>HOME</code> shell variable.
If <code>HOME</code> is unset, the home directory of the user executing the
@@ -2397,35 +2468,35 @@ and the shell assigns the expanded value.
<p>The following table shows how Bash treats unquoted tilde-prefixes:
</p>
<dl compact="compact">
-<dt><code>~</code></dt>
+<dt><span><code>~</code></span></dt>
<dd><p>The value of <code>$HOME</code>
</p></dd>
-<dt><code>~/foo</code></dt>
+<dt><span><code>~/foo</code></span></dt>
<dd><p><samp>$HOME/foo</samp>
</p>
</dd>
-<dt><code>~fred/foo</code></dt>
+<dt><span><code>~fred/foo</code></span></dt>
<dd><p>The subdirectory <code>foo</code> of the home directory of the user
<code>fred</code>
</p>
</dd>
-<dt><code>~+/foo</code></dt>
+<dt><span><code>~+/foo</code></span></dt>
<dd><p><samp>$PWD/foo</samp>
</p>
</dd>
-<dt><code>~-/foo</code></dt>
+<dt><span><code>~-/foo</code></span></dt>
<dd><p><samp>${OLDPWD-'~-'}/foo</samp>
</p>
</dd>
-<dt><code>~<var>N</var></code></dt>
+<dt><span><code>~<var>N</var></code></span></dt>
<dd><p>The string that would be displayed by &lsquo;<samp>dirs +<var>N</var></samp>&rsquo;
</p>
</dd>
-<dt><code>~+<var>N</var></code></dt>
+<dt><span><code>~+<var>N</var></code></span></dt>
<dd><p>The string that would be displayed by &lsquo;<samp>dirs +<var>N</var></samp>&rsquo;
</p>
</dd>
-<dt><code>~-<var>N</var></code></dt>
+<dt><span><code>~-<var>N</var></code></span></dt>
<dd><p>The string that would be displayed by &lsquo;<samp>dirs -<var>N</var></samp>&rsquo;
</p></dd>
</dl>
@@ -2433,11 +2504,13 @@ and the shell assigns the expanded value.
<p>Bash also performs tilde expansion on words satisfying the conditions of
variable assignments (see <a href="#Shell-Parameters">Shell Parameters</a>)
when they appear as arguments to simple commands.
-Bash does not do this, except for the <var>declaration</var> commands listed
+Bash does not do this, except for the declaration commands listed
above, when in <small>POSIX</small> mode.
</p>
<hr>
-<span id="Shell-Parameter-Expansion"></span><div class="header">
+</div>
+<div class="subsection" id="Shell-Parameter-Expansion">
+<div class="header">
<p>
Next: <a href="#Command-Substitution" accesskey="n" rel="next">Command Substitution</a>, Previous: <a href="#Tilde-Expansion" accesskey="p" rel="prev">Tilde Expansion</a>, Up: <a href="#Shell-Expansions" accesskey="u" rel="up">Shell Expansions</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -2467,7 +2540,7 @@ or when <var>parameter</var> is followed by a character that is not to be
interpreted as part of its name.
</p>
<p>If the first character of <var>parameter</var> is an exclamation point (!),
-and <var>parameter</var> is not a <var>nameref</var>,
+and <var>parameter</var> is not a nameref,
it introduces a level of indirection.
Bash uses the value formed by expanding the rest of
<var>parameter</var> as the new <var>parameter</var>; this is then
@@ -2496,13 +2569,19 @@ the operator tests for both <var>parameter</var>&rsquo;s existence and that its
is not null; if the colon is omitted, the operator tests only for existence.
</p>
<dl compact="compact">
-<dt><code>${<var>parameter</var>:-<var>word</var>}</code></dt>
+<dt><span><code>${<var>parameter</var>:-<var>word</var>}</code></span></dt>
<dd><p>If <var>parameter</var> is unset or null, the expansion of
<var>word</var> is substituted. Otherwise, the value of
<var>parameter</var> is substituted.
</p>
+<div class="example">
+<pre class="example">$ v=123
+$ echo ${v-unset}
+123
+</pre></div>
+
</dd>
-<dt><code>${<var>parameter</var>:=<var>word</var>}</code></dt>
+<dt><span><code>${<var>parameter</var>:=<var>word</var>}</code></span></dt>
<dd><p>If <var>parameter</var>
is unset or null, the expansion of <var>word</var>
is assigned to <var>parameter</var>.
@@ -2510,8 +2589,15 @@ The value of <var>parameter</var> is then substituted.
Positional parameters and special parameters may not be assigned to
in this way.
</p>
+<div class="example">
+<pre class="example">$ var=
+$ : ${var:=DEFAULT}
+$ echo $var
+DEFAULT
+</pre></div>
+
</dd>
-<dt><code>${<var>parameter</var>:?<var>word</var>}</code></dt>
+<dt><span><code>${<var>parameter</var>:?<var>word</var>}</code></span></dt>
<dd><p>If <var>parameter</var>
is null or unset, the expansion of <var>word</var> (or a message
to that effect if <var>word</var>
@@ -2519,19 +2605,31 @@ is not present) is written to the standard error and the shell, if it
is not interactive, exits. Otherwise, the value of <var>parameter</var> is
substituted.
</p>
+<div class="example">
+<pre class="example">$ var=
+$ : ${var:?var is unset or null}
+bash: var: var is unset or null
+</pre></div>
+
</dd>
-<dt><code>${<var>parameter</var>:+<var>word</var>}</code></dt>
+<dt><span><code>${<var>parameter</var>:+<var>word</var>}</code></span></dt>
<dd><p>If <var>parameter</var>
is null or unset, nothing is substituted, otherwise the expansion of
<var>word</var> is substituted.
</p>
+<div class="example">
+<pre class="example">$ var=123
+$ echo ${var:+var is set and not null}
+var is set and not null
+</pre></div>
+
</dd>
-<dt><code>${<var>parameter</var>:<var>offset</var>}</code></dt>
-<dt><code>${<var>parameter</var>:<var>offset</var>:<var>length</var>}</code></dt>
+<dt><span><code>${<var>parameter</var>:<var>offset</var>}</code></span></dt>
+<dt><span><code>${<var>parameter</var>:<var>offset</var>:<var>length</var>}</code></span></dt>
<dd><p>This is referred to as Substring Expansion.
It expands to up to <var>length</var> characters of the value of <var>parameter</var>
starting at the character specified by <var>offset</var>.
-If <var>parameter</var> is &lsquo;<samp>@</samp>&rsquo;, an indexed array subscripted by
+If <var>parameter</var> is &lsquo;<samp>@</samp>&rsquo; or &lsquo;<samp>*</samp>&rsquo;, an indexed array subscripted by
&lsquo;<samp>@</samp>&rsquo; or &lsquo;<samp>*</samp>&rsquo;, or an associative array name, the results differ as
described below.
If <var>length</var> is omitted, it expands to the substring of the value of
@@ -2606,8 +2704,8 @@ bc
$ echo ${array[0]: -7:-2}
bcdef
</pre>
-<p>If <var>parameter</var> is &lsquo;<samp>@</samp>&rsquo;, the result is <var>length</var> positional
-parameters beginning at <var>offset</var>.
+<p>If <var>parameter</var> is &lsquo;<samp>@</samp>&rsquo; or &lsquo;<samp>*</samp>&rsquo;, the result is <var>length</var>
+positional parameters beginning at <var>offset</var>.
A negative <var>offset</var> is taken relative to one greater than the greatest
positional parameter, so an offset of -1 evaluates to the last positional
parameter.
@@ -2669,16 +2767,16 @@ If <var>offset</var> is 0, and the positional parameters are used, <code>$0</cod
prefixed to the list.
</p>
</dd>
-<dt><code>${!<var>prefix</var>*}</code></dt>
-<dt><code>${!<var>prefix</var>@}</code></dt>
+<dt><span><code>${!<var>prefix</var>*}</code></span></dt>
+<dt><span><code>${!<var>prefix</var>@}</code></span></dt>
<dd><p>Expands to the names of variables whose names begin with <var>prefix</var>,
separated by the first character of the <code>IFS</code> special variable.
When &lsquo;<samp>@</samp>&rsquo; is used and the expansion appears within double quotes, each
variable name expands to a separate word.
</p>
</dd>
-<dt><code>${!<var>name</var>[@]}</code></dt>
-<dt><code>${!<var>name</var>[*]}</code></dt>
+<dt><span><code>${!<var>name</var>[@]}</code></span></dt>
+<dt><span><code>${!<var>name</var>[*]}</code></span></dt>
<dd><p>If <var>name</var> is an array variable, expands to the list of array indices
(keys) assigned in <var>name</var>.
If <var>name</var> is not an array, expands to 0 if <var>name</var> is set and null
@@ -2687,7 +2785,7 @@ When &lsquo;<samp>@</samp>&rsquo; is used and the expansion appears within doubl
key expands to a separate word.
</p>
</dd>
-<dt><code>${#<var>parameter</var>}</code></dt>
+<dt><span><code>${#<var>parameter</var>}</code></span></dt>
<dd><p>The length in characters of the expanded value of <var>parameter</var> is
substituted.
If <var>parameter</var> is &lsquo;<samp>*</samp>&rsquo; or &lsquo;<samp>@</samp>&rsquo;, the value substituted
@@ -2701,8 +2799,8 @@ interpreted as relative to one greater than the maximum index of
array, and an index of -1 references the last element.
</p>
</dd>
-<dt><code>${<var>parameter</var>#<var>word</var>}</code></dt>
-<dt><code>${<var>parameter</var>##<var>word</var>}</code></dt>
+<dt><span><code>${<var>parameter</var>#<var>word</var>}</code></span></dt>
+<dt><span><code>${<var>parameter</var>##<var>word</var>}</code></span></dt>
<dd><p>The <var>word</var>
is expanded to produce a pattern and matched according to the rules
described below (see <a href="#Pattern-Matching">Pattern Matching</a>). If the pattern matches
@@ -2719,8 +2817,8 @@ the pattern removal operation is applied to each member of the
array in turn, and the expansion is the resultant list.
</p>
</dd>
-<dt><code>${<var>parameter</var>%<var>word</var>}</code></dt>
-<dt><code>${<var>parameter</var>%%<var>word</var>}</code></dt>
+<dt><span><code>${<var>parameter</var>%<var>word</var>}</code></span></dt>
+<dt><span><code>${<var>parameter</var>%%<var>word</var>}</code></span></dt>
<dd><p>The <var>word</var>
is expanded to produce a pattern and matched according to the rules
described below (see <a href="#Pattern-Matching">Pattern Matching</a>).
@@ -2737,23 +2835,99 @@ the pattern removal operation is applied to each member of the
array in turn, and the expansion is the resultant list.
</p>
</dd>
-<dt><code>${<var>parameter</var>/<var>pattern</var>/<var>string</var>}</code></dt>
-<dd>
-<p>The <var>pattern</var> is expanded to produce a pattern just as in
+<dt><span><code>${<var>parameter</var>/<var>pattern</var>/<var>string</var>}</code></span></dt>
+<dt><span><code>${<var>parameter</var>//<var>pattern</var>/<var>string</var>}</code></span></dt>
+<dt><span><code>${<var>parameter</var>/#<var>pattern</var>/<var>string</var>}</code></span></dt>
+<dt><span><code>${<var>parameter</var>/%<var>pattern</var>/<var>string</var>}</code></span></dt>
+<dd><p>The <var>pattern</var> is expanded to produce a pattern just as in
filename expansion.
<var>Parameter</var> is expanded and the longest match of <var>pattern</var>
against its value is replaced with <var>string</var>.
+<var>string</var> undergoes tilde expansion, parameter and variable expansion,
+arithmetic expansion, command and process substitution, and quote removal.
The match is performed according to the rules described below
(see <a href="#Pattern-Matching">Pattern Matching</a>).
-If <var>pattern</var> begins with &lsquo;<samp>/</samp>&rsquo;, all matches of <var>pattern</var> are
-replaced with <var>string</var>. Normally only the first match is replaced.
-If <var>pattern</var> begins with &lsquo;<samp>#</samp>&rsquo;, it must match at the beginning
-of the expanded value of <var>parameter</var>.
-If <var>pattern</var> begins with &lsquo;<samp>%</samp>&rsquo;, it must match at the end
-of the expanded value of <var>parameter</var>.
-If <var>string</var> is null, matches of <var>pattern</var> are deleted
-and the <code>/</code> following <var>pattern</var> may be omitted.
-If the <code>nocasematch</code> shell option
+</p>
+<p>In the first form above, only the first match is replaced.
+If there are two slashes separating <var>parameter</var> and <var>pattern</var>
+(the second form above), all matches of <var>pattern</var> are
+replaced with <var>string</var>.
+If <var>pattern</var> is preceded by &lsquo;<samp>#</samp>&rsquo; (the third form above),
+it must match at the beginning of the expanded value of <var>parameter</var>.
+If <var>pattern</var> is preceded by &lsquo;<samp>%</samp>&rsquo; (the fourth form above),
+it must match at the end of the expanded value of <var>parameter</var>.
+If the expansion of <var>string</var> is null,
+matches of <var>pattern</var> are deleted.
+If <var>string</var> is null,
+matches of <var>pattern</var> are deleted
+and the &lsquo;<samp>/</samp>&rsquo; following <var>pattern</var> may be omitted.
+</p>
+<p>If the <code>patsub_replacement</code> shell option is enabled using <code>shopt</code>,
+any unquoted instances of &lsquo;<samp>&amp;</samp>&rsquo; in <var>string</var> are replaced with the
+matching portion of <var>pattern</var>.
+This is intended to duplicate a common <code>sed</code> idiom.
+</p>
+<p>Quoting any part of <var>string</var> inhibits replacement in the
+expansion of the quoted portion, including replacement strings stored
+in shell variables.
+Backslash will escape &lsquo;<samp>&amp;</samp>&rsquo; in <var>string</var>; the backslash is removed
+in order to permit a literal &lsquo;<samp>&amp;</samp>&rsquo; in the replacement string.
+Users should take care if <var>string</var> is double-quoted to avoid
+unwanted interactions between the backslash and double-quoting, since
+backslash has special meaning within double quotes.
+Pattern substitution performs the check for unquoted &lsquo;<samp>&amp;</samp>&rsquo; after
+expanding <var>string</var>,
+so users should ensure to properly quote any occurrences of &lsquo;<samp>&amp;</samp>&rsquo;
+they want to be taken literally in the replacement
+and ensure any instances of &lsquo;<samp>&amp;</samp>&rsquo; they want to be replaced are unquoted.
+</p>
+<p>For instance,
+</p>
+<div class="example">
+<pre class="example">var=abcdef
+rep='&amp; '
+echo ${var/abc/&amp; }
+echo &quot;${var/abc/&amp; }&quot;
+echo ${var/abc/$rep}
+echo &quot;${var/abc/$rep}&quot;
+</pre></div>
+
+<p>will display four lines of &quot;abc def&quot;, while
+</p>
+<div class="example">
+<pre class="example">var=abcdef
+rep='&amp; '
+echo ${var/abc/\&amp; }
+echo &quot;${var/abc/\&amp; }&quot;
+echo ${var/abc/&quot;&amp; &quot;}
+echo ${var/abc/&quot;$rep&quot;}
+</pre></div>
+
+<p>will display four lines of &quot;&amp; def&quot;.
+Like the pattern removal operators, double quotes surrounding the
+replacement string quote the expanded characters, while double quotes
+enclosing the entire parameter substitution do not, since
+the expansion is performed in a
+context that doesn&rsquo;t take any enclosing double quotes into account.
+</p>
+<p>Since backslash can escape &lsquo;<samp>&amp;</samp>&rsquo;, it can also escape a backslash in
+the replacement string.
+This means that &lsquo;<samp>\\</samp>&rsquo; will insert a literal
+backslash into the replacement, so these two <code>echo</code> commands
+</p>
+<div class="example">
+<pre class="example">var=abcdef
+rep='\\&amp;xyz'
+echo ${var/abc/\\&amp;xyz}
+echo ${var/abc/$rep}
+</pre></div>
+
+<p>will both output &lsquo;<samp>\abcxyzdef</samp>&rsquo;.
+</p>
+<p>It should rarely be necessary to enclose only <var>string</var> in double
+quotes.
+</p>
+<p>If the <code>nocasematch</code> shell option
(see the description of <code>shopt</code> in <a href="#The-Shopt-Builtin">The Shopt Builtin</a>)
is enabled, the match is performed without regard to the case
of alphabetic characters.
@@ -2766,17 +2940,18 @@ the substitution operation is applied to each member of the
array in turn, and the expansion is the resultant list.
</p>
</dd>
-<dt><code>${<var>parameter</var>^<var>pattern</var>}</code></dt>
-<dt><code>${<var>parameter</var>^^<var>pattern</var>}</code></dt>
-<dt><code>${<var>parameter</var>,<var>pattern</var>}</code></dt>
-<dt><code>${<var>parameter</var>,,<var>pattern</var>}</code></dt>
+<dt><span><code>${<var>parameter</var>^<var>pattern</var>}</code></span></dt>
+<dt><span><code>${<var>parameter</var>^^<var>pattern</var>}</code></span></dt>
+<dt><span><code>${<var>parameter</var>,<var>pattern</var>}</code></span></dt>
+<dt><span><code>${<var>parameter</var>,,<var>pattern</var>}</code></span></dt>
<dd><p>This expansion modifies the case of alphabetic characters in <var>parameter</var>.
The <var>pattern</var> is expanded to produce a pattern just as in
filename expansion.
Each character in the expanded value of <var>parameter</var> is tested against
<var>pattern</var>, and, if it matches the pattern, its case is converted.
The pattern should not attempt to match more than one character.
-The &lsquo;<samp>^</samp>&rsquo; operator converts lowercase letters matching <var>pattern</var>
+</p>
+<p>The &lsquo;<samp>^</samp>&rsquo; operator converts lowercase letters matching <var>pattern</var>
to uppercase; the &lsquo;<samp>,</samp>&rsquo; operator converts matching uppercase letters
to lowercase.
The &lsquo;<samp>^^</samp>&rsquo; and &lsquo;<samp>,,</samp>&rsquo; expansions convert each matched character in the
@@ -2784,7 +2959,8 @@ expanded value; the &lsquo;<samp>^</samp>&rsquo; and &lsquo;<samp>,</samp>&rsquo
the first character in the expanded value.
If <var>pattern</var> is omitted, it is treated like a &lsquo;<samp>?</samp>&rsquo;, which matches
every character.
-If <var>parameter</var> is &lsquo;<samp>@</samp>&rsquo; or &lsquo;<samp>*</samp>&rsquo;,
+</p>
+<p>If <var>parameter</var> is &lsquo;<samp>@</samp>&rsquo; or &lsquo;<samp>*</samp>&rsquo;,
the case modification operation is applied to each positional
parameter in turn, and the expansion is the resultant list.
If <var>parameter</var>
@@ -2793,51 +2969,55 @@ the case modification operation is applied to each member of the
array in turn, and the expansion is the resultant list.
</p>
</dd>
-<dt><code>${<var>parameter</var>@<var>operator</var>}</code></dt>
+<dt><span><code>${<var>parameter</var>@<var>operator</var>}</code></span></dt>
<dd><p>The expansion is either a transformation of the value of <var>parameter</var>
or information about <var>parameter</var> itself, depending on the value of
<var>operator</var>. Each <var>operator</var> is a single letter:
</p>
<dl compact="compact">
-<dt><code>U</code></dt>
+<dt><span><code>U</code></span></dt>
<dd><p>The expansion is a string that is the value of <var>parameter</var> with lowercase
alphabetic characters converted to uppercase.
</p></dd>
-<dt><code>u</code></dt>
+<dt><span><code>u</code></span></dt>
<dd><p>The expansion is a string that is the value of <var>parameter</var> with the first
character converted to uppercase, if it is alphabetic.
</p></dd>
-<dt><code>L</code></dt>
+<dt><span><code>L</code></span></dt>
<dd><p>The expansion is a string that is the value of <var>parameter</var> with uppercase
alphabetic characters converted to lowercase.
</p></dd>
-<dt><code>Q</code></dt>
+<dt><span><code>Q</code></span></dt>
<dd><p>The expansion is a string that is the value of <var>parameter</var> quoted in a
format that can be reused as input.
</p></dd>
-<dt><code>E</code></dt>
+<dt><span><code>E</code></span></dt>
<dd><p>The expansion is a string that is the value of <var>parameter</var> with backslash
escape sequences expanded as with the <code>$'&hellip;'</code> quoting mechanism.
</p></dd>
-<dt><code>P</code></dt>
+<dt><span><code>P</code></span></dt>
<dd><p>The expansion is a string that is the result of expanding the value of
<var>parameter</var> as if it were a prompt string (see <a href="#Controlling-the-Prompt">Controlling the Prompt</a>).
</p></dd>
-<dt><code>A</code></dt>
+<dt><span><code>A</code></span></dt>
<dd><p>The expansion is a string in the form of
an assignment statement or <code>declare</code> command that, if
evaluated, will recreate <var>parameter</var> with its attributes and value.
</p></dd>
-<dt><code>K</code></dt>
+<dt><span><code>K</code></span></dt>
<dd><p>Produces a possibly-quoted version of the value of <var>parameter</var>,
except that it prints the values of
indexed and associative arrays as a sequence of quoted key-value pairs
(see <a href="#Arrays">Arrays</a>).
</p></dd>
-<dt><code>a</code></dt>
+<dt><span><code>a</code></span></dt>
<dd><p>The expansion is a string consisting of flag values representing
<var>parameter</var>&rsquo;s attributes.
</p></dd>
+<dt><span><code>k</code></span></dt>
+<dd><p>Like the &lsquo;<samp>K</samp>&rsquo; transformation, but expands the keys and values of
+indexed and associative arrays to separate words after word splitting.
+</p></dd>
</dl>
<p>If <var>parameter</var> is &lsquo;<samp>@</samp>&rsquo; or &lsquo;<samp>*</samp>&rsquo;,
@@ -2854,7 +3034,9 @@ expansion as described below.
</dl>
<hr>
-<span id="Command-Substitution"></span><div class="header">
+</div>
+<div class="subsection" id="Command-Substitution">
+<div class="header">
<p>
Next: <a href="#Arithmetic-Expansion" accesskey="n" rel="next">Arithmetic Expansion</a>, Previous: <a href="#Shell-Parameter-Expansion" accesskey="p" rel="prev">Shell Parameter Expansion</a>, Up: <a href="#Shell-Expansions" accesskey="u" rel="up">Shell Expansions</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -2895,7 +3077,9 @@ form, escape the inner backquotes with backslashes.
filename expansion are not performed on the results.
</p>
<hr>
-<span id="Arithmetic-Expansion"></span><div class="header">
+</div>
+<div class="subsection" id="Arithmetic-Expansion">
+<div class="header">
<p>
Next: <a href="#Process-Substitution" accesskey="n" rel="next">Process Substitution</a>, Previous: <a href="#Command-Substitution" accesskey="p" rel="prev">Command Substitution</a>, Up: <a href="#Shell-Expansions" accesskey="u" rel="up">Shell Expansions</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -2910,8 +3094,10 @@ and the substitution of the result. The format for arithmetic expansion is:
<pre class="example">$(( <var>expression</var> ))
</pre></div>
-<p>The expression is treated as if it were within double quotes, but
-a double quote inside the parentheses is not treated specially.
+<p>The <var>expression</var> undergoes the same expansions
+as if it were within double quotes,
+but double quote characters in <var>expression</var> are not treated specially
+and are removed.
All tokens in the expression undergo parameter and variable expansion,
command substitution, and quote removal.
The result is treated as the arithmetic expression to be evaluated.
@@ -2923,7 +3109,9 @@ If the expression is invalid, Bash prints a message indicating
failure to the standard error and no substitution occurs.
</p>
<hr>
-<span id="Process-Substitution"></span><div class="header">
+</div>
+<div class="subsection" id="Process-Substitution">
+<div class="header">
<p>
Next: <a href="#Word-Splitting" accesskey="n" rel="next">Word Splitting</a>, Previous: <a href="#Arithmetic-Expansion" accesskey="p" rel="prev">Arithmetic Expansion</a>, Up: <a href="#Shell-Expansions" accesskey="u" rel="up">Shell Expansions</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -2960,7 +3148,9 @@ parameter and variable expansion, command substitution, and arithmetic
expansion.
</p>
<hr>
-<span id="Word-Splitting"></span><div class="header">
+</div>
+<div class="subsection" id="Word-Splitting">
+<div class="header">
<p>
Next: <a href="#Filename-Expansion" accesskey="n" rel="next">Filename Expansion</a>, Previous: <a href="#Process-Substitution" accesskey="p" rel="prev">Process Substitution</a>, Up: <a href="#Shell-Expansions" accesskey="u" rel="up">Shell Expansions</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -3008,15 +3198,13 @@ null argument removal.
is performed.
</p>
<hr>
-<span id="Filename-Expansion"></span><div class="header">
+</div>
+<div class="subsection" id="Filename-Expansion">
+<div class="header">
<p>
Next: <a href="#Quote-Removal" accesskey="n" rel="next">Quote Removal</a>, Previous: <a href="#Word-Splitting" accesskey="p" rel="prev">Word Splitting</a>, Up: <a href="#Shell-Expansions" accesskey="u" rel="up">Shell Expansions</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Filename-Expansion-1"></span><h4 class="subsection">3.5.8 Filename Expansion</h4>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Pattern-Matching" accesskey="1">Pattern Matching</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How the shell matches patterns.
-</td></tr>
-</table>
<span id="index-expansion_002c-filename"></span>
<span id="index-expansion_002c-pathname"></span>
<span id="index-filename-expansion"></span>
@@ -3042,9 +3230,13 @@ without regard to the case of alphabetic characters.
<p>When a pattern is used for filename expansion, the character &lsquo;<samp>.</samp>&rsquo;
at the start of a filename or immediately following a slash
must be matched explicitly, unless the shell option <code>dotglob</code> is set.
-The filenames &lsquo;<samp>.</samp>&rsquo; and &lsquo;<samp>..</samp>&rsquo; must always be matched explicitly,
+In order to match the filenames &lsquo;<samp>.</samp>&rsquo; and &lsquo;<samp>..</samp>&rsquo;,
+the pattern must begin with &lsquo;<samp>.</samp>&rsquo; (for example, &lsquo;<samp>.?</samp>&rsquo;),
even if <code>dotglob</code> is set.
-In other cases, the &lsquo;<samp>.</samp>&rsquo; character is not treated specially.
+If the <code>globskipdots</code> shell option is enabled, the filenames
+&lsquo;<samp>.</samp>&rsquo; and &lsquo;<samp>..</samp>&rsquo; are never matched, even if the pattern begins
+with a &lsquo;<samp>.</samp>&rsquo;.
+When not matching filenames, the &lsquo;<samp>.</samp>&rsquo; character is not treated specially.
</p>
<p>When matching a filename, the slash character must always be
matched explicitly by a slash in the pattern, but in other matching
@@ -3053,6 +3245,7 @@ below (see <a href="#Pattern-Matching">Pattern Matching</a>).
</p>
<p>See the description of <code>shopt</code> in <a href="#The-Shopt-Builtin">The Shopt Builtin</a>,
for a description of the <code>nocaseglob</code>, <code>nullglob</code>,
+<code>globskipdots</code>,
<code>failglob</code>, and <code>dotglob</code> options.
</p>
<p>The <code>GLOBIGNORE</code>
@@ -3075,8 +3268,12 @@ To get the old behavior of ignoring filenames beginning with a
The <code>dotglob</code> option is disabled when <code>GLOBIGNORE</code>
is unset.
</p>
+<ul class="section-toc">
+<li><a href="#Pattern-Matching" accesskey="1">Pattern Matching</a></li>
+</ul>
<hr>
-<span id="Pattern-Matching"></span><div class="header">
+<div class="subsubsection" id="Pattern-Matching">
+<div class="header">
<p>
Up: <a href="#Filename-Expansion" accesskey="u" rel="up">Filename Expansion</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -3094,7 +3291,7 @@ literally.
</p>
<p>The special pattern characters have the following meanings:
</p><dl compact="compact">
-<dt><code>*</code></dt>
+<dt><span><code>*</code></span></dt>
<dd><p>Matches any string, including the null string.
When the <code>globstar</code> shell option is enabled, and &lsquo;<samp>*</samp>&rsquo; is used in
a filename expansion context, two adjacent &lsquo;<samp>*</samp>&rsquo;s used as a single
@@ -3103,10 +3300,10 @@ subdirectories.
If followed by a &lsquo;<samp>/</samp>&rsquo;, two adjacent &lsquo;<samp>*</samp>&rsquo;s will match only
directories and subdirectories.
</p></dd>
-<dt><code>?</code></dt>
+<dt><span><code>?</code></span></dt>
<dd><p>Matches any single character.
</p></dd>
-<dt><code>[&hellip;]</code></dt>
+<dt><span><code>[&hellip;]</code></span></dt>
<dd><p>Matches any one of the enclosed characters. A pair of characters
separated by a hyphen denotes a <var>range expression</var>;
any character that falls between those two characters, inclusive,
@@ -3117,20 +3314,22 @@ then any character not enclosed is matched. A &lsquo;<samp>-</samp>&rsquo;
may be matched by including it as the first or last character
in the set. A &lsquo;<samp>]</samp>&rsquo; may be matched by including it as the first
character in the set.
-The sorting order of characters in range expressions is determined by
+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
<code>LC_COLLATE</code> and <code>LC_ALL</code> shell variables, if set.
</p>
<p>For example, in the default C locale, &lsquo;<samp>[a-dx-z]</samp>&rsquo; is equivalent to
&lsquo;<samp>[abcdxyz]</samp>&rsquo;. Many locales sort characters in dictionary order, and in
these locales &lsquo;<samp>[a-dx-z]</samp>&rsquo; is typically not equivalent to &lsquo;<samp>[abcdxyz]</samp>&rsquo;;
-it might be equivalent to &lsquo;<samp>[aBbCcDdxXyYz]</samp>&rsquo;, for example. To obtain
+it might be equivalent to &lsquo;<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>LC_COLLATE</code> or
<code>LC_ALL</code> environment variable to the value &lsquo;<samp>C</samp>&rsquo;, or enable the
<code>globasciiranges</code> shell option.
</p>
-<p>Within &lsquo;<samp>[</samp>&rsquo; and &lsquo;<samp>]</samp>&rsquo;, <var>character classes</var> can be specified
+<p>Within &lsquo;<samp>[</samp>&rsquo; and &lsquo;<samp>]</samp>&rsquo;, <em>character classes</em> can be specified
using the syntax
<code>[:</code><var>class</var><code>:]</code>, where <var>class</var> is one of the
following classes defined in the <small>POSIX</small> standard:
@@ -3142,7 +3341,7 @@ print punct space upper word xdigit
The <code>word</code> character class matches letters, digits, and the character
&lsquo;<samp>_</samp>&rsquo;.
</p>
-<p>Within &lsquo;<samp>[</samp>&rsquo; and &lsquo;<samp>]</samp>&rsquo;, an <var>equivalence class</var> can be
+<p>Within &lsquo;<samp>[</samp>&rsquo; and &lsquo;<samp>]</samp>&rsquo;, an <em>equivalence class</em> can be
specified using the syntax <code>[=</code><var>c</var><code>=]</code>, which
matches all characters with the same collation weight (as defined
by the current locale) as the character <var>c</var>.
@@ -3153,34 +3352,53 @@ matches the collating symbol <var>symbol</var>.
</dl>
<p>If the <code>extglob</code> shell option is enabled using the <code>shopt</code>
-builtin, several extended pattern matching operators are recognized.
+builtin, the shell recognizes several extended pattern matching operators.
In the following description, a <var>pattern-list</var> is a list of one
or more patterns separated by a &lsquo;<samp>|</samp>&rsquo;.
+When matching filenames, the <code>dotglob</code> shell option determines
+the set of filenames that are tested, as described above.
Composite patterns may be formed using one or more of the following
sub-patterns:
</p>
<dl compact="compact">
-<dt><code>?(<var>pattern-list</var>)</code></dt>
+<dt><span><code>?(<var>pattern-list</var>)</code></span></dt>
<dd><p>Matches zero or one occurrence of the given patterns.
</p>
</dd>
-<dt><code>*(<var>pattern-list</var>)</code></dt>
+<dt><span><code>*(<var>pattern-list</var>)</code></span></dt>
<dd><p>Matches zero or more occurrences of the given patterns.
</p>
</dd>
-<dt><code>+(<var>pattern-list</var>)</code></dt>
+<dt><span><code>+(<var>pattern-list</var>)</code></span></dt>
<dd><p>Matches one or more occurrences of the given patterns.
</p>
</dd>
-<dt><code>@(<var>pattern-list</var>)</code></dt>
+<dt><span><code>@(<var>pattern-list</var>)</code></span></dt>
<dd><p>Matches one of the given patterns.
</p>
</dd>
-<dt><code>!(<var>pattern-list</var>)</code></dt>
+<dt><span><code>!(<var>pattern-list</var>)</code></span></dt>
<dd><p>Matches anything except one of the given 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
+beginning with &lsquo;<samp>.</samp>&rsquo;, but the filenames
+&lsquo;<samp>.</samp>&rsquo; and &lsquo;<samp>..</samp>&rsquo; must be matched by a
+pattern or sub-pattern that begins with a dot;
+when it is disabled, the set does not
+include any filenames beginning with &ldquo;.&rdquo; unless the pattern
+or sub-pattern begins with a &lsquo;<samp>.</samp>&rsquo;.
+As above, &lsquo;<samp>.</samp>&rsquo; only has a special meaning when matching filenames.
+</p>
<p>Complicated extended pattern matching against long strings is slow,
especially when the patterns contain alternations and the strings
contain multiple matches.
@@ -3188,7 +3406,10 @@ Using separate matches against shorter strings, or using arrays of
strings instead of a single long string, may be faster.
</p>
<hr>
-<span id="Quote-Removal"></span><div class="header">
+</div>
+</div>
+<div class="subsection" id="Quote-Removal">
+<div class="header">
<p>
Previous: <a href="#Filename-Expansion" accesskey="p" rel="prev">Filename Expansion</a>, Up: <a href="#Shell-Expansions" accesskey="u" rel="up">Shell Expansions</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -3199,7 +3420,10 @@ characters &lsquo;<samp>\</samp>&rsquo;, &lsquo;<samp>'</samp>&rsquo;, and &lsqu
result from one of the above expansions are removed.
</p>
<hr>
-<span id="Redirections"></span><div class="header">
+</div>
+</div>
+<div class="section" id="Redirections">
+<div class="header">
<p>
Next: <a href="#Executing-Commands" accesskey="n" rel="next">Executing Commands</a>, Previous: <a href="#Shell-Expansions" accesskey="p" rel="prev">Shell Expansions</a>, Up: <a href="#Basic-Shell-Features" accesskey="u" rel="up">Basic Shell Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -3207,9 +3431,9 @@ Next: <a href="#Executing-Commands" accesskey="n" rel="next">Executing Commands<
<span id="index-redirection"></span>
<p>Before a command is executed, its input and output
-may be <var>redirected</var>
+may be <em>redirected</em>
using a special notation interpreted by the shell.
-Redirection allows commands&rsquo; file handles to be
+<em>Redirection</em> allows commands&rsquo; file handles to be
duplicated, opened, closed,
made to refer to different files,
and can change the files the command reads from and writes to.
@@ -3230,6 +3454,8 @@ descriptor to close.
If {<var>varname</var>} is supplied, the redirection persists beyond
the scope of the command, allowing the shell programmer to manage
the file descriptor&rsquo;s lifetime manually.
+The <code>varredir_close</code> shell option manages this behavior
+(see <a href="#The-Shopt-Builtin">The Shopt Builtin</a>).
</p>
<p>In the following descriptions, if the file descriptor number is
omitted, and the first character of the redirection operator is
@@ -3265,29 +3491,29 @@ special files, bash will use them; otherwise it will emulate them
internally with the behavior described below.
</p>
<dl compact="compact">
-<dt><code>/dev/fd/<var>fd</var></code></dt>
+<dt><span><code>/dev/fd/<var>fd</var></code></span></dt>
<dd><p>If <var>fd</var> is a valid integer, file descriptor <var>fd</var> is duplicated.
</p>
</dd>
-<dt><code>/dev/stdin</code></dt>
+<dt><span><code>/dev/stdin</code></span></dt>
<dd><p>File descriptor 0 is duplicated.
</p>
</dd>
-<dt><code>/dev/stdout</code></dt>
+<dt><span><code>/dev/stdout</code></span></dt>
<dd><p>File descriptor 1 is duplicated.
</p>
</dd>
-<dt><code>/dev/stderr</code></dt>
+<dt><span><code>/dev/stderr</code></span></dt>
<dd><p>File descriptor 2 is duplicated.
</p>
</dd>
-<dt><code>/dev/tcp/<var>host</var>/<var>port</var></code></dt>
+<dt><span><code>/dev/tcp/<var>host</var>/<var>port</var></code></span></dt>
<dd><p>If <var>host</var> is a valid hostname or Internet address, and <var>port</var>
is an integer port number or service name, Bash attempts to open
the corresponding TCP socket.
</p>
</dd>
-<dt><code>/dev/udp/<var>host</var>/<var>port</var></code></dt>
+<dt><span><code>/dev/udp/<var>host</var>/<var>port</var></code></span></dt>
<dd><p>If <var>host</var> is a valid hostname or Internet address, and <var>port</var>
is an integer port number or service name, Bash attempts to open
the corresponding UDP socket.
@@ -3300,7 +3526,20 @@ the corresponding UDP socket.
care, as they may conflict with file descriptors the shell uses
internally.
</p>
-<span id="Redirecting-Input"></span><h4 class="subsection">3.6.1 Redirecting Input</h4>
+<ul class="section-toc">
+<li><a href="#Redirecting-Input" accesskey="1">Redirecting Input</a></li>
+<li><a href="#Redirecting-Output" accesskey="2">Redirecting Output</a></li>
+<li><a href="#Appending-Redirected-Output" accesskey="3">Appending Redirected Output</a></li>
+<li><a href="#Redirecting-Standard-Output-and-Standard-Error" accesskey="4">Redirecting Standard Output and Standard Error</a></li>
+<li><a href="#Appending-Standard-Output-and-Standard-Error" accesskey="5">Appending Standard Output and Standard Error</a></li>
+<li><a href="#Here-Documents" accesskey="6">Here Documents</a></li>
+<li><a href="#Here-Strings" accesskey="7">Here Strings</a></li>
+<li><a href="#Duplicating-File-Descriptors" accesskey="8">Duplicating File Descriptors</a></li>
+<li><a href="#Moving-File-Descriptors" accesskey="9">Moving File Descriptors</a></li>
+<li><a href="#Opening-File-Descriptors-for-Reading-and-Writing">Opening File Descriptors for Reading and Writing</a></li>
+</ul>
+<div class="subsection" id="Redirecting-Input">
+<h4 class="subsection">3.6.1 Redirecting Input</h4>
<p>Redirection of input causes the file whose name results from
the expansion of <var>word</var>
to be opened for reading on file descriptor <code>n</code>,
@@ -3312,7 +3551,9 @@ is not specified.
<pre class="example">[<var>n</var>]&lt;<var>word</var>
</pre></div>
-<span id="Redirecting-Output"></span><h4 class="subsection">3.6.2 Redirecting Output</h4>
+</div>
+<div class="subsection" id="Redirecting-Output">
+<h4 class="subsection">3.6.2 Redirecting Output</h4>
<p>Redirection of output causes the file whose name results from
the expansion of <var>word</var>
to be opened for writing on file descriptor <var>n</var>,
@@ -3333,7 +3574,9 @@ If the redirection operator is &lsquo;<samp>&gt;|</samp>&rsquo;, or the redirect
&lsquo;<samp>&gt;</samp>&rsquo; and the <code>noclobber</code> option is not enabled, the redirection
is attempted even if the file named by <var>word</var> exists.
</p>
-<span id="Appending-Redirected-Output"></span><h4 class="subsection">3.6.3 Appending Redirected Output</h4>
+</div>
+<div class="subsection" id="Appending-Redirected-Output">
+<h4 class="subsection">3.6.3 Appending Redirected Output</h4>
<p>Redirection of output in this fashion
causes the file whose name results from
the expansion of <var>word</var>
@@ -3346,7 +3589,9 @@ is not specified. If the file does not exist it is created.
<pre class="example">[<var>n</var>]&gt;&gt;<var>word</var>
</pre></div>
-<span id="Redirecting-Standard-Output-and-Standard-Error"></span><h4 class="subsection">3.6.4 Redirecting Standard Output and Standard Error</h4>
+</div>
+<div class="subsection" id="Redirecting-Standard-Output-and-Standard-Error">
+<h4 class="subsection">3.6.4 Redirecting Standard Output and Standard Error</h4>
<p>This construct allows both the
standard output (file descriptor 1) and
the standard error output (file descriptor 2)
@@ -3371,7 +3616,9 @@ This is semantically equivalent to
&lsquo;<samp>-</samp>&rsquo;. If it does, other redirection operators apply
(see Duplicating File Descriptors below) for compatibility reasons.
</p>
-<span id="Appending-Standard-Output-and-Standard-Error"></span><h4 class="subsection">3.6.5 Appending Standard Output and Standard Error</h4>
+</div>
+<div class="subsection" id="Appending-Standard-Output-and-Standard-Error">
+<h4 class="subsection">3.6.5 Appending Standard Output and Standard Error</h4>
<p>This construct allows both the
standard output (file descriptor 1) and
the standard error output (file descriptor 2)
@@ -3388,7 +3635,9 @@ expansion of <var>word</var>.
</pre></div>
<p>(see Duplicating File Descriptors below).
</p>
-<span id="Here-Documents"></span><h4 class="subsection">3.6.6 Here Documents</h4>
+</div>
+<div class="subsection" id="Here-Documents">
+<h4 class="subsection">3.6.6 Here Documents</h4>
<p>This type of redirection instructs the shell to read input from the
current source until a line containing only <var>word</var>
(with no trailing blanks) is seen. All of
@@ -3420,7 +3669,9 @@ line containing <var>delimiter</var>.
This allows here-documents within shell scripts to be indented in a
natural fashion.
</p>
-<span id="Here-Strings"></span><h4 class="subsection">3.6.7 Here Strings</h4>
+</div>
+<div class="subsection" id="Here-Strings">
+<h4 class="subsection">3.6.7 Here Strings</h4>
<p>A variant of here documents, the format is:
</p><div class="example">
<pre class="example">[<var>n</var>]&lt;&lt;&lt; <var>word</var>
@@ -3435,7 +3686,9 @@ with a newline appended,
to the command on its
standard input (or file descriptor <var>n</var> if <var>n</var> is specified).
</p>
-<span id="Duplicating-File-Descriptors"></span><h4 class="subsection">3.6.8 Duplicating File Descriptors</h4>
+</div>
+<div class="subsection" id="Duplicating-File-Descriptors">
+<h4 class="subsection">3.6.8 Duplicating File Descriptors</h4>
<p>The redirection operator
</p><div class="example">
<pre class="example">[<var>n</var>]&lt;&amp;<var>word</var>
@@ -3464,7 +3717,9 @@ As a special case, if <var>n</var> is omitted, and <var>word</var> does not
expand to one or more digits or &lsquo;<samp>-</samp>&rsquo;, the standard output and standard
error are redirected as described previously.
</p>
-<span id="Moving-File-Descriptors"></span><h4 class="subsection">3.6.9 Moving File Descriptors</h4>
+</div>
+<div class="subsection" id="Moving-File-Descriptors">
+<h4 class="subsection">3.6.9 Moving File Descriptors</h4>
<p>The redirection operator
</p><div class="example">
<pre class="example">[<var>n</var>]&lt;&amp;<var>digit</var>-
@@ -3480,7 +3735,9 @@ or the standard input (file descriptor 0) if <var>n</var> is not specified.
<p>moves the file descriptor <var>digit</var> to file descriptor <var>n</var>,
or the standard output (file descriptor 1) if <var>n</var> is not specified.
</p>
-<span id="Opening-File-Descriptors-for-Reading-and-Writing"></span><h4 class="subsection">3.6.10 Opening File Descriptors for Reading and Writing</h4>
+</div>
+<div class="subsection" id="Opening-File-Descriptors-for-Reading-and-Writing">
+<h4 class="subsection">3.6.10 Opening File Descriptors for Reading and Writing</h4>
<p>The redirection operator
</p><div class="example">
<pre class="example">[<var>n</var>]&lt;&gt;<var>word</var>
@@ -3491,34 +3748,27 @@ to be opened for both reading and writing on file descriptor
is not specified. If the file does not exist, it is created.
</p>
<hr>
-<span id="Executing-Commands"></span><div class="header">
+</div>
+</div>
+<div class="section" id="Executing-Commands">
+<div class="header">
<p>
Next: <a href="#Shell-Scripts" accesskey="n" rel="next">Shell Scripts</a>, Previous: <a href="#Redirections" accesskey="p" rel="prev">Redirections</a>, Up: <a href="#Basic-Shell-Features" accesskey="u" rel="up">Basic Shell Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Executing-Commands-1"></span><h3 class="section">3.7 Executing Commands</h3>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Simple-Command-Expansion" accesskey="1">Simple Command Expansion</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How Bash expands simple commands before
- executing them.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Command-Search-and-Execution" accesskey="2">Command Search and Execution</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How Bash finds commands and runs them.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Command-Execution-Environment" accesskey="3">Command Execution Environment</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The environment in which Bash
- executes commands that are not
- shell builtins.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Environment" accesskey="4">Environment</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The environment given to a command.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Exit-Status" accesskey="5">Exit Status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The status returned by commands and how Bash
- interprets it.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Signals" accesskey="6">Signals</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">What happens when Bash or a command it runs
- receives a signal.
-</td></tr>
-</table>
+<ul class="section-toc">
+<li><a href="#Simple-Command-Expansion" accesskey="1">Simple Command Expansion</a></li>
+<li><a href="#Command-Search-and-Execution" accesskey="2">Command Search and Execution</a></li>
+<li><a href="#Command-Execution-Environment" accesskey="3">Command Execution Environment</a></li>
+<li><a href="#Environment" accesskey="4">Environment</a></li>
+<li><a href="#Exit-Status" accesskey="5">Exit Status</a></li>
+<li><a href="#Signals" accesskey="6">Signals</a></li>
+</ul>
<hr>
-<span id="Simple-Command-Expansion"></span><div class="header">
+<div class="subsection" id="Simple-Command-Expansion">
+<div class="header">
<p>
Next: <a href="#Command-Search-and-Execution" accesskey="n" rel="next">Command Search and Execution</a>, Up: <a href="#Executing-Commands" accesskey="u" rel="up">Executing Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -3548,7 +3798,11 @@ and quote removal before being assigned to the variable.
</li></ol>
<p>If no command name results, the variable assignments affect the current
-shell environment. Otherwise, the variables are added to the environment
+shell environment.
+In the case of such a command (one that consists only of assignment
+statements and redirections), assignment statements are performed before
+redirections.
+Otherwise, the variables are added to the environment
of the executed command and do not affect the current shell environment.
If any of the assignments attempts to assign a value to a readonly variable,
an error occurs, and the command exits with a non-zero status.
@@ -3564,7 +3818,9 @@ the exit status of the last command substitution performed. If there
were no command substitutions, the command exits with a status of zero.
</p>
<hr>
-<span id="Command-Search-and-Execution"></span><div class="header">
+</div>
+<div class="subsection" id="Command-Search-and-Execution">
+<div class="header">
<p>
Next: <a href="#Command-Execution-Environment" accesskey="n" rel="next">Command Execution Environment</a>, Previous: <a href="#Simple-Command-Expansion" accesskey="p" rel="prev">Simple Command Expansion</a>, Up: <a href="#Executing-Commands" accesskey="u" rel="up">Executing Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -3610,7 +3866,7 @@ to the command are set to the arguments supplied, if any.
</li><li> If this execution fails because the file is not in executable
format, and the file is not a directory, it is assumed to be a
-<var>shell script</var> and the shell executes it as described in
+<em>shell script</em> and the shell executes it as described in
<a href="#Shell-Scripts">Shell Scripts</a>.
</li><li> If the command was not begun asynchronously, the shell waits for
@@ -3619,14 +3875,16 @@ the command to complete and collects its exit status.
</li></ol>
<hr>
-<span id="Command-Execution-Environment"></span><div class="header">
+</div>
+<div class="subsection" id="Command-Execution-Environment">
+<div class="header">
<p>
Next: <a href="#Environment" accesskey="n" rel="next">Environment</a>, Previous: <a href="#Command-Search-and-Execution" accesskey="p" rel="prev">Command Search and Execution</a>, Up: <a href="#Executing-Commands" accesskey="u" rel="up">Executing Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Command-Execution-Environment-1"></span><h4 class="subsection">3.7.3 Command Execution Environment</h4>
<span id="index-execution-environment"></span>
-<p>The shell has an <var>execution environment</var>, which consists of the
+<p>The shell has an <em>execution environment</em>, which consists of the
following:
</p>
<ul>
@@ -3655,7 +3913,7 @@ arguments) or by <code>set</code>
</li><li> shell aliases defined with <code>alias</code> (see <a href="#Aliases">Aliases</a>)
</li><li> various process <small>ID</small>s, including those of background jobs
-(see <a href="#Lists">Lists</a>), the value of <code>$$</code>, and the value of
+(see <a href="#Lists">Lists of Commands</a>), the value of <code>$$</code>, and the value of
<code>$PPID</code>
</li></ul>
@@ -3685,6 +3943,8 @@ shell&rsquo;s parent, and traps ignored by the shell are ignored
<p>A command invoked in this separate environment cannot affect the
shell&rsquo;s execution environment.
</p>
+<p>A <em>subshell</em> is a copy of the shell process.
+</p>
<p>Command substitution, commands grouped with parentheses,
and asynchronous commands are invoked in a
subshell environment that is a duplicate of the shell environment,
@@ -3704,7 +3964,9 @@ Otherwise, the invoked command inherits the file descriptors of the calling
shell as modified by redirections.
</p>
<hr>
-<span id="Environment"></span><div class="header">
+</div>
+<div class="subsection" id="Environment">
+<div class="header">
<p>
Next: <a href="#Exit-Status" accesskey="n" rel="next">Exit Status</a>, Previous: <a href="#Command-Execution-Environment" accesskey="p" rel="prev">Command Execution Environment</a>, Up: <a href="#Executing-Commands" accesskey="u" rel="up">Executing Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -3712,13 +3974,13 @@ Next: <a href="#Exit-Status" accesskey="n" rel="next">Exit Status</a>, Previous:
<span id="index-environment"></span>
<p>When a program is invoked it is given an array of strings
-called the <var>environment</var>.
+called the <em>environment</em>.
This is a list of name-value pairs, of the form <code>name=value</code>.
</p>
<p>Bash provides several ways to manipulate the environment.
On invocation, the shell scans its own environment and
creates a parameter for each name found, automatically marking
-it for <var>export</var>
+it for <code>export</code>
to child processes. Executed commands inherit the environment.
The <code>export</code> and &lsquo;<samp>declare -x</samp>&rsquo;
commands allow parameters and functions to be added to and
@@ -3746,7 +4008,9 @@ is set to the full pathname of the command and passed to that
command in its environment.
</p>
<hr>
-<span id="Exit-Status"></span><div class="header">
+</div>
+<div class="subsection" id="Exit-Status">
+<div class="header">
<p>
Next: <a href="#Signals" accesskey="n" rel="next">Signals</a>, Previous: <a href="#Environment" accesskey="p" rel="prev">Environment</a>, Up: <a href="#Executing-Commands" accesskey="u" rel="up">Executing Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -3754,7 +4018,7 @@ Next: <a href="#Signals" accesskey="n" rel="next">Signals</a>, Previous: <a href
<span id="index-exit-status-1"></span>
<p>The exit status of an executed command is the value returned by the
-<var>waitpid</var> system call or equivalent function. Exit statuses
+<code>waitpid</code> system call or equivalent function. Exit statuses
fall between 0 and 255, though, as explained below, the shell may
use values above 125 specially. Exit statuses from shell builtins and
compound commands are also limited to this range. Under certain
@@ -3779,7 +4043,7 @@ the exit status is greater than zero.
</p>
<p>The exit status is used by the Bash conditional commands
(see <a href="#Conditional-Constructs">Conditional Constructs</a>) and some of the list
-constructs (see <a href="#Lists">Lists</a>).
+constructs (see <a href="#Lists">Lists of Commands</a>).
</p>
<p>All of the Bash builtins return an exit status of zero if they succeed
and a non-zero status on failure, so they may be used by the
@@ -3787,8 +4051,13 @@ conditional and list constructs.
All builtins return an exit status of 2 to indicate incorrect usage,
generally invalid options or missing arguments.
</p>
+<p>The exit status of the last command is available in the special
+parameter $? (see <a href="#Special-Parameters">Special Parameters</a>).
+</p>
<hr>
-<span id="Signals"></span><div class="header">
+</div>
+<div class="subsection" id="Signals">
+<div class="header">
<p>
Previous: <a href="#Exit-Status" accesskey="p" rel="prev">Exit Status</a>, Up: <a href="#Executing-Commands" accesskey="u" rel="up">Executing Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -3837,8 +4106,40 @@ which a trap has been set will cause the <code>wait</code> builtin to return
immediately with an exit status greater than 128, immediately after
which the trap is executed.
</p>
+<p>When job control is not enabled, and Bash is waiting for a foreground
+command to complete, the shell receives keyboard-generated signals
+such as <code>SIGINT</code> (usually generated by &lsquo;<samp>^C</samp>&rsquo;) that users
+commonly intend to send to that command.
+This happens because the shell and the command are in the same process
+group as the terminal, and &lsquo;<samp>^C</samp>&rsquo; sends <code>SIGINT</code> to all processes
+in that process group.
+See <a href="#Job-Control">Job Control</a>, for a more in-depth discussion of process groups.
+</p>
+<p>When Bash is running without job control enabled and receives <code>SIGINT</code>
+while waiting for a foreground command, it waits until that foreground
+command terminates and then decides what to do about the <code>SIGINT</code>:
+</p>
+<ol>
+<li> If the command terminates due to the <code>SIGINT</code>, Bash concludes
+that the user meant to end the entire script, and acts on the
+<code>SIGINT</code> (e.g., by running a <code>SIGINT</code> trap or exiting itself);
+
+</li><li> If the pipeline does not terminate due to <code>SIGINT</code>, the program
+handled the <code>SIGINT</code> itself and did not treat it as a fatal signal.
+In that case, Bash does not treat <code>SIGINT</code> as a fatal signal,
+either, instead assuming that the <code>SIGINT</code> was used as part of the
+program&rsquo;s normal operation (e.g., <code>emacs</code> uses it to abort editing
+commands) or deliberately discarded. However, Bash will run any
+trap set on <code>SIGINT</code>, as it does with any other trapped signal it
+receives while it is waiting for the foreground command to
+complete, for compatibility.
+</li></ol>
+
<hr>
-<span id="Shell-Scripts"></span><div class="header">
+</div>
+</div>
+<div class="section" id="Shell-Scripts">
+<div class="header">
<p>
Previous: <a href="#Executing-Commands" accesskey="p" rel="prev">Executing Commands</a>, Up: <a href="#Basic-Shell-Features" accesskey="u" rel="up">Basic Shell Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -3863,8 +4164,10 @@ are unset.
</p>
<p>A shell script may be made executable by using the <code>chmod</code> command
to turn on the execute bit. When Bash finds such a file while
-searching the <code>$PATH</code> for a command, it spawns a subshell to
-execute it. In other words, executing
+searching the <code>$PATH</code> for a command, it creates a
+new instance of itself
+to execute it.
+In other words, executing
</p><div class="example">
<pre class="example">filename <var>arguments</var>
</pre></div>
@@ -3910,25 +4213,15 @@ under another shell. It&rsquo;s a common idiom to use <code>env</code> to find
in <code>$PATH</code>.
</p>
<hr>
-<span id="Shell-Builtin-Commands"></span><div class="header">
+</div>
+</div>
+<div class="chapter" id="Shell-Builtin-Commands">
+<div class="header">
<p>
-Next: <a href="#Shell-Variables" accesskey="n" rel="next">Shell Variables</a>, Previous: <a href="#Basic-Shell-Features" accesskey="p" rel="prev">Basic Shell Features</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Shell-Variables" accesskey="n" rel="next">Shell Variables</a>, Previous: <a href="#Basic-Shell-Features" accesskey="p" rel="prev">Basic Shell Features</a>, Up: <a href="#Top" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Shell-Builtin-Commands-1"></span><h2 class="chapter">4 Shell Builtin Commands</h2>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Bourne-Shell-Builtins" accesskey="1">Bourne Shell Builtins</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Builtin commands inherited from the Bourne
- Shell.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Bash-Builtins" accesskey="2">Bash Builtins</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Table of builtins specific to Bash.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Modifying-Shell-Behavior" accesskey="3">Modifying Shell Behavior</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Builtins to modify shell attributes and
- optional behavior.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Special-Builtins" accesskey="4">Special Builtins</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Builtin commands classified specially by
- POSIX.
-</td></tr>
-</table>
<p>Builtin commands are contained within the shell itself.
When the name of a builtin command is used as the first word of
@@ -3963,10 +4256,17 @@ Other builtins that accept arguments but are not specified as accepting
options interpret arguments beginning with &lsquo;<samp>-</samp>&rsquo; as invalid options and
require &lsquo;<samp>--</samp>&rsquo; to prevent this interpretation.
</p>
+<ul class="section-toc">
+<li><a href="#Bourne-Shell-Builtins" accesskey="1">Bourne Shell Builtins</a></li>
+<li><a href="#Bash-Builtins" accesskey="2">Bash Builtin Commands</a></li>
+<li><a href="#Modifying-Shell-Behavior" accesskey="3">Modifying Shell Behavior</a></li>
+<li><a href="#Special-Builtins" accesskey="4">Special Builtins</a></li>
+</ul>
<hr>
-<span id="Bourne-Shell-Builtins"></span><div class="header">
+<div class="section" id="Bourne-Shell-Builtins">
+<div class="header">
<p>
-Next: <a href="#Bash-Builtins" accesskey="n" rel="next">Bash Builtins</a>, Up: <a href="#Shell-Builtin-Commands" accesskey="u" rel="up">Shell Builtin Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Bash-Builtins" accesskey="n" rel="next">Bash Builtin Commands</a>, Up: <a href="#Shell-Builtin-Commands" accesskey="u" rel="up">Shell Builtin Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Bourne-Shell-Builtins-1"></span><h3 class="section">4.1 Bourne Shell Builtins</h3>
@@ -3974,9 +4274,8 @@ Next: <a href="#Bash-Builtins" accesskey="n" rel="next">Bash Builtins</a>, Up: <
These commands are implemented as specified by the <small>POSIX</small> standard.
</p>
<dl compact="compact">
-<dt><code>: <span class="roman">(a colon)</span></code></dt>
-<dd><span id="index-_003a"></span>
-<div class="example">
+<dt id='index-_003a'><span><code>: <span class="roman">(a colon)</span></code><a href='#index-_003a' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">: [<var>arguments</var>]
</pre></div>
@@ -3984,35 +4283,34 @@ These commands are implemented as specified by the <small>POSIX</small> standard
The return status is zero.
</p>
</dd>
-<dt><code>. <span class="roman">(a period)</span></code></dt>
-<dd><span id="index-_002e"></span>
-<div class="example">
+<dt id='index-_002e'><span><code>. <span class="roman">(a period)</span></code><a href='#index-_002e' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">. <var>filename</var> [<var>arguments</var>]
</pre></div>
<p>Read and execute commands from the <var>filename</var> argument in the
current shell context. If <var>filename</var> does not contain a slash,
-the <code>PATH</code> variable is used to find <var>filename</var>.
-When Bash is not in <small>POSIX</small> mode, the current directory is searched
+the <code>PATH</code> variable is used to find <var>filename</var>,
+but <var>filename</var> does not need to be executable.
+When Bash is not in <small>POSIX</small> mode, it searches the current directory
if <var>filename</var> is not found in <code>$PATH</code>.
If any <var>arguments</var> are supplied, they become the positional
parameters when <var>filename</var> is executed. Otherwise the positional
parameters are unchanged.
-If the <samp>-T</samp> option is enabled, <code>source</code> inherits any trap on
+If the <samp>-T</samp> option is enabled, <code>.</code> inherits any trap on
<code>DEBUG</code>; if it is not, any <code>DEBUG</code> trap string is saved and
-restored around the call to <code>source</code>, and <code>source</code> unsets the
+restored around the call to <code>.</code>, and <code>.</code> unsets the
<code>DEBUG</code> trap while it executes.
If <samp>-T</samp> is not set, and the sourced file changes
-the <code>DEBUG</code> trap, the new value is retained when <code>source</code> completes.
+the <code>DEBUG</code> trap, the new value is retained when <code>.</code> completes.
The return status is the exit status of the last command executed, or
zero if no commands are executed. If <var>filename</var> is not found, or
cannot be read, the return status is non-zero.
This builtin is equivalent to <code>source</code>.
</p>
</dd>
-<dt><code>break</code></dt>
-<dd><span id="index-break"></span>
-<div class="example">
+<dt id='index-break'><span><code>break</code><a href='#index-break' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">break [<var>n</var>]
</pre></div>
@@ -4022,16 +4320,14 @@ If <var>n</var> is supplied, the <var>n</var>th enclosing loop is exited.
The return status is zero unless <var>n</var> is not greater than or equal to 1.
</p>
</dd>
-<dt><code>cd</code></dt>
-<dd><span id="index-cd"></span>
-<div class="example">
+<dt id='index-cd'><span><code>cd</code><a href='#index-cd' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">cd [-L|[-P [-e]] [-@] [<var>directory</var>]
</pre></div>
<p>Change the current working directory to <var>directory</var>.
If <var>directory</var> is not supplied, the value of the <code>HOME</code>
shell variable is used.
-Any additional arguments following <var>directory</var> are ignored.
If the shell variable
<code>CDPATH</code> exists, it is used as a search path:
each directory name in <code>CDPATH</code> is searched for
@@ -4067,13 +4363,17 @@ before the directory change is attempted.
successful, the absolute pathname of the new working directory is
written to the standard output.
</p>
+<p>If the directory change is successful, <code>cd</code> sets the value of the
+<code>PWD</code> environment variable to the new directory name, and sets the
+<code>OLDPWD</code> environment variable to the value of the current working
+directory before the change.
+</p>
<p>The return status is zero if the directory is successfully changed,
non-zero otherwise.
</p>
</dd>
-<dt><code>continue</code></dt>
-<dd><span id="index-continue"></span>
-<div class="example">
+<dt id='index-continue'><span><code>continue</code><a href='#index-continue' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">continue [<var>n</var>]
</pre></div>
@@ -4085,9 +4385,8 @@ is resumed.
The return status is zero unless <var>n</var> is not greater than or equal to 1.
</p>
</dd>
-<dt><code>eval</code></dt>
-<dd><span id="index-eval"></span>
-<div class="example">
+<dt id='index-eval'><span><code>eval</code><a href='#index-eval' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">eval [<var>arguments</var>]
</pre></div>
@@ -4098,9 +4397,8 @@ If there are no arguments or only empty arguments, the return status is
zero.
</p>
</dd>
-<dt><code>exec</code></dt>
-<dd><span id="index-exec"></span>
-<div class="example">
+<dt id='index-exec'><span><code>exec</code><a href='#index-exec' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">exec [-cl] [-a <var>name</var>] [<var>command</var> [<var>arguments</var>]]
</pre></div>
@@ -4124,9 +4422,8 @@ the current shell environment. If there are no redirection errors, the
return status is zero; otherwise the return status is non-zero.
</p>
</dd>
-<dt><code>exit</code></dt>
-<dd><span id="index-exit"></span>
-<div class="example">
+<dt id='index-exit'><span><code>exit</code><a href='#index-exit' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">exit [<var>n</var>]
</pre></div>
@@ -4135,9 +4432,8 @@ If <var>n</var> is omitted, the exit status is that of the last command executed
Any trap on <code>EXIT</code> is executed before the shell terminates.
</p>
</dd>
-<dt><code>export</code></dt>
-<dd><span id="index-export"></span>
-<div class="example">
+<dt id='index-export'><span><code>export</code><a href='#index-export' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">export [-fn] [-p] [<var>name</var>[=<var>value</var>]]
</pre></div>
@@ -4145,7 +4441,7 @@ Any trap on <code>EXIT</code> is executed before the shell terminates.
in the environment. If the <samp>-f</samp> option is supplied, the <var>name</var>s
refer to shell functions; otherwise the names refer to shell variables.
The <samp>-n</samp> option means to no longer mark each <var>name</var> for export.
-If no <var>names</var> are supplied, or if the <samp>-p</samp> option is given, a
+If no <var>name</var>s are supplied, or if the <samp>-p</samp> option is given, a
list of names of all exported variables is displayed.
The <samp>-p</samp> option displays output in a form that may be reused as input.
If a variable name is followed by =<var>value</var>, the value of
@@ -4156,9 +4452,8 @@ the names is not a valid shell variable name, or <samp>-f</samp> is supplied
with a name that is not a shell function.
</p>
</dd>
-<dt><code>getopts</code></dt>
-<dd><span id="index-getopts"></span>
-<div class="example">
+<dt id='index-getopts'><span><code>getopts</code><a href='#index-getopts' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">getopts <var>optstring</var> <var>name</var> [<var>arg</var> &hellip;]
</pre></div>
@@ -4212,9 +4507,8 @@ If <code>getopts</code> is silent, then a colon (&lsquo;<samp>:</samp>&rsquo;) i
<var>name</var> and <code>OPTARG</code> is set to the option character found.
</p>
</dd>
-<dt><code>hash</code></dt>
-<dd><span id="index-hash"></span>
-<div class="example">
+<dt id='index-hash'><span><code>hash</code><a href='#index-hash' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">hash [-r] [-p <var>filename</var>] [-dt] [<var>name</var>]
</pre></div>
@@ -4241,9 +4535,8 @@ The return status is zero unless a <var>name</var> is not found or an invalid
option is supplied.
</p>
</dd>
-<dt><code>pwd</code></dt>
-<dd><span id="index-pwd"></span>
-<div class="example">
+<dt id='index-pwd'><span><code>pwd</code><a href='#index-pwd' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">pwd [-LP]
</pre></div>
@@ -4257,9 +4550,8 @@ determining the name of the current directory or an invalid option
is supplied.
</p>
</dd>
-<dt><code>readonly</code></dt>
-<dd><span id="index-readonly"></span>
-<div class="example">
+<dt id='index-readonly'><span><code>readonly</code><a href='#index-readonly' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">readonly [-aAf] [-p] [<var>name</var>[=<var>value</var>]] &hellip;
</pre></div>
@@ -4284,9 +4576,8 @@ the <var>name</var> arguments is not a valid shell variable or function name,
or the <samp>-f</samp> option is supplied with a name that is not a shell function.
</p>
</dd>
-<dt><code>return</code></dt>
-<dd><span id="index-return"></span>
-<div class="example">
+<dt id='index-return'><span><code>return</code><a href='#index-return' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">return [<var>n</var>]
</pre></div>
@@ -4313,9 +4604,8 @@ argument or is used outside a function
and not during the execution of a script by <code>.</code> or <code>source</code>.
</p>
</dd>
-<dt><code>shift</code></dt>
-<dd><span id="index-shift"></span>
-<div class="example">
+<dt id='index-shift'><span><code>shift</code><a href='#index-shift' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">shift [<var>n</var>]
</pre></div>
@@ -4332,10 +4622,9 @@ The return status is zero unless <var>n</var> is greater than <code>$#</code> or
less than zero, non-zero otherwise.
</p>
</dd>
-<dt><code>test</code></dt>
-<dt><code>[</code></dt>
-<dd><span id="index-test"></span>
-<span id="index-_005b"></span>
+<dt id='index-test'><span><code>test</code><a href='#index-test' class='copiable-anchor'> &para;</a></span></dt>
+<dt><span><code>[</code></span></dt>
+<dd><span id="index-_005b"></span>
<div class="example">
<pre class="example">test <var>expr</var>
</pre></div>
@@ -4357,20 +4646,20 @@ The evaluation depends on the number of arguments; see below.
Operator precedence is used when there are five or more arguments.
</p>
<dl compact="compact">
-<dt><code>! <var>expr</var></code></dt>
+<dt><span><code>! <var>expr</var></code></span></dt>
<dd><p>True if <var>expr</var> is false.
</p>
</dd>
-<dt><code>( <var>expr</var> )</code></dt>
+<dt><span><code>( <var>expr</var> )</code></span></dt>
<dd><p>Returns the value of <var>expr</var>.
This may be used to override the normal precedence of operators.
</p>
</dd>
-<dt><code><var>expr1</var> -a <var>expr2</var></code></dt>
+<dt><span><code><var>expr1</var> -a <var>expr2</var></code></span></dt>
<dd><p>True if both <var>expr1</var> and <var>expr2</var> are true.
</p>
</dd>
-<dt><code><var>expr1</var> -o <var>expr2</var></code></dt>
+<dt><span><code><var>expr1</var> -o <var>expr2</var></code></span></dt>
<dd><p>True if either <var>expr1</var> or <var>expr2</var> is true.
</p></dd>
</dl>
@@ -4379,15 +4668,15 @@ This may be used to override the normal precedence of operators.
expressions using a set of rules based on the number of arguments.
</p>
<dl compact="compact">
-<dt>0 arguments</dt>
+<dt><span>0 arguments</span></dt>
<dd><p>The expression is false.
</p>
</dd>
-<dt>1 argument</dt>
+<dt><span>1 argument</span></dt>
<dd><p>The expression is true if, and only if, the argument is not null.
</p>
</dd>
-<dt>2 arguments</dt>
+<dt><span>2 arguments</span></dt>
<dd><p>If the first argument is &lsquo;<samp>!</samp>&rsquo;, the expression is true if and
only if the second argument is null.
If the first argument is one of the unary conditional operators
@@ -4397,7 +4686,7 @@ If the first argument is not a valid unary operator, the expression is
false.
</p>
</dd>
-<dt>3 arguments</dt>
+<dt><span>3 arguments</span></dt>
<dd><p>The following conditions are applied in the order listed.
</p>
<ol>
@@ -4416,14 +4705,21 @@ argument.
</li></ol>
</dd>
-<dt>4 arguments</dt>
-<dd><p>If the first argument is &lsquo;<samp>!</samp>&rsquo;, the result is the negation of
+<dt><span>4 arguments</span></dt>
+<dd><p>The following conditions are applied in the order listed.
+</p>
+<ol>
+<li> If the first argument is &lsquo;<samp>!</samp>&rsquo;, the result is the negation of
the three-argument expression composed of the remaining arguments.
-Otherwise, the expression is parsed and evaluated according to
+</li><li> If the first argument is exactly &lsquo;<samp>(</samp>&rsquo; and the fourth argument is
+exactly &lsquo;<samp>)</samp>&rsquo;, the result is the two-argument test of the second
+and third arguments.
+</li><li> Otherwise, the expression is parsed and evaluated according to
precedence using the rules listed above.
-</p>
+</li></ol>
+
</dd>
-<dt>5 or more arguments</dt>
+<dt><span>5 or more arguments</span></dt>
<dd><p>The expression is parsed and evaluated according to precedence
using the rules listed above.
</p></dd>
@@ -4433,9 +4729,8 @@ using the rules listed above.
operators sort lexicographically using ASCII ordering.
</p>
</dd>
-<dt><code>times</code></dt>
-<dd><span id="index-times"></span>
-<div class="example">
+<dt id='index-times'><span><code>times</code><a href='#index-times' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">times
</pre></div>
@@ -4443,9 +4738,8 @@ operators sort lexicographically using ASCII ordering.
The return status is zero.
</p>
</dd>
-<dt><code>trap</code></dt>
-<dd><span id="index-trap"></span>
-<div class="example">
+<dt id='index-trap'><span><code>trap</code><a href='#index-trap' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">trap [-lp] [<var>arg</var>] [<var>sigspec</var> &hellip;]
</pre></div>
@@ -4505,9 +4799,8 @@ values in a subshell or subshell environment when one is created.
valid signal.
</p>
</dd>
-<dt><code>umask</code></dt>
-<dd><span id="index-umask"></span>
-<div class="example">
+<dt id='index-umask'><span><code>umask</code><a href='#index-umask' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">umask [-p] [-S] [<var>mode</var>]
</pre></div>
@@ -4528,9 +4821,8 @@ of the umask is subtracted from <code>7</code>. Thus, a umask of <code>022</cod
results in permissions of <code>755</code>.
</p>
</dd>
-<dt><code>unset</code></dt>
-<dd><span id="index-unset"></span>
-<div class="example">
+<dt id='index-unset'><span><code>unset</code><a href='#index-unset' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">unset [-fnv] [<var>name</var>]
</pre></div>
@@ -4540,7 +4832,7 @@ If the <samp>-v</samp> option is given, each
If the <samp>-f</samp> option is given, the <var>name</var>s refer to shell
functions, and the function definition is removed.
If the <samp>-n</samp> option is supplied, and <var>name</var> is a variable with
-the <var>nameref</var> attribute, <var>name</var> will be unset rather than the
+the <code>nameref</code> attribute, <var>name</var> will be unset rather than the
variable it references.
<samp>-n</samp> has no effect if the <samp>-f</samp> option is supplied.
If no options are supplied, each <var>name</var> refers to a variable; if
@@ -4549,12 +4841,14 @@ unset.
Readonly variables and functions may not be unset.
Some shell variables lose their special behavior if they are unset; such
behavior is noted in the description of the individual variables.
-The return status is zero unless a <var>name</var> is readonly.
+The return status is zero unless a <var>name</var> is readonly or may not be unset.
</p></dd>
</dl>
<hr>
-<span id="Bash-Builtins"></span><div class="header">
+</div>
+<div class="section" id="Bash-Builtins">
+<div class="header">
<p>
Next: <a href="#Modifying-Shell-Behavior" accesskey="n" rel="next">Modifying Shell Behavior</a>, Previous: <a href="#Bourne-Shell-Builtins" accesskey="p" rel="prev">Bourne Shell Builtins</a>, Up: <a href="#Shell-Builtin-Commands" accesskey="u" rel="up">Shell Builtin Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -4565,9 +4859,8 @@ or have been extended in Bash.
Some of these commands are specified in the <small>POSIX</small> standard.
</p>
<dl compact="compact">
-<dt><code>alias</code></dt>
-<dd><span id="index-alias"></span>
-<div class="example">
+<dt id='index-alias'><span><code>alias</code><a href='#index-alias' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">alias [-p] [<var>name</var>[=<var>value</var>] &hellip;]
</pre></div>
@@ -4580,15 +4873,15 @@ and value of the alias is printed.
Aliases are described in <a href="#Aliases">Aliases</a>.
</p>
</dd>
-<dt><code>bind</code></dt>
-<dd><span id="index-bind"></span>
-<div class="example">
+<dt id='index-bind'><span><code>bind</code><a href='#index-bind' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">bind [-m <var>keymap</var>] [-lpsvPSVX]
bind [-m <var>keymap</var>] [-q <var>function</var>] [-u <var>function</var>] [-r <var>keyseq</var>]
bind [-m <var>keymap</var>] -f <var>filename</var>
bind [-m <var>keymap</var>] -x <var>keyseq:shell-command</var>
bind [-m <var>keymap</var>] <var>keyseq:function-name</var>
bind [-m <var>keymap</var>] <var>keyseq:readline-command</var>
+bind <var>readline-command-line</var>
</pre></div>
<p>Display current Readline (see <a href="#Command-Line-Editing">Command Line Editing</a>)
@@ -4603,7 +4896,7 @@ but each binding or command must be passed as a separate argument; e.g.,
<p>Options, if supplied, have the following meanings:
</p>
<dl compact="compact">
-<dt><code>-m <var>keymap</var></code></dt>
+<dt><span><code>-m <var>keymap</var></code></span></dt>
<dd><p>Use <var>keymap</var> as the keymap to be affected by
the subsequent bindings. Acceptable <var>keymap</var>
names are
@@ -4619,55 +4912,55 @@ names are
synonym); <code>emacs</code> is equivalent to <code>emacs-standard</code>.
</p>
</dd>
-<dt><code>-l</code></dt>
+<dt><span><code>-l</code></span></dt>
<dd><p>List the names of all Readline functions.
</p>
</dd>
-<dt><code>-p</code></dt>
+<dt><span><code>-p</code></span></dt>
<dd><p>Display Readline function names and bindings in such a way that they
can be used as input or in a Readline initialization file.
</p>
</dd>
-<dt><code>-P</code></dt>
+<dt><span><code>-P</code></span></dt>
<dd><p>List current Readline function names and bindings.
</p>
</dd>
-<dt><code>-v</code></dt>
+<dt><span><code>-v</code></span></dt>
<dd><p>Display Readline variable names and values in such a way that they
can be used as input or in a Readline initialization file.
</p>
</dd>
-<dt><code>-V</code></dt>
+<dt><span><code>-V</code></span></dt>
<dd><p>List current Readline variable names and values.
</p>
</dd>
-<dt><code>-s</code></dt>
+<dt><span><code>-s</code></span></dt>
<dd><p>Display Readline key sequences bound to macros and the strings they output
in such a way that they can be used as input or in a Readline
initialization file.
</p>
</dd>
-<dt><code>-S</code></dt>
+<dt><span><code>-S</code></span></dt>
<dd><p>Display Readline key sequences bound to macros and the strings they output.
</p>
</dd>
-<dt><code>-f <var>filename</var></code></dt>
+<dt><span><code>-f <var>filename</var></code></span></dt>
<dd><p>Read key bindings from <var>filename</var>.
</p>
</dd>
-<dt><code>-q <var>function</var></code></dt>
+<dt><span><code>-q <var>function</var></code></span></dt>
<dd><p>Query about which keys invoke the named <var>function</var>.
</p>
</dd>
-<dt><code>-u <var>function</var></code></dt>
+<dt><span><code>-u <var>function</var></code></span></dt>
<dd><p>Unbind all keys bound to the named <var>function</var>.
</p>
</dd>
-<dt><code>-r <var>keyseq</var></code></dt>
+<dt><span><code>-r <var>keyseq</var></code></span></dt>
<dd><p>Remove any current binding for <var>keyseq</var>.
</p>
</dd>
-<dt><code>-x <var>keyseq:shell-command</var></code></dt>
+<dt><span><code>-x <var>keyseq:shell-command</var></code></span></dt>
<dd><p>Cause <var>shell-command</var> to be executed whenever <var>keyseq</var> is
entered.
When <var>shell-command</var> is executed, the shell sets the
@@ -4675,12 +4968,15 @@ When <var>shell-command</var> is executed, the shell sets the
buffer and the <code>READLINE_POINT</code> and <code>READLINE_MARK</code> variables
to the current location of the insertion point and the saved insertion
point (the <var>mark</var>), respectively.
+The shell assigns any numeric argument the user supplied to the
+<code>READLINE_ARGUMENT</code> variable.
+If there was no argument, that variable is not set.
If the executed command changes the value of any of <code>READLINE_LINE</code>,
<code>READLINE_POINT</code>, or <code>READLINE_MARK</code>, those new values will be
reflected in the editing state.
</p>
</dd>
-<dt><code>-X</code></dt>
+<dt><span><code>-X</code></span></dt>
<dd><p>List all key sequences bound to shell commands and the associated commands
in a format that can be reused as input.
</p></dd>
@@ -4690,9 +4986,8 @@ in a format that can be reused as input.
error occurs.
</p>
</dd>
-<dt><code>builtin</code></dt>
-<dd><span id="index-builtin"></span>
-<div class="example">
+<dt id='index-builtin'><span><code>builtin</code><a href='#index-builtin' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">builtin [<var>shell-builtin</var> [<var>args</var>]]
</pre></div>
@@ -4704,9 +4999,8 @@ The return status is non-zero if <var>shell-builtin</var> is not a shell
builtin command.
</p>
</dd>
-<dt><code>caller</code></dt>
-<dd><span id="index-caller"></span>
-<div class="example">
+<dt id='index-caller'><span><code>caller</code><a href='#index-caller' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">caller [<var>expr</var>]
</pre></div>
@@ -4726,9 +5020,8 @@ call or <var>expr</var> does not correspond to a valid position in the
call stack.
</p>
</dd>
-<dt><code>command</code></dt>
-<dd><span id="index-command"></span>
-<div class="example">
+<dt id='index-command'><span><code>command</code><a href='#index-command' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">command [-pVv] <var>command</var> [<var>arguments</var> &hellip;]
</pre></div>
@@ -4753,9 +5046,8 @@ a more verbose description. In this case, the return status is
zero if <var>command</var> is found, and non-zero if not.
</p>
</dd>
-<dt><code>declare</code></dt>
-<dd><span id="index-declare"></span>
-<div class="example">
+<dt id='index-declare'><span><code>declare</code><a href='#index-declare' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">declare [-aAfFgiIlnrtux] [-p] [<var>name</var>[=<var>value</var>] &hellip;]
</pre></div>
@@ -4786,7 +5078,7 @@ the global scope, even when <code>declare</code> is executed in a shell function
It is ignored in all other cases.
</p>
<p>The <samp>-I</samp> option causes local variables to inherit the attributes
-(except the <var>nameref</var> attribute)
+(except the <code>nameref</code> attribute)
and value of any existing variable with the same
<var>name</var> at a surrounding scope.
If there is no existing variable, the local variable is initially unset.
@@ -4795,32 +5087,32 @@ If there is no existing variable, the local variable is initially unset.
the specified attributes or to give variables attributes:
</p>
<dl compact="compact">
-<dt><code>-a</code></dt>
+<dt><span><code>-a</code></span></dt>
<dd><p>Each <var>name</var> is an indexed array variable (see <a href="#Arrays">Arrays</a>).
</p>
</dd>
-<dt><code>-A</code></dt>
+<dt><span><code>-A</code></span></dt>
<dd><p>Each <var>name</var> is an associative array variable (see <a href="#Arrays">Arrays</a>).
</p>
</dd>
-<dt><code>-f</code></dt>
+<dt><span><code>-f</code></span></dt>
<dd><p>Use function names only.
</p>
</dd>
-<dt><code>-i</code></dt>
+<dt><span><code>-i</code></span></dt>
<dd><p>The variable is to be treated as
an integer; arithmetic evaluation (see <a href="#Shell-Arithmetic">Shell Arithmetic</a>) is
performed when the variable is assigned a value.
</p>
</dd>
-<dt><code>-l</code></dt>
+<dt><span><code>-l</code></span></dt>
<dd><p>When the variable is assigned a value, all upper-case characters are
converted to lower-case.
The upper-case attribute is disabled.
</p>
</dd>
-<dt><code>-n</code></dt>
-<dd><p>Give each <var>name</var> the <var>nameref</var> attribute, making
+<dt><span><code>-n</code></span></dt>
+<dd><p>Give each <var>name</var> the <code>nameref</code> attribute, making
it a name reference to another variable.
That other variable is defined by the value of <var>name</var>.
All references, assignments, and attribute modifications
@@ -4830,25 +5122,25 @@ to <var>name</var>, except for those using or changing the
The nameref attribute cannot be applied to array variables.
</p>
</dd>
-<dt><code>-r</code></dt>
+<dt><span><code>-r</code></span></dt>
<dd><p>Make <var>name</var>s readonly. These names cannot then be assigned values
by subsequent assignment statements or unset.
</p>
</dd>
-<dt><code>-t</code></dt>
+<dt><span><code>-t</code></span></dt>
<dd><p>Give each <var>name</var> the <code>trace</code> attribute.
Traced functions inherit the <code>DEBUG</code> and <code>RETURN</code> traps from
the calling shell.
The trace attribute has no special meaning for variables.
</p>
</dd>
-<dt><code>-u</code></dt>
+<dt><span><code>-u</code></span></dt>
<dd><p>When the variable is assigned a value, all lower-case characters are
converted to upper-case.
The lower-case attribute is disabled.
</p>
</dd>
-<dt><code>-x</code></dt>
+<dt><span><code>-x</code></span></dt>
<dd><p>Mark each <var>name</var> for export to subsequent commands via
the environment.
</p></dd>
@@ -4872,15 +5164,14 @@ an attempt is made to define a function using &lsquo;<samp>-f foo=bar</samp>&rsq
an attempt is made to assign a value to a readonly variable,
an attempt is made to assign a value to an array variable without
using the compound assignment syntax (see <a href="#Arrays">Arrays</a>),
-one of the <var>names</var> is not a valid shell variable name,
+one of the <var>name</var>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 <samp>-f</samp>.
</p>
</dd>
-<dt><code>echo</code></dt>
-<dd><span id="index-echo"></span>
-<div class="example">
+<dt id='index-echo'><span><code>echo</code><a href='#index-echo' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">echo [-neE] [<var>arg</var> &hellip;]
</pre></div>
@@ -4899,59 +5190,58 @@ escape characters by default.
</p>
<p><code>echo</code> interprets the following escape sequences:
</p><dl compact="compact">
-<dt><code>\a</code></dt>
+<dt><span><code>\a</code></span></dt>
<dd><p>alert (bell)
</p></dd>
-<dt><code>\b</code></dt>
+<dt><span><code>\b</code></span></dt>
<dd><p>backspace
</p></dd>
-<dt><code>\c</code></dt>
+<dt><span><code>\c</code></span></dt>
<dd><p>suppress further output
</p></dd>
-<dt><code>\e</code></dt>
-<dt><code>\E</code></dt>
+<dt><span><code>\e</code></span></dt>
+<dt><span><code>\E</code></span></dt>
<dd><p>escape
</p></dd>
-<dt><code>\f</code></dt>
+<dt><span><code>\f</code></span></dt>
<dd><p>form feed
</p></dd>
-<dt><code>\n</code></dt>
+<dt><span><code>\n</code></span></dt>
<dd><p>new line
</p></dd>
-<dt><code>\r</code></dt>
+<dt><span><code>\r</code></span></dt>
<dd><p>carriage return
</p></dd>
-<dt><code>\t</code></dt>
+<dt><span><code>\t</code></span></dt>
<dd><p>horizontal tab
</p></dd>
-<dt><code>\v</code></dt>
+<dt><span><code>\v</code></span></dt>
<dd><p>vertical tab
</p></dd>
-<dt><code>\\</code></dt>
+<dt><span><code>\\</code></span></dt>
<dd><p>backslash
</p></dd>
-<dt><code>\0<var>nnn</var></code></dt>
+<dt><span><code>\0<var>nnn</var></code></span></dt>
<dd><p>the eight-bit character whose value is the octal value <var>nnn</var>
(zero to three octal digits)
</p></dd>
-<dt><code>\x<var>HH</var></code></dt>
+<dt><span><code>\x<var>HH</var></code></span></dt>
<dd><p>the eight-bit character whose value is the hexadecimal value <var>HH</var>
(one or two hex digits)
</p></dd>
-<dt><code>\u<var>HHHH</var></code></dt>
+<dt><span><code>\u<var>HHHH</var></code></span></dt>
<dd><p>the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value
<var>HHHH</var> (one to four hex digits)
</p></dd>
-<dt><code>\U<var>HHHHHHHH</var></code></dt>
+<dt><span><code>\U<var>HHHHHHHH</var></code></span></dt>
<dd><p>the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value
<var>HHHHHHHH</var> (one to eight hex digits)
</p></dd>
</dl>
</dd>
-<dt><code>enable</code></dt>
-<dd><span id="index-enable"></span>
-<div class="example">
+<dt id='index-enable'><span><code>enable</code><a href='#index-enable' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">enable [-a] [-dnps] [-f <var>filename</var>] [<var>name</var> &hellip;]
</pre></div>
@@ -4972,6 +5262,9 @@ each builtin with an indication of whether or not it is enabled.
</p>
<p>The <samp>-f</samp> option means to load the new builtin command <var>name</var>
from shared object <var>filename</var>, on systems that support dynamic loading.
+Bash will use the value of the <code>BASH_LOADABLES_PATH</code> variable as a
+colon-separated list of directories in which to search for <var>filename</var>.
+The default is system-dependent.
The <samp>-d</samp> option will delete a builtin loaded with <samp>-f</samp>.
</p>
<p>If there are no options, a list of the shell builtins is displayed.
@@ -4979,13 +5272,17 @@ The <samp>-s</samp> option restricts <code>enable</code> to the <small>POSIX</sm
builtins. If <samp>-s</samp> is used with <samp>-f</samp>, the new builtin becomes
a special builtin (see <a href="#Special-Builtins">Special Builtins</a>).
</p>
+<p>If no options are supplied and a <var>name</var> is not a shell builtin,
+<code>enable</code> will attempt to load <var>name</var> from a shared object named
+<var>name</var>, as if the command were
+&lsquo;<samp>enable -f <var>name</var> <var>name</var></samp>&rsquo;.
+</p>
<p>The return status is zero unless a <var>name</var> is not a shell builtin
or there is an error loading a new builtin from a shared object.
</p>
</dd>
-<dt><code>help</code></dt>
-<dd><span id="index-help"></span>
-<div class="example">
+<dt id='index-help'><span><code>help</code><a href='#index-help' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">help [-dms] [<var>pattern</var>]
</pre></div>
@@ -4997,13 +5294,13 @@ the builtins is printed.
<p>Options, if supplied, have the following meanings:
</p>
<dl compact="compact">
-<dt><code>-d</code></dt>
+<dt><span><code>-d</code></span></dt>
<dd><p>Display a short description of each <var>pattern</var>
</p></dd>
-<dt><code>-m</code></dt>
+<dt><span><code>-m</code></span></dt>
<dd><p>Display the description of each <var>pattern</var> in a manpage-like format
</p></dd>
-<dt><code>-s</code></dt>
+<dt><span><code>-s</code></span></dt>
<dd><p>Display only a short usage synopsis for each <var>pattern</var>
</p></dd>
</dl>
@@ -5011,9 +5308,8 @@ the builtins is printed.
<p>The return status is zero unless no command matches <var>pattern</var>.
</p>
</dd>
-<dt><code>let</code></dt>
-<dd><span id="index-let"></span>
-<div class="example">
+<dt id='index-let'><span><code>let</code><a href='#index-let' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">let <var>expression</var> [<var>expression</var> &hellip;]
</pre></div>
@@ -5024,9 +5320,8 @@ last <var>expression</var> evaluates to 0, <code>let</code> returns 1;
otherwise 0 is returned.
</p>
</dd>
-<dt><code>local</code></dt>
-<dd><span id="index-local"></span>
-<div class="example">
+<dt id='index-local'><span><code>local</code><a href='#index-local' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">local [<var>option</var>] <var>name</var>[=<var>value</var>] &hellip;
</pre></div>
@@ -5047,9 +5342,8 @@ a function, an invalid <var>name</var> is supplied, or <var>name</var> is a
readonly variable.
</p>
</dd>
-<dt><code>logout</code></dt>
-<dd><span id="index-logout"></span>
-<div class="example">
+<dt id='index-logout'><span><code>logout</code><a href='#index-logout' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">logout [<var>n</var>]
</pre></div>
@@ -5057,9 +5351,8 @@ readonly variable.
parent.
</p>
</dd>
-<dt><code>mapfile</code></dt>
-<dd><span id="index-mapfile"></span>
-<div class="example">
+<dt id='index-mapfile'><span><code>mapfile</code><a href='#index-mapfile' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">mapfile [-d <var>delim</var>] [-n <var>count</var>] [-O <var>origin</var>] [-s <var>count</var>]
[-t] [-u <var>fd</var>] [-C <var>callback</var>] [-c <var>quantum</var>] [<var>array</var>]
</pre></div>
@@ -5071,33 +5364,33 @@ The variable <code>MAPFILE</code> is the default <var>array</var>.
Options, if supplied, have the following meanings:
</p>
<dl compact="compact">
-<dt><code>-d</code></dt>
+<dt><span><code>-d</code></span></dt>
<dd><p>The first character of <var>delim</var> is used to terminate each input line,
rather than newline.
If <var>delim</var> is the empty string, <code>mapfile</code> will terminate a line
when it reads a NUL character.
</p></dd>
-<dt><code>-n</code></dt>
+<dt><span><code>-n</code></span></dt>
<dd><p>Copy at most <var>count</var> lines. If <var>count</var> is 0, all lines are copied.
</p></dd>
-<dt><code>-O</code></dt>
+<dt><span><code>-O</code></span></dt>
<dd><p>Begin assigning to <var>array</var> at index <var>origin</var>.
The default index is 0.
</p></dd>
-<dt><code>-s</code></dt>
+<dt><span><code>-s</code></span></dt>
<dd><p>Discard the first <var>count</var> lines read.
</p></dd>
-<dt><code>-t</code></dt>
+<dt><span><code>-t</code></span></dt>
<dd><p>Remove a trailing <var>delim</var> (default newline) from each line read.
</p></dd>
-<dt><code>-u</code></dt>
+<dt><span><code>-u</code></span></dt>
<dd><p>Read lines from file descriptor <var>fd</var> instead of the standard input.
</p></dd>
-<dt><code>-C</code></dt>
+<dt><span><code>-C</code></span></dt>
<dd><p>Evaluate <var>callback</var> each time <var>quantum</var> lines are read.
The <samp>-c</samp> option specifies <var>quantum</var>.
</p></dd>
-<dt><code>-c</code></dt>
+<dt><span><code>-c</code></span></dt>
<dd><p>Specify the number of lines read between each call to <var>callback</var>.
</p></dd>
</dl>
@@ -5118,9 +5411,8 @@ argument is supplied, <var>array</var> is invalid or unassignable, or <var>array
is not an indexed array.
</p>
</dd>
-<dt><code>printf</code></dt>
-<dd><span id="index-printf"></span>
-<div class="example">
+<dt id='index-printf'><span><code>printf</code><a href='#index-printf' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">printf [-v <var>var</var>] <var>format</var> [<var>arguments</var>]
</pre></div>
@@ -5138,16 +5430,20 @@ In addition to the standard <code>printf(1)</code> formats, <code>printf</code>
interprets the following extensions:
</p>
<dl compact="compact">
-<dt><code>%b</code></dt>
+<dt><span><code>%b</code></span></dt>
<dd><p>Causes <code>printf</code> to expand backslash escape sequences in the
corresponding <var>argument</var> in the same way as <code>echo -e</code>
-(see <a href="#Bash-Builtins">Bash Builtins</a>).
+(see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
</p></dd>
-<dt><code>%q</code></dt>
+<dt><span><code>%q</code></span></dt>
<dd><p>Causes <code>printf</code> to output the
corresponding <var>argument</var> in a format that can be reused as shell input.
</p></dd>
-<dt><code>%(<var>datefmt</var>)T</code></dt>
+<dt><span><code>%Q</code></span></dt>
+<dd><p>like <code>%q</code>, but applies any supplied precision to the <var>argument</var>
+before quoting it.
+</p></dd>
+<dt><span><code>%(<var>datefmt</var>)T</code></span></dt>
<dd><p>Causes <code>printf</code> to output the date-time string resulting from using
<var>datefmt</var> as a format string for <code>strftime</code>(3).
The corresponding <var>argument</var> is an integer representing the number of
@@ -5176,9 +5472,8 @@ appropriate, had been supplied. The return value is zero on success,
non-zero on failure.
</p>
</dd>
-<dt><code>read</code></dt>
-<dd><span id="index-read"></span>
-<div class="example">
+<dt id='index-read'><span><code>read</code><a href='#index-read' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">read [-ers] [-a <var>aname</var>] [-d <var>delim</var>] [-i <var>text</var>] [-n <var>nchars</var>]
[-N <var>nchars</var>] [-p <var>prompt</var>] [-t <var>timeout</var>] [-u <var>fd</var>] [<var>name</var> &hellip;]
</pre></div>
@@ -5203,38 +5498,38 @@ meaning for the next character read and for line continuation.
<p>Options, if supplied, have the following meanings:
</p>
<dl compact="compact">
-<dt><code>-a <var>aname</var></code></dt>
+<dt><span><code>-a <var>aname</var></code></span></dt>
<dd><p>The words are assigned to sequential indices of the array variable
<var>aname</var>, starting at 0.
All elements are removed from <var>aname</var> before the assignment.
Other <var>name</var> arguments are ignored.
</p>
</dd>
-<dt><code>-d <var>delim</var></code></dt>
+<dt><span><code>-d <var>delim</var></code></span></dt>
<dd><p>The first character of <var>delim</var> is used to terminate the input line,
rather than newline.
If <var>delim</var> is the empty string, <code>read</code> will terminate a line
when it reads a NUL character.
</p>
</dd>
-<dt><code>-e</code></dt>
+<dt><span><code>-e</code></span></dt>
<dd><p>Readline (see <a href="#Command-Line-Editing">Command Line Editing</a>) is used to obtain the line.
Readline uses the current (or default, if line editing was not previously
active) editing settings, but uses Readline&rsquo;s default filename completion.
</p>
</dd>
-<dt><code>-i <var>text</var></code></dt>
+<dt><span><code>-i <var>text</var></code></span></dt>
<dd><p>If Readline is being used to read the line, <var>text</var> is placed into
the editing buffer before editing begins.
</p>
</dd>
-<dt><code>-n <var>nchars</var></code></dt>
+<dt><span><code>-n <var>nchars</var></code></span></dt>
<dd><p><code>read</code> returns after reading <var>nchars</var> characters rather than
waiting for a complete line of input, but honors a delimiter if fewer
than <var>nchars</var> characters are read before the delimiter.
</p>
</dd>
-<dt><code>-N <var>nchars</var></code></dt>
+<dt><span><code>-N <var>nchars</var></code></span></dt>
<dd><p><code>read</code> returns after reading exactly <var>nchars</var> characters rather
than waiting for a complete line of input, unless EOF is encountered or
<code>read</code> times out.
@@ -5246,25 +5541,25 @@ that the variable is assigned exactly the characters read
(with the exception of backslash; see the <samp>-r</samp> option below).
</p>
</dd>
-<dt><code>-p <var>prompt</var></code></dt>
+<dt><span><code>-p <var>prompt</var></code></span></dt>
<dd><p>Display <var>prompt</var>, without a trailing newline, before attempting
to read any input.
The prompt is displayed only if input is coming from a terminal.
</p>
</dd>
-<dt><code>-r</code></dt>
+<dt><span><code>-r</code></span></dt>
<dd><p>If this option is given, backslash does not act as an escape character.
The backslash is considered to be part of the line.
In particular, a backslash-newline pair may not then be used as a line
continuation.
</p>
</dd>
-<dt><code>-s</code></dt>
+<dt><span><code>-s</code></span></dt>
<dd><p>Silent mode. If input is coming from a terminal, characters are
not echoed.
</p>
</dd>
-<dt><code>-t <var>timeout</var></code></dt>
+<dt><span><code>-t <var>timeout</var></code></span></dt>
<dd><p>Cause <code>read</code> to time out and return failure if a complete line of
input (or a specified number of characters)
is not read within <var>timeout</var> seconds.
@@ -5276,12 +5571,14 @@ from regular files.
If <code>read</code> times out, <code>read</code> saves any partial input read into
the specified variable <var>name</var>.
If <var>timeout</var> is 0, <code>read</code> returns immediately, without trying to
-read any data. The exit status is 0 if input is available on
-the specified file descriptor, non-zero otherwise.
+read any data.
+The exit status is 0 if input is available on the specified file descriptor,
+or the read will return EOF,
+non-zero otherwise.
The exit status is greater than 128 if the timeout is exceeded.
</p>
</dd>
-<dt><code>-u <var>fd</var></code></dt>
+<dt><span><code>-u <var>fd</var></code></span></dt>
<dd><p>Read input from file descriptor <var>fd</var>.
</p></dd>
</dl>
@@ -5296,9 +5593,8 @@ a variable assignment error (such as assigning to a readonly variable) occurs,
or an invalid file descriptor is supplied as the argument to <samp>-u</samp>.
</p>
</dd>
-<dt><code>readarray</code></dt>
-<dd><span id="index-readarray"></span>
-<div class="example">
+<dt id='index-readarray'><span><code>readarray</code><a href='#index-readarray' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">readarray [-d <var>delim</var>] [-n <var>count</var>] [-O <var>origin</var>] [-s <var>count</var>]
[-t] [-u <var>fd</var>] [-C <var>callback</var>] [-c <var>quantum</var>] [<var>array</var>]
</pre></div>
@@ -5310,18 +5606,16 @@ if the <samp>-u</samp> option is supplied.
<p>A synonym for <code>mapfile</code>.
</p>
</dd>
-<dt><code>source</code></dt>
-<dd><span id="index-source"></span>
-<div class="example">
+<dt id='index-source'><span><code>source</code><a href='#index-source' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">source <var>filename</var>
</pre></div>
<p>A synonym for <code>.</code> (see <a href="#Bourne-Shell-Builtins">Bourne Shell Builtins</a>).
</p>
</dd>
-<dt><code>type</code></dt>
-<dd><span id="index-type"></span>
-<div class="example">
+<dt id='index-type'><span><code>type</code><a href='#index-type' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">type [-afptP] [<var>name</var> &hellip;]
</pre></div>
@@ -5354,13 +5648,12 @@ is not also used.
<p>If the <samp>-f</samp> option is used, <code>type</code> does not attempt to find
shell functions, as with the <code>command</code> builtin.
</p>
-<p>The return status is zero if all of the <var>names</var> are found, non-zero
+<p>The return status is zero if all of the <var>name</var>s are found, non-zero
if any are not found.
</p>
</dd>
-<dt><code>typeset</code></dt>
-<dd><span id="index-typeset"></span>
-<div class="example">
+<dt id='index-typeset'><span><code>typeset</code><a href='#index-typeset' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">typeset [-afFgrxilnrtux] [-p] [<var>name</var>[=<var>value</var>] &hellip;]
</pre></div>
@@ -5369,9 +5662,8 @@ shell.
It is a synonym for the <code>declare</code> builtin command.
</p>
</dd>
-<dt><code>ulimit</code></dt>
-<dd><span id="index-ulimit"></span>
-<div class="example">
+<dt id='index-ulimit'><span><code>ulimit</code><a href='#index-ulimit' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">ulimit [-HS] -a
ulimit [-HS] [-bcdefiklmnpqrstuvxPRT] [<var>limit</var>]
</pre></div>
@@ -5381,101 +5673,101 @@ started by the shell, on systems that allow such control. If an
option is given, it is interpreted as follows:
</p>
<dl compact="compact">
-<dt><code>-S</code></dt>
+<dt><span><code>-S</code></span></dt>
<dd><p>Change and report the soft limit associated with a resource.
</p>
</dd>
-<dt><code>-H</code></dt>
+<dt><span><code>-H</code></span></dt>
<dd><p>Change and report the hard limit associated with a resource.
</p>
</dd>
-<dt><code>-a</code></dt>
+<dt><span><code>-a</code></span></dt>
<dd><p>All current limits are reported; no limits are set.
</p>
</dd>
-<dt><code>-b</code></dt>
+<dt><span><code>-b</code></span></dt>
<dd><p>The maximum socket buffer size.
</p>
</dd>
-<dt><code>-c</code></dt>
+<dt><span><code>-c</code></span></dt>
<dd><p>The maximum size of core files created.
</p>
</dd>
-<dt><code>-d</code></dt>
+<dt><span><code>-d</code></span></dt>
<dd><p>The maximum size of a process&rsquo;s data segment.
</p>
</dd>
-<dt><code>-e</code></dt>
+<dt><span><code>-e</code></span></dt>
<dd><p>The maximum scheduling priority (&quot;nice&quot;).
</p>
</dd>
-<dt><code>-f</code></dt>
+<dt><span><code>-f</code></span></dt>
<dd><p>The maximum size of files written by the shell and its children.
</p>
</dd>
-<dt><code>-i</code></dt>
+<dt><span><code>-i</code></span></dt>
<dd><p>The maximum number of pending signals.
</p>
</dd>
-<dt><code>-k</code></dt>
+<dt><span><code>-k</code></span></dt>
<dd><p>The maximum number of kqueues that may be allocated.
</p>
</dd>
-<dt><code>-l</code></dt>
+<dt><span><code>-l</code></span></dt>
<dd><p>The maximum size that may be locked into memory.
</p>
</dd>
-<dt><code>-m</code></dt>
+<dt><span><code>-m</code></span></dt>
<dd><p>The maximum resident set size (many systems do not honor this limit).
</p>
</dd>
-<dt><code>-n</code></dt>
+<dt><span><code>-n</code></span></dt>
<dd><p>The maximum number of open file descriptors (most systems do not
allow this value to be set).
</p>
</dd>
-<dt><code>-p</code></dt>
+<dt><span><code>-p</code></span></dt>
<dd><p>The pipe buffer size.
</p>
</dd>
-<dt><code>-q</code></dt>
+<dt><span><code>-q</code></span></dt>
<dd><p>The maximum number of bytes in <small>POSIX</small> message queues.
</p>
</dd>
-<dt><code>-r</code></dt>
+<dt><span><code>-r</code></span></dt>
<dd><p>The maximum real-time scheduling priority.
</p>
</dd>
-<dt><code>-s</code></dt>
+<dt><span><code>-s</code></span></dt>
<dd><p>The maximum stack size.
</p>
</dd>
-<dt><code>-t</code></dt>
+<dt><span><code>-t</code></span></dt>
<dd><p>The maximum amount of cpu time in seconds.
</p>
</dd>
-<dt><code>-u</code></dt>
+<dt><span><code>-u</code></span></dt>
<dd><p>The maximum number of processes available to a single user.
</p>
</dd>
-<dt><code>-v</code></dt>
+<dt><span><code>-v</code></span></dt>
<dd><p>The maximum amount of virtual memory available to the shell, and, on
some systems, to its children.
</p>
</dd>
-<dt><code>-x</code></dt>
+<dt><span><code>-x</code></span></dt>
<dd><p>The maximum number of file locks.
</p>
</dd>
-<dt><code>-P</code></dt>
+<dt><span><code>-P</code></span></dt>
<dd><p>The maximum number of pseudoterminals.
</p>
</dd>
-<dt><code>-R</code></dt>
+<dt><span><code>-R</code></span></dt>
<dd><p>The maximum time a real-time process can run before blocking, in microseconds.
</p>
</dd>
-<dt><code>-T</code></dt>
+<dt><span><code>-T</code></span></dt>
<dd><p>The maximum number of threads.
</p></dd>
</dl>
@@ -5511,9 +5803,8 @@ and, when in <small>POSIX</small> Mode (see <a href="#Bash-POSIX-Mode">Bash POSI
or an error occurs while setting a new limit.
</p>
</dd>
-<dt><code>unalias</code></dt>
-<dd><span id="index-unalias"></span>
-<div class="example">
+<dt id='index-unalias'><span><code>unalias</code><a href='#index-unalias' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">unalias [-a] [<var>name</var> &hellip; ]
</pre></div>
@@ -5524,22 +5815,22 @@ Aliases are described in <a href="#Aliases">Aliases</a>.
</dl>
<hr>
-<span id="Modifying-Shell-Behavior"></span><div class="header">
+</div>
+<div class="section" id="Modifying-Shell-Behavior">
+<div class="header">
<p>
-Next: <a href="#Special-Builtins" accesskey="n" rel="next">Special Builtins</a>, Previous: <a href="#Bash-Builtins" accesskey="p" rel="prev">Bash Builtins</a>, Up: <a href="#Shell-Builtin-Commands" accesskey="u" rel="up">Shell Builtin Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Special-Builtins" accesskey="n" rel="next">Special Builtins</a>, Previous: <a href="#Bash-Builtins" accesskey="p" rel="prev">Bash Builtin Commands</a>, Up: <a href="#Shell-Builtin-Commands" accesskey="u" rel="up">Shell Builtin Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Modifying-Shell-Behavior-1"></span><h3 class="section">4.3 Modifying Shell Behavior</h3>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#The-Set-Builtin" accesskey="1">The Set Builtin</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Change the values of shell attributes and
- positional parameters.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#The-Shopt-Builtin" accesskey="2">The Shopt Builtin</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Modify shell optional behavior.
-</td></tr>
-</table>
+<ul class="section-toc">
+<li><a href="#The-Set-Builtin" accesskey="1">The Set Builtin</a></li>
+<li><a href="#The-Shopt-Builtin" accesskey="2">The Shopt Builtin</a></li>
+</ul>
<hr>
-<span id="The-Set-Builtin"></span><div class="header">
+<div class="subsection" id="The-Set-Builtin">
+<div class="header">
<p>
Next: <a href="#The-Shopt-Builtin" accesskey="n" rel="next">The Shopt Builtin</a>, Up: <a href="#Modifying-Shell-Behavior" accesskey="u" rel="up">Modifying Shell Behavior</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -5550,11 +5841,10 @@ allows you to change the values of shell options and set the positional
parameters, or to display the names and values of shell variables.
</p>
<dl compact="compact">
-<dt><code>set</code></dt>
-<dd><span id="index-set"></span>
-<div class="example">
-<pre class="example">set [--abefhkmnptuvxBCEHPT] [-o <var>option-name</var>] [<var>argument</var> &hellip;]
-set [+abefhkmnptuvxBCEHPT] [+o <var>option-name</var>] [<var>argument</var> &hellip;]
+<dt id='index-set'><span><code>set</code><a href='#index-set' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
+<pre class="example">set [-abefhkmnptuvxBCEHPT] [-o <var>option-name</var>] [--] [-] [<var>argument</var> &hellip;]
+set [+abefhkmnptuvxBCEHPT] [+o <var>option-name</var>] [--] [-] [<var>argument</var> &hellip;]
</pre></div>
<p>If no options or arguments are supplied, <code>set</code> displays the names
@@ -5568,22 +5858,22 @@ In <small>POSIX</small> mode, only shell variables are listed.
Options, if specified, have the following meanings:
</p>
<dl compact="compact">
-<dt><code>-a</code></dt>
+<dt><span><code>-a</code></span></dt>
<dd><p>Each variable or function that is created or modified is given the
export attribute and marked for export to the environment of
subsequent commands.
</p>
</dd>
-<dt><code>-b</code></dt>
+<dt><span><code>-b</code></span></dt>
<dd><p>Cause the status of terminated background jobs to be reported
immediately, rather than before printing the next primary prompt.
</p>
</dd>
-<dt><code>-e</code></dt>
+<dt><span><code>-e</code></span></dt>
<dd><p>Exit immediately if
a pipeline (see <a href="#Pipelines">Pipelines</a>), which may consist of a single simple command
(see <a href="#Simple-Commands">Simple Commands</a>),
-a list (see <a href="#Lists">Lists</a>),
+a list (see <a href="#Lists">Lists of Commands</a>),
or a compound command (see <a href="#Compound-Commands">Compound Commands</a>)
returns a non-zero status.
The shell does not exit if the command that fails is part of the
@@ -5613,129 +5903,129 @@ effect until the compound command or the command containing the function
call completes.
</p>
</dd>
-<dt><code>-f</code></dt>
+<dt><span><code>-f</code></span></dt>
<dd><p>Disable filename expansion (globbing).
</p>
</dd>
-<dt><code>-h</code></dt>
+<dt><span><code>-h</code></span></dt>
<dd><p>Locate and remember (hash) commands as they are looked up for execution.
This option is enabled by default.
</p>
</dd>
-<dt><code>-k</code></dt>
+<dt><span><code>-k</code></span></dt>
<dd><p>All arguments in the form of assignment statements are placed
in the environment for a command, not just those that precede
the command name.
</p>
</dd>
-<dt><code>-m</code></dt>
+<dt><span><code>-m</code></span></dt>
<dd><p>Job control is enabled (see <a href="#Job-Control">Job Control</a>).
All processes run in a separate process group.
When a background job completes, the shell prints a line
containing its exit status.
</p>
</dd>
-<dt><code>-n</code></dt>
+<dt><span><code>-n</code></span></dt>
<dd><p>Read commands but do not execute them.
This may be used to check a script for syntax errors.
This option is ignored by interactive shells.
</p>
</dd>
-<dt><code>-o <var>option-name</var></code></dt>
+<dt><span><code>-o <var>option-name</var></code></span></dt>
<dd>
<p>Set the option corresponding to <var>option-name</var>:
</p>
<dl compact="compact">
-<dt><code>allexport</code></dt>
+<dt><span><code>allexport</code></span></dt>
<dd><p>Same as <code>-a</code>.
</p>
</dd>
-<dt><code>braceexpand</code></dt>
+<dt><span><code>braceexpand</code></span></dt>
<dd><p>Same as <code>-B</code>.
</p>
</dd>
-<dt><code>emacs</code></dt>
+<dt><span><code>emacs</code></span></dt>
<dd><p>Use an <code>emacs</code>-style line editing interface (see <a href="#Command-Line-Editing">Command Line Editing</a>).
This also affects the editing interface used for <code>read -e</code>.
</p>
</dd>
-<dt><code>errexit</code></dt>
+<dt><span><code>errexit</code></span></dt>
<dd><p>Same as <code>-e</code>.
</p>
</dd>
-<dt><code>errtrace</code></dt>
+<dt><span><code>errtrace</code></span></dt>
<dd><p>Same as <code>-E</code>.
</p>
</dd>
-<dt><code>functrace</code></dt>
+<dt><span><code>functrace</code></span></dt>
<dd><p>Same as <code>-T</code>.
</p>
</dd>
-<dt><code>hashall</code></dt>
+<dt><span><code>hashall</code></span></dt>
<dd><p>Same as <code>-h</code>.
</p>
</dd>
-<dt><code>histexpand</code></dt>
+<dt><span><code>histexpand</code></span></dt>
<dd><p>Same as <code>-H</code>.
</p>
</dd>
-<dt><code>history</code></dt>
+<dt><span><code>history</code></span></dt>
<dd><p>Enable command history, as described in <a href="#Bash-History-Facilities">Bash History Facilities</a>.
This option is on by default in interactive shells.
</p>
</dd>
-<dt><code>ignoreeof</code></dt>
+<dt><span><code>ignoreeof</code></span></dt>
<dd><p>An interactive shell will not exit upon reading EOF.
</p>
</dd>
-<dt><code>keyword</code></dt>
+<dt><span><code>keyword</code></span></dt>
<dd><p>Same as <code>-k</code>.
</p>
</dd>
-<dt><code>monitor</code></dt>
+<dt><span><code>monitor</code></span></dt>
<dd><p>Same as <code>-m</code>.
</p>
</dd>
-<dt><code>noclobber</code></dt>
+<dt><span><code>noclobber</code></span></dt>
<dd><p>Same as <code>-C</code>.
</p>
</dd>
-<dt><code>noexec</code></dt>
+<dt><span><code>noexec</code></span></dt>
<dd><p>Same as <code>-n</code>.
</p>
</dd>
-<dt><code>noglob</code></dt>
+<dt><span><code>noglob</code></span></dt>
<dd><p>Same as <code>-f</code>.
</p>
</dd>
-<dt><code>nolog</code></dt>
+<dt><span><code>nolog</code></span></dt>
<dd><p>Currently ignored.
</p>
</dd>
-<dt><code>notify</code></dt>
+<dt><span><code>notify</code></span></dt>
<dd><p>Same as <code>-b</code>.
</p>
</dd>
-<dt><code>nounset</code></dt>
+<dt><span><code>nounset</code></span></dt>
<dd><p>Same as <code>-u</code>.
</p>
</dd>
-<dt><code>onecmd</code></dt>
+<dt><span><code>onecmd</code></span></dt>
<dd><p>Same as <code>-t</code>.
</p>
</dd>
-<dt><code>physical</code></dt>
+<dt><span><code>physical</code></span></dt>
<dd><p>Same as <code>-P</code>.
</p>
</dd>
-<dt><code>pipefail</code></dt>
+<dt><span><code>pipefail</code></span></dt>
<dd><p>If set, the return value of a pipeline is the value of the last
(rightmost) command to exit with a non-zero status, or zero if all
commands in the pipeline exit successfully.
This option is disabled by default.
</p>
</dd>
-<dt><code>posix</code></dt>
+<dt><span><code>posix</code></span></dt>
<dd><p>Change the behavior of Bash where the default operation differs
from the <small>POSIX</small> standard to match the standard
(see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>).
@@ -5743,26 +6033,26 @@ This is intended to make Bash behave as a strict superset of that
standard.
</p>
</dd>
-<dt><code>privileged</code></dt>
+<dt><span><code>privileged</code></span></dt>
<dd><p>Same as <code>-p</code>.
</p>
</dd>
-<dt><code>verbose</code></dt>
+<dt><span><code>verbose</code></span></dt>
<dd><p>Same as <code>-v</code>.
</p>
</dd>
-<dt><code>vi</code></dt>
+<dt><span><code>vi</code></span></dt>
<dd><p>Use a <code>vi</code>-style line editing interface.
This also affects the editing interface used for <code>read -e</code>.
</p>
</dd>
-<dt><code>xtrace</code></dt>
+<dt><span><code>xtrace</code></span></dt>
<dd><p>Same as <code>-x</code>.
</p></dd>
</dl>
</dd>
-<dt><code>-p</code></dt>
+<dt><span><code>-p</code></span></dt>
<dd><p>Turn on privileged mode.
In this mode, the <code>$BASH_ENV</code> and <code>$ENV</code> files are not
processed, shell functions are not inherited from the environment,
@@ -5777,22 +6067,29 @@ Turning this option off causes the effective user
and group ids to be set to the real user and group ids.
</p>
</dd>
-<dt><code>-t</code></dt>
+<dt><span><code>-r</code></span></dt>
+<dd><p>Enable restricted shell mode.
+This option cannot be unset once it has been set.
+</p>
+</dd>
+<dt><span><code>-t</code></span></dt>
<dd><p>Exit after reading and executing one command.
</p>
</dd>
-<dt><code>-u</code></dt>
+<dt><span><code>-u</code></span></dt>
<dd><p>Treat unset variables and parameters other than the special parameters
-&lsquo;<samp>@</samp>&rsquo; or &lsquo;<samp>*</samp>&rsquo; as an error when performing parameter expansion.
+&lsquo;<samp>@</samp>&rsquo; or &lsquo;<samp>*</samp>&rsquo;,
+or array variables subscripted with &lsquo;<samp>@</samp>&rsquo; or &lsquo;<samp>*</samp>&rsquo;,
+as an error when performing parameter expansion.
An error message will be written to the standard error, and a non-interactive
shell will exit.
</p>
</dd>
-<dt><code>-v</code></dt>
+<dt><span><code>-v</code></span></dt>
<dd><p>Print shell input lines as they are read.
</p>
</dd>
-<dt><code>-x</code></dt>
+<dt><span><code>-x</code></span></dt>
<dd><p>Print a trace of simple commands, <code>for</code> commands, <code>case</code>
commands, <code>select</code> commands, and arithmetic <code>for</code> commands
and their arguments or associated word lists after they are
@@ -5801,28 +6098,28 @@ variable is expanded and the resultant value is printed before
the command and its expanded arguments.
</p>
</dd>
-<dt><code>-B</code></dt>
+<dt><span><code>-B</code></span></dt>
<dd><p>The shell will perform brace expansion (see <a href="#Brace-Expansion">Brace Expansion</a>).
This option is on by default.
</p>
</dd>
-<dt><code>-C</code></dt>
+<dt><span><code>-C</code></span></dt>
<dd><p>Prevent output redirection using &lsquo;<samp>&gt;</samp>&rsquo;, &lsquo;<samp>&gt;&amp;</samp>&rsquo;, and &lsquo;<samp>&lt;&gt;</samp>&rsquo;
from overwriting existing files.
</p>
</dd>
-<dt><code>-E</code></dt>
+<dt><span><code>-E</code></span></dt>
<dd><p>If set, any trap on <code>ERR</code> is inherited by shell functions, command
substitutions, and commands executed in a subshell environment.
The <code>ERR</code> trap is normally not inherited in such cases.
</p>
</dd>
-<dt><code>-H</code></dt>
-<dd><p>Enable &lsquo;<samp>!</samp>&rsquo; style history substitution (see <a href="#History-Interaction">History Interaction</a>).
+<dt><span><code>-H</code></span></dt>
+<dd><p>Enable &lsquo;<samp>!</samp>&rsquo; style history substitution (see <a href="#History-Interaction">History Expansion</a>).
This option is on by default for interactive shells.
</p>
</dd>
-<dt><code>-P</code></dt>
+<dt><span><code>-P</code></span></dt>
<dd><p>If set, do not resolve symbolic links when performing commands such as
<code>cd</code> which change the current directory. The physical directory
is used instead. By default, Bash follows
@@ -5847,7 +6144,7 @@ $ cd ..; pwd
</pre></div>
</dd>
-<dt><code>-T</code></dt>
+<dt><span><code>-T</code></span></dt>
<dd><p>If set, any trap on <code>DEBUG</code> and <code>RETURN</code> are inherited by
shell functions, command substitutions, and commands executed
in a subshell environment.
@@ -5855,13 +6152,13 @@ The <code>DEBUG</code> and <code>RETURN</code> traps are normally not inherited
in such cases.
</p>
</dd>
-<dt><code>--</code></dt>
+<dt><span><code>--</code></span></dt>
<dd><p>If no arguments follow this option, then the positional parameters are
unset. Otherwise, the positional parameters are set to the
<var>arguments</var>, even if some of them begin with a &lsquo;<samp>-</samp>&rsquo;.
</p>
</dd>
-<dt><code>-</code></dt>
+<dt><span><code>-</code></span></dt>
<dd><p>Signal the end of options, cause all remaining <var>arguments</var>
to be assigned to the positional parameters. The <samp>-x</samp>
and <samp>-v</samp> options are turned off.
@@ -5882,7 +6179,9 @@ The special parameter <code>#</code> is set to N.
</dl>
<hr>
-<span id="The-Shopt-Builtin"></span><div class="header">
+</div>
+<div class="subsection" id="The-Shopt-Builtin">
+<div class="header">
<p>
Previous: <a href="#The-Set-Builtin" accesskey="p" rel="prev">The Set Builtin</a>, Up: <a href="#Modifying-Shell-Behavior" accesskey="u" rel="up">Modifying Shell Behavior</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -5891,9 +6190,8 @@ Previous: <a href="#The-Set-Builtin" accesskey="p" rel="prev">The Set Builtin</a
<p>This builtin allows you to change additional shell optional behavior.
</p>
<dl compact="compact">
-<dt><code>shopt</code></dt>
-<dd><span id="index-shopt"></span>
-<div class="example">
+<dt id='index-shopt'><span><code>shopt</code><a href='#index-shopt' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">shopt [-pqsu] [-o] [<var>optname</var> &hellip;]
</pre></div>
@@ -5903,29 +6201,29 @@ The settings can be either those listed below, or, if the
option to the <code>set</code> builtin command (see <a href="#The-Set-Builtin">The Set Builtin</a>).
With no options, or with the <samp>-p</samp> option, a list of all settable
options is displayed, with an indication of whether or not each is set;
-if <var>optnames</var> are supplied, the output is restricted to those options.
+if <var>optname</var>s are supplied, the output is restricted to those options.
The <samp>-p</samp> option causes output to be displayed in a form that
may be reused as input.
Other options have the following meanings:
</p>
<dl compact="compact">
-<dt><code>-s</code></dt>
+<dt><span><code>-s</code></span></dt>
<dd><p>Enable (set) each <var>optname</var>.
</p>
</dd>
-<dt><code>-u</code></dt>
+<dt><span><code>-u</code></span></dt>
<dd><p>Disable (unset) each <var>optname</var>.
</p>
</dd>
-<dt><code>-q</code></dt>
+<dt><span><code>-q</code></span></dt>
<dd><p>Suppresses normal output; the return status
indicates whether the <var>optname</var> is set or unset.
If multiple <var>optname</var> arguments are given with <samp>-q</samp>,
-the return status is zero if all <var>optnames</var> are enabled;
+the return status is zero if all <var>optname</var>s are enabled;
non-zero otherwise.
</p>
</dd>
-<dt><code>-o</code></dt>
+<dt><span><code>-o</code></span></dt>
<dd><p>Restricts the values of
<var>optname</var> to be those defined for the <samp>-o</samp> option to the
<code>set</code> builtin (see <a href="#The-Set-Builtin">The Set Builtin</a>).
@@ -5939,33 +6237,33 @@ those options which are set or unset, respectively.
<p>Unless otherwise noted, the <code>shopt</code> options are disabled (off)
by default.
</p>
-<p>The return status when listing options is zero if all <var>optnames</var>
+<p>The return status when listing options is zero if all <var>optname</var>s
are enabled, non-zero otherwise. When setting or unsetting options,
the return status is zero unless an <var>optname</var> is not a valid shell
option.
</p>
<p>The list of <code>shopt</code> options is:
</p><dl compact="compact">
-<dt><code>assoc_expand_once</code></dt>
+<dt><span><code>assoc_expand_once</code></span></dt>
<dd><p>If set, the shell suppresses multiple evaluation of associative array
subscripts during arithmetic expression evaluation, while executing
builtins that can perform variable assignments,
and while executing builtins that perform array dereferencing.
</p>
</dd>
-<dt><code>autocd</code></dt>
+<dt><span><code>autocd</code></span></dt>
<dd><p>If set, a command name that is the name of a directory is executed as if
it were the argument to the <code>cd</code> command.
This option is only used by interactive shells.
</p>
</dd>
-<dt><code>cdable_vars</code></dt>
+<dt><span><code>cdable_vars</code></span></dt>
<dd><p>If this is set, an argument to the <code>cd</code> builtin command that
is not a directory is assumed to be the name of a variable whose
value is the directory to change to.
</p>
</dd>
-<dt><code>cdspell</code></dt>
+<dt><span><code>cdspell</code></span></dt>
<dd><p>If set, minor errors in the spelling of a directory component in a
<code>cd</code> command will be corrected.
The errors checked for are transposed characters,
@@ -5975,13 +6273,13 @@ and the command proceeds.
This option is only used by interactive shells.
</p>
</dd>
-<dt><code>checkhash</code></dt>
+<dt><span><code>checkhash</code></span></dt>
<dd><p>If this is set, Bash checks that a command found in the hash
table exists before trying to execute it. If a hashed command no
longer exists, a normal path search is performed.
</p>
</dd>
-<dt><code>checkjobs</code></dt>
+<dt><span><code>checkjobs</code></span></dt>
<dd><p>If set, Bash lists the status of any stopped and running 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
@@ -5989,14 +6287,14 @@ intervening command (see <a href="#Job-Control">Job Control</a>).
The shell always postpones exiting if any jobs are stopped.
</p>
</dd>
-<dt><code>checkwinsize</code></dt>
+<dt><span><code>checkwinsize</code></span></dt>
<dd><p>If set, Bash checks the window size after each external (non-builtin)
command and, if necessary, updates the values of
<code>LINES</code> and <code>COLUMNS</code>.
This option is enabled by default.
</p>
</dd>
-<dt><code>cmdhist</code></dt>
+<dt><span><code>cmdhist</code></span></dt>
<dd><p>If set, Bash
attempts to save all lines of a multiple-line
command in the same history entry. This allows
@@ -6005,18 +6303,18 @@ This option is enabled by default, but only has an effect if command
history is enabled (see <a href="#Bash-History-Facilities">Bash History Facilities</a>).
</p>
</dd>
-<dt><code>compat31</code></dt>
-<dt><code>compat32</code></dt>
-<dt><code>compat40</code></dt>
-<dt><code>compat41</code></dt>
-<dt><code>compat42</code></dt>
-<dt><code>compat43</code></dt>
-<dt><code>compat44</code></dt>
+<dt><span><code>compat31</code></span></dt>
+<dt><span><code>compat32</code></span></dt>
+<dt><span><code>compat40</code></span></dt>
+<dt><span><code>compat41</code></span></dt>
+<dt><span><code>compat42</code></span></dt>
+<dt><span><code>compat43</code></span></dt>
+<dt><span><code>compat44</code></span></dt>
<dd><p>These control aspects of the shell&rsquo;s compatibility mode
(see <a href="#Shell-Compatibility-Mode">Shell Compatibility Mode</a>).
</p>
</dd>
-<dt><code>complete_fullquote</code></dt>
+<dt><span><code>complete_fullquote</code></span></dt>
<dd><p>If set, Bash
quotes all shell metacharacters in filenames and directory names when
performing completion.
@@ -6034,41 +6332,41 @@ This variable is set by default, which is the default Bash behavior in
versions through 4.2.
</p>
</dd>
-<dt><code>direxpand</code></dt>
+<dt><span><code>direxpand</code></span></dt>
<dd><p>If set, Bash
replaces directory names with the results of word expansion when performing
-filename completion. This changes the contents of the readline editing
+filename completion. This changes the contents of the Readline editing
buffer.
If not set, Bash attempts to preserve what the user typed.
</p>
</dd>
-<dt><code>dirspell</code></dt>
+<dt><span><code>dirspell</code></span></dt>
<dd><p>If set, Bash
attempts spelling correction on directory names during word completion
if the directory name initially supplied does not exist.
</p>
</dd>
-<dt><code>dotglob</code></dt>
+<dt><span><code>dotglob</code></span></dt>
<dd><p>If set, Bash includes filenames beginning with a &lsquo;.&rsquo; in
the results of filename expansion.
The filenames &lsquo;<samp>.</samp>&rsquo; and &lsquo;<samp>..</samp>&rsquo; must always be matched explicitly,
even if <code>dotglob</code> is set.
</p>
</dd>
-<dt><code>execfail</code></dt>
+<dt><span><code>execfail</code></span></dt>
<dd><p>If this is set, a non-interactive shell will not exit if
it cannot execute the file specified as an argument to the <code>exec</code>
builtin command. An interactive shell does not exit if <code>exec</code>
fails.
</p>
</dd>
-<dt><code>expand_aliases</code></dt>
+<dt><span><code>expand_aliases</code></span></dt>
<dd><p>If set, aliases are expanded as described below under Aliases,
<a href="#Aliases">Aliases</a>.
This option is enabled by default for interactive shells.
</p>
</dd>
-<dt><code>extdebug</code></dt>
+<dt><span><code>extdebug</code></span></dt>
<dd><p>If set at shell invocation,
or in a shell startup file,
arrange to execute the debugger profile
@@ -6076,7 +6374,7 @@ before the shell starts, identical to the <samp>--debugger</samp> option.
If set after invocation, behavior intended for use by debuggers is enabled:
</p>
<ol>
-<li> The <samp>-F</samp> option to the <code>declare</code> builtin (see <a href="#Bash-Builtins">Bash Builtins</a>)
+<li> The <samp>-F</samp> option to the <code>declare</code> builtin (see <a href="#Bash-Builtins">Bash Builtin Commands</a>)
displays the source file name and line number corresponding to each function
name supplied as an argument.
@@ -6101,23 +6399,23 @@ subshells invoked with <code>( <var>command</var> )</code> inherit the
</li></ol>
</dd>
-<dt><code>extglob</code></dt>
+<dt><span><code>extglob</code></span></dt>
<dd><p>If set, the extended pattern matching features described above
(see <a href="#Pattern-Matching">Pattern Matching</a>) are enabled.
</p>
</dd>
-<dt><code>extquote</code></dt>
+<dt><span><code>extquote</code></span></dt>
<dd><p>If set, <code>$'<var>string</var>'</code> and <code>$&quot;<var>string</var>&quot;</code> quoting is
performed within <code>${<var>parameter</var>}</code> expansions
enclosed in double quotes. This option is enabled by default.
</p>
</dd>
-<dt><code>failglob</code></dt>
+<dt><span><code>failglob</code></span></dt>
<dd><p>If set, patterns which fail to match filenames during filename expansion
result in an expansion error.
</p>
</dd>
-<dt><code>force_fignore</code></dt>
+<dt><span><code>force_fignore</code></span></dt>
<dd><p>If set, the suffixes specified by the <code>FIGNORE</code> shell variable
cause words to be ignored when performing word completion even if
the ignored words are the only possible completions.
@@ -6125,7 +6423,7 @@ See <a href="#Bash-Variables">Bash Variables</a>, for a description of <code>FIG
This option is enabled by default.
</p>
</dd>
-<dt><code>globasciiranges</code></dt>
+<dt><span><code>globasciiranges</code></span></dt>
<dd><p>If set, range expressions used in pattern matching bracket expressions
(see <a href="#Pattern-Matching">Pattern Matching</a>)
behave as if in the traditional C locale when performing
@@ -6135,136 +6433,158 @@ is not taken into account, so
and upper-case and lower-case ASCII characters will collate together.
</p>
</dd>
-<dt><code>globstar</code></dt>
+<dt><span><code>globskipdots</code></span></dt>
+<dd><p>If set, filename expansion will never match the filenames
+&lsquo;<samp>.</samp>&rsquo; and &lsquo;<samp>..</samp>&rsquo;,
+even if the pattern begins with a &lsquo;<samp>.</samp>&rsquo;.
+This option is enabled by default.
+</p>
+</dd>
+<dt><span><code>globstar</code></span></dt>
<dd><p>If set, the pattern &lsquo;<samp>**</samp>&rsquo; used in a filename expansion context will
match all files and zero or more directories and subdirectories.
If the pattern is followed by a &lsquo;<samp>/</samp>&rsquo;, only directories and
subdirectories match.
</p>
</dd>
-<dt><code>gnu_errfmt</code></dt>
+<dt><span><code>gnu_errfmt</code></span></dt>
<dd><p>If set, shell error messages are written in the standard <small>GNU</small> error
message format.
</p>
</dd>
-<dt><code>histappend</code></dt>
+<dt><span><code>histappend</code></span></dt>
<dd><p>If set, the history list is appended to the file named by the value
of the <code>HISTFILE</code>
variable when the shell exits, rather than overwriting the file.
</p>
</dd>
-<dt><code>histreedit</code></dt>
+<dt><span><code>histreedit</code></span></dt>
<dd><p>If set, and Readline
is being used, a user is given the opportunity to re-edit a
failed history substitution.
</p>
</dd>
-<dt><code>histverify</code></dt>
+<dt><span><code>histverify</code></span></dt>
<dd><p>If set, and Readline
is being used, the results of history substitution are not immediately
passed to the shell parser. Instead, the resulting line is loaded into
the Readline editing buffer, allowing further modification.
</p>
</dd>
-<dt><code>hostcomplete</code></dt>
+<dt><span><code>hostcomplete</code></span></dt>
<dd><p>If set, and Readline is being used, Bash will attempt to perform
hostname completion when a word containing a &lsquo;<samp>@</samp>&rsquo; is being
-completed (see <a href="#Commands-For-Completion">Commands For Completion</a>). This option is enabled
+completed (see <a href="#Commands-For-Completion">Letting Readline Type For You</a>). This option is enabled
by default.
</p>
</dd>
-<dt><code>huponexit</code></dt>
+<dt><span><code>huponexit</code></span></dt>
<dd><p>If set, Bash will send <code>SIGHUP</code> to all jobs when an interactive
login shell exits (see <a href="#Signals">Signals</a>).
</p>
</dd>
-<dt><code>inherit_errexit</code></dt>
+<dt><span><code>inherit_errexit</code></span></dt>
<dd><p>If set, command substitution inherits the value of the <code>errexit</code> option,
instead of unsetting it in the subshell environment.
This option is enabled when <small>POSIX</small> mode is enabled.
</p>
</dd>
-<dt><code>interactive_comments</code></dt>
+<dt><span><code>interactive_comments</code></span></dt>
<dd><p>Allow a word beginning with &lsquo;<samp>#</samp>&rsquo;
to cause that word and all remaining characters on that
line to be ignored in an interactive shell.
This option is enabled by default.
</p>
</dd>
-<dt><code>lastpipe</code></dt>
+<dt><span><code>lastpipe</code></span></dt>
<dd><p>If set, and job control is not active, the shell runs the last command of
a pipeline not executed in the background in the current shell environment.
</p>
</dd>
-<dt><code>lithist</code></dt>
+<dt><span><code>lithist</code></span></dt>
<dd><p>If enabled, and the <code>cmdhist</code>
option is enabled, multi-line commands are saved to the history with
embedded newlines rather than using semicolon separators where possible.
</p>
</dd>
-<dt><code>localvar_inherit</code></dt>
+<dt><span><code>localvar_inherit</code></span></dt>
<dd><p>If set, local variables inherit the value and attributes of a variable of
the same name that exists at a previous scope before any new value is
-assigned. The <var>nameref</var> attribute is not inherited.
+assigned. The <code>nameref</code> attribute is not inherited.
</p>
</dd>
-<dt><code>localvar_unset</code></dt>
+<dt><span><code>localvar_unset</code></span></dt>
<dd><p>If set, calling <code>unset</code> on local variables in previous function scopes
marks them so subsequent lookups find them unset until that function
returns. This is identical to the behavior of unsetting local variables
at the current function scope.
</p>
</dd>
-<dt><code>login_shell</code></dt>
+<dt><span><code>login_shell</code></span></dt>
<dd><p>The shell sets this option if it is started as a login shell
(see <a href="#Invoking-Bash">Invoking Bash</a>).
The value may not be changed.
</p>
</dd>
-<dt><code>mailwarn</code></dt>
+<dt><span><code>mailwarn</code></span></dt>
<dd><p>If set, and a file that Bash is checking for mail has been
accessed since the last time it was checked, the message
<code>&quot;The mail in <var>mailfile</var> has been read&quot;</code> is displayed.
</p>
</dd>
-<dt><code>no_empty_cmd_completion</code></dt>
+<dt><span><code>no_empty_cmd_completion</code></span></dt>
<dd><p>If set, and Readline is being used, Bash will not attempt to search
the <code>PATH</code> for possible completions when completion is attempted
on an empty line.
</p>
</dd>
-<dt><code>nocaseglob</code></dt>
+<dt><span><code>nocaseglob</code></span></dt>
<dd><p>If set, Bash matches filenames in a case-insensitive fashion when
performing filename expansion.
</p>
</dd>
-<dt><code>nocasematch</code></dt>
+<dt><span><code>nocasematch</code></span></dt>
<dd><p>If set, Bash matches patterns in a case-insensitive fashion when
performing matching while executing <code>case</code> or <code>[[</code>
-conditional commands,
+conditional commands (see <a href="#Conditional-Constructs">Conditional Constructs</a>,
when performing pattern substitution word expansions,
or when filtering possible completions as part of programmable completion.
</p>
</dd>
-<dt><code>nullglob</code></dt>
+<dt><span><code>noexpand_translation</code></span></dt>
+<dd><p>If set, Bash
+encloses the translated results of $&quot;...&quot; quoting in single quotes
+instead of double quotes.
+If the string is not translated, this has no effect.
+</p>
+</dd>
+<dt><span><code>nullglob</code></span></dt>
<dd><p>If set, Bash allows filename patterns which match no
files to expand to a null string, rather than themselves.
</p>
</dd>
-<dt><code>progcomp</code></dt>
+<dt><span><code>patsub_replacement</code></span></dt>
+<dd><p>If set, Bash
+expands occurrences of &lsquo;<samp>&amp;</samp>&rsquo; in the replacement string of pattern
+substitution to the text matched by the pattern, as described
+above (see <a href="#Shell-Parameter-Expansion">Shell Parameter Expansion</a>).
+This option is enabled by default.
+</p>
+</dd>
+<dt><span><code>progcomp</code></span></dt>
<dd><p>If set, the programmable completion facilities
(see <a href="#Programmable-Completion">Programmable Completion</a>) are enabled.
This option is enabled by default.
</p>
</dd>
-<dt><code>progcomp_alias</code></dt>
+<dt><span><code>progcomp_alias</code></span></dt>
<dd><p>If set, and programmable completion is enabled, Bash treats a command
name that doesn&rsquo;t have any completions as a possible alias and attempts
alias expansion. If it has an alias, Bash attempts programmable
completion using the command word resulting from the expanded alias.
</p>
</dd>
-<dt><code>promptvars</code></dt>
+<dt><span><code>promptvars</code></span></dt>
<dd><p>If set, prompt strings undergo
parameter expansion, command substitution, arithmetic
expansion, and quote removal after being expanded
@@ -6272,7 +6592,7 @@ as described below (see <a href="#Controlling-the-Prompt">Controlling the Prompt
This option is enabled by default.
</p>
</dd>
-<dt><code>restricted_shell</code></dt>
+<dt><span><code>restricted_shell</code></span></dt>
<dd><p>The shell sets this option if it is started in restricted mode
(see <a href="#The-Restricted-Shell">The Restricted Shell</a>).
The value may not be changed.
@@ -6280,19 +6600,25 @@ This is not reset when the startup files are executed, allowing
the startup files to discover whether or not a shell is restricted.
</p>
</dd>
-<dt><code>shift_verbose</code></dt>
+<dt><span><code>shift_verbose</code></span></dt>
<dd><p>If this is set, the <code>shift</code>
builtin prints an error message when the shift count exceeds the
number of positional parameters.
</p>
</dd>
-<dt><code>sourcepath</code></dt>
-<dd><p>If set, the <code>source</code> builtin uses the value of <code>PATH</code>
+<dt><span><code>sourcepath</code></span></dt>
+<dd><p>If set, the <code>.</code> (<code>source</code>) builtin uses the value of <code>PATH</code>
to find the directory containing the file supplied as an argument.
This option is enabled by default.
</p>
</dd>
-<dt><code>xpg_echo</code></dt>
+<dt><span><code>varredir_close</code></span></dt>
+<dd><p>If set, the shell automatically closes file descriptors assigned using the
+<code>{varname}</code> redirection syntax (see <a href="#Redirections">Redirections</a>) instead of
+leaving them open when the command completes.
+</p>
+</dd>
+<dt><span><code>xpg_echo</code></span></dt>
<dd><p>If set, the <code>echo</code> builtin expands backslash-escape sequences
by default.
</p>
@@ -6302,7 +6628,10 @@ by default.
</dl>
<hr>
-<span id="Special-Builtins"></span><div class="header">
+</div>
+</div>
+<div class="section" id="Special-Builtins">
+<div class="header">
<p>
Previous: <a href="#Modifying-Shell-Behavior" accesskey="p" rel="prev">Modifying Shell Behavior</a>, Up: <a href="#Shell-Builtin-Commands" accesskey="u" rel="up">Shell Builtin Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -6334,25 +6663,26 @@ shift trap unset<!-- /@w -->
</pre></div>
<hr>
-<span id="Shell-Variables"></span><div class="header">
+</div>
+</div>
+<div class="chapter" id="Shell-Variables">
+<div class="header">
<p>
-Next: <a href="#Bash-Features" accesskey="n" rel="next">Bash Features</a>, Previous: <a href="#Shell-Builtin-Commands" accesskey="p" rel="prev">Shell Builtin Commands</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Bash-Features" accesskey="n" rel="next">Bash Features</a>, Previous: <a href="#Shell-Builtin-Commands" accesskey="p" rel="prev">Shell Builtin Commands</a>, Up: <a href="#Top" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Shell-Variables-1"></span><h2 class="chapter">5 Shell Variables</h2>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Bourne-Shell-Variables" accesskey="1">Bourne Shell Variables</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Variables which Bash uses in the same way
- as the Bourne Shell.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Bash-Variables" accesskey="2">Bash Variables</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">List of variables that exist in Bash.
-</td></tr>
-</table>
<p>This chapter describes the shell variables that Bash uses.
Bash automatically assigns default values to a number of variables.
</p>
+<ul class="section-toc">
+<li><a href="#Bourne-Shell-Variables" accesskey="1">Bourne Shell Variables</a></li>
+<li><a href="#Bash-Variables" accesskey="2">Bash Variables</a></li>
+</ul>
<hr>
-<span id="Bourne-Shell-Variables"></span><div class="header">
+<div class="section" id="Bourne-Shell-Variables">
+<div class="header">
<p>
Next: <a href="#Bash-Variables" accesskey="n" rel="next">Bash Variables</a>, Up: <a href="#Shell-Variables" accesskey="u" rel="up">Shell Variables</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -6362,41 +6692,31 @@ Next: <a href="#Bash-Variables" accesskey="n" rel="next">Bash Variables</a>, Up:
In some cases, Bash assigns a default value to the variable.
</p>
<dl compact="compact">
-<dt><code>CDPATH</code>
-<span id="index-CDPATH"></span>
-</dt>
+<dt id='index-CDPATH'><span><code>CDPATH</code><a href='#index-CDPATH' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A colon-separated list of directories used as a search path for
the <code>cd</code> builtin command.
</p>
</dd>
-<dt><code>HOME</code>
-<span id="index-HOME"></span>
-</dt>
+<dt id='index-HOME'><span><code>HOME</code><a href='#index-HOME' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The current user&rsquo;s home directory; the default for the <code>cd</code> builtin
command.
The value of this variable is also used by tilde expansion
(see <a href="#Tilde-Expansion">Tilde Expansion</a>).
</p>
</dd>
-<dt><code>IFS</code>
-<span id="index-IFS"></span>
-</dt>
+<dt id='index-IFS'><span><code>IFS</code><a href='#index-IFS' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A list of characters that separate fields; used when the shell splits
words as part of expansion.
</p>
</dd>
-<dt><code>MAIL</code>
-<span id="index-MAIL"></span>
-</dt>
+<dt id='index-MAIL'><span><code>MAIL</code><a href='#index-MAIL' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If this parameter is set to a filename or directory name
and the <code>MAILPATH</code> variable
is not set, Bash informs the user of the arrival of mail in
the specified file or Maildir-format directory.
</p>
</dd>
-<dt><code>MAILPATH</code>
-<span id="index-MAILPATH"></span>
-</dt>
+<dt id='index-MAILPATH'><span><code>MAILPATH</code><a href='#index-MAILPATH' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A colon-separated list of filenames which the shell periodically checks
for new mail.
Each list entry can specify the message that is printed when new mail
@@ -6406,21 +6726,15 @@ When used in the text of the message, <code>$_</code> expands to the name of
the current mail file.
</p>
</dd>
-<dt><code>OPTARG</code>
-<span id="index-OPTARG"></span>
-</dt>
+<dt id='index-OPTARG'><span><code>OPTARG</code><a href='#index-OPTARG' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The value of the last option argument processed by the <code>getopts</code> builtin.
</p>
</dd>
-<dt><code>OPTIND</code>
-<span id="index-OPTIND"></span>
-</dt>
+<dt id='index-OPTIND'><span><code>OPTIND</code><a href='#index-OPTIND' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The index of the last option argument processed by the <code>getopts</code> builtin.
</p>
</dd>
-<dt><code>PATH</code>
-<span id="index-PATH"></span>
-</dt>
+<dt id='index-PATH'><span><code>PATH</code><a href='#index-PATH' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A colon-separated list of directories in which the shell looks for
commands.
A zero-length (null) directory name in the value of <code>PATH</code> indicates the
@@ -6429,17 +6743,13 @@ A null directory name may appear as two adjacent colons, or as an initial
or trailing colon.
</p>
</dd>
-<dt><code>PS1</code>
-<span id="index-PS1"></span>
-</dt>
+<dt id='index-PS1'><span><code>PS1</code><a href='#index-PS1' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The primary prompt string. The default value is &lsquo;<samp>\s-\v\$ </samp>&rsquo;.
See <a href="#Controlling-the-Prompt">Controlling the Prompt</a>, for the complete list of escape
sequences that are expanded before <code>PS1</code> is displayed.
</p>
</dd>
-<dt><code>PS2</code>
-<span id="index-PS2"></span>
-</dt>
+<dt id='index-PS2'><span><code>PS2</code><a href='#index-PS2' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The secondary prompt string. The default value is &lsquo;<samp>&gt; </samp>&rsquo;.
<code>PS2</code> is expanded in the same way as <code>PS1</code> before being
displayed.
@@ -6448,7 +6758,9 @@ displayed.
</dl>
<hr>
-<span id="Bash-Variables"></span><div class="header">
+</div>
+<div class="section" id="Bash-Variables">
+<div class="header">
<p>
Previous: <a href="#Bourne-Shell-Variables" accesskey="p" rel="prev">Bourne Shell Variables</a>, Up: <a href="#Shell-Variables" accesskey="u" rel="up">Shell Variables</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -6462,9 +6774,7 @@ variables for controlling the job control facilities
(see <a href="#Job-Control-Variables">Job Control Variables</a>).
</p>
<dl compact="compact">
-<dt><code>_</code>
-<span id="index-_005f"></span>
-</dt>
+<dt id='index-_005f'><span><code>_</code><a href='#index-_005f' class='copiable-anchor'> &para;</a></span></dt>
<dd><span id="index-_0024_005f"></span>
<p>($_, an underscore.)
At shell startup, set to the pathname used to invoke the
@@ -6477,15 +6787,11 @@ and placed in the environment exported to that command.
When checking mail, this parameter holds the name of the mail file.
</p>
</dd>
-<dt><code>BASH</code>
-<span id="index-BASH"></span>
-</dt>
+<dt id='index-BASH'><span><code>BASH</code><a href='#index-BASH' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The full pathname used to execute the current instance of Bash.
</p>
</dd>
-<dt><code>BASHOPTS</code>
-<span id="index-BASHOPTS"></span>
-</dt>
+<dt id='index-BASHOPTS'><span><code>BASHOPTS</code><a href='#index-BASHOPTS' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A colon-separated list of enabled shell options. Each word in
the list is a valid argument for the <samp>-s</samp> option to the
<code>shopt</code> builtin command (see <a href="#The-Shopt-Builtin">The Shopt Builtin</a>).
@@ -6496,9 +6802,7 @@ starts up, each shell option in the list will be enabled before
reading any startup files. This variable is readonly.
</p>
</dd>
-<dt><code>BASHPID</code>
-<span id="index-BASHPID"></span>
-</dt>
+<dt id='index-BASHPID'><span><code>BASHPID</code><a href='#index-BASHPID' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Expands to the process ID of the current Bash process.
This differs from <code>$$</code> under certain circumstances, such as subshells
that do not require Bash to be re-initialized.
@@ -6508,9 +6812,7 @@ is unset, it loses its special properties, even if it is
subsequently reset.
</p>
</dd>
-<dt><code>BASH_ALIASES</code>
-<span id="index-BASH_005fALIASES"></span>
-</dt>
+<dt id='index-BASH_005fALIASES'><span><code>BASH_ALIASES</code><a href='#index-BASH_005fALIASES' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An associative array variable whose members correspond to the internal
list of aliases as maintained by the <code>alias</code> builtin.
(see <a href="#Bourne-Shell-Builtins">Bourne Shell Builtins</a>).
@@ -6522,9 +6824,7 @@ is unset, it loses its special properties, even if it is
subsequently reset.
</p>
</dd>
-<dt><code>BASH_ARGC</code>
-<span id="index-BASH_005fARGC"></span>
-</dt>
+<dt id='index-BASH_005fARGC'><span><code>BASH_ARGC</code><a href='#index-BASH_005fARGC' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable whose values are the number of parameters in each
frame of the current bash execution call stack. The number of
parameters to the current subroutine (shell function or script executed
@@ -6540,9 +6840,7 @@ or referencing this variable when <code>extdebug</code> is not set,
may result in inconsistent values.
</p>
</dd>
-<dt><code>BASH_ARGV</code>
-<span id="index-BASH_005fARGV"></span>
-</dt>
+<dt id='index-BASH_005fARGV'><span><code>BASH_ARGV</code><a href='#index-BASH_005fARGV' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable containing all of the parameters in the current bash
execution call stack. The final parameter of the last subroutine call
is at the top of the stack; the first parameter of the initial call is
@@ -6557,9 +6855,7 @@ or referencing this variable when <code>extdebug</code> is not set,
may result in inconsistent values.
</p>
</dd>
-<dt><code>BASH_ARGV0</code>
-<span id="index-BASH_005fARGV0"></span>
-</dt>
+<dt id='index-BASH_005fARGV0'><span><code>BASH_ARGV0</code><a href='#index-BASH_005fARGV0' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>When referenced, this variable expands to the name of the shell or shell
script (identical to <code>$0</code>; See <a href="#Special-Parameters">Special Parameters</a>,
for the description of special parameter 0).
@@ -6570,9 +6866,7 @@ is unset, it loses its special properties, even if it is
subsequently reset.
</p>
</dd>
-<dt><code>BASH_CMDS</code>
-<span id="index-BASH_005fCMDS"></span>
-</dt>
+<dt id='index-BASH_005fCMDS'><span><code>BASH_CMDS</code><a href='#index-BASH_005fCMDS' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An associative array variable whose members correspond to the internal
hash table of commands as maintained by the <code>hash</code> builtin
(see <a href="#Bourne-Shell-Builtins">Bourne Shell Builtins</a>).
@@ -6584,9 +6878,7 @@ is unset, it loses its special properties, even if it is
subsequently reset.
</p>
</dd>
-<dt><code>BASH_COMMAND</code>
-<span id="index-BASH_005fCOMMAND"></span>
-</dt>
+<dt id='index-BASH_005fCOMMAND'><span><code>BASH_COMMAND</code><a href='#index-BASH_005fCOMMAND' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The command currently being executed or about to be executed, unless the
shell is executing a command as the result of a trap,
in which case it is the command executing at the time of the trap.
@@ -6595,9 +6887,7 @@ is unset, it loses its special properties, even if it is
subsequently reset.
</p>
</dd>
-<dt><code>BASH_COMPAT</code>
-<span id="index-BASH_005fCOMPAT"></span>
-</dt>
+<dt id='index-BASH_005fCOMPAT'><span><code>BASH_COMPAT</code><a href='#index-BASH_005fCOMPAT' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The value is used to set the shell&rsquo;s compatibility level.
See <a href="#Shell-Compatibility-Mode">Shell Compatibility Mode</a>, for a description of the various
compatibility levels and their effects.
@@ -6616,25 +6906,19 @@ and set the compatibility level to 42.
The current version is also a valid value.
</p>
</dd>
-<dt><code>BASH_ENV</code>
-<span id="index-BASH_005fENV"></span>
-</dt>
+<dt id='index-BASH_005fENV'><span><code>BASH_ENV</code><a href='#index-BASH_005fENV' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If this variable is set when Bash is invoked to execute a shell
script, its value is expanded and used as the name of a startup file
to read before executing the script. See <a href="#Bash-Startup-Files">Bash Startup Files</a>.
</p>
</dd>
-<dt><code>BASH_EXECUTION_STRING</code>
-<span id="index-BASH_005fEXECUTION_005fSTRING"></span>
-</dt>
+<dt id='index-BASH_005fEXECUTION_005fSTRING'><span><code>BASH_EXECUTION_STRING</code><a href='#index-BASH_005fEXECUTION_005fSTRING' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The command argument to the <samp>-c</samp> invocation option.
</p>
</dd>
-<dt><code>BASH_LINENO</code>
-<span id="index-BASH_005fLINENO"></span>
-</dt>
+<dt id='index-BASH_005fLINENO'><span><code>BASH_LINENO</code><a href='#index-BASH_005fLINENO' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable whose members are the line numbers in source files
-where each corresponding member of <var>FUNCNAME</var> was invoked.
+where each corresponding member of <code>FUNCNAME</code> was invoked.
<code>${BASH_LINENO[$i]}</code> is the line number in the source file
(<code>${BASH_SOURCE[$i+1]}</code>) where
<code>${FUNCNAME[$i]}</code> was called (or <code>${BASH_LINENO[$i-1]}</code> if
@@ -6642,17 +6926,13 @@ referenced within another shell function).
Use <code>LINENO</code> to obtain the current line number.
</p>
</dd>
-<dt><code>BASH_LOADABLES_PATH</code>
-<span id="index-BASH_005fLOADABLES_005fPATH"></span>
-</dt>
+<dt id='index-BASH_005fLOADABLES_005fPATH'><span><code>BASH_LOADABLES_PATH</code><a href='#index-BASH_005fLOADABLES_005fPATH' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A colon-separated list of directories in which the shell looks for
dynamically loadable builtins specified by the
<code>enable</code> command.
</p>
</dd>
-<dt><code>BASH_REMATCH</code>
-<span id="index-BASH_005fREMATCH"></span>
-</dt>
+<dt id='index-BASH_005fREMATCH'><span><code>BASH_REMATCH</code><a href='#index-BASH_005fREMATCH' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable whose members are assigned by the &lsquo;<samp>=~</samp>&rsquo; binary
operator to the <code>[[</code> conditional command
(see <a href="#Conditional-Constructs">Conditional Constructs</a>).
@@ -6662,9 +6942,7 @@ The element with index <var>n</var> is the portion of the
string matching the <var>n</var>th parenthesized subexpression.
</p>
</dd>
-<dt><code>BASH_SOURCE</code>
-<span id="index-BASH_005fSOURCE"></span>
-</dt>
+<dt id='index-BASH_005fSOURCE'><span><code>BASH_SOURCE</code><a href='#index-BASH_005fSOURCE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable whose members are the source filenames where the
corresponding shell function names in the <code>FUNCNAME</code> array
variable are defined.
@@ -6672,9 +6950,7 @@ The shell function <code>${FUNCNAME[$i]}</code> is defined in the file
<code>${BASH_SOURCE[$i]}</code> and called from <code>${BASH_SOURCE[$i+1]}</code>
</p>
</dd>
-<dt><code>BASH_SUBSHELL</code>
-<span id="index-BASH_005fSUBSHELL"></span>
-</dt>
+<dt id='index-BASH_005fSUBSHELL'><span><code>BASH_SUBSHELL</code><a href='#index-BASH_005fSUBSHELL' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Incremented by one within each subshell or subshell environment when
the shell begins executing in that environment.
The initial value is 0.
@@ -6683,49 +6959,43 @@ is unset, it loses its special properties, even if it is
subsequently reset.
</p>
</dd>
-<dt><code>BASH_VERSINFO</code>
-<span id="index-BASH_005fVERSINFO"></span>
-</dt>
+<dt id='index-BASH_005fVERSINFO'><span><code>BASH_VERSINFO</code><a href='#index-BASH_005fVERSINFO' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A readonly array variable (see <a href="#Arrays">Arrays</a>)
whose members hold version information for this instance of Bash.
The values assigned to the array members are as follows:
</p>
<dl compact="compact">
-<dt><code>BASH_VERSINFO[0]</code></dt>
-<dd><p>The major version number (the <var>release</var>).
+<dt><span><code>BASH_VERSINFO[0]</code></span></dt>
+<dd><p>The major version number (the <em>release</em>).
</p>
</dd>
-<dt><code>BASH_VERSINFO[1]</code></dt>
-<dd><p>The minor version number (the <var>version</var>).
+<dt><span><code>BASH_VERSINFO[1]</code></span></dt>
+<dd><p>The minor version number (the <em>version</em>).
</p>
</dd>
-<dt><code>BASH_VERSINFO[2]</code></dt>
+<dt><span><code>BASH_VERSINFO[2]</code></span></dt>
<dd><p>The patch level.
</p>
</dd>
-<dt><code>BASH_VERSINFO[3]</code></dt>
+<dt><span><code>BASH_VERSINFO[3]</code></span></dt>
<dd><p>The build version.
</p>
</dd>
-<dt><code>BASH_VERSINFO[4]</code></dt>
-<dd><p>The release status (e.g., <var>beta1</var>).
+<dt><span><code>BASH_VERSINFO[4]</code></span></dt>
+<dd><p>The release status (e.g., <code>beta1</code>).
</p>
</dd>
-<dt><code>BASH_VERSINFO[5]</code></dt>
+<dt><span><code>BASH_VERSINFO[5]</code></span></dt>
<dd><p>The value of <code>MACHTYPE</code>.
</p></dd>
</dl>
</dd>
-<dt><code>BASH_VERSION</code>
-<span id="index-BASH_005fVERSION"></span>
-</dt>
+<dt id='index-BASH_005fVERSION'><span><code>BASH_VERSION</code><a href='#index-BASH_005fVERSION' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The version number of the current instance of Bash.
</p>
</dd>
-<dt><code>BASH_XTRACEFD</code>
-<span id="index-BASH_005fXTRACEFD"></span>
-</dt>
+<dt id='index-BASH_005fXTRACEFD'><span><code>BASH_XTRACEFD</code><a href='#index-BASH_005fXTRACEFD' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If set to an integer corresponding to a valid file descriptor, Bash
will write the trace output generated when &lsquo;<samp>set -x</samp>&rsquo;
is enabled to that file descriptor.
@@ -6740,9 +7010,7 @@ descriptor) and then unsetting it will result in the standard error
being closed.
</p>
</dd>
-<dt><code>CHILD_MAX</code>
-<span id="index-CHILD_005fMAX"></span>
-</dt>
+<dt id='index-CHILD_005fMAX'><span><code>CHILD_MAX</code><a href='#index-CHILD_005fMAX' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Set the number of exited child status values for the shell to remember.
Bash will not allow this value to be decreased below a <small>POSIX</small>-mandated
minimum, and there is a maximum value (currently 8192) that this may
@@ -6750,9 +7018,7 @@ not exceed.
The minimum value is system-dependent.
</p>
</dd>
-<dt><code>COLUMNS</code>
-<span id="index-COLUMNS"></span>
-</dt>
+<dt id='index-COLUMNS'><span><code>COLUMNS</code><a href='#index-COLUMNS' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Used by the <code>select</code> command to determine the terminal width
when printing selection lists.
Automatically set if the <code>checkwinsize</code> option is enabled
@@ -6760,27 +7026,21 @@ Automatically set if the <code>checkwinsize</code> option is enabled
<code>SIGWINCH</code>.
</p>
</dd>
-<dt><code>COMP_CWORD</code>
-<span id="index-COMP_005fCWORD"></span>
-</dt>
+<dt id='index-COMP_005fCWORD'><span><code>COMP_CWORD</code><a href='#index-COMP_005fCWORD' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An index into <code>${COMP_WORDS}</code> of the word containing the current
cursor position.
This variable is available only in shell functions invoked by the
programmable completion facilities (see <a href="#Programmable-Completion">Programmable Completion</a>).
</p>
</dd>
-<dt><code>COMP_LINE</code>
-<span id="index-COMP_005fLINE"></span>
-</dt>
+<dt id='index-COMP_005fLINE'><span><code>COMP_LINE</code><a href='#index-COMP_005fLINE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The current command line.
This variable is available only in shell functions and external
commands invoked by the
programmable completion facilities (see <a href="#Programmable-Completion">Programmable Completion</a>).
</p>
</dd>
-<dt><code>COMP_POINT</code>
-<span id="index-COMP_005fPOINT"></span>
-</dt>
+<dt id='index-COMP_005fPOINT'><span><code>COMP_POINT</code><a href='#index-COMP_005fPOINT' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The index of the current cursor position relative to the beginning of
the current command.
If the current cursor position is at the end of the current command,
@@ -6790,12 +7050,10 @@ commands invoked by the
programmable completion facilities (see <a href="#Programmable-Completion">Programmable Completion</a>).
</p>
</dd>
-<dt><code>COMP_TYPE</code>
-<span id="index-COMP_005fTYPE"></span>
-</dt>
+<dt id='index-COMP_005fTYPE'><span><code>COMP_TYPE</code><a href='#index-COMP_005fTYPE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Set to an integer value corresponding to the type of completion attempted
that caused a completion function to be called:
-<var>TAB</var>, for normal completion,
+<tt class="key">TAB</tt>, for normal completion,
&lsquo;<samp>?</samp>&rsquo;, for listing completions after successive tabs,
&lsquo;<samp>!</samp>&rsquo;, for listing alternatives on partial word completion,
&lsquo;<samp>@</samp>&rsquo;, to list completions if the word is not unmodified,
@@ -6806,16 +7064,12 @@ commands invoked by the
programmable completion facilities (see <a href="#Programmable-Completion">Programmable Completion</a>).
</p>
</dd>
-<dt><code>COMP_KEY</code>
-<span id="index-COMP_005fKEY"></span>
-</dt>
+<dt id='index-COMP_005fKEY'><span><code>COMP_KEY</code><a href='#index-COMP_005fKEY' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The key (or final key of a key sequence) used to invoke the current
completion function.
</p>
</dd>
-<dt><code>COMP_WORDBREAKS</code>
-<span id="index-COMP_005fWORDBREAKS"></span>
-</dt>
+<dt id='index-COMP_005fWORDBREAKS'><span><code>COMP_WORDBREAKS</code><a href='#index-COMP_005fWORDBREAKS' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The set of characters that the Readline library treats as word
separators when performing word completion.
If <code>COMP_WORDBREAKS</code>
@@ -6823,9 +7077,7 @@ is unset, it loses its special properties,
even if it is subsequently reset.
</p>
</dd>
-<dt><code>COMP_WORDS</code>
-<span id="index-COMP_005fWORDS"></span>
-</dt>
+<dt id='index-COMP_005fWORDS'><span><code>COMP_WORDS</code><a href='#index-COMP_005fWORDS' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable consisting of the individual
words in the current command line.
The line is split into words as Readline would split it, using
@@ -6834,25 +7086,19 @@ This variable is available only in shell functions invoked by the
programmable completion facilities (see <a href="#Programmable-Completion">Programmable Completion</a>).
</p>
</dd>
-<dt><code>COMPREPLY</code>
-<span id="index-COMPREPLY"></span>
-</dt>
+<dt id='index-COMPREPLY'><span><code>COMPREPLY</code><a href='#index-COMPREPLY' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable from which Bash reads the possible completions
generated by a shell function invoked by the programmable completion
facility (see <a href="#Programmable-Completion">Programmable Completion</a>).
Each array element contains one possible completion.
</p>
</dd>
-<dt><code>COPROC</code>
-<span id="index-COPROC"></span>
-</dt>
+<dt id='index-COPROC'><span><code>COPROC</code><a href='#index-COPROC' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable created to hold the file descriptors
for output from and input to an unnamed coprocess (see <a href="#Coprocesses">Coprocesses</a>).
</p>
</dd>
-<dt><code>DIRSTACK</code>
-<span id="index-DIRSTACK"></span>
-</dt>
+<dt id='index-DIRSTACK'><span><code>DIRSTACK</code><a href='#index-DIRSTACK' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable containing the current contents of the directory stack.
Directories appear in the stack in the order they are displayed by the
<code>dirs</code> builtin.
@@ -6865,29 +7111,23 @@ is unset, it loses its special properties, even if
it is subsequently reset.
</p>
</dd>
-<dt><code>EMACS</code>
-<span id="index-EMACS"></span>
-</dt>
+<dt id='index-EMACS'><span><code>EMACS</code><a href='#index-EMACS' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If Bash finds this variable in the environment when the shell
starts with value &lsquo;<samp>t</samp>&rsquo;, it assumes that the shell is running in an
Emacs shell buffer and disables line editing.
</p>
</dd>
-<dt><code>ENV</code>
-<span id="index-ENV"></span>
-</dt>
-<dd><p>Expanded and executed similarlty to <code>BASH_ENV</code>
+<dt id='index-ENV'><span><code>ENV</code><a href='#index-ENV' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>Expanded and executed similarly to <code>BASH_ENV</code>
(see <a href="#Bash-Startup-Files">Bash Startup Files</a>)
when an interactive shell is invoked in
<small>POSIX</small> Mode (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>).
</p>
</dd>
-<dt><code>EPOCHREALTIME</code>
-<span id="index-EPOCHREALTIME"></span>
-</dt>
+<dt id='index-EPOCHREALTIME'><span><code>EPOCHREALTIME</code><a href='#index-EPOCHREALTIME' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Each time this parameter is referenced, it expands to the number of seconds
since the Unix Epoch as a floating point value with micro-second granularity
-(see the documentation for the C library function <var>time</var> for the
+(see the documentation for the C library function <code>time</code> for the
definition of Epoch).
Assignments to <code>EPOCHREALTIME</code> are ignored.
If <code>EPOCHREALTIME</code>
@@ -6895,28 +7135,22 @@ is unset, it loses its special properties, even if
it is subsequently reset.
</p>
</dd>
-<dt><code>EPOCHSECONDS</code>
-<span id="index-EPOCHSECONDS"></span>
-</dt>
+<dt id='index-EPOCHSECONDS'><span><code>EPOCHSECONDS</code><a href='#index-EPOCHSECONDS' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Each time this parameter is referenced, it expands to the number of seconds
since the Unix Epoch (see the documentation for the C library function
-<var>time</var> for the definition of Epoch).
+<code>time</code> for the definition of Epoch).
Assignments to <code>EPOCHSECONDS</code> are ignored.
If <code>EPOCHSECONDS</code>
is unset, it loses its special properties, even if
it is subsequently reset.
</p>
</dd>
-<dt><code>EUID</code>
-<span id="index-EUID"></span>
-</dt>
+<dt id='index-EUID'><span><code>EUID</code><a href='#index-EUID' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The numeric effective user id of the current user. This variable
is readonly.
</p>
</dd>
-<dt><code>EXECIGNORE</code>
-<span id="index-EXECIGNORE"></span>
-</dt>
+<dt id='index-EXECIGNORE'><span><code>EXECIGNORE</code><a href='#index-EXECIGNORE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A colon-separated list of shell patterns (see <a href="#Pattern-Matching">Pattern Matching</a>)
defining the list of filenames to be ignored by command search using
<code>PATH</code>.
@@ -6932,16 +7166,12 @@ The pattern matching honors the setting of the <code>extglob</code> shell
option.
</p>
</dd>
-<dt><code>FCEDIT</code>
-<span id="index-FCEDIT"></span>
-</dt>
+<dt id='index-FCEDIT'><span><code>FCEDIT</code><a href='#index-FCEDIT' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The editor used as a default by the <samp>-e</samp> option to the <code>fc</code>
builtin command.
</p>
</dd>
-<dt><code>FIGNORE</code>
-<span id="index-FIGNORE"></span>
-</dt>
+<dt id='index-FIGNORE'><span><code>FIGNORE</code><a href='#index-FIGNORE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A colon-separated list of suffixes to ignore when performing
filename completion.
A filename whose suffix matches one of the entries in
@@ -6950,9 +7180,7 @@ is excluded from the list of matched filenames. A sample
value is &lsquo;<samp>.o:~</samp>&rsquo;
</p>
</dd>
-<dt><code>FUNCNAME</code>
-<span id="index-FUNCNAME"></span>
-</dt>
+<dt id='index-FUNCNAME'><span><code>FUNCNAME</code><a href='#index-FUNCNAME' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable containing the names of all shell functions
currently in the execution call stack.
The element with index 0 is the name of any currently-executing
@@ -6974,17 +7202,13 @@ The <code>caller</code> builtin displays the current call stack using this
information.
</p>
</dd>
-<dt><code>FUNCNEST</code>
-<span id="index-FUNCNEST"></span>
-</dt>
+<dt id='index-FUNCNEST'><span><code>FUNCNEST</code><a href='#index-FUNCNEST' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If set to a numeric value greater than 0, defines a maximum function
nesting level. Function invocations that exceed this nesting level
will cause the current command to abort.
</p>
</dd>
-<dt><code>GLOBIGNORE</code>
-<span id="index-GLOBIGNORE"></span>
-</dt>
+<dt id='index-GLOBIGNORE'><span><code>GLOBIGNORE</code><a href='#index-GLOBIGNORE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A colon-separated list of patterns defining the set of file names to
be ignored by filename expansion.
If a file name matched by a filename expansion pattern also matches one
@@ -6994,9 +7218,7 @@ The pattern matching honors the setting of the <code>extglob</code> shell
option.
</p>
</dd>
-<dt><code>GROUPS</code>
-<span id="index-GROUPS"></span>
-</dt>
+<dt id='index-GROUPS'><span><code>GROUPS</code><a href='#index-GROUPS' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable containing the list of groups of which the current
user is a member.
Assignments to <code>GROUPS</code> have no effect.
@@ -7005,13 +7227,11 @@ is unset, it loses its special properties, even if it is
subsequently reset.
</p>
</dd>
-<dt><code>histchars</code>
-<span id="index-histchars"></span>
-</dt>
+<dt id='index-histchars'><span><code>histchars</code><a href='#index-histchars' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Up to three characters which control history expansion, quick
-substitution, and tokenization (see <a href="#History-Interaction">History Interaction</a>).
+substitution, and tokenization (see <a href="#History-Interaction">History Expansion</a>).
The first character is the
-<var>history expansion</var> character, that is, the character which signifies the
+<em>history expansion</em> character, that is, the character which signifies the
start of a history expansion, normally &lsquo;<samp>!</samp>&rsquo;. The second character is the
character which signifies &lsquo;quick substitution&rsquo; when seen as the first
character on a line, normally &lsquo;<samp>^</samp>&rsquo;. The optional third character is the
@@ -7022,9 +7242,7 @@ remaining words on the line. It does not necessarily cause the shell
parser to treat the rest of the line as a comment.
</p>
</dd>
-<dt><code>HISTCMD</code>
-<span id="index-HISTCMD"></span>
-</dt>
+<dt id='index-HISTCMD'><span><code>HISTCMD</code><a href='#index-HISTCMD' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The history number, or index in the history list, of the current
command.
Assignments to <code>HISTCMD</code> are ignored.
@@ -7033,9 +7251,7 @@ is unset, it loses its special properties,
even if it is subsequently reset.
</p>
</dd>
-<dt><code>HISTCONTROL</code>
-<span id="index-HISTCONTROL"></span>
-</dt>
+<dt id='index-HISTCONTROL'><span><code>HISTCONTROL</code><a href='#index-HISTCONTROL' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A colon-separated list of values controlling how commands are saved on
the history list.
If the list of values includes &lsquo;<samp>ignorespace</samp>&rsquo;, lines which begin
@@ -7056,16 +7272,12 @@ not tested, and are added to the history regardless of the value of
<code>HISTCONTROL</code>.
</p>
</dd>
-<dt><code>HISTFILE</code>
-<span id="index-HISTFILE"></span>
-</dt>
+<dt id='index-HISTFILE'><span><code>HISTFILE</code><a href='#index-HISTFILE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The name of the file to which the command history is saved. The
default value is <samp>~/.bash_history</samp>.
</p>
</dd>
-<dt><code>HISTFILESIZE</code>
-<span id="index-HISTFILESIZE"></span>
-</dt>
+<dt id='index-HISTFILESIZE'><span><code>HISTFILESIZE</code><a href='#index-HISTFILESIZE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The maximum number of lines contained in the history file.
When this variable is assigned a value, the history file is truncated,
if necessary, to contain no more than that number of lines
@@ -7078,9 +7290,7 @@ The shell sets the default value to the value of <code>HISTSIZE</code>
after reading any startup files.
</p>
</dd>
-<dt><code>HISTIGNORE</code>
-<span id="index-HISTIGNORE"></span>
-</dt>
+<dt id='index-HISTIGNORE'><span><code>HISTIGNORE</code><a href='#index-HISTIGNORE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A colon-separated list of patterns used to decide which command
lines should be saved on the history list. Each pattern is
anchored at the beginning of the line and must match the complete
@@ -7103,9 +7313,7 @@ Combining these two patterns, separating them with a colon,
provides the functionality of <code>ignoreboth</code>.
</p>
</dd>
-<dt><code>HISTSIZE</code>
-<span id="index-HISTSIZE"></span>
-</dt>
+<dt id='index-HISTSIZE'><span><code>HISTSIZE</code><a href='#index-HISTSIZE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The maximum number of commands to remember on the history list.
If the value is 0, commands are not saved in the history list.
Numeric values less than zero result in every command being saved
@@ -7113,11 +7321,9 @@ on the history list (there is no limit).
The shell sets the default value to 500 after reading any startup files.
</p>
</dd>
-<dt><code>HISTTIMEFORMAT</code>
-<span id="index-HISTTIMEFORMAT"></span>
-</dt>
+<dt id='index-HISTTIMEFORMAT'><span><code>HISTTIMEFORMAT</code><a href='#index-HISTTIMEFORMAT' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If this variable is set and not null, its value is used as a format string
-for <var>strftime</var> to print the time stamp associated with each history
+for <code>strftime</code> to print the time stamp associated with each history
entry displayed by the <code>history</code> builtin.
If this variable is set, time stamps are written to the history file so
they may be preserved across shell sessions.
@@ -7125,9 +7331,7 @@ This uses the history comment character to distinguish timestamps from
other history lines.
</p>
</dd>
-<dt><code>HOSTFILE</code>
-<span id="index-HOSTFILE"></span>
-</dt>
+<dt id='index-HOSTFILE'><span><code>HOSTFILE</code><a href='#index-HOSTFILE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Contains the name of a file in the same format as <samp>/etc/hosts</samp> that
should be read when the shell needs to complete a hostname.
The list of possible hostname completions may be changed while the shell
@@ -7141,21 +7345,15 @@ Bash attempts to read
When <code>HOSTFILE</code> is unset, the hostname list is cleared.
</p>
</dd>
-<dt><code>HOSTNAME</code>
-<span id="index-HOSTNAME"></span>
-</dt>
+<dt id='index-HOSTNAME'><span><code>HOSTNAME</code><a href='#index-HOSTNAME' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The name of the current host.
</p>
</dd>
-<dt><code>HOSTTYPE</code>
-<span id="index-HOSTTYPE"></span>
-</dt>
+<dt id='index-HOSTTYPE'><span><code>HOSTTYPE</code><a href='#index-HOSTTYPE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A string describing the machine Bash is running on.
</p>
</dd>
-<dt><code>IGNOREEOF</code>
-<span id="index-IGNOREEOF"></span>
-</dt>
+<dt id='index-IGNOREEOF'><span><code>IGNOREEOF</code><a href='#index-IGNOREEOF' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Controls the action of the shell on receipt of an <code>EOF</code> character
as the sole input. If set, the value denotes the number
of consecutive <code>EOF</code> characters that can be read as the
@@ -7166,38 +7364,28 @@ If the variable does not exist, then <code>EOF</code> signifies the end of
input to the shell. This is only in effect for interactive shells.
</p>
</dd>
-<dt><code>INPUTRC</code>
-<span id="index-INPUTRC"></span>
-</dt>
+<dt id='index-INPUTRC'><span><code>INPUTRC</code><a href='#index-INPUTRC' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The name of the Readline initialization file, overriding the default
of <samp>~/.inputrc</samp>.
</p>
</dd>
-<dt><code>INSIDE_EMACS</code>
-<span id="index-INSIDE_005fEMACS"></span>
-</dt>
+<dt id='index-INSIDE_005fEMACS'><span><code>INSIDE_EMACS</code><a href='#index-INSIDE_005fEMACS' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If Bash finds this variable in the environment when the shell
starts, it assumes that the shell is running in an Emacs shell buffer
and may disable line editing depending on the value of <code>TERM</code>.
</p>
</dd>
-<dt><code>LANG</code>
-<span id="index-LANG"></span>
-</dt>
+<dt id='index-LANG-1'><span><code>LANG</code><a href='#index-LANG-1' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Used to determine the locale category for any category not specifically
selected with a variable starting with <code>LC_</code>.
</p>
</dd>
-<dt><code>LC_ALL</code>
-<span id="index-LC_005fALL"></span>
-</dt>
+<dt id='index-LC_005fALL'><span><code>LC_ALL</code><a href='#index-LC_005fALL' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>This variable overrides the value of <code>LANG</code> and any other
<code>LC_</code> variable specifying a locale category.
</p>
</dd>
-<dt><code>LC_COLLATE</code>
-<span id="index-LC_005fCOLLATE"></span>
-</dt>
+<dt id='index-LC_005fCOLLATE'><span><code>LC_COLLATE</code><a href='#index-LC_005fCOLLATE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>This variable determines the collation order used when sorting the
results of filename expansion, and
determines the behavior of range expressions, equivalence classes,
@@ -7205,46 +7393,34 @@ and collating sequences within filename expansion and pattern matching
(see <a href="#Filename-Expansion">Filename Expansion</a>).
</p>
</dd>
-<dt><code>LC_CTYPE</code>
-<span id="index-LC_005fCTYPE"></span>
-</dt>
+<dt id='index-LC_005fCTYPE'><span><code>LC_CTYPE</code><a href='#index-LC_005fCTYPE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>This variable determines the interpretation of characters and the
behavior of character classes within filename expansion and pattern
matching (see <a href="#Filename-Expansion">Filename Expansion</a>).
</p>
</dd>
-<dt><code>LC_MESSAGES</code>
-<span id="index-LC_005fMESSAGES-1"></span>
-</dt>
+<dt id='index-LC_005fMESSAGES-1'><span><code>LC_MESSAGES</code><a href='#index-LC_005fMESSAGES-1' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>This variable determines the locale used to translate double-quoted
-strings preceded by a &lsquo;<samp>$</samp>&rsquo; (see <a href="#Locale-Translation">Locale Translation</a>).
+strings preceded by a &lsquo;<samp>$</samp>&rsquo; (see <a href="#Locale-Translation">Locale-Specific Translation</a>).
</p>
</dd>
-<dt><code>LC_NUMERIC</code>
-<span id="index-LC_005fNUMERIC"></span>
-</dt>
+<dt id='index-LC_005fNUMERIC'><span><code>LC_NUMERIC</code><a href='#index-LC_005fNUMERIC' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>This variable determines the locale category used for number formatting.
</p>
</dd>
-<dt><code>LC_TIME</code>
-<span id="index-LC_005fTIME"></span>
-</dt>
+<dt id='index-LC_005fTIME'><span><code>LC_TIME</code><a href='#index-LC_005fTIME' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>This variable determines the locale category used for data and time
formatting.
</p>
</dd>
-<dt><code>LINENO</code>
-<span id="index-LINENO"></span>
-</dt>
+<dt id='index-LINENO'><span><code>LINENO</code><a href='#index-LINENO' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The line number in the script or shell function currently executing.
If <code>LINENO</code>
is unset, it loses its special properties, even if it is
subsequently reset.
</p>
</dd>
-<dt><code>LINES</code>
-<span id="index-LINES"></span>
-</dt>
+<dt id='index-LINES'><span><code>LINES</code><a href='#index-LINES' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Used by the <code>select</code> command to determine the column length
for printing selection lists.
Automatically set if the <code>checkwinsize</code> option is enabled
@@ -7252,16 +7428,12 @@ Automatically set if the <code>checkwinsize</code> option is enabled
<code>SIGWINCH</code>.
</p>
</dd>
-<dt><code>MACHTYPE</code>
-<span id="index-MACHTYPE"></span>
-</dt>
+<dt id='index-MACHTYPE'><span><code>MACHTYPE</code><a href='#index-MACHTYPE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A string that fully describes the system type on which Bash
is executing, in the standard <small>GNU</small> <var>cpu-company-system</var> format.
</p>
</dd>
-<dt><code>MAILCHECK</code>
-<span id="index-MAILCHECK"></span>
-</dt>
+<dt id='index-MAILCHECK'><span><code>MAILCHECK</code><a href='#index-MAILCHECK' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>How often (in seconds) that the shell should check for mail in the
files specified in the <code>MAILPATH</code> or <code>MAIL</code> variables.
The default is 60 seconds. When it is time to check
@@ -7270,44 +7442,32 @@ If this variable is unset, or set to a value that is not a number
greater than or equal to zero, the shell disables mail checking.
</p>
</dd>
-<dt><code>MAPFILE</code>
-<span id="index-MAPFILE"></span>
-</dt>
+<dt id='index-MAPFILE'><span><code>MAPFILE</code><a href='#index-MAPFILE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable created to hold the text read by the
<code>mapfile</code> builtin when no variable name is supplied.
</p>
</dd>
-<dt><code>OLDPWD</code>
-<span id="index-OLDPWD"></span>
-</dt>
+<dt id='index-OLDPWD'><span><code>OLDPWD</code><a href='#index-OLDPWD' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The previous working directory as set by the <code>cd</code> builtin.
</p>
</dd>
-<dt><code>OPTERR</code>
-<span id="index-OPTERR"></span>
-</dt>
+<dt id='index-OPTERR'><span><code>OPTERR</code><a href='#index-OPTERR' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If set to the value 1, Bash displays error messages
generated by the <code>getopts</code> builtin command.
</p>
</dd>
-<dt><code>OSTYPE</code>
-<span id="index-OSTYPE"></span>
-</dt>
+<dt id='index-OSTYPE'><span><code>OSTYPE</code><a href='#index-OSTYPE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A string describing the operating system Bash is running on.
</p>
</dd>
-<dt><code>PIPESTATUS</code>
-<span id="index-PIPESTATUS"></span>
-</dt>
+<dt id='index-PIPESTATUS'><span><code>PIPESTATUS</code><a href='#index-PIPESTATUS' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>An array variable (see <a href="#Arrays">Arrays</a>)
containing a list of exit status values from the processes
in the most-recently-executed foreground pipeline (which may
contain only a single command).
</p>
</dd>
-<dt><code>POSIXLY_CORRECT</code>
-<span id="index-POSIXLY_005fCORRECT"></span>
-</dt>
+<dt id='index-POSIXLY_005fCORRECT'><span><code>POSIXLY_CORRECT</code><a href='#index-POSIXLY_005fCORRECT' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If this variable is in the environment when Bash starts, the shell
enters <small>POSIX</small> mode (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>) before reading the
startup files, as if the <samp>--posix</samp> invocation option had been supplied.
@@ -7321,16 +7481,12 @@ When the shell enters <small>POSIX</small> mode, it sets this variable if it was
not already set.
</p>
</dd>
-<dt><code>PPID</code>
-<span id="index-PPID"></span>
-</dt>
+<dt id='index-PPID'><span><code>PPID</code><a href='#index-PPID' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The process <small>ID</small> of the shell&rsquo;s parent process. This variable
is readonly.
</p>
</dd>
-<dt><code>PROMPT_COMMAND</code>
-<span id="index-PROMPT_005fCOMMAND"></span>
-</dt>
+<dt id='index-PROMPT_005fCOMMAND'><span><code>PROMPT_COMMAND</code><a href='#index-PROMPT_005fCOMMAND' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If this variable is set, and is an array,
the value of each set element is interpreted as a command to execute
before printing the primary prompt (<code>$PS1</code>).
@@ -7338,35 +7494,27 @@ If this is set but not an array variable,
its value is used as a command to execute instead.
</p>
</dd>
-<dt><code>PROMPT_DIRTRIM</code>
-<span id="index-PROMPT_005fDIRTRIM"></span>
-</dt>
+<dt id='index-PROMPT_005fDIRTRIM'><span><code>PROMPT_DIRTRIM</code><a href='#index-PROMPT_005fDIRTRIM' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If set to a number greater than zero, the value is used as the number of
trailing directory components to retain when expanding the <code>\w</code> and
<code>\W</code> prompt string escapes (see <a href="#Controlling-the-Prompt">Controlling the Prompt</a>).
Characters removed are replaced with an ellipsis.
</p>
</dd>
-<dt><code>PS0</code>
-<span id="index-PS0"></span>
-</dt>
+<dt id='index-PS0'><span><code>PS0</code><a href='#index-PS0' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The value of this parameter is expanded like <code>PS1</code>
and displayed by interactive shells after reading a command
and before the command is executed.
</p>
</dd>
-<dt><code>PS3</code>
-<span id="index-PS3"></span>
-</dt>
+<dt id='index-PS3'><span><code>PS3</code><a href='#index-PS3' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The value of this variable is used as the prompt for the
<code>select</code> command. If this variable is not set, the
<code>select</code> command prompts with &lsquo;<samp>#? </samp>&rsquo;
</p>
</dd>
-<dt><code>PS4</code>
-<span id="index-PS4"></span>
-</dt>
-<dd><p>The value of this parameter is expanded like <var>PS1</var>
+<dt id='index-PS4'><span><code>PS4</code><a href='#index-PS4' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>The value of this parameter is expanded like <code>PS1</code>
and the expanded value is the prompt printed before the command line
is echoed when the <samp>-x</samp> option is set (see <a href="#The-Set-Builtin">The Set Builtin</a>).
The first character of the expanded value is replicated multiple times,
@@ -7374,15 +7522,11 @@ as necessary, to indicate multiple levels of indirection.
The default is &lsquo;<samp>+ </samp>&rsquo;.
</p>
</dd>
-<dt><code>PWD</code>
-<span id="index-PWD"></span>
-</dt>
+<dt id='index-PWD'><span><code>PWD</code><a href='#index-PWD' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The current working directory as set by the <code>cd</code> builtin.
</p>
</dd>
-<dt><code>RANDOM</code>
-<span id="index-RANDOM"></span>
-</dt>
+<dt id='index-RANDOM'><span><code>RANDOM</code><a href='#index-RANDOM' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Each time this parameter is referenced, it expands to a random integer
between 0 and 32767. Assigning a value to this
variable seeds the random number generator.
@@ -7391,62 +7535,53 @@ is unset, it loses its special properties, even if it is
subsequently reset.
</p>
</dd>
-<dt><code>READLINE_LINE</code>
-<span id="index-READLINE_005fLINE"></span>
-</dt>
+<dt id='index-READLINE_005fARGUMENT'><span><code>READLINE_ARGUMENT</code><a href='#index-READLINE_005fARGUMENT' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>Any numeric argument given to a Readline command that was defined using
+&lsquo;<samp>bind -x</samp>&rsquo; (see <a href="#Bash-Builtins">Bash Builtin Commands</a>
+when it was invoked.
+</p>
+</dd>
+<dt id='index-READLINE_005fLINE'><span><code>READLINE_LINE</code><a href='#index-READLINE_005fLINE' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The contents of the Readline line buffer, for use
-with &lsquo;<samp>bind -x</samp>&rsquo; (see <a href="#Bash-Builtins">Bash Builtins</a>).
+with &lsquo;<samp>bind -x</samp>&rsquo; (see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
</p>
</dd>
-<dt><code>READLINE_MARK</code>
-<span id="index-READLINE_005fMARK"></span>
-</dt>
-<dd><p>The position of the <var>mark</var> (saved insertion point) in the
+<dt id='index-READLINE_005fMARK'><span><code>READLINE_MARK</code><a href='#index-READLINE_005fMARK' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>The position of the <em>mark</em> (saved insertion point) in the
Readline line buffer, for use
-with &lsquo;<samp>bind -x</samp>&rsquo; (see <a href="#Bash-Builtins">Bash Builtins</a>).
+with &lsquo;<samp>bind -x</samp>&rsquo; (see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
The characters between the insertion point and the mark are often
-called the <var>region</var>.
+called the <em>region</em>.
</p>
</dd>
-<dt><code>READLINE_POINT</code>
-<span id="index-READLINE_005fPOINT"></span>
-</dt>
+<dt id='index-READLINE_005fPOINT'><span><code>READLINE_POINT</code><a href='#index-READLINE_005fPOINT' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The position of the insertion point in the Readline line buffer, for use
-with &lsquo;<samp>bind -x</samp>&rsquo; (see <a href="#Bash-Builtins">Bash Builtins</a>).
+with &lsquo;<samp>bind -x</samp>&rsquo; (see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
</p>
</dd>
-<dt><code>REPLY</code>
-<span id="index-REPLY"></span>
-</dt>
+<dt id='index-REPLY'><span><code>REPLY</code><a href='#index-REPLY' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The default variable for the <code>read</code> builtin.
</p>
</dd>
-<dt><code>SECONDS</code>
-<span id="index-SECONDS"></span>
-</dt>
-<dd><p>This variable expands to the number of seconds since the
-shell was started. Assignment to this variable resets
-the count to the value assigned, and the expanded value
-becomes the value assigned plus the number of seconds
+<dt id='index-SECONDS'><span><code>SECONDS</code><a href='#index-SECONDS' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>This variable expands to the number of seconds since the shell was started.
+Assignment to this variable resets the count to the value assigned, and the
+expanded value becomes the value assigned plus the number of seconds
since the assignment.
-The number of seconds at shell invocation and the current time is always
+The number of seconds at shell invocation and the current time are always
determined by querying the system clock.
If <code>SECONDS</code>
is unset, it loses its special properties,
even if it is subsequently reset.
</p>
</dd>
-<dt><code>SHELL</code>
-<span id="index-SHELL"></span>
-</dt>
+<dt id='index-SHELL'><span><code>SHELL</code><a href='#index-SHELL' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>This environment variable expands to the full pathname to the shell.
If it is not set when the shell starts,
Bash assigns to it the full pathname of the current user&rsquo;s login shell.
</p>
</dd>
-<dt><code>SHELLOPTS</code>
-<span id="index-SHELLOPTS"></span>
-</dt>
+<dt id='index-SHELLOPTS'><span><code>SHELLOPTS</code><a href='#index-SHELLOPTS' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A colon-separated list of enabled shell options. Each word in
the list is a valid argument for the <samp>-o</samp> option to the
<code>set</code> builtin command (see <a href="#The-Set-Builtin">The Set Builtin</a>).
@@ -7457,16 +7592,12 @@ starts up, each shell option in the list will be enabled before
reading any startup files. This variable is readonly.
</p>
</dd>
-<dt><code>SHLVL</code>
-<span id="index-SHLVL"></span>
-</dt>
+<dt id='index-SHLVL'><span><code>SHLVL</code><a href='#index-SHLVL' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Incremented by one each time a new instance of Bash is started. This is
intended to be a count of how deeply your Bash shells are nested.
</p>
</dd>
-<dt><code>SRANDOM</code>
-<span id="index-SRANDOM"></span>
-</dt>
+<dt id='index-SRANDOM'><span><code>SRANDOM</code><a href='#index-SRANDOM' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>This variable expands to a 32-bit pseudo-random number each time it is
referenced. The random number generator is not linear on systems that
support <samp>/dev/urandom</samp> or <code>arc4random</code>, so each returned number
@@ -7478,9 +7609,7 @@ is unset, it loses its special properties,
even if it is subsequently reset.
</p>
</dd>
-<dt><code>TIMEFORMAT</code>
-<span id="index-TIMEFORMAT"></span>
-</dt>
+<dt id='index-TIMEFORMAT'><span><code>TIMEFORMAT</code><a href='#index-TIMEFORMAT' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The value of this parameter is used as a format string specifying
how the timing information for pipelines prefixed with the <code>time</code>
reserved word should be displayed.
@@ -7491,23 +7620,23 @@ The escape sequences and their meanings are as
follows; the braces denote optional portions.
</p>
<dl compact="compact">
-<dt><code>%%</code></dt>
+<dt><span><code>%%</code></span></dt>
<dd><p>A literal &lsquo;<samp>%</samp>&rsquo;.
</p>
</dd>
-<dt><code>%[<var>p</var>][l]R</code></dt>
+<dt><span><code>%[<var>p</var>][l]R</code></span></dt>
<dd><p>The elapsed time in seconds.
</p>
</dd>
-<dt><code>%[<var>p</var>][l]U</code></dt>
+<dt><span><code>%[<var>p</var>][l]U</code></span></dt>
<dd><p>The number of CPU seconds spent in user mode.
</p>
</dd>
-<dt><code>%[<var>p</var>][l]S</code></dt>
+<dt><span><code>%[<var>p</var>][l]S</code></span></dt>
<dd><p>The number of CPU seconds spent in system mode.
</p>
</dd>
-<dt><code>%P</code></dt>
+<dt><span><code>%P</code></span></dt>
<dd><p>The CPU percentage, computed as (%U + %S) / %R.
</p></dd>
</dl>
@@ -7531,11 +7660,9 @@ The value of <var>p</var> determines whether or not the fraction is included.
A trailing newline is added when the format string is displayed.
</p>
</dd>
-<dt><code>TMOUT</code>
-<span id="index-TMOUT"></span>
-</dt>
+<dt id='index-TMOUT'><span><code>TMOUT</code><a href='#index-TMOUT' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If set to a value greater than zero, <code>TMOUT</code> is treated as the
-default timeout for the <code>read</code> builtin (see <a href="#Bash-Builtins">Bash Builtins</a>).
+default timeout for the <code>read</code> builtin (see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
The <code>select</code> command (see <a href="#Conditional-Constructs">Conditional Constructs</a>) terminates
if input does not arrive after <code>TMOUT</code> seconds when input is coming
from a terminal.
@@ -7548,63 +7675,47 @@ terminates after waiting for that number of seconds if a complete
line of input does not arrive.
</p>
</dd>
-<dt><code>TMPDIR</code>
-<span id="index-TMPDIR"></span>
-</dt>
+<dt id='index-TMPDIR'><span><code>TMPDIR</code><a href='#index-TMPDIR' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If set, Bash uses its value as the name of a directory in which
Bash creates temporary files for the shell&rsquo;s use.
</p>
</dd>
-<dt><code>UID</code>
-<span id="index-UID"></span>
-</dt>
+<dt id='index-UID'><span><code>UID</code><a href='#index-UID' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The numeric real user id of the current user. This variable is readonly.
</p>
</dd>
</dl>
<hr>
-<span id="Bash-Features"></span><div class="header">
+</div>
+</div>
+<div class="chapter" id="Bash-Features">
+<div class="header">
<p>
-Next: <a href="#Job-Control" accesskey="n" rel="next">Job Control</a>, Previous: <a href="#Shell-Variables" accesskey="p" rel="prev">Shell Variables</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Job-Control" accesskey="n" rel="next">Job Control</a>, Previous: <a href="#Shell-Variables" accesskey="p" rel="prev">Shell Variables</a>, Up: <a href="#Top" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Bash-Features-2"></span><h2 class="chapter">6 Bash Features</h2>
<p>This chapter describes features unique to Bash.
</p>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Invoking-Bash" accesskey="1">Invoking Bash</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Command line options that you can give
- to Bash.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Bash-Startup-Files" accesskey="2">Bash Startup Files</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">When and how Bash executes scripts.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Interactive-Shells" accesskey="3">Interactive Shells</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">What an interactive shell is.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Bash-Conditional-Expressions" accesskey="4">Bash Conditional Expressions</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Primitives used in composing expressions for
- the <code>test</code> builtin.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Shell-Arithmetic" accesskey="5">Shell Arithmetic</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Arithmetic on shell variables.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Aliases" accesskey="6">Aliases</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Substituting one command for another.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Arrays" accesskey="7">Arrays</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Array Variables.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#The-Directory-Stack" accesskey="8">The Directory Stack</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">History of visited directories.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Controlling-the-Prompt" accesskey="9">Controlling the Prompt</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Customizing the various prompt strings.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#The-Restricted-Shell">The Restricted Shell</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">A more controlled mode of shell execution.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Making Bash behave more closely to what
- the POSIX standard specifies.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Shell-Compatibility-Mode">Shell Compatibility Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How Bash supports behavior that was present
- in earlier versions and has changed.
-</td></tr>
-</table>
+<ul class="section-toc">
+<li><a href="#Invoking-Bash" accesskey="1">Invoking Bash</a></li>
+<li><a href="#Bash-Startup-Files" accesskey="2">Bash Startup Files</a></li>
+<li><a href="#Interactive-Shells" accesskey="3">Interactive Shells</a></li>
+<li><a href="#Bash-Conditional-Expressions" accesskey="4">Bash Conditional Expressions</a></li>
+<li><a href="#Shell-Arithmetic" accesskey="5">Shell Arithmetic</a></li>
+<li><a href="#Aliases" accesskey="6">Aliases</a></li>
+<li><a href="#Arrays" accesskey="7">Arrays</a></li>
+<li><a href="#The-Directory-Stack" accesskey="8">The Directory Stack</a></li>
+<li><a href="#Controlling-the-Prompt" accesskey="9">Controlling the Prompt</a></li>
+<li><a href="#The-Restricted-Shell">The Restricted Shell</a></li>
+<li><a href="#Bash-POSIX-Mode">Bash POSIX Mode</a></li>
+<li><a href="#Shell-Compatibility-Mode">Shell Compatibility Mode</a></li>
+</ul>
<hr>
-<span id="Invoking-Bash"></span><div class="header">
+<div class="section" id="Invoking-Bash">
+<div class="header">
<p>
Next: <a href="#Bash-Startup-Files" accesskey="n" rel="next">Bash Startup Files</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -7626,57 +7737,57 @@ options that you can use. These options must appear on the command
line before the single-character options to be recognized.
</p>
<dl compact="compact">
-<dt><code>--debugger</code></dt>
+<dt><span><code>--debugger</code></span></dt>
<dd><p>Arrange for the debugger profile to be executed before the shell
starts. Turns on extended debugging mode (see <a href="#The-Shopt-Builtin">The Shopt Builtin</a>
for a description of the <code>extdebug</code> option to the <code>shopt</code>
builtin).
</p>
</dd>
-<dt><code>--dump-po-strings</code></dt>
+<dt><span><code>--dump-po-strings</code></span></dt>
<dd><p>A list of all double-quoted strings preceded by &lsquo;<samp>$</samp>&rsquo;
is printed on the standard output
in the <small>GNU</small> <code>gettext</code> PO (portable object) file format.
Equivalent to <samp>-D</samp> except for the output format.
</p>
</dd>
-<dt><code>--dump-strings</code></dt>
+<dt><span><code>--dump-strings</code></span></dt>
<dd><p>Equivalent to <samp>-D</samp>.
</p>
</dd>
-<dt><code>--help</code></dt>
+<dt><span><code>--help</code></span></dt>
<dd><p>Display a usage message on standard output and exit successfully.
</p>
</dd>
-<dt><code>--init-file <var>filename</var></code></dt>
-<dt><code>--rcfile <var>filename</var></code></dt>
+<dt><span><code>--init-file <var>filename</var></code></span></dt>
+<dt><span><code>--rcfile <var>filename</var></code></span></dt>
<dd><p>Execute commands from <var>filename</var> (instead of <samp>~/.bashrc</samp>)
in an interactive shell.
</p>
</dd>
-<dt><code>--login</code></dt>
+<dt><span><code>--login</code></span></dt>
<dd><p>Equivalent to <samp>-l</samp>.
</p>
</dd>
-<dt><code>--noediting</code></dt>
+<dt><span><code>--noediting</code></span></dt>
<dd><p>Do not use the <small>GNU</small> Readline library (see <a href="#Command-Line-Editing">Command Line Editing</a>)
to read command lines when the shell is interactive.
</p>
</dd>
-<dt><code>--noprofile</code></dt>
+<dt><span><code>--noprofile</code></span></dt>
<dd><p>Don&rsquo;t load the system-wide startup file <samp>/etc/profile</samp>
or any of the personal initialization files
<samp>~/.bash_profile</samp>, <samp>~/.bash_login</samp>, or <samp>~/.profile</samp>
when Bash is invoked as a login shell.
</p>
</dd>
-<dt><code>--norc</code></dt>
+<dt><span><code>--norc</code></span></dt>
<dd><p>Don&rsquo;t read the <samp>~/.bashrc</samp> initialization file in an
interactive shell. This is on by default if the shell is
invoked as <code>sh</code>.
</p>
</dd>
-<dt><code>--posix</code></dt>
+<dt><span><code>--posix</code></span></dt>
<dd><p>Change the behavior of Bash where the default operation differs
from the <small>POSIX</small> standard to match the standard. This
is intended to make Bash behave as a strict superset of that
@@ -7684,15 +7795,15 @@ standard. See <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>, for a description
<small>POSIX</small> mode.
</p>
</dd>
-<dt><code>--restricted</code></dt>
+<dt><span><code>--restricted</code></span></dt>
<dd><p>Make the shell a restricted shell (see <a href="#The-Restricted-Shell">The Restricted Shell</a>).
</p>
</dd>
-<dt><code>--verbose</code></dt>
+<dt><span><code>--verbose</code></span></dt>
<dd><p>Equivalent to <samp>-v</samp>. Print shell input lines as they&rsquo;re read.
</p>
</dd>
-<dt><code>--version</code></dt>
+<dt><span><code>--version</code></span></dt>
<dd><p>Show version information for this instance of
Bash on the standard output and exit successfully.
</p></dd>
@@ -7702,7 +7813,7 @@ Bash on the standard output and exit successfully.
invocation which are not available with the <code>set</code> builtin.
</p>
<dl compact="compact">
-<dt><code>-c</code></dt>
+<dt><span><code>-c</code></span></dt>
<dd><p>Read and execute commands from the first non-option argument
<var>command_string</var>, then exit.
If there are arguments after the <var>command_string</var>,
@@ -7712,12 +7823,12 @@ The assignment to <code>$0</code> sets the name of the shell, which is used
in warning and error messages.
</p>
</dd>
-<dt><code>-i</code></dt>
+<dt><span><code>-i</code></span></dt>
<dd><p>Force the shell to run interactively. Interactive shells are
described in <a href="#Interactive-Shells">Interactive Shells</a>.
</p>
</dd>
-<dt><code>-l</code></dt>
+<dt><span><code>-l</code></span></dt>
<dd><p>Make this shell act as if it had been directly invoked by login.
When the shell is interactive, this is equivalent to starting a
login shell with &lsquo;<samp>exec -l bash</samp>&rsquo;.
@@ -7729,11 +7840,11 @@ See <a href="#Bash-Startup-Files">Bash Startup Files</a>, for a description of t
of a login shell.
</p>
</dd>
-<dt><code>-r</code></dt>
+<dt><span><code>-r</code></span></dt>
<dd><p>Make the shell a restricted shell (see <a href="#The-Restricted-Shell">The Restricted Shell</a>).
</p>
</dd>
-<dt><code>-s</code></dt>
+<dt><span><code>-s</code></span></dt>
<dd><p>If this option is present, or if no arguments remain after option
processing, then commands are read from the standard input.
This option allows the positional parameters to be set
@@ -7741,16 +7852,16 @@ when invoking an interactive shell or when reading input
through a pipe.
</p>
</dd>
-<dt><code>-D</code></dt>
+<dt><span><code>-D</code></span></dt>
<dd><p>A list of all double-quoted strings preceded by &lsquo;<samp>$</samp>&rsquo;
is printed on the standard output.
These are the strings that
are subject to language translation when the current locale
-is not <code>C</code> or <code>POSIX</code> (see <a href="#Locale-Translation">Locale Translation</a>).
+is not <code>C</code> or <code>POSIX</code> (see <a href="#Locale-Translation">Locale-Specific Translation</a>).
This implies the <samp>-n</samp> option; no commands will be executed.
</p>
</dd>
-<dt><code>[-+]O [<var>shopt_option</var>]</code></dt>
+<dt><span><code>[-+]O [<var>shopt_option</var>]</code></span></dt>
<dd><p><var>shopt_option</var> is one of the shell options accepted by the
<code>shopt</code> builtin (see <a href="#The-Shopt-Builtin">The Shopt Builtin</a>).
If <var>shopt_option</var> is present, <samp>-O</samp> sets the value of that option;
@@ -7761,7 +7872,7 @@ If the invocation option is <samp>+O</samp>, the output is displayed in a format
that may be reused as input.
</p>
</dd>
-<dt><code>--</code></dt>
+<dt><span><code>--</code></span></dt>
<dd><p>A <code>--</code> signals the end of options and disables further option
processing.
Any arguments after the <code>--</code> are treated as filenames and arguments.
@@ -7792,7 +7903,9 @@ Bash&rsquo;s exit status is the exit status of the last command executed
in the script. If no commands are executed, the exit status is 0.
</p>
<hr>
-<span id="Bash-Startup-Files"></span><div class="header">
+</div>
+<div class="section" id="Bash-Startup-Files">
+<div class="header">
<p>
Next: <a href="#Interactive-Shells" accesskey="n" rel="next">Interactive Shells</a>, Previous: <a href="#Invoking-Bash" accesskey="p" rel="prev">Invoking Bash</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -7889,10 +8002,12 @@ No other startup files are read.
<span id="Invoked-by-remote-shell-daemon"></span><h4 class="subsubheading">Invoked by remote shell daemon</h4>
<p>Bash attempts to determine when it is being run with its standard input
-connected to a network connection, as when executed by the remote shell
-daemon, usually <code>rshd</code>, or the secure shell daemon <code>sshd</code>.
-If Bash determines it is being run in
-this fashion, it reads and executes commands from <samp>~/.bashrc</samp>, if that
+connected to a network connection, as when executed by
+the historical remote shell daemon, usually <code>rshd</code>,
+or the secure shell daemon <code>sshd</code>.
+If Bash
+determines it is being run non-interactively in this fashion,
+it reads and executes commands from <samp>~/.bashrc</samp>, if that
file exists and is readable.
It will not do this if invoked as <code>sh</code>.
The <samp>--norc</samp> option may be used to inhibit this behavior, and the
@@ -7912,7 +8027,9 @@ If the <samp>-p</samp> option is supplied at invocation, the startup behavior is
the same, but the effective user id is not reset.
</p>
<hr>
-<span id="Interactive-Shells"></span><div class="header">
+</div>
+<div class="section" id="Interactive-Shells">
+<div class="header">
<p>
Next: <a href="#Bash-Conditional-Expressions" accesskey="n" rel="next">Bash Conditional Expressions</a>, Previous: <a href="#Bash-Startup-Files" accesskey="p" rel="prev">Bash Startup Files</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -7920,25 +8037,24 @@ Next: <a href="#Bash-Conditional-Expressions" accesskey="n" rel="next">Bash Cond
<span id="index-interactive-shell-1"></span>
<span id="index-shell_002c-interactive"></span>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#What-is-an-Interactive-Shell_003f" accesskey="1">What is an Interactive Shell?</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">What determines whether a shell is Interactive.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Is-this-Shell-Interactive_003f" accesskey="2">Is this Shell Interactive?</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to tell if a shell is interactive.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Interactive-Shell-Behavior" accesskey="3">Interactive Shell Behavior</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">What changes in a interactive shell?
-</td></tr>
-</table>
+<ul class="section-toc">
+<li><a href="#What-is-an-Interactive-Shell_003f" accesskey="1">What is an Interactive Shell?</a></li>
+<li><a href="#Is-this-Shell-Interactive_003f" accesskey="2">Is this Shell Interactive?</a></li>
+<li><a href="#Interactive-Shell-Behavior" accesskey="3">Interactive Shell Behavior</a></li>
+</ul>
<hr>
-<span id="What-is-an-Interactive-Shell_003f"></span><div class="header">
+<div class="subsection" id="What-is-an-Interactive-Shell_003f">
+<div class="header">
<p>
Next: <a href="#Is-this-Shell-Interactive_003f" accesskey="n" rel="next">Is this Shell Interactive?</a>, Up: <a href="#Interactive-Shells" accesskey="u" rel="up">Interactive Shells</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="What-is-an-Interactive-Shell_003f-1"></span><h4 class="subsection">6.3.1 What is an Interactive Shell?</h4>
<p>An interactive shell
-is one started without non-option arguments, unless <samp>-s</samp> is
-specified, without specifying the <samp>-c</samp> option, and
+is one started without non-option arguments
+(unless <samp>-s</samp> is specified)
+and without specifying the <samp>-c</samp> option,
whose input and error output are both
connected to terminals (as determined by <code>isatty(3)</code>),
or one started with the <samp>-i</samp> option.
@@ -7950,7 +8066,9 @@ terminal.
when an interactive shell is started.
</p>
<hr>
-<span id="Is-this-Shell-Interactive_003f"></span><div class="header">
+</div>
+<div class="subsection" id="Is-this-Shell-Interactive_003f">
+<div class="header">
<p>
Next: <a href="#Interactive-Shell-Behavior" accesskey="n" rel="next">Interactive Shell Behavior</a>, Previous: <a href="#What-is-an-Interactive-Shell_003f" accesskey="p" rel="prev">What is an Interactive Shell?</a>, Up: <a href="#Interactive-Shells" accesskey="u" rel="up">Interactive Shells</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -7981,7 +8099,9 @@ fi
</pre></div>
<hr>
-<span id="Interactive-Shell-Behavior"></span><div class="header">
+</div>
+<div class="subsection" id="Interactive-Shell-Behavior">
+<div class="header">
<p>
Previous: <a href="#Is-this-Shell-Interactive_003f" accesskey="p" rel="prev">Is this Shell Interactive?</a>, Up: <a href="#Interactive-Shells" accesskey="u" rel="up">Interactive Shells</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -8005,7 +8125,7 @@ executing it.
See <a href="#Controlling-the-Prompt">Controlling the Prompt</a>, for a complete list of prompt
string escape sequences.
-</li><li> Bash executes the values of the set elements of the <code>PROMPT_COMMANDS</code>
+</li><li> Bash executes the values of the set elements of the <code>PROMPT_COMMAND</code>
array variable as commands before printing the primary prompt, <code>$PS1</code>
(see <a href="#Bash-Variables">Bash Variables</a>).
@@ -8017,7 +8137,7 @@ instead of exiting immediately when it receives an <code>EOF</code> on its
standard input when reading a command (see <a href="#The-Set-Builtin">The Set Builtin</a>).
</li><li> Command history (see <a href="#Bash-History-Facilities">Bash History Facilities</a>)
-and history expansion (see <a href="#History-Interaction">History Interaction</a>)
+and history expansion (see <a href="#History-Interaction">History Expansion</a>)
are enabled by default.
Bash will save the command history to the file named by <code>$HISTFILE</code>
when a shell with history enabled exits.
@@ -8060,9 +8180,11 @@ status will not cause the shell to exit (see <a href="#Bash-POSIX-Mode">Bash POS
</li><li> Parser syntax errors will not cause the shell to exit.
-</li><li> Simple spelling correction for directory arguments to the <code>cd</code>
-builtin is enabled by default (see the description of the <code>cdspell</code>
+</li><li> If the <code>cdspell</code> shell option is enabled, the shell will attempt
+simple spelling correction for directory arguments to the <code>cd</code>
+builtin (see the description of the <code>cdspell</code>
option to the <code>shopt</code> builtin in <a href="#The-Shopt-Builtin">The Shopt Builtin</a>).
+The <code>cdspell</code> option is only effective in interactive shells.
</li><li> The shell will check the value of the <code>TMOUT</code> variable and exit
if a command is not read within the specified number of seconds after
@@ -8071,7 +8193,10 @@ printing <code>$PS1</code> (see <a href="#Bash-Variables">Bash Variables</a>).
</li></ol>
<hr>
-<span id="Bash-Conditional-Expressions"></span><div class="header">
+</div>
+</div>
+<div class="section" id="Bash-Conditional-Expressions">
+<div class="header">
<p>
Next: <a href="#Shell-Arithmetic" accesskey="n" rel="next">Shell Arithmetic</a>, Previous: <a href="#Interactive-Shells" accesskey="p" rel="prev">Interactive Shells</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -8079,7 +8204,10 @@ Next: <a href="#Shell-Arithmetic" accesskey="n" rel="next">Shell Arithmetic</a>,
<span id="index-expressions_002c-conditional"></span>
<p>Conditional expressions are used by the <code>[[</code> compound command
-and the <code>test</code> and <code>[</code> builtin commands. The <code>test</code>
+(see <a href="#Conditional-Constructs">Conditional Constructs</a>)
+and the <code>test</code> and <code>[</code> builtin commands
+(see <a href="#Bourne-Shell-Builtins">Bourne Shell Builtins</a>).
+The <code>test</code>
and <code>[</code> commands determine their behavior based on the number
of arguments; see the descriptions of those commands for any other
command-specific actions.
@@ -8107,130 +8235,130 @@ The <code>test</code> command uses ASCII ordering.
links and operate on the target of the link, rather than the link itself.
</p>
<dl compact="compact">
-<dt><code>-a <var>file</var></code></dt>
+<dt><span><code>-a <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists.
</p>
</dd>
-<dt><code>-b <var>file</var></code></dt>
+<dt><span><code>-b <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and is a block special file.
</p>
</dd>
-<dt><code>-c <var>file</var></code></dt>
+<dt><span><code>-c <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and is a character special file.
</p>
</dd>
-<dt><code>-d <var>file</var></code></dt>
+<dt><span><code>-d <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and is a directory.
</p>
</dd>
-<dt><code>-e <var>file</var></code></dt>
+<dt><span><code>-e <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists.
</p>
</dd>
-<dt><code>-f <var>file</var></code></dt>
+<dt><span><code>-f <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and is a regular file.
</p>
</dd>
-<dt><code>-g <var>file</var></code></dt>
+<dt><span><code>-g <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and its set-group-id bit is set.
</p>
</dd>
-<dt><code>-h <var>file</var></code></dt>
+<dt><span><code>-h <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and is a symbolic link.
</p>
</dd>
-<dt><code>-k <var>file</var></code></dt>
+<dt><span><code>-k <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and its &quot;sticky&quot; bit is set.
</p>
</dd>
-<dt><code>-p <var>file</var></code></dt>
+<dt><span><code>-p <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and is a named pipe (FIFO).
</p>
</dd>
-<dt><code>-r <var>file</var></code></dt>
+<dt><span><code>-r <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and is readable.
</p>
</dd>
-<dt><code>-s <var>file</var></code></dt>
+<dt><span><code>-s <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and has a size greater than zero.
</p>
</dd>
-<dt><code>-t <var>fd</var></code></dt>
+<dt><span><code>-t <var>fd</var></code></span></dt>
<dd><p>True if file descriptor <var>fd</var> is open and refers to a terminal.
</p>
</dd>
-<dt><code>-u <var>file</var></code></dt>
+<dt><span><code>-u <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and its set-user-id bit is set.
</p>
</dd>
-<dt><code>-w <var>file</var></code></dt>
+<dt><span><code>-w <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and is writable.
</p>
</dd>
-<dt><code>-x <var>file</var></code></dt>
+<dt><span><code>-x <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and is executable.
</p>
</dd>
-<dt><code>-G <var>file</var></code></dt>
+<dt><span><code>-G <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and is owned by the effective group id.
</p>
</dd>
-<dt><code>-L <var>file</var></code></dt>
+<dt><span><code>-L <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and is a symbolic link.
</p>
</dd>
-<dt><code>-N <var>file</var></code></dt>
+<dt><span><code>-N <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and has been modified since it was last read.
</p>
</dd>
-<dt><code>-O <var>file</var></code></dt>
+<dt><span><code>-O <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and is owned by the effective user id.
</p>
</dd>
-<dt><code>-S <var>file</var></code></dt>
+<dt><span><code>-S <var>file</var></code></span></dt>
<dd><p>True if <var>file</var> exists and is a socket.
</p>
</dd>
-<dt><code><var>file1</var> -ef <var>file2</var></code></dt>
+<dt><span><code><var>file1</var> -ef <var>file2</var></code></span></dt>
<dd><p>True if <var>file1</var> and <var>file2</var> refer to the same device and
inode numbers.
</p>
</dd>
-<dt><code><var>file1</var> -nt <var>file2</var></code></dt>
+<dt><span><code><var>file1</var> -nt <var>file2</var></code></span></dt>
<dd><p>True if <var>file1</var> is newer (according to modification date)
than <var>file2</var>, or if <var>file1</var> exists and <var>file2</var> does not.
</p>
</dd>
-<dt><code><var>file1</var> -ot <var>file2</var></code></dt>
+<dt><span><code><var>file1</var> -ot <var>file2</var></code></span></dt>
<dd><p>True if <var>file1</var> is older than <var>file2</var>,
or if <var>file2</var> exists and <var>file1</var> does not.
</p>
</dd>
-<dt><code>-o <var>optname</var></code></dt>
+<dt><span><code>-o <var>optname</var></code></span></dt>
<dd><p>True if the shell option <var>optname</var> is enabled.
The list of options appears in the description of the <samp>-o</samp>
option to the <code>set</code> builtin (see <a href="#The-Set-Builtin">The Set Builtin</a>).
</p>
</dd>
-<dt><code>-v <var>varname</var></code></dt>
+<dt><span><code>-v <var>varname</var></code></span></dt>
<dd><p>True if the shell variable <var>varname</var> is set (has been assigned a value).
</p>
</dd>
-<dt><code>-R <var>varname</var></code></dt>
+<dt><span><code>-R <var>varname</var></code></span></dt>
<dd><p>True if the shell variable <var>varname</var> is set and is a name reference.
</p>
</dd>
-<dt><code>-z <var>string</var></code></dt>
+<dt><span><code>-z <var>string</var></code></span></dt>
<dd><p>True if the length of <var>string</var> is zero.
</p>
</dd>
-<dt><code>-n <var>string</var></code></dt>
-<dt><code><var>string</var></code></dt>
+<dt><span><code>-n <var>string</var></code></span></dt>
+<dt><span><code><var>string</var></code></span></dt>
<dd><p>True if the length of <var>string</var> is non-zero.
</p>
</dd>
-<dt><code><var>string1</var> == <var>string2</var></code></dt>
-<dt><code><var>string1</var> = <var>string2</var></code></dt>
+<dt><span><code><var>string1</var> == <var>string2</var></code></span></dt>
+<dt><span><code><var>string1</var> = <var>string2</var></code></span></dt>
<dd><p>True if the strings are equal.
When used with the <code>[[</code> command, this performs pattern matching as
described above (see <a href="#Conditional-Constructs">Conditional Constructs</a>).
@@ -8238,19 +8366,19 @@ described above (see <a href="#Conditional-Constructs">Conditional Constructs</a
<p>&lsquo;<samp>=</samp>&rsquo; should be used with the <code>test</code> command for <small>POSIX</small> conformance.
</p>
</dd>
-<dt><code><var>string1</var> != <var>string2</var></code></dt>
+<dt><span><code><var>string1</var> != <var>string2</var></code></span></dt>
<dd><p>True if the strings are not equal.
</p>
</dd>
-<dt><code><var>string1</var> &lt; <var>string2</var></code></dt>
+<dt><span><code><var>string1</var> &lt; <var>string2</var></code></span></dt>
<dd><p>True if <var>string1</var> sorts before <var>string2</var> lexicographically.
</p>
</dd>
-<dt><code><var>string1</var> &gt; <var>string2</var></code></dt>
+<dt><span><code><var>string1</var> &gt; <var>string2</var></code></span></dt>
<dd><p>True if <var>string1</var> sorts after <var>string2</var> lexicographically.
</p>
</dd>
-<dt><code><var>arg1</var> OP <var>arg2</var></code></dt>
+<dt><span><code><var>arg1</var> OP <var>arg2</var></code></span></dt>
<dd><p><code>OP</code> is one of
&lsquo;<samp>-eq</samp>&rsquo;, &lsquo;<samp>-ne</samp>&rsquo;, &lsquo;<samp>-lt</samp>&rsquo;, &lsquo;<samp>-le</samp>&rsquo;, &lsquo;<samp>-gt</samp>&rsquo;, or &lsquo;<samp>-ge</samp>&rsquo;.
These arithmetic binary operators return true if <var>arg1</var>
@@ -8264,7 +8392,9 @@ are evaluated as arithmetic expressions (see <a href="#Shell-Arithmetic">Shell A
</dl>
<hr>
-<span id="Shell-Arithmetic"></span><div class="header">
+</div>
+<div class="section" id="Shell-Arithmetic">
+<div class="header">
<p>
Next: <a href="#Aliases" accesskey="n" rel="next">Aliases</a>, Previous: <a href="#Bash-Conditional-Expressions" accesskey="p" rel="prev">Bash Conditional Expressions</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -8288,75 +8418,75 @@ equal-precedence operators.
The levels are listed in order of decreasing precedence.
</p>
<dl compact="compact">
-<dt><code><var>id</var>++ <var>id</var>--</code></dt>
+<dt><span><code><var>id</var>++ <var>id</var>--</code></span></dt>
<dd><p>variable post-increment and post-decrement
</p>
</dd>
-<dt><code>++<var>id</var> --<var>id</var></code></dt>
+<dt><span><code>++<var>id</var> --<var>id</var></code></span></dt>
<dd><p>variable pre-increment and pre-decrement
</p>
</dd>
-<dt><code>- +</code></dt>
+<dt><span><code>- +</code></span></dt>
<dd><p>unary minus and plus
</p>
</dd>
-<dt><code>! ~</code></dt>
+<dt><span><code>! ~</code></span></dt>
<dd><p>logical and bitwise negation
</p>
</dd>
-<dt><code>**</code></dt>
+<dt><span><code>**</code></span></dt>
<dd><p>exponentiation
</p>
</dd>
-<dt><code>* / %</code></dt>
+<dt><span><code>* / %</code></span></dt>
<dd><p>multiplication, division, remainder
</p>
</dd>
-<dt><code>+ -</code></dt>
+<dt><span><code>+ -</code></span></dt>
<dd><p>addition, subtraction
</p>
</dd>
-<dt><code>&lt;&lt; &gt;&gt;</code></dt>
+<dt><span><code>&lt;&lt; &gt;&gt;</code></span></dt>
<dd><p>left and right bitwise shifts
</p>
</dd>
-<dt><code>&lt;= &gt;= &lt; &gt;</code></dt>
+<dt><span><code>&lt;= &gt;= &lt; &gt;</code></span></dt>
<dd><p>comparison
</p>
</dd>
-<dt><code>== !=</code></dt>
+<dt><span><code>== !=</code></span></dt>
<dd><p>equality and inequality
</p>
</dd>
-<dt><code>&amp;</code></dt>
+<dt><span><code>&amp;</code></span></dt>
<dd><p>bitwise AND
</p>
</dd>
-<dt><code>^</code></dt>
+<dt><span><code>^</code></span></dt>
<dd><p>bitwise exclusive OR
</p>
</dd>
-<dt><code>|</code></dt>
+<dt><span><code>|</code></span></dt>
<dd><p>bitwise OR
</p>
</dd>
-<dt><code>&amp;&amp;</code></dt>
+<dt><span><code>&amp;&amp;</code></span></dt>
<dd><p>logical AND
</p>
</dd>
-<dt><code>||</code></dt>
+<dt><span><code>||</code></span></dt>
<dd><p>logical OR
</p>
</dd>
-<dt><code>expr ? expr : expr</code></dt>
+<dt><span><code>expr ? expr : expr</code></span></dt>
<dd><p>conditional operator
</p>
</dd>
-<dt><code>= *= /= %= += -= &lt;&lt;= &gt;&gt;= &amp;= ^= |=</code></dt>
+<dt><span><code>= *= /= %= += -= &lt;&lt;= &gt;&gt;= &amp;= ^= |=</code></span></dt>
<dd><p>assignment
</p>
</dd>
-<dt><code>expr1 , expr2</code></dt>
+<dt><span><code>expr1 , expr2</code></span></dt>
<dd><p>comma
</p></dd>
</dl>
@@ -8369,9 +8499,9 @@ A shell variable that is null or unset evaluates to 0 when referenced
by name without using the parameter expansion syntax.
The value of a variable is evaluated as an arithmetic expression
when it is referenced, or when a variable which has been given the
-<var>integer</var> attribute using &lsquo;<samp>declare -i</samp>&rsquo; is assigned a value.
+<code>integer</code> attribute using &lsquo;<samp>declare -i</samp>&rsquo; is assigned a value.
A null value evaluates to 0.
-A shell variable need not have its <var>integer</var> attribute turned on
+A shell variable need not have its <code>integer</code> attribute turned on
to be used in an expression.
</p>
<p>Integer constants follow the C language definition, without suffixes or
@@ -8395,14 +8525,16 @@ parentheses are evaluated first and may override the precedence
rules above.
</p>
<hr>
-<span id="Aliases"></span><div class="header">
+</div>
+<div class="section" id="Aliases">
+<div class="header">
<p>
Next: <a href="#Arrays" accesskey="n" rel="next">Arrays</a>, Previous: <a href="#Shell-Arithmetic" accesskey="p" rel="prev">Shell Arithmetic</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Aliases-1"></span><h3 class="section">6.6 Aliases</h3>
<span id="index-alias-expansion"></span>
-<p><var>Aliases</var> allow a string to be substituted for a word when it is used
+<p><em>Aliases</em> allow a string to be substituted for a word when it is used
as the first word of a simple command.
The shell maintains a list of aliases that may be set and unset with
the <code>alias</code> and <code>unalias</code> builtin commands.
@@ -8422,7 +8554,7 @@ This means that one may alias <code>ls</code> to <code>&quot;ls -F&quot;</code>,
for instance, and Bash does not try to recursively expand the
replacement text.
If the last character of the alias value is a
-<var>blank</var>, then the next command word following the
+<code>blank</code>, then the next command word following the
alias is also checked for alias expansion.
</p>
<p>Aliases are created and listed with the <code>alias</code>
@@ -8430,7 +8562,7 @@ command, and removed with the <code>unalias</code> command.
</p>
<p>There is no mechanism for using arguments in the replacement text,
as in <code>csh</code>.
-If arguments are needed, a shell function should be used
+If arguments are needed, use a shell function
(see <a href="#Shell-Functions">Shell Functions</a>).
</p>
<p>Aliases are not expanded when the shell is not interactive,
@@ -8460,7 +8592,9 @@ in compound commands.
<p>For almost every purpose, shell functions are preferred over aliases.
</p>
<hr>
-<span id="Arrays"></span><div class="header">
+</div>
+<div class="section" id="Arrays">
+<div class="header">
<p>
Next: <a href="#The-Directory-Stack" accesskey="n" rel="next">The Directory Stack</a>, Previous: <a href="#Aliases" accesskey="p" rel="prev">Aliases</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -8543,6 +8677,9 @@ interpreted as relative to one greater than the maximum index of
<var>name</var>, so negative indices count back from the end of the
array, and an index of -1 references the last element.
</p>
+<p>The &lsquo;<samp>+=</samp>&rsquo; operator will append to an array variable when assigning
+using the compound assignment syntax; see <a href="#Shell-Parameters">Shell Parameters</a> above.
+</p>
<p>Any element of an array may be referenced using
<code>${<var>name</var>[<var>subscript</var>]}</code>.
The braces are required to avoid
@@ -8593,8 +8730,14 @@ destroys the array element at index <var>subscript</var>.
Negative subscripts to indexed arrays are interpreted as described above.
Unsetting the last element of an array variable does not unset the variable.
<code>unset <var>name</var></code>, where <var>name</var> is an array, removes the
-entire array. A subscript of &lsquo;<samp>*</samp>&rsquo; or &lsquo;<samp>@</samp>&rsquo; also removes the
entire array.
+<code>unset <var>name</var>[<var>subscript</var>]</code> behaves differently
+depending on the array type when given a
+subscript of &lsquo;<samp>*</samp>&rsquo; or &lsquo;<samp>@</samp>&rsquo;.
+When <var>name</var> is an associative array, it removes the element with key
+&lsquo;<samp>*</samp>&rsquo; or &lsquo;<samp>@</samp>&rsquo;.
+If <var>name</var> is an indexed array, <code>unset</code> removes all of the elements,
+but does not remove the array itself.
</p>
<p>When using a variable name with a subscript as an argument to a command,
such as with <code>unset</code>, without using the word expansion syntax
@@ -8613,18 +8756,15 @@ builtins display array values in a way that allows them to be
reused as input.
</p>
<hr>
-<span id="The-Directory-Stack"></span><div class="header">
+</div>
+<div class="section" id="The-Directory-Stack">
+<div class="header">
<p>
Next: <a href="#Controlling-the-Prompt" accesskey="n" rel="next">Controlling the Prompt</a>, Previous: <a href="#Arrays" accesskey="p" rel="prev">Arrays</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="The-Directory-Stack-1"></span><h3 class="section">6.8 The Directory Stack</h3>
<span id="index-directory-stack"></span>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Directory-Stack-Builtins" accesskey="1">Directory Stack Builtins</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Bash builtin commands to manipulate
- the directory stack.
-</td></tr>
-</table>
<p>The directory stack is a list of recently-visited directories. The
<code>pushd</code> builtin adds directories to the stack as it changes
@@ -8637,17 +8777,20 @@ of the directory stack.
<p>The contents of the directory stack are also visible
as the value of the <code>DIRSTACK</code> shell variable.
</p>
+<ul class="section-toc">
+<li><a href="#Directory-Stack-Builtins" accesskey="1">Directory Stack Builtins</a></li>
+</ul>
<hr>
-<span id="Directory-Stack-Builtins"></span><div class="header">
+<div class="subsection" id="Directory-Stack-Builtins">
+<div class="header">
<p>
Up: <a href="#The-Directory-Stack" accesskey="u" rel="up">The Directory Stack</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Directory-Stack-Builtins-1"></span><h4 class="subsection">6.8.1 Directory Stack Builtins</h4>
<dl compact="compact">
-<dt><code>dirs</code></dt>
-<dd><span id="index-dirs"></span>
-<div class="example">
+<dt id='index-dirs'><span><code>dirs</code><a href='#index-dirs' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">dirs [-clpv] [+<var>N</var> | -<var>N</var>]
</pre></div>
@@ -8657,27 +8800,27 @@ are added to the list with the <code>pushd</code> command; the
The current directory is always the first directory in the stack.
</p>
<dl compact="compact">
-<dt><code>-c</code></dt>
+<dt><span><code>-c</code></span></dt>
<dd><p>Clears the directory stack by deleting all of the elements.
</p></dd>
-<dt><code>-l</code></dt>
+<dt><span><code>-l</code></span></dt>
<dd><p>Produces a listing using full pathnames;
the default listing format uses a tilde to denote the home directory.
</p></dd>
-<dt><code>-p</code></dt>
+<dt><span><code>-p</code></span></dt>
<dd><p>Causes <code>dirs</code> to print the directory stack with one entry per
line.
</p></dd>
-<dt><code>-v</code></dt>
+<dt><span><code>-v</code></span></dt>
<dd><p>Causes <code>dirs</code> to print the directory stack with one entry per
line, prefixing each entry with its index in the stack.
</p></dd>
-<dt><code>+<var>N</var></code></dt>
+<dt><span><code>+<var>N</var></code></span></dt>
<dd><p>Displays the <var>N</var>th directory (counting from the left of the
list printed by <code>dirs</code> when invoked without options), starting
with zero.
</p></dd>
-<dt><code>-<var>N</var></code></dt>
+<dt><span><code>-<var>N</var></code></span></dt>
<dd><p>Displays the <var>N</var>th directory (counting from the right of the
list printed by <code>dirs</code> when invoked without options), starting
with zero.
@@ -8685,80 +8828,116 @@ with zero.
</dl>
</dd>
-<dt><code>popd</code></dt>
-<dd><span id="index-popd"></span>
-<div class="example">
+<dt id='index-popd'><span><code>popd</code><a href='#index-popd' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">popd [-n] [+<var>N</var> | -<var>N</var>]
</pre></div>
-<p>When no arguments are given, <code>popd</code>
-removes the top directory from the stack and
-performs a <code>cd</code> to the new top directory.
+<p>Removes elements from the directory stack.
The elements are numbered from 0 starting at the first directory
-listed with <code>dirs</code>; that is, <code>popd</code> is equivalent to <code>popd +0</code>.
+listed by <code>dirs</code>;
+that is, <code>popd</code> is equivalent to <code>popd +0</code>.
+</p>
+<p>When no arguments are given, <code>popd</code>
+removes the top directory from the stack and changes to
+the new top directory.
+</p>
+<p>Arguments, if supplied, have the following meanings:
</p>
<dl compact="compact">
-<dt><code>-n</code></dt>
+<dt><span><code>-n</code></span></dt>
<dd><p>Suppresses the normal change of directory when removing directories
from the stack, so that only the stack is manipulated.
</p></dd>
-<dt><code>+<var>N</var></code></dt>
+<dt><span><code>+<var>N</var></code></span></dt>
<dd><p>Removes the <var>N</var>th directory (counting from the left of the
-list printed by <code>dirs</code>), starting with zero.
+list printed by <code>dirs</code>), starting with zero, from the stack.
</p></dd>
-<dt><code>-<var>N</var></code></dt>
+<dt><span><code>-<var>N</var></code></span></dt>
<dd><p>Removes the <var>N</var>th directory (counting from the right of the
-list printed by <code>dirs</code>), starting with zero.
+list printed by <code>dirs</code>), starting with zero, from the stack.
</p></dd>
</dl>
+<p>If the top element of the directory stack is modified, and
+the <samp>-n</samp> option was not supplied, <code>popd</code> uses the <code>cd</code>
+builtin to change to the directory at the top of the stack.
+If the <code>cd</code> fails, <code>popd</code> returns a non-zero value.
+</p>
+<p>Otherwise, <code>popd</code> returns an unsuccessful status if
+an invalid option is encountered, the directory stack
+is empty, or a non-existent directory stack entry is specified.
+</p>
+<p>If the <code>popd</code> command is successful,
+Bash runs <code>dirs</code> to show the final contents of the directory stack,
+and the return status is 0.
+</p>
<span id="index-pushd"></span>
</dd>
-<dt><code>pushd</code></dt>
+<dt><span><code>pushd</code></span></dt>
<dd><div class="example">
<pre class="example">pushd [-n] [<var>+N</var> | <var>-N</var> | <var>dir</var>]
</pre></div>
-<p>Save the current directory on the top of the directory stack
-and then <code>cd</code> to <var>dir</var>.
-With no arguments, <code>pushd</code> exchanges the top two directories
-and makes the new top the current directory.
+<p>Adds a directory to the top of the directory stack, or rotates
+the stack, making the new top of the stack the current working
+directory.
+With no arguments, <code>pushd</code> exchanges the top two elements
+of the directory stack.
+</p>
+<p>Arguments, if supplied, have the following meanings:
</p>
<dl compact="compact">
-<dt><code>-n</code></dt>
+<dt><span><code>-n</code></span></dt>
<dd><p>Suppresses the normal change of directory when rotating or
adding directories to the stack, so that only the stack is manipulated.
</p></dd>
-<dt><code>+<var>N</var></code></dt>
+<dt><span><code>+<var>N</var></code></span></dt>
<dd><p>Brings the <var>N</var>th directory (counting from the left of the
list printed by <code>dirs</code>, starting with zero) to the top of
the list by rotating the stack.
</p></dd>
-<dt><code>-<var>N</var></code></dt>
+<dt><span><code>-<var>N</var></code></span></dt>
<dd><p>Brings the <var>N</var>th directory (counting from the right of the
list printed by <code>dirs</code>, starting with zero) to the top of
the list by rotating the stack.
</p></dd>
-<dt><code><var>dir</var></code></dt>
-<dd><p>Makes <var>dir</var> be the top of the stack, making
-it the new current directory as if it had been supplied as an argument
-to the <code>cd</code> builtin.
+<dt><span><code><var>dir</var></code></span></dt>
+<dd><p>Makes <var>dir</var> be the top of the stack.
</p></dd>
</dl>
+
+<p>After the stack has been modified, if the <samp>-n</samp> option was not
+supplied, <code>pushd</code> uses the <code>cd</code> builtin to change to the
+directory at the top of the stack.
+If the <code>cd</code> fails, <code>pushd</code> returns a non-zero value.
+</p>
+<p>Otherwise, if no arguments are supplied, <code>pushd</code> returns 0 unless the
+directory stack is empty.
+When rotating the directory stack, <code>pushd</code> returns 0 unless
+the directory stack is empty or a non-existent directory stack element
+is specified.
+</p>
+<p>If the <code>pushd</code> command is successful,
+Bash runs <code>dirs</code> to show the final contents of the directory stack.
+</p>
</dd>
</dl>
<hr>
-<span id="Controlling-the-Prompt"></span><div class="header">
+</div>
+</div>
+<div class="section" id="Controlling-the-Prompt">
+<div class="header">
<p>
Next: <a href="#The-Restricted-Shell" accesskey="n" rel="next">The Restricted Shell</a>, Previous: <a href="#The-Directory-Stack" accesskey="p" rel="prev">The Directory Stack</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Controlling-the-Prompt-1"></span><h3 class="section">6.9 Controlling the Prompt</h3>
<span id="index-prompting"></span>
-<p>Bash examines the value of the array variable <code>PROMPT_COMMANDS</code> just before
+<p>Bash examines the value of the array variable <code>PROMPT_COMMAND</code> just before
printing each primary prompt.
-If any elements in <code>PROMPT_COMMANDS</code> are set and non-null, Bash
+If any elements in <code>PROMPT_COMMAND</code> are set and non-null, Bash
executes each value, in numeric order,
just as if it had been typed on the command line.
</p>
@@ -8767,90 +8946,91 @@ can appear in the prompt variables <code>PS0</code>, <code>PS1</code>, <code>PS2
<code>PS4</code>:
</p>
<dl compact="compact">
-<dt><code>\a</code></dt>
+<dt><span><code>\a</code></span></dt>
<dd><p>A bell character.
</p></dd>
-<dt><code>\d</code></dt>
+<dt><span><code>\d</code></span></dt>
<dd><p>The date, in &quot;Weekday Month Date&quot; format (e.g., &quot;Tue May 26&quot;).
</p></dd>
-<dt><code>\D{<var>format</var>}</code></dt>
+<dt><span><code>\D{<var>format</var>}</code></span></dt>
<dd><p>The <var>format</var> is passed to <code>strftime</code>(3) and the result is inserted
into the prompt string; an empty <var>format</var> results in a locale-specific
time representation. The braces are required.
</p></dd>
-<dt><code>\e</code></dt>
+<dt><span><code>\e</code></span></dt>
<dd><p>An escape character.
</p></dd>
-<dt><code>\h</code></dt>
+<dt><span><code>\h</code></span></dt>
<dd><p>The hostname, up to the first &lsquo;.&rsquo;.
</p></dd>
-<dt><code>\H</code></dt>
+<dt><span><code>\H</code></span></dt>
<dd><p>The hostname.
</p></dd>
-<dt><code>\j</code></dt>
+<dt><span><code>\j</code></span></dt>
<dd><p>The number of jobs currently managed by the shell.
</p></dd>
-<dt><code>\l</code></dt>
+<dt><span><code>\l</code></span></dt>
<dd><p>The basename of the shell&rsquo;s terminal device name.
</p></dd>
-<dt><code>\n</code></dt>
+<dt><span><code>\n</code></span></dt>
<dd><p>A newline.
</p></dd>
-<dt><code>\r</code></dt>
+<dt><span><code>\r</code></span></dt>
<dd><p>A carriage return.
</p></dd>
-<dt><code>\s</code></dt>
+<dt><span><code>\s</code></span></dt>
<dd><p>The name of the shell, the basename of <code>$0</code> (the portion
following the final slash).
</p></dd>
-<dt><code>\t</code></dt>
+<dt><span><code>\t</code></span></dt>
<dd><p>The time, in 24-hour HH:MM:SS format.
</p></dd>
-<dt><code>\T</code></dt>
+<dt><span><code>\T</code></span></dt>
<dd><p>The time, in 12-hour HH:MM:SS format.
</p></dd>
-<dt><code>\@</code></dt>
+<dt><span><code>\@</code></span></dt>
<dd><p>The time, in 12-hour am/pm format.
</p></dd>
-<dt><code>\A</code></dt>
+<dt><span><code>\A</code></span></dt>
<dd><p>The time, in 24-hour HH:MM format.
</p></dd>
-<dt><code>\u</code></dt>
+<dt><span><code>\u</code></span></dt>
<dd><p>The username of the current user.
</p></dd>
-<dt><code>\v</code></dt>
+<dt><span><code>\v</code></span></dt>
<dd><p>The version of Bash (e.g., 2.00)
</p></dd>
-<dt><code>\V</code></dt>
+<dt><span><code>\V</code></span></dt>
<dd><p>The release of Bash, version + patchlevel (e.g., 2.00.0)
</p></dd>
-<dt><code>\w</code></dt>
-<dd><p>The current working directory, with <code>$HOME</code> abbreviated with a tilde
+<dt><span><code>\w</code></span></dt>
+<dd><p>The value of the <code>PWD</code> shell variable (<code>$PWD</code>),
+with <code>$HOME</code> abbreviated with a tilde
(uses the <code>$PROMPT_DIRTRIM</code> variable).
</p></dd>
-<dt><code>\W</code></dt>
+<dt><span><code>\W</code></span></dt>
<dd><p>The basename of <code>$PWD</code>, with <code>$HOME</code> abbreviated with a tilde.
</p></dd>
-<dt><code>\!</code></dt>
+<dt><span><code>\!</code></span></dt>
<dd><p>The history number of this command.
</p></dd>
-<dt><code>\#</code></dt>
+<dt><span><code>\#</code></span></dt>
<dd><p>The command number of this command.
</p></dd>
-<dt><code>\$</code></dt>
+<dt><span><code>\$</code></span></dt>
<dd><p>If the effective uid is 0, <code>#</code>, otherwise <code>$</code>.
</p></dd>
-<dt><code>\<var>nnn</var></code></dt>
+<dt><span><code>\<var>nnn</var></code></span></dt>
<dd><p>The character whose ASCII code is the octal value <var>nnn</var>.
</p></dd>
-<dt><code>\\</code></dt>
+<dt><span><code>\\</code></span></dt>
<dd><p>A backslash.
</p></dd>
-<dt><code>\[</code></dt>
+<dt><span><code>\[</code></span></dt>
<dd><p>Begin a sequence of non-printing characters. This could be used to
embed a terminal control sequence into the prompt.
</p></dd>
-<dt><code>\]</code></dt>
+<dt><span><code>\]</code></span></dt>
<dd><p>End a sequence of non-printing characters.
</p></dd>
</dl>
@@ -8871,7 +9051,9 @@ appear within command substitution or contain characters special to
word expansion.
</p>
<hr>
-<span id="The-Restricted-Shell"></span><div class="header">
+</div>
+<div class="section" id="The-Restricted-Shell">
+<div class="header">
<p>
Next: <a href="#Bash-POSIX-Mode" accesskey="n" rel="next">Bash POSIX Mode</a>, Previous: <a href="#Controlling-the-Prompt" accesskey="p" rel="prev">Controlling the Prompt</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -8909,7 +9091,7 @@ option to the <code>hash</code> builtin command.
<samp>-f</samp> and <samp>-d</samp> options to the <code>enable</code> builtin.
</li><li> Using the <code>enable</code> builtin command to enable disabled shell builtins.
</li><li> Specifying the <samp>-p</samp> option to the <code>command</code> builtin.
-</li><li> Turning off restricted mode with &lsquo;<samp>set +r</samp>&rsquo; or &lsquo;<samp>set +o restricted</samp>&rsquo;.
+</li><li> Turning off restricted mode with &lsquo;<samp>set +r</samp>&rsquo; or &lsquo;<samp>shopt -u restricted_shell</samp>&rsquo;.
</li></ul>
<p>These restrictions are enforced after any startup files are read.
@@ -8921,8 +9103,8 @@ the shell spawned to execute the script.
<p>The restricted shell mode is only one component of a useful restricted
environment. It should be accompanied by setting <code>PATH</code> to a value
that allows execution of only a few verified commands (commands that
-allow shell escapes are particularly vulnerable), leaving the user
-in a non-writable directory other than his home directory after login,
+allow shell escapes are particularly vulnerable), changing the current
+directory to a non-writable directory other than <code>$HOME</code> after login,
not allowing the restricted shell to execute shell scripts, and cleaning
the environment of variables that cause some commands to modify their
behavior (e.g., <code>VISUAL</code> or <code>PAGER</code>).
@@ -8932,7 +9114,9 @@ such as <code>jails</code>, <code>zones</code>, or <code>containers</code>.
</p>
<hr>
-<span id="Bash-POSIX-Mode"></span><div class="header">
+</div>
+<div class="section" id="Bash-POSIX-Mode">
+<div class="header">
<p>
Next: <a href="#Shell-Compatibility-Mode" accesskey="n" rel="next">Shell Compatibility Mode</a>, Previous: <a href="#The-Restricted-Shell" accesskey="p" rel="prev">The Restricted Shell</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -8972,6 +9156,12 @@ example, <code>SIGTSTP</code>.
</li><li> Reserved words appearing in a context where reserved words are recognized
do not undergo alias expansion.
+</li><li> Alias expansion is performed when initially parsing a command substitution.
+The default mode generally defers it, when enabled, until the command
+substitution is executed. This means that command substitution will not
+expand aliases that are defined after the command substitution is initially
+parsed (e.g., as part of a function definition).
+
</li><li> The <small>POSIX</small> <code>PS1</code> and <code>PS2</code> expansions of &lsquo;<samp>!</samp>&rsquo; to
the history number and &lsquo;<samp>!!</samp>&rsquo; to &lsquo;<samp>!</samp>&rsquo; are enabled,
and parameter expansion is performed on the values of <code>PS1</code> and
@@ -9042,7 +9232,10 @@ a value to a readonly variable.
</li><li> A non-interactive shell exits with an error status if a variable
assignment error occurs in an assignment statement preceding a special
-builtin, but not with any other simple command.
+builtin, but not with any other simple command. For any other simple
+command, the shell aborts execution of that command, and execution continues
+at the top level (&quot;the shell shall not perform any further processing of the
+command in which the error occurred&quot;).
</li><li> A non-interactive shell exits with an error status if the iteration
variable in a <code>for</code> statement or the selection variable in a
@@ -9063,7 +9256,7 @@ the <code>eval</code> builtin.
</li><li> While variable indirection is available, it may not be applied to the
&lsquo;<samp>#</samp>&rsquo; and &lsquo;<samp>?</samp>&rsquo; special parameters.
-</li><li> When expanding the &lsquo;<samp>*</samp>&rsquo; special parameter in a pattern context where the
+</li><li> Expanding the &lsquo;<samp>*</samp>&rsquo; special parameter in a pattern context where the
expansion is double-quoted does not treat the <code>$*</code> as if it were
double-quoted.
@@ -9127,15 +9320,15 @@ shell function names and definitions.
variable values without quotes, unless they contain shell metacharacters,
even if the result contains nonprinting characters.
-</li><li> When the <code>cd</code> builtin is invoked in <var>logical</var> mode, and the pathname
+</li><li> When the <code>cd</code> builtin is invoked in logical mode, and the pathname
constructed from <code>$PWD</code> and the directory name supplied as an argument
does not refer to an existing directory, <code>cd</code> will fail instead of
-falling back to <var>physical</var> mode.
+falling back to physical mode.
</li><li> When the <code>cd</code> builtin cannot change a directory because the
length of the pathname
constructed from <code>$PWD</code> and the directory name supplied as an argument
-exceeds <var>PATH_MAX</var> when all symbolic links are expanded, <code>cd</code> will
+exceeds <code>PATH_MAX</code> when all symbolic links are expanded, <code>cd</code> will
fail instead of attempting to use only the supplied directory name.
</li><li> The <code>pwd</code> builtin verifies that the value it prints is the same as the
@@ -9171,6 +9364,11 @@ 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> 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.
+
</li><li> Bash removes an exited background process&rsquo;s status from the list of such
statuses after the <code>wait</code> builtin is used to obtain it.
@@ -9195,7 +9393,9 @@ the <samp>--enable-strict-posix-default</samp> to <code>configure</code> when bu
(see <a href="#Optional-Features">Optional Features</a>).
</p>
<hr>
-<span id="Shell-Compatibility-Mode"></span><div class="header">
+</div>
+<div class="section" id="Shell-Compatibility-Mode">
+<div class="header">
<p>
Previous: <a href="#Bash-POSIX-Mode" accesskey="p" rel="prev">Bash POSIX Mode</a>, Up: <a href="#Bash-Features" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -9203,8 +9403,8 @@ Previous: <a href="#Bash-POSIX-Mode" accesskey="p" rel="prev">Bash POSIX Mode</a
<span id="index-Compatibility-Level"></span>
<span id="index-Compatibility-Mode"></span>
-<p>Bash-4.0 introduced the concept of a &lsquo;shell compatibility level&rsquo;, specified
-as a set of options to the shopt builtin
+<p>Bash-4.0 introduced the concept of a <em>shell compatibility level</em>,
+specified as a set of options to the shopt builtin
(<code>compat31</code>,
<code>compat32</code>,
<code>compat40</code>,
@@ -9220,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.
@@ -9260,14 +9460,14 @@ For bash-4.3 and later versions, the <code>BASH_COMPAT</code> variable is prefer
and it is required for bash-5.1 and later versions.
</p>
<dl compact="compact">
-<dt><code>compat31</code></dt>
+<dt><span><code>compat31</code></span></dt>
<dd><ul>
<li> quoting the rhs of the <code>[[</code> command&rsquo;s regexp matching operator (=~)
has no special effect
</li></ul>
</dd>
-<dt><code>compat32</code></dt>
+<dt><span><code>compat32</code></span></dt>
<dd><ul>
<li> interrupting a command list such as &quot;a ; b ; c&quot; causes the execution
of the next command in the list (in bash-4.0 and later versions,
@@ -9277,7 +9477,7 @@ entire list)
</li></ul>
</dd>
-<dt><code>compat40</code></dt>
+<dt><span><code>compat40</code></span></dt>
<dd><ul>
<li> the &lsquo;<samp>&lt;</samp>&rsquo; and &lsquo;<samp>&gt;</samp>&rsquo; operators to the <code>[[</code> command do not
consider the current locale when comparing strings; they use ASCII
@@ -9288,7 +9488,7 @@ strcoll(3).
</li></ul>
</dd>
-<dt><code>compat41</code></dt>
+<dt><span><code>compat41</code></span></dt>
<dd><ul>
<li> in posix mode, <code>time</code> may be followed by options and still be
recognized as a reserved word (this is <small>POSIX</small> interpretation 267)
@@ -9300,7 +9500,7 @@ the single quotes are considered quoted
</li></ul>
</dd>
-<dt><code>compat42</code></dt>
+<dt><span><code>compat42</code></span></dt>
<dd><ul>
<li> the replacement string in double-quoted pattern substitution does not
undergo quote removal, as it does in versions after bash-4.2
@@ -9313,11 +9513,11 @@ are not special within double-quoted word expansions
</li></ul>
</dd>
-<dt><code>compat43</code></dt>
+<dt><span><code>compat43</code></span></dt>
<dd><ul>
<li> the shell does not print a warning message if an attempt is made to
use a quoted compound assignment as an argument to declare
-(declare -a foo=&rsquo;(1 2)&rsquo;). Later versions warn that this usage is
+(e.g., declare -a foo=&rsquo;(1 2)&rsquo;). Later versions warn that this usage is
deprecated
</li><li> word expansion errors are considered non-fatal errors that cause the
current command to fail, even in posix mode
@@ -9330,7 +9530,7 @@ the loop state to prevent this
</li></ul>
</dd>
-<dt><code>compat44</code></dt>
+<dt><span><code>compat44</code></span></dt>
<dd><ul>
<li> the shell sets up the values used by <code>BASH_ARGV</code> and <code>BASH_ARGC</code>
so they can expand to the shell&rsquo;s positional parameters even if extended
@@ -9345,7 +9545,7 @@ mode
</li></ul>
</dd>
-<dt><code>compat50 (set using BASH_COMPAT)</code></dt>
+<dt><span><code>compat50 (set using BASH_COMPAT)</code></span></dt>
<dd><ul>
<li> Bash-5.1 changed the way <code>$RANDOM</code> is generated to introduce slightly
more randomness. If the shell compatibility level is set to 50 or
@@ -9357,32 +9557,66 @@ printed an informational message to that effect, even when producing
output that can be reused as input. Bash-5.1 suppresses that message
when the <samp>-l</samp> option is supplied.
</li></ul>
+
+</dd>
+<dt><span><code>compat51 (set using BASH_COMPAT)</code></span></dt>
+<dd><ul>
+<li> The <code>unset</code> builtin will unset the array <code>a</code> given an argument like
+&lsquo;<samp>a[@]</samp>&rsquo;.
+Bash-5.2 will unset an element with key &lsquo;<samp>@</samp>&rsquo; (associative arrays)
+or remove all the elements without unsetting the array (indexed arrays)
+</li><li> arithmetic commands ( ((...)) ) and the expressions in an arithmetic for
+statement can be expanded more than once
+</li><li> expressions used as arguments to arithmetic operators in the <code>[[</code>
+conditional command can be expanded more than once
+</li><li> the expressions in substring parameter brace expansion can be
+expanded more than once
+</li><li> the expressions in the $(( ... )) word expansion can be expanded
+more than once
+</li><li> arithmetic expressions used as indexed array subscripts can be
+expanded more than once
+</li><li> <code>test -v</code>, when given an argument of &lsquo;<samp>A[@]</samp>&rsquo;, where <var>A</var> is
+an existing associative array, will return true if the array has any set
+elements.
+Bash-5.2 will look for and report on a key named &lsquo;<samp>@</samp>&rsquo;
+</li><li> the ${<var>parameter</var>[:]=<var>value</var>} word expansion will return
+<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>
<hr>
-<span id="Job-Control"></span><div class="header">
+</div>
+</div>
+<div class="chapter" id="Job-Control">
+<div class="header">
<p>
-Next: <a href="#Command-Line-Editing" accesskey="n" rel="next">Command Line Editing</a>, Previous: <a href="#Bash-Features" accesskey="p" rel="prev">Bash Features</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Command-Line-Editing" accesskey="n" rel="next">Command Line Editing</a>, Previous: <a href="#Bash-Features" accesskey="p" rel="prev">Bash Features</a>, Up: <a href="#Top" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Job-Control-1"></span><h2 class="chapter">7 Job Control</h2>
<p>This chapter discusses what job control is, how it works, and how
Bash allows you to access its facilities.
</p>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Job-Control-Basics" accesskey="1">Job Control Basics</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How job control works.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Job-Control-Builtins" accesskey="2">Job Control Builtins</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Bash builtin commands used to interact
- with job control.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Job-Control-Variables" accesskey="3">Job Control Variables</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Variables Bash uses to customize job
- control.
-</td></tr>
-</table>
+<ul class="section-toc">
+<li><a href="#Job-Control-Basics" accesskey="1">Job Control Basics</a></li>
+<li><a href="#Job-Control-Builtins" accesskey="2">Job Control Builtins</a></li>
+<li><a href="#Job-Control-Variables" accesskey="3">Job Control Variables</a></li>
+</ul>
<hr>
-<span id="Job-Control-Basics"></span><div class="header">
+<div class="section" id="Job-Control-Basics">
+<div class="header">
<p>
Next: <a href="#Job-Control-Builtins" accesskey="n" rel="next">Job Control Builtins</a>, Up: <a href="#Job-Control" accesskey="u" rel="up">Job Control</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -9431,9 +9665,9 @@ which, unless caught, suspends the process.
</p>
<p>If the operating system on which Bash is running supports
job control, Bash contains facilities to use it. Typing the
-<var>suspend</var> character (typically &lsquo;<samp>^Z</samp>&rsquo;, Control-Z) while a
+<em>suspend</em> character (typically &lsquo;<samp>^Z</samp>&rsquo;, Control-Z) while a
process is running causes that process to be stopped and returns
-control to Bash. Typing the <var>delayed suspend</var> character
+control to Bash. Typing the <em>delayed suspend</em> character
(typically &lsquo;<samp>^Y</samp>&rsquo;, Control-Y) causes the process to be stopped
when it attempts to read input from the terminal, and control to
be returned to Bash. The user then manipulates the state of
@@ -9444,7 +9678,7 @@ takes effect immediately, and has the additional side effect of
causing pending output and typeahead to be discarded.
</p>
<p>There are a number of ways to refer to a job in the shell. The
-character &lsquo;<samp>%</samp>&rsquo; introduces a job specification (<var>jobspec</var>).
+character &lsquo;<samp>%</samp>&rsquo; introduces a job specification (<em>jobspec</em>).
</p>
<p>Job number <code>n</code> may be referred to as &lsquo;<samp>%n</samp>&rsquo;.
The symbols &lsquo;<samp>%%</samp>&rsquo; and &lsquo;<samp>%+</samp>&rsquo; refer to the shell&rsquo;s notion of the
@@ -9496,16 +9730,17 @@ job changes state. The <samp>-f</samp> option causes <code>wait</code> to wait
until the job or process terminates before returning.
</p>
<hr>
-<span id="Job-Control-Builtins"></span><div class="header">
+</div>
+<div class="section" id="Job-Control-Builtins">
+<div class="header">
<p>
Next: <a href="#Job-Control-Variables" accesskey="n" rel="next">Job Control Variables</a>, Previous: <a href="#Job-Control-Basics" accesskey="p" rel="prev">Job Control Basics</a>, Up: <a href="#Job-Control" accesskey="u" rel="up">Job Control</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Job-Control-Builtins-1"></span><h3 class="section">7.2 Job Control Builtins</h3>
<dl compact="compact">
-<dt><code>bg</code></dt>
-<dd><span id="index-bg"></span>
-<div class="example">
+<dt id='index-bg'><span><code>bg</code><a href='#index-bg' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">bg [<var>jobspec</var> &hellip;]
</pre></div>
@@ -9518,9 +9753,8 @@ enabled, or, when run with job control enabled, any
that was started without job control.
</p>
</dd>
-<dt><code>fg</code></dt>
-<dd><span id="index-fg"></span>
-<div class="example">
+<dt id='index-fg'><span><code>fg</code><a href='#index-fg' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">fg [<var>jobspec</var>]
</pre></div>
@@ -9532,9 +9766,8 @@ job control enabled, <var>jobspec</var> does not specify a valid job or
<var>jobspec</var> specifies a job that was started without job control.
</p>
</dd>
-<dt><code>jobs</code></dt>
-<dd><span id="index-jobs"></span>
-<div class="example">
+<dt id='index-jobs'><span><code>jobs</code><a href='#index-jobs' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">jobs [-lnprs] [<var>jobspec</var>]
jobs -x <var>command</var> [<var>arguments</var>]
</pre></div>
@@ -9543,24 +9776,24 @@ jobs -x <var>command</var> [<var>arguments</var>]
following meanings:
</p>
<dl compact="compact">
-<dt><code>-l</code></dt>
+<dt><span><code>-l</code></span></dt>
<dd><p>List process <small>ID</small>s in addition to the normal information.
</p>
</dd>
-<dt><code>-n</code></dt>
+<dt><span><code>-n</code></span></dt>
<dd><p>Display information only about jobs that have changed status since
the user was last notified of their status.
</p>
</dd>
-<dt><code>-p</code></dt>
+<dt><span><code>-p</code></span></dt>
<dd><p>List only the process <small>ID</small> of the job&rsquo;s process group leader.
</p>
</dd>
-<dt><code>-r</code></dt>
+<dt><span><code>-r</code></span></dt>
<dd><p>Display only running jobs.
</p>
</dd>
-<dt><code>-s</code></dt>
+<dt><span><code>-s</code></span></dt>
<dd><p>Display only stopped jobs.
</p></dd>
</dl>
@@ -9576,9 +9809,8 @@ corresponding process group <small>ID</small>, and executes <var>command</var>,
passing it <var>argument</var>s, returning its exit status.
</p>
</dd>
-<dt><code>kill</code></dt>
-<dd><span id="index-kill"></span>
-<div class="example">
+<dt id='index-kill'><span><code>kill</code><a href='#index-kill' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">kill [-s <var>sigspec</var>] [-n <var>signum</var>] [-<var>sigspec</var>] <var>jobspec</var> or <var>pid</var>
kill -l|-L [<var>exit_status</var>]
</pre></div>
@@ -9600,9 +9832,8 @@ The return status is zero if at least one signal was successfully sent,
or non-zero if an error occurs or an invalid option is encountered.
</p>
</dd>
-<dt><code>wait</code></dt>
-<dd><span id="index-wait"></span>
-<div class="example">
+<dt id='index-wait'><span><code>wait</code><a href='#index-wait' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">wait [-fn] [-p <var>varname</var>] [<var>jobspec</var> or <var>pid</var> &hellip;]
</pre></div>
@@ -9616,7 +9847,7 @@ the last-executed process substitution, if its process id is the same as
<var>$!</var>,
and the return status is zero.
If the <samp>-n</samp> option is supplied, <code>wait</code> waits for a single job
-from the list of <var>pids</var> or <var>jobspecs</var> or, if no arguments are
+from the list of <var>pid</var>s or <var>jobspec</var>s or, if no arguments are
supplied, any job,
to complete and returns its exit status.
If none of the supplied arguments is a child of the shell, or if no arguments
@@ -9629,15 +9860,18 @@ 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><code>disown</code></dt>
-<dd><span id="index-disown"></span>
-<div class="example">
+<dt id='index-disown'><span><code>disown</code><a href='#index-disown' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">disown [-ar] [-h] [<var>jobspec</var> &hellip; | <var>pid</var> &hellip; ]
</pre></div>
@@ -9653,17 +9887,24 @@ mark all jobs; the <samp>-r</samp> option without a <var>jobspec</var>
argument restricts operation to running jobs.
</p>
</dd>
-<dt><code>suspend</code></dt>
-<dd><span id="index-suspend"></span>
-<div class="example">
+<dt id='index-suspend'><span><code>suspend</code><a href='#index-suspend' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">suspend [-f]
</pre></div>
<p>Suspend the execution of this shell until it receives a
<code>SIGCONT</code> signal.
-A login shell cannot be suspended; the <samp>-f</samp>
+A login shell,
+or a shell without job control enabled,
+cannot be suspended; the <samp>-f</samp>
option can be used to override this and force the suspension.
-</p></dd>
+The return status is 0 unless the shell is a login shell
+or job control is not enabled
+and
+<samp>-f</samp>
+is not supplied.
+</p>
+</dd>
</dl>
<p>When job control is not active, the <code>kill</code> and <code>wait</code>
@@ -9671,16 +9912,16 @@ builtins do not accept <var>jobspec</var> arguments. They must be
supplied process <small>ID</small>s.
</p>
<hr>
-<span id="Job-Control-Variables"></span><div class="header">
+</div>
+<div class="section" id="Job-Control-Variables">
+<div class="header">
<p>
Previous: <a href="#Job-Control-Builtins" accesskey="p" rel="prev">Job Control Builtins</a>, Up: <a href="#Job-Control" accesskey="u" rel="up">Job Control</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Job-Control-Variables-1"></span><h3 class="section">7.3 Job Control Variables</h3>
<dl compact="compact">
-<dt><code>auto_resume</code>
-<span id="index-auto_005fresume"></span>
-</dt>
+<dt id='index-auto_005fresume'><span><code>auto_resume</code><a href='#index-auto_005fresume' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>This variable controls how the shell interacts with the user and
job control. If this variable exists then single word simple
commands without redirections are treated as candidates for resumption
@@ -9707,9 +9948,12 @@ analogous to the &lsquo;<samp>%</samp>&rsquo; job <small>ID</small>.
<hr>
-<span id="Command-Line-Editing"></span><div class="header">
+</div>
+</div>
+<div class="chapter" id="Command-Line-Editing">
+<div class="header">
<p>
-Next: <a href="#Using-History-Interactively" accesskey="n" rel="next">Using History Interactively</a>, Previous: <a href="#Job-Control" accesskey="p" rel="prev">Job Control</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Using-History-Interactively" accesskey="n" rel="next">Using History Interactively</a>, Previous: <a href="#Job-Control" accesskey="p" rel="prev">Job Control</a>, Up: <a href="#Top" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Command-Line-Editing-1"></span><h2 class="chapter">8 Command Line Editing</h2>
@@ -9720,7 +9964,7 @@ used by several different programs, including Bash.
Command line editing is enabled by default when using an interactive shell,
unless the <samp>--noediting</samp> option is supplied at shell invocation.
Line editing is also used when using the <samp>-e</samp> option to the
-<code>read</code> builtin command (see <a href="#Bash-Builtins">Bash Builtins</a>).
+<code>read</code> builtin command (see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
By default, the line editing commands are similar to those of Emacs.
A vi-style line editing interface is also available.
Line editing can be enabled at any time using the <samp>-o emacs</samp> or
@@ -9728,32 +9972,20 @@ Line editing can be enabled at any time using the <samp>-o emacs</samp> or
(see <a href="#The-Set-Builtin">The Set Builtin</a>), or disabled using the <samp>+o emacs</samp> or
<samp>+o vi</samp> options to <code>set</code>.
</p>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Introduction-and-Notation" accesskey="1">Introduction and Notation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Notation used in this text.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Readline-Interaction" accesskey="2">Readline Interaction</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The minimum set of commands for editing a line.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Readline-Init-File" accesskey="3">Readline Init File</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Customizing Readline from a user&rsquo;s view.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Bindable-Readline-Commands" accesskey="4">Bindable Readline Commands</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">A description of most of the Readline commands
- available for binding
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Readline-vi-Mode" accesskey="5">Readline vi Mode</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">A short description of how to make Readline
- behave like the vi editor.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Programmable-Completion" accesskey="6">Programmable Completion</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to specify the possible completions for
- a specific command.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Programmable-Completion-Builtins" accesskey="7">Programmable Completion Builtins</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Builtin commands to specify how to
- complete arguments for a particular command.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#A-Programmable-Completion-Example" accesskey="8">A Programmable Completion Example</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">An example shell function for
- generating possible completions.
-</td></tr>
-</table>
+<ul class="section-toc">
+<li><a href="#Introduction-and-Notation" accesskey="1">Introduction to Line Editing</a></li>
+<li><a href="#Readline-Interaction" accesskey="2">Readline Interaction</a></li>
+<li><a href="#Readline-Init-File" accesskey="3">Readline Init File</a></li>
+<li><a href="#Bindable-Readline-Commands" accesskey="4">Bindable Readline Commands</a></li>
+<li><a href="#Readline-vi-Mode" accesskey="5">Readline vi Mode</a></li>
+<li><a href="#Programmable-Completion" accesskey="6">Programmable Completion</a></li>
+<li><a href="#Programmable-Completion-Builtins" accesskey="7">Programmable Completion Builtins</a></li>
+<li><a href="#A-Programmable-Completion-Example" accesskey="8">A Programmable Completion Example</a></li>
+</ul>
<hr>
-<span id="Introduction-and-Notation"></span><div class="header">
+<div class="section" id="Introduction-and-Notation">
+<div class="header">
<p>
Next: <a href="#Readline-Interaction" accesskey="n" rel="next">Readline Interaction</a>, Up: <a href="#Command-Line-Editing" accesskey="u" rel="up">Command Line Editing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -9795,9 +10027,11 @@ The <tt class="key">RET</tt> key may be labeled <tt class="key">Return</tt> or <
some keyboards.
</p>
<hr>
-<span id="Readline-Interaction"></span><div class="header">
+</div>
+<div class="section" id="Readline-Interaction">
+<div class="header">
<p>
-Next: <a href="#Readline-Init-File" accesskey="n" rel="next">Readline Init File</a>, Previous: <a href="#Introduction-and-Notation" accesskey="p" rel="prev">Introduction and Notation</a>, Up: <a href="#Command-Line-Editing" accesskey="u" rel="up">Command Line Editing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Readline-Init-File" accesskey="n" rel="next">Readline Init File</a>, Previous: <a href="#Introduction-and-Notation" accesskey="p" rel="prev">Introduction to Line Editing</a>, Up: <a href="#Command-Line-Editing" accesskey="u" rel="up">Command Line Editing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Readline-Interaction-1"></span><h3 class="section">8.2 Readline Interaction</h3>
<span id="index-interaction_002c-readline"></span>
@@ -9813,21 +10047,17 @@ the line, you simply press <tt class="key">RET</tt>. You do not have to be at t
end of the line to press <tt class="key">RET</tt>; the entire line is accepted
regardless of the location of the cursor within the line.
</p>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Readline-Bare-Essentials" accesskey="1">Readline Bare Essentials</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The least you need to know about Readline.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Readline-Movement-Commands" accesskey="2">Readline Movement Commands</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Moving about the input line.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Readline-Killing-Commands" accesskey="3">Readline Killing Commands</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to delete text, and how to get it back!
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Readline-Arguments" accesskey="4">Readline Arguments</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Giving numeric arguments to commands.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Searching" accesskey="5">Searching</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Searching through previous lines.
-</td></tr>
-</table>
+<ul class="section-toc">
+<li><a href="#Readline-Bare-Essentials" accesskey="1">Readline Bare Essentials</a></li>
+<li><a href="#Readline-Movement-Commands" accesskey="2">Readline Movement Commands</a></li>
+<li><a href="#Readline-Killing-Commands" accesskey="3">Readline Killing Commands</a></li>
+<li><a href="#Readline-Arguments" accesskey="4">Readline Arguments</a></li>
+<li><a href="#Searching" accesskey="5">Searching for Commands in the History</a></li>
+</ul>
<hr>
-<span id="Readline-Bare-Essentials"></span><div class="header">
+<div class="subsection" id="Readline-Bare-Essentials">
+<div class="header">
<p>
Next: <a href="#Readline-Movement-Commands" accesskey="n" rel="next">Readline Movement Commands</a>, Up: <a href="#Readline-Interaction" accesskey="u" rel="up">Readline Interaction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -9855,34 +10085,36 @@ blank space created by the removal of the text. A list of the bare
essentials for editing the text of an input line follows.
</p>
<dl compact="compact">
-<dt><kbd>C-b</kbd></dt>
+<dt><span><kbd>C-b</kbd></span></dt>
<dd><p>Move back one character.
</p></dd>
-<dt><kbd>C-f</kbd></dt>
+<dt><span><kbd>C-f</kbd></span></dt>
<dd><p>Move forward one character.
</p></dd>
-<dt><tt class="key">DEL</tt> or <tt class="key">Backspace</tt></dt>
+<dt><span><tt class="key">DEL</tt> or <tt class="key">Backspace</tt></span></dt>
<dd><p>Delete the character to the left of the cursor.
</p></dd>
-<dt><kbd>C-d</kbd></dt>
+<dt><span><kbd>C-d</kbd></span></dt>
<dd><p>Delete the character underneath the cursor.
</p></dd>
-<dt>Printing&nbsp;characters<!-- /@w --></dt>
+<dt><span>Printing&nbsp;characters<!-- /@w --></span></dt>
<dd><p>Insert the character into the line at the cursor.
</p></dd>
-<dt><kbd>C-_</kbd> or <kbd>C-x C-u</kbd></dt>
+<dt><span><kbd>C-_</kbd> or <kbd>C-x C-u</kbd></span></dt>
<dd><p>Undo the last editing command. You can undo all the way back to an
empty line.
</p></dd>
</dl>
-<p>(Depending on your configuration, the <tt class="key">Backspace</tt> key be set to
+<p>(Depending on your configuration, the <tt class="key">Backspace</tt> key might be set to
delete the character to the left of the cursor and the <tt class="key">DEL</tt> key set
to delete the character underneath the cursor, like <kbd>C-d</kbd>, rather
than the character to the left of the cursor.)
</p>
<hr>
-<span id="Readline-Movement-Commands"></span><div class="header">
+</div>
+<div class="subsection" id="Readline-Movement-Commands">
+<div class="header">
<p>
Next: <a href="#Readline-Killing-Commands" accesskey="n" rel="next">Readline Killing Commands</a>, Previous: <a href="#Readline-Bare-Essentials" accesskey="p" rel="prev">Readline Bare Essentials</a>, Up: <a href="#Readline-Interaction" accesskey="u" rel="up">Readline Interaction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -9896,19 +10128,19 @@ other commands have been added in addition to <kbd>C-b</kbd>, <kbd>C-f</kbd>,
about the line.
</p>
<dl compact="compact">
-<dt><kbd>C-a</kbd></dt>
+<dt><span><kbd>C-a</kbd></span></dt>
<dd><p>Move to the start of the line.
</p></dd>
-<dt><kbd>C-e</kbd></dt>
+<dt><span><kbd>C-e</kbd></span></dt>
<dd><p>Move to the end of the line.
</p></dd>
-<dt><kbd>M-f</kbd></dt>
+<dt><span><kbd>M-f</kbd></span></dt>
<dd><p>Move forward a word, where a word is composed of letters and digits.
</p></dd>
-<dt><kbd>M-b</kbd></dt>
+<dt><span><kbd>M-b</kbd></span></dt>
<dd><p>Move backward a word.
</p></dd>
-<dt><kbd>C-l</kbd></dt>
+<dt><span><kbd>C-l</kbd></span></dt>
<dd><p>Clear the screen, reprinting the current line at the top.
</p></dd>
</dl>
@@ -9918,7 +10150,9 @@ forward a word. It is a loose convention that control keystrokes
operate on characters while meta keystrokes operate on words.
</p>
<hr>
-<span id="Readline-Killing-Commands"></span><div class="header">
+</div>
+<div class="subsection" id="Readline-Killing-Commands">
+<div class="header">
<p>
Next: <a href="#Readline-Arguments" accesskey="n" rel="next">Readline Arguments</a>, Previous: <a href="#Readline-Movement-Commands" accesskey="p" rel="prev">Readline Movement Commands</a>, Up: <a href="#Readline-Interaction" accesskey="u" rel="up">Readline Interaction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -9947,23 +10181,23 @@ another line.
<p>Here is the list of commands for killing text.
</p>
<dl compact="compact">
-<dt><kbd>C-k</kbd></dt>
+<dt><span><kbd>C-k</kbd></span></dt>
<dd><p>Kill the text from the current cursor position to the end of the line.
</p>
</dd>
-<dt><kbd>M-d</kbd></dt>
+<dt><span><kbd>M-d</kbd></span></dt>
<dd><p>Kill from the cursor to the end of the current word, or, if between
words, to the end of the next word.
Word boundaries are the same as those used by <kbd>M-f</kbd>.
</p>
</dd>
-<dt><kbd>M-<span class="key">DEL</span></kbd></dt>
-<dd><p>Kill from the cursor the start of the current word, or, if between
+<dt><span><kbd>M-<span class="key">DEL</span></kbd></span></dt>
+<dd><p>Kill from the cursor to the start of the current word, or, if between
words, to the start of the previous word.
Word boundaries are the same as those used by <kbd>M-b</kbd>.
</p>
</dd>
-<dt><kbd>C-w</kbd></dt>
+<dt><span><kbd>C-w</kbd></span></dt>
<dd><p>Kill from the cursor to the previous whitespace. This is different than
<kbd>M-<span class="key">DEL</span></kbd> because the word boundaries differ.
</p>
@@ -9974,20 +10208,22 @@ Word boundaries are the same as those used by <kbd>M-b</kbd>.
means to copy the most-recently-killed text from the kill buffer.
</p>
<dl compact="compact">
-<dt><kbd>C-y</kbd></dt>
+<dt><span><kbd>C-y</kbd></span></dt>
<dd><p>Yank the most recently killed text back into the buffer at the cursor.
</p>
</dd>
-<dt><kbd>M-y</kbd></dt>
+<dt><span><kbd>M-y</kbd></span></dt>
<dd><p>Rotate the kill-ring, and yank the new top. You can only do this if
the prior command is <kbd>C-y</kbd> or <kbd>M-y</kbd>.
</p></dd>
</dl>
<hr>
-<span id="Readline-Arguments"></span><div class="header">
+</div>
+<div class="subsection" id="Readline-Arguments">
+<div class="header">
<p>
-Next: <a href="#Searching" accesskey="n" rel="next">Searching</a>, Previous: <a href="#Readline-Killing-Commands" accesskey="p" rel="prev">Readline Killing Commands</a>, Up: <a href="#Readline-Interaction" accesskey="u" rel="up">Readline Interaction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Searching" accesskey="n" rel="next">Searching for Commands in the History</a>, Previous: <a href="#Readline-Killing-Commands" accesskey="p" rel="prev">Readline Killing Commands</a>, Up: <a href="#Readline-Interaction" accesskey="u" rel="up">Readline Interaction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Readline-Arguments-1"></span><h4 class="subsection">8.2.4 Readline Arguments</h4>
@@ -10007,7 +10243,9 @@ the <kbd>C-d</kbd> command an argument of 10, you could type &lsquo;<samp>M-1 0
which will delete the next ten characters on the input line.
</p>
<hr>
-<span id="Searching"></span><div class="header">
+</div>
+<div class="subsection" id="Searching">
+<div class="header">
<p>
Previous: <a href="#Readline-Arguments" accesskey="p" rel="prev">Readline Arguments</a>, Up: <a href="#Readline-Interaction" accesskey="u" rel="up">Readline Interaction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -10054,7 +10292,10 @@ to search for matching history lines. The search string may be
typed by the user or be part of the contents of the current line.
</p>
<hr>
-<span id="Readline-Init-File"></span><div class="header">
+</div>
+</div>
+<div class="section" id="Readline-Init-File">
+<div class="header">
<p>
Next: <a href="#Bindable-Readline-Commands" accesskey="n" rel="next">Bindable Readline Commands</a>, Previous: <a href="#Readline-Interaction" accesskey="p" rel="prev">Readline Interaction</a>, Up: <a href="#Command-Line-Editing" accesskey="u" rel="up">Command Line Editing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -10065,7 +10306,8 @@ Next: <a href="#Bindable-Readline-Commands" accesskey="n" rel="next">Bindable Re
keybindings installed by default, it is possible to use a different set
of keybindings.
Any user can customize programs that use Readline by putting
-commands in an <em>inputrc</em> file, conventionally in his home directory.
+commands in an <em>inputrc</em> file,
+conventionally in their home directory.
The name of this
file is taken from the value of the shell variable <code>INPUTRC</code>. If
that variable is unset, the default is <samp>~/.inputrc</samp>. If that
@@ -10073,7 +10315,7 @@ file does not exist or cannot be read, the ultimate default is
<samp>/etc/inputrc</samp>.
The <code>bind</code><!-- /@w --> builtin command can also be used to set Readline
keybindings and variables.
-See <a href="#Bash-Builtins">Bash Builtins</a>.
+See <a href="#Bash-Builtins">Bash Builtin Commands</a>.
</p>
<p>When a program which uses the Readline library starts up, the
init file is read, and the key bindings are set.
@@ -10081,21 +10323,15 @@ init file is read, and the key bindings are set.
<p>In addition, the <code>C-x C-r</code> command re-reads this init file, thus
incorporating any changes that you might have made to it.
</p>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Readline-Init-File-Syntax" accesskey="1">Readline Init File Syntax</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Syntax for the commands in the inputrc file.
-</td></tr>
-<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
-
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="#Conditional-Init-Constructs" accesskey="2">Conditional Init Constructs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Conditional key bindings in the inputrc file.
-</td></tr>
-<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
-
-</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="#Sample-Init-File" accesskey="3">Sample Init File</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">An example inputrc file.
-</td></tr>
-</table>
+<ul class="section-toc">
+<li><a href="#Readline-Init-File-Syntax" accesskey="1">Readline Init File Syntax</a></li>
+<li><a href="#Conditional-Init-Constructs" accesskey="2">Conditional Init Constructs</a></li>
+<li><a href="#Sample-Init-File" accesskey="3">Sample Init File</a></li>
+</ul>
<hr>
-<span id="Readline-Init-File-Syntax"></span><div class="header">
+<div class="subsection" id="Readline-Init-File-Syntax">
+<div class="header">
<p>
Next: <a href="#Conditional-Init-Constructs" accesskey="n" rel="next">Conditional Init Constructs</a>, Up: <a href="#Readline-Init-File" accesskey="u" rel="up">Readline Init File</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -10109,7 +10345,7 @@ constructs (see <a href="#Conditional-Init-Constructs">Conditional Init Construc
denote variable settings and key bindings.
</p>
<dl compact="compact">
-<dt>Variable Settings</dt>
+<dt><span>Variable Settings</span></dt>
<dd><p>You can modify the run-time behavior of Readline by
altering the values of variables in Readline
using the <code>set</code> command within the init file.
@@ -10135,64 +10371,86 @@ the value is null or empty, <var>on</var> (case-insensitive), or 1. Any other
value results in the variable being set to off.
</p>
<p>The <code>bind&nbsp;<span class="nolinebreak">-V</span></code><!-- /@w --> command lists the current Readline variable names
-and values. See <a href="#Bash-Builtins">Bash Builtins</a>.
+and values. See <a href="#Bash-Builtins">Bash Builtin Commands</a>.
</p>
<p>A great deal of run-time behavior is changeable with the following
variables.
</p>
<span id="index-variables_002c-readline"></span>
<dl compact="compact">
-<dt><code>bell-style</code></dt>
-<dd><span id="index-bell_002dstyle"></span>
-<p>Controls what happens when Readline wants to ring the terminal bell.
+<dt id='index-active_002dregion_002dstart_002dcolor'><span><code>active-region-start-color</code><a href='#index-active_002dregion_002dstart_002dcolor' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A string variable that controls the text color and background when displaying
+the text in the active region (see the description of
+<code>enable-active-region</code> below).
+This string must not take up any physical character positions on the display,
+so it should consist only of terminal escape sequences.
+It is output to the terminal before displaying the text in the active region.
+This variable is reset to the default value whenever the terminal type changes.
+The default value is the string that puts the terminal in standout mode,
+as obtained from the terminal&rsquo;s terminfo description.
+A sample value might be &lsquo;<samp>\e[01;33m</samp>&rsquo;.
+</p>
+</dd>
+<dt id='index-active_002dregion_002dend_002dcolor'><span><code>active-region-end-color</code><a href='#index-active_002dregion_002dend_002dcolor' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>A string variable that &quot;undoes&quot; the effects of <code>active-region-start-color</code>
+and restores &quot;normal&quot; terminal display appearance after displaying text
+in the active region.
+This string must not take up any physical character positions on the display,
+so it should consist only of terminal escape sequences.
+It is output to the terminal after displaying the text in the active region.
+This variable is reset to the default value whenever the terminal type changes.
+The default value is the string that restores the terminal from standout mode,
+as obtained from the terminal&rsquo;s terminfo description.
+A sample value might be &lsquo;<samp>\e[0m</samp>&rsquo;.
+</p>
+</dd>
+<dt id='index-bell_002dstyle'><span><code>bell-style</code><a href='#index-bell_002dstyle' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>Controls what happens when Readline wants to ring the terminal bell.
If set to &lsquo;<samp>none</samp>&rsquo;, Readline never rings the bell. If set to
&lsquo;<samp>visible</samp>&rsquo;, Readline uses a visible bell if one is available.
If set to &lsquo;<samp>audible</samp>&rsquo; (the default), Readline attempts to ring
the terminal&rsquo;s bell.
</p>
</dd>
-<dt><code>bind-tty-special-chars</code></dt>
-<dd><span id="index-bind_002dtty_002dspecial_002dchars"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo; (the default), Readline attempts to bind the control
+<dt id='index-bind_002dtty_002dspecial_002dchars'><span><code>bind-tty-special-chars</code><a href='#index-bind_002dtty_002dspecial_002dchars' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo; (the default), Readline attempts to bind the control
characters treated specially by the kernel&rsquo;s terminal driver to their
Readline equivalents.
</p>
</dd>
-<dt><code>blink-matching-paren</code></dt>
-<dd><span id="index-blink_002dmatching_002dparen"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline attempts to briefly move the cursor to an
+<dt id='index-blink_002dmatching_002dparen'><span><code>blink-matching-paren</code><a href='#index-blink_002dmatching_002dparen' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline attempts to briefly move the cursor to an
opening parenthesis when a closing parenthesis is inserted. The default
is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>colored-completion-prefix</code></dt>
-<dd><span id="index-colored_002dcompletion_002dprefix"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, when listing completions, Readline displays the
+<dt id='index-colored_002dcompletion_002dprefix'><span><code>colored-completion-prefix</code><a href='#index-colored_002dcompletion_002dprefix' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, when listing completions, Readline displays the
common prefix of the set of possible completions using a different color.
The color definitions are taken from the value of the <code>LS_COLORS</code>
environment variable.
+If there is a color definition in <code>LS_COLORS</code> for the custom suffix
+&lsquo;<samp>readline-colored-completion-prefix</samp>&rsquo;, Readline uses this color for
+the common prefix instead of its default.
The default is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>colored-stats</code></dt>
-<dd><span id="index-colored_002dstats"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline displays possible completions using different
+<dt id='index-colored_002dstats'><span><code>colored-stats</code><a href='#index-colored_002dstats' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline displays possible completions using different
colors to indicate their file type.
The color definitions are taken from the value of the <code>LS_COLORS</code>
environment variable.
The default is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>comment-begin</code></dt>
-<dd><span id="index-comment_002dbegin"></span>
-<p>The string to insert at the beginning of the line when the
+<dt id='index-comment_002dbegin'><span><code>comment-begin</code><a href='#index-comment_002dbegin' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>The string to insert at the beginning of the line when the
<code>insert-comment</code> command is executed. The default value
is <code>&quot;#&quot;</code>.
</p>
</dd>
-<dt><code>completion-display-width</code></dt>
-<dd><span id="index-completion_002ddisplay_002dwidth"></span>
-<p>The number of screen columns used to display possible matches
+<dt id='index-completion_002ddisplay_002dwidth'><span><code>completion-display-width</code><a href='#index-completion_002ddisplay_002dwidth' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>The number of screen columns used to display possible matches
when performing completion.
The value is ignored if it is less than 0 or greater than the terminal
screen width.
@@ -10200,76 +10458,71 @@ A value of 0 will cause matches to be displayed one per line.
The default value is -1.
</p>
</dd>
-<dt><code>completion-ignore-case</code></dt>
-<dd><span id="index-completion_002dignore_002dcase"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline performs filename matching and completion
+<dt id='index-completion_002dignore_002dcase'><span><code>completion-ignore-case</code><a href='#index-completion_002dignore_002dcase' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline performs filename matching and completion
in a case-insensitive fashion.
The default value is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>completion-map-case</code></dt>
-<dd><span id="index-completion_002dmap_002dcase"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, and <var>completion-ignore-case</var> is enabled, Readline
+<dt id='index-completion_002dmap_002dcase'><span><code>completion-map-case</code><a href='#index-completion_002dmap_002dcase' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, and <var>completion-ignore-case</var> is enabled, Readline
treats hyphens (&lsquo;<samp>-</samp>&rsquo;) and underscores (&lsquo;<samp>_</samp>&rsquo;) as equivalent when
performing case-insensitive filename matching and completion.
The default value is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>completion-prefix-display-length</code></dt>
-<dd><span id="index-completion_002dprefix_002ddisplay_002dlength"></span>
-<p>The length in characters of the common prefix of a list of possible
+<dt id='index-completion_002dprefix_002ddisplay_002dlength'><span><code>completion-prefix-display-length</code><a href='#index-completion_002dprefix_002ddisplay_002dlength' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>The length in characters of the common prefix of a list of possible
completions that is displayed without modification. When set to a
value greater than zero, common prefixes longer than this value are
replaced with an ellipsis when displaying possible completions.
</p>
</dd>
-<dt><code>completion-query-items</code></dt>
-<dd><span id="index-completion_002dquery_002ditems"></span>
-<p>The number of possible completions that determines when the user is
+<dt id='index-completion_002dquery_002ditems'><span><code>completion-query-items</code><a href='#index-completion_002dquery_002ditems' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>The number of possible completions that determines when the user is
asked whether the list of possibilities should be displayed.
If the number of possible completions is greater than or equal to this value,
Readline will ask whether or not the user wishes to view them;
otherwise, they are simply listed.
-This variable must be set to an integer value greater than or equal to 0.
-A negative value means Readline should never ask.
+This variable must be set to an integer value greater than or equal to zero.
+A zero value means Readline should never ask; negative values are
+treated as zero.
The default limit is <code>100</code>.
</p>
</dd>
-<dt><code>convert-meta</code></dt>
-<dd><span id="index-convert_002dmeta"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline will convert characters with the
+<dt id='index-convert_002dmeta'><span><code>convert-meta</code><a href='#index-convert_002dmeta' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline will convert characters with the
eighth bit set to an <small>ASCII</small> key sequence by stripping the eighth
bit and prefixing an <tt class="key">ESC</tt> character, converting them to a
-meta-prefixed key sequence. The default value is &lsquo;<samp>on</samp>&rsquo;, but
+meta-prefixed key sequence.
+The default value is &lsquo;<samp>on</samp>&rsquo;, but
will be set to &lsquo;<samp>off</samp>&rsquo; if the locale is one that contains
eight-bit characters.
+This variable is dependent on the <code>LC_CTYPE</code> locale category, and
+may change if the locale is changed.
</p>
</dd>
-<dt><code>disable-completion</code></dt>
-<dd><span id="index-disable_002dcompletion"></span>
-<p>If set to &lsquo;<samp>On</samp>&rsquo;, Readline will inhibit word completion.
+<dt id='index-disable_002dcompletion'><span><code>disable-completion</code><a href='#index-disable_002dcompletion' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>On</samp>&rsquo;, Readline will inhibit word completion.
Completion characters will be inserted into the line as if they had
been mapped to <code>self-insert</code>. The default is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>echo-control-characters</code></dt>
-<dd><span id="index-echo_002dcontrol_002dcharacters"></span>
-<p>When set to &lsquo;<samp>on</samp>&rsquo;, on operating systems that indicate they support it,
-readline echoes a character corresponding to a signal generated from the
+<dt id='index-echo_002dcontrol_002dcharacters'><span><code>echo-control-characters</code><a href='#index-echo_002dcontrol_002dcharacters' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>When set to &lsquo;<samp>on</samp>&rsquo;, on operating systems that indicate they support it,
+Readline echoes a character corresponding to a signal generated from the
keyboard. The default is &lsquo;<samp>on</samp>&rsquo;.
</p>
</dd>
-<dt><code>editing-mode</code></dt>
-<dd><span id="index-editing_002dmode"></span>
-<p>The <code>editing-mode</code> variable controls which default set of
+<dt id='index-editing_002dmode'><span><code>editing-mode</code><a href='#index-editing_002dmode' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>The <code>editing-mode</code> variable controls which default set of
key bindings is used. By default, Readline starts up in Emacs editing
mode, where the keystrokes are most similar to Emacs. This variable can be
set to either &lsquo;<samp>emacs</samp>&rsquo; or &lsquo;<samp>vi</samp>&rsquo;.
</p>
</dd>
-<dt><code>emacs-mode-string</code></dt>
-<dd><span id="index-emacs_002dmode_002dstring"></span>
-<p>If the <var>show-mode-in-prompt</var> variable is enabled,
+<dt id='index-emacs_002dmode_002dstring'><span><code>emacs-mode-string</code><a href='#index-emacs_002dmode_002dstring' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If the <var>show-mode-in-prompt</var> variable is enabled,
this string is displayed immediately before the last line of the primary
prompt when emacs editing mode is active. The value is expanded like a
key binding, so the standard set of meta- and control prefixes and
@@ -10280,46 +10533,58 @@ sequence into the mode string.
The default is &lsquo;<samp>@</samp>&rsquo;.
</p>
</dd>
-<dt><code>enable-bracketed-paste</code></dt>
-<dd><span id="index-enable_002dbracketed_002dpaste"></span>
-<p>When set to &lsquo;<samp>On</samp>&rsquo;, Readline will configure the terminal in a way
-that will enable it to insert each paste into the editing buffer as a
-single string of characters, instead of treating each character as if
-it had been read from the keyboard. This can prevent pasted characters
-from being interpreted as editing commands. The default is &lsquo;<samp>On</samp>&rsquo;.
-</p>
-</dd>
-<dt><code>enable-keypad</code></dt>
-<dd><span id="index-enable_002dkeypad"></span>
-<p>When set to &lsquo;<samp>on</samp>&rsquo;, Readline will try to enable the application
+<dt id='index-enable_002dactive_002dregion'><span><code>enable-active-region</code><a href='#index-enable_002dactive_002dregion' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>The <em>point</em> is the current cursor position, and <em>mark</em> refers
+to a saved cursor position (see <a href="#Commands-For-Moving">Commands For Moving</a>).
+The text between the point and mark is referred to as the <em>region</em>.
+When this variable is set to &lsquo;<samp>On</samp>&rsquo;, Readline allows certain commands
+to designate the region as <em>active</em>.
+When the region is active, Readline highlights the text in the region using
+the value of the <code>active-region-start-color</code>, which defaults to the
+string that enables
+the terminal&rsquo;s standout mode.
+The active region shows the text inserted by bracketed-paste and any
+matching text found by incremental and non-incremental history searches.
+The default is &lsquo;<samp>On</samp>&rsquo;.
+</p>
+</dd>
+<dt id='index-enable_002dbracketed_002dpaste'><span><code>enable-bracketed-paste</code><a href='#index-enable_002dbracketed_002dpaste' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>When set to &lsquo;<samp>On</samp>&rsquo;, Readline configures the terminal to insert each
+paste into the editing buffer as a single string of characters, instead
+of treating each character as if it had been read from the keyboard.
+This is called putting the terminal into <em>bracketed paste mode</em>;
+it prevents Readline from executing any editing commands bound to key
+sequences appearing in the pasted text.
+The default is &lsquo;<samp>On</samp>&rsquo;.
+</p>
+</dd>
+<dt id='index-enable_002dkeypad'><span><code>enable-keypad</code><a href='#index-enable_002dkeypad' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>When set to &lsquo;<samp>on</samp>&rsquo;, Readline will try to enable the application
keypad when it is called. Some systems need this to enable the
arrow keys. The default is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>enable-meta-key</code></dt>
+<dt><span><code>enable-meta-key</code></span></dt>
<dd><p>When set to &lsquo;<samp>on</samp>&rsquo;, Readline will try to enable any meta modifier
key the terminal claims to support when it is called. On many terminals,
the meta key is used to send eight-bit characters.
The default is &lsquo;<samp>on</samp>&rsquo;.
</p>
</dd>
-<dt><code>expand-tilde</code></dt>
-<dd><span id="index-expand_002dtilde"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, tilde expansion is performed when Readline
+<dt id='index-expand_002dtilde'><span><code>expand-tilde</code><a href='#index-expand_002dtilde' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, tilde expansion is performed when Readline
attempts word completion. The default is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>history-preserve-point</code></dt>
-<dd><span id="index-history_002dpreserve_002dpoint"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, the history code attempts to place the point (the
+<dt id='index-history_002dpreserve_002dpoint'><span><code>history-preserve-point</code><a href='#index-history_002dpreserve_002dpoint' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, the history code attempts to place the point (the
current cursor position) at the
same location on each history line retrieved with <code>previous-history</code>
or <code>next-history</code>. The default is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>history-size</code></dt>
-<dd><span id="index-history_002dsize"></span>
-<p>Set the maximum number of history entries saved in the history list.
+<dt id='index-history_002dsize'><span><code>history-size</code><a href='#index-history_002dsize' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>Set the maximum number of history entries saved in the history list.
If set to zero, any existing history entries are deleted and no new entries
are saved.
If set to a value less than zero, the number of history entries is not
@@ -10329,9 +10594,8 @@ If an attempt is made to set <var>history-size</var> to a non-numeric value,
the maximum number of history entries will be set to 500.
</p>
</dd>
-<dt><code>horizontal-scroll-mode</code></dt>
-<dd><span id="index-horizontal_002dscroll_002dmode"></span>
-<p>This variable can be set to either &lsquo;<samp>on</samp>&rsquo; or &lsquo;<samp>off</samp>&rsquo;. Setting it
+<dt id='index-horizontal_002dscroll_002dmode'><span><code>horizontal-scroll-mode</code><a href='#index-horizontal_002dscroll_002dmode' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>This variable can be set to either &lsquo;<samp>on</samp>&rsquo; or &lsquo;<samp>off</samp>&rsquo;. Setting it
to &lsquo;<samp>on</samp>&rsquo; means that the text of the lines being edited will scroll
horizontally on a single screen line when they are longer than the width
of the screen, instead of wrapping onto a new screen line.
@@ -10339,28 +10603,27 @@ This variable is automatically set to &lsquo;<samp>on</samp>&rsquo; for terminal
By default, this variable is set to &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>input-meta</code></dt>
-<dd><span id="index-input_002dmeta"></span>
-<span id="index-meta_002dflag"></span>
+<dt id='index-input_002dmeta'><span><code>input-meta</code><a href='#index-input_002dmeta' class='copiable-anchor'> &para;</a></span></dt>
+<dd><span id="index-meta_002dflag"></span>
<p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline will enable eight-bit input (it
will not clear the eighth bit in the characters it reads),
regardless of what the terminal claims it can support. The
default value is &lsquo;<samp>off</samp>&rsquo;, but Readline will set it to &lsquo;<samp>on</samp>&rsquo; if the
locale contains eight-bit characters.
The name <code>meta-flag</code> is a synonym for this variable.
+This variable is dependent on the <code>LC_CTYPE</code> locale category, and
+may change if the locale is changed.
</p>
</dd>
-<dt><code>isearch-terminators</code></dt>
-<dd><span id="index-isearch_002dterminators"></span>
-<p>The string of characters that should terminate an incremental search without
-subsequently executing the character as a command (see <a href="#Searching">Searching</a>).
+<dt id='index-isearch_002dterminators'><span><code>isearch-terminators</code><a href='#index-isearch_002dterminators' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>The string of characters that should terminate an incremental search without
+subsequently executing the character as a command (see <a href="#Searching">Searching for Commands in the History</a>).
If this variable has not been given a value, the characters <tt class="key">ESC</tt> and
<kbd>C-J</kbd> will terminate an incremental search.
</p>
</dd>
-<dt><code>keymap</code></dt>
-<dd><span id="index-keymap"></span>
-<p>Sets Readline&rsquo;s idea of the current keymap for key binding commands.
+<dt id='index-keymap'><span><code>keymap</code><a href='#index-keymap' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>Sets Readline&rsquo;s idea of the current keymap for key binding commands.
Built-in <code>keymap</code> names are
<code>emacs</code>,
<code>emacs-standard</code>,
@@ -10378,7 +10641,7 @@ The value of the <code>editing-mode</code> variable also affects the
default keymap.
</p>
</dd>
-<dt><code>keyseq-timeout</code></dt>
+<dt><span><code>keyseq-timeout</code></span></dt>
<dd><p>Specifies the duration Readline will wait for a character when reading an
ambiguous key sequence (one that can form a complete key sequence using
the input read so far, or can take additional input to complete a longer
@@ -10395,29 +10658,26 @@ decide which key sequence to complete.
The default value is <code>500</code>.
</p>
</dd>
-<dt><code>mark-directories</code></dt>
+<dt><span><code>mark-directories</code></span></dt>
<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, completed directory names have a slash
appended. The default is &lsquo;<samp>on</samp>&rsquo;.
</p>
</dd>
-<dt><code>mark-modified-lines</code></dt>
-<dd><span id="index-mark_002dmodified_002dlines"></span>
-<p>This variable, when set to &lsquo;<samp>on</samp>&rsquo;, causes Readline to display an
+<dt id='index-mark_002dmodified_002dlines'><span><code>mark-modified-lines</code><a href='#index-mark_002dmodified_002dlines' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>This variable, when set to &lsquo;<samp>on</samp>&rsquo;, causes Readline to display an
asterisk (&lsquo;<samp>*</samp>&rsquo;) at the start of history lines which have been modified.
This variable is &lsquo;<samp>off</samp>&rsquo; by default.
</p>
</dd>
-<dt><code>mark-symlinked-directories</code></dt>
-<dd><span id="index-mark_002dsymlinked_002ddirectories"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, completed names which are symbolic links
+<dt id='index-mark_002dsymlinked_002ddirectories'><span><code>mark-symlinked-directories</code><a href='#index-mark_002dsymlinked_002ddirectories' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, completed names which are symbolic links
to directories have a slash appended (subject to the value of
<code>mark-directories</code>).
The default is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>match-hidden-files</code></dt>
-<dd><span id="index-match_002dhidden_002dfiles"></span>
-<p>This variable, when set to &lsquo;<samp>on</samp>&rsquo;, causes Readline to match files whose
+<dt id='index-match_002dhidden_002dfiles'><span><code>match-hidden-files</code><a href='#index-match_002dhidden_002dfiles' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>This variable, when set to &lsquo;<samp>on</samp>&rsquo;, causes Readline to match files whose
names begin with a &lsquo;<samp>.</samp>&rsquo; (hidden files) when performing filename
completion.
If set to &lsquo;<samp>off</samp>&rsquo;, the leading &lsquo;<samp>.</samp>&rsquo; must be
@@ -10425,55 +10685,51 @@ supplied by the user in the filename to be completed.
This variable is &lsquo;<samp>on</samp>&rsquo; by default.
</p>
</dd>
-<dt><code>menu-complete-display-prefix</code></dt>
-<dd><span id="index-menu_002dcomplete_002ddisplay_002dprefix"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, menu completion displays the common prefix of the
+<dt id='index-menu_002dcomplete_002ddisplay_002dprefix'><span><code>menu-complete-display-prefix</code><a href='#index-menu_002dcomplete_002ddisplay_002dprefix' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, menu completion displays the common prefix of the
list of possible completions (which may be empty) before cycling through
the list. The default is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>output-meta</code></dt>
-<dd><span id="index-output_002dmeta"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline will display characters with the
+<dt id='index-output_002dmeta'><span><code>output-meta</code><a href='#index-output_002dmeta' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline will display characters with the
eighth bit set directly rather than as a meta-prefixed escape
sequence.
The default is &lsquo;<samp>off</samp>&rsquo;, but Readline will set it to &lsquo;<samp>on</samp>&rsquo; if the
locale contains eight-bit characters.
+This variable is dependent on the <code>LC_CTYPE</code> locale category, and
+may change if the locale is changed.
</p>
</dd>
-<dt><code>page-completions</code></dt>
-<dd><span id="index-page_002dcompletions"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline uses an internal <code>more</code>-like pager
+<dt id='index-page_002dcompletions'><span><code>page-completions</code><a href='#index-page_002dcompletions' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline uses an internal <code>more</code>-like pager
to display a screenful of possible completions at a time.
This variable is &lsquo;<samp>on</samp>&rsquo; by default.
</p>
</dd>
-<dt><code>print-completions-horizontally</code></dt>
+<dt><span><code>print-completions-horizontally</code></span></dt>
<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline will display completions with matches
sorted horizontally in alphabetical order, rather than down the screen.
The default is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>revert-all-at-newline</code></dt>
-<dd><span id="index-revert_002dall_002dat_002dnewline"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline will undo all changes to history lines
+<dt id='index-revert_002dall_002dat_002dnewline'><span><code>revert-all-at-newline</code><a href='#index-revert_002dall_002dat_002dnewline' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, Readline will undo all changes to history lines
before returning when <code>accept-line</code> is executed. By default,
history lines may be modified and retain individual undo lists across
-calls to <code>readline</code>. The default is &lsquo;<samp>off</samp>&rsquo;.
+calls to <code>readline()</code>. The default is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>show-all-if-ambiguous</code></dt>
-<dd><span id="index-show_002dall_002dif_002dambiguous"></span>
-<p>This alters the default behavior of the completion functions. If
+<dt id='index-show_002dall_002dif_002dambiguous'><span><code>show-all-if-ambiguous</code><a href='#index-show_002dall_002dif_002dambiguous' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>This alters the default behavior of the completion functions. If
set to &lsquo;<samp>on</samp>&rsquo;,
words which have more than one possible completion cause the
matches to be listed immediately instead of ringing the bell.
The default value is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>show-all-if-unmodified</code></dt>
-<dd><span id="index-show_002dall_002dif_002dunmodified"></span>
-<p>This alters the default behavior of the completion functions in
+<dt id='index-show_002dall_002dif_002dunmodified'><span><code>show-all-if-unmodified</code><a href='#index-show_002dall_002dif_002dunmodified' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>This alters the default behavior of the completion functions in
a fashion similar to <var>show-all-if-ambiguous</var>.
If set to &lsquo;<samp>on</samp>&rsquo;,
words which have more than one possible completion without any
@@ -10483,19 +10739,17 @@ of ringing the bell.
The default value is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>show-mode-in-prompt</code></dt>
-<dd><span id="index-show_002dmode_002din_002dprompt"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, add a string to the beginning of the prompt
+<dt id='index-show_002dmode_002din_002dprompt'><span><code>show-mode-in-prompt</code><a href='#index-show_002dmode_002din_002dprompt' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, add a string to the beginning of the prompt
indicating the editing mode: emacs, vi command, or vi insertion.
The mode strings are user-settable (e.g., <var>emacs-mode-string</var>).
The default value is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>skip-completed-text</code></dt>
-<dd><span id="index-skip_002dcompleted_002dtext"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, this alters the default completion behavior when
+<dt id='index-skip_002dcompleted_002dtext'><span><code>skip-completed-text</code><a href='#index-skip_002dcompleted_002dtext' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, this alters the default completion behavior when
inserting a single match into the line. It&rsquo;s only active when
-performing completion in the middle of a word. If enabled, readline
+performing completion in the middle of a word. If enabled, Readline
does not insert characters from the completion that match characters
after point in the word being completed, so portions of the word
following the cursor are not duplicated.
@@ -10506,9 +10760,8 @@ completion.
The default value is &lsquo;<samp>off</samp>&rsquo;.
</p>
</dd>
-<dt><code>vi-cmd-mode-string</code></dt>
-<dd><span id="index-vi_002dcmd_002dmode_002dstring"></span>
-<p>If the <var>show-mode-in-prompt</var> variable is enabled,
+<dt id='index-vi_002dcmd_002dmode_002dstring'><span><code>vi-cmd-mode-string</code><a href='#index-vi_002dcmd_002dmode_002dstring' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If the <var>show-mode-in-prompt</var> variable is enabled,
this string is displayed immediately before the last line of the primary
prompt when vi editing mode is active and in command mode.
The value is expanded like a
@@ -10520,9 +10773,8 @@ sequence into the mode string.
The default is &lsquo;<samp>(cmd)</samp>&rsquo;.
</p>
</dd>
-<dt><code>vi-ins-mode-string</code></dt>
-<dd><span id="index-vi_002dins_002dmode_002dstring"></span>
-<p>If the <var>show-mode-in-prompt</var> variable is enabled,
+<dt id='index-vi_002dins_002dmode_002dstring'><span><code>vi-ins-mode-string</code><a href='#index-vi_002dins_002dmode_002dstring' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If the <var>show-mode-in-prompt</var> variable is enabled,
this string is displayed immediately before the last line of the primary
prompt when vi editing mode is active and in insertion mode.
The value is expanded like a
@@ -10534,9 +10786,8 @@ sequence into the mode string.
The default is &lsquo;<samp>(ins)</samp>&rsquo;.
</p>
</dd>
-<dt><code>visible-stats</code></dt>
-<dd><span id="index-visible_002dstats"></span>
-<p>If set to &lsquo;<samp>on</samp>&rsquo;, a character denoting a file&rsquo;s type
+<dt id='index-visible_002dstats'><span><code>visible-stats</code><a href='#index-visible_002dstats' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>If set to &lsquo;<samp>on</samp>&rsquo;, a character denoting a file&rsquo;s type
is appended to the filename when listing possible
completions. The default is &lsquo;<samp>off</samp>&rsquo;.
</p>
@@ -10544,7 +10795,7 @@ completions. The default is &lsquo;<samp>off</samp>&rsquo;.
</dl>
</dd>
-<dt>Key Bindings</dt>
+<dt><span>Key Bindings</span></dt>
<dd><p>The syntax for controlling key bindings in the init file is
simple. First you need to find the name of the command that you
want to change. The following sections contain tables of the command
@@ -10560,15 +10811,15 @@ interpreted as part of the key name.
The name of the key can be expressed in different ways, depending on
what you find most comfortable.
</p>
-<p>In addition to command names, readline allows keys to be bound
+<p>In addition to command names, Readline allows keys to be bound
to a string that is inserted when the key is pressed (a <var>macro</var>).
</p>
<p>The <code>bind&nbsp;<span class="nolinebreak">-p</span></code><!-- /@w --> command displays Readline function names and
-bindings in a format that can put directly into an initialization file.
-See <a href="#Bash-Builtins">Bash Builtins</a>.
+bindings in a format that can be put directly into an initialization file.
+See <a href="#Bash-Builtins">Bash Builtin Commands</a>.
</p>
<dl compact="compact">
-<dt><var>keyname</var>:&nbsp;<var><span class="nolinebreak">function-name</span></var>&nbsp;or&nbsp;<var>macro</var><!-- /@w --></dt>
+<dt><span><var>keyname</var>:&nbsp;<var><span class="nolinebreak">function-name</span></var>&nbsp;or&nbsp;<var>macro</var><!-- /@w --></span></dt>
<dd><p><var>keyname</var> is the name of a key spelled out in English. For example:
</p><div class="example">
<pre class="example">Control-u: universal-argument
@@ -10599,7 +10850,7 @@ and
<var>TAB</var>.
</p>
</dd>
-<dt>&quot;<var>keyseq</var>&quot;:&nbsp;<var><span class="nolinebreak">function-name</span></var>&nbsp;or&nbsp;<var>macro</var><!-- /@w --></dt>
+<dt><span>&quot;<var>keyseq</var>&quot;:&nbsp;<var><span class="nolinebreak">function-name</span></var>&nbsp;or&nbsp;<var>macro</var><!-- /@w --></span></dt>
<dd><p><var>keyseq</var> differs from <var>keyname</var> above in that strings
denoting an entire key sequence can be specified, by placing
the key sequence in double quotes. Some <small>GNU</small> Emacs style key
@@ -10625,22 +10876,22 @@ the text &lsquo;<samp>Function Key 1</samp>&rsquo;.
specifying key sequences:
</p>
<dl compact="compact">
-<dt><code><kbd>\C-</kbd></code></dt>
+<dt><span><code><kbd>\C-</kbd></code></span></dt>
<dd><p>control prefix
</p></dd>
-<dt><code><kbd>\M-</kbd></code></dt>
+<dt><span><code><kbd>\M-</kbd></code></span></dt>
<dd><p>meta prefix
</p></dd>
-<dt><code><kbd>\e</kbd></code></dt>
+<dt><span><code><kbd>\e</kbd></code></span></dt>
<dd><p>an escape character
</p></dd>
-<dt><code><kbd>\\</kbd></code></dt>
+<dt><span><code><kbd>\\</kbd></code></span></dt>
<dd><p>backslash
</p></dd>
-<dt><code><kbd>\&quot;</kbd></code></dt>
+<dt><span><code><kbd>\&quot;</kbd></code></span></dt>
<dd><p><tt class="key">&quot;</tt>, a double quotation mark
</p></dd>
-<dt><code><kbd>\'</kbd></code></dt>
+<dt><span><code><kbd>\'</kbd></code></span></dt>
<dd><p><tt class="key">'</tt>, a single quote or apostrophe
</p></dd>
</dl>
@@ -10649,35 +10900,35 @@ specifying key sequences:
set of backslash escapes is available:
</p>
<dl compact="compact">
-<dt><code>\a</code></dt>
+<dt><span><code>\a</code></span></dt>
<dd><p>alert (bell)
</p></dd>
-<dt><code>\b</code></dt>
+<dt><span><code>\b</code></span></dt>
<dd><p>backspace
</p></dd>
-<dt><code>\d</code></dt>
+<dt><span><code>\d</code></span></dt>
<dd><p>delete
</p></dd>
-<dt><code>\f</code></dt>
+<dt><span><code>\f</code></span></dt>
<dd><p>form feed
</p></dd>
-<dt><code>\n</code></dt>
+<dt><span><code>\n</code></span></dt>
<dd><p>newline
</p></dd>
-<dt><code>\r</code></dt>
+<dt><span><code>\r</code></span></dt>
<dd><p>carriage return
</p></dd>
-<dt><code>\t</code></dt>
+<dt><span><code>\t</code></span></dt>
<dd><p>horizontal tab
</p></dd>
-<dt><code>\v</code></dt>
+<dt><span><code>\v</code></span></dt>
<dd><p>vertical tab
</p></dd>
-<dt><code>\<var>nnn</var></code></dt>
+<dt><span><code>\<var>nnn</var></code></span></dt>
<dd><p>the eight-bit character whose value is the octal value <var>nnn</var>
(one to three digits)
</p></dd>
-<dt><code>\x<var>HH</var></code></dt>
+<dt><span><code>\x<var>HH</var></code></span></dt>
<dd><p>the eight-bit character whose value is the hexadecimal value <var>HH</var>
(one or two hex digits)
</p></dd>
@@ -10699,7 +10950,9 @@ insert a single &lsquo;<samp>\</samp>&rsquo; into the line:
</dl>
<hr>
-<span id="Conditional-Init-Constructs"></span><div class="header">
+</div>
+<div class="subsection" id="Conditional-Init-Constructs">
+<div class="header">
<p>
Next: <a href="#Sample-Init-File" accesskey="n" rel="next">Sample Init File</a>, Previous: <a href="#Readline-Init-File-Syntax" accesskey="p" rel="prev">Readline Init File Syntax</a>, Up: <a href="#Readline-Init-File" accesskey="u" rel="up">Readline Init File</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -10711,7 +10964,7 @@ bindings and variable settings to be performed as the result
of tests. There are four parser directives used.
</p>
<dl compact="compact">
-<dt><code>$if</code></dt>
+<dt><span><code>$if</code></span></dt>
<dd><p>The <code>$if</code> construct allows bindings to be made based on the
editing mode, the terminal being used, or the application using
Readline. The text of the test, after any comparison operator,
@@ -10719,7 +10972,7 @@ extends to the end of the line;
unless otherwise noted, no characters are required to isolate it.
</p>
<dl compact="compact">
-<dt><code>mode</code></dt>
+<dt><span><code>mode</code></span></dt>
<dd><p>The <code>mode=</code> form of the <code>$if</code> directive is used to test
whether Readline is in <code>emacs</code> or <code>vi</code> mode.
This may be used in conjunction
@@ -10728,7 +10981,7 @@ the <code>emacs-standard</code> and <code>emacs-ctlx</code> keymaps only if
Readline is starting out in <code>emacs</code> mode.
</p>
</dd>
-<dt><code>term</code></dt>
+<dt><span><code>term</code></span></dt>
<dd><p>The <code>term=</code> form may be used to include terminal-specific
key bindings, perhaps to bind the key sequences output by the
terminal&rsquo;s function keys. The word on the right side of the
@@ -10738,7 +10991,7 @@ allows <code>sun</code> to match both <code>sun</code> and <code>sun-cmd</code>,
for instance.
</p>
</dd>
-<dt><code>version</code></dt>
+<dt><span><code>version</code></span></dt>
<dd><p>The <code>version</code> test may be used to perform comparisons against
specific Readline versions.
The <code>version</code> expands to the current Readline version.
@@ -10760,7 +11013,7 @@ $endif
</pre></div>
</dd>
-<dt><code>application</code></dt>
+<dt><span><code>application</code></span></dt>
<dd><p>The <var>application</var> construct is used to include
application-specific settings. Each program using the Readline
library sets the <var>application name</var>, and you can test for
@@ -10776,7 +11029,7 @@ $endif
</pre></div>
</dd>
-<dt><code>variable</code></dt>
+<dt><span><code>variable</code></span></dt>
<dd><p>The <var>variable</var> construct provides simple equality tests for Readline
variables and values.
The permitted comparison operators are &lsquo;<samp>=</samp>&rsquo;, &lsquo;<samp>==</samp>&rsquo;, and &lsquo;<samp>!=</samp>&rsquo;.
@@ -10796,17 +11049,17 @@ $endif
</dl>
</dd>
-<dt><code>$endif</code></dt>
+<dt><span><code>$endif</code></span></dt>
<dd><p>This command, as seen in the previous example, terminates an
<code>$if</code> command.
</p>
</dd>
-<dt><code>$else</code></dt>
+<dt><span><code>$else</code></span></dt>
<dd><p>Commands in this branch of the <code>$if</code> directive are executed if
the test fails.
</p>
</dd>
-<dt><code>$include</code></dt>
+<dt><span><code>$include</code></span></dt>
<dd><p>This directive takes a single filename as an argument and reads commands
and bindings from that file.
For example, the following directive reads from <samp>/etc/inputrc</samp>:
@@ -10817,7 +11070,9 @@ For example, the following directive reads from <samp>/etc/inputrc</samp>:
</dl>
<hr>
-<span id="Sample-Init-File"></span><div class="header">
+</div>
+<div class="subsection" id="Sample-Init-File">
+<div class="header">
<p>
Previous: <a href="#Conditional-Init-Constructs" accesskey="p" rel="prev">Conditional Init Constructs</a>, Up: <a href="#Readline-Init-File" accesskey="u" rel="up">Readline Init File</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -10929,36 +11184,21 @@ $endif
</pre></div>
<hr>
-<span id="Bindable-Readline-Commands"></span><div class="header">
+</div>
+</div>
+<div class="section" id="Bindable-Readline-Commands">
+<div class="header">
<p>
Next: <a href="#Readline-vi-Mode" accesskey="n" rel="next">Readline vi Mode</a>, Previous: <a href="#Readline-Init-File" accesskey="p" rel="prev">Readline Init File</a>, Up: <a href="#Command-Line-Editing" accesskey="u" rel="up">Command Line Editing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Bindable-Readline-Commands-1"></span><h3 class="section">8.4 Bindable Readline Commands</h3>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Commands-For-Moving" accesskey="1">Commands For Moving</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Moving about the line.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Commands-For-History" accesskey="2">Commands For History</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Getting at previous lines.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Commands-For-Text" accesskey="3">Commands For Text</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Commands for changing text.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Commands-For-Killing" accesskey="4">Commands For Killing</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Commands for killing and yanking.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Numeric-Arguments" accesskey="5">Numeric Arguments</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Specifying numeric arguments, repeat counts.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Commands-For-Completion" accesskey="6">Commands For Completion</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Getting Readline to do the typing for you.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Keyboard-Macros" accesskey="7">Keyboard Macros</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Saving and re-executing typed characters
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Miscellaneous-Commands" accesskey="8">Miscellaneous Commands</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Other miscellaneous commands.
-</td></tr>
-</table>
<p>This section describes Readline commands that may be bound to key
sequences.
You can list your key bindings by executing
<code>bind&nbsp;<span class="nolinebreak">-P</span></code><!-- /@w --> or, for a more terse format, suitable for an
-<var>inputrc</var> file, <code>bind&nbsp;<span class="nolinebreak">-p</span></code><!-- /@w -->. (See <a href="#Bash-Builtins">Bash Builtins</a>.)
+<var>inputrc</var> file, <code>bind&nbsp;<span class="nolinebreak">-p</span></code><!-- /@w -->. (See <a href="#Bash-Builtins">Bash Builtin Commands</a>.)
Command names without an accompanying key sequence are unbound by default.
</p>
<p>In the following descriptions, <em>point</em> refers to the current cursor
@@ -10966,77 +11206,68 @@ position, and <em>mark</em> refers to a cursor position saved by the
<code>set-mark</code> command.
The text between the point and mark is referred to as the <em>region</em>.
</p>
+<ul class="section-toc">
+<li><a href="#Commands-For-Moving" accesskey="1">Commands For Moving</a></li>
+<li><a href="#Commands-For-History" accesskey="2">Commands For Manipulating The History</a></li>
+<li><a href="#Commands-For-Text" accesskey="3">Commands For Changing Text</a></li>
+<li><a href="#Commands-For-Killing" accesskey="4">Killing And Yanking</a></li>
+<li><a href="#Numeric-Arguments" accesskey="5">Specifying Numeric Arguments</a></li>
+<li><a href="#Commands-For-Completion" accesskey="6">Letting Readline Type For You</a></li>
+<li><a href="#Keyboard-Macros" accesskey="7">Keyboard Macros</a></li>
+<li><a href="#Miscellaneous-Commands" accesskey="8">Some Miscellaneous Commands</a></li>
+</ul>
<hr>
-<span id="Commands-For-Moving"></span><div class="header">
+<div class="subsection" id="Commands-For-Moving">
+<div class="header">
<p>
-Next: <a href="#Commands-For-History" accesskey="n" rel="next">Commands For History</a>, Up: <a href="#Bindable-Readline-Commands" accesskey="u" rel="up">Bindable Readline Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Commands-For-History" accesskey="n" rel="next">Commands For Manipulating The History</a>, Up: <a href="#Bindable-Readline-Commands" accesskey="u" rel="up">Bindable Readline Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Commands-For-Moving-1"></span><h4 class="subsection">8.4.1 Commands For Moving</h4>
<dl compact="compact">
-<dt><code>beginning-of-line (C-a)</code>
-<span id="index-beginning_002dof_002dline-_0028C_002da_0029"></span>
-</dt>
+<dt id='index-beginning_002dof_002dline-_0028C_002da_0029'><span><code>beginning-of-line (C-a)</code><a href='#index-beginning_002dof_002dline-_0028C_002da_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Move to the start of the current line.
</p>
</dd>
-<dt><code>end-of-line (C-e)</code>
-<span id="index-end_002dof_002dline-_0028C_002de_0029"></span>
-</dt>
+<dt id='index-end_002dof_002dline-_0028C_002de_0029'><span><code>end-of-line (C-e)</code><a href='#index-end_002dof_002dline-_0028C_002de_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Move to the end of the line.
</p>
</dd>
-<dt><code>forward-char (C-f)</code>
-<span id="index-forward_002dchar-_0028C_002df_0029"></span>
-</dt>
+<dt id='index-forward_002dchar-_0028C_002df_0029'><span><code>forward-char (C-f)</code><a href='#index-forward_002dchar-_0028C_002df_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Move forward a character.
</p>
</dd>
-<dt><code>backward-char (C-b)</code>
-<span id="index-backward_002dchar-_0028C_002db_0029"></span>
-</dt>
+<dt id='index-backward_002dchar-_0028C_002db_0029'><span><code>backward-char (C-b)</code><a href='#index-backward_002dchar-_0028C_002db_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Move back a character.
</p>
</dd>
-<dt><code>forward-word (M-f)</code>
-<span id="index-forward_002dword-_0028M_002df_0029"></span>
-</dt>
+<dt id='index-forward_002dword-_0028M_002df_0029'><span><code>forward-word (M-f)</code><a href='#index-forward_002dword-_0028M_002df_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Move forward to the end of the next word.
Words are composed of letters and digits.
</p>
</dd>
-<dt><code>backward-word (M-b)</code>
-<span id="index-backward_002dword-_0028M_002db_0029"></span>
-</dt>
+<dt id='index-backward_002dword-_0028M_002db_0029'><span><code>backward-word (M-b)</code><a href='#index-backward_002dword-_0028M_002db_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Move back to the start of the current or previous word.
Words are composed of letters and digits.
</p>
</dd>
-<dt><code>shell-forward-word (M-C-f)</code>
-<span id="index-shell_002dforward_002dword-_0028M_002dC_002df_0029"></span>
-</dt>
+<dt id='index-shell_002dforward_002dword-_0028M_002dC_002df_0029'><span><code>shell-forward-word (M-C-f)</code><a href='#index-shell_002dforward_002dword-_0028M_002dC_002df_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Move forward to the end of the next word.
Words are delimited by non-quoted shell metacharacters.
</p>
</dd>
-<dt><code>shell-backward-word (M-C-b)</code>
-<span id="index-shell_002dbackward_002dword-_0028M_002dC_002db_0029"></span>
-</dt>
+<dt id='index-shell_002dbackward_002dword-_0028M_002dC_002db_0029'><span><code>shell-backward-word (M-C-b)</code><a href='#index-shell_002dbackward_002dword-_0028M_002dC_002db_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Move back to the start of the current or previous word.
Words are delimited by non-quoted shell metacharacters.
</p>
</dd>
-<dt><code>previous-screen-line ()</code>
-<span id="index-previous_002dscreen_002dline-_0028_0029"></span>
-</dt>
+<dt id='index-previous_002dscreen_002dline-_0028_0029'><span><code>previous-screen-line ()</code><a href='#index-previous_002dscreen_002dline-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Attempt to move point to the same physical screen column on the previous
physical screen line. This will not have the desired effect if the current
Readline line does not take up more than one physical line or if point is not
greater than the length of the prompt plus the screen width.
</p>
</dd>
-<dt><code>next-screen-line ()</code>
-<span id="index-next_002dscreen_002dline-_0028_0029"></span>
-</dt>
+<dt id='index-next_002dscreen_002dline-_0028_0029'><span><code>next-screen-line ()</code><a href='#index-next_002dscreen_002dline-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Attempt to move point to the same physical screen column on the next
physical screen line. This will not have the desired effect if the current
Readline line does not take up more than one physical line or if the length
@@ -11044,41 +11275,35 @@ of the current Readline line is not greater than the length of the prompt
plus the screen width.
</p>
</dd>
-<dt><code>clear-display (M-C-l)</code>
-<span id="index-clear_002ddisplay-_0028M_002dC_002dl_0029"></span>
-</dt>
+<dt id='index-clear_002ddisplay-_0028M_002dC_002dl_0029'><span><code>clear-display (M-C-l)</code><a href='#index-clear_002ddisplay-_0028M_002dC_002dl_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Clear the screen and, if possible, the terminal&rsquo;s scrollback buffer,
then redraw the current line,
leaving the current line at the top of the screen.
</p>
</dd>
-<dt><code>clear-screen (C-l)</code>
-<span id="index-clear_002dscreen-_0028C_002dl_0029"></span>
-</dt>
+<dt id='index-clear_002dscreen-_0028C_002dl_0029'><span><code>clear-screen (C-l)</code><a href='#index-clear_002dscreen-_0028C_002dl_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Clear the screen,
then redraw the current line,
leaving the current line at the top of the screen.
</p>
</dd>
-<dt><code>redraw-current-line ()</code>
-<span id="index-redraw_002dcurrent_002dline-_0028_0029"></span>
-</dt>
+<dt id='index-redraw_002dcurrent_002dline-_0028_0029'><span><code>redraw-current-line ()</code><a href='#index-redraw_002dcurrent_002dline-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Refresh the current line. By default, this is unbound.
</p>
</dd>
</dl>
<hr>
-<span id="Commands-For-History"></span><div class="header">
+</div>
+<div class="subsection" id="Commands-For-History">
+<div class="header">
<p>
-Next: <a href="#Commands-For-Text" accesskey="n" rel="next">Commands For Text</a>, Previous: <a href="#Commands-For-Moving" accesskey="p" rel="prev">Commands For Moving</a>, Up: <a href="#Bindable-Readline-Commands" accesskey="u" rel="up">Bindable Readline Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Commands-For-Text" accesskey="n" rel="next">Commands For Changing Text</a>, Previous: <a href="#Commands-For-Moving" accesskey="p" rel="prev">Commands For Moving</a>, Up: <a href="#Bindable-Readline-Commands" accesskey="u" rel="up">Bindable Readline Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Commands-For-Manipulating-The-History"></span><h4 class="subsection">8.4.2 Commands For Manipulating The History</h4>
<dl compact="compact">
-<dt><code>accept-line (Newline or Return)</code>
-<span id="index-accept_002dline-_0028Newline-or-Return_0029"></span>
-</dt>
+<dt id='index-accept_002dline-_0028Newline-or-Return_0029'><span><code>accept-line (Newline or Return)</code><a href='#index-accept_002dline-_0028Newline-or-Return_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Accept the line regardless of where the cursor is.
If this line is
non-empty, add it to the history list according to the setting of
@@ -11087,68 +11312,50 @@ If this line is a modified history line, then restore the history line
to its original state.
</p>
</dd>
-<dt><code>previous-history (C-p)</code>
-<span id="index-previous_002dhistory-_0028C_002dp_0029"></span>
-</dt>
+<dt id='index-previous_002dhistory-_0028C_002dp_0029'><span><code>previous-history (C-p)</code><a href='#index-previous_002dhistory-_0028C_002dp_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Move &lsquo;back&rsquo; through the history list, fetching the previous command.
</p>
</dd>
-<dt><code>next-history (C-n)</code>
-<span id="index-next_002dhistory-_0028C_002dn_0029"></span>
-</dt>
+<dt id='index-next_002dhistory-_0028C_002dn_0029'><span><code>next-history (C-n)</code><a href='#index-next_002dhistory-_0028C_002dn_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Move &lsquo;forward&rsquo; through the history list, fetching the next command.
</p>
</dd>
-<dt><code>beginning-of-history (M-&lt;)</code>
-<span id="index-beginning_002dof_002dhistory-_0028M_002d_003c_0029"></span>
-</dt>
+<dt id='index-beginning_002dof_002dhistory-_0028M_002d_003c_0029'><span><code>beginning-of-history (M-&lt;)</code><a href='#index-beginning_002dof_002dhistory-_0028M_002d_003c_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Move to the first line in the history.
</p>
</dd>
-<dt><code>end-of-history (M-&gt;)</code>
-<span id="index-end_002dof_002dhistory-_0028M_002d_003e_0029"></span>
-</dt>
+<dt id='index-end_002dof_002dhistory-_0028M_002d_003e_0029'><span><code>end-of-history (M-&gt;)</code><a href='#index-end_002dof_002dhistory-_0028M_002d_003e_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Move to the end of the input history, i.e., the line currently
being entered.
</p>
</dd>
-<dt><code>reverse-search-history (C-r)</code>
-<span id="index-reverse_002dsearch_002dhistory-_0028C_002dr_0029"></span>
-</dt>
+<dt id='index-reverse_002dsearch_002dhistory-_0028C_002dr_0029'><span><code>reverse-search-history (C-r)</code><a href='#index-reverse_002dsearch_002dhistory-_0028C_002dr_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Search backward starting at the current line and moving &lsquo;up&rsquo; through
the history as necessary. This is an incremental search.
This command sets the region to the matched text and activates the mark.
</p>
</dd>
-<dt><code>forward-search-history (C-s)</code>
-<span id="index-forward_002dsearch_002dhistory-_0028C_002ds_0029"></span>
-</dt>
+<dt id='index-forward_002dsearch_002dhistory-_0028C_002ds_0029'><span><code>forward-search-history (C-s)</code><a href='#index-forward_002dsearch_002dhistory-_0028C_002ds_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Search forward starting at the current line and moving &lsquo;down&rsquo; through
the history as necessary. This is an incremental search.
This command sets the region to the matched text and activates the mark.
</p>
</dd>
-<dt><code>non-incremental-reverse-search-history (M-p)</code>
-<span id="index-non_002dincremental_002dreverse_002dsearch_002dhistory-_0028M_002dp_0029"></span>
-</dt>
+<dt id='index-non_002dincremental_002dreverse_002dsearch_002dhistory-_0028M_002dp_0029'><span><code>non-incremental-reverse-search-history (M-p)</code><a href='#index-non_002dincremental_002dreverse_002dsearch_002dhistory-_0028M_002dp_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Search backward starting at the current line and moving &lsquo;up&rsquo;
through the history as necessary using a non-incremental search
for a string supplied by the user.
The search string may match anywhere in a history line.
</p>
</dd>
-<dt><code>non-incremental-forward-search-history (M-n)</code>
-<span id="index-non_002dincremental_002dforward_002dsearch_002dhistory-_0028M_002dn_0029"></span>
-</dt>
+<dt id='index-non_002dincremental_002dforward_002dsearch_002dhistory-_0028M_002dn_0029'><span><code>non-incremental-forward-search-history (M-n)</code><a href='#index-non_002dincremental_002dforward_002dsearch_002dhistory-_0028M_002dn_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Search forward starting at the current line and moving &lsquo;down&rsquo;
through the history as necessary using a non-incremental search
for a string supplied by the user.
The search string may match anywhere in a history line.
</p>
</dd>
-<dt><code>history-search-forward ()</code>
-<span id="index-history_002dsearch_002dforward-_0028_0029"></span>
-</dt>
+<dt id='index-history_002dsearch_002dforward-_0028_0029'><span><code>history-search-forward ()</code><a href='#index-history_002dsearch_002dforward-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Search forward through the history for the string of characters
between the start of the current line and the point.
The search string must match at the beginning of a history line.
@@ -11156,9 +11363,7 @@ This is a non-incremental search.
By default, this command is unbound.
</p>
</dd>
-<dt><code>history-search-backward ()</code>
-<span id="index-history_002dsearch_002dbackward-_0028_0029"></span>
-</dt>
+<dt id='index-history_002dsearch_002dbackward-_0028_0029'><span><code>history-search-backward ()</code><a href='#index-history_002dsearch_002dbackward-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Search backward through the history for the string of characters
between the start of the current line and the point.
The search string must match at the beginning of a history line.
@@ -11166,9 +11371,7 @@ This is a non-incremental search.
By default, this command is unbound.
</p>
</dd>
-<dt><code>history-substring-search-forward ()</code>
-<span id="index-history_002dsubstring_002dsearch_002dforward-_0028_0029"></span>
-</dt>
+<dt id='index-history_002dsubstring_002dsearch_002dforward-_0028_0029'><span><code>history-substring-search-forward ()</code><a href='#index-history_002dsubstring_002dsearch_002dforward-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Search forward through the history for the string of characters
between the start of the current line and the point.
The search string may match anywhere in a history line.
@@ -11176,9 +11379,7 @@ This is a non-incremental search.
By default, this command is unbound.
</p>
</dd>
-<dt><code>history-substring-search-backward ()</code>
-<span id="index-history_002dsubstring_002dsearch_002dbackward-_0028_0029"></span>
-</dt>
+<dt id='index-history_002dsubstring_002dsearch_002dbackward-_0028_0029'><span><code>history-substring-search-backward ()</code><a href='#index-history_002dsubstring_002dsearch_002dbackward-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Search backward through the history for the string of characters
between the start of the current line and the point.
The search string may match anywhere in a history line.
@@ -11186,9 +11387,7 @@ This is a non-incremental search.
By default, this command is unbound.
</p>
</dd>
-<dt><code>yank-nth-arg (M-C-y)</code>
-<span id="index-yank_002dnth_002darg-_0028M_002dC_002dy_0029"></span>
-</dt>
+<dt id='index-yank_002dnth_002darg-_0028M_002dC_002dy_0029'><span><code>yank-nth-arg (M-C-y)</code><a href='#index-yank_002dnth_002darg-_0028M_002dC_002dy_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Insert the first argument to the previous command (usually
the second word on the previous line) at point.
With an argument <var>n</var>,
@@ -11199,9 +11398,7 @@ Once the argument <var>n</var> is computed, the argument is extracted
as if the &lsquo;<samp>!<var>n</var></samp>&rsquo; history expansion had been specified.
</p>
</dd>
-<dt><code>yank-last-arg (M-. or M-_)</code>
-<span id="index-yank_002dlast_002darg-_0028M_002d_002e-or-M_002d_005f_0029"></span>
-</dt>
+<dt id='index-yank_002dlast_002darg-_0028M_002d_002e-or-M_002d_005f_0029'><span><code>yank-last-arg (M-. or M-_)</code><a href='#index-yank_002dlast_002darg-_0028M_002d_002e-or-M_002d_005f_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Insert last argument to the previous command (the last word of the
previous history entry).
With a numeric argument, behave exactly like <code>yank-nth-arg</code>.
@@ -11215,9 +11412,7 @@ The history expansion facilities are used to extract the last argument,
as if the &lsquo;<samp>!$</samp>&rsquo; history expansion had been specified.
</p>
</dd>
-<dt><code>operate-and-get-next (C-o)</code>
-<span id="index-operate_002dand_002dget_002dnext-_0028C_002do_0029"></span>
-</dt>
+<dt id='index-operate_002dand_002dget_002dnext-_0028C_002do_0029'><span><code>operate-and-get-next (C-o)</code><a href='#index-operate_002dand_002dget_002dnext-_0028C_002do_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Accept the current line for return to the calling application as if a
newline had been entered,
and fetch the next line relative to the current line from the history
@@ -11226,65 +11421,59 @@ A numeric argument, if supplied, specifies the history entry to use instead
of the current line.
</p>
</dd>
+<dt id='index-fetch_002dhistory-_0028_0029'><span><code>fetch-history ()</code><a href='#index-fetch_002dhistory-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>With a numeric argument, fetch that entry from the history list
+and make it the current line.
+Without an argument, move back to the first entry in the history list.
+</p>
+</dd>
</dl>
<hr>
-<span id="Commands-For-Text"></span><div class="header">
+</div>
+<div class="subsection" id="Commands-For-Text">
+<div class="header">
<p>
-Next: <a href="#Commands-For-Killing" accesskey="n" rel="next">Commands For Killing</a>, Previous: <a href="#Commands-For-History" accesskey="p" rel="prev">Commands For History</a>, Up: <a href="#Bindable-Readline-Commands" accesskey="u" rel="up">Bindable Readline Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Commands-For-Killing" accesskey="n" rel="next">Killing And Yanking</a>, Previous: <a href="#Commands-For-History" accesskey="p" rel="prev">Commands For Manipulating The History</a>, Up: <a href="#Bindable-Readline-Commands" accesskey="u" rel="up">Bindable Readline Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Commands-For-Changing-Text"></span><h4 class="subsection">8.4.3 Commands For Changing Text</h4>
<dl compact="compact">
-<dt><code><i>end-of-file</i> (usually C-d)</code>
-<span id="index-end_002dof_002dfile-_0028usually-C_002dd_0029"></span>
-</dt>
+<dt id='index-end_002dof_002dfile-_0028usually-C_002dd_0029'><span><code><i>end-of-file</i> (usually C-d)</code><a href='#index-end_002dof_002dfile-_0028usually-C_002dd_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The character indicating end-of-file as set, for example, by
<code>stty</code>. If this character is read when there are no characters
on the line, and point is at the beginning of the line, Readline
interprets it as the end of input and returns <small>EOF</small>.
</p>
</dd>
-<dt><code>delete-char (C-d)</code>
-<span id="index-delete_002dchar-_0028C_002dd_0029"></span>
-</dt>
+<dt id='index-delete_002dchar-_0028C_002dd_0029'><span><code>delete-char (C-d)</code><a href='#index-delete_002dchar-_0028C_002dd_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Delete the character at point. If this function is bound to the
same character as the tty <small>EOF</small> character, as <kbd>C-d</kbd>
commonly is, see above for the effects.
</p>
</dd>
-<dt><code>backward-delete-char (Rubout)</code>
-<span id="index-backward_002ddelete_002dchar-_0028Rubout_0029"></span>
-</dt>
+<dt id='index-backward_002ddelete_002dchar-_0028Rubout_0029'><span><code>backward-delete-char (Rubout)</code><a href='#index-backward_002ddelete_002dchar-_0028Rubout_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Delete the character behind the cursor. A numeric argument means
to kill the characters instead of deleting them.
</p>
</dd>
-<dt><code>forward-backward-delete-char ()</code>
-<span id="index-forward_002dbackward_002ddelete_002dchar-_0028_0029"></span>
-</dt>
+<dt id='index-forward_002dbackward_002ddelete_002dchar-_0028_0029'><span><code>forward-backward-delete-char ()</code><a href='#index-forward_002dbackward_002ddelete_002dchar-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Delete the character under the cursor, unless the cursor is at the
end of the line, in which case the character behind the cursor is
deleted. By default, this is not bound to a key.
</p>
</dd>
-<dt><code>quoted-insert (C-q or C-v)</code>
-<span id="index-quoted_002dinsert-_0028C_002dq-or-C_002dv_0029"></span>
-</dt>
+<dt id='index-quoted_002dinsert-_0028C_002dq-or-C_002dv_0029'><span><code>quoted-insert (C-q or C-v)</code><a href='#index-quoted_002dinsert-_0028C_002dq-or-C_002dv_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Add the next character typed to the line verbatim. This is
how to insert key sequences like <kbd>C-q</kbd>, for example.
</p>
</dd>
-<dt><code>self-insert (a, b, A, 1, !, &hellip;)</code>
-<span id="index-self_002dinsert-_0028a_002c-b_002c-A_002c-1_002c-_0021_002c-_2026_0029"></span>
-</dt>
+<dt id='index-self_002dinsert-_0028a_002c-b_002c-A_002c-1_002c-_0021_002c-_2026_0029'><span><code>self-insert (a, b, A, 1, !, &hellip;)</code><a href='#index-self_002dinsert-_0028a_002c-b_002c-A_002c-1_002c-_0021_002c-_2026_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Insert yourself.
</p>
</dd>
-<dt><code>bracketed-paste-begin ()</code>
-<span id="index-bracketed_002dpaste_002dbegin-_0028_0029"></span>
-</dt>
+<dt id='index-bracketed_002dpaste_002dbegin-_0028_0029'><span><code>bracketed-paste-begin ()</code><a href='#index-bracketed_002dpaste_002dbegin-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>This function is intended to be bound to the &quot;bracketed paste&quot; escape
sequence sent by some terminals, and such a binding is assigned by default.
It allows Readline to insert the pasted text as a single unit without treating
@@ -11298,9 +11487,7 @@ mark is active, Readline redisplay uses the terminal&rsquo;s standout mode to
denote the region.
</p>
</dd>
-<dt><code>transpose-chars (C-t)</code>
-<span id="index-transpose_002dchars-_0028C_002dt_0029"></span>
-</dt>
+<dt id='index-transpose_002dchars-_0028C_002dt_0029'><span><code>transpose-chars (C-t)</code><a href='#index-transpose_002dchars-_0028C_002dt_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Drag the character before the cursor forward over
the character at the cursor, moving the
cursor forward as well. If the insertion point
@@ -11309,39 +11496,29 @@ transposes the last two characters of the line.
Negative arguments have no effect.
</p>
</dd>
-<dt><code>transpose-words (M-t)</code>
-<span id="index-transpose_002dwords-_0028M_002dt_0029"></span>
-</dt>
+<dt id='index-transpose_002dwords-_0028M_002dt_0029'><span><code>transpose-words (M-t)</code><a href='#index-transpose_002dwords-_0028M_002dt_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Drag the word before point past the word after point,
moving point past that word as well.
If the insertion point is at the end of the line, this transposes
the last two words on the line.
</p>
</dd>
-<dt><code>upcase-word (M-u)</code>
-<span id="index-upcase_002dword-_0028M_002du_0029"></span>
-</dt>
+<dt id='index-upcase_002dword-_0028M_002du_0029'><span><code>upcase-word (M-u)</code><a href='#index-upcase_002dword-_0028M_002du_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Uppercase the current (or following) word. With a negative argument,
uppercase the previous word, but do not move the cursor.
</p>
</dd>
-<dt><code>downcase-word (M-l)</code>
-<span id="index-downcase_002dword-_0028M_002dl_0029"></span>
-</dt>
+<dt id='index-downcase_002dword-_0028M_002dl_0029'><span><code>downcase-word (M-l)</code><a href='#index-downcase_002dword-_0028M_002dl_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Lowercase the current (or following) word. With a negative argument,
lowercase the previous word, but do not move the cursor.
</p>
</dd>
-<dt><code>capitalize-word (M-c)</code>
-<span id="index-capitalize_002dword-_0028M_002dc_0029"></span>
-</dt>
+<dt id='index-capitalize_002dword-_0028M_002dc_0029'><span><code>capitalize-word (M-c)</code><a href='#index-capitalize_002dword-_0028M_002dc_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Capitalize the current (or following) word. With a negative argument,
capitalize the previous word, but do not move the cursor.
</p>
</dd>
-<dt><code>overwrite-mode ()</code>
-<span id="index-overwrite_002dmode-_0028_0029"></span>
-</dt>
+<dt id='index-overwrite_002dmode-_0028_0029'><span><code>overwrite-mode ()</code><a href='#index-overwrite_002dmode-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Toggle overwrite mode. With an explicit positive numeric argument,
switches to overwrite mode. With an explicit non-positive numeric
argument, switches to insert mode. This command affects only
@@ -11359,75 +11536,59 @@ before point with a space.
</dl>
<hr>
-<span id="Commands-For-Killing"></span><div class="header">
+</div>
+<div class="subsection" id="Commands-For-Killing">
+<div class="header">
<p>
-Next: <a href="#Numeric-Arguments" accesskey="n" rel="next">Numeric Arguments</a>, Previous: <a href="#Commands-For-Text" accesskey="p" rel="prev">Commands For Text</a>, Up: <a href="#Bindable-Readline-Commands" accesskey="u" rel="up">Bindable Readline Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Numeric-Arguments" accesskey="n" rel="next">Specifying Numeric Arguments</a>, Previous: <a href="#Commands-For-Text" accesskey="p" rel="prev">Commands For Changing Text</a>, Up: <a href="#Bindable-Readline-Commands" accesskey="u" rel="up">Bindable Readline Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Killing-And-Yanking"></span><h4 class="subsection">8.4.4 Killing And Yanking</h4>
<dl compact="compact">
-<dt><code>kill-line (C-k)</code>
-<span id="index-kill_002dline-_0028C_002dk_0029"></span>
-</dt>
+<dt id='index-kill_002dline-_0028C_002dk_0029'><span><code>kill-line (C-k)</code><a href='#index-kill_002dline-_0028C_002dk_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Kill the text from point to the end of the line.
With a negative numeric argument, kill backward from the cursor to the
beginning of the current line.
</p>
</dd>
-<dt><code>backward-kill-line (C-x Rubout)</code>
-<span id="index-backward_002dkill_002dline-_0028C_002dx-Rubout_0029"></span>
-</dt>
+<dt id='index-backward_002dkill_002dline-_0028C_002dx-Rubout_0029'><span><code>backward-kill-line (C-x Rubout)</code><a href='#index-backward_002dkill_002dline-_0028C_002dx-Rubout_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Kill backward from the cursor to the beginning of the current line.
With a negative numeric argument, kill forward from the cursor to the
end of the current line.
</p>
</dd>
-<dt><code>unix-line-discard (C-u)</code>
-<span id="index-unix_002dline_002ddiscard-_0028C_002du_0029"></span>
-</dt>
+<dt id='index-unix_002dline_002ddiscard-_0028C_002du_0029'><span><code>unix-line-discard (C-u)</code><a href='#index-unix_002dline_002ddiscard-_0028C_002du_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Kill backward from the cursor to the beginning of the current line.
</p>
</dd>
-<dt><code>kill-whole-line ()</code>
-<span id="index-kill_002dwhole_002dline-_0028_0029"></span>
-</dt>
+<dt id='index-kill_002dwhole_002dline-_0028_0029'><span><code>kill-whole-line ()</code><a href='#index-kill_002dwhole_002dline-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Kill all characters on the current line, no matter where point is.
By default, this is unbound.
</p>
</dd>
-<dt><code>kill-word (M-d)</code>
-<span id="index-kill_002dword-_0028M_002dd_0029"></span>
-</dt>
+<dt id='index-kill_002dword-_0028M_002dd_0029'><span><code>kill-word (M-d)</code><a href='#index-kill_002dword-_0028M_002dd_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Kill from point to the end of the current word, or if between
words, to the end of the next word.
Word boundaries are the same as <code>forward-word</code>.
</p>
</dd>
-<dt><code>backward-kill-word (M-<span class="key">DEL</span>)</code>
-<span id="index-backward_002dkill_002dword-_0028M_002dDEL_0029"></span>
-</dt>
+<dt id='index-backward_002dkill_002dword-_0028M_002dDEL_0029'><span><code>backward-kill-word (M-<span class="key">DEL</span>)</code><a href='#index-backward_002dkill_002dword-_0028M_002dDEL_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Kill the word behind point.
Word boundaries are the same as <code>backward-word</code>.
</p>
</dd>
-<dt><code>shell-kill-word (M-C-d)</code>
-<span id="index-shell_002dkill_002dword-_0028M_002dC_002dd_0029"></span>
-</dt>
+<dt id='index-shell_002dkill_002dword-_0028M_002dC_002dd_0029'><span><code>shell-kill-word (M-C-d)</code><a href='#index-shell_002dkill_002dword-_0028M_002dC_002dd_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Kill from point to the end of the current word, or if between
words, to the end of the next word.
Word boundaries are the same as <code>shell-forward-word</code>.
</p>
</dd>
-<dt><code>shell-backward-kill-word ()</code>
-<span id="index-shell_002dbackward_002dkill_002dword-_0028_0029"></span>
-</dt>
+<dt id='index-shell_002dbackward_002dkill_002dword-_0028_0029'><span><code>shell-backward-kill-word ()</code><a href='#index-shell_002dbackward_002dkill_002dword-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Kill the word behind point.
Word boundaries are the same as <code>shell-backward-word</code>.
</p>
</dd>
-<dt><code>shell-transpose-words (M-C-t)</code>
-<span id="index-shell_002dtranspose_002dwords-_0028M_002dC_002dt_0029"></span>
-</dt>
+<dt id='index-shell_002dtranspose_002dwords-_0028M_002dC_002dt_0029'><span><code>shell-transpose-words (M-C-t)</code><a href='#index-shell_002dtranspose_002dwords-_0028M_002dC_002dt_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Drag the word before point past the word after point,
moving point past that word as well.
If the insertion point is at the end of the line, this transposes
@@ -11436,88 +11597,68 @@ Word boundaries are the same as <code>shell-forward-word</code> and
<code>shell-backward-word</code>.
</p>
</dd>
-<dt><code>unix-word-rubout (C-w)</code>
-<span id="index-unix_002dword_002drubout-_0028C_002dw_0029"></span>
-</dt>
+<dt id='index-unix_002dword_002drubout-_0028C_002dw_0029'><span><code>unix-word-rubout (C-w)</code><a href='#index-unix_002dword_002drubout-_0028C_002dw_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Kill the word behind point, using white space as a word boundary.
The killed text is saved on the kill-ring.
</p>
</dd>
-<dt><code>unix-filename-rubout ()</code>
-<span id="index-unix_002dfilename_002drubout-_0028_0029"></span>
-</dt>
+<dt id='index-unix_002dfilename_002drubout-_0028_0029'><span><code>unix-filename-rubout ()</code><a href='#index-unix_002dfilename_002drubout-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Kill the word behind point, using white space and the slash character
as the word boundaries.
The killed text is saved on the kill-ring.
</p>
</dd>
-<dt><code>delete-horizontal-space ()</code>
-<span id="index-delete_002dhorizontal_002dspace-_0028_0029"></span>
-</dt>
+<dt id='index-delete_002dhorizontal_002dspace-_0028_0029'><span><code>delete-horizontal-space ()</code><a href='#index-delete_002dhorizontal_002dspace-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Delete all spaces and tabs around point. By default, this is unbound.
</p>
</dd>
-<dt><code>kill-region ()</code>
-<span id="index-kill_002dregion-_0028_0029"></span>
-</dt>
+<dt id='index-kill_002dregion-_0028_0029'><span><code>kill-region ()</code><a href='#index-kill_002dregion-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Kill the text in the current region.
By default, this command is unbound.
</p>
</dd>
-<dt><code>copy-region-as-kill ()</code>
-<span id="index-copy_002dregion_002das_002dkill-_0028_0029"></span>
-</dt>
+<dt id='index-copy_002dregion_002das_002dkill-_0028_0029'><span><code>copy-region-as-kill ()</code><a href='#index-copy_002dregion_002das_002dkill-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Copy the text in the region to the kill buffer, so it can be yanked
right away. By default, this command is unbound.
</p>
</dd>
-<dt><code>copy-backward-word ()</code>
-<span id="index-copy_002dbackward_002dword-_0028_0029"></span>
-</dt>
+<dt id='index-copy_002dbackward_002dword-_0028_0029'><span><code>copy-backward-word ()</code><a href='#index-copy_002dbackward_002dword-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Copy the word before point to the kill buffer.
The word boundaries are the same as <code>backward-word</code>.
By default, this command is unbound.
</p>
</dd>
-<dt><code>copy-forward-word ()</code>
-<span id="index-copy_002dforward_002dword-_0028_0029"></span>
-</dt>
+<dt id='index-copy_002dforward_002dword-_0028_0029'><span><code>copy-forward-word ()</code><a href='#index-copy_002dforward_002dword-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Copy the word following point to the kill buffer.
The word boundaries are the same as <code>forward-word</code>.
By default, this command is unbound.
</p>
</dd>
-<dt><code>yank (C-y)</code>
-<span id="index-yank-_0028C_002dy_0029"></span>
-</dt>
+<dt id='index-yank-_0028C_002dy_0029'><span><code>yank (C-y)</code><a href='#index-yank-_0028C_002dy_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Yank the top of the kill ring into the buffer at point.
</p>
</dd>
-<dt><code>yank-pop (M-y)</code>
-<span id="index-yank_002dpop-_0028M_002dy_0029"></span>
-</dt>
+<dt id='index-yank_002dpop-_0028M_002dy_0029'><span><code>yank-pop (M-y)</code><a href='#index-yank_002dpop-_0028M_002dy_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Rotate the kill-ring, and yank the new top. You can only do this if
the prior command is <code>yank</code> or <code>yank-pop</code>.
</p></dd>
</dl>
<hr>
-<span id="Numeric-Arguments"></span><div class="header">
+</div>
+<div class="subsection" id="Numeric-Arguments">
+<div class="header">
<p>
-Next: <a href="#Commands-For-Completion" accesskey="n" rel="next">Commands For Completion</a>, Previous: <a href="#Commands-For-Killing" accesskey="p" rel="prev">Commands For Killing</a>, Up: <a href="#Bindable-Readline-Commands" accesskey="u" rel="up">Bindable Readline Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Commands-For-Completion" accesskey="n" rel="next">Letting Readline Type For You</a>, Previous: <a href="#Commands-For-Killing" accesskey="p" rel="prev">Killing And Yanking</a>, Up: <a href="#Bindable-Readline-Commands" accesskey="u" rel="up">Bindable Readline Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Specifying-Numeric-Arguments"></span><h4 class="subsection">8.4.5 Specifying Numeric Arguments</h4>
<dl compact="compact">
-<dt><code>digit-argument (<kbd>M-0</kbd>, <kbd>M-1</kbd>, &hellip; <kbd>M--</kbd>)</code>
-<span id="index-digit_002dargument-_0028M_002d0_002c-M_002d1_002c-_2026-M_002d_002d_0029"></span>
-</dt>
+<dt id='index-digit_002dargument-_0028M_002d0_002c-M_002d1_002c-_2026-M_002d_002d_0029'><span><code>digit-argument (<kbd>M-0</kbd>, <kbd>M-1</kbd>, &hellip; <kbd>M--</kbd>)</code><a href='#index-digit_002dargument-_0028M_002d0_002c-M_002d1_002c-_2026-M_002d_002d_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Add this digit to the argument already accumulating, or start a new
argument. <kbd>M--</kbd> starts a negative argument.
</p>
</dd>
-<dt><code>universal-argument ()</code>
-<span id="index-universal_002dargument-_0028_0029"></span>
-</dt>
+<dt id='index-universal_002dargument-_0028_0029'><span><code>universal-argument ()</code><a href='#index-universal_002dargument-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>This is another way to specify an argument.
If this command is followed by one or more digits, optionally with a
leading minus sign, those digits define the argument.
@@ -11534,16 +11675,16 @@ By default, this is not bound to a key.
</dl>
<hr>
-<span id="Commands-For-Completion"></span><div class="header">
+</div>
+<div class="subsection" id="Commands-For-Completion">
+<div class="header">
<p>
-Next: <a href="#Keyboard-Macros" accesskey="n" rel="next">Keyboard Macros</a>, Previous: <a href="#Numeric-Arguments" accesskey="p" rel="prev">Numeric Arguments</a>, Up: <a href="#Bindable-Readline-Commands" accesskey="u" rel="up">Bindable Readline Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Keyboard-Macros" accesskey="n" rel="next">Keyboard Macros</a>, Previous: <a href="#Numeric-Arguments" accesskey="p" rel="prev">Specifying Numeric Arguments</a>, Up: <a href="#Bindable-Readline-Commands" accesskey="u" rel="up">Bindable Readline Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Letting-Readline-Type-For-You"></span><h4 class="subsection">8.4.6 Letting Readline Type For You</h4>
<dl compact="compact">
-<dt><code>complete (<span class="key">TAB</span>)</code>
-<span id="index-complete-_0028TAB_0029"></span>
-</dt>
+<dt id='index-complete-_0028TAB_0029'><span><code>complete (<span class="key">TAB</span>)</code><a href='#index-complete-_0028TAB_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Attempt to perform completion on the text before point.
The actual completion performed is application-specific.
Bash attempts completion treating the text as a variable (if the
@@ -11553,25 +11694,19 @@ command (including aliases and functions) in turn. If none
of these produces a match, filename completion is attempted.
</p>
</dd>
-<dt><code>possible-completions (M-?)</code>
-<span id="index-possible_002dcompletions-_0028M_002d_003f_0029"></span>
-</dt>
+<dt id='index-possible_002dcompletions-_0028M_002d_003f_0029'><span><code>possible-completions (M-?)</code><a href='#index-possible_002dcompletions-_0028M_002d_003f_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>List the possible completions of the text before point.
When displaying completions, Readline sets the number of columns used
for display to the value of <code>completion-display-width</code>, the value of
the environment variable <code>COLUMNS</code>, or the screen width, in that order.
</p>
</dd>
-<dt><code>insert-completions (M-*)</code>
-<span id="index-insert_002dcompletions-_0028M_002d_002a_0029"></span>
-</dt>
+<dt id='index-insert_002dcompletions-_0028M_002d_002a_0029'><span><code>insert-completions (M-*)</code><a href='#index-insert_002dcompletions-_0028M_002d_002a_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Insert all completions of the text before point that would have
been generated by <code>possible-completions</code>.
</p>
</dd>
-<dt><code>menu-complete ()</code>
-<span id="index-menu_002dcomplete-_0028_0029"></span>
-</dt>
+<dt id='index-menu_002dcomplete-_0028_0029'><span><code>menu-complete ()</code><a href='#index-menu_002dcomplete-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Similar to <code>complete</code>, but replaces the word to be completed
with a single match from the list of possible completions.
Repeated execution of <code>menu-complete</code> steps through the list
@@ -11586,17 +11721,13 @@ This command is intended to be bound to <tt class="key">TAB</tt>, but is unbound
by default.
</p>
</dd>
-<dt><code>menu-complete-backward ()</code>
-<span id="index-menu_002dcomplete_002dbackward-_0028_0029"></span>
-</dt>
+<dt id='index-menu_002dcomplete_002dbackward-_0028_0029'><span><code>menu-complete-backward ()</code><a href='#index-menu_002dcomplete_002dbackward-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Identical to <code>menu-complete</code>, but moves backward through the list
of possible completions, as if <code>menu-complete</code> had been given a
negative argument.
</p>
</dd>
-<dt><code>delete-char-or-list ()</code>
-<span id="index-delete_002dchar_002dor_002dlist-_0028_0029"></span>
-</dt>
+<dt id='index-delete_002dchar_002dor_002dlist-_0028_0029'><span><code>delete-char-or-list ()</code><a href='#index-delete_002dchar_002dor_002dlist-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Deletes the character under the cursor if not at the beginning or
end of the line (like <code>delete-char</code>).
If at the end of the line, behaves identically to
@@ -11604,64 +11735,46 @@ If at the end of the line, behaves identically to
This command is unbound by default.
</p>
</dd>
-<dt><code>complete-filename (M-/)</code>
-<span id="index-complete_002dfilename-_0028M_002d_002f_0029"></span>
-</dt>
+<dt id='index-complete_002dfilename-_0028M_002d_002f_0029'><span><code>complete-filename (M-/)</code><a href='#index-complete_002dfilename-_0028M_002d_002f_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Attempt filename completion on the text before point.
</p>
</dd>
-<dt><code>possible-filename-completions (C-x /)</code>
-<span id="index-possible_002dfilename_002dcompletions-_0028C_002dx-_002f_0029"></span>
-</dt>
+<dt id='index-possible_002dfilename_002dcompletions-_0028C_002dx-_002f_0029'><span><code>possible-filename-completions (C-x /)</code><a href='#index-possible_002dfilename_002dcompletions-_0028C_002dx-_002f_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>List the possible completions of the text before point,
treating it as a filename.
</p>
</dd>
-<dt><code>complete-username (M-~)</code>
-<span id="index-complete_002dusername-_0028M_002d_007e_0029"></span>
-</dt>
+<dt id='index-complete_002dusername-_0028M_002d_007e_0029'><span><code>complete-username (M-~)</code><a href='#index-complete_002dusername-_0028M_002d_007e_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Attempt completion on the text before point, treating
it as a username.
</p>
</dd>
-<dt><code>possible-username-completions (C-x ~)</code>
-<span id="index-possible_002dusername_002dcompletions-_0028C_002dx-_007e_0029"></span>
-</dt>
+<dt id='index-possible_002dusername_002dcompletions-_0028C_002dx-_007e_0029'><span><code>possible-username-completions (C-x ~)</code><a href='#index-possible_002dusername_002dcompletions-_0028C_002dx-_007e_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>List the possible completions of the text before point,
treating it as a username.
</p>
</dd>
-<dt><code>complete-variable (M-$)</code>
-<span id="index-complete_002dvariable-_0028M_002d_0024_0029"></span>
-</dt>
+<dt id='index-complete_002dvariable-_0028M_002d_0024_0029'><span><code>complete-variable (M-$)</code><a href='#index-complete_002dvariable-_0028M_002d_0024_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Attempt completion on the text before point, treating
it as a shell variable.
</p>
</dd>
-<dt><code>possible-variable-completions (C-x $)</code>
-<span id="index-possible_002dvariable_002dcompletions-_0028C_002dx-_0024_0029"></span>
-</dt>
+<dt id='index-possible_002dvariable_002dcompletions-_0028C_002dx-_0024_0029'><span><code>possible-variable-completions (C-x $)</code><a href='#index-possible_002dvariable_002dcompletions-_0028C_002dx-_0024_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>List the possible completions of the text before point,
treating it as a shell variable.
</p>
</dd>
-<dt><code>complete-hostname (M-@)</code>
-<span id="index-complete_002dhostname-_0028M_002d_0040_0029"></span>
-</dt>
+<dt id='index-complete_002dhostname-_0028M_002d_0040_0029'><span><code>complete-hostname (M-@)</code><a href='#index-complete_002dhostname-_0028M_002d_0040_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Attempt completion on the text before point, treating
it as a hostname.
</p>
</dd>
-<dt><code>possible-hostname-completions (C-x @)</code>
-<span id="index-possible_002dhostname_002dcompletions-_0028C_002dx-_0040_0029"></span>
-</dt>
+<dt id='index-possible_002dhostname_002dcompletions-_0028C_002dx-_0040_0029'><span><code>possible-hostname-completions (C-x @)</code><a href='#index-possible_002dhostname_002dcompletions-_0028C_002dx-_0040_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>List the possible completions of the text before point,
treating it as a hostname.
</p>
</dd>
-<dt><code>complete-command (M-!)</code>
-<span id="index-complete_002dcommand-_0028M_002d_0021_0029"></span>
-</dt>
+<dt id='index-complete_002dcommand-_0028M_002d_0021_0029'><span><code>complete-command (M-!)</code><a href='#index-complete_002dcommand-_0028M_002d_0021_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Attempt completion on the text before point, treating
it as a command name. Command completion attempts to
match the text against aliases, reserved words, shell
@@ -11669,32 +11782,24 @@ functions, shell builtins, and finally executable filenames,
in that order.
</p>
</dd>
-<dt><code>possible-command-completions (C-x !)</code>
-<span id="index-possible_002dcommand_002dcompletions-_0028C_002dx-_0021_0029"></span>
-</dt>
+<dt id='index-possible_002dcommand_002dcompletions-_0028C_002dx-_0021_0029'><span><code>possible-command-completions (C-x !)</code><a href='#index-possible_002dcommand_002dcompletions-_0028C_002dx-_0021_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>List the possible completions of the text before point,
treating it as a command name.
</p>
</dd>
-<dt><code>dynamic-complete-history (M-<span class="key">TAB</span>)</code>
-<span id="index-dynamic_002dcomplete_002dhistory-_0028M_002dTAB_0029"></span>
-</dt>
+<dt id='index-dynamic_002dcomplete_002dhistory-_0028M_002dTAB_0029'><span><code>dynamic-complete-history (M-<span class="key">TAB</span>)</code><a href='#index-dynamic_002dcomplete_002dhistory-_0028M_002dTAB_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Attempt completion on the text before point, comparing
the text against lines from the history list for possible
completion matches.
</p>
</dd>
-<dt><code>dabbrev-expand ()</code>
-<span id="index-dabbrev_002dexpand-_0028_0029"></span>
-</dt>
+<dt id='index-dabbrev_002dexpand-_0028_0029'><span><code>dabbrev-expand ()</code><a href='#index-dabbrev_002dexpand-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Attempt menu completion on the text before point, comparing
the text against lines from the history list for possible
completion matches.
</p>
</dd>
-<dt><code>complete-into-braces (M-{)</code>
-<span id="index-complete_002dinto_002dbraces-_0028M_002d_007b_0029"></span>
-</dt>
+<dt id='index-complete_002dinto_002dbraces-_0028M_002d_007b_0029'><span><code>complete-into-braces (M-{)</code><a href='#index-complete_002dinto_002dbraces-_0028M_002d_007b_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Perform filename completion and insert the list of possible completions
enclosed within braces so the list is available to the shell
(see <a href="#Brace-Expansion">Brace Expansion</a>).
@@ -11703,142 +11808,112 @@ enclosed within braces so the list is available to the shell
</dl>
<hr>
-<span id="Keyboard-Macros"></span><div class="header">
+</div>
+<div class="subsection" id="Keyboard-Macros">
+<div class="header">
<p>
-Next: <a href="#Miscellaneous-Commands" accesskey="n" rel="next">Miscellaneous Commands</a>, Previous: <a href="#Commands-For-Completion" accesskey="p" rel="prev">Commands For Completion</a>, Up: <a href="#Bindable-Readline-Commands" accesskey="u" rel="up">Bindable Readline Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Miscellaneous-Commands" accesskey="n" rel="next">Some Miscellaneous Commands</a>, Previous: <a href="#Commands-For-Completion" accesskey="p" rel="prev">Letting Readline Type For You</a>, Up: <a href="#Bindable-Readline-Commands" accesskey="u" rel="up">Bindable Readline Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Keyboard-Macros-1"></span><h4 class="subsection">8.4.7 Keyboard Macros</h4>
<dl compact="compact">
-<dt><code>start-kbd-macro (C-x ()</code>
-<span id="index-start_002dkbd_002dmacro-_0028C_002dx-_0028_0029"></span>
-</dt>
+<dt id='index-start_002dkbd_002dmacro-_0028C_002dx-_0028_0029'><span><code>start-kbd-macro (C-x ()</code><a href='#index-start_002dkbd_002dmacro-_0028C_002dx-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Begin saving the characters typed into the current keyboard macro.
</p>
</dd>
-<dt><code>end-kbd-macro (C-x ))</code>
-<span id="index-end_002dkbd_002dmacro-_0028C_002dx-_0029_0029"></span>
-</dt>
+<dt id='index-end_002dkbd_002dmacro-_0028C_002dx-_0029_0029'><span><code>end-kbd-macro (C-x ))</code><a href='#index-end_002dkbd_002dmacro-_0028C_002dx-_0029_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Stop saving the characters typed into the current keyboard macro
and save the definition.
</p>
</dd>
-<dt><code>call-last-kbd-macro (C-x e)</code>
-<span id="index-call_002dlast_002dkbd_002dmacro-_0028C_002dx-e_0029"></span>
-</dt>
+<dt id='index-call_002dlast_002dkbd_002dmacro-_0028C_002dx-e_0029'><span><code>call-last-kbd-macro (C-x e)</code><a href='#index-call_002dlast_002dkbd_002dmacro-_0028C_002dx-e_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Re-execute the last keyboard macro defined, by making the characters
in the macro appear as if typed at the keyboard.
</p>
</dd>
-<dt><code>print-last-kbd-macro ()</code>
-<span id="index-print_002dlast_002dkbd_002dmacro-_0028_0029"></span>
-</dt>
-<dd><p>Print the last keboard macro defined in a format suitable for the
+<dt id='index-print_002dlast_002dkbd_002dmacro-_0028_0029'><span><code>print-last-kbd-macro ()</code><a href='#index-print_002dlast_002dkbd_002dmacro-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>Print the last keyboard macro defined in a format suitable for the
<var>inputrc</var> file.
</p>
</dd>
</dl>
<hr>
-<span id="Miscellaneous-Commands"></span><div class="header">
+</div>
+<div class="subsection" id="Miscellaneous-Commands">
+<div class="header">
<p>
Previous: <a href="#Keyboard-Macros" accesskey="p" rel="prev">Keyboard Macros</a>, Up: <a href="#Bindable-Readline-Commands" accesskey="u" rel="up">Bindable Readline Commands</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Some-Miscellaneous-Commands"></span><h4 class="subsection">8.4.8 Some Miscellaneous Commands</h4>
<dl compact="compact">
-<dt><code>re-read-init-file (C-x C-r)</code>
-<span id="index-re_002dread_002dinit_002dfile-_0028C_002dx-C_002dr_0029"></span>
-</dt>
+<dt id='index-re_002dread_002dinit_002dfile-_0028C_002dx-C_002dr_0029'><span><code>re-read-init-file (C-x C-r)</code><a href='#index-re_002dread_002dinit_002dfile-_0028C_002dx-C_002dr_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Read in the contents of the <var>inputrc</var> file, and incorporate
any bindings or variable assignments found there.
</p>
</dd>
-<dt><code>abort (C-g)</code>
-<span id="index-abort-_0028C_002dg_0029"></span>
-</dt>
+<dt id='index-abort-_0028C_002dg_0029'><span><code>abort (C-g)</code><a href='#index-abort-_0028C_002dg_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Abort the current editing command and
ring the terminal&rsquo;s bell (subject to the setting of
<code>bell-style</code>).
</p>
</dd>
-<dt><code>do-lowercase-version (M-A, M-B, M-<var>x</var>, &hellip;)</code>
-<span id="index-do_002dlowercase_002dversion-_0028M_002dA_002c-M_002dB_002c-M_002dx_002c-_2026_0029"></span>
-</dt>
+<dt id='index-do_002dlowercase_002dversion-_0028M_002dA_002c-M_002dB_002c-M_002dx_002c-_2026_0029'><span><code>do-lowercase-version (M-A, M-B, M-<var>x</var>, &hellip;)</code><a href='#index-do_002dlowercase_002dversion-_0028M_002dA_002c-M_002dB_002c-M_002dx_002c-_2026_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>If the metafied character <var>x</var> is upper case, run the command
that is bound to the corresponding metafied lower case character.
The behavior is undefined if <var>x</var> is already lower case.
</p>
</dd>
-<dt><code>prefix-meta (<span class="key">ESC</span>)</code>
-<span id="index-prefix_002dmeta-_0028ESC_0029"></span>
-</dt>
+<dt id='index-prefix_002dmeta-_0028ESC_0029'><span><code>prefix-meta (<span class="key">ESC</span>)</code><a href='#index-prefix_002dmeta-_0028ESC_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Metafy the next character typed. This is for keyboards
without a meta key. Typing &lsquo;<samp><span class="key">ESC</span> f</samp>&rsquo; is equivalent to typing
<kbd>M-f</kbd>.
</p>
</dd>
-<dt><code>undo (C-_ or C-x C-u)</code>
-<span id="index-undo-_0028C_002d_005f-or-C_002dx-C_002du_0029"></span>
-</dt>
+<dt id='index-undo-_0028C_002d_005f-or-C_002dx-C_002du_0029'><span><code>undo (C-_ or C-x C-u)</code><a href='#index-undo-_0028C_002d_005f-or-C_002dx-C_002du_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Incremental undo, separately remembered for each line.
</p>
</dd>
-<dt><code>revert-line (M-r)</code>
-<span id="index-revert_002dline-_0028M_002dr_0029"></span>
-</dt>
+<dt id='index-revert_002dline-_0028M_002dr_0029'><span><code>revert-line (M-r)</code><a href='#index-revert_002dline-_0028M_002dr_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Undo all changes made to this line. This is like executing the <code>undo</code>
command enough times to get back to the beginning.
</p>
</dd>
-<dt><code>tilde-expand (M-&amp;)</code>
-<span id="index-tilde_002dexpand-_0028M_002d_0026_0029"></span>
-</dt>
+<dt id='index-tilde_002dexpand-_0028M_002d_0026_0029'><span><code>tilde-expand (M-&amp;)</code><a href='#index-tilde_002dexpand-_0028M_002d_0026_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Perform tilde expansion on the current word.
</p>
</dd>
-<dt><code>set-mark (C-@)</code>
-<span id="index-set_002dmark-_0028C_002d_0040_0029"></span>
-</dt>
+<dt id='index-set_002dmark-_0028C_002d_0040_0029'><span><code>set-mark (C-@)</code><a href='#index-set_002dmark-_0028C_002d_0040_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Set the mark to the point. If a
numeric argument is supplied, the mark is set to that position.
</p>
</dd>
-<dt><code>exchange-point-and-mark (C-x C-x)</code>
-<span id="index-exchange_002dpoint_002dand_002dmark-_0028C_002dx-C_002dx_0029"></span>
-</dt>
+<dt id='index-exchange_002dpoint_002dand_002dmark-_0028C_002dx-C_002dx_0029'><span><code>exchange-point-and-mark (C-x C-x)</code><a href='#index-exchange_002dpoint_002dand_002dmark-_0028C_002dx-C_002dx_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Swap the point with the mark. The current cursor position is set to
the saved position, and the old cursor position is saved as the mark.
</p>
</dd>
-<dt><code>character-search (C-])</code>
-<span id="index-character_002dsearch-_0028C_002d_005d_0029"></span>
-</dt>
+<dt id='index-character_002dsearch-_0028C_002d_005d_0029'><span><code>character-search (C-])</code><a href='#index-character_002dsearch-_0028C_002d_005d_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A character is read and point is moved to the next occurrence of that
-character. A negative count searches for previous occurrences.
+character. A negative argument searches for previous occurrences.
</p>
</dd>
-<dt><code>character-search-backward (M-C-])</code>
-<span id="index-character_002dsearch_002dbackward-_0028M_002dC_002d_005d_0029"></span>
-</dt>
+<dt id='index-character_002dsearch_002dbackward-_0028M_002dC_002d_005d_0029'><span><code>character-search-backward (M-C-])</code><a href='#index-character_002dsearch_002dbackward-_0028M_002dC_002d_005d_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A character is read and point is moved to the previous occurrence
-of that character. A negative count searches for subsequent
+of that character. A negative argument searches for subsequent
occurrences.
</p>
</dd>
-<dt><code>skip-csi-sequence ()</code>
-<span id="index-skip_002dcsi_002dsequence-_0028_0029"></span>
-</dt>
+<dt id='index-skip_002dcsi_002dsequence-_0028_0029'><span><code>skip-csi-sequence ()</code><a href='#index-skip_002dcsi_002dsequence-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Read enough characters to consume a multi-key sequence such as those
defined for keys like Home and End. Such sequences begin with a
Control Sequence Indicator (CSI), usually ESC-[. If this sequence is
bound to &quot;\e[&quot;, keys producing such sequences will have no effect
-unless explicitly bound to a readline command, instead of inserting
+unless explicitly bound to a Readline command, instead of inserting
stray characters into the editing buffer. This is unbound by default,
but usually bound to ESC-[.
</p>
</dd>
-<dt><code>insert-comment (M-#)</code>
-<span id="index-insert_002dcomment-_0028M_002d_0023_0029"></span>
-</dt>
+<dt id='index-insert_002dcomment-_0028M_002d_0023_0029'><span><code>insert-comment (M-#)</code><a href='#index-insert_002dcomment-_0028M_002d_0023_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Without a numeric argument, the value of the <code>comment-begin</code>
variable is inserted at the beginning of the current line.
If a numeric argument is supplied, this command acts as a toggle: if
@@ -11853,107 +11928,85 @@ If a numeric argument causes the comment character to be removed, the line
will be executed by the shell.
</p>
</dd>
-<dt><code>dump-functions ()</code>
-<span id="index-dump_002dfunctions-_0028_0029"></span>
-</dt>
+<dt id='index-dump_002dfunctions-_0028_0029'><span><code>dump-functions ()</code><a href='#index-dump_002dfunctions-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Print all of the functions and their key bindings to the
Readline output stream. If a numeric argument is supplied,
the output is formatted in such a way that it can be made part
of an <var>inputrc</var> file. This command is unbound by default.
</p>
</dd>
-<dt><code>dump-variables ()</code>
-<span id="index-dump_002dvariables-_0028_0029"></span>
-</dt>
+<dt id='index-dump_002dvariables-_0028_0029'><span><code>dump-variables ()</code><a href='#index-dump_002dvariables-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Print all of the settable variables and their values to the
Readline output stream. If a numeric argument is supplied,
the output is formatted in such a way that it can be made part
of an <var>inputrc</var> file. This command is unbound by default.
</p>
</dd>
-<dt><code>dump-macros ()</code>
-<span id="index-dump_002dmacros-_0028_0029"></span>
-</dt>
+<dt id='index-dump_002dmacros-_0028_0029'><span><code>dump-macros ()</code><a href='#index-dump_002dmacros-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Print all of the Readline key sequences bound to macros and the
strings they output. If a numeric argument is supplied,
the output is formatted in such a way that it can be made part
of an <var>inputrc</var> file. This command is unbound by default.
</p>
</dd>
-<dt><code>glob-complete-word (M-g)</code>
-<span id="index-glob_002dcomplete_002dword-_0028M_002dg_0029"></span>
-</dt>
+<dt id='index-spell_002dcorrect_002dword-_0028C_002dx-s_0029'><span><code>spell-correct-word (C-x s)</code><a href='#index-spell_002dcorrect_002dword-_0028C_002dx-s_0029' class='copiable-anchor'> &para;</a></span></dt>
+<dd><p>Perform spelling correction on the current word, treating it as a directory
+or filename, in the same way as the <code>cdspell</code> shell option.
+Word boundaries are the same as those used by <code>shell-forward-word</code>.
+</p>
+</dd>
+<dt id='index-glob_002dcomplete_002dword-_0028M_002dg_0029'><span><code>glob-complete-word (M-g)</code><a href='#index-glob_002dcomplete_002dword-_0028M_002dg_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The word before point is treated as a pattern for pathname expansion,
with an asterisk implicitly appended. This pattern is used to
generate a list of matching file names for possible completions.
</p>
</dd>
-<dt><code>glob-expand-word (C-x *)</code>
-<span id="index-glob_002dexpand_002dword-_0028C_002dx-_002a_0029"></span>
-</dt>
+<dt id='index-glob_002dexpand_002dword-_0028C_002dx-_002a_0029'><span><code>glob-expand-word (C-x *)</code><a href='#index-glob_002dexpand_002dword-_0028C_002dx-_002a_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The word before point is treated as a pattern for pathname expansion,
and the list of matching file names is inserted, replacing the word.
If a numeric argument is supplied, a &lsquo;<samp>*</samp>&rsquo; is appended before
pathname expansion.
</p>
</dd>
-<dt><code>glob-list-expansions (C-x g)</code>
-<span id="index-glob_002dlist_002dexpansions-_0028C_002dx-g_0029"></span>
-</dt>
+<dt id='index-glob_002dlist_002dexpansions-_0028C_002dx-g_0029'><span><code>glob-list-expansions (C-x g)</code><a href='#index-glob_002dlist_002dexpansions-_0028C_002dx-g_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>The list of expansions that would have been generated by
<code>glob-expand-word</code> is displayed, and the line is redrawn.
If a numeric argument is supplied, a &lsquo;<samp>*</samp>&rsquo; is appended before
pathname expansion.
</p>
</dd>
-<dt><code>display-shell-version (C-x C-v)</code>
-<span id="index-display_002dshell_002dversion-_0028C_002dx-C_002dv_0029"></span>
-</dt>
+<dt id='index-display_002dshell_002dversion-_0028C_002dx-C_002dv_0029'><span><code>display-shell-version (C-x C-v)</code><a href='#index-display_002dshell_002dversion-_0028C_002dx-C_002dv_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Display version information about the current instance of Bash.
</p>
</dd>
-<dt><code>shell-expand-line (M-C-e)</code>
-<span id="index-shell_002dexpand_002dline-_0028M_002dC_002de_0029"></span>
-</dt>
+<dt id='index-shell_002dexpand_002dline-_0028M_002dC_002de_0029'><span><code>shell-expand-line (M-C-e)</code><a href='#index-shell_002dexpand_002dline-_0028M_002dC_002de_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Expand the line as the shell does.
This performs alias and history expansion as well as all of the shell
word expansions (see <a href="#Shell-Expansions">Shell Expansions</a>).
</p>
</dd>
-<dt><code>history-expand-line (M-^)</code>
-<span id="index-history_002dexpand_002dline-_0028M_002d_005e_0029"></span>
-</dt>
+<dt id='index-history_002dexpand_002dline-_0028M_002d_005e_0029'><span><code>history-expand-line (M-^)</code><a href='#index-history_002dexpand_002dline-_0028M_002d_005e_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Perform history expansion on the current line.
</p>
</dd>
-<dt><code>magic-space ()</code>
-<span id="index-magic_002dspace-_0028_0029"></span>
-</dt>
+<dt id='index-magic_002dspace-_0028_0029'><span><code>magic-space ()</code><a href='#index-magic_002dspace-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Perform history expansion on the current line and insert a space
-(see <a href="#History-Interaction">History Interaction</a>).
+(see <a href="#History-Interaction">History Expansion</a>).
</p>
</dd>
-<dt><code>alias-expand-line ()</code>
-<span id="index-alias_002dexpand_002dline-_0028_0029"></span>
-</dt>
+<dt id='index-alias_002dexpand_002dline-_0028_0029'><span><code>alias-expand-line ()</code><a href='#index-alias_002dexpand_002dline-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Perform alias expansion on the current line (see <a href="#Aliases">Aliases</a>).
</p>
</dd>
-<dt><code>history-and-alias-expand-line ()</code>
-<span id="index-history_002dand_002dalias_002dexpand_002dline-_0028_0029"></span>
-</dt>
+<dt id='index-history_002dand_002dalias_002dexpand_002dline-_0028_0029'><span><code>history-and-alias-expand-line ()</code><a href='#index-history_002dand_002dalias_002dexpand_002dline-_0028_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Perform history and alias expansion on the current line.
</p>
</dd>
-<dt><code>insert-last-argument (M-. or M-_)</code>
-<span id="index-insert_002dlast_002dargument-_0028M_002d_002e-or-M_002d_005f_0029"></span>
-</dt>
+<dt id='index-insert_002dlast_002dargument-_0028M_002d_002e-or-M_002d_005f_0029'><span><code>insert-last-argument (M-. or M-_)</code><a href='#index-insert_002dlast_002dargument-_0028M_002d_002e-or-M_002d_005f_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>A synonym for <code>yank-last-arg</code>.
</p>
</dd>
-<dt><code>edit-and-execute-command (C-x C-e)</code>
-<span id="index-edit_002dand_002dexecute_002dcommand-_0028C_002dx-C_002de_0029"></span>
-</dt>
+<dt id='index-edit_002dand_002dexecute_002dcommand-_0028C_002dx-C_002de_0029'><span><code>edit-and-execute-command (C-x C-e)</code><a href='#index-edit_002dand_002dexecute_002dcommand-_0028C_002dx-C_002de_0029' class='copiable-anchor'> &para;</a></span></dt>
<dd><p>Invoke an editor on the current command line, and execute the result as shell
commands.
Bash attempts to invoke
@@ -11966,7 +12019,10 @@ as the editor, in that order.
</dl>
<hr>
-<span id="Readline-vi-Mode"></span><div class="header">
+</div>
+</div>
+<div class="section" id="Readline-vi-Mode">
+<div class="header">
<p>
Next: <a href="#Programmable-Completion" accesskey="n" rel="next">Programmable Completion</a>, Previous: <a href="#Bindable-Readline-Commands" accesskey="p" rel="prev">Bindable Readline Commands</a>, Up: <a href="#Command-Line-Editing" accesskey="u" rel="up">Command Line Editing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -11990,7 +12046,9 @@ history lines with &lsquo;<samp>k</samp>&rsquo; and subsequent lines with &lsquo
so forth.
</p>
<hr>
-<span id="Programmable-Completion"></span><div class="header">
+</div>
+<div class="section" id="Programmable-Completion">
+<div class="header">
<p>
Next: <a href="#Programmable-Completion-Builtins" accesskey="n" rel="next">Programmable Completion Builtins</a>, Previous: <a href="#Readline-vi-Mode" accesskey="p" rel="prev">Readline vi Mode</a>, Up: <a href="#Command-Line-Editing" accesskey="u" rel="up">Command Line Editing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -12021,7 +12079,7 @@ for the command word from any successful expansion
<p>Once a compspec has been found, it is used to generate the list of
matching words.
If a compspec is not found, the default Bash completion
-described above (see <a href="#Commands-For-Completion">Commands For Completion</a>) is performed.
+described above (see <a href="#Commands-For-Completion">Letting Readline Type For You</a>) is performed.
</p>
<p>First, the actions specified by the compspec are used.
Only matches which are prefixed by the word being completed are
@@ -12152,7 +12210,9 @@ complete -D -F _completion_loader -o bashdefault -o default
</pre></div>
<hr>
-<span id="Programmable-Completion-Builtins"></span><div class="header">
+</div>
+<div class="section" id="Programmable-Completion-Builtins">
+<div class="header">
<p>
Next: <a href="#A-Programmable-Completion-Example" accesskey="n" rel="next">A Programmable Completion Example</a>, Previous: <a href="#Programmable-Completion" accesskey="p" rel="prev">Programmable Completion</a>, Up: <a href="#Command-Line-Editing" accesskey="u" rel="up">Command Line Editing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -12164,9 +12224,8 @@ facilities: one to specify how the arguments to a particular command are to
be completed, and two to modify the completion as it is happening.
</p>
<dl compact="compact">
-<dt><code>compgen</code></dt>
-<dd><span id="index-compgen"></span>
-<div class="example">
+<dt id='index-compgen'><span><code>compgen</code><a href='#index-compgen' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example"><code>compgen [<var>option</var>] [<var>word</var>]</code>
</pre></div>
@@ -12189,9 +12248,8 @@ will be displayed.
matches were generated.
</p>
</dd>
-<dt><code>complete</code></dt>
-<dd><span id="index-complete"></span>
-<div class="example">
+<dt id='index-complete'><span><code>complete</code><a href='#index-complete' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example"><code>complete [-abcdefgjksuv] [-o <var>comp-option</var>] [-DEI] [-A <var>action</var>] [-G <var>globpat</var>]
[-W <var>wordlist</var>] [-F <var>function</var>] [-C <var>command</var>] [-X <var>filterpat</var>]
[-P <var>prefix</var>] [-S <var>suffix</var>] <var>name</var> [<var>name</var> &hellip;]</code>
@@ -12232,27 +12290,27 @@ should be quoted to protect them from expansion before the
</p>
<dl compact="compact">
-<dt><code>-o <var>comp-option</var></code></dt>
+<dt><span><code>-o <var>comp-option</var></code></span></dt>
<dd><p>The <var>comp-option</var> controls several aspects of the compspec&rsquo;s behavior
beyond the simple generation of completions.
<var>comp-option</var> may be one of:
</p>
<dl compact="compact">
-<dt><code>bashdefault</code></dt>
+<dt><span><code>bashdefault</code></span></dt>
<dd><p>Perform the rest of the default Bash completions if the compspec
generates no matches.
</p>
</dd>
-<dt><code>default</code></dt>
+<dt><span><code>default</code></span></dt>
<dd><p>Use Readline&rsquo;s default filename completion if the compspec generates
no matches.
</p>
</dd>
-<dt><code>dirnames</code></dt>
+<dt><span><code>dirnames</code></span></dt>
<dd><p>Perform directory name completion if the compspec generates no matches.
</p>
</dd>
-<dt><code>filenames</code></dt>
+<dt><span><code>filenames</code></span></dt>
<dd><p>Tell Readline that the compspec generates filenames, so it can perform any
filename-specific processing (like adding a slash to directory names,
quoting special characters, or suppressing trailing spaces).
@@ -12260,21 +12318,21 @@ This option is intended to be used with shell functions specified
with <samp>-F</samp>.
</p>
</dd>
-<dt><code>noquote</code></dt>
+<dt><span><code>noquote</code></span></dt>
<dd><p>Tell Readline not to quote the completed words if they are filenames
(quoting filenames is the default).
</p>
</dd>
-<dt><code>nosort</code></dt>
+<dt><span><code>nosort</code></span></dt>
<dd><p>Tell Readline not to sort the list of possible completions alphabetically.
</p>
</dd>
-<dt><code>nospace</code></dt>
+<dt><span><code>nospace</code></span></dt>
<dd><p>Tell Readline not to append a space (the default) to words completed at
the end of the line.
</p>
</dd>
-<dt><code>plusdirs</code></dt>
+<dt><span><code>plusdirs</code></span></dt>
<dd><p>After any matches defined by the compspec are generated,
directory name completion is attempted and any
matches are added to the results of the other actions.
@@ -12283,118 +12341,119 @@ matches are added to the results of the other actions.
</dl>
</dd>
-<dt><code>-A <var>action</var></code></dt>
+<dt><span><code>-A <var>action</var></code></span></dt>
<dd><p>The <var>action</var> may be one of the following to generate a list of possible
completions:
</p>
<dl compact="compact">
-<dt><code>alias</code></dt>
+<dt><span><code>alias</code></span></dt>
<dd><p>Alias names. May also be specified as <samp>-a</samp>.
</p>
</dd>
-<dt><code>arrayvar</code></dt>
+<dt><span><code>arrayvar</code></span></dt>
<dd><p>Array variable names.
</p>
</dd>
-<dt><code>binding</code></dt>
+<dt><span><code>binding</code></span></dt>
<dd><p>Readline key binding names (see <a href="#Bindable-Readline-Commands">Bindable Readline Commands</a>).
</p>
</dd>
-<dt><code>builtin</code></dt>
+<dt><span><code>builtin</code></span></dt>
<dd><p>Names of shell builtin commands. May also be specified as <samp>-b</samp>.
</p>
</dd>
-<dt><code>command</code></dt>
+<dt><span><code>command</code></span></dt>
<dd><p>Command names. May also be specified as <samp>-c</samp>.
</p>
</dd>
-<dt><code>directory</code></dt>
+<dt><span><code>directory</code></span></dt>
<dd><p>Directory names. May also be specified as <samp>-d</samp>.
</p>
</dd>
-<dt><code>disabled</code></dt>
+<dt><span><code>disabled</code></span></dt>
<dd><p>Names of disabled shell builtins.
</p>
</dd>
-<dt><code>enabled</code></dt>
+<dt><span><code>enabled</code></span></dt>
<dd><p>Names of enabled shell builtins.
</p>
</dd>
-<dt><code>export</code></dt>
+<dt><span><code>export</code></span></dt>
<dd><p>Names of exported shell variables. May also be specified as <samp>-e</samp>.
</p>
</dd>
-<dt><code>file</code></dt>
+<dt><span><code>file</code></span></dt>
<dd><p>File names. May also be specified as <samp>-f</samp>.
</p>
</dd>
-<dt><code>function</code></dt>
+<dt><span><code>function</code></span></dt>
<dd><p>Names of shell functions.
</p>
</dd>
-<dt><code>group</code></dt>
+<dt><span><code>group</code></span></dt>
<dd><p>Group names. May also be specified as <samp>-g</samp>.
</p>
</dd>
-<dt><code>helptopic</code></dt>
-<dd><p>Help topics as accepted by the <code>help</code> builtin (see <a href="#Bash-Builtins">Bash Builtins</a>).
+<dt><span><code>helptopic</code></span></dt>
+<dd><p>Help topics as accepted by the <code>help</code> builtin (see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
</p>
</dd>
-<dt><code>hostname</code></dt>
+<dt><span><code>hostname</code></span></dt>
<dd><p>Hostnames, as taken from the file specified by the
<code>HOSTFILE</code> shell variable (see <a href="#Bash-Variables">Bash Variables</a>).
</p>
</dd>
-<dt><code>job</code></dt>
+<dt><span><code>job</code></span></dt>
<dd><p>Job names, if job control is active. May also be specified as <samp>-j</samp>.
</p>
</dd>
-<dt><code>keyword</code></dt>
+<dt><span><code>keyword</code></span></dt>
<dd><p>Shell reserved words. May also be specified as <samp>-k</samp>.
</p>
</dd>
-<dt><code>running</code></dt>
+<dt><span><code>running</code></span></dt>
<dd><p>Names of running jobs, if job control is active.
</p>
</dd>
-<dt><code>service</code></dt>
+<dt><span><code>service</code></span></dt>
<dd><p>Service names. May also be specified as <samp>-s</samp>.
</p>
</dd>
-<dt><code>setopt</code></dt>
+<dt><span><code>setopt</code></span></dt>
<dd><p>Valid arguments for the <samp>-o</samp> option to the <code>set</code> builtin
(see <a href="#The-Set-Builtin">The Set Builtin</a>).
</p>
</dd>
-<dt><code>shopt</code></dt>
+<dt><span><code>shopt</code></span></dt>
<dd><p>Shell option names as accepted by the <code>shopt</code> builtin
-(see <a href="#Bash-Builtins">Bash Builtins</a>).
+(see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
</p>
</dd>
-<dt><code>signal</code></dt>
+<dt><span><code>signal</code></span></dt>
<dd><p>Signal names.
</p>
</dd>
-<dt><code>stopped</code></dt>
+<dt><span><code>stopped</code></span></dt>
<dd><p>Names of stopped jobs, if job control is active.
</p>
</dd>
-<dt><code>user</code></dt>
+<dt><span><code>user</code></span></dt>
<dd><p>User names. May also be specified as <samp>-u</samp>.
</p>
</dd>
-<dt><code>variable</code></dt>
+<dt><span><code>variable</code></span></dt>
<dd><p>Names of all shell variables. May also be specified as <samp>-v</samp>.
</p></dd>
</dl>
</dd>
-<dt><code>-C <var>command</var></code></dt>
+<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><code>-F <var>function</var></code></dt>
+<dt><span><code>-F <var>function</var></code></span></dt>
<dd><p>The shell function <var>function</var> is executed in the current shell
environment.
When it is executed, $1 is the name of the command whose arguments are
@@ -12405,22 +12464,22 @@ When it finishes, the possible completions are retrieved from the value
of the <code>COMPREPLY</code> array variable.
</p>
</dd>
-<dt><code>-G <var>globpat</var></code></dt>
+<dt><span><code>-G <var>globpat</var></code></span></dt>
<dd><p>The filename expansion pattern <var>globpat</var> is expanded to generate
the possible completions.
</p>
</dd>
-<dt><code>-P <var>prefix</var></code></dt>
+<dt><span><code>-P <var>prefix</var></code></span></dt>
<dd><p><var>prefix</var> is added at the beginning of each possible completion
after all other options have been applied.
</p>
</dd>
-<dt><code>-S <var>suffix</var></code></dt>
+<dt><span><code>-S <var>suffix</var></code></span></dt>
<dd><p><var>suffix</var> is appended to each possible completion
after all other options have been applied.
</p>
</dd>
-<dt><code>-W <var>wordlist</var></code></dt>
+<dt><span><code>-W <var>wordlist</var></code></span></dt>
<dd><p>The <var>wordlist</var> is split using the characters in the
<code>IFS</code> special variable as delimiters, and each resultant word
is expanded.
@@ -12428,7 +12487,7 @@ The possible completions are the members of the resultant list which
match the word being completed.
</p>
</dd>
-<dt><code>-X <var>filterpat</var></code></dt>
+<dt><span><code>-X <var>filterpat</var></code></span></dt>
<dd><p><var>filterpat</var> is a pattern as used for filename expansion.
It is applied to the list of possible completions generated by the
preceding options and arguments, and each completion matching
@@ -12445,9 +12504,8 @@ a <var>name</var> for which no specification exists, or
an error occurs adding a completion specification.
</p>
</dd>
-<dt><code>compopt</code></dt>
-<dd><span id="index-compopt"></span>
-<div class="example">
+<dt id='index-compopt'><span><code>compopt</code><a href='#index-compopt' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example"><code>compopt</code> [-o <var>option</var>] [-DEI] [+o <var>option</var>] [<var>name</var>]
</pre></div>
<p>Modify completion options for each <var>name</var> according to the
@@ -12479,7 +12537,9 @@ specification exists, or an output error occurs.
</dl>
<hr>
-<span id="A-Programmable-Completion-Example"></span><div class="header">
+</div>
+<div class="section" id="A-Programmable-Completion-Example">
+<div class="header">
<p>
Previous: <a href="#Programmable-Completion-Builtins" accesskey="p" rel="prev">Programmable Completion Builtins</a>, Up: <a href="#Command-Line-Editing" accesskey="u" rel="up">Command Line Editing</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -12581,7 +12641,7 @@ via <var>CDPATH</var>: Readline can&rsquo;t tell those completions are directori
The <samp>-o nospace</samp> option tells Readline to not append a space
character to the directory name, in case we want to append to it.
The <samp>-o bashdefault</samp> option brings in the rest of the &quot;Bash default&quot;
-completions &ndash; possible completion that Bash adds to the default Readline
+completions &ndash; possible completions that Bash adds to the default Readline
set. These include things like command name completion, variable completion
for words beginning with &lsquo;<samp>$</samp>&rsquo; or &lsquo;<samp>${</samp>&rsquo;, completions containing pathname
expansion patterns (see <a href="#Filename-Expansion">Filename Expansion</a>), and so on.
@@ -12602,9 +12662,12 @@ in the <samp>examples/complete</samp> subdirectory.
<span id="index-History_002c-how-to-use"></span>
<hr>
-<span id="Using-History-Interactively"></span><div class="header">
+</div>
+</div>
+<div class="chapter" id="Using-History-Interactively">
+<div class="header">
<p>
-Next: <a href="#Installing-Bash" accesskey="n" rel="next">Installing Bash</a>, Previous: <a href="#Command-Line-Editing" accesskey="p" rel="prev">Command Line Editing</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Installing-Bash" accesskey="n" rel="next">Installing Bash</a>, Previous: <a href="#Command-Line-Editing" accesskey="p" rel="prev">Command Line Editing</a>, Up: <a href="#Top" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Using-History-Interactively-1"></span><h2 class="chapter">9 Using History Interactively</h2>
@@ -12615,19 +12678,15 @@ It should be considered a user&rsquo;s guide.
For information on using the <small>GNU</small> History Library in other programs,
see the <small>GNU</small> Readline Library Manual.
</p>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Bash-History-Facilities" accesskey="1">Bash History Facilities</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How Bash lets you manipulate your command
- history.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Bash-History-Builtins" accesskey="2">Bash History Builtins</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">The Bash builtin commands that manipulate
- the command history.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#History-Interaction" accesskey="3">History Interaction</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">What it feels like using History as a user.
-</td></tr>
-</table>
+<ul class="section-toc">
+<li><a href="#Bash-History-Facilities" accesskey="1">Bash History Facilities</a></li>
+<li><a href="#Bash-History-Builtins" accesskey="2">Bash History Builtins</a></li>
+<li><a href="#History-Interaction" accesskey="3">History Expansion</a></li>
+</ul>
<hr>
-<span id="Bash-History-Facilities"></span><div class="header">
+<div class="section" id="Bash-History-Facilities">
+<div class="header">
<p>
Next: <a href="#Bash-History-Builtins" accesskey="n" rel="next">Bash History Builtins</a>, Up: <a href="#Using-History-Interactively" accesskey="u" rel="up">Using History Interactively</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -12657,7 +12716,7 @@ the value of the <code>HISTFILESIZE</code> variable.
When a shell with history enabled exits, the last
<code>$HISTSIZE</code> lines are copied from the history list to the file
named by <code>$HISTFILE</code>.
-If the <code>histappend</code> shell option is set (see <a href="#Bash-Builtins">Bash Builtins</a>),
+If the <code>histappend</code> shell option is set (see <a href="#Bash-Builtins">Bash Builtin Commands</a>),
the lines are appended to the history file,
otherwise the history file is overwritten.
If <code>HISTFILE</code>
@@ -12680,7 +12739,7 @@ The <code>history</code> builtin may be used to display or modify the history
list and manipulate the history file.
When using command-line editing, search commands
are available in each editing mode that provide access to the
-history list (see <a href="#Commands-For-History">Commands For History</a>).
+history list (see <a href="#Commands-For-History">Commands For Manipulating The History</a>).
</p>
<p>The shell allows control over which commands are saved on the history
list. The <code>HISTCONTROL</code> and <code>HISTIGNORE</code>
@@ -12697,9 +12756,11 @@ The <code>shopt</code> builtin is used to set these options.
See <a href="#The-Shopt-Builtin">The Shopt Builtin</a>, for a description of <code>shopt</code>.
</p>
<hr>
-<span id="Bash-History-Builtins"></span><div class="header">
+</div>
+<div class="section" id="Bash-History-Builtins">
+<div class="header">
<p>
-Next: <a href="#History-Interaction" accesskey="n" rel="next">History Interaction</a>, Previous: <a href="#Bash-History-Facilities" accesskey="p" rel="prev">Bash History Facilities</a>, Up: <a href="#Using-History-Interactively" accesskey="u" rel="up">Using History Interactively</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#History-Interaction" accesskey="n" rel="next">History Expansion</a>, Previous: <a href="#Bash-History-Facilities" accesskey="p" rel="prev">Bash History Facilities</a>, Up: <a href="#Using-History-Interactively" accesskey="u" rel="up">Using History Interactively</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Bash-History-Builtins-1"></span><h3 class="section">9.2 Bash History Builtins</h3>
<span id="index-history-builtins"></span>
@@ -12708,9 +12769,8 @@ Next: <a href="#History-Interaction" accesskey="n" rel="next">History Interactio
history list and history file.
</p>
<dl compact="compact">
-<dt><code>fc</code></dt>
-<dd><span id="index-fc"></span>
-<div class="example">
+<dt id='index-fc'><span><code>fc</code><a href='#index-fc' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example"><code>fc [-e <var>ename</var>] [-lnr] [<var>first</var>] [<var>last</var>]</code>
<code>fc -s [<var>pat</var>=<var>rep</var>] [<var>command</var>]</code>
</pre></div>
@@ -12751,9 +12811,8 @@ that typing &lsquo;<samp>r cc</samp>&rsquo; runs the last command beginning with
and typing &lsquo;<samp>r</samp>&rsquo; re-executes the last command (see <a href="#Aliases">Aliases</a>).
</p>
</dd>
-<dt><code>history</code></dt>
-<dd><span id="index-history"></span>
-<div class="example">
+<dt id='index-history'><span><code>history</code><a href='#index-history' class='copiable-anchor'> &para;</a></span></dt>
+<dd><div class="example">
<pre class="example">history [<var>n</var>]
history -c
history -d <var>offset</var>
@@ -12774,12 +12833,12 @@ and the history line.
<p>Options, if supplied, have the following meanings:
</p>
<dl compact="compact">
-<dt><code>-c</code></dt>
+<dt><span><code>-c</code></span></dt>
<dd><p>Clear the history list. This may be combined
with the other options to replace the history list completely.
</p>
</dd>
-<dt><code>-d <var>offset</var></code></dt>
+<dt><span><code>-d <var>offset</var></code></span></dt>
<dd><p>Delete the history entry at position <var>offset</var>.
If <var>offset</var> is positive, it should be specified as it appears when
the history is displayed.
@@ -12789,55 +12848,63 @@ end of the history, and an index of &lsquo;<samp>-1</samp>&rsquo; refers to the
<code>history -d</code> command.
</p>
</dd>
-<dt><code>-d <var>start</var>-<var>end</var></code></dt>
-<dd><p>Delete the history entries between positions <var>start</var> and <var>end</var>,
-inclusive. Positive and negative values for <var>start</var> and <var>end</var>
+<dt><span><code>-d <var>start</var>-<var>end</var></code></span></dt>
+<dd><p>Delete the range of history entries between positions <var>start</var> and
+<var>end</var>, inclusive.
+Positive and negative values for <var>start</var> and <var>end</var>
are interpreted as described above.
</p>
</dd>
-<dt><code>-a</code></dt>
+<dt><span><code>-a</code></span></dt>
<dd><p>Append the new history lines to the history file.
These are history lines entered since the beginning of the current
Bash session, but not already appended to the history file.
</p>
</dd>
-<dt><code>-n</code></dt>
+<dt><span><code>-n</code></span></dt>
<dd><p>Append the history lines not already read from the history file
to the current history list. These are lines appended to the history
file since the beginning of the current Bash session.
</p>
</dd>
-<dt><code>-r</code></dt>
+<dt><span><code>-r</code></span></dt>
<dd><p>Read the history file and append its contents to
the history list.
</p>
</dd>
-<dt><code>-w</code></dt>
+<dt><span><code>-w</code></span></dt>
<dd><p>Write out the current history list to the history file.
</p>
</dd>
-<dt><code>-p</code></dt>
+<dt><span><code>-p</code></span></dt>
<dd><p>Perform history substitution on the <var>arg</var>s and display the result
on the standard output, without storing the results in the history list.
</p>
</dd>
-<dt><code>-s</code></dt>
+<dt><span><code>-s</code></span></dt>
<dd><p>The <var>arg</var>s are added to the end of
the history list as a single entry.
</p>
</dd>
</dl>
-<p>When any of the <samp>-w</samp>, <samp>-r</samp>, <samp>-a</samp>, or <samp>-n</samp> options is
-used, if <var>filename</var>
-is given, then it is used as the history file. If not, then
-the value of the <code>HISTFILE</code> variable is used.
+<p>If a <var>filename</var> argument is supplied
+when any of the <samp>-w</samp>, <samp>-r</samp>, <samp>-a</samp>, or <samp>-n</samp> options
+is used, Bash uses <var>filename</var> as the history file.
+If not, then the value of the <code>HISTFILE</code> variable is used.
+</p>
+<p>The return value is 0 unless an invalid option is encountered, an
+error occurs while reading or writing the history file, an invalid
+<var>offset</var> or range is supplied as an argument to <samp>-d</samp>, or the
+history expansion supplied as an argument to <samp>-p</samp> fails.
</p>
</dd>
</dl>
<hr>
-<span id="History-Interaction"></span><div class="header">
+</div>
+<div class="section" id="History-Interaction">
+<div class="header">
<p>
Previous: <a href="#Bash-History-Builtins" accesskey="p" rel="prev">Bash History Builtins</a>, Up: <a href="#Using-History-Interactively" accesskey="u" rel="up">Using History Interactively</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -12908,19 +12975,17 @@ as explained above (see <a href="#Bash-Variables">Bash Variables</a>). The shel
the history comment character to mark history timestamps when
writing the history file.
</p>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Event-Designators" accesskey="1">Event Designators</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to specify which history line to use.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Word-Designators" accesskey="2">Word Designators</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Specifying which words are of interest.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Modifiers" accesskey="3">Modifiers</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Modifying the results of substitution.
-</td></tr>
-</table>
+<ul class="section-toc">
+<li><a href="#Event-Designators" accesskey="1">Event Designators</a></li>
+<li><a href="#Word-Designators" accesskey="2">Word Designators</a></li>
+<li><a href="#Modifiers" accesskey="3">Modifiers</a></li>
+</ul>
<hr>
-<span id="Event-Designators"></span><div class="header">
+<div class="subsection" id="Event-Designators">
+<div class="header">
<p>
-Next: <a href="#Word-Designators" accesskey="n" rel="next">Word Designators</a>, Up: <a href="#History-Interaction" accesskey="u" rel="up">History Interaction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Word-Designators" accesskey="n" rel="next">Word Designators</a>, Up: <a href="#History-Interaction" accesskey="u" rel="up">History Expansion</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Event-Designators-1"></span><h4 class="subsection">9.3.1 Event Designators</h4>
<span id="index-event-designators"></span>
@@ -12932,31 +12997,31 @@ position in the history list.
<span id="index-history-events"></span>
</p>
<dl compact="compact">
-<dt><code>!</code></dt>
+<dt><span><code>!</code></span></dt>
<dd><p>Start a history substitution, except when followed by a space, tab,
the end of the line, &lsquo;<samp>=</samp>&rsquo; or &lsquo;<samp>(</samp>&rsquo; (when the
<code>extglob</code> shell option is enabled using the <code>shopt</code> builtin).
</p>
</dd>
-<dt><code>!<var>n</var></code></dt>
+<dt><span><code>!<var>n</var></code></span></dt>
<dd><p>Refer to command line <var>n</var>.
</p>
</dd>
-<dt><code>!-<var>n</var></code></dt>
+<dt><span><code>!-<var>n</var></code></span></dt>
<dd><p>Refer to the command <var>n</var> lines back.
</p>
</dd>
-<dt><code>!!</code></dt>
+<dt><span><code>!!</code></span></dt>
<dd><p>Refer to the previous command. This is a synonym for &lsquo;<samp>!-1</samp>&rsquo;.
</p>
</dd>
-<dt><code>!<var>string</var></code></dt>
+<dt><span><code>!<var>string</var></code></span></dt>
<dd><p>Refer to the most recent command
preceding the current position in the history list
starting with <var>string</var>.
</p>
</dd>
-<dt><code>!?<var>string</var>[?]</code></dt>
+<dt><span><code>!?<var>string</var>[?]</code></span></dt>
<dd><p>Refer to the most recent command
preceding the current position in the history list
containing <var>string</var>.
@@ -12967,22 +13032,24 @@ If <var>string</var> is missing, the string from the most recent search is used;
it is an error if there is no previous search string.
</p>
</dd>
-<dt><code>^<var>string1</var>^<var>string2</var>^</code></dt>
+<dt><span><code>^<var>string1</var>^<var>string2</var>^</code></span></dt>
<dd><p>Quick Substitution. Repeat the last command, replacing <var>string1</var>
with <var>string2</var>. Equivalent to
<code>!!:s^<var>string1</var>^<var>string2</var>^</code>.
</p>
</dd>
-<dt><code>!#</code></dt>
+<dt><span><code>!#</code></span></dt>
<dd><p>The entire command line typed so far.
</p>
</dd>
</dl>
<hr>
-<span id="Word-Designators"></span><div class="header">
+</div>
+<div class="subsection" id="Word-Designators">
+<div class="header">
<p>
-Next: <a href="#Modifiers" accesskey="n" rel="next">Modifiers</a>, Previous: <a href="#Event-Designators" accesskey="p" rel="prev">Event Designators</a>, Up: <a href="#History-Interaction" accesskey="u" rel="up">History Interaction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Modifiers" accesskey="n" rel="next">Modifiers</a>, Previous: <a href="#Event-Designators" accesskey="p" rel="prev">Event Designators</a>, Up: <a href="#History-Interaction" accesskey="u" rel="up">History Expansion</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Word-Designators-1"></span><h4 class="subsection">9.3.2 Word Designators</h4>
@@ -12996,17 +13063,17 @@ inserted into the current line separated by single spaces.
<p>For example,
</p>
<dl compact="compact">
-<dt><code>!!</code></dt>
+<dt><span><code>!!</code></span></dt>
<dd><p>designates the preceding command. When you type this, the preceding
command is repeated in toto.
</p>
</dd>
-<dt><code>!!:$</code></dt>
+<dt><span><code>!!:$</code></span></dt>
<dd><p>designates the last argument of the preceding command. This may be
shortened to <code>!$</code>.
</p>
</dd>
-<dt><code>!fi:2</code></dt>
+<dt><span><code>!fi:2</code></span></dt>
<dd><p>designates the second argument of the most recent command starting with
the letters <code>fi</code>.
</p></dd>
@@ -13015,42 +13082,42 @@ the letters <code>fi</code>.
<p>Here are the word designators:
</p>
<dl compact="compact">
-<dt><code>0 (zero)</code></dt>
+<dt><span><code>0 (zero)</code></span></dt>
<dd><p>The <code>0</code>th word. For many applications, this is the command word.
</p>
</dd>
-<dt><code><var>n</var></code></dt>
+<dt><span><code><var>n</var></code></span></dt>
<dd><p>The <var>n</var>th word.
</p>
</dd>
-<dt><code>^</code></dt>
+<dt><span><code>^</code></span></dt>
<dd><p>The first argument; that is, word 1.
</p>
</dd>
-<dt><code>$</code></dt>
+<dt><span><code>$</code></span></dt>
<dd><p>The last argument.
</p>
</dd>
-<dt><code>%</code></dt>
+<dt><span><code>%</code></span></dt>
<dd><p>The first word matched by the most recent &lsquo;<samp>?<var>string</var>?</samp>&rsquo; search,
if the search string begins with a character that is part of a word.
</p>
</dd>
-<dt><code><var>x</var>-<var>y</var></code></dt>
+<dt><span><code><var>x</var>-<var>y</var></code></span></dt>
<dd><p>A range of words; &lsquo;<samp>-<var>y</var></samp>&rsquo; abbreviates &lsquo;<samp>0-<var>y</var></samp>&rsquo;.
</p>
</dd>
-<dt><code>*</code></dt>
+<dt><span><code>*</code></span></dt>
<dd><p>All of the words, except the <code>0</code>th. This is a synonym for &lsquo;<samp>1-$</samp>&rsquo;.
It is not an error to use &lsquo;<samp>*</samp>&rsquo; if there is just one word in the event;
the empty string is returned in that case.
</p>
</dd>
-<dt><code><var>x</var>*</code></dt>
+<dt><span><code><var>x</var>*</code></span></dt>
<dd><p>Abbreviates &lsquo;<samp><var>x</var>-$</samp>&rsquo;
</p>
</dd>
-<dt><code><var>x</var>-</code></dt>
+<dt><span><code><var>x</var>-</code></span></dt>
<dd><p>Abbreviates &lsquo;<samp><var>x</var>-$</samp>&rsquo; like &lsquo;<samp><var>x</var>*</samp>&rsquo;, but omits the last word.
If &lsquo;<samp>x</samp>&rsquo; is missing, it defaults to 0.
</p>
@@ -13061,9 +13128,11 @@ If &lsquo;<samp>x</samp>&rsquo; is missing, it defaults to 0.
previous command is used as the event.
</p>
<hr>
-<span id="Modifiers"></span><div class="header">
+</div>
+<div class="subsection" id="Modifiers">
+<div class="header">
<p>
-Previous: <a href="#Word-Designators" accesskey="p" rel="prev">Word Designators</a>, Up: <a href="#History-Interaction" accesskey="u" rel="up">History Interaction</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Previous: <a href="#Word-Designators" accesskey="p" rel="prev">Word Designators</a>, Up: <a href="#History-Interaction" accesskey="u" rel="up">History Expansion</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Modifiers-1"></span><h4 class="subsection">9.3.3 Modifiers</h4>
@@ -13072,39 +13141,39 @@ of the following modifiers, each preceded by a &lsquo;<samp>:</samp>&rsquo;.
These modify, or edit, the word or words selected from the history event.
</p>
<dl compact="compact">
-<dt><code>h</code></dt>
+<dt><span><code>h</code></span></dt>
<dd><p>Remove a trailing pathname component, leaving only the head.
</p>
</dd>
-<dt><code>t</code></dt>
+<dt><span><code>t</code></span></dt>
<dd><p>Remove all leading pathname components, leaving the tail.
</p>
</dd>
-<dt><code>r</code></dt>
+<dt><span><code>r</code></span></dt>
<dd><p>Remove a trailing suffix of the form &lsquo;<samp>.<var>suffix</var></samp>&rsquo;, leaving
the basename.
</p>
</dd>
-<dt><code>e</code></dt>
+<dt><span><code>e</code></span></dt>
<dd><p>Remove all but the trailing suffix.
</p>
</dd>
-<dt><code>p</code></dt>
+<dt><span><code>p</code></span></dt>
<dd><p>Print the new command but do not execute it.
</p>
</dd>
-<dt><code>q</code></dt>
+<dt><span><code>q</code></span></dt>
<dd><p>Quote the substituted words, escaping further substitutions.
</p>
</dd>
-<dt><code>x</code></dt>
+<dt><span><code>x</code></span></dt>
<dd><p>Quote the substituted words as with &lsquo;<samp>q</samp>&rsquo;,
but break into words at spaces, tabs, and newlines.
The &lsquo;<samp>q</samp>&rsquo; and &lsquo;<samp>x</samp>&rsquo; modifiers are mutually exclusive; the last one
supplied is used.
</p>
</dd>
-<dt><code>s/<var>old</var>/<var>new</var>/</code></dt>
+<dt><span><code>s/<var>old</var>/<var>new</var>/</code></span></dt>
<dd><p>Substitute <var>new</var> for the first occurrence of <var>old</var> in the
event line.
Any character may be used as the delimiter in place of &lsquo;<samp>/</samp>&rsquo;.
@@ -13117,23 +13186,23 @@ substituted, or, if no previous history substitutions took place,
the last <var>string</var>
in a !?<var>string</var><code>[?]</code>
search.
-If <var>new</var> is is null, each matching <var>old</var> is deleted.
+If <var>new</var> is null, each matching <var>old</var> is deleted.
The final delimiter is optional if it is the last
character on the input line.
</p>
</dd>
-<dt><code>&amp;</code></dt>
+<dt><span><code>&amp;</code></span></dt>
<dd><p>Repeat the previous substitution.
</p>
</dd>
-<dt><code>g</code></dt>
-<dt><code>a</code></dt>
+<dt><span><code>g</code></span></dt>
+<dt><span><code>a</code></span></dt>
<dd><p>Cause changes to be applied over the entire event line. Used in
conjunction with &lsquo;<samp>s</samp>&rsquo;, as in <code>gs/<var>old</var>/<var>new</var>/</code>,
or with &lsquo;<samp>&amp;</samp>&rsquo;.
</p>
</dd>
-<dt><code>G</code></dt>
+<dt><span><code>G</code></span></dt>
<dd><p>Apply the following &lsquo;<samp>s</samp>&rsquo; or &lsquo;<samp>&amp;</samp>&rsquo; modifier once to each word
in the event.
</p>
@@ -13141,9 +13210,13 @@ in the event.
</dl>
<hr>
-<span id="Installing-Bash"></span><div class="header">
+</div>
+</div>
+</div>
+<div class="chapter" id="Installing-Bash">
+<div class="header">
<p>
-Next: <a href="#Reporting-Bugs" accesskey="n" rel="next">Reporting Bugs</a>, Previous: <a href="#Using-History-Interactively" accesskey="p" rel="prev">Using History Interactively</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Reporting-Bugs" accesskey="n" rel="next">Reporting Bugs</a>, Previous: <a href="#Using-History-Interactively" accesskey="p" rel="prev">Using History Interactively</a>, Up: <a href="#Top" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Installing-Bash-1"></span><h2 class="chapter">10 Installing Bash</h2>
@@ -13154,32 +13227,20 @@ non-Unix systems such as BeOS and Interix.
Other independent ports exist for
<small>MS-DOS</small>, <small>OS/2</small>, and Windows platforms.
</p>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Basic-Installation" accesskey="1">Basic Installation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Installation instructions.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Compilers-and-Options" accesskey="2">Compilers and Options</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to set special options for various
- systems.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Compiling-For-Multiple-Architectures" accesskey="3">Compiling For Multiple Architectures</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to compile Bash for more
- than one kind of system from
- the same source tree.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Installation-Names" accesskey="4">Installation Names</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to set the various paths used by the installation.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Specifying-the-System-Type" accesskey="5">Specifying the System Type</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to configure Bash for a particular system.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Sharing-Defaults" accesskey="6">Sharing Defaults</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to share default configuration values among GNU
- programs.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Operation-Controls" accesskey="7">Operation Controls</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Options recognized by the configuration program.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Optional-Features" accesskey="8">Optional Features</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">How to enable and disable optional features when
- building Bash.
-</td></tr>
-</table>
+<ul class="section-toc">
+<li><a href="#Basic-Installation" accesskey="1">Basic Installation</a></li>
+<li><a href="#Compilers-and-Options" accesskey="2">Compilers and Options</a></li>
+<li><a href="#Compiling-For-Multiple-Architectures" accesskey="3">Compiling For Multiple Architectures</a></li>
+<li><a href="#Installation-Names" accesskey="4">Installation Names</a></li>
+<li><a href="#Specifying-the-System-Type" accesskey="5">Specifying the System Type</a></li>
+<li><a href="#Sharing-Defaults" accesskey="6">Sharing Defaults</a></li>
+<li><a href="#Operation-Controls" accesskey="7">Operation Controls</a></li>
+<li><a href="#Optional-Features" accesskey="8">Optional Features</a></li>
+</ul>
<hr>
-<span id="Basic-Installation"></span><div class="header">
+<div class="section" id="Basic-Installation">
+<div class="header">
<p>
Next: <a href="#Compilers-and-Options" accesskey="n" rel="next">Compilers and Options</a>, Up: <a href="#Installing-Bash" accesskey="u" rel="up">Installing Bash</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -13210,7 +13271,14 @@ reporting script.
</li><li> Optionally, type &lsquo;<samp>make tests</samp>&rsquo; to run the Bash test suite.
</li><li> Type &lsquo;<samp>make install</samp>&rsquo; to install <code>bash</code> and <code>bashbug</code>.
-This will also install the manual pages and Info file.
+This will also install the manual pages and Info file, message translation
+files, some supplemental documentation, a number of example loadable
+builtin commands, and a set of header files for developing loadable
+builtins.
+You may need additional privileges to install <code>bash</code> to your
+desired destination, so &lsquo;<samp>sudo make install</samp>&rsquo; might be required.
+More information about controlling the locations where <code>bash</code> and
+other files are installed is below (see <a href="#Installation-Names">Installation Names</a>).
</li></ol>
@@ -13218,7 +13286,7 @@ This will also install the manual pages and Info file.
values for various system-dependent variables used during
compilation. It uses those values to create a <samp>Makefile</samp> in
each directory of the package (the top directory, the
-<samp>builtins</samp>, <samp>doc</samp>, and <samp>support</samp> directories,
+<samp>builtins</samp>, <samp>doc</samp>, <samp>po</samp>, and <samp>support</samp> directories,
each directory under <samp>lib</samp>, and several others). It also creates a
<samp>config.h</samp> file containing system-dependent definitions.
Finally, it creates a shell script named <code>config.status</code> that you
@@ -13262,10 +13330,10 @@ to do them, and mail diffs or instructions to
considered for the next release.
</p>
<p>The file <samp>configure.ac</samp> is used to create <code>configure</code>
-by a program called Autoconf. You only need
-<samp>configure.ac</samp> if you want to change it or regenerate
-<code>configure</code> using a newer version of Autoconf. If
-you do this, make sure you are using Autoconf version 2.50 or
+by a program called Autoconf.
+You only need <samp>configure.ac</samp> if you want to change it or regenerate
+<code>configure</code> using a newer version of Autoconf.
+If you do this, make sure you are using Autoconf version 2.69 or
newer.
</p>
<p>You can remove the program binaries and object files from the
@@ -13274,7 +13342,9 @@ files that <code>configure</code> created (so you can compile Bash for
a different kind of computer), type &lsquo;<samp>make distclean</samp>&rsquo;.
</p>
<hr>
-<span id="Compilers-and-Options"></span><div class="header">
+</div>
+<div class="section" id="Compilers-and-Options">
+<div class="header">
<p>
Next: <a href="#Compiling-For-Multiple-Architectures" accesskey="n" rel="next">Compiling For Multiple Architectures</a>, Previous: <a href="#Basic-Installation" accesskey="p" rel="prev">Basic Installation</a>, Up: <a href="#Installing-Bash" accesskey="u" rel="up">Installing Bash</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -13300,7 +13370,9 @@ can do that on the command line like this:
is available.
</p>
<hr>
-<span id="Compiling-For-Multiple-Architectures"></span><div class="header">
+</div>
+<div class="section" id="Compiling-For-Multiple-Architectures">
+<div class="header">
<p>
Next: <a href="#Installation-Names" accesskey="n" rel="next">Installation Names</a>, Previous: <a href="#Compilers-and-Options" accesskey="p" rel="prev">Compilers and Options</a>, Up: <a href="#Installing-Bash" accesskey="u" rel="up">Installing Bash</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -13319,7 +13391,7 @@ supply the <samp>--srcdir=PATH</samp> argument to tell <code>configure</code> wh
source files are. <code>configure</code> automatically checks for the
source code in the directory that <code>configure</code> is in and in &lsquo;..&rsquo;.
</p>
-<p>If you have to use a <code>make</code> that does not supports the <code>VPATH</code>
+<p>If you have to use a <code>make</code> that does not support the <code>VPATH</code>
variable, you can compile Bash for one architecture at a
time in the source code directory. After you have installed
Bash for one architecture, use &lsquo;<samp>make distclean</samp>&rsquo; before
@@ -13340,35 +13412,69 @@ Bash for at least one architecture before you can create build
directories for other architectures.
</p>
<hr>
-<span id="Installation-Names"></span><div class="header">
+</div>
+<div class="section" id="Installation-Names">
+<div class="header">
<p>
Next: <a href="#Specifying-the-System-Type" accesskey="n" rel="next">Specifying the System Type</a>, Previous: <a href="#Compiling-For-Multiple-Architectures" accesskey="p" rel="prev">Compiling For Multiple Architectures</a>, Up: <a href="#Installing-Bash" accesskey="u" rel="up">Installing Bash</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Installation-Names-1"></span><h3 class="section">10.4 Installation Names</h3>
<p>By default, &lsquo;<samp>make install</samp>&rsquo; will install into
-<samp>/usr/local/bin</samp>, <samp>/usr/local/man</samp>, etc. You can
-specify an installation prefix other than <samp>/usr/local</samp> by
+<samp>/usr/local/bin</samp>, <samp>/usr/local/man</samp>, etc.;
+that is, the <em>installation prefix</em> defaults to <samp>/usr/local</samp>.
+You can specify an installation prefix other than <samp>/usr/local</samp> by
giving <code>configure</code> the option <samp>--prefix=<var>PATH</var></samp>,
-or by specifying a value for the <code>DESTDIR</code> &lsquo;<samp>make</samp>&rsquo;
-variable when running &lsquo;<samp>make install</samp>&rsquo;.
+or by specifying a value for the <code>prefix</code> &lsquo;<samp>make</samp>&rsquo;
+variable when running &lsquo;<samp>make install</samp>&rsquo;
+(e.g., &lsquo;<samp>make install prefix=<var>PATH</var></samp>&rsquo;).
+The <code>prefix</code> variable provides a default for <code>exec_prefix</code> and
+other variables used when installing bash.
</p>
<p>You can specify separate installation prefixes for
architecture-specific files and architecture-independent files.
If you give <code>configure</code> the option
<samp>--exec-prefix=<var>PATH</var></samp>, &lsquo;<samp>make install</samp>&rsquo; will use
<var>PATH</var> as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
+Documentation and other data files will still use the regular prefix.
+</p>
+<p>If you would like to change the installation locations for a single run,
+you can specify these variables as arguments to <code>make</code>:
+&lsquo;<samp>make install exec_prefix=/</samp>&rsquo; will install <code>bash</code> and
+<code>bashbug</code> into <samp>/bin</samp> instead of the default <samp>/usr/local/bin</samp>.
+</p>
+<p>If you want to see the files bash will install and where it will install
+them without changing anything on your system, specify the variable
+<code>DESTDIR</code> as an argument to <code>make</code>. Its value should be the
+absolute directory path you&rsquo;d like to use as the root of your sample
+installation tree. For example,
+</p>
+<div class="example">
+<pre class="example">mkdir /fs1/bash-install
+make install DESTDIR=/fs1/bash-install
+</pre></div>
+
+<p>will install <code>bash</code> into <samp>/fs1/bash-install/usr/local/bin/bash</samp>,
+the documentation into directories within
+<samp>/fs1/bash-install/usr/local/share</samp>, the example loadable builtins into
+<samp>/fs1/bash-install/usr/local/lib/bash</samp>, and so on.
+You can use the usual <code>exec_prefix</code> and <code>prefix</code> variables to alter
+the directory paths beneath the value of <code>DESTDIR</code>.
+</p>
+<p>The GNU Makefile standards provide a more complete description of these
+variables and their effects.
</p>
<hr>
-<span id="Specifying-the-System-Type"></span><div class="header">
+</div>
+<div class="section" id="Specifying-the-System-Type">
+<div class="header">
<p>
Next: <a href="#Sharing-Defaults" accesskey="n" rel="next">Sharing Defaults</a>, Previous: <a href="#Installation-Names" accesskey="p" rel="prev">Installation Names</a>, Up: <a href="#Installing-Bash" accesskey="u" rel="up">Installing Bash</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Specifying-the-System-Type-1"></span><h3 class="section">10.5 Specifying the System Type</h3>
<p>There may be some features <code>configure</code> can not figure out
-automatically, but need to determine by the type of host Bash
+automatically, but needs to determine by the type of host Bash
will run on. Usually <code>configure</code> can figure that
out, but if it prints a message saying it can not guess the host
type, give it the <samp>--host=TYPE</samp> option. &lsquo;<samp>TYPE</samp>&rsquo; can
@@ -13380,7 +13486,9 @@ or a canonical name with three fields: &lsquo;<samp>CPU-COMPANY-SYSTEM</samp>&rs
values of each field.
</p>
<hr>
-<span id="Sharing-Defaults"></span><div class="header">
+</div>
+<div class="section" id="Sharing-Defaults">
+<div class="header">
<p>
Next: <a href="#Operation-Controls" accesskey="n" rel="next">Operation Controls</a>, Previous: <a href="#Specifying-the-System-Type" accesskey="p" rel="prev">Specifying the System Type</a>, Up: <a href="#Installing-Bash" accesskey="u" rel="up">Installing Bash</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -13397,7 +13505,9 @@ script. A warning: the Bash <code>configure</code> looks for a site script,
but not all <code>configure</code> scripts do.
</p>
<hr>
-<span id="Operation-Controls"></span><div class="header">
+</div>
+<div class="section" id="Operation-Controls">
+<div class="header">
<p>
Next: <a href="#Optional-Features" accesskey="n" rel="next">Optional Features</a>, Previous: <a href="#Sharing-Defaults" accesskey="p" rel="prev">Sharing Defaults</a>, Up: <a href="#Installing-Bash" accesskey="u" rel="up">Installing Bash</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -13407,29 +13517,29 @@ Next: <a href="#Optional-Features" accesskey="n" rel="next">Optional Features</a
operates.
</p>
<dl compact="compact">
-<dt><code>--cache-file=<var>file</var></code></dt>
+<dt><span><code>--cache-file=<var>file</var></code></span></dt>
<dd><p>Use and save the results of the tests in
<var>file</var> instead of <samp>./config.cache</samp>. Set <var>file</var> to
<samp>/dev/null</samp> to disable caching, for debugging
<code>configure</code>.
</p>
</dd>
-<dt><code>--help</code></dt>
+<dt><span><code>--help</code></span></dt>
<dd><p>Print a summary of the options to <code>configure</code>, and exit.
</p>
</dd>
-<dt><code>--quiet</code></dt>
-<dt><code>--silent</code></dt>
-<dt><code>-q</code></dt>
+<dt><span><code>--quiet</code></span></dt>
+<dt><span><code>--silent</code></span></dt>
+<dt><span><code>-q</code></span></dt>
<dd><p>Do not print messages saying which checks are being made.
</p>
</dd>
-<dt><code>--srcdir=<var>dir</var></code></dt>
+<dt><span><code>--srcdir=<var>dir</var></code></span></dt>
<dd><p>Look for the Bash source code in directory <var>dir</var>. Usually
<code>configure</code> can determine that directory automatically.
</p>
</dd>
-<dt><code>--version</code></dt>
+<dt><span><code>--version</code></span></dt>
<dd><p>Print the version of Autoconf used to generate the <code>configure</code>
script, and exit.
</p></dd>
@@ -13439,7 +13549,9 @@ script, and exit.
options. &lsquo;<samp>configure --help</samp>&rsquo; prints the complete list.
</p>
<hr>
-<span id="Optional-Features"></span><div class="header">
+</div>
+<div class="section" id="Optional-Features">
+<div class="header">
<p>
Previous: <a href="#Operation-Controls" accesskey="p" rel="prev">Operation Controls</a>, Up: <a href="#Installing-Bash" accesskey="u" rel="up">Installing Bash</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -13457,11 +13569,11 @@ that is enabled by default, use <samp>--disable-<var>feature</var></samp>.
<samp>--with-</samp> options that the Bash <code>configure</code> recognizes.
</p>
<dl compact="compact">
-<dt><code>--with-afs</code></dt>
+<dt><span><code>--with-afs</code></span></dt>
<dd><p>Define if you are using the Andrew File System from Transarc.
</p>
</dd>
-<dt><code>--with-bash-malloc</code></dt>
+<dt><span><code>--with-bash-malloc</code></span></dt>
<dd><p>Use the Bash version of
<code>malloc</code> in the directory <samp>lib/malloc</samp>. This is not the same
<code>malloc</code> that appears in <small>GNU</small> libc, but an older version
@@ -13473,17 +13585,17 @@ which this should be turned off, and <code>configure</code> disables this
option automatically for a number of systems.
</p>
</dd>
-<dt><code>--with-curses</code></dt>
+<dt><span><code>--with-curses</code></span></dt>
<dd><p>Use the curses library instead of the termcap library. This should
be supplied if your system has an inadequate or incomplete termcap
database.
</p>
</dd>
-<dt><code>--with-gnu-malloc</code></dt>
+<dt><span><code>--with-gnu-malloc</code></span></dt>
<dd><p>A synonym for <code>--with-bash-malloc</code>.
</p>
</dd>
-<dt><code>--with-installed-readline[=<var>PREFIX</var>]</code></dt>
+<dt><span><code>--with-installed-readline[=<var>PREFIX</var>]</code></span></dt>
<dd><p>Define this to make Bash link with a locally-installed version of Readline
rather than the version in <samp>lib/readline</samp>. This works only with
Readline 5.0 and later versions. If <var>PREFIX</var> is <code>yes</code> or not
@@ -13500,255 +13612,276 @@ the installed version of Readline in subdirectories of that directory
<var>PREFIX</var>/<code>lib</code>).
</p>
</dd>
-<dt><code>--with-purify</code></dt>
-<dd><p>Define this to use the Purify memory allocation checker from Rational
-Software.
+<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 of the version in <samp>lib/intl</samp>.
+</p>
+</dd>
+<dt><span><code>--with-libiconv-prefix[=<var>PREFIX</var>]</code></span></dt>
+<dd><p>Define this to make Bash look for libiconv in <var>PREFIX</var> instead of the
+standard system locations. There is no version included with Bash.
</p>
</dd>
-<dt><code>--enable-minimal-config</code></dt>
+<dt><span><code>--enable-minimal-config</code></span></dt>
<dd><p>This produces a shell with minimal features, close to the historical
Bourne shell.
</p></dd>
</dl>
<p>There are several <samp>--enable-</samp> options that alter how Bash is
-compiled and linked, rather than changing run-time features.
+compiled, linked, and installed, rather than changing run-time features.
</p>
<dl compact="compact">
-<dt><code>--enable-largefile</code></dt>
+<dt><span><code>--enable-largefile</code></span></dt>
<dd><p>Enable support for <a href="http://www.unix.org/version2/whatsnew/lfs20mar.html">large files</a> if the operating system requires special compiler options
to build programs which can access large files. This is enabled by
default, if the operating system provides large file support.
</p>
</dd>
-<dt><code>--enable-profiling</code></dt>
+<dt><span><code>--enable-profiling</code></span></dt>
<dd><p>This builds a Bash binary that produces profiling information to be
processed by <code>gprof</code> each time it is executed.
</p>
</dd>
-<dt><code>--enable-static-link</code></dt>
+<dt><span><code>--enable-separate-helpfiles</code></span></dt>
+<dd><p>Use external files for the documentation displayed by the <code>help</code> builtin
+instead of storing the text internally.
+</p>
+</dd>
+<dt><span><code>--enable-static-link</code></span></dt>
<dd><p>This causes Bash to be linked statically, if <code>gcc</code> is being used.
This could be used to build a version to use as root&rsquo;s shell.
-</p></dd>
+</p>
+</dd>
</dl>
<p>The &lsquo;<samp>minimal-config</samp>&rsquo; option can be used to disable all of
the following options, but it is processed first, so individual
options may be enabled using &lsquo;<samp>enable-<var>feature</var></samp>&rsquo;.
</p>
-<p>All of the following options except for &lsquo;<samp>disabled-builtins</samp>&rsquo;,
-&lsquo;<samp>direxpand-default</samp>&rsquo;, and
+<p>All of the following options except for
+&lsquo;<samp>alt-array-implementation</samp>&rsquo;,
+&lsquo;<samp>disabled-builtins</samp>&rsquo;,
+&lsquo;<samp>direxpand-default</samp>&rsquo;,
+&lsquo;<samp>strict-posix-default</samp>&rsquo;,
+and
&lsquo;<samp>xpg-echo-default</samp>&rsquo; are
enabled by default, unless the operating system does not provide the
necessary support.
</p>
<dl compact="compact">
-<dt><code>--enable-alias</code></dt>
+<dt><span><code>--enable-alias</code></span></dt>
<dd><p>Allow alias expansion and include the <code>alias</code> and <code>unalias</code>
builtins (see <a href="#Aliases">Aliases</a>).
</p>
</dd>
-<dt><code>--enable-arith-for-command</code></dt>
+<dt><span><code>--enable-alt-array-implementation</code></span></dt>
+<dd><p>This builds bash using an alternate implementation of arrays
+(see <a href="#Arrays">Arrays</a>) that provides faster access at the expense of using
+more memory (sometimes many times more, depending on how sparse an array is).
+</p>
+</dd>
+<dt><span><code>--enable-arith-for-command</code></span></dt>
<dd><p>Include support for the alternate form of the <code>for</code> command
that behaves like the C language <code>for</code> statement
(see <a href="#Looping-Constructs">Looping Constructs</a>).
</p>
</dd>
-<dt><code>--enable-array-variables</code></dt>
+<dt><span><code>--enable-array-variables</code></span></dt>
<dd><p>Include support for one-dimensional array shell variables
(see <a href="#Arrays">Arrays</a>).
</p>
</dd>
-<dt><code>--enable-bang-history</code></dt>
+<dt><span><code>--enable-bang-history</code></span></dt>
<dd><p>Include support for <code>csh</code>-like history substitution
-(see <a href="#History-Interaction">History Interaction</a>).
+(see <a href="#History-Interaction">History Expansion</a>).
</p>
</dd>
-<dt><code>--enable-brace-expansion</code></dt>
+<dt><span><code>--enable-brace-expansion</code></span></dt>
<dd><p>Include <code>csh</code>-like brace expansion
( <code>b{a,b}c</code> &rarr; <code>bac bbc</code> ).
See <a href="#Brace-Expansion">Brace Expansion</a>, for a complete description.
</p>
</dd>
-<dt><code>--enable-casemod-attributes</code></dt>
+<dt><span><code>--enable-casemod-attributes</code></span></dt>
<dd><p>Include support for case-modifying attributes in the <code>declare</code> builtin
-and assignment statements. Variables with the <var>uppercase</var> attribute,
+and assignment statements. Variables with the <code>uppercase</code> attribute,
for example, will have their values converted to uppercase upon assignment.
</p>
</dd>
-<dt><code>--enable-casemod-expansion</code></dt>
+<dt><span><code>--enable-casemod-expansion</code></span></dt>
<dd><p>Include support for case-modifying word expansions.
</p>
</dd>
-<dt><code>--enable-command-timing</code></dt>
+<dt><span><code>--enable-command-timing</code></span></dt>
<dd><p>Include support for recognizing <code>time</code> as a reserved word and for
displaying timing statistics for the pipeline following <code>time</code>
(see <a href="#Pipelines">Pipelines</a>).
This allows pipelines as well as shell builtins and functions to be timed.
</p>
</dd>
-<dt><code>--enable-cond-command</code></dt>
+<dt><span><code>--enable-cond-command</code></span></dt>
<dd><p>Include support for the <code>[[</code> conditional command.
(see <a href="#Conditional-Constructs">Conditional Constructs</a>).
</p>
</dd>
-<dt><code>--enable-cond-regexp</code></dt>
+<dt><span><code>--enable-cond-regexp</code></span></dt>
<dd><p>Include support for matching <small>POSIX</small> regular expressions using the
&lsquo;<samp>=~</samp>&rsquo; binary operator in the <code>[[</code> conditional command.
(see <a href="#Conditional-Constructs">Conditional Constructs</a>).
</p>
</dd>
-<dt><code>--enable-coprocesses</code></dt>
+<dt><span><code>--enable-coprocesses</code></span></dt>
<dd><p>Include support for coprocesses and the <code>coproc</code> reserved word
(see <a href="#Pipelines">Pipelines</a>).
</p>
</dd>
-<dt><code>--enable-debugger</code></dt>
+<dt><span><code>--enable-debugger</code></span></dt>
<dd><p>Include support for the bash debugger (distributed separately).
</p>
</dd>
-<dt><code>--enable-dev-fd-stat-broken</code></dt>
+<dt><span><code>--enable-dev-fd-stat-broken</code></span></dt>
<dd><p>If calling <code>stat</code> on /dev/fd/<var>N</var> returns different results than
calling <code>fstat</code> on file descriptor <var>N</var>, supply this option to
enable a workaround.
This has implications for conditional commands that test file attributes.
</p>
</dd>
-<dt><code>--enable-direxpand-default</code></dt>
+<dt><span><code>--enable-direxpand-default</code></span></dt>
<dd><p>Cause the <code>direxpand</code> shell option (see <a href="#The-Shopt-Builtin">The Shopt Builtin</a>)
to be enabled by default when the shell starts.
It is normally disabled by default.
</p>
</dd>
-<dt><code>--enable-directory-stack</code></dt>
+<dt><span><code>--enable-directory-stack</code></span></dt>
<dd><p>Include support for a <code>csh</code>-like directory stack and the
<code>pushd</code>, <code>popd</code>, and <code>dirs</code> builtins
(see <a href="#The-Directory-Stack">The Directory Stack</a>).
</p>
</dd>
-<dt><code>--enable-disabled-builtins</code></dt>
+<dt><span><code>--enable-disabled-builtins</code></span></dt>
<dd><p>Allow builtin commands to be invoked via &lsquo;<samp>builtin xxx</samp>&rsquo;
even after <code>xxx</code> has been disabled using &lsquo;<samp>enable -n xxx</samp>&rsquo;.
-See <a href="#Bash-Builtins">Bash Builtins</a>, for details of the <code>builtin</code> and
+See <a href="#Bash-Builtins">Bash Builtin Commands</a>, for details of the <code>builtin</code> and
<code>enable</code> builtin commands.
</p>
</dd>
-<dt><code>--enable-dparen-arithmetic</code></dt>
+<dt><span><code>--enable-dparen-arithmetic</code></span></dt>
<dd><p>Include support for the <code>((&hellip;))</code> command
(see <a href="#Conditional-Constructs">Conditional Constructs</a>).
</p>
</dd>
-<dt><code>--enable-extended-glob</code></dt>
+<dt><span><code>--enable-extended-glob</code></span></dt>
<dd><p>Include support for the extended pattern matching features described
above under <a href="#Pattern-Matching">Pattern Matching</a>.
</p>
</dd>
-<dt><code>--enable-extended-glob-default</code></dt>
-<dd><p>Set the default value of the <var>extglob</var> shell option described
+<dt><span><code>--enable-extended-glob-default</code></span></dt>
+<dd><p>Set the default value of the <code>extglob</code> shell option described
above under <a href="#The-Shopt-Builtin">The Shopt Builtin</a> to be enabled.
</p>
</dd>
-<dt><code>--enable-function-import</code></dt>
+<dt><span><code>--enable-function-import</code></span></dt>
<dd><p>Include support for importing function definitions exported by another
instance of the shell from the environment. This option is enabled by
default.
</p>
</dd>
-<dt><code>--enable-glob-asciirange-default</code></dt>
-<dd><p>Set the default value of the <var>globasciiranges</var> shell option described
+<dt><span><code>--enable-glob-asciirange-default</code></span></dt>
+<dd><p>Set the default value of the <code>globasciiranges</code> shell option described
above under <a href="#The-Shopt-Builtin">The Shopt Builtin</a> to be enabled.
This controls the behavior of character ranges when used in pattern matching
bracket expressions.
</p>
</dd>
-<dt><code>--enable-help-builtin</code></dt>
+<dt><span><code>--enable-help-builtin</code></span></dt>
<dd><p>Include the <code>help</code> builtin, which displays help on shell builtins and
-variables (see <a href="#Bash-Builtins">Bash Builtins</a>).
+variables (see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
</p>
</dd>
-<dt><code>--enable-history</code></dt>
+<dt><span><code>--enable-history</code></span></dt>
<dd><p>Include command history and the <code>fc</code> and <code>history</code>
builtin commands (see <a href="#Bash-History-Facilities">Bash History Facilities</a>).
</p>
</dd>
-<dt><code>--enable-job-control</code></dt>
+<dt><span><code>--enable-job-control</code></span></dt>
<dd><p>This enables the job control features (see <a href="#Job-Control">Job Control</a>),
if the operating system supports them.
</p>
</dd>
-<dt><code>--enable-multibyte</code></dt>
+<dt><span><code>--enable-multibyte</code></span></dt>
<dd><p>This enables support for multibyte characters if the operating
system provides the necessary support.
</p>
</dd>
-<dt><code>--enable-net-redirections</code></dt>
+<dt><span><code>--enable-net-redirections</code></span></dt>
<dd><p>This enables the special handling of filenames of the form
<code>/dev/tcp/<var>host</var>/<var>port</var></code> and
<code>/dev/udp/<var>host</var>/<var>port</var></code>
when used in redirections (see <a href="#Redirections">Redirections</a>).
</p>
</dd>
-<dt><code>--enable-process-substitution</code></dt>
+<dt><span><code>--enable-process-substitution</code></span></dt>
<dd><p>This enables process substitution (see <a href="#Process-Substitution">Process Substitution</a>) if
the operating system provides the necessary support.
</p>
</dd>
-<dt><code>--enable-progcomp</code></dt>
+<dt><span><code>--enable-progcomp</code></span></dt>
<dd><p>Enable the programmable completion facilities
(see <a href="#Programmable-Completion">Programmable Completion</a>).
If Readline is not enabled, this option has no effect.
</p>
</dd>
-<dt><code>--enable-prompt-string-decoding</code></dt>
+<dt><span><code>--enable-prompt-string-decoding</code></span></dt>
<dd><p>Turn on the interpretation of a number of backslash-escaped characters
in the <code>$PS0</code>, <code>$PS1</code>, <code>$PS2</code>, and <code>$PS4</code> prompt
strings. See <a href="#Controlling-the-Prompt">Controlling the Prompt</a>, for a complete list of prompt
string escape sequences.
</p>
</dd>
-<dt><code>--enable-readline</code></dt>
+<dt><span><code>--enable-readline</code></span></dt>
<dd><p>Include support for command-line editing and history with the Bash
version of the Readline library (see <a href="#Command-Line-Editing">Command Line Editing</a>).
</p>
</dd>
-<dt><code>--enable-restricted</code></dt>
+<dt><span><code>--enable-restricted</code></span></dt>
<dd><p>Include support for a <em>restricted shell</em>. If this is enabled, Bash,
when called as <code>rbash</code>, enters a restricted mode. See
<a href="#The-Restricted-Shell">The Restricted Shell</a>, for a description of restricted mode.
</p>
</dd>
-<dt><code>--enable-select</code></dt>
+<dt><span><code>--enable-select</code></span></dt>
<dd><p>Include the <code>select</code> compound command, which allows the generation of
simple menus (see <a href="#Conditional-Constructs">Conditional Constructs</a>).
</p>
</dd>
-<dt><code>--enable-separate-helpfiles</code></dt>
-<dd><p>Use external files for the documentation displayed by the <code>help</code> builtin
-instead of storing the text internally.
-</p>
-</dd>
-<dt><code>--enable-single-help-strings</code></dt>
+<dt><span><code>--enable-single-help-strings</code></span></dt>
<dd><p>Store the text displayed by the <code>help</code> builtin as a single string for
each help topic. This aids in translating the text to different languages.
You may need to disable this if your compiler cannot handle very long string
literals.
</p>
</dd>
-<dt><code>--enable-strict-posix-default</code></dt>
+<dt><span><code>--enable-strict-posix-default</code></span></dt>
<dd><p>Make Bash <small>POSIX</small>-conformant by default (see <a href="#Bash-POSIX-Mode">Bash POSIX Mode</a>).
</p>
</dd>
-<dt><code>--enable-usg-echo-default</code></dt>
+<dt><span><code>--enable-translatable-strings</code></span></dt>
+<dd><p>Enable support for <code>$&quot;<var>string</var>&quot;</code> translatable strings
+(see <a href="#Locale-Translation">Locale-Specific Translation</a>).
+</p>
+</dd>
+<dt><span><code>--enable-usg-echo-default</code></span></dt>
<dd><p>A synonym for <code>--enable-xpg-echo-default</code>.
</p>
</dd>
-<dt><code>--enable-xpg-echo-default</code></dt>
+<dt><span><code>--enable-xpg-echo-default</code></span></dt>
<dd><p>Make the <code>echo</code> builtin expand backslash-escaped characters by default,
without requiring the <samp>-e</samp> option.
This sets the default value of the <code>xpg_echo</code> shell option to <code>on</code>,
which makes the Bash <code>echo</code> behave more like the version specified in
the Single Unix Specification, version 3.
-See <a href="#Bash-Builtins">Bash Builtins</a>, for a description of the escape sequences that
+See <a href="#Bash-Builtins">Bash Builtin Commands</a>, for a description of the escape sequences that
<code>echo</code> recognizes.
</p></dd>
</dl>
@@ -13762,9 +13895,12 @@ Read the comments associated with each definition for more
information about its effect.
</p>
<hr>
-<span id="Reporting-Bugs"></span><div class="header">
+</div>
+</div>
+<div class="appendix" id="Reporting-Bugs">
+<div class="header">
<p>
-Next: <a href="#Major-Differences-From-The-Bourne-Shell" accesskey="n" rel="next">Major Differences From The Bourne Shell</a>, Previous: <a href="#Installing-Bash" accesskey="p" rel="prev">Installing Bash</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Major-Differences-From-The-Bourne-Shell" accesskey="n" rel="next">Major Differences From The Bourne Shell</a>, Previous: <a href="#Installing-Bash" accesskey="p" rel="prev">Installing Bash</a>, Up: <a href="#Top" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Reporting-Bugs-1"></span><h2 class="appendix">Appendix A Reporting Bugs</h2>
@@ -13773,7 +13909,8 @@ But first, you should
make sure that it really is a bug, and that it appears in the latest
version of Bash.
The latest version of Bash is always available for FTP from
-<a href="ftp://ftp.gnu.org/pub/gnu/bash/">ftp://ftp.gnu.org/pub/gnu/bash/</a>.
+<a href="ftp://ftp.gnu.org/pub/gnu/bash/">ftp://ftp.gnu.org/pub/gnu/bash/</a> and from
+<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>Once you have determined that a bug actually exists, use the
<code>bashbug</code> command to submit a bug report.
@@ -13799,9 +13936,11 @@ the template it provides for filing a bug report.
<a href="mailto:bug-bash@gnu.org">bug-bash@gnu.org</a>.
</p>
<hr>
-<span id="Major-Differences-From-The-Bourne-Shell"></span><div class="header">
+</div>
+<div class="appendix" id="Major-Differences-From-The-Bourne-Shell">
+<div class="header">
<p>
-Next: <a href="#GNU-Free-Documentation-License" accesskey="n" rel="next">GNU Free Documentation License</a>, Previous: <a href="#Reporting-Bugs" accesskey="p" rel="prev">Reporting Bugs</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#GNU-Free-Documentation-License" accesskey="n" rel="next">GNU Free Documentation License</a>, Previous: <a href="#Reporting-Bugs" accesskey="p" rel="prev">Reporting Bugs</a>, Up: <a href="#Top" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Major-Differences-From-The-Bourne-Shell-1"></span><h2 class="appendix">Appendix B Major Differences From The Bourne Shell</h2>
@@ -13836,7 +13975,7 @@ The Bash history list maintains timestamp information and uses the
value of the <code>HISTTIMEFORMAT</code> variable to display it.
</li><li> Bash implements <code>csh</code>-like history expansion
-(see <a href="#History-Interaction">History Interaction</a>).
+(see <a href="#History-Interaction">History Expansion</a>).
</li><li> Bash has one-dimensional array variables (see <a href="#Arrays">Arrays</a>), and the
appropriate variable expansions and assignment syntax to use them.
@@ -13851,7 +13990,7 @@ is supported (see <a href="#ANSI_002dC-Quoting">ANSI-C Quoting</a>).
locale-specific translation of the characters between the double
quotes. The <samp>-D</samp>, <samp>--dump-strings</samp>, and <samp>--dump-po-strings</samp>
invocation options list the translatable strings found in a script
-(see <a href="#Locale-Translation">Locale Translation</a>).
+(see <a href="#Locale-Translation">Locale-Specific Translation</a>).
</li><li> Bash implements the <code>!</code> keyword to negate the return value of
a pipeline (see <a href="#Pipelines">Pipelines</a>).
@@ -13907,15 +14046,15 @@ which expands to the substring of <code>var</code>&rsquo;s value of length
(see <a href="#Shell-Parameter-Expansion">Shell Parameter Expansion</a>).
</li><li> The expansion
-<code>${var/[/]</code><var>pattern</var><code>[/</code><var>replacement</var><code>]}</code>,
+<code>${<var>var</var>/[/]</code><var>pattern</var><code>[/</code><var>replacement</var><code>]}</code>,
which matches <var>pattern</var> and replaces it with <var>replacement</var> in
-the value of <code>var</code>, is available (see <a href="#Shell-Parameter-Expansion">Shell Parameter Expansion</a>).
+the value of <var>var</var>, is available (see <a href="#Shell-Parameter-Expansion">Shell Parameter Expansion</a>).
</li><li> The expansion <code>${!<var>prefix</var>*}</code> expansion, which expands to
the names of all shell variables whose names begin with <var>prefix</var>,
is available (see <a href="#Shell-Parameter-Expansion">Shell Parameter Expansion</a>).
-</li><li> Bash has <var>indirect</var> variable expansion using <code>${!word}</code>
+</li><li> Bash has indirect variable expansion using <code>${!word}</code>
(see <a href="#Shell-Parameter-Expansion">Shell Parameter Expansion</a>).
</li><li> Bash can expand positional parameters beyond <code>$9</code> using
@@ -13944,8 +14083,8 @@ to negate the set of characters between the brackets.
The Bourne shell uses only &lsquo;<samp>!</samp>&rsquo;.
</li><li> Bash implements the full set of <small>POSIX</small> filename expansion operators,
-including <var>character classes</var>, <var>equivalence classes</var>, and
-<var>collating symbols</var> (see <a href="#Filename-Expansion">Filename Expansion</a>).
+including character classes, equivalence classes, and
+collating symbols (see <a href="#Filename-Expansion">Filename Expansion</a>).
</li><li> Bash implements extended pattern matching features when the <code>extglob</code>
shell option is enabled (see <a href="#Pattern-Matching">Pattern Matching</a>).
@@ -13955,7 +14094,7 @@ shell option is enabled (see <a href="#Pattern-Matching">Pattern Matching</a>).
</li><li> Bash functions are permitted to have local variables using the
<code>local</code> builtin, and thus useful recursive functions may be written
-(see <a href="#Bash-Builtins">Bash Builtins</a>).
+(see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
</li><li> Variable assignments preceding commands affect only that command, even
builtins and functions (see <a href="#Environment">Environment</a>).
@@ -13993,13 +14132,13 @@ physical modes.
</li><li> Bash allows a function to override a builtin with the same name, and provides
access to that builtin&rsquo;s functionality within the function via the
-<code>builtin</code> and <code>command</code> builtins (see <a href="#Bash-Builtins">Bash Builtins</a>).
+<code>builtin</code> and <code>command</code> builtins (see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
</li><li> The <code>command</code> builtin allows selective disabling of functions
-when command lookup is performed (see <a href="#Bash-Builtins">Bash Builtins</a>).
+when command lookup is performed (see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
</li><li> Individual builtins may be enabled or disabled using the <code>enable</code>
-builtin (see <a href="#Bash-Builtins">Bash Builtins</a>).
+builtin (see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
</li><li> The Bash <code>exec</code> builtin takes additional options that allow users
to control the contents of the environment passed to the executed
@@ -14022,12 +14161,12 @@ searching the <code>$PATH</code>, using &lsquo;<samp>hash -p</samp>&rsquo;
(see <a href="#Bourne-Shell-Builtins">Bourne Shell Builtins</a>).
</li><li> Bash includes a <code>help</code> builtin for quick reference to shell
-facilities (see <a href="#Bash-Builtins">Bash Builtins</a>).
+facilities (see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
</li><li> The <code>printf</code> builtin is available to display formatted output
-(see <a href="#Bash-Builtins">Bash Builtins</a>).
+(see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
-</li><li> The Bash <code>read</code> builtin (see <a href="#Bash-Builtins">Bash Builtins</a>)
+</li><li> The Bash <code>read</code> builtin (see <a href="#Bash-Builtins">Bash Builtin Commands</a>)
will read a line ending in &lsquo;<samp>\</samp>&rsquo; with
the <samp>-r</samp> option, and will use the <code>REPLY</code> variable as a
default if no non-option arguments are supplied.
@@ -14063,7 +14202,7 @@ which specifies the behavior based on the number of arguments.
</li><li> Bash includes the <code>caller</code> builtin, which displays the context of
any active subroutine call (a shell function or a script executed with
-the <code>.</code> or <code>source</code> builtins). This supports the bash
+the <code>.</code> or <code>source</code> builtins). This supports the Bash
debugger.
</li><li> The <code>trap</code> builtin (see <a href="#Bourne-Shell-Builtins">Bourne Shell Builtins</a>) allows a
@@ -14088,7 +14227,7 @@ The <code>ERR</code> trap is not inherited by shell functions unless the
<p>The <code>trap</code> builtin (see <a href="#Bourne-Shell-Builtins">Bourne Shell Builtins</a>) allows a
<code>RETURN</code> pseudo-signal specification, similar to
<code>EXIT</code> and <code>DEBUG</code>.
-Commands specified with an <code>RETURN</code> trap are executed before
+Commands specified with a <code>RETURN</code> trap are executed before
execution resumes after a shell function or a shell script executed with
<code>.</code> or <code>source</code> returns.
The <code>RETURN</code> trap is not inherited by shell functions unless the
@@ -14096,7 +14235,7 @@ function has been given the <code>trace</code> attribute or the
<code>functrace</code> option has been enabled using the <code>shopt</code> builtin.
</p>
</li><li> The Bash <code>type</code> builtin is more extensive and gives more information
-about the names it finds (see <a href="#Bash-Builtins">Bash Builtins</a>).
+about the names it finds (see <a href="#Bash-Builtins">Bash Builtin Commands</a>).
</li><li> The Bash <code>umask</code> builtin permits a <samp>-p</samp> option to cause
the output to be displayed in the form of a <code>umask</code> command
@@ -14137,7 +14276,11 @@ shell scripts.
<p>More features unique to Bash may be found in <a href="#Bash-Features">Bash Features</a>.
</p>
-<span id="Implementation-Differences-From-The-SVR4_002e2-Shell"></span><h3 class="appendixsec">B.1 Implementation Differences From The SVR4.2 Shell</h3>
+<ul class="section-toc">
+<li><a href="#Implementation-Differences-From-The-SVR4_002e2-Shell" accesskey="1">Implementation Differences From The SVR4.2 Shell</a></li>
+</ul>
+<div class="appendixsec" id="Implementation-Differences-From-The-SVR4_002e2-Shell">
+<h3 class="appendixsec">B.1 Implementation Differences From The SVR4.2 Shell</h3>
<p>Since Bash is a completely new implementation, it does not suffer from
many of the limitations of the SVR4.2 shell. For instance:
@@ -14185,9 +14328,12 @@ only for certain failures, as enumerated in the <small>POSIX</small> standard.
</li></ul>
<hr>
-<span id="GNU-Free-Documentation-License"></span><div class="header">
+</div>
+</div>
+<div class="appendix" id="GNU-Free-Documentation-License">
+<div class="header">
<p>
-Next: <a href="#Indexes" accesskey="n" rel="next">Indexes</a>, Previous: <a href="#Major-Differences-From-The-Bourne-Shell" accesskey="p" rel="prev">Major Differences From The Bourne Shell</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Indexes" accesskey="n" rel="next">Indexes</a>, Previous: <a href="#Major-Differences-From-The-Bourne-Shell" accesskey="p" rel="prev">Major Differences From The Bourne Shell</a>, Up: <a href="#Top" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="GNU-Free-Documentation-License-1"></span><h2 class="appendix">Appendix C GNU Free Documentation License</h2>
@@ -14661,31 +14807,27 @@ to permit their use in free software.
<hr>
-<span id="Indexes"></span><div class="header">
+</div>
+<div class="appendix" id="Indexes">
+<div class="header">
<p>
-Previous: <a href="#GNU-Free-Documentation-License" accesskey="p" rel="prev">GNU Free Documentation License</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Previous: <a href="#GNU-Free-Documentation-License" accesskey="p" rel="prev">GNU Free Documentation License</a>, Up: <a href="#Top" accesskey="u" rel="up">Bash Features</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Indexes-1"></span><h2 class="appendix">Appendix D Indexes</h2>
-<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">&bull; <a href="#Builtin-Index" rel="index" accesskey="1">Builtin Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Index of Bash builtin commands.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Reserved-Word-Index" rel="index" accesskey="2">Reserved Word Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Index of Bash reserved words.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Variable-Index" rel="index" accesskey="3">Variable Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Quick reference helps you find the
- variable you want.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Function-Index" rel="index" accesskey="4">Function Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Index of bindable Readline functions.
-</td></tr>
-<tr><td align="left" valign="top">&bull; <a href="#Concept-Index" rel="index" accesskey="5">Concept Index</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">General index for concepts described in
- this manual.
-</td></tr>
-</table>
+<ul class="section-toc">
+<li><a href="#Builtin-Index" accesskey="1">Index of Shell Builtin Commands</a></li>
+<li><a href="#Reserved-Word-Index" accesskey="2">Index of Shell Reserved Words</a></li>
+<li><a href="#Variable-Index" accesskey="3">Parameter and Variable Index</a></li>
+<li><a href="#Function-Index" accesskey="4">Function Index</a></li>
+<li><a href="#Concept-Index" accesskey="5">Concept Index</a></li>
+</ul>
<hr>
-<span id="Builtin-Index"></span><div class="header">
+<div class="appendixsec" id="Builtin-Index">
+<div class="header">
<p>
-Next: <a href="#Reserved-Word-Index" accesskey="n" rel="next">Reserved Word Index</a>, Up: <a href="#Indexes" accesskey="u" rel="up">Indexes</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Reserved-Word-Index" accesskey="n" rel="next">Index of Shell Reserved Words</a>, Up: <a href="#Indexes" accesskey="u" rel="up">Indexes</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Index-of-Shell-Builtin-Commands"></span><h3 class="appendixsec">D.1 Index of Shell Builtin Commands</h3>
<table><tr><th valign="top">Jump to: &nbsp; </th><td><a class="summary-letter" href="#Builtin-Index_bt_symbol-1"><b>.</b></a>
@@ -14883,9 +15025,11 @@ Next: <a href="#Reserved-Word-Index" accesskey="n" rel="next">Reserved Word Inde
</td></tr></table>
<hr>
-<span id="Reserved-Word-Index"></span><div class="header">
+</div>
+<div class="appendixsec" id="Reserved-Word-Index">
+<div class="header">
<p>
-Next: <a href="#Variable-Index" accesskey="n" rel="next">Variable Index</a>, Previous: <a href="#Builtin-Index" accesskey="p" rel="prev">Builtin Index</a>, Up: <a href="#Indexes" accesskey="u" rel="up">Indexes</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Variable-Index" accesskey="n" rel="next">Parameter and Variable Index</a>, Previous: <a href="#Builtin-Index" accesskey="p" rel="prev">Index of Shell Builtin Commands</a>, Up: <a href="#Indexes" accesskey="u" rel="up">Indexes</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Index-of-Shell-Reserved-Words"></span><h3 class="appendixsec">D.2 Index of Shell Reserved Words</h3>
<table><tr><th valign="top">Jump to: &nbsp; </th><td><a class="summary-letter" href="#Reserved-Word-Index_rw_symbol-1"><b>!</b></a>
@@ -15003,9 +15147,11 @@ Next: <a href="#Variable-Index" accesskey="n" rel="next">Variable Index</a>, Pre
</td></tr></table>
<hr>
-<span id="Variable-Index"></span><div class="header">
+</div>
+<div class="appendixsec" id="Variable-Index">
+<div class="header">
<p>
-Next: <a href="#Function-Index" accesskey="n" rel="next">Function Index</a>, Previous: <a href="#Reserved-Word-Index" accesskey="p" rel="prev">Reserved Word Index</a>, Up: <a href="#Indexes" accesskey="u" rel="up">Indexes</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Function-Index" accesskey="n" rel="next">Function Index</a>, Previous: <a href="#Reserved-Word-Index" accesskey="p" rel="prev">Index of Shell Reserved Words</a>, Up: <a href="#Indexes" accesskey="u" rel="up">Indexes</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Parameter-and-Variable-Index"></span><h3 class="appendixsec">D.3 Parameter and Variable Index</h3>
<table><tr><th valign="top">Jump to: &nbsp; </th><td><a class="summary-letter" href="#Variable-Index_vr_symbol-1"><b>!</b></a>
@@ -15106,6 +15252,8 @@ Next: <a href="#Function-Index" accesskey="n" rel="next">Function Index</a>, Pre
<tr><td></td><td valign="top"><a href="#index-_005f"><code>_</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Variable-Index_vr_letter-A">A</th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-active_002dregion_002dend_002dcolor"><code>active-region-end-color</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Readline-Init-File-Syntax">Readline Init File Syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-active_002dregion_002dstart_002dcolor"><code>active-region-start-color</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Readline-Init-File-Syntax">Readline Init File Syntax</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-auto_005fresume"><code>auto_resume</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Job-Control-Variables">Job Control Variables</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Variable-Index_vr_letter-B">B</th><td></td><td></td></tr>
@@ -15165,6 +15313,7 @@ Next: <a href="#Function-Index" accesskey="n" rel="next">Function Index</a>, Pre
<tr><td></td><td valign="top"><a href="#index-editing_002dmode"><code>editing-mode</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Readline-Init-File-Syntax">Readline Init File Syntax</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-EMACS"><code>EMACS</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-emacs_002dmode_002dstring"><code>emacs-mode-string</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Readline-Init-File-Syntax">Readline Init File Syntax</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-enable_002dactive_002dregion"><code>enable-active-region</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Readline-Init-File-Syntax">Readline Init File Syntax</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-enable_002dbracketed_002dpaste"><code>enable-bracketed-paste</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Readline-Init-File-Syntax">Readline Init File Syntax</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-enable_002dkeypad"><code>enable-keypad</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Readline-Init-File-Syntax">Readline Init File Syntax</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-ENV"><code>ENV</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
@@ -15213,11 +15362,12 @@ Next: <a href="#Function-Index" accesskey="n" rel="next">Function Index</a>, Pre
<tr><td></td><td valign="top"><a href="#index-keymap"><code>keymap</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Readline-Init-File-Syntax">Readline Init File Syntax</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Variable-Index_vr_letter-L">L</th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#index-LANG"><code>LANG</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-LANG"><code>LANG</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Creating-Internationalized-Scripts">Creating Internationalized Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-LANG-1"><code>LANG</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LC_005fALL"><code>LC_ALL</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LC_005fCOLLATE"><code>LC_COLLATE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LC_005fCTYPE"><code>LC_CTYPE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-LC_005fMESSAGES"><code>LC_MESSAGES</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Locale-Translation">Locale Translation</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-LC_005fMESSAGES"><code>LC_MESSAGES</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Creating-Internationalized-Scripts">Creating Internationalized Scripts</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LC_005fMESSAGES-1"><code>LC_MESSAGES</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LC_005fNUMERIC"><code>LC_NUMERIC</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-LC_005fTIME"><code>LC_TIME</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
@@ -15261,6 +15411,7 @@ Next: <a href="#Function-Index" accesskey="n" rel="next">Function Index</a>, Pre
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Variable-Index_vr_letter-R">R</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-RANDOM"><code>RANDOM</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-READLINE_005fARGUMENT"><code>READLINE_ARGUMENT</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-READLINE_005fLINE"><code>READLINE_LINE</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-READLINE_005fMARK"><code>READLINE_MARK</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-READLINE_005fPOINT"><code>READLINE_POINT</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
@@ -15279,8 +15430,8 @@ Next: <a href="#Function-Index" accesskey="n" rel="next">Function Index</a>, Pre
<tr><td></td><td valign="top"><a href="#index-SRANDOM"><code>SRANDOM</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Variable-Index_vr_letter-T">T</th><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a href="#index-TEXTDOMAIN"><code>TEXTDOMAIN</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Locale-Translation">Locale Translation</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-TEXTDOMAINDIR"><code>TEXTDOMAINDIR</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Locale-Translation">Locale Translation</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-TEXTDOMAIN"><code>TEXTDOMAIN</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Creating-Internationalized-Scripts">Creating Internationalized Scripts</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-TEXTDOMAINDIR"><code>TEXTDOMAINDIR</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Creating-Internationalized-Scripts">Creating Internationalized Scripts</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-TIMEFORMAT"><code>TIMEFORMAT</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-TMOUT"><code>TMOUT</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-TMPDIR"><code>TMPDIR</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Variables">Bash Variables</a></td></tr>
@@ -15354,9 +15505,11 @@ Next: <a href="#Function-Index" accesskey="n" rel="next">Function Index</a>, Pre
</td></tr></table>
<hr>
-<span id="Function-Index"></span><div class="header">
+</div>
+<div class="appendixsec" id="Function-Index">
+<div class="header">
<p>
-Next: <a href="#Concept-Index" accesskey="n" rel="next">Concept Index</a>, Previous: <a href="#Variable-Index" accesskey="p" rel="prev">Variable Index</a>, Up: <a href="#Indexes" accesskey="u" rel="up">Indexes</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
+Next: <a href="#Concept-Index" accesskey="n" rel="next">Concept Index</a>, Previous: <a href="#Variable-Index" accesskey="p" rel="prev">Parameter and Variable Index</a>, Up: <a href="#Indexes" accesskey="u" rel="up">Indexes</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
<span id="Function-Index-1"></span><h3 class="appendixsec">D.4 Function Index</h3>
<table><tr><th valign="top">Jump to: &nbsp; </th><td><a class="summary-letter" href="#Function-Index_fn_letter-A"><b>A</b></a>
@@ -15459,6 +15612,7 @@ Next: <a href="#Concept-Index" accesskey="n" rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a href="#index-exchange_002dpoint_002dand_002dmark-_0028C_002dx-C_002dx_0029"><code>exchange-point-and-mark (C-x C-x)</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Miscellaneous-Commands">Miscellaneous Commands</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Function-Index_fn_letter-F">F</th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a href="#index-fetch_002dhistory-_0028_0029"><code>fetch-history ()</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Commands-For-History">Commands For History</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-forward_002dbackward_002ddelete_002dchar-_0028_0029"><code>forward-backward-delete-char ()</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Commands-For-Text">Commands For Text</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-forward_002dchar-_0028C_002df_0029"><code>forward-char (C-f)</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Commands-For-Moving">Commands For Moving</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-forward_002dsearch_002dhistory-_0028C_002ds_0029"><code>forward-search-history (C-s)</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Commands-For-History">Commands For History</a></td></tr>
@@ -15534,6 +15688,7 @@ Next: <a href="#Concept-Index" accesskey="n" rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a href="#index-shell_002dkill_002dword-_0028M_002dC_002dd_0029"><code>shell-kill-word (M-C-d)</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Commands-For-Killing">Commands For Killing</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-shell_002dtranspose_002dwords-_0028M_002dC_002dt_0029"><code>shell-transpose-words (M-C-t)</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Commands-For-Killing">Commands For Killing</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-skip_002dcsi_002dsequence-_0028_0029"><code>skip-csi-sequence ()</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Miscellaneous-Commands">Miscellaneous Commands</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-spell_002dcorrect_002dword-_0028C_002dx-s_0029"><code>spell-correct-word (C-x s)</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Miscellaneous-Commands">Miscellaneous Commands</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-start_002dkbd_002dmacro-_0028C_002dx-_0028_0029"><code>start-kbd-macro (C-x ()</code></a>:</td><td>&nbsp;</td><td valign="top"><a href="#Keyboard-Macros">Keyboard Macros</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Function-Index_fn_letter-T">T</th><td></td><td></td></tr>
@@ -15599,7 +15754,9 @@ Next: <a href="#Concept-Index" accesskey="n" rel="next">Concept Index</a>, Previ
</td></tr></table>
<hr>
-<span id="Concept-Index"></span><div class="header">
+</div>
+<div class="appendixsec" id="Concept-Index">
+<div class="header">
<p>
Previous: <a href="#Function-Index" accesskey="p" rel="prev">Function Index</a>, Up: <a href="#Indexes" accesskey="u" rel="up">Indexes</a> &nbsp; [<a href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="#Indexes" title="Index" rel="index">Index</a>]</p>
</div>
@@ -15734,6 +15891,7 @@ Previous: <a href="#Function-Index" accesskey="p" rel="prev">Function Index</a>,
<tr><td></td><td valign="top"><a href="#index-interactive-shell">interactive shell</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Invoking-Bash">Invoking Bash</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-interactive-shell-1">interactive shell</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Interactive-Shells">Interactive Shells</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-internationalization">internationalization</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Locale-Translation">Locale Translation</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-internationalized-scripts">internationalized scripts</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Creating-Internationalized-Scripts">Creating Internationalized Scripts</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-J">J</th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-job">job</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Definitions">Definitions</a></td></tr>
@@ -15799,6 +15957,7 @@ Previous: <a href="#Function-Index" accesskey="p" rel="prev">Function Index</a>,
<tr><td></td><td valign="top"><a href="#index-special-builtin">special builtin</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Definitions">Definitions</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-special-builtin-1">special builtin</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Special-Builtins">Special Builtins</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-startup-files">startup files</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Bash-Startup-Files">Bash Startup Files</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-string-translations">string translations</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Creating-Internationalized-Scripts">Creating Internationalized Scripts</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-suspending-jobs">suspending jobs</a>:</td><td>&nbsp;</td><td valign="top"><a href="#Job-Control-Basics">Job Control Basics</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th id="Concept-Index_cp_letter-T">T</th><td></td><td></td></tr>
@@ -15864,7 +16023,9 @@ Previous: <a href="#Function-Index" accesskey="p" rel="prev">Function Index</a>,
&nbsp;
</td></tr></table>
-<hr>
+</div>
+</div>
+</div>
diff --git a/doc/bashref.info b/doc/bashref.info
index 20ebf243..25372f9b 100644
--- a/doc/bashref.info
+++ b/doc/bashref.info
@@ -1,13 +1,13 @@
-This is bashref.info, produced by makeinfo version 6.7 from
+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.1, 29 October 2020).
+Bash shell (version 5.2, 19 September 2022).
- This is Edition 5.1, last updated 29 October 2020, of 'The GNU Bash
-Reference Manual', for 'Bash', Version 5.1.
+ This is Edition 5.2, last updated 19 September 2022, of 'The GNU Bash
+Reference Manual', for 'Bash', Version 5.2.
- Copyright (C) 1988-2020 Free Software Foundation, Inc.
+ Copyright (C) 1988-2022 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
@@ -27,11 +27,11 @@ Bash Features
*************
This text is a brief description of the features that are present in the
-Bash shell (version 5.1, 29 October 2020). The Bash home page is
+Bash shell (version 5.2, 19 September 2022). The Bash home page is
<http://www.gnu.org/software/bash/>.
- This is Edition 5.1, last updated 29 October 2020, of 'The GNU Bash
-Reference Manual', for 'Bash', Version 5.1.
+ This is Edition 5.2, last updated 19 September 2022, of 'The GNU Bash
+Reference Manual', for 'Bash', Version 5.2.
Bash contains features that appear in other popular shells, and some
features that only appear in Bash. Some of the shells that Bash has
@@ -359,11 +359,11 @@ as such, and to prevent parameter expansion.
Each of the shell metacharacters (*note Definitions::) has special
meaning to the shell and must be quoted if it is to represent itself.
When the command history expansion facilities are being used (*note
-History Interaction::), the HISTORY EXPANSION character, usually '!',
+History Interaction::), the "history expansion" character, usually '!',
must be quoted to prevent history expansion. *Note Bash History
Facilities::, for more details concerning history expansion.
- There are three quoting mechanisms: the ESCAPE CHARACTER, single
+ There are three quoting mechanisms: the "escape character", single
quotes, and double quotes.

@@ -419,10 +419,11 @@ File: bashref.info, Node: ANSI-C Quoting, Next: Locale Translation, Prev: Dou
3.1.2.4 ANSI-C Quoting
......................
-Words of the form '$'STRING'' are treated specially. The word expands
-to STRING, with backslash-escaped characters replaced as specified by
-the ANSI C standard. Backslash escape sequences, if present, are
-decoded as follows:
+Character sequences of the form $'STRING' are treated as a special kind
+of single quotes. The sequence expands to STRING, with
+backslash-escaped characters in STRING replaced as specified by the ANSI
+C standard. Backslash escape sequences, if present, are decoded as
+follows:
'\a'
alert (bell)
@@ -473,22 +474,114 @@ File: bashref.info, Node: Locale Translation, Prev: ANSI-C Quoting, Up: Quoti
3.1.2.5 Locale-Specific Translation
...................................
-A double-quoted string preceded by a dollar sign ('$') will cause the
-string to be translated according to the current locale. The GETTEXT
-infrastructure performs the message catalog lookup and translation,
-using the 'LC_MESSAGES' and 'TEXTDOMAIN' shell variables, as explained
-below. See the gettext documentation for additional details. If the
-current locale is 'C' or 'POSIX', or if there are no translations
-available, the dollar sign is ignored. If the string is translated and
-replaced, the replacement is double-quoted.
+* Menu:
- Some systems use the message catalog selected by the 'LC_MESSAGES'
-shell variable. Others create the name of the message catalog from the
-value of the 'TEXTDOMAIN' shell variable, possibly adding a suffix of
-'.mo'. If you use the 'TEXTDOMAIN' variable, you may need to set the
-'TEXTDOMAINDIR' variable to the location of the message catalog files.
-Still others use both variables in this fashion:
-'TEXTDOMAINDIR'/'LC_MESSAGES'/LC_MESSAGES/'TEXTDOMAIN'.mo.
+* Creating Internationalized Scripts:: How to use translations and different
+ languages in your scripts.
+
+Prefixing a double-quoted string with a dollar sign ('$'), such as
+$"hello, world", will cause the string to be translated according to the
+current locale. The 'gettext' infrastructure performs the lookup and
+translation, using the 'LC_MESSAGES', 'TEXTDOMAINDIR', and 'TEXTDOMAIN'
+shell variables, as explained below. See the gettext documentation for
+additional details not covered here. If the current locale is 'C' or
+'POSIX', if there are no translations available, of if the string is not
+translated, the dollar sign is ignored. Since this is a form of double
+quoting, the string remains double-quoted by default, whether or not it
+is translated and replaced. If the 'noexpand_translation' option is
+enabled using the 'shopt' builtin (*note The Shopt Builtin::),
+translated strings are single-quoted instead of double-quoted.
+
+ The rest of this section is a brief overview of how you use gettext
+to create translations for strings in a shell script named SCRIPTNAME.
+There are more details in the gettext documentation.
+
+
+File: bashref.info, Node: Creating Internationalized Scripts, Up: Locale Translation
+
+Once you've marked the strings in your script that you want to translate
+using $"...", you create a gettext "template" file using the command
+
+ bash --dump-po-strings SCRIPTNAME > DOMAIN.pot
+
+The DOMAIN is your "message domain". It's just an arbitrary string
+that's used to identify the files gettext needs, like a package or
+script name. It needs to be unique among all the message domains on
+systems where you install the translations, so gettext knows which
+translations correspond to your script. You'll use the template file to
+create translations for each target language. The template file
+conventionally has the suffix '.pot'.
+
+ You copy this template file to a separate file for each target
+language you want to support (called "PO" files, which use the suffix
+'.po'). PO files use various naming conventions, but when you are
+working to translate a template file into a particular language, you
+first copy the template file to a file whose name is the language you
+want to target, with the '.po' suffix. For instance, the Spanish
+translations of your strings would be in a file named 'es.po', and to
+get started using a message domain named "example," you would run
+
+ cp example.pot es.po
+
+Ultimately, PO files are often named DOMAIN.po and installed in
+directories that contain multiple translation files for a particular
+language.
+
+ Whichever naming convention you choose, you will need to translate
+the strings in the PO files into the appropriate languages. This has to
+be done manually.
+
+ When you have the translations and PO files complete, you'll use the
+gettext tools to produce what are called "MO" files, which are compiled
+versions of the PO files the gettext tools use to look up translations
+efficiently. MO files are also called "message catalog" files. You use
+the 'msgfmt' program to do this. For instance, if you had a file with
+Spanish translations, you could run
+
+ msgfmt -o es.mo es.po
+
+to produce the corresponding MO file.
+
+ Once you have the MO files, you decide where to install them and use
+the 'TEXTDOMAINDIR' shell variable to tell the gettext tools where they
+are. Make sure to use the same message domain to name the MO files as
+you did for the PO files when you install them.
+
+ Your users will use the 'LANG' or 'LC_MESSAGES' shell variables to
+select the desired language.
+
+ You set the 'TEXTDOMAIN' variable to the script's message domain. As
+above, you use the message domain to name your translation files.
+
+ You, or possibly your users, set the 'TEXTDOMAINDIR' variable to the
+name of a directory where the message catalog files are stored. If you
+install the message files into the system's standard message catalog
+directory, you don't need to worry about this variable.
+
+ The directory where the message catalog files are stored varies
+between systems. Some use the message catalog selected by the
+'LC_MESSAGES' shell variable. Others create the name of the message
+catalog from the value of the 'TEXTDOMAIN' shell variable, possibly
+adding the '.mo' suffix. If you use the 'TEXTDOMAIN' variable, you may
+need to set the 'TEXTDOMAINDIR' variable to the location of the message
+catalog files, as above. It's common to use both variables in this
+fashion: '$TEXTDOMAINDIR'/'$LC_MESSAGES'/LC_MESSAGES/'$TEXTDOMAIN'.mo.
+
+ If you used that last convention, and you wanted to store the message
+catalog files with Spanish (es) and Esperanto (eo) translations into a
+local directory you use for custom translation files, you could run
+
+ TEXTDOMAIN=example
+ TEXTDOMAINDIR=/usr/local/share/locale
+
+ cp es.mo ${TEXTDOMAINDIR}/es/LC_MESSAGES/${TEXTDOMAIN}.mo
+ cp eo.mo ${TEXTDOMAINDIR}/eo/LC_MESSAGES/${TEXTDOMAIN}.mo
+
+ When all of this is done, and the message catalog files containing
+the compiled translations are installed in the correct location, your
+users will be able to see translated strings in any of the supported
+languages by setting the 'LANG' or 'LC_MESSAGES' environment variables
+before running your script.

File: bashref.info, Node: Comments, Prev: Quoting, Up: Shell Syntax
@@ -582,13 +675,13 @@ the control operators '|' or '|&'.
The output of each command in the pipeline is connected via a pipe to
the input of the next command. That is, each command reads the previous
command's output. This connection is performed before any redirections
-specified by the command.
+specified by COMMAND1.
If '|&' is used, COMMAND1's standard error, in addition to its
standard output, is connected to COMMAND2's standard input through the
pipe; it is shorthand for '2>&1 |'. This implicit redirection of the
standard error to the standard output is performed after any
-redirections specified by the command.
+redirections specified by COMMAND1.
The reserved word 'time' causes timing statistics to be printed for
the pipeline once it finishes. The statistics currently consist of
@@ -612,11 +705,12 @@ information.
If the pipeline is not executed asynchronously (*note Lists::), the
shell waits for all commands in the pipeline to complete.
- Each command in a pipeline is executed in its own subshell, which is
-a separate process (*note Command Execution Environment::). If the
-'lastpipe' option is enabled using the 'shopt' builtin (*note The Shopt
-Builtin::), the last element of a pipeline may be run by the shell
-process.
+ Each command in a multi-command pipeline, where pipes are created, is
+executed in its own "subshell", which is a separate process (*note
+Command Execution Environment::). If the 'lastpipe' option is enabled
+using the 'shopt' builtin (*note The Shopt Builtin::), the last element
+of a pipeline may be run by the shell process when job control is not
+active.
The exit status of a pipeline is the exit status of the last command
in the pipeline, unless the 'pipefail' option is enabled (*note The Set
@@ -645,8 +739,8 @@ commands, equivalent to a semicolon.
If a command is terminated by the control operator '&', the shell
executes the command asynchronously in a subshell. This is known as
-executing the command in the BACKGROUND, and these are referred to as
-ASYNCHRONOUS commands. The shell does not wait for the command to
+executing the command in the "background", and these are referred to as
+"asynchronous" commands. The shell does not wait for the command to
finish, and the return status is 0 (true). When job control is not
active (*note Job Control::), the standard input for asynchronous
commands, in the absence of any explicit redirections, is redirected
@@ -814,7 +908,8 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
substitution, arithmetic expansion, and quote removal (*note Shell
Parameter Expansion::) before matching is attempted. Each PATTERN
undergoes tilde expansion, parameter expansion, command
- substitution, and arithmetic expansion.
+ substitution, arithmetic expansion, process substitution, and quote
+ removal.
There may be an arbitrary number of 'case' clauses, each terminated
by a ';;', ';&', or ';;&'. The first pattern that matches
@@ -855,16 +950,16 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
select NAME [in WORDS ...]; do COMMANDS; done
The list of words following 'in' is expanded, generating a list of
- items. The set of expanded words is printed on the standard error
- output stream, each preceded by a number. If the 'in WORDS' is
- omitted, the positional parameters are printed, as if 'in "$@"' had
- been specified. The 'PS3' prompt is then displayed and a line is
- read from the standard input. If the line consists of a number
- corresponding to one of the displayed words, then the value of NAME
- is set to that word. If the line is empty, the words and prompt
- are displayed again. If 'EOF' is read, the 'select' command
- completes. Any other value read causes NAME to be set to null.
- The line read is saved in the variable 'REPLY'.
+ items, and the set of expanded words is printed on the standard
+ error output stream, each preceded by a number. If the 'in WORDS'
+ is omitted, the positional parameters are printed, as if 'in "$@"'
+ had been specified. 'select' then displays the 'PS3' 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 NAME is set to that word. If the line is empty, the words and
+ prompt are displayed again. If 'EOF' is read, the 'select' command
+ completes and returns 1. Any other value read causes NAME to be
+ set to null. The line read is saved in the variable 'REPLY'.
The COMMANDS are executed after each selection until a 'break'
command is executed, at which point the 'select' command completes.
@@ -883,11 +978,11 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
(( EXPRESSION ))
The arithmetic EXPRESSION is evaluated according to the rules
- described below (*note Shell Arithmetic::). If the value of the
- expression is non-zero, the return status is 0; otherwise the
- return status is 1. This is exactly equivalent to
- let "EXPRESSION"
- *Note Bash Builtins::, for a full description of the 'let' builtin.
+ described below (*note Shell Arithmetic::). The EXPRESSION
+ undergoes the same expansions as if it were within double quotes,
+ but double quote characters in EXPRESSION are not treated specially
+ are removed. If the value of the expression is non-zero, the
+ return status is 0; otherwise the return status is 1.
'[[...]]'
[[ EXPRESSION ]]
@@ -895,12 +990,13 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
Return a status of 0 or 1 depending on the evaluation of the
conditional expression EXPRESSION. Expressions are composed of the
primaries described below in *note Bash Conditional Expressions::.
- Word splitting and filename expansion are not performed on the
- words between the '[[' and ']]'; tilde expansion, parameter and
- variable expansion, arithmetic expansion, command substitution,
- process substitution, and quote removal are performed. Conditional
- operators such as '-f' must be unquoted to be recognized as
- primaries.
+ The words between the '[[' and ']]' do not undergo word splitting
+ and filename expansion. The shell performs tilde expansion,
+ parameter and variable expansion, arithmetic expansion, command
+ substitution, process substitution, and quote removal on those
+ words (the expansions that would occur if the words were enclosed
+ in double quotes). Conditional operators such as '-f' must be
+ unquoted to be recognized as primaries.
When used with '[[', the '<' and '>' operators sort
lexicographically using the current locale.
@@ -913,67 +1009,92 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
'shopt' in *note The Shopt Builtin::) is enabled, the match is
performed without regard to the case of alphabetic characters. The
return value is 0 if the string matches ('==') or does not match
- ('!=') the pattern, and 1 otherwise. Any part of the pattern may
- be quoted to force the quoted portion to be matched as a string.
+ ('!=') the pattern, and 1 otherwise.
+
+ If you quote any part of the pattern, using any of the shell's
+ quoting mechanisms, the quoted portion is matched literally. This
+ means every character in the quoted portion matches itself, instead
+ of having any special pattern matching meaning.
An additional binary operator, '=~', is available, with the same
- precedence as '==' and '!='. When it is used, the string to the
+ precedence as '==' and '!='. When you use '=~', the string to the
right of the operator is considered a POSIX extended regular
- expression and matched accordingly (using the POSIX 'regcomp' and
- 'regexec' interfaces usually described in regex(3)). The return
- value is 0 if the string matches the pattern, and 1 otherwise. If
- the regular expression is syntactically incorrect, the conditional
- expression's return value is 2. If the 'nocasematch' shell option
- (see the description of 'shopt' in *note The Shopt Builtin::) is
- enabled, the match is performed without regard to the case of
- alphabetic characters. Any part of the pattern may be quoted to
- force the quoted portion to be matched as a string. Bracket
- expressions in regular expressions must be treated carefully, since
- normal quoting characters lose their meanings between brackets. If
- the pattern is stored in a shell variable, quoting the variable
- expansion forces the entire pattern to be matched as a string.
-
- The pattern will match if it matches any part of the string.
- Anchor the pattern using the '^' and '$' regular expression
- operators to force it to match the entire string. The array
- variable 'BASH_REMATCH' records which parts of the string matched
- the pattern. The element of 'BASH_REMATCH' with index 0 contains
- the portion of the string matching the entire regular expression.
- Substrings matched by parenthesized subexpressions within the
- regular expression are saved in the remaining 'BASH_REMATCH'
- indices. The element of 'BASH_REMATCH' with index N is the portion
- of the string matching the Nth parenthesized subexpression.
+ expression pattern and matched accordingly (using the POSIX
+ 'regcomp' and 'regexec' interfaces usually described in regex(3)).
+ The return value is 0 if the string matches the pattern, and 1 if
+ it does not. If the regular expression is syntactically incorrect,
+ the conditional expression returns 2. If the 'nocasematch' shell
+ option (see the description of 'shopt' in *note The Shopt
+ Builtin::) is enabled, the match is performed without regard to the
+ case of alphabetic characters.
+
+ You can quote any part of the pattern to force the quoted portion
+ to be matched literally instead of as a regular expression (see
+ above). If the pattern is stored in a shell variable, quoting the
+ variable expansion forces the entire pattern to be matched
+ literally.
+
+ The pattern will match if it matches any part of the string. If
+ you want to force the pattern to match the entire string, anchor
+ the pattern using the '^' and '$' regular expression operators.
For example, the following will match a line (stored in the shell
- variable LINE) if there is a sequence of characters anywhere in the
- value consisting of any number, including zero, of characters in
- the 'space' character class, zero or one instances of 'a', then a
- 'b':
+ variable 'line') if there is a sequence of characters anywhere in
+ the value consisting of any number, including zero, of characters
+ in the 'space' character class, immediately followed by zero or one
+ instances of 'a', then a 'b':
+
[[ $line =~ [[:space:]]*(a)?b ]]
- That means values like 'aab' and ' aaaaaab' will match, as will a
- line containing a 'b' anywhere in its value.
-
- Storing the regular expression in a shell variable is often a
- useful way to avoid problems with quoting characters that are
- special to the shell. It is sometimes difficult to specify a
- regular expression literally without using quotes, or to keep track
- of the quoting used by regular expressions while paying attention
- to the shell's quote removal. Using a shell variable to store the
- pattern decreases these problems. For example, the following is
- equivalent to the above:
+ That means values for 'line' like 'aab', ' aaaaaab', 'xaby', and '
+ ab' will all match, as will a line containing a 'b' anywhere in its
+ value.
+
+ If you want to match a character that's special to the regular
+ expression grammar ('^$|[]()\.*+?'), it has to be quoted to remove
+ its special meaning. This means that in the pattern 'xxx.txt', the
+ '.' matches any character in the string (its usual regular
+ expression meaning), but in the pattern '"xxx.txt"', it can only
+ match a literal '.'.
+
+ Likewise, if you want to include a character in your pattern that
+ has a special meaning to the regular expression grammar, you must
+ make sure it's not quoted. If you want to anchor a pattern at the
+ beginning or end of the string, for instance, you cannot quote the
+ '^' or '$' characters using any form of shell quoting.
+
+ If you want to match 'initial string' at the start of a line, the
+ following will work:
+ [[ $line =~ ^"initial string" ]]
+ but this will not:
+ [[ $line =~ "^initial string" ]]
+ because in the second example the '^' is quoted and doesn't have
+ its usual special meaning.
+
+ It is sometimes difficult to specify a regular expression properly
+ without using quotes, or to keep track of the quoting used by
+ regular expressions while paying attention to shell quoting and the
+ shell's quote removal. Storing the regular expression in a shell
+ variable is often a useful way to avoid problems with quoting
+ characters that are special to the shell. For example, the
+ following is equivalent to the pattern used above:
+
pattern='[[:space:]]*(a)?b'
[[ $line =~ $pattern ]]
- If you want to match a character that's special to the regular
- expression grammar, it has to be quoted to remove its special
- meaning. This means that in the pattern 'xxx.txt', the '.' matches
- any character in the string (its usual regular expression meaning),
- but in the pattern '"xxx.txt"' it can only match a literal '.'.
Shell programmers should take special care with backslashes, since
- backslashes are used both by the shell and regular expressions to
- remove the special meaning from the following character. The
- following two sets of commands are _not_ equivalent:
+ backslashes are used by both the shell and regular expressions to
+ remove the special meaning from the following character. This
+ means that after the shell's word expansions complete (*note Shell
+ Expansions::), any backslashes remaining in parts of the pattern
+ that were originally not quoted can remove the special meaning of
+ pattern characters. If any part of the pattern is quoted, the
+ shell does its best to ensure that the regular expression treats
+ those remaining backslashes as literal, if they appeared in a
+ quoted portion.
+
+ The following two sets of commands are _not_ equivalent:
+
pattern='\.'
[[ . =~ $pattern ]]
@@ -984,12 +1105,49 @@ File: bashref.info, Node: Conditional Constructs, Next: Command Grouping, Pre
The first two matches will succeed, but the second two will not,
because in the second two the backslash will be part of the pattern
- to be matched. In the first two examples, the backslash removes
- the special meaning from '.', so the literal '.' matches. If the
+ to be matched. In the first two examples, the pattern passed to
+ the regular expression parser is '\.'. The backslash removes the
+ special meaning from '.', so the literal '.' matches. In the
+ second two examples, the pattern passed to the regular expression
+ parser has the backslash quoted (e.g., '\\\.'), which will not
+ match the string, since it does not contain a backslash. If the
string in the first examples were anything other than '.', say 'a',
the pattern would not match, because the quoted '.' in the pattern
loses its special meaning of matching any single character.
+ Bracket expressions in regular expressions can be sources of errors
+ as well, since characters that are normally special in regular
+ expressions lose their special meanings between brackets. However,
+ you can use bracket expressions to match special pattern characters
+ without quoting them, so they are sometimes useful for this
+ purpose.
+
+ Though it might seem like a strange way to write it, the following
+ pattern will match a '.' in the string:
+
+ [[ . =~ [.] ]]
+
+ The shell performs any word expansions before passing the pattern
+ to the regular expression functions, so you can assume that the
+ shell's quoting takes precedence. As noted above, the regular
+ expression parser will interpret any unquoted backslashes remaining
+ in the pattern after shell expansion according to its own rules.
+ The intention is to avoid making shell programmers quote things
+ twice as much as possible, so shell quoting should be sufficient to
+ quote special pattern characters where that's necessary.
+
+ The array variable 'BASH_REMATCH' records which parts of the string
+ matched the pattern. The element of 'BASH_REMATCH' with index 0
+ contains the portion of the string matching the entire regular
+ expression. Substrings matched by parenthesized subexpressions
+ within the regular expression are saved in the remaining
+ 'BASH_REMATCH' indices. The element of 'BASH_REMATCH' with index N
+ is the portion of the string matching the Nth parenthesized
+ subexpression.
+
+ Bash sets 'BASH_REMATCH' in the global scope; declaring it as a
+ local variable will lead to unexpected results.
+
Expressions may be combined using the following operators, listed
in decreasing order of precedence:
@@ -1024,9 +1182,9 @@ list may be redirected to a single stream.
'()'
( LIST )
- Placing a list of commands between parentheses causes a subshell
- environment to be created (*note Command Execution Environment::),
- and each of the commands in LIST to be executed in that subshell.
+ Placing a list of commands between parentheses forces the shell to
+ create a subshell (*note Command Execution Environment::), and each
+ of the commands in LIST is executed in that subshell environment.
Since the LIST is executed in a subshell, variable assignments do
not remain in effect after the subshell completes.
@@ -1039,10 +1197,10 @@ list may be redirected to a single stream.
In addition to the creation of a subshell, there is a subtle
difference between these two constructs due to historical reasons. The
-braces are 'reserved words', so they must be separated from the LIST by
-'blank's or other shell metacharacters. The parentheses are
-'operators', and are recognized as separate tokens by the shell even if
-they are not separated from the LIST by whitespace.
+braces are reserved words, so they must be separated from the LIST by
+'blank's or other shell metacharacters. The parentheses are operators,
+and are recognized as separate tokens by the shell even if they are not
+separated from the LIST by whitespace.
The exit status of both of these constructs is the exit status of
LIST.
@@ -1058,29 +1216,51 @@ A coprocess is executed asynchronously in a subshell, as if the command
had been terminated with the '&' control operator, with a two-way pipe
established between the executing shell and the coprocess.
- The format for a coprocess is:
+ The syntax for a coprocess is:
+
coproc [NAME] COMMAND [REDIRECTIONS]
-This creates a coprocess named NAME. If NAME is not supplied, the
-default name is COPROC. NAME must not be supplied if COMMAND is a
-simple command (*note Simple Commands::); otherwise, it is interpreted
-as the first word of the simple command.
+This creates a coprocess named NAME. COMMAND may be either a simple
+command (*note Simple Commands::) or a compound command (*note Compound
+Commands::). NAME is a shell variable name. If NAME is not supplied,
+the default name is 'COPROC'.
+
+ The recommended form to use for a coprocess is
+
+ coproc NAME { COMMAND; }
+
+This form is recommended because simple commands result in the coprocess
+always being named 'COPROC', and it is simpler to use and more complete
+than the other compound commands.
+
+ There are other forms of coprocesses:
+
+ coproc NAME COMPOUND-COMMAND
+ coproc COMPOUND-COMMAND
+ coproc SIMPLE-COMMAND
+
+If COMMAND is a compound command, NAME is optional. The word following
+'coproc' determines whether that word is interpreted as a variable name:
+it is interpreted as NAME if it is not a reserved word that introduces a
+compound command. If COMMAND is a simple command, NAME is not allowed;
+this is to avoid confusion between NAME and the first word of the simple
+command.
When the coprocess is executed, the shell creates an array variable
-(*note Arrays::) named 'NAME' in the context of the executing shell.
-The standard output of COMMAND is connected via a pipe to a file
+(*note Arrays::) named NAME in the context of the executing shell. The
+standard output of COMMAND is connected via a pipe to a file descriptor
+in the executing shell, and that file descriptor is assigned to NAME[0].
+The standard input of COMMAND is connected via a pipe to a file
descriptor in the executing shell, and that file descriptor is assigned
-to 'NAME'[0]. The standard input of COMMAND is connected via a pipe to
-a file descriptor in the executing shell, and that file descriptor is
-assigned to 'NAME'[1]. This pipe is established before any redirections
-specified by the command (*note Redirections::). The file descriptors
-can be utilized as arguments to shell commands and redirections using
-standard word expansions. Other than those created to execute command
-and process substitutions, the file descriptors are not available in
+to NAME[1]. This pipe is established before any redirections specified
+by the command (*note Redirections::). The file descriptors can be
+utilized as arguments to shell commands and redirections using standard
+word expansions. Other than those created to execute command and
+process substitutions, the file descriptors are not available in
subshells.
The process ID of the shell spawned to execute the coprocess is
-available as the value of the variable 'NAME'_PID. The 'wait' builtin
+available as the value of the variable 'NAME_PID'. The 'wait' builtin
command may be used to wait for the coprocess to terminate.
Since the coprocess is created as an asynchronous command, the
@@ -1105,88 +1285,9 @@ line, different ways to specify the input source, and so on). Parallel
can replace 'xargs' or feed commands from its input sources to several
different instances of Bash.
- For a complete description, refer to the GNU Parallel documentation.
-A few examples should provide a brief introduction to its use.
-
- For example, it is easy to replace 'xargs' to gzip all html files in
-the current directory and its subdirectories:
- find . -type f -name '*.html' -print | parallel gzip
-If you need to protect special characters such as newlines in file
-names, use find's '-print0' option and parallel's '-0' option.
-
- You can use Parallel to move files from the current directory when
-the number of files is too large to process with one 'mv' invocation:
- printf '%s\n' * | parallel mv {} destdir
-
- As you can see, the {} is replaced with each line read from standard
-input. While using 'ls' will work in most instances, it is not
-sufficient to deal with all filenames. 'printf' is a shell builtin, and
-therefore is not subject to the kernel's limit on the number of
-arguments to a program, so you can use '*' (but see below about the
-'dotglob' shell option). If you need to accommodate special characters
-in filenames, you can use
-
- printf '%s\0' * | parallel -0 mv {} destdir
-
-as alluded to above.
-
- This will run as many 'mv' commands as there are files in the current
-directory. You can emulate a parallel 'xargs' by adding the '-X'
-option:
- printf '%s\0' * | parallel -0 -X mv {} destdir
-
- (You may have to modify the pattern if you have the 'dotglob' option
-enabled.)
-
- GNU Parallel can replace certain common idioms that operate on lines
-read from a file (in this case, filenames listed one per line):
- while IFS= read -r x; do
- do-something1 "$x" "config-$x"
- do-something2 < "$x"
- done < file | process-output
-
-with a more compact syntax reminiscent of lambdas:
- cat list | parallel "do-something1 {} config-{} ; do-something2 < {}" |
- process-output
-
- Parallel provides a built-in mechanism to remove filename extensions,
-which lends itself to batch file transformations or renaming:
- ls *.gz | parallel -j+0 "zcat {} | bzip2 >{.}.bz2 && rm {}"
-This will recompress all files in the current directory with names
-ending in .gz using bzip2, running one job per CPU (-j+0) in parallel.
-(We use 'ls' for brevity here; using 'find' as above is more robust in
-the face of filenames containing unexpected characters.) Parallel can
-take arguments from the command line; the above can also be written as
-
- parallel "zcat {} | bzip2 >{.}.bz2 && rm {}" ::: *.gz
-
- If a command generates output, you may want to preserve the input
-order in the output. For instance, the following command
- {
- echo foss.org.my ;
- echo debian.org ;
- echo freenetproject.org ;
- } | parallel traceroute
-will display as output the traceroute invocation that finishes first.
-Adding the '-k' option
- {
- echo foss.org.my ;
- echo debian.org ;
- echo freenetproject.org ;
- } | parallel -k traceroute
-will ensure that the output of 'traceroute foss.org.my' is displayed
-first.
-
- Finally, Parallel can be used to run a sequence of shell commands in
-parallel, similar to 'cat file | bash'. It is not uncommon to take a
-list of filenames, create a series of shell commands to operate on them,
-and feed that list of commands to a shell. Parallel can speed this up.
-Assuming that 'file' contains a list of shell commands, one per line,
-
- parallel -j 10 < file
-
-will evaluate the commands using the shell (since no explicit command is
-supplied as an argument), in blocks of ten shell jobs at a time.
+ For a complete description, refer to the GNU Parallel documentation,
+which is available at
+<https://www.gnu.org/software/parallel/parallel_tutorial.html>.

File: bashref.info, Node: Shell Functions, Next: Shell Parameters, Prev: Shell Commands, Up: Basic Shell Features
@@ -1210,15 +1311,15 @@ new process is created to interpret them.
This defines a shell function named FNAME. The reserved word
'function' is optional. If the 'function' reserved word is supplied,
-the parentheses are optional. The BODY of the function is the compound
-command COMPOUND-COMMAND (*note Compound Commands::). That command is
-usually a LIST enclosed between { and }, but may be any compound command
-listed above, with one exception: If the 'function' reserved word is
-used, but the parentheses are not supplied, the braces are required.
+the parentheses are optional. The "body" of the function is the
+compound command COMPOUND-COMMAND (*note Compound Commands::). That
+command is usually a LIST enclosed between { and }, but may be any
+compound command listed above. If the 'function' reserved word is used,
+but the parentheses are not supplied, the braces are recommended.
COMPOUND-COMMAND is executed whenever FNAME is specified as the name of
-a command. When the shell is in POSIX mode (*note Bash POSIX Mode::),
-FNAME must be a valid shell NAME and may not be the same as one of the
-special builtins (*note Special Builtins::). In default mode, a
+a simple command. When the shell is in POSIX mode (*note Bash POSIX
+Mode::), FNAME must be a valid shell name and may not be the same as one
+of the special builtins (*note Special Builtins::). In default mode, a
function name can be any unquoted shell word that does not contain '$'.
Any redirections (*note Redirections::) associated with the shell
function are performed when the function is executed. A function
@@ -1271,9 +1372,17 @@ status; otherwise the function's return status is the exit status of the
last command executed before the 'return'.
Variables local to the function may be declared with the 'local'
-builtin. These variables are visible only to the function and the
-commands it invokes. This is particularly important when a shell
-function calls other functions.
+builtin ("local variables"). Ordinarily, variables and their values are
+shared between a function and its caller. These variables are visible
+only to the function and the commands it invokes. This is particularly
+important when a shell function calls other functions.
+
+ In the following description, the "current scope" is a currently-
+executing function. Previous scopes consist of that function's caller
+and so on, back to the "global" scope, where the shell is not executing
+any shell function. Consequently, a local variable at the current local
+scope is a variable declared using the 'local' or 'declare' builtins in
+the function that is currently executing.
Local variables "shadow" variables with the same name declared at
previous scopes. For instance, a local variable declared in a function
@@ -1281,7 +1390,7 @@ hides a global variable of the same name: references and assignments
refer to the local variable, leaving the global variable unmodified.
When the function returns, the global variable is once again visible.
- The shell uses DYNAMIC SCOPING to control a variable's visibility
+ The shell uses "dynamic scoping" to control a variable's visibility
within functions. With dynamic scoping, visible variables and their
values are a result of the sequence of function calls that caused
execution to reach the current function. The value of a variable that a
@@ -1290,10 +1399,10 @@ that caller is the "global" scope or another shell function. This is
also the value that a local variable declaration "shadows", and the
value that is restored when the function returns.
- For example, if a variable VAR is declared as local in function
-FUNC1, and FUNC1 calls another function FUNC2, references to VAR made
-from within FUNC2 will resolve to the local variable VAR from FUNC1,
-shadowing any global variable named VAR.
+ For example, if a variable 'var' is declared as local in function
+'func1', and 'func1' calls another function 'func2', references to 'var'
+made from within 'func2' will resolve to the local variable 'var' from
+'func1', shadowing any global variable named 'var'.
The following script demonstrates this behavior. When executed, the
script displays
@@ -1318,17 +1427,19 @@ script displays
variable is local to the current scope, 'unset' will unset it; otherwise
the unset will refer to the variable found in any calling scope as
described above. If a variable at the current local scope is unset, it
-will remain so until it is reset in that scope or until the function
-returns. Once the function returns, any instance of the variable at a
-previous scope will become visible. If the unset acts on a variable at
-a previous scope, any instance of a variable with that name that had
-been shadowed will become visible.
+will remain so (appearing as unset) until it is reset in that scope or
+until the function returns. Once the function returns, any instance of
+the variable at a previous scope will become visible. If the unset acts
+on a variable at a previous scope, any instance of a variable with that
+name that had been shadowed will become visible (see below how
+'localvar_unset'shell option changes this behavior).
Function names and definitions may be listed with the '-f' option to
the 'declare' ('typeset') builtin command (*note Bash Builtins::). The
'-F' option to 'declare' or 'typeset' will list the function names only
(and optionally the source file and line number, if the 'extdebug' shell
-option is enabled). Functions may be exported so that subshells
+option is enabled). Functions may be exported so that child shell
+processes (those created when executing a separate shell invocation)
automatically have them defined with the '-f' option to the 'export'
builtin (*note Bourne Shell Builtins::).
@@ -1348,11 +1459,12 @@ File: bashref.info, Node: Shell Parameters, Next: Shell Expansions, Prev: She
* Positional Parameters:: The shell's command-line arguments.
* Special Parameters:: Parameters denoted by special characters.
-A PARAMETER is an entity that stores values. It can be a 'name', a
-number, or one of the special characters listed below. A VARIABLE is a
-parameter denoted by a 'name'. A variable has a VALUE and zero or more
-ATTRIBUTES. Attributes are assigned using the 'declare' builtin command
-(see the description of the 'declare' builtin in *note Bash Builtins::).
+A "parameter" is an entity that stores values. It can be a 'name', a
+number, or one of the special characters listed below. A "variable" is
+a parameter denoted by a 'name'. A variable has a 'value' and zero or
+more 'attributes'. Attributes are assigned using the 'declare' builtin
+command (see the description of the 'declare' builtin in *note Bash
+Builtins::).
A parameter is set if it has been assigned a value. The null string
is a valid value. Once a variable is set, it may be unset only by using
@@ -1362,24 +1474,23 @@ the 'unset' builtin command.
NAME=[VALUE]
If VALUE is not given, the variable is assigned the null string. All
VALUEs undergo tilde expansion, parameter and variable expansion,
-command substitution, arithmetic expansion, and quote removal (detailed
-below). If the variable has its 'integer' attribute set, then VALUE is
-evaluated as an arithmetic expression even if the '$((...))' expansion
-is not used (*note Arithmetic Expansion::). Word splitting is not
-performed, with the exception of '"$@"' as explained below. Filename
-expansion is not performed. Assignment statements may also appear as
-arguments to the 'alias', 'declare', 'typeset', 'export', 'readonly',
-and 'local' builtin commands (DECLARATION commands). When in POSIX mode
-(*note Bash POSIX Mode::), these builtins may appear in a command after
-one or more instances of the 'command' builtin and retain these
-assignment statement properties.
+command substitution, arithmetic expansion, and quote removal (*note
+Shell Parameter Expansion::). If the variable has its 'integer'
+attribute set, then VALUE is evaluated as an arithmetic expression even
+if the '$((...))' expansion is not used (*note Arithmetic Expansion::).
+Word splitting and filename expansion are not performed. Assignment
+statements may also appear as arguments to the 'alias', 'declare',
+'typeset', 'export', 'readonly', and 'local' builtin commands
+("declaration" commands). When in POSIX mode (*note Bash POSIX Mode::),
+these builtins may appear in a command after one or more instances of
+the 'command' builtin and retain these assignment statement properties.
In the context where an assignment statement is assigning a value to
a shell variable or array index (*note Arrays::), the '+=' operator can
be used to append to or add to the variable's previous value. This
includes arguments to builtin commands such as 'declare' that accept
-assignment statements (DECLARATION commands). When '+=' is applied to a
-variable for which the INTEGER attribute has been set, VALUE is
+assignment statements (declaration commands). When '+=' is applied to a
+variable for which the 'integer' attribute has been set, VALUE is
evaluated as an arithmetic expression and added to the variable's
current value, which is also evaluated. When '+=' is applied to an
array variable using compound assignment (*note Arrays::), the
@@ -1389,9 +1500,9 @@ maximum index (for indexed arrays), or added as additional key-value
pairs in an associative array. When applied to a string-valued
variable, VALUE is expanded and appended to the variable's value.
- A variable can be assigned the NAMEREF attribute using the '-n'
+ A variable can be assigned the 'nameref' attribute using the '-n'
option to the 'declare' or 'local' builtin commands (*note Bash
-Builtins::) to create a NAMEREF, or a reference to another variable.
+Builtins::) to create a "nameref", or a reference to another variable.
This allows variables to be manipulated indirectly. Whenever the
nameref variable is referenced, assigned to, unset, or has its
attributes modified (other than using or changing the nameref attribute
@@ -1401,9 +1512,9 @@ shell functions to refer to a variable whose name is passed as an
argument to the function. For instance, if a variable name is passed to
a shell function as its first argument, running
declare -n ref=$1
-inside the function creates a nameref variable REF whose value is the
+inside the function creates a nameref variable 'ref' whose value is the
variable name passed as the first argument. References and assignments
-to REF, and changes to its attributes, are treated as references,
+to 'ref', and changes to its attributes, are treated as references,
assignments, and attribute modifications to the variable whose name was
passed as '$1'.
@@ -1423,7 +1534,7 @@ File: bashref.info, Node: Positional Parameters, Next: Special Parameters, Up
3.4.1 Positional Parameters
---------------------------
-A POSITIONAL PARAMETER is a parameter denoted by one or more digits,
+A "positional parameter" is a parameter denoted by one or more digits,
other than the single digit '0'. Positional parameters are assigned
from the shell's arguments when it is invoked, and may be reassigned
using the 'set' builtin command. Positional parameter 'N' may be
@@ -1488,9 +1599,8 @@ only be referenced; assignment to them is not allowed.
shell itself (such as the '-i' option).
'$'
- ($$) Expands to the process ID of the shell. In a '()' subshell,
- it expands to the process ID of the invoking shell, not the
- subshell.
+ ($$) Expands to the process ID of the shell. In a subshell, it
+ expands to the process ID of the invoking shell, not the subshell.
'!'
($!) Expands to the process ID of the job most recently placed
@@ -1544,13 +1654,13 @@ substitution (done in a left-to-right fashion); word splitting; and
filename expansion.
On systems that can support it, there is an additional expansion
-available: PROCESS SUBSTITUTION. This is performed at the same time as
-tilde, parameter, variable, and arithmetic expansion and command
+available: "process substitution". This is performed at the same time
+as tilde, parameter, variable, and arithmetic expansion and command
substitution.
After these expansions are performed, quote characters present in the
-original word are removed unless they have been quoted themselves (QUOTE
-REMOVAL).
+original word are removed unless they have been quoted themselves
+("quote removal").
Only brace expansion, word splitting, and filename expansion can
increase the number of words of the expansion; other expansions expand a
@@ -1568,7 +1678,7 @@ File: bashref.info, Node: Brace Expansion, Next: Tilde Expansion, Up: Shell E
---------------------
Brace expansion is a mechanism by which arbitrary strings may be
-generated. This mechanism is similar to FILENAME EXPANSION (*note
+generated. This mechanism is similar to "filename expansion" (*note
Filename Expansion::), but the filenames generated need not exist.
Patterns to be brace expanded take the form of an optional PREAMBLE,
followed by either a series of comma-separated strings or a sequence
@@ -1583,17 +1693,17 @@ are not sorted; left to right order is preserved. For example,
ade ace abe
A sequence expression takes the form '{X..Y[..INCR]}', where X and Y
-are either integers or single characters, and INCR, an optional
-increment, is an integer. When integers are supplied, the expression
-expands to each number between X and Y, inclusive. Supplied integers
-may be prefixed with '0' to force each term to have the same width.
-When either X or Y begins with a zero, the shell attempts to force all
-generated terms to contain the same number of digits, zero-padding where
-necessary. When characters are supplied, the expression expands to each
-character lexicographically between X and Y, inclusive, using the
-default C locale. Note that both X and Y must be of the same type.
-When the increment is supplied, it is used as the difference between
-each term. The default increment is 1 or -1 as appropriate.
+are either integers or letters, and INCR, an optional increment, is an
+integer. When integers are supplied, the expression expands to each
+number between X and Y, inclusive. Supplied integers may be prefixed
+with '0' to force each term to have the same width. When either X or Y
+begins with a zero, the shell attempts to force all generated terms to
+contain the same number of digits, zero-padding where necessary. When
+letters are supplied, the expression expands to each character
+lexicographically between X and Y, inclusive, using the default C
+locale. Note that both X and Y must be of the same type (integer or
+letter). When the increment is supplied, it is used as the difference
+between each term. The default increment is 1 or -1 as appropriate.
Brace expansion is performed before any other expansions, and any
characters special to other expansions are preserved in the result. It
@@ -1623,9 +1733,9 @@ File: bashref.info, Node: Tilde Expansion, Next: Shell Parameter Expansion, P
If a word begins with an unquoted tilde character ('~'), all of the
characters up to the first unquoted slash (or all characters, if there
-is no unquoted slash) are considered a TILDE-PREFIX. If none of the
+is no unquoted slash) are considered a "tilde-prefix". If none of the
characters in the tilde-prefix are quoted, the characters in the
-tilde-prefix following the tilde are treated as a possible LOGIN NAME.
+tilde-prefix following the tilde are treated as a possible "login name".
If this login name is the null string, the tilde is replaced with the
value of the 'HOME' shell variable. If 'HOME' is unset, the home
directory of the user executing the shell is substituted instead.
@@ -1681,7 +1791,7 @@ assigns the expanded value.
Bash also performs tilde expansion on words satisfying the conditions
of variable assignments (*note Shell Parameters::) when they appear as
arguments to simple commands. Bash does not do this, except for the
-DECLARATION commands listed above, when in POSIX mode.
+declaration commands listed above, when in POSIX mode.

File: bashref.info, Node: Shell Parameter Expansion, Next: Command Substitution, Prev: Tilde Expansion, Up: Shell Expansions
@@ -1708,7 +1818,7 @@ parameter with more than one digit, or when PARAMETER is followed by a
character that is not to be interpreted as part of its name.
If the first character of PARAMETER is an exclamation point (!), and
-PARAMETER is not a NAMEREF, it introduces a level of indirection. Bash
+PARAMETER is not a nameref, it introduces a level of indirection. Bash
uses the value formed by expanding the rest of PARAMETER as the new
PARAMETER; this is then expanded and that value is used in the rest of
the expansion, rather than the expansion of the original PARAMETER.
@@ -1734,31 +1844,48 @@ omitted, the operator tests only for existence.
If PARAMETER is unset or null, the expansion of WORD is
substituted. Otherwise, the value of PARAMETER is substituted.
+ $ v=123
+ $ echo ${v-unset}
+ 123
+
'${PARAMETER:=WORD}'
If PARAMETER is unset or null, the expansion of WORD is assigned to
PARAMETER. The value of PARAMETER is then substituted. Positional
parameters and special parameters may not be assigned to in this
way.
+ $ var=
+ $ : ${var:=DEFAULT}
+ $ echo $var
+ DEFAULT
+
'${PARAMETER:?WORD}'
If PARAMETER is null or unset, the expansion of WORD (or a message
to that effect if WORD is not present) is written to the standard
error and the shell, if it is not interactive, exits. Otherwise,
the value of PARAMETER is substituted.
+ $ var=
+ $ : ${var:?var is unset or null}
+ bash: var: var is unset or null
+
'${PARAMETER:+WORD}'
If PARAMETER is null or unset, nothing is substituted, otherwise
the expansion of WORD is substituted.
+ $ var=123
+ $ echo ${var:+var is set and not null}
+ var is set and not null
+
'${PARAMETER:OFFSET}'
'${PARAMETER:OFFSET:LENGTH}'
This is referred to as Substring Expansion. It expands to up to
LENGTH characters of the value of PARAMETER starting at the
- character specified by OFFSET. If PARAMETER is '@', an indexed
- array subscripted by '@' or '*', or an associative array name, the
- results differ as described below. If LENGTH is omitted, it
- expands to the substring of the value of PARAMETER starting at the
- character specified by OFFSET and extending to the end of the
+ character specified by OFFSET. If PARAMETER is '@' or '*', an
+ indexed array subscripted by '@' or '*', or an associative array
+ name, the results differ as described below. If LENGTH is omitted,
+ it expands to the substring of the value of PARAMETER starting at
+ the character specified by OFFSET and extending to the end of the
value. LENGTH and OFFSET are arithmetic expressions (*note Shell
Arithmetic::).
@@ -1826,11 +1953,11 @@ omitted, the operator tests only for existence.
$ echo ${array[0]: -7:-2}
bcdef
- If PARAMETER is '@', the result is LENGTH positional parameters
- beginning at OFFSET. A negative OFFSET is taken relative to one
- greater than the greatest positional parameter, so an offset of -1
- evaluates to the last positional parameter. It is an expansion
- error if LENGTH evaluates to a number less than zero.
+ If PARAMETER is '@' or '*', the result is LENGTH positional
+ parameters beginning at OFFSET. A negative OFFSET is taken
+ relative to one greater than the greatest positional parameter, so
+ an offset of -1 evaluates to the last positional parameter. It is
+ an expansion error if LENGTH evaluates to a number less than zero.
The following examples illustrate substring expansion using
positional parameters:
@@ -1940,26 +2067,92 @@ omitted, the operator tests only for existence.
array in turn, and the expansion is the resultant list.
'${PARAMETER/PATTERN/STRING}'
-
+'${PARAMETER//PATTERN/STRING}'
+'${PARAMETER/#PATTERN/STRING}'
+'${PARAMETER/%PATTERN/STRING}'
The PATTERN is expanded to produce a pattern just as in filename
expansion. PARAMETER is expanded and the longest match of PATTERN
- against its value is replaced with STRING. The match is performed
- according to the rules described below (*note Pattern Matching::).
- If PATTERN begins with '/', all matches of PATTERN are replaced
- with STRING. Normally only the first match is replaced. If
- PATTERN begins with '#', it must match at the beginning of the
- expanded value of PARAMETER. If PATTERN begins with '%', it must
- match at the end of the expanded value of PARAMETER. If STRING is
- null, matches of PATTERN are deleted and the '/' following PATTERN
- may be omitted. If the 'nocasematch' shell option (see the
- description of 'shopt' in *note The Shopt Builtin::) is enabled,
- the match is performed without regard to the case of alphabetic
- characters. If PARAMETER is '@' or '*', the substitution operation
- is applied to each positional parameter in turn, and the expansion
- is the resultant list. If PARAMETER is an array variable
- subscripted with '@' or '*', the substitution operation is applied
- to each member of the array in turn, and the expansion is the
- resultant list.
+ against its value is replaced with STRING. STRING undergoes tilde
+ expansion, parameter and variable expansion, arithmetic expansion,
+ command and process substitution, and quote removal. The match is
+ performed according to the rules described below (*note Pattern
+ Matching::).
+
+ In the first form above, only the first match is replaced. If
+ there are two slashes separating PARAMETER and PATTERN (the second
+ form above), all matches of PATTERN are replaced with STRING. If
+ PATTERN is preceded by '#' (the third form above), it must match at
+ the beginning of the expanded value of PARAMETER. If PATTERN is
+ preceded by '%' (the fourth form above), it must match at the end
+ of the expanded value of PARAMETER. If the expansion of STRING is
+ null, matches of PATTERN are deleted. If STRING is null, matches
+ of PATTERN are deleted and the '/' following PATTERN may be
+ omitted.
+
+ If the 'patsub_replacement' shell option is enabled using 'shopt',
+ any unquoted instances of '&' in STRING are replaced with the
+ matching portion of PATTERN. This is intended to duplicate a
+ common 'sed' idiom.
+
+ Quoting any part of STRING inhibits replacement in the expansion of
+ the quoted portion, including replacement strings stored in shell
+ variables. Backslash will escape '&' in STRING; the backslash is
+ removed in order to permit a literal '&' in the replacement string.
+ Users should take care if STRING is double-quoted to avoid unwanted
+ interactions between the backslash and double-quoting, since
+ backslash has special meaning within double quotes. Pattern
+ substitution performs the check for unquoted '&' after expanding
+ STRING, so users should ensure to properly quote any occurrences of
+ '&' they want to be taken literally in the replacement and ensure
+ any instances of '&' they want to be replaced are unquoted.
+
+ For instance,
+
+ var=abcdef
+ rep='& '
+ echo ${var/abc/& }
+ echo "${var/abc/& }"
+ echo ${var/abc/$rep}
+ echo "${var/abc/$rep}"
+
+ will display four lines of "abc def", while
+
+ var=abcdef
+ rep='& '
+ echo ${var/abc/\& }
+ echo "${var/abc/\& }"
+ echo ${var/abc/"& "}
+ echo ${var/abc/"$rep"}
+
+ will display four lines of "& def". Like the pattern removal
+ operators, double quotes surrounding the replacement string quote
+ the expanded characters, while double quotes enclosing the entire
+ parameter substitution do not, since the expansion is performed in
+ a context that doesn't take any enclosing double quotes into
+ account.
+
+ Since backslash can escape '&', it can also escape a backslash in
+ the replacement string. This means that '\\' will insert a literal
+ backslash into the replacement, so these two 'echo' commands
+
+ var=abcdef
+ rep='\\&xyz'
+ echo ${var/abc/\\&xyz}
+ echo ${var/abc/$rep}
+
+ will both output '\abcxyzdef'.
+
+ It should rarely be necessary to enclose only STRING in double
+ quotes.
+
+ If the 'nocasematch' shell option (see the description of 'shopt'
+ in *note The Shopt Builtin::) is enabled, the match is performed
+ without regard to the case of alphabetic characters. If PARAMETER
+ is '@' or '*', the substitution operation is applied to each
+ positional parameter in turn, and the expansion is the resultant
+ list. If PARAMETER is an array variable subscripted with '@' or
+ '*', the substitution operation is applied to each member of the
+ array in turn, and the expansion is the resultant list.
'${PARAMETER^PATTERN}'
'${PARAMETER^^PATTERN}'
@@ -1970,18 +2163,22 @@ omitted, the operator tests only for existence.
filename expansion. Each character in the expanded value of
PARAMETER is tested against PATTERN, and, if it matches the
pattern, its case is converted. The pattern should not attempt to
- match more than one character. The '^' operator converts lowercase
- letters matching PATTERN to uppercase; the ',' operator converts
- matching uppercase letters to lowercase. The '^^' and ',,'
- expansions convert each matched character in the expanded value;
- the '^' and ',' expansions match and convert only the first
- character in the expanded value. If PATTERN is omitted, it is
- treated like a '?', which matches every character. If PARAMETER is
- '@' or '*', the case modification operation is applied to each
- positional parameter in turn, and the expansion is the resultant
- list. If PARAMETER is an array variable subscripted with '@' or
- '*', the case modification operation is applied to each member of
- the array in turn, and the expansion is the resultant list.
+ match more than one character.
+
+ The '^' operator converts lowercase letters matching PATTERN to
+ uppercase; the ',' operator converts matching uppercase letters to
+ lowercase. The '^^' and ',,' expansions convert each matched
+ character in the expanded value; the '^' and ',' expansions match
+ and convert only the first character in the expanded value. If
+ PATTERN is omitted, it is treated like a '?', which matches every
+ character.
+
+ If PARAMETER is '@' or '*', the case modification operation is
+ applied to each positional parameter in turn, and the expansion is
+ the resultant list. If PARAMETER is an array variable subscripted
+ with '@' or '*', the case modification operation is applied to each
+ member of the array in turn, and the expansion is the resultant
+ list.
'${PARAMETER@OPERATOR}'
The expansion is either a transformation of the value of PARAMETER
@@ -2021,6 +2218,10 @@ omitted, the operator tests only for existence.
'a'
The expansion is a string consisting of flag values
representing PARAMETER's attributes.
+ 'k'
+ Like the 'K' transformation, but expands the keys and values
+ of indexed and associative arrays to separate words after word
+ splitting.
If PARAMETER is '@' or '*', the operation is applied to each
positional parameter in turn, and the expansion is the resultant
@@ -2075,12 +2276,12 @@ is:
$(( EXPRESSION ))
- The expression is treated as if it were within double quotes, but a
-double quote inside the parentheses is not treated specially. All
-tokens in the expression undergo parameter and variable expansion,
-command substitution, and quote removal. The result is treated as the
-arithmetic expression to be evaluated. Arithmetic expansions may be
-nested.
+ The EXPRESSION undergoes the same expansions as if it were within
+double quotes, but double quote characters in EXPRESSION are not treated
+specially and are removed. All tokens in the expression undergo
+parameter and variable expansion, command substitution, and quote
+removal. The result is treated as the arithmetic expression to be
+evaluated. Arithmetic expansions may be nested.
The evaluation is performed according to the rules listed below
(*note Shell Arithmetic::). If the expression is invalid, Bash prints a
@@ -2175,9 +2376,12 @@ characters.
When a pattern is used for filename expansion, the character '.' at
the start of a filename or immediately following a slash must be matched
-explicitly, unless the shell option 'dotglob' is set. The filenames '.'
-and '..' must always be matched explicitly, even if 'dotglob' is set.
-In other cases, the '.' character is not treated specially.
+explicitly, unless the shell option 'dotglob' is set. In order to match
+the filenames '.' and '..', the pattern must begin with '.' (for
+example, '.?'), even if 'dotglob' is set. If the 'globskipdots' shell
+option is enabled, the filenames '.' and '..' are never matched, even if
+the pattern begins with a '.'. When not matching filenames, the '.'
+character is not treated specially.
When matching a filename, the slash character must always be matched
explicitly by a slash in the pattern, but in other matching contexts it
@@ -2185,8 +2389,8 @@ can be matched by a special pattern character as described below (*note
Pattern Matching::).
See the description of 'shopt' in *note The Shopt Builtin::, for a
-description of the 'nocaseglob', 'nullglob', 'failglob', and 'dotglob'
-options.
+description of the 'nocaseglob', 'nullglob', 'globskipdots', 'failglob',
+and 'dotglob' options.
The 'GLOBIGNORE' shell variable may be used to restrict the set of
file names matching a pattern. If 'GLOBIGNORE' is set, each matching
@@ -2232,20 +2436,21 @@ characters must be quoted if they are to be matched literally.
character not enclosed is matched. A '-' may be matched by
including it as the first or last character in the set. A ']' may
be matched by including it as the first character in the set. The
- sorting order of characters in range expressions is determined by
- the current locale and the values of the 'LC_COLLATE' and 'LC_ALL'
- shell variables, if set.
+ 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.
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 '[aBbCcDdxXyYz]', for
+ '[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.
- Within '[' and ']', CHARACTER CLASSES can be specified using the
+ Within '[' and ']', "character classes" can be specified using the
syntax '[:'CLASS':]', where CLASS is one of the following classes
defined in the POSIX standard:
alnum alpha ascii blank cntrl digit graph lower
@@ -2254,8 +2459,8 @@ characters must be quoted if they are to be matched literally.
The 'word' character class matches letters, digits, and the
character '_'.
- Within '[' and ']', an EQUIVALENCE CLASS can be specified using the
- syntax '[='C'=]', which matches all characters with the same
+ Within '[' and ']', an "equivalence class" can be specified using
+ the syntax '[='C'=]', which matches all characters with the same
collation weight (as defined by the current locale) as the
character C.
@@ -2263,10 +2468,12 @@ characters must be quoted if they are to be matched literally.
symbol SYMBOL.
If the 'extglob' shell option is enabled using the 'shopt' builtin,
-several extended pattern matching operators are recognized. In the
-following description, a PATTERN-LIST is a list of one or more patterns
-separated by a '|'. Composite patterns may be formed using one or more
-of the following sub-patterns:
+the shell recognizes several extended pattern matching operators. In
+the following description, a PATTERN-LIST is a list of one or more
+patterns separated by a '|'. When matching filenames, the 'dotglob'
+shell option determines the set of filenames that are tested, as
+described above. Composite patterns may be formed using one or more of
+the following sub-patterns:
'?(PATTERN-LIST)'
Matches zero or one occurrence of the given patterns.
@@ -2283,6 +2490,20 @@ of 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 '.'
+and '..' must be matched by a pattern or sub-pattern that begins with a
+dot; when it is disabled, the set does not include any filenames
+beginning with "." unless the pattern or sub-pattern begins with a '.'.
+As above, '.' only has a special meaning when matching filenames.
+
Complicated extended pattern matching against long strings is slow,
especially when the patterns contain alternations and the strings
contain multiple matches. Using separate matches against shorter
@@ -2305,8 +2526,8 @@ File: bashref.info, Node: Redirections, Next: Executing Commands, Prev: Shell
3.6 Redirections
================
-Before a command is executed, its input and output may be REDIRECTED
-using a special notation interpreted by the shell. Redirection allows
+Before a command is executed, its input and output may be "redirected"
+using a special notation interpreted by the shell. "Redirection" allows
commands' file handles to be duplicated, opened, closed, made to refer
to different files, and can change the files the command reads from and
writes to. Redirection may also be used to modify file handles in the
@@ -2322,7 +2543,8 @@ file descriptor greater than 10 and assign it to {VARNAME}. If >&- or
<&- is preceded by {VARNAME}, the value of VARNAME defines the file
descriptor to close. If {VARNAME} is supplied, the redirection persists
beyond the scope of the command, allowing the shell programmer to manage
-the file descriptor's lifetime manually.
+the file descriptor's lifetime manually. The 'varredir_close' shell
+option manages this behavior (*note The Shopt Builtin::).
In the following descriptions, if the file descriptor number is
omitted, and the first character of the redirection operator is '<', the
@@ -2584,11 +2806,13 @@ following order.
expansion, and quote removal before being assigned to the variable.
If no command name results, the variable assignments affect the
-current shell environment. Otherwise, the variables are added to the
-environment of the executed command and do not affect the current shell
-environment. If any of the assignments attempts to assign a value to a
-readonly variable, an error occurs, and the command exits with a
-non-zero status.
+current shell environment. In the case of such a command (one that
+consists only of assignment statements and redirections), assignment
+statements are performed before redirections. Otherwise, the variables
+are added to the environment of the executed command and do not affect
+the current shell environment. If any of the assignments attempts to
+assign a value to a readonly variable, an error occurs, and the command
+exits with a non-zero status.
If no command name results, redirections are performed, but do not
affect the current shell environment. A redirection error causes the
@@ -2642,8 +2866,8 @@ taken.
5. If this execution fails because the file is not in executable
format, and the file is not a directory, it is assumed to be a
- SHELL SCRIPT and the shell executes it as described in *note Shell
- Scripts::.
+ "shell script" and the shell executes it as described in *note
+ Shell Scripts::.
6. If the command was not begun asynchronously, the shell waits for
the command to complete and collects its exit status.
@@ -2654,7 +2878,8 @@ File: bashref.info, Node: Command Execution Environment, Next: Environment, P
3.7.3 Command Execution Environment
-----------------------------------
-The shell has an EXECUTION ENVIRONMENT, which consists of the following:
+The shell has an "execution environment", which consists of the
+following:
* open files inherited by the shell at invocation, as modified by
redirections supplied to the 'exec' builtin
@@ -2705,6 +2930,8 @@ inherited from the shell.
A command invoked in this separate environment cannot affect the
shell's execution environment.
+ A "subshell" is a copy of the shell process.
+
Command substitution, commands grouped with parentheses, and
asynchronous commands are invoked in a subshell environment that is a
duplicate of the shell environment, except that traps caught by the
@@ -2729,12 +2956,12 @@ File: bashref.info, Node: Environment, Next: Exit Status, Prev: Command Execu
-----------------
When a program is invoked it is given an array of strings called the
-ENVIRONMENT. This is a list of name-value pairs, of the form
+"environment". This is a list of name-value pairs, of the form
'name=value'.
Bash provides several ways to manipulate the environment. On
invocation, the shell scans its own environment and creates a parameter
-for each name found, automatically marking it for EXPORT to child
+for each name found, automatically marking it for 'export' to child
processes. Executed commands inherit the environment. The 'export' and
'declare -x' commands allow parameters and functions to be added to and
deleted from the environment. If the value of a parameter in the
@@ -2765,11 +2992,11 @@ File: bashref.info, Node: Exit Status, Next: Signals, Prev: Environment, Up:
-----------------
The exit status of an executed command is the value returned by the
-WAITPID system call or equivalent function. Exit statuses fall between
-0 and 255, though, as explained below, the shell may use values above
-125 specially. Exit statuses from shell builtins and compound commands
-are also limited to this range. Under certain circumstances, the shell
-will use special values to indicate specific failure modes.
+'waitpid' system call or equivalent function. Exit statuses fall
+between 0 and 255, though, as explained below, the shell may use values
+above 125 specially. Exit statuses from shell builtins and compound
+commands are also limited to this range. Under certain circumstances,
+the shell will use special values to indicate specific failure modes.
For the shell's purposes, a command which exits with a zero exit
status has succeeded. A non-zero exit status indicates failure. This
@@ -2795,6 +3022,9 @@ conditional and list constructs. All builtins return an exit status of
2 to indicate incorrect usage, generally invalid options or missing
arguments.
+ The exit status of the last command is available in the special
+parameter $? (*note Special Parameters::).
+

File: bashref.info, Node: Signals, Prev: Exit Status, Up: Executing Commands
@@ -2835,6 +3065,33 @@ the 'wait' builtin, the reception of a signal for which a trap has been
set will cause the 'wait' builtin to return immediately with an exit
status greater than 128, immediately after which the trap is executed.
+ When job control is not enabled, and Bash is waiting for a foreground
+command to complete, the shell receives keyboard-generated signals such
+as 'SIGINT' (usually generated by '^C') that users commonly intend to
+send to that command. This happens because the shell and the command
+are in the same process group as the terminal, and '^C' sends 'SIGINT'
+to all processes in that process group. See *note Job Control::, for a
+more in-depth discussion of process groups.
+
+ When Bash is running without job control enabled and receives
+'SIGINT' while waiting for a foreground command, it waits until that
+foreground command terminates and then decides what to do about the
+'SIGINT':
+
+ 1. If the command terminates due to the 'SIGINT', Bash concludes that
+ the user meant to end the entire script, and acts on the 'SIGINT'
+ (e.g., by running a 'SIGINT' trap or exiting itself);
+
+ 2. If the pipeline does not terminate due to 'SIGINT', the program
+ handled the 'SIGINT' itself and did not treat it as a fatal signal.
+ In that case, Bash does not treat 'SIGINT' as a fatal signal,
+ either, instead assuming that the 'SIGINT' was used as part of the
+ program's normal operation (e.g., 'emacs' uses it to abort editing
+ commands) or deliberately discarded. However, Bash will run any
+ trap set on 'SIGINT', as it does with any other trapped signal it
+ receives while it is waiting for the foreground command to
+ complete, for compatibility.
+

File: bashref.info, Node: Shell Scripts, Prev: Executing Commands, Up: Basic Shell Features
@@ -2857,8 +3114,8 @@ parameters are unset.
A shell script may be made executable by using the 'chmod' command to
turn on the execute bit. When Bash finds such a file while searching
-the '$PATH' for a command, it spawns a subshell to execute it. In other
-words, executing
+the '$PATH' for a command, it creates a new instance of itself to
+execute it. In other words, executing
filename ARGUMENTS
is equivalent to executing
bash filename ARGUMENTS
@@ -2962,19 +3219,20 @@ standard.
Read and execute commands from the FILENAME argument in the current
shell context. If FILENAME does not contain a slash, the 'PATH'
- variable is used to find FILENAME. When Bash is not in POSIX mode,
- the current directory is searched if FILENAME is not found in
- '$PATH'. If any ARGUMENTS are supplied, they become the positional
- parameters when FILENAME is executed. Otherwise the positional
- parameters are unchanged. If the '-T' option is enabled, 'source'
- inherits any trap on 'DEBUG'; if it is not, any 'DEBUG' trap string
- is saved and restored around the call to 'source', and 'source'
- unsets the 'DEBUG' trap while it executes. If '-T' is not set, and
- the sourced file changes the 'DEBUG' trap, the new value is
- retained when 'source' completes. The return status is the exit
- status of the last command executed, or zero if no commands are
- executed. If FILENAME is not found, or cannot be read, the return
- status is non-zero. This builtin is equivalent to 'source'.
+ variable is used to find FILENAME, but FILENAME does not need to be
+ executable. When Bash is not in POSIX mode, it searches the
+ current directory if FILENAME is not found in '$PATH'. If any
+ ARGUMENTS are supplied, they become the positional parameters when
+ FILENAME is executed. Otherwise the positional parameters are
+ unchanged. If the '-T' option is enabled, '.' inherits any trap on
+ 'DEBUG'; if it is not, any 'DEBUG' trap string is saved and
+ restored around the call to '.', and '.' unsets the 'DEBUG' trap
+ while it executes. If '-T' is not set, and the sourced file
+ changes the 'DEBUG' trap, the new value is retained when '.'
+ completes. The return status is the exit status of the last
+ command executed, or zero if no commands are executed. If FILENAME
+ is not found, or cannot be read, the return status is non-zero.
+ This builtin is equivalent to 'source'.
'break'
break [N]
@@ -2988,10 +3246,9 @@ standard.
cd [-L|[-P [-e]] [-@] [DIRECTORY]
Change the current working directory to DIRECTORY. If DIRECTORY is
- not supplied, the value of the 'HOME' shell variable is used. Any
- additional arguments following DIRECTORY are ignored. If the shell
- variable 'CDPATH' exists, it is used as a search path: each
- directory name in 'CDPATH' is searched for DIRECTORY, with
+ not supplied, the value of the 'HOME' shell variable is used. If
+ the shell variable 'CDPATH' exists, it is used as a search path:
+ each directory name in 'CDPATH' is searched for DIRECTORY, with
alternative directory names in 'CDPATH' separated by a colon (':').
If DIRECTORY begins with a slash, 'CDPATH' is not used.
@@ -3022,6 +3279,11 @@ standard.
absolute pathname of the new working directory is written to the
standard output.
+ If the directory change is successful, 'cd' sets the value of the
+ 'PWD' environment variable to the new directory name, and sets the
+ 'OLDPWD' environment variable to the value of the current working
+ directory before the change.
+
The return status is zero if the directory is successfully changed,
non-zero otherwise.
@@ -3073,7 +3335,7 @@ standard.
Mark each NAME to be passed to child processes in the environment.
If the '-f' option is supplied, the NAMEs refer to shell functions;
otherwise the names refer to shell variables. The '-n' option
- means to no longer mark each NAME for export. If no NAMES are
+ means to no longer mark each NAME for export. If no NAMEs are
supplied, or if the '-p' option is given, a list of names of all
exported variables is displayed. The '-p' option displays output
in a form that may be reused as input. If a variable name is
@@ -3277,10 +3539,16 @@ standard.
4. Otherwise, the expression is false.
4 arguments
- If the first argument is '!', the result is the negation of
- the three-argument expression composed of the remaining
- arguments. Otherwise, the expression is parsed and evaluated
- according to precedence using the rules listed above.
+ The following conditions are applied in the order listed.
+
+ 1. If the first argument is '!', the result is the negation
+ of the three-argument expression composed of the
+ remaining arguments.
+ 2. If the first argument is exactly '(' and the fourth
+ argument is exactly ')', the result is the two-argument
+ test of the second and third arguments.
+ 3. Otherwise, the expression is parsed and evaluated
+ according to precedence using the rules listed above.
5 or more arguments
The expression is parsed and evaluated according to precedence
@@ -3369,7 +3637,7 @@ standard.
given, each NAME refers to a shell variable and that variable is
removed. If the '-f' option is given, the NAMEs refer to shell
functions, and the function definition is removed. If the '-n'
- option is supplied, and NAME is a variable with the NAMEREF
+ option is supplied, and NAME is a variable with the 'nameref'
attribute, NAME will be unset rather than the variable it
references. '-n' has no effect if the '-f' option is supplied. If
no options are supplied, each NAME refers to a variable; if there
@@ -3377,7 +3645,8 @@ standard.
unset. Readonly variables and functions may not be unset. Some
shell variables lose their special behavior if they are unset; such
behavior is noted in the description of the individual variables.
- The return status is zero unless a NAME is readonly.
+ The return status is zero unless a NAME is readonly or may not be
+ unset.

File: bashref.info, Node: Bash Builtins, Next: Modifying Shell Behavior, Prev: Bourne Shell Builtins, Up: Shell Builtin Commands
@@ -3406,6 +3675,7 @@ standard.
bind [-m KEYMAP] -x KEYSEQ:SHELL-COMMAND
bind [-m KEYMAP] KEYSEQ:FUNCTION-NAME
bind [-m KEYMAP] KEYSEQ:READLINE-COMMAND
+ bind READLINE-COMMAND-LINE
Display current Readline (*note Command Line Editing::) key and
function bindings, bind a key sequence to a Readline function or
@@ -3470,10 +3740,13 @@ standard.
'READLINE_LINE' variable to the contents of the Readline line
buffer and the 'READLINE_POINT' and 'READLINE_MARK' variables
to the current location of the insertion point and the saved
- insertion point (the MARK), respectively. If the executed
- command changes the value of any of 'READLINE_LINE',
- 'READLINE_POINT', or 'READLINE_MARK', those new values will be
- reflected in the editing state.
+ insertion point (the MARK), respectively. The shell assigns
+ any numeric argument the user supplied to the
+ 'READLINE_ARGUMENT' variable. If there was no argument, that
+ variable is not set. If the executed command changes the
+ value of any of 'READLINE_LINE', 'READLINE_POINT', or
+ 'READLINE_MARK', those new values will be reflected in the
+ editing state.
'-X'
List all key sequences bound to shell commands and the
@@ -3556,7 +3829,7 @@ standard.
It is ignored in all other cases.
The '-I' option causes local variables to inherit the attributes
- (except the NAMEREF attribute) and value of any existing variable
+ (except the 'nameref' attribute) and value of any existing variable
with the same NAME at a surrounding scope. If there is no existing
variable, the local variable is initially unset.
@@ -3583,7 +3856,7 @@ standard.
attribute is disabled.
'-n'
- Give each NAME the NAMEREF attribute, making it a name
+ Give each NAME the 'nameref' attribute, making it a name
reference to another variable. That other variable is defined
by the value of NAME. All references, assignments, and
attribute modifications to NAME, except for those using or
@@ -3626,7 +3899,7 @@ standard.
attempt is made to assign a value to a readonly variable, an
attempt is made to assign a value to an array variable without
using the compound assignment syntax (*note Arrays::), one of the
- NAMES is not a valid shell variable name, an attempt is made to
+ NAMEs 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 '-f'.
@@ -3699,13 +3972,20 @@ standard.
The '-f' option means to load the new builtin command NAME from
shared object FILENAME, on systems that support dynamic loading.
- The '-d' option will delete a builtin loaded with '-f'.
+ Bash will use the value of the 'BASH_LOADABLES_PATH' variable as a
+ colon-separated list of directories in which to search for
+ FILENAME. The default is system-dependent. The '-d' option will
+ delete a builtin loaded with '-f'.
If there are no options, a list of the shell builtins is displayed.
The '-s' option restricts 'enable' to the POSIX special builtins.
If '-s' is used with '-f', the new builtin becomes a special
builtin (*note Special Builtins::).
+ If no options are supplied and a NAME is not a shell builtin,
+ 'enable' will attempt to load NAME from a shared object named NAME,
+ as if the command were 'enable -f NAME NAME'.
+
The return status is zero unless a NAME is not a shell builtin or
there is an error loading a new builtin from a shared object.
@@ -3826,6 +4106,9 @@ standard.
'%q'
Causes 'printf' to output the corresponding ARGUMENT in a
format that can be reused as shell input.
+ '%Q'
+ like '%q', but applies any supplied precision to the ARGUMENT
+ before quoting it.
'%(DATEFMT)T'
Causes 'printf' to output the date-time string resulting from
using DATEFMT as a format string for 'strftime'(3). The
@@ -3934,8 +4217,9 @@ standard.
partial input read into the specified variable NAME. If
TIMEOUT is 0, 'read' returns immediately, without trying to
read any data. The exit status is 0 if input is available on
- the specified file descriptor, non-zero otherwise. The exit
- status is greater than 128 if the timeout is exceeded.
+ the specified file descriptor, or the read will return EOF,
+ non-zero otherwise. The exit status is greater than 128 if
+ the timeout is exceeded.
'-u FD'
Read input from file descriptor FD.
@@ -3991,7 +4275,7 @@ standard.
If the '-f' option is used, 'type' does not attempt to find shell
functions, as with the 'command' builtin.
- The return status is zero if all of the NAMES are found, non-zero
+ The return status is zero if all of the NAMEs are found, non-zero
if any are not found.
'typeset'
@@ -4135,8 +4419,8 @@ allows you to change the values of shell options and set the positional
parameters, or to display the names and values of shell variables.
'set'
- set [--abefhkmnptuvxBCEHPT] [-o OPTION-NAME] [ARGUMENT ...]
- set [+abefhkmnptuvxBCEHPT] [+o OPTION-NAME] [ARGUMENT ...]
+ set [-abefhkmnptuvxBCEHPT] [-o OPTION-NAME] [--] [-] [ARGUMENT ...]
+ set [+abefhkmnptuvxBCEHPT] [+o OPTION-NAME] [--] [-] [ARGUMENT ...]
If no options or arguments are supplied, 'set' displays the names
and values of all shell variables and functions, sorted according
@@ -4317,14 +4601,19 @@ parameters, or to display the names and values of shell variables.
causes the effective user and group ids to be set to the real
user and group ids.
+ '-r'
+ Enable restricted shell mode. This option cannot be unset
+ once it has been set.
+
'-t'
Exit after reading and executing one command.
'-u'
Treat unset variables and parameters other than the special
- parameters '@' or '*' as an error when performing parameter
- expansion. An error message will be written to the standard
- error, and a non-interactive shell will exit.
+ parameters '@' or '*', or array variables subscripted with '@'
+ or '*', as an error when performing parameter expansion. An
+ error message will be written to the standard error, and a
+ non-interactive shell will exit.
'-v'
Print shell input lines as they are read.
@@ -4421,7 +4710,7 @@ This builtin allows you to change additional shell optional behavior.
option is used, those available with the '-o' option to the 'set'
builtin command (*note The Set Builtin::). With no options, or
with the '-p' option, a list of all settable options is displayed,
- with an indication of whether or not each is set; if OPTNAMES are
+ with an indication of whether or not each is set; if OPTNAMEs are
supplied, the output is restricted to those options. The '-p'
option causes output to be displayed in a form that may be reused
as input. Other options have the following meanings:
@@ -4435,7 +4724,7 @@ This builtin allows you to change additional shell optional behavior.
'-q'
Suppresses normal output; the return status indicates whether
the OPTNAME is set or unset. If multiple OPTNAME arguments
- are given with '-q', the return status is zero if all OPTNAMES
+ are given with '-q', the return status is zero if all OPTNAMEs
are enabled; non-zero otherwise.
'-o'
@@ -4448,7 +4737,7 @@ This builtin allows you to change additional shell optional behavior.
Unless otherwise noted, the 'shopt' options are disabled (off) by
default.
- The return status when listing options is zero if all OPTNAMES are
+ The return status when listing options is zero if all OPTNAMEs are
enabled, non-zero otherwise. When setting or unsetting options,
the return status is zero unless an OPTNAME is not a valid shell
option.
@@ -4532,7 +4821,7 @@ This builtin allows you to change additional shell optional behavior.
'direxpand'
If set, Bash replaces directory names with the results of word
expansion when performing filename completion. This changes
- the contents of the readline editing buffer. If not set, Bash
+ the contents of the Readline editing buffer. If not set, Bash
attempts to preserve what the user typed.
'dirspell'
@@ -4616,6 +4905,11 @@ This builtin allows you to change additional shell optional behavior.
upper-case and lower-case ASCII characters will collate
together.
+ 'globskipdots'
+ If set, filename expansion will never match the filenames '.'
+ and '..', even if the pattern begins with a '.'. This option
+ is enabled by default.
+
'globstar'
If set, the pattern '**' used in a filename expansion context
will match all files and zero or more directories and
@@ -4675,7 +4969,7 @@ This builtin allows you to change additional shell optional behavior.
'localvar_inherit'
If set, local variables inherit the value and attributes of a
variable of the same name that exists at a previous scope
- before any new value is assigned. The NAMEREF attribute is
+ before any new value is assigned. The 'nameref' attribute is
not inherited.
'localvar_unset'
@@ -4706,14 +5000,26 @@ This builtin allows you to change additional shell optional behavior.
'nocasematch'
If set, Bash matches patterns in a case-insensitive fashion
when performing matching while executing 'case' or '[['
- conditional commands, when performing pattern substitution
- word expansions, or when filtering possible completions as
- part of programmable completion.
+ conditional commands (*note Conditional Constructs::, when
+ performing pattern substitution word expansions, or when
+ filtering possible completions as part of programmable
+ completion.
+
+ 'noexpand_translation'
+ If set, Bash encloses the translated results of $"..."
+ quoting in single quotes instead of double quotes. If the
+ string is not translated, this has no effect.
'nullglob'
If set, Bash allows filename patterns which match no files to
expand to a null string, rather than themselves.
+ 'patsub_replacement'
+ If set, Bash expands occurrences of '&' in the replacement
+ string of pattern substitution to the text matched by the
+ pattern, as described above (*note Shell Parameter
+ Expansion::). This option is enabled by default.
+
'progcomp'
If set, the programmable completion facilities (*note
Programmable Completion::) are enabled. This option is
@@ -4745,9 +5051,15 @@ This builtin allows you to change additional shell optional behavior.
parameters.
'sourcepath'
- If set, the 'source' builtin uses the value of 'PATH' to find
- the directory containing the file supplied as an argument.
- This option is enabled by default.
+ If set, the '.' ('source') builtin uses the value of 'PATH' to
+ find the directory containing the file supplied as an
+ argument. This option is enabled by default.
+
+ 'varredir_close'
+ If set, the shell automatically closes file descriptors
+ assigned using the '{varname}' redirection syntax (*note
+ Redirections::) instead of leaving them open when the command
+ completes.
'xpg_echo'
If set, the 'echo' builtin expands backslash-escape sequences
@@ -4980,7 +5292,7 @@ Variables::).
'BASH_LINENO'
An array variable whose members are the line numbers in source
- files where each corresponding member of FUNCNAME was invoked.
+ files where each corresponding member of 'FUNCNAME' was invoked.
'${BASH_LINENO[$i]}' is the line number in the source file
('${BASH_SOURCE[$i+1]}') where '${FUNCNAME[$i]}' was called (or
'${BASH_LINENO[$i-1]}' if referenced within another shell
@@ -5017,10 +5329,10 @@ Variables::).
to the array members are as follows:
'BASH_VERSINFO[0]'
- The major version number (the RELEASE).
+ The major version number (the "release").
'BASH_VERSINFO[1]'
- The minor version number (the VERSION).
+ The minor version number (the "version").
'BASH_VERSINFO[2]'
The patch level.
@@ -5029,7 +5341,7 @@ Variables::).
The build version.
'BASH_VERSINFO[4]'
- The release status (e.g., BETA1).
+ The release status (e.g., 'beta1').
'BASH_VERSINFO[5]'
The value of 'MACHTYPE'.
@@ -5082,12 +5394,12 @@ Variables::).
'COMP_TYPE'
Set to an integer value corresponding to the type of completion
- attempted that caused a completion function to be called: TAB, for
- normal completion, '?', for listing completions after successive
- tabs, '!', for listing alternatives on partial word completion,
- '@', to list completions if the word is not unmodified, or '%', for
- menu completion. This variable is available only in shell
- functions and external commands invoked by the programmable
+ attempted that caused a completion function to be called: <TAB>,
+ for normal completion, '?', for listing completions after
+ successive tabs, '!', for listing alternatives on partial word
+ completion, '@', to list completions if the word is not unmodified,
+ or '%', for menu completion. This variable is available only in
+ shell functions and external commands invoked by the programmable
completion facilities (*note Programmable Completion::).
'COMP_KEY'
@@ -5133,7 +5445,7 @@ Variables::).
Emacs shell buffer and disables line editing.
'ENV'
- Expanded and executed similarlty to 'BASH_ENV' (*note Bash Startup
+ Expanded and executed similarly to 'BASH_ENV' (*note Bash Startup
Files::) when an interactive shell is invoked in POSIX Mode (*note
Bash POSIX Mode::).
@@ -5141,16 +5453,16 @@ Variables::).
Each time this parameter is referenced, it expands to the number of
seconds since the Unix Epoch as a floating point value with
micro-second granularity (see the documentation for the C library
- function TIME for the definition of Epoch). Assignments to
+ function 'time' for the definition of Epoch). Assignments to
'EPOCHREALTIME' are ignored. If 'EPOCHREALTIME' is unset, it loses
its special properties, even if it is subsequently reset.
'EPOCHSECONDS'
Each time this parameter is referenced, it expands to the number of
seconds since the Unix Epoch (see the documentation for the C
- library function TIME for the definition of Epoch). Assignments to
- 'EPOCHSECONDS' are ignored. If 'EPOCHSECONDS' is unset, it loses
- its special properties, even if it is subsequently reset.
+ library function 'time' for the definition of Epoch). Assignments
+ to 'EPOCHSECONDS' are ignored. If 'EPOCHSECONDS' is unset, it
+ loses its special properties, even if it is subsequently reset.
'EUID'
The numeric effective user id of the current user. This variable
@@ -5217,7 +5529,7 @@ Variables::).
'histchars'
Up to three characters which control history expansion, quick
substitution, and tokenization (*note History Interaction::). The
- first character is the HISTORY EXPANSION character, that is, the
+ first character is the "history expansion" character, that is, the
character which signifies the start of a history expansion,
normally '!'. The second character is the character which
signifies 'quick substitution' when seen as the first character on
@@ -5295,7 +5607,7 @@ Variables::).
'HISTTIMEFORMAT'
If this variable is set and not null, its value is used as a format
- string for STRFTIME to print the time stamp associated with each
+ string for 'strftime' to print the time stamp associated with each
history entry displayed by the 'history' builtin. If this variable
is set, time stamps are written to the history file so they may be
preserved across shell sessions. This uses the history comment
@@ -5449,7 +5761,7 @@ Variables::).
with '#? '
'PS4'
- The value of this parameter is expanded like PS1 and the expanded
+ The value of this parameter is expanded like 'PS1' and the expanded
value is the prompt printed before the command line is echoed when
the '-x' option is set (*note The Set Builtin::). The first
character of the expanded value is replicated multiple times, as
@@ -5465,15 +5777,19 @@ Variables::).
seeds the random number generator. If 'RANDOM' is unset, it loses
its special properties, even if it is subsequently reset.
+'READLINE_ARGUMENT'
+ Any numeric argument given to a Readline command that was defined
+ using 'bind -x' (*note Bash Builtins:: when it was invoked.
+
'READLINE_LINE'
The contents of the Readline line buffer, for use with 'bind -x'
(*note Bash Builtins::).
'READLINE_MARK'
- The position of the MARK (saved insertion point) in the Readline
+ The position of the "mark" (saved insertion point) in the Readline
line buffer, for use with 'bind -x' (*note Bash Builtins::). The
characters between the insertion point and the mark are often
- called the REGION.
+ called the "region".
'READLINE_POINT'
The position of the insertion point in the Readline line buffer,
@@ -5487,7 +5803,7 @@ Variables::).
started. Assignment to this variable resets the count to the value
assigned, and the expanded value becomes the value assigned plus
the number of seconds since the assignment. The number of seconds
- at shell invocation and the current time is always determined by
+ at shell invocation and the current time are always determined by
querying the system clock. If 'SECONDS' is unset, it loses its
special properties, even if it is subsequently reset.
@@ -5843,14 +6159,15 @@ Invoked by remote shell daemon
..............................
Bash attempts to determine when it is being run with its standard input
-connected to a network connection, as when executed by the remote shell
-daemon, usually 'rshd', or the secure shell daemon 'sshd'. If Bash
-determines it is being run in this fashion, it reads and executes
-commands from '~/.bashrc', if that file exists and is readable. It will
-not do this if invoked as 'sh'. The '--norc' option may be used to
-inhibit this behavior, and the '--rcfile' option may be used to force
-another file to be read, but neither 'rshd' nor 'sshd' generally invoke
-the shell with those options or allow them to be specified.
+connected to a network connection, as when executed by the historical
+remote shell daemon, usually 'rshd', or the secure shell daemon 'sshd'.
+If Bash determines it is being run non-interactively in this fashion, it
+reads and executes commands from '~/.bashrc', if that file exists and is
+readable. It will not do this if invoked as 'sh'. The '--norc' option
+may be used to inhibit this behavior, and the '--rcfile' option may be
+used to force another file to be read, but neither 'rshd' nor 'sshd'
+generally invoke the shell with those options or allow them to be
+specified.
Invoked with unequal effective and real UID/GIDs
................................................
@@ -5874,7 +6191,7 @@ File: bashref.info, Node: Interactive Shells, Next: Bash Conditional Expressio
* What is an Interactive Shell?:: What determines whether a shell is Interactive.
* Is this Shell Interactive?:: How to tell if a shell is interactive.
-* Interactive Shell Behavior:: What changes in a interactive shell?
+* Interactive Shell Behavior:: What changes in an interactive shell?

File: bashref.info, Node: What is an Interactive Shell?, Next: Is this Shell Interactive?, Up: Interactive Shells
@@ -5882,8 +6199,8 @@ File: bashref.info, Node: What is an Interactive Shell?, Next: Is this Shell I
6.3.1 What is an Interactive Shell?
-----------------------------------
-An interactive shell is one started without non-option arguments, unless
-'-s' is specified, without specifying the '-c' option, and whose input
+An interactive shell is one started without non-option arguments (unless
+'-s' is specified) and without specifying the '-c' option, whose input
and error output are both connected to terminals (as determined by
'isatty(3)'), or one started with the '-i' option.
@@ -5941,7 +6258,7 @@ several ways.
string escape sequences.
4. Bash executes the values of the set elements of the
- 'PROMPT_COMMANDS' array variable as commands before printing the
+ 'PROMPT_COMMAND' array variable as commands before printing the
primary prompt, '$PS1' (*note Bash Variables::).
5. Readline (*note Command Line Editing::) is used to read commands
@@ -5993,9 +6310,11 @@ several ways.
19. Parser syntax errors will not cause the shell to exit.
- 20. Simple spelling correction for directory arguments to the 'cd'
- builtin is enabled by default (see the description of the 'cdspell'
- option to the 'shopt' builtin in *note The Shopt Builtin::).
+ 20. If the 'cdspell' shell option is enabled, the shell will attempt
+ simple spelling correction for directory arguments to the 'cd'
+ builtin (see the description of the 'cdspell' option to the 'shopt'
+ builtin in *note The Shopt Builtin::). The 'cdspell' option is
+ only effective in interactive shells.
21. The shell will check the value of the 'TMOUT' variable and exit if
a command is not read within the specified number of seconds after
@@ -6007,10 +6326,11 @@ File: bashref.info, Node: Bash Conditional Expressions, Next: Shell Arithmetic
6.4 Bash Conditional Expressions
================================
-Conditional expressions are used by the '[[' compound command and the
-'test' and '[' builtin commands. The 'test' and '[' commands determine
-their behavior based on the number of arguments; see the descriptions of
-those commands for any other command-specific actions.
+Conditional expressions are used by the '[[' compound command (*note
+Conditional Constructs::) and the 'test' and '[' builtin commands (*note
+Bourne Shell Builtins::). The 'test' and '[' commands determine their
+behavior based on the number of arguments; see the descriptions of those
+commands for any other command-specific actions.
Expressions may be unary or binary, and are formed from the following
primaries. Unary expressions are often used to examine the status of a
@@ -6228,8 +6548,8 @@ parameter expansion syntax. A shell variable that is null or unset
evaluates to 0 when referenced by name without using the parameter
expansion syntax. The value of a variable is evaluated as an arithmetic
expression when it is referenced, or when a variable which has been
-given the INTEGER attribute using 'declare -i' is assigned a value. A
-null value evaluates to 0. A shell variable need not have its INTEGER
+given the 'integer' attribute using 'declare -i' is assigned a value. A
+null value evaluates to 0. A shell variable need not have its 'integer'
attribute turned on to be used in an expression.
Integer constants follow the C language definition, without suffixes
@@ -6254,7 +6574,7 @@ File: bashref.info, Node: Aliases, Next: Arrays, Prev: Shell Arithmetic, Up:
6.6 Aliases
===========
-ALIASES allow a string to be substituted for a word when it is used as
+"Aliases" allow a string to be substituted for a word when it is used as
the first word of a simple command. The shell maintains a list of
aliases that may be set and unset with the 'alias' and 'unalias' builtin
commands.
@@ -6269,15 +6589,15 @@ is tested for aliases, but a word that is identical to an alias being
expanded is not expanded a second time. This means that one may alias
'ls' to '"ls -F"', for instance, and Bash does not try to recursively
expand the replacement text. If the last character of the alias value
-is a BLANK, then the next command word following the alias is also
+is a 'blank', then the next command word following the alias is also
checked for alias expansion.
Aliases are created and listed with the 'alias' command, and removed
with the 'unalias' command.
There is no mechanism for using arguments in the replacement text, as
-in 'csh'. If arguments are needed, a shell function should be used
-(*note Shell Functions::).
+in 'csh'. If arguments are needed, use a shell function (*note Shell
+Functions::).
Aliases are not expanded when the shell is not interactive, unless
the 'expand_aliases' shell option is set using 'shopt' (*note The Shopt
@@ -6363,6 +6683,10 @@ negative number, that number is interpreted as relative to one greater
than the maximum index of NAME, so negative indices count back from the
end of the array, and an index of -1 references the last element.
+ The '+=' operator will append to an array variable when assigning
+using the compound assignment syntax; see *note Shell Parameters::
+above.
+
Any element of an array may be referenced using '${NAME[SUBSCRIPT]}'.
The braces are required to avoid conflicts with the shell's filename
expansion operators. If the SUBSCRIPT is '@' or '*', the word expands
@@ -6402,7 +6726,11 @@ NAME[SUBSCRIPT]' destroys the array element at index SUBSCRIPT.
Negative subscripts to indexed arrays are interpreted as described
above. Unsetting the last element of an array variable does not unset
the variable. 'unset NAME', where NAME is an array, removes the entire
-array. A subscript of '*' or '@' also removes the entire array.
+array. 'unset NAME[SUBSCRIPT]' behaves differently depending on the
+array type when given a subscript of '*' or '@'. When NAME is an
+associative array, it removes the element with key '*' or '@'. If NAME
+is an indexed array, 'unset' removes all of the elements, but does not
+remove the array itself.
When using a variable name with a subscript as an argument to a
command, such as with 'unset', without using the word expansion syntax
@@ -6477,10 +6805,14 @@ File: bashref.info, Node: Directory Stack Builtins, Up: The Directory Stack
'popd'
popd [-n] [+N | -N]
+ Removes elements from the directory stack. The elements are
+ numbered from 0 starting at the first directory listed by 'dirs';
+ that is, 'popd' is equivalent to 'popd +0'.
+
When no arguments are given, 'popd' removes the top directory from
- the stack and performs a 'cd' to the new top directory. The
- elements are numbered from 0 starting at the first directory listed
- with 'dirs'; that is, 'popd' is equivalent to 'popd +0'.
+ the stack and changes to the new top directory.
+
+ Arguments, if supplied, have the following meanings:
'-n'
Suppresses the normal change of directory when removing
@@ -6488,17 +6820,32 @@ File: bashref.info, Node: Directory Stack Builtins, Up: The Directory Stack
manipulated.
'+N'
Removes the Nth directory (counting from the left of the list
- printed by 'dirs'), starting with zero.
+ printed by 'dirs'), starting with zero, from the stack.
'-N'
Removes the Nth directory (counting from the right of the list
- printed by 'dirs'), starting with zero.
+ printed by 'dirs'), starting with zero, from the stack.
+
+ If the top element of the directory stack is modified, and the '-n'
+ option was not supplied, 'popd' uses the 'cd' builtin to change to
+ the directory at the top of the stack. If the 'cd' fails, 'popd'
+ returns a non-zero value.
+
+ Otherwise, 'popd' returns an unsuccessful status if an invalid
+ option is encountered, the directory stack is empty, or a
+ non-existent directory stack entry is specified.
+
+ If the 'popd' command is successful, Bash runs 'dirs' to show the
+ final contents of the directory stack, and the return status is 0.
'pushd'
pushd [-n] [+N | -N | DIR]
- Save the current directory on the top of the directory stack and
- then 'cd' to DIR. With no arguments, 'pushd' exchanges the top two
- directories and makes the new top the current directory.
+ Adds a directory to the top of the directory stack, or rotates the
+ stack, making the new top of the stack the current working
+ directory. With no arguments, 'pushd' exchanges the top two
+ elements of the directory stack.
+
+ Arguments, if supplied, have the following meanings:
'-n'
Suppresses the normal change of directory when rotating or
@@ -6513,9 +6860,20 @@ File: bashref.info, Node: Directory Stack Builtins, Up: The Directory Stack
printed by 'dirs', starting with zero) to the top of the list
by rotating the stack.
'DIR'
- Makes DIR be the top of the stack, making it the new current
- directory as if it had been supplied as an argument to the
- 'cd' builtin.
+ Makes DIR be the top of the stack.
+
+ After the stack has been modified, if the '-n' option was not
+ supplied, 'pushd' uses the 'cd' builtin to change to the directory
+ at the top of the stack. If the 'cd' fails, 'pushd' returns a
+ non-zero value.
+
+ Otherwise, if no arguments are supplied, 'pushd' returns 0 unless
+ the directory stack is empty. When rotating the directory stack,
+ 'pushd' returns 0 unless the directory stack is empty or a
+ non-existent directory stack element is specified.
+
+ If the 'pushd' command is successful, Bash runs 'dirs' to show the
+ final contents of the directory stack.

File: bashref.info, Node: Controlling the Prompt, Next: The Restricted Shell, Prev: The Directory Stack, Up: Bash Features
@@ -6523,9 +6881,9 @@ File: bashref.info, Node: Controlling the Prompt, Next: The Restricted Shell,
6.9 Controlling the Prompt
==========================
-Bash examines the value of the array variable 'PROMPT_COMMANDS' just
+Bash examines the value of the array variable 'PROMPT_COMMAND' just
before printing each primary prompt. If any elements in
-'PROMPT_COMMANDS' are set and non-null, Bash executes each value, in
+'PROMPT_COMMAND' are set and non-null, Bash executes each value, in
numeric order, just as if it had been typed on the command line.
In addition, the following table describes the special characters
@@ -6571,8 +6929,8 @@ which can appear in the prompt variables 'PS0', 'PS1', 'PS2', and 'PS4':
'\V'
The release of Bash, version + patchlevel (e.g., 2.00.0)
'\w'
- The current working directory, with '$HOME' abbreviated with a
- tilde (uses the '$PROMPT_DIRTRIM' variable).
+ The value of the 'PWD' shell variable ('$PWD'), with '$HOME'
+ abbreviated with a tilde (uses the '$PROMPT_DIRTRIM' variable).
'\W'
The basename of '$PWD', with '$HOME' abbreviated with a tilde.
'\!'
@@ -6638,7 +6996,8 @@ with the exception that the following are disallowed or not performed:
* Using the 'enable' builtin command to enable disabled shell
builtins.
* Specifying the '-p' option to the 'command' builtin.
- * Turning off restricted mode with 'set +r' or 'set +o restricted'.
+ * Turning off restricted mode with 'set +r' or 'shopt -u
+ restricted_shell'.
These restrictions are enforced after any startup files are read.
@@ -6649,11 +7008,11 @@ spawned to execute the script.
The restricted shell mode is only one component of a useful
restricted environment. It should be accompanied by setting 'PATH' to a
value that allows execution of only a few verified commands (commands
-that allow shell escapes are particularly vulnerable), leaving the user
-in a non-writable directory other than his home directory after login,
-not allowing the restricted shell to execute shell scripts, and cleaning
-the environment of variables that cause some commands to modify their
-behavior (e.g., 'VISUAL' or 'PAGER').
+that allow shell escapes are particularly vulnerable), changing the
+current directory to a non-writable directory other than '$HOME' after
+login, not allowing the restricted shell to execute shell scripts, and
+cleaning the environment of variables that cause some commands to modify
+their behavior (e.g., 'VISUAL' or 'PAGER').
Modern systems provide more secure ways to implement a restricted
environment, such as 'jails', 'zones', or 'containers'.
@@ -6696,203 +7055,219 @@ startup files.
7. Reserved words appearing in a context where reserved words are
recognized do not undergo alias expansion.
- 8. The POSIX 'PS1' and 'PS2' expansions of '!' to the history number
+ 8. Alias expansion is performed when initially parsing a command
+ substitution. The default mode generally defers it, when enabled,
+ until the command substitution is executed. This means that
+ command substitution will not expand aliases that are defined after
+ the command substitution is initially parsed (e.g., as part of a
+ function definition).
+
+ 9. The POSIX 'PS1' and 'PS2' expansions of '!' to the history number
and '!!' to '!' are enabled, and parameter expansion is performed
on the values of 'PS1' and 'PS2' regardless of the setting of the
'promptvars' option.
- 9. The POSIX startup files are executed ('$ENV') rather than the
+ 10. The POSIX startup files are executed ('$ENV') rather than the
normal Bash files.
- 10. Tilde expansion is only performed on assignments preceding a
+ 11. Tilde expansion is only performed on assignments preceding a
command name, rather than on all assignment statements on the line.
- 11. The default history file is '~/.sh_history' (this is the default
+ 12. The default history file is '~/.sh_history' (this is the default
value of '$HISTFILE').
- 12. Redirection operators do not perform filename expansion on the
+ 13. Redirection operators do not perform filename expansion on the
word in the redirection unless the shell is interactive.
- 13. Redirection operators do not perform word splitting on the word in
+ 14. Redirection operators do not perform word splitting on the word in
the redirection.
- 14. Function names must be valid shell 'name's. That is, they may not
+ 15. Function names must be valid shell 'name's. That is, they may not
contain characters other than letters, digits, and underscores, and
may not start with a digit. Declaring a function with an invalid
name causes a fatal syntax error in non-interactive shells.
- 15. Function names may not be the same as one of the POSIX special
+ 16. Function names may not be the same as one of the POSIX special
builtins.
- 16. POSIX special builtins are found before shell functions during
+ 17. POSIX special builtins are found before shell functions during
command lookup.
- 17. When printing shell function definitions (e.g., by 'type'), Bash
+ 18. When printing shell function definitions (e.g., by 'type'), Bash
does not print the 'function' keyword.
- 18. Literal tildes that appear as the first character in elements of
+ 19. Literal tildes that appear as the first character in elements of
the 'PATH' variable are not expanded as described above under *note
Tilde Expansion::.
- 19. The 'time' reserved word may be used by itself as a command. When
+ 20. The 'time' reserved word may be used by itself as a command. When
used in this way, it displays timing statistics for the shell and
its completed children. The 'TIMEFORMAT' variable controls the
format of the timing information.
- 20. When parsing and expanding a ${...} expansion that appears within
+ 21. When parsing and expanding a ${...} expansion that appears within
double quotes, single quotes are no longer special and cannot be
used to quote a closing brace or other special character, unless
the operator is one of those defined to perform pattern removal.
In this case, they do not have to appear as matched pairs.
- 21. The parser does not recognize 'time' as a reserved word if the
+ 22. The parser does not recognize 'time' as a reserved word if the
next token begins with a '-'.
- 22. The '!' character does not introduce history expansion within a
+ 23. The '!' character does not introduce history expansion within a
double-quoted string, even if the 'histexpand' option is enabled.
- 23. If a POSIX special builtin returns an error status, a
+ 24. If a POSIX special builtin returns an error status, a
non-interactive shell exits. The fatal errors are those listed in
the POSIX standard, and include things like passing incorrect
options, redirection errors, variable assignment errors for
assignments preceding the command name, and so on.
- 24. A non-interactive shell exits with an error status if a variable
+ 25. A non-interactive shell exits with an error status if a variable
assignment error occurs when no command name follows the assignment
statements. A variable assignment error occurs, for example, when
trying to assign a value to a readonly variable.
- 25. A non-interactive shell exits with an error status if a variable
+ 26. A non-interactive shell exits with an error status if a variable
assignment error occurs in an assignment statement preceding a
- special builtin, but not with any other simple command.
+ special builtin, but not with any other simple command. For any
+ other simple command, the shell aborts execution of that command,
+ and execution continues at the top level ("the shell shall not
+ perform any further processing of the command in which the error
+ occurred").
- 26. A non-interactive shell exits with an error status if the
+ 27. A non-interactive shell exits with an error status if the
iteration variable in a 'for' statement or the selection variable
in a 'select' statement is a readonly variable.
- 27. Non-interactive shells exit if FILENAME in '.' FILENAME is not
+ 28. Non-interactive shells exit if FILENAME in '.' FILENAME is not
found.
- 28. Non-interactive shells exit if a syntax error in an arithmetic
+ 29. Non-interactive shells exit if a syntax error in an arithmetic
expansion results in an invalid expression.
- 29. Non-interactive shells exit if a parameter expansion error occurs.
+ 30. Non-interactive shells exit if a parameter expansion error occurs.
- 30. Non-interactive shells exit if there is a syntax error in a script
+ 31. Non-interactive shells exit if there is a syntax error in a script
read with the '.' or 'source' builtins, or in a string processed by
the 'eval' builtin.
- 31. While variable indirection is available, it may not be applied to
+ 32. While variable indirection is available, it may not be applied to
the '#' and '?' special parameters.
- 32. When expanding the '*' special parameter in a pattern context
- where the expansion is double-quoted does not treat the '$*' as if
- it were double-quoted.
+ 33. Expanding the '*' special parameter in a pattern context where the
+ expansion is double-quoted does not treat the '$*' as if it were
+ double-quoted.
- 33. Assignment statements preceding POSIX special builtins persist in
+ 34. Assignment statements preceding POSIX special builtins persist in
the shell environment after the builtin completes.
- 34. The 'command' builtin does not prevent builtins that take
+ 35. The 'command' builtin does not prevent builtins that take
assignment statements as arguments from expanding them as
assignment statements; when not in POSIX mode, assignment builtins
lose their assignment statement expansion properties when preceded
by 'command'.
- 35. The 'bg' builtin uses the required format to describe each job
+ 36. The 'bg' builtin uses the required format to describe each job
placed in the background, which does not include an indication of
whether the job is the current or previous job.
- 36. The output of 'kill -l' prints all the signal names on a single
+ 37. The output of 'kill -l' prints all the signal names on a single
line, separated by spaces, without the 'SIG' prefix.
- 37. The 'kill' builtin does not accept signal names with a 'SIG'
+ 38. The 'kill' builtin does not accept signal names with a 'SIG'
prefix.
- 38. The 'export' and 'readonly' builtin commands display their output
+ 39. The 'export' and 'readonly' builtin commands display their output
in the format required by POSIX.
- 39. The 'trap' builtin displays signal names without the leading
+ 40. The 'trap' builtin displays signal names without the leading
'SIG'.
- 40. The 'trap' builtin doesn't check the first argument for a possible
+ 41. The 'trap' builtin doesn't check the first argument for a possible
signal specification and revert the signal handling to the original
disposition if it is, unless that argument consists solely of
digits and is a valid signal number. If users want to reset the
handler for a given signal to the original disposition, they should
use '-' as the first argument.
- 41. 'trap -p' displays signals whose dispositions are set to SIG_DFL
+ 42. 'trap -p' displays signals whose dispositions are set to SIG_DFL
and those that were ignored when the shell started.
- 42. The '.' and 'source' builtins do not search the current directory
+ 43. The '.' and 'source' builtins do not search the current directory
for the filename argument if it is not found by searching 'PATH'.
- 43. Enabling POSIX mode has the effect of setting the
+ 44. Enabling POSIX mode has the effect of setting the
'inherit_errexit' option, so subshells spawned to execute command
substitutions inherit the value of the '-e' option from the parent
shell. When the 'inherit_errexit' option is not enabled, Bash
clears the '-e' option in such subshells.
- 44. Enabling POSIX mode has the effect of setting the 'shift_verbose'
+ 45. Enabling POSIX mode has the effect of setting the 'shift_verbose'
option, so numeric arguments to 'shift' that exceed the number of
positional parameters will result in an error message.
- 45. When the 'alias' builtin displays alias definitions, it does not
+ 46. When the 'alias' builtin displays alias definitions, it does not
display them with a leading 'alias ' unless the '-p' option is
supplied.
- 46. When the 'set' builtin is invoked without options, it does not
+ 47. When the 'set' builtin is invoked without options, it does not
display shell function names and definitions.
- 47. When the 'set' builtin is invoked without options, it displays
+ 48. When the 'set' builtin is invoked without options, it displays
variable values without quotes, unless they contain shell
metacharacters, even if the result contains nonprinting characters.
- 48. When the 'cd' builtin is invoked in LOGICAL mode, and the pathname
+ 49. When the 'cd' builtin is invoked in logical mode, and the pathname
constructed from '$PWD' and the directory name supplied as an
argument does not refer to an existing directory, 'cd' will fail
- instead of falling back to PHYSICAL mode.
+ instead of falling back to physical mode.
- 49. When the 'cd' builtin cannot change a directory because the length
+ 50. When the 'cd' builtin cannot change a directory because the length
of the pathname constructed from '$PWD' and the directory name
- supplied as an argument exceeds PATH_MAX when all symbolic links
+ supplied as an argument exceeds 'PATH_MAX' when all symbolic links
are expanded, 'cd' will fail instead of attempting to use only the
supplied directory name.
- 50. The 'pwd' builtin verifies that the value it prints is the same as
+ 51. The 'pwd' builtin verifies that the value it prints is the same as
the current directory, even if it is not asked to check the file
system with the '-P' option.
- 51. When listing the history, the 'fc' builtin does not include an
+ 52. When listing the history, the 'fc' builtin does not include an
indication of whether or not a history entry has been modified.
- 52. The default editor used by 'fc' is 'ed'.
+ 53. The default editor used by 'fc' is 'ed'.
- 53. The 'type' and 'command' builtins will not report a non-executable
+ 54. The 'type' and 'command' builtins will not report a non-executable
file as having been found, though the shell will attempt to execute
such a file if it is the only so-named file found in '$PATH'.
- 54. The 'vi' editing mode will invoke the 'vi' editor directly when
+ 55. The 'vi' editing mode will invoke the 'vi' editor directly when
the 'v' command is run, instead of checking '$VISUAL' and
'$EDITOR'.
- 55. When the 'xpg_echo' option is enabled, Bash does not attempt to
+ 56. When the 'xpg_echo' option is enabled, Bash does not attempt to
interpret any arguments to 'echo' as options. Each argument is
displayed, after escape characters are converted.
- 56. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
+ 57. The 'ulimit' builtin uses a block size of 512 bytes for the '-c'
and '-f' options.
- 57. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
+ 58. The arrival of 'SIGCHLD' when a trap is set on 'SIGCHLD' does not
interrupt the 'wait' builtin and cause it to return immediately.
The trap command is run once for each child that exits.
- 58. The 'read' builtin may be interrupted by a signal for which a trap
+ 59. The 'read' builtin may be interrupted by a signal for which a trap
has been set. If Bash receives a trapped signal while executing
'read', the trap handler executes and 'read' returns an exit status
greater than 128.
- 59. Bash removes an exited background process's status from the list
+ 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.
+
+ 61. Bash removes an exited background process's status from the list
of such statuses after the 'wait' builtin is used to obtain it.
There is other POSIX behavior that Bash does not implement by default
@@ -6915,7 +7290,7 @@ File: bashref.info, Node: Shell Compatibility Mode, Prev: Bash POSIX Mode, Up
6.12 Shell Compatibility Mode
=============================
-Bash-4.0 introduced the concept of a 'shell compatibility level',
+Bash-4.0 introduced the concept of a "shell compatibility level",
specified as a set of options to the shopt builtin ('compat31',
'compat32', 'compat40', 'compat41', and so on). There is only one
current compatibility level - each option is mutually exclusive. The
@@ -6927,7 +7302,7 @@ be a temporary solution.
This section does not mention behavior that is standard for a
particular version (e.g., setting 'compat32' 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).
+word, which is default behavior in bash-3.2 and subsequent versions).
If a user enables, say, 'compat32', it may affect the behavior of
other compatibility levels up to and including the current compatibility
@@ -7004,8 +7379,8 @@ required for bash-5.1 and later versions.
'compat43'
* the shell does not print a warning message if an attempt is
made to use a quoted compound assignment as an argument to
- declare (declare -a foo='(1 2)'). Later versions warn that
- this usage is deprecated
+ declare (e.g., declare -a foo='(1 2)'). Later versions warn
+ that this usage is deprecated
* word expansion errors are considered non-fatal errors that
cause the current command to fail, even in posix mode (the
default behavior is to make them fatal errors that cause the
@@ -7040,6 +7415,38 @@ required for bash-5.1 and later versions.
when producing output that can be reused as input. Bash-5.1
suppresses that message when the '-l' option is supplied.
+'compat51 (set using BASH_COMPAT)'
+ * The 'unset' builtin will unset the array 'a' given an argument
+ like 'a[@]'. Bash-5.2 will unset an element with key '@'
+ (associative arrays) or remove all the elements without
+ unsetting the array (indexed arrays)
+ * arithmetic commands ( ((...)) ) and the expressions in an
+ arithmetic for statement can be expanded more than once
+ * expressions used as arguments to arithmetic operators in the
+ '[[' conditional command can be expanded more than once
+ * the expressions in substring parameter brace expansion can be
+ expanded more than once
+ * the expressions in the $(( ... )) word expansion can be
+ expanded more than once
+ * arithmetic expressions used as indexed array subscripts can be
+ expanded more than once
+ * 'test -v', when given an argument of 'A[@]', where A is an
+ existing associative array, will return true if the array has
+ any set elements. Bash-5.2 will look for and report on a key
+ named '@'
+ * the ${PARAMETER[:]=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.
+ * 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
@@ -7093,19 +7500,19 @@ when 'stty tostop' is in effect) the terminal are sent a 'SIGTTIN'
caught, suspends the process.
If the operating system on which Bash is running supports job
-control, Bash contains facilities to use it. Typing the SUSPEND
+control, Bash contains facilities to use it. Typing the "suspend"
character (typically '^Z', Control-Z) while a process is running causes
that process to be stopped and returns control to Bash. Typing the
-DELAYED SUSPEND character (typically '^Y', Control-Y) causes the process
-to be stopped when it attempts to read input from the terminal, and
-control to be returned to Bash. The user then manipulates the state of
-this job, using the 'bg' command to continue it in the background, the
-'fg' command to continue it in the foreground, or the 'kill' command to
-kill it. A '^Z' takes effect immediately, and has the additional side
-effect of causing pending output and typeahead to be discarded.
+"delayed suspend" character (typically '^Y', Control-Y) causes the
+process to be stopped when it attempts to read input from the terminal,
+and control to be returned to Bash. The user then manipulates the state
+of this job, using the 'bg' command to continue it in the background,
+the 'fg' command to continue it in the foreground, or the 'kill' command
+to kill it. A '^Z' takes effect immediately, and has the additional
+side effect of causing pending output and typeahead to be discarded.
There are a number of ways to refer to a job in the shell. The
-character '%' introduces a job specification (JOBSPEC).
+character '%' introduces a job specification ("jobspec").
Job number 'n' may be referred to as '%n'. The symbols '%%' and '%+'
refer to the shell's notion of the current job, which is the last job
@@ -7234,7 +7641,7 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
for all running background jobs and the last-executed process
substitution, if its process id is the same as $!, and the return
status is zero. If the '-n' option is supplied, 'wait' waits for a
- single job from the list of PIDS or JOBSPECS or, if no arguments
+ single job from the list of PIDs or JOBSPECs or, if no arguments
are supplied, any job, to complete and returns its exit status. If
none of the supplied arguments is a child of the shell, or if no
arguments are supplied and the shell has no unwaited-for children,
@@ -7245,9 +7652,12 @@ 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.
+ shell, the return status is 127. If 'wait' is interrupted by a
+ signal, the return status will be greater than 128, as described
+ above (*note Signals::). Otherwise, the return status is the exit
+ status of the last process or job waited for.
'disown'
disown [-ar] [-h] [JOBSPEC ... | PID ... ]
@@ -7265,8 +7675,11 @@ File: bashref.info, Node: Job Control Builtins, Next: Job Control Variables,
suspend [-f]
Suspend the execution of this shell until it receives a 'SIGCONT'
- signal. A login shell cannot be suspended; the '-f' option can be
- used to override this and force the suspension.
+ signal. A login shell, or a shell without job control enabled,
+ cannot be suspended; the '-f' 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 '-f' is not
+ supplied.
When job control is not active, the 'kill' and 'wait' builtins do not
accept JOBSPEC arguments. They must be supplied process IDs.
@@ -7427,9 +7840,9 @@ Printing characters
Undo the last editing command. You can undo all the way back to an
empty line.
-(Depending on your configuration, the <Backspace> key be set to delete
-the character to the left of the cursor and the <DEL> key set to delete
-the character underneath the cursor, like 'C-d', rather than the
+(Depending on your configuration, the <Backspace> key might be set to
+delete the character to the left of the cursor and the <DEL> key set to
+delete the character underneath the cursor, like 'C-d', rather than the
character to the left of the cursor.)

@@ -7491,9 +7904,9 @@ available to be yanked back later, when you are typing another line.
as those used by 'M-f'.
'M-<DEL>'
- Kill from the cursor the start of the current word, or, if between
- words, to the start of the previous word. Word boundaries are the
- same as those used by 'M-b'.
+ Kill from the cursor to the start of the current word, or, if
+ between words, to the start of the previous word. Word boundaries
+ are the same as those used by 'M-b'.
'C-w'
Kill from the cursor to the previous whitespace. This is different
@@ -7582,7 +7995,7 @@ File: bashref.info, Node: Readline Init File, Next: Bindable Readline Commands
Although the Readline library comes with a set of Emacs-like keybindings
installed by default, it is possible to use a different set of
keybindings. Any user can customize programs that use Readline by
-putting commands in an "inputrc" file, conventionally in his home
+putting commands in an "inputrc" file, conventionally in their home
directory. The name of this file is taken from the value of the shell
variable 'INPUTRC'. If that variable is unset, the default is
'~/.inputrc'. If that file does not exist or cannot be read, the
@@ -7641,6 +8054,32 @@ Variable Settings
A great deal of run-time behavior is changeable with the following
variables.
+ 'active-region-start-color'
+ A string variable that controls the text color and background
+ when displaying the text in the active region (see the
+ description of 'enable-active-region' below). This string
+ must not take up any physical character positions on the
+ display, so it should consist only of terminal escape
+ sequences. It is output to the terminal before displaying the
+ text in the active region. This variable is reset to the
+ default value whenever the terminal type changes. The default
+ value is the string that puts the terminal in standout mode,
+ as obtained from the terminal's terminfo description. A
+ sample value might be '\e[01;33m'.
+
+ 'active-region-end-color'
+ A string variable that "undoes" the effects of
+ 'active-region-start-color' and restores "normal" terminal
+ display appearance after displaying text in the active region.
+ This string must not take up any physical character positions
+ on the display, so it should consist only of terminal escape
+ sequences. It is output to the terminal after displaying the
+ text in the active region. This variable is reset to the
+ default value whenever the terminal type changes. The default
+ value is the string that restores the terminal from standout
+ mode, as obtained from the terminal's terminfo description. A
+ sample value might be '\e[0m'.
+
'bell-style'
Controls what happens when Readline wants to ring the terminal
bell. If set to 'none', Readline never rings the bell. If
@@ -7662,7 +8101,10 @@ Variable Settings
If set to 'on', when listing completions, Readline displays
the common prefix of the set of possible completions using a
different color. The color definitions are taken from the
- value of the 'LS_COLORS' environment variable. The default is
+ value of the 'LS_COLORS' environment variable. If there is a
+ color definition in 'LS_COLORS' for the custom suffix
+ 'readline-colored-completion-prefix', Readline uses this color
+ for the common prefix instead of its default. The default is
'off'.
'colored-stats'
@@ -7708,8 +8150,9 @@ Variable Settings
than or equal to this value, Readline will ask whether or not
the user wishes to view them; otherwise, they are simply
listed. This variable must be set to an integer value greater
- than or equal to 0. A negative value means Readline should
- never ask. The default limit is '100'.
+ than or equal to zero. A zero value means Readline should
+ never ask; negative values are treated as zero. The default
+ limit is '100'.
'convert-meta'
If set to 'on', Readline will convert characters with the
@@ -7717,7 +8160,9 @@ Variable Settings
eighth bit and prefixing an <ESC> character, converting them
to a meta-prefixed key sequence. The default value is 'on',
but will be set to 'off' if the locale is one that contains
- eight-bit characters.
+ eight-bit characters. This variable is dependent on the
+ 'LC_CTYPE' locale category, and may change if the locale is
+ changed.
'disable-completion'
If set to 'On', Readline will inhibit word completion.
@@ -7726,7 +8171,7 @@ Variable Settings
'echo-control-characters'
When set to 'on', on operating systems that indicate they
- support it, readline echoes a character corresponding to a
+ support it, Readline echoes a character corresponding to a
signal generated from the keyboard. The default is 'on'.
'editing-mode'
@@ -7745,13 +8190,27 @@ Variable Settings
non-printing characters, which can be used to embed a terminal
control sequence into the mode string. The default is '@'.
+ 'enable-active-region'
+ The "point" is the current cursor position, and "mark" refers
+ to a saved cursor position (*note Commands For Moving::). The
+ text between the point and mark is referred to as the
+ "region". When this variable is set to 'On', Readline allows
+ certain commands to designate the region as "active". When
+ the region is active, Readline highlights the text in the
+ region using the value of the 'active-region-start-color',
+ which defaults to the string that enables the terminal's
+ standout mode. The active region shows the text inserted by
+ bracketed-paste and any matching text found by incremental and
+ non-incremental history searches. The default is 'On'.
+
'enable-bracketed-paste'
- When set to 'On', Readline will configure the terminal in a
- way that will enable it to insert each paste into the editing
- buffer as a single string of characters, instead of treating
- each character as if it had been read from the keyboard. This
- can prevent pasted characters from being interpreted as
- editing commands. The default is 'On'.
+ When set to 'On', Readline configures the terminal to insert
+ each paste into the editing buffer as a single string of
+ characters, instead of treating each character as if it had
+ been read from the keyboard. This is called putting the
+ terminal into "bracketed paste mode"; it prevents Readline
+ from executing any editing commands bound to key sequences
+ appearing in the pasted text. The default is 'On'.
'enable-keypad'
When set to 'on', Readline will try to enable the application
@@ -7798,7 +8257,9 @@ Variable Settings
regardless of what the terminal claims it can support. The
default value is 'off', but Readline will set it to 'on' if
the locale contains eight-bit characters. The name
- 'meta-flag' is a synonym for this variable.
+ 'meta-flag' is a synonym for this variable. This variable is
+ dependent on the 'LC_CTYPE' locale category, and may change if
+ the locale is changed.
'isearch-terminators'
The string of characters that should terminate an incremental
@@ -7863,7 +8324,9 @@ Variable Settings
If set to 'on', Readline will display characters with the
eighth bit set directly rather than as a meta-prefixed escape
sequence. The default is 'off', but Readline will set it to
- 'on' if the locale contains eight-bit characters.
+ 'on' if the locale contains eight-bit characters. This
+ variable is dependent on the 'LC_CTYPE' locale category, and
+ may change if the locale is changed.
'page-completions'
If set to 'on', Readline uses an internal 'more'-like pager to
@@ -7879,7 +8342,8 @@ Variable Settings
If set to 'on', Readline will undo all changes to history
lines before returning when 'accept-line' is executed. By
default, history lines may be modified and retain individual
- undo lists across calls to 'readline'. The default is 'off'.
+ undo lists across calls to 'readline()'. The default is
+ 'off'.
'show-all-if-ambiguous'
This alters the default behavior of the completion functions.
@@ -7906,7 +8370,7 @@ Variable Settings
If set to 'on', this alters the default completion behavior
when inserting a single match into the line. It's only active
when performing completion in the middle of a word. If
- enabled, readline does not insert characters from the
+ enabled, Readline does not insert characters from the
completion that match characters after point in the word being
completed, so portions of the word following the cursor are
not duplicated. For instance, if this is enabled, attempting
@@ -7956,11 +8420,11 @@ Key Bindings
part of the key name. The name of the key can be expressed in
different ways, depending on what you find most comfortable.
- In addition to command names, readline allows keys to be bound to a
+ In addition to command names, Readline allows keys to be bound to a
string that is inserted when the key is pressed (a MACRO).
The 'bind -p' command displays Readline function names and bindings
- in a format that can put directly into an initialization file.
+ in a format that can be put directly into an initialization file.
*Note Bash Builtins::.
KEYNAME: FUNCTION-NAME or MACRO
@@ -8438,6 +8902,11 @@ File: bashref.info, Node: Commands For History, Next: Commands For Text, Prev
supplied, specifies the history entry to use instead of the current
line.
+'fetch-history ()'
+ With a numeric argument, fetch that entry from the history list and
+ make it the current line. Without an argument, move back to the
+ first entry in the history list.
+

File: bashref.info, Node: Commands For Text, Next: Commands For Killing, Prev: Commands For History, Up: Bindable Readline Commands
@@ -8754,7 +9223,7 @@ File: bashref.info, Node: Keyboard Macros, Next: Miscellaneous Commands, Prev
characters in the macro appear as if typed at the keyboard.
'print-last-kbd-macro ()'
- Print the last keboard macro defined in a format suitable for the
+ Print the last keyboard macro defined in a format suitable for the
INPUTRC file.

@@ -8801,12 +9270,12 @@ File: bashref.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up:
'character-search (C-])'
A character is read and point is moved to the next occurrence of
- that character. A negative count searches for previous
+ that character. A negative argument searches for previous
occurrences.
'character-search-backward (M-C-])'
A character is read and point is moved to the previous occurrence
- of that character. A negative count searches for subsequent
+ of that character. A negative argument searches for subsequent
occurrences.
'skip-csi-sequence ()'
@@ -8814,7 +9283,7 @@ File: bashref.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up:
those defined for keys like Home and End. Such sequences begin
with a Control Sequence Indicator (CSI), usually ESC-[. If this
sequence is bound to "\e[", keys producing such sequences will have
- no effect unless explicitly bound to a readline command, instead of
+ no effect unless explicitly bound to a Readline command, instead of
inserting stray characters into the editing buffer. This is
unbound by default, but usually bound to ESC-[.
@@ -8849,6 +9318,12 @@ File: bashref.info, Node: Miscellaneous Commands, Prev: Keyboard Macros, Up:
is formatted in such a way that it can be made part of an INPUTRC
file. This command is unbound by default.
+'spell-correct-word (C-x s)'
+ Perform spelling correction on the current word, treating it as a
+ directory or filename, in the same way as the 'cdspell' shell
+ option. Word boundaries are the same as those used by
+ 'shell-forward-word'.
+
'glob-complete-word (M-g)'
The word before point is treated as a pattern for pathname
expansion, with an asterisk implicitly appended. This pattern is
@@ -9249,7 +9724,8 @@ happening.
'-C COMMAND'
COMMAND is executed in a subshell environment, and its output
- is used as the possible completions.
+ is used as the possible completions. Arguments are passed as
+ with the '-F' option.
'-F FUNCTION'
The shell function FUNCTION is executed in the current shell
@@ -9411,7 +9887,7 @@ CDPATH: Readline can't tell those completions are directories). The '-o
nospace' option tells Readline to not append a space character to the
directory name, in case we want to append to it. The '-o bashdefault'
option brings in the rest of the "Bash default" completions - possible
-completion that Bash adds to the default Readline set. These include
+completions that Bash adds to the default Readline set. These include
things like command name completion, variable completion for words
beginning with '$' or '${', completions containing pathname expansion
patterns (*note Filename Expansion::), and so on.
@@ -9578,9 +10054,9 @@ history file.
-d' command.
'-d START-END'
- Delete the history entries between positions START and END,
- inclusive. Positive and negative values for START and END are
- interpreted as described above.
+ Delete the range of history entries between positions START
+ and END, inclusive. Positive and negative values for START
+ and END are interpreted as described above.
'-a'
Append the new history lines to the history file. These are
@@ -9609,9 +10085,14 @@ history file.
The ARGs are added to the end of the history list as a single
entry.
- When any of the '-w', '-r', '-a', or '-n' options is used, if
- FILENAME is given, then it is used as the history file. If not,
- then the value of the 'HISTFILE' variable is used.
+ If a FILENAME argument is supplied when any of the '-w', '-r',
+ '-a', or '-n' options is used, Bash uses FILENAME as the history
+ file. If not, then the value of the 'HISTFILE' variable is used.
+
+ The return value is 0 unless an invalid option is encountered, an
+ error occurs while reading or writing the history file, an invalid
+ OFFSET or range is supplied as an argument to '-d', or the history
+ expansion supplied as an argument to '-p' fails.

File: bashref.info, Node: History Interaction, Prev: Bash History Builtins, Up: Using History Interactively
@@ -9828,7 +10309,7 @@ or edit, the word or words selected from the history event.
'&' appears in NEW, it is replaced by OLD. A single backslash will
quote the '&'. If OLD is null, it is set to the last OLD
substituted, or, if no previous history substitutions took place,
- the last STRING in a !?STRING'[?]' search. If NEW is is null, each
+ the last STRING in a !?STRING'[?]' search. If NEW is null, each
matching OLD is deleted. The final delimiter is optional if it is
the last character on the input line.
@@ -9897,20 +10378,28 @@ These are installation instructions for Bash.
3. Optionally, type 'make tests' to run the Bash test suite.
4. Type 'make install' to install 'bash' and 'bashbug'. This will
- also install the manual pages and Info file.
+ also install the manual pages and Info file, message translation
+ files, some supplemental documentation, a number of example
+ loadable builtin commands, and a set of header files for developing
+ loadable builtins. You may need additional privileges to install
+ 'bash' to your desired destination, so 'sudo make install' might be
+ required. More information about controlling the locations where
+ 'bash' and other files are installed is below (*note Installation
+ Names::).
The 'configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a 'Makefile' in each directory of the package
-(the top directory, the 'builtins', 'doc', and 'support' directories,
-each directory under 'lib', and several others). It also creates a
-'config.h' file containing system-dependent definitions. Finally, it
-creates a shell script named 'config.status' that you can run in the
-future to recreate the current configuration, a file 'config.cache' that
-saves the results of its tests to speed up reconfiguring, and a file
-'config.log' containing compiler output (useful mainly for debugging
-'configure'). If at some point 'config.cache' contains results you
-don't want to keep, you may remove or edit it.
+(the top directory, the 'builtins', 'doc', 'po', and 'support'
+directories, each directory under 'lib', and several others). It also
+creates a 'config.h' file containing system-dependent definitions.
+Finally, it creates a shell script named 'config.status' that you can
+run in the future to recreate the current configuration, a file
+'config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file 'config.log' containing compiler output
+(useful mainly for debugging 'configure'). If at some point
+'config.cache' contains results you don't want to keep, you may remove
+or edit it.
To find out more about the options and arguments that the 'configure'
script understands, type
@@ -9941,7 +10430,7 @@ considered for the next release.
The file 'configure.ac' is used to create 'configure' by a program
called Autoconf. You only need 'configure.ac' if you want to change it
or regenerate 'configure' using a newer version of Autoconf. If you do
-this, make sure you are using Autoconf version 2.50 or newer.
+this, make sure you are using Autoconf version 2.69 or newer.
You can remove the program binaries and object files from the source
code directory by typing 'make clean'. To also remove the files that
@@ -9984,7 +10473,7 @@ need to supply the '--srcdir=PATH' argument to tell 'configure' where
the source files are. 'configure' automatically checks for the source
code in the directory that 'configure' is in and in '..'.
- If you have to use a 'make' that does not supports the 'VPATH'
+ If you have to use a 'make' that does not support the 'VPATH'
variable, you can compile Bash for one architecture at a time in the
source code directory. After you have installed Bash for one
architecture, use 'make distclean' before reconfiguring for another
@@ -10009,10 +10498,13 @@ File: bashref.info, Node: Installation Names, Next: Specifying the System Type
=======================
By default, 'make install' will install into '/usr/local/bin',
-'/usr/local/man', etc. You can specify an installation prefix other
-than '/usr/local' by giving 'configure' the option '--prefix=PATH', or
-by specifying a value for the 'DESTDIR' 'make' variable when running
-'make install'.
+'/usr/local/man', etc.; that is, the "installation prefix" defaults to
+'/usr/local'. You can specify an installation prefix other than
+'/usr/local' by giving 'configure' the option '--prefix=PATH', or by
+specifying a value for the 'prefix' 'make' variable when running 'make
+install' (e.g., 'make install prefix=PATH'). The 'prefix' variable
+provides a default for 'exec_prefix' and other variables used when
+installing bash.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
@@ -10020,6 +10512,30 @@ give 'configure' the option '--exec-prefix=PATH', 'make install' will
use PATH as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
+ If you would like to change the installation locations for a single
+run, you can specify these variables as arguments to 'make': 'make
+install exec_prefix=/' will install 'bash' and 'bashbug' into '/bin'
+instead of the default '/usr/local/bin'.
+
+ If you want to see the files bash will install and where it will
+install them without changing anything on your system, specify the
+variable 'DESTDIR' as an argument to 'make'. Its value should be the
+absolute directory path you'd like to use as the root of your sample
+installation tree. For example,
+
+ mkdir /fs1/bash-install
+ make install DESTDIR=/fs1/bash-install
+
+will install 'bash' into '/fs1/bash-install/usr/local/bin/bash', the
+documentation into directories within
+'/fs1/bash-install/usr/local/share', the example loadable builtins into
+'/fs1/bash-install/usr/local/lib/bash', and so on. You can use the
+usual 'exec_prefix' and 'prefix' variables to alter the directory paths
+beneath the value of 'DESTDIR'.
+
+ The GNU Makefile standards provide a more complete description of
+these variables and their effects.
+

File: bashref.info, Node: Specifying the System Type, Next: Sharing Defaults, Prev: Installation Names, Up: Installing Bash
@@ -10027,7 +10543,7 @@ File: bashref.info, Node: Specifying the System Type, Next: Sharing Defaults,
===============================
There may be some features 'configure' can not figure out automatically,
-but need to determine by the type of host Bash will run on. Usually
+but needs to determine by the type of host Bash will run on. Usually
'configure' can figure that out, but if it prints a message saying it
can not guess the host type, give it the '--host=TYPE' option. 'TYPE'
can either be a short name for the system type, such as 'sun4', or a
@@ -10135,16 +10651,20 @@ the Bash 'configure' recognizes.
subdirectories of that directory (include files in PREFIX/'include'
and the library in PREFIX/'lib').
-'--with-purify'
- Define this to use the Purify memory allocation checker from
- Rational Software.
+'--with-libintl-prefix[=PREFIX]'
+ Define this to make Bash link with a locally-installed version of
+ 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
+ standard system locations. There is no version included with Bash.
'--enable-minimal-config'
This produces a shell with minimal features, close to the
historical Bourne shell.
- There are several '--enable-' options that alter how Bash is compiled
-and linked, rather than changing run-time features.
+ There are several '--enable-' options that alter how Bash is
+compiled, linked, and installed, rather than changing run-time features.
'--enable-largefile'
Enable support for large files
@@ -10157,6 +10677,10 @@ and linked, rather than changing run-time features.
This builds a Bash binary that produces profiling information to be
processed by 'gprof' each time it is executed.
+'--enable-separate-helpfiles'
+ Use external files for the documentation displayed by the 'help'
+ builtin instead of storing the text internally.
+
'--enable-static-link'
This causes Bash to be linked statically, if 'gcc' is being used.
This could be used to build a version to use as root's shell.
@@ -10165,14 +10689,21 @@ and linked, rather than changing run-time features.
following options, but it is processed first, so individual options may
be enabled using 'enable-FEATURE'.
- All of the following options except for 'disabled-builtins',
-'direxpand-default', and 'xpg-echo-default' are enabled by default,
-unless the operating system does not provide the necessary support.
+ All of the following options except for 'alt-array-implementation',
+'disabled-builtins', 'direxpand-default', 'strict-posix-default', and
+'xpg-echo-default' are enabled by default, unless the operating system
+does not provide the necessary support.
'--enable-alias'
Allow alias expansion and include the 'alias' and 'unalias'
builtins (*note Aliases::).
+'--enable-alt-array-implementation'
+ This builds bash using an alternate implementation of arrays (*note
+ Arrays::) that provides faster access at the expense of using more
+ memory (sometimes many times more, depending on how sparse an array
+ is).
+
'--enable-arith-for-command'
Include support for the alternate form of the 'for' command that
behaves like the C language 'for' statement (*note Looping
@@ -10192,7 +10723,7 @@ unless the operating system does not provide the necessary support.
'--enable-casemod-attributes'
Include support for case-modifying attributes in the 'declare'
- builtin and assignment statements. Variables with the UPPERCASE
+ builtin and assignment statements. Variables with the 'uppercase'
attribute, for example, will have their values converted to
uppercase upon assignment.
@@ -10251,7 +10782,7 @@ unless the operating system does not provide the necessary support.
described above under *note Pattern Matching::.
'--enable-extended-glob-default'
- Set the default value of the EXTGLOB shell option described above
+ Set the default value of the 'extglob' shell option described above
under *note The Shopt Builtin:: to be enabled.
'--enable-function-import'
@@ -10260,10 +10791,10 @@ unless the operating system does not provide the necessary support.
enabled by default.
'--enable-glob-asciirange-default'
- Set the default value of the GLOBASCIIRANGES shell option described
- above under *note The Shopt Builtin:: to be enabled. This controls
- the behavior of character ranges when used in pattern matching
- bracket expressions.
+ Set the default value of the 'globasciiranges' shell option
+ described above under *note The Shopt Builtin:: to be enabled.
+ This controls the behavior of character ranges when used in pattern
+ matching bracket expressions.
'--enable-help-builtin'
Include the 'help' builtin, which displays help on shell builtins
@@ -10314,10 +10845,6 @@ unless the operating system does not provide the necessary support.
Include the 'select' compound command, which allows the generation
of simple menus (*note Conditional Constructs::).
-'--enable-separate-helpfiles'
- Use external files for the documentation displayed by the 'help'
- builtin instead of storing the text internally.
-
'--enable-single-help-strings'
Store the text displayed by the 'help' builtin as a single string
for each help topic. This aids in translating the text to
@@ -10327,6 +10854,10 @@ unless the operating system does not provide the necessary support.
'--enable-strict-posix-default'
Make Bash POSIX-conformant by default (*note Bash POSIX Mode::).
+'--enable-translatable-strings'
+ Enable support for '$"STRING"' translatable strings (*note Locale
+ Translation::).
+
'--enable-usg-echo-default'
A synonym for '--enable-xpg-echo-default'.
@@ -10353,7 +10884,8 @@ Appendix A Reporting Bugs
Please report all bugs you find in Bash. But first, you should make
sure that it really is a bug, and that it appears in the latest version
of Bash. The latest version of Bash is always available for FTP from
-<ftp://ftp.gnu.org/pub/gnu/bash/>.
+<ftp://ftp.gnu.org/pub/gnu/bash/> and from
+<http://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz>.
Once you have determined that a bug actually exists, use the
'bashbug' command to submit a bug report. If you have a fix, you are
@@ -10479,15 +11011,15 @@ the baseline reference.
substring of 'var''s value of length LENGTH, beginning at OFFSET,
is present (*note Shell Parameter Expansion::).
- * The expansion '${var/[/]'PATTERN'[/'REPLACEMENT']}', which matches
- PATTERN and replaces it with REPLACEMENT in the value of 'var', is
+ * The expansion '${VAR/[/]'PATTERN'[/'REPLACEMENT']}', which matches
+ PATTERN and replaces it with REPLACEMENT in the value of VAR, is
available (*note Shell Parameter Expansion::).
* The expansion '${!PREFIX*}' expansion, which expands to the names
of all shell variables whose names begin with PREFIX, is available
(*note Shell Parameter Expansion::).
- * Bash has INDIRECT variable expansion using '${!word}' (*note Shell
+ * Bash has indirect variable expansion using '${!word}' (*note Shell
Parameter Expansion::).
* Bash can expand positional parameters beyond '$9' using '${NUM}'.
@@ -10513,8 +11045,8 @@ the baseline reference.
shell uses only '!'.
* Bash implements the full set of POSIX filename expansion operators,
- including CHARACTER CLASSES, EQUIVALENCE CLASSES, and COLLATING
- SYMBOLS (*note Filename Expansion::).
+ including character classes, equivalence classes, and collating
+ symbols (*note Filename Expansion::).
* Bash implements extended pattern matching features when the
'extglob' shell option is enabled (*note Pattern Matching::).
@@ -10631,7 +11163,7 @@ the baseline reference.
* Bash includes the 'caller' builtin, which displays the context of
any active subroutine call (a shell function or a script executed
- with the '.' or 'source' builtins). This supports the bash
+ with the '.' or 'source' builtins). This supports the Bash
debugger.
* The 'trap' builtin (*note Bourne Shell Builtins::) allows a 'DEBUG'
@@ -10653,7 +11185,7 @@ the baseline reference.
The 'trap' builtin (*note Bourne Shell Builtins::) allows a
'RETURN' pseudo-signal specification, similar to 'EXIT' and
- 'DEBUG'. Commands specified with an 'RETURN' trap are executed
+ 'DEBUG'. Commands specified with a 'RETURN' trap are executed
before execution resumes after a shell function or a shell script
executed with '.' or 'source' returns. The 'RETURN' trap is not
inherited by shell functions unless the function has been given the
@@ -11252,94 +11784,94 @@ D.1 Index of Shell Builtin Commands
* :: Bourne Shell Builtins.
(line 11)
* [: Bourne Shell Builtins.
- (line 270)
+ (line 275)
* alias: Bash Builtins. (line 11)
* bg: Job Control Builtins.
(line 7)
* bind: Bash Builtins. (line 21)
* break: Bourne Shell Builtins.
- (line 36)
-* builtin: Bash Builtins. (line 104)
-* caller: Bash Builtins. (line 113)
+ (line 37)
+* builtin: Bash Builtins. (line 108)
+* caller: Bash Builtins. (line 117)
* cd: Bourne Shell Builtins.
- (line 44)
-* command: Bash Builtins. (line 130)
+ (line 45)
+* command: Bash Builtins. (line 134)
* compgen: Programmable Completion Builtins.
(line 12)
* complete: Programmable Completion Builtins.
(line 30)
* compopt: Programmable Completion Builtins.
- (line 237)
+ (line 238)
* continue: Bourne Shell Builtins.
- (line 85)
-* declare: Bash Builtins. (line 150)
+ (line 90)
+* declare: Bash Builtins. (line 154)
* dirs: Directory Stack Builtins.
(line 7)
* disown: Job Control Builtins.
- (line 101)
-* echo: Bash Builtins. (line 253)
-* enable: Bash Builtins. (line 302)
+ (line 104)
+* echo: Bash Builtins. (line 257)
+* enable: Bash Builtins. (line 306)
* eval: Bourne Shell Builtins.
- (line 94)
+ (line 99)
* exec: Bourne Shell Builtins.
- (line 102)
+ (line 107)
* exit: Bourne Shell Builtins.
- (line 120)
+ (line 125)
* export: Bourne Shell Builtins.
- (line 127)
+ (line 132)
* fc: Bash History Builtins.
(line 10)
* fg: Job Control Builtins.
(line 17)
* getopts: Bourne Shell Builtins.
- (line 143)
+ (line 148)
* hash: Bourne Shell Builtins.
- (line 187)
-* help: Bash Builtins. (line 331)
+ (line 192)
+* help: Bash Builtins. (line 342)
* history: Bash History Builtins.
(line 46)
* jobs: Job Control Builtins.
(line 27)
* kill: Job Control Builtins.
(line 58)
-* let: Bash Builtins. (line 350)
-* local: Bash Builtins. (line 358)
-* logout: Bash Builtins. (line 374)
-* mapfile: Bash Builtins. (line 379)
+* let: Bash Builtins. (line 361)
+* local: Bash Builtins. (line 369)
+* logout: Bash Builtins. (line 385)
+* mapfile: Bash Builtins. (line 390)
* popd: Directory Stack Builtins.
(line 35)
-* printf: Bash Builtins. (line 425)
+* printf: Bash Builtins. (line 436)
* pushd: Directory Stack Builtins.
- (line 53)
+ (line 69)
* pwd: Bourne Shell Builtins.
- (line 207)
-* read: Bash Builtins. (line 474)
-* readarray: Bash Builtins. (line 570)
+ (line 212)
+* read: Bash Builtins. (line 488)
+* readarray: Bash Builtins. (line 585)
* readonly: Bourne Shell Builtins.
- (line 217)
+ (line 222)
* return: Bourne Shell Builtins.
- (line 236)
+ (line 241)
* set: The Set Builtin. (line 11)
* shift: Bourne Shell Builtins.
- (line 257)
+ (line 262)
* shopt: The Shopt Builtin. (line 9)
-* source: Bash Builtins. (line 579)
+* source: Bash Builtins. (line 594)
* suspend: Job Control Builtins.
- (line 113)
+ (line 116)
* test: Bourne Shell Builtins.
- (line 270)
+ (line 275)
* times: Bourne Shell Builtins.
- (line 349)
+ (line 360)
* trap: Bourne Shell Builtins.
- (line 355)
-* type: Bash Builtins. (line 584)
-* typeset: Bash Builtins. (line 616)
-* ulimit: Bash Builtins. (line 622)
+ (line 366)
+* type: Bash Builtins. (line 599)
+* typeset: Bash Builtins. (line 631)
+* ulimit: Bash Builtins. (line 637)
* umask: Bourne Shell Builtins.
- (line 404)
-* unalias: Bash Builtins. (line 728)
+ (line 415)
+* unalias: Bash Builtins. (line 743)
* unset: Bourne Shell Builtins.
- (line 422)
+ (line 433)
* wait: Job Control Builtins.
(line 76)
@@ -11354,9 +11886,9 @@ D.2 Index of Shell Reserved Words
* !: Pipelines. (line 9)
* [[: Conditional Constructs.
- (line 125)
+ (line 126)
* ]]: Conditional Constructs.
- (line 125)
+ (line 126)
* {: Command Grouping. (line 21)
* }: Command Grouping. (line 21)
* case: Conditional Constructs.
@@ -11378,7 +11910,7 @@ D.2 Index of Shell Reserved Words
* in: Conditional Constructs.
(line 28)
* select: Conditional Constructs.
- (line 83)
+ (line 84)
* then: Conditional Constructs.
(line 7)
* time: Pipelines. (line 9)
@@ -11394,24 +11926,28 @@ D.3 Parameter and Variable Index
* Menu:
-* !: Special Parameters. (line 56)
+* !: Special Parameters. (line 55)
* #: Special Parameters. (line 39)
* $: Special Parameters. (line 51)
-* $!: Special Parameters. (line 57)
+* $!: Special Parameters. (line 56)
* $#: Special Parameters. (line 40)
* $$: Special Parameters. (line 52)
* $*: Special Parameters. (line 10)
* $-: Special Parameters. (line 47)
-* $0: Special Parameters. (line 62)
+* $0: Special Parameters. (line 61)
* $?: Special Parameters. (line 43)
* $@: Special Parameters. (line 23)
* $_: Bash Variables. (line 14)
* *: Special Parameters. (line 9)
* -: Special Parameters. (line 46)
-* 0: Special Parameters. (line 61)
+* 0: Special Parameters. (line 60)
* ?: Special Parameters. (line 42)
* @: Special Parameters. (line 22)
* _: Bash Variables. (line 13)
+* active-region-end-color: Readline Init File Syntax.
+ (line 51)
+* active-region-start-color: Readline Init File Syntax.
+ (line 38)
* auto_resume: Job Control Variables.
(line 6)
* BASH: Bash Variables. (line 23)
@@ -11435,31 +11971,31 @@ D.3 Parameter and Variable Index
* BASH_VERSION: Bash Variables. (line 181)
* BASH_XTRACEFD: Bash Variables. (line 184)
* bell-style: Readline Init File Syntax.
- (line 38)
+ (line 64)
* bind-tty-special-chars: Readline Init File Syntax.
- (line 45)
+ (line 71)
* blink-matching-paren: Readline Init File Syntax.
- (line 50)
+ (line 76)
* CDPATH: Bourne Shell Variables.
(line 9)
* CHILD_MAX: Bash Variables. (line 195)
* colored-completion-prefix: Readline Init File Syntax.
- (line 55)
+ (line 81)
* colored-stats: Readline Init File Syntax.
- (line 62)
+ (line 91)
* COLUMNS: Bash Variables. (line 202)
* comment-begin: Readline Init File Syntax.
- (line 68)
+ (line 97)
* completion-display-width: Readline Init File Syntax.
- (line 73)
+ (line 102)
* completion-ignore-case: Readline Init File Syntax.
- (line 80)
+ (line 109)
* completion-map-case: Readline Init File Syntax.
- (line 85)
+ (line 114)
* completion-prefix-display-length: Readline Init File Syntax.
- (line 91)
+ (line 120)
* completion-query-items: Readline Init File Syntax.
- (line 98)
+ (line 127)
* COMPREPLY: Bash Variables. (line 254)
* COMP_CWORD: Bash Variables. (line 208)
* COMP_KEY: Bash Variables. (line 237)
@@ -11469,29 +12005,31 @@ D.3 Parameter and Variable Index
* COMP_WORDBREAKS: Bash Variables. (line 241)
* COMP_WORDS: Bash Variables. (line 247)
* convert-meta: Readline Init File Syntax.
- (line 108)
+ (line 138)
* COPROC: Bash Variables. (line 260)
* DIRSTACK: Bash Variables. (line 264)
* disable-completion: Readline Init File Syntax.
- (line 116)
+ (line 148)
* echo-control-characters: Readline Init File Syntax.
- (line 121)
+ (line 153)
* editing-mode: Readline Init File Syntax.
- (line 126)
+ (line 158)
* EMACS: Bash Variables. (line 274)
* emacs-mode-string: Readline Init File Syntax.
- (line 132)
+ (line 164)
+* enable-active-region: Readline Init File Syntax.
+ (line 174)
* enable-bracketed-paste: Readline Init File Syntax.
- (line 142)
+ (line 187)
* enable-keypad: Readline Init File Syntax.
- (line 150)
+ (line 196)
* ENV: Bash Variables. (line 279)
* EPOCHREALTIME: Bash Variables. (line 284)
* EPOCHSECONDS: Bash Variables. (line 292)
* EUID: Bash Variables. (line 299)
* EXECIGNORE: Bash Variables. (line 303)
* expand-tilde: Readline Init File Syntax.
- (line 161)
+ (line 207)
* FCEDIT: Bash Variables. (line 316)
* FIGNORE: Bash Variables. (line 320)
* FUNCNAME: Bash Variables. (line 326)
@@ -11505,15 +12043,15 @@ D.3 Parameter and Variable Index
* HISTFILESIZE: Bash Variables. (line 402)
* HISTIGNORE: Bash Variables. (line 413)
* history-preserve-point: Readline Init File Syntax.
- (line 165)
+ (line 211)
* history-size: Readline Init File Syntax.
- (line 171)
+ (line 217)
* HISTSIZE: Bash Variables. (line 433)
* HISTTIMEFORMAT: Bash Variables. (line 440)
* HOME: Bourne Shell Variables.
(line 13)
* horizontal-scroll-mode: Readline Init File Syntax.
- (line 180)
+ (line 226)
* HOSTFILE: Bash Variables. (line 448)
* HOSTNAME: Bash Variables. (line 459)
* HOSTTYPE: Bash Variables. (line 462)
@@ -11521,18 +12059,21 @@ D.3 Parameter and Variable Index
(line 18)
* IGNOREEOF: Bash Variables. (line 465)
* input-meta: Readline Init File Syntax.
- (line 189)
+ (line 235)
* INPUTRC: Bash Variables. (line 475)
* INSIDE_EMACS: Bash Variables. (line 479)
* isearch-terminators: Readline Init File Syntax.
- (line 197)
+ (line 245)
* keymap: Readline Init File Syntax.
- (line 204)
-* LANG: Bash Variables. (line 485)
+ (line 252)
+* LANG: Creating Internationalized Scripts.
+ (line 51)
+* LANG <1>: Bash Variables. (line 485)
* LC_ALL: Bash Variables. (line 489)
* LC_COLLATE: Bash Variables. (line 493)
* LC_CTYPE: Bash Variables. (line 500)
-* LC_MESSAGES: Locale Translation. (line 15)
+* LC_MESSAGES: Creating Internationalized Scripts.
+ (line 51)
* LC_MESSAGES <1>: Bash Variables. (line 505)
* LC_NUMERIC: Bash Variables. (line 509)
* LC_TIME: Bash Variables. (line 513)
@@ -11546,15 +12087,15 @@ D.3 Parameter and Variable Index
(line 27)
* MAPFILE: Bash Variables. (line 540)
* mark-modified-lines: Readline Init File Syntax.
- (line 234)
+ (line 282)
* mark-symlinked-directories: Readline Init File Syntax.
- (line 239)
+ (line 287)
* match-hidden-files: Readline Init File Syntax.
- (line 244)
+ (line 292)
* menu-complete-display-prefix: Readline Init File Syntax.
- (line 251)
+ (line 299)
* meta-flag: Readline Init File Syntax.
- (line 189)
+ (line 235)
* OLDPWD: Bash Variables. (line 544)
* OPTARG: Bourne Shell Variables.
(line 34)
@@ -11563,9 +12104,9 @@ D.3 Parameter and Variable Index
(line 38)
* OSTYPE: Bash Variables. (line 551)
* output-meta: Readline Init File Syntax.
- (line 256)
+ (line 304)
* page-completions: Readline Init File Syntax.
- (line 262)
+ (line 312)
* PATH: Bourne Shell Variables.
(line 42)
* PIPESTATUS: Bash Variables. (line 554)
@@ -11582,37 +12123,40 @@ D.3 Parameter and Variable Index
* PS4: Bash Variables. (line 595)
* PWD: Bash Variables. (line 603)
* RANDOM: Bash Variables. (line 606)
-* READLINE_LINE: Bash Variables. (line 612)
-* READLINE_MARK: Bash Variables. (line 616)
-* READLINE_POINT: Bash Variables. (line 622)
-* REPLY: Bash Variables. (line 626)
+* READLINE_ARGUMENT: Bash Variables. (line 612)
+* READLINE_LINE: Bash Variables. (line 616)
+* READLINE_MARK: Bash Variables. (line 620)
+* READLINE_POINT: Bash Variables. (line 626)
+* REPLY: Bash Variables. (line 630)
* revert-all-at-newline: Readline Init File Syntax.
- (line 272)
-* SECONDS: Bash Variables. (line 629)
-* SHELL: Bash Variables. (line 638)
-* SHELLOPTS: Bash Variables. (line 643)
-* SHLVL: Bash Variables. (line 652)
+ (line 322)
+* SECONDS: Bash Variables. (line 633)
+* SHELL: Bash Variables. (line 642)
+* SHELLOPTS: Bash Variables. (line 647)
+* SHLVL: Bash Variables. (line 656)
* show-all-if-ambiguous: Readline Init File Syntax.
- (line 278)
+ (line 329)
* show-all-if-unmodified: Readline Init File Syntax.
- (line 284)
+ (line 335)
* show-mode-in-prompt: Readline Init File Syntax.
- (line 293)
+ (line 344)
* skip-completed-text: Readline Init File Syntax.
- (line 299)
-* SRANDOM: Bash Variables. (line 657)
-* TEXTDOMAIN: Locale Translation. (line 15)
-* TEXTDOMAINDIR: Locale Translation. (line 15)
-* TIMEFORMAT: Bash Variables. (line 666)
-* TMOUT: Bash Variables. (line 704)
-* TMPDIR: Bash Variables. (line 716)
-* UID: Bash Variables. (line 720)
+ (line 350)
+* SRANDOM: Bash Variables. (line 661)
+* TEXTDOMAIN: Creating Internationalized Scripts.
+ (line 51)
+* TEXTDOMAINDIR: Creating Internationalized Scripts.
+ (line 51)
+* TIMEFORMAT: Bash Variables. (line 670)
+* TMOUT: Bash Variables. (line 708)
+* TMPDIR: Bash Variables. (line 720)
+* UID: Bash Variables. (line 724)
* vi-cmd-mode-string: Readline Init File Syntax.
- (line 312)
+ (line 363)
* vi-ins-mode-string: Readline Init File Syntax.
- (line 323)
+ (line 374)
* visible-stats: Readline Init File Syntax.
- (line 334)
+ (line 385)

File: bashref.info, Node: Function Index, Next: Concept Index, Prev: Variable Index, Up: Indexes
@@ -11628,7 +12172,7 @@ D.4 Function Index
* accept-line (Newline or Return): Commands For History.
(line 6)
* alias-expand-line (): Miscellaneous Commands.
- (line 125)
+ (line 131)
* backward-char (C-b): Commands For Moving. (line 15)
* backward-delete-char (Rubout): Commands For Text. (line 17)
* backward-kill-line (C-x Rubout): Commands For Killing.
@@ -11677,7 +12221,7 @@ D.4 Function Index
(line 57)
* digit-argument (M-0, M-1, ... M--): Numeric Arguments. (line 6)
* display-shell-version (C-x C-v): Miscellaneous Commands.
- (line 110)
+ (line 116)
* do-lowercase-version (M-A, M-B, M-X, ...): Miscellaneous Commands.
(line 14)
* downcase-word (M-l): Commands For Text. (line 62)
@@ -11690,7 +12234,7 @@ D.4 Function Index
* dynamic-complete-history (M-<TAB>): Commands For Completion.
(line 90)
* edit-and-execute-command (C-x C-e): Miscellaneous Commands.
- (line 134)
+ (line 140)
* end-kbd-macro (C-x )): Keyboard Macros. (line 9)
* end-of-file (usually C-d): Commands For Text. (line 6)
* end-of-history (M->): Commands For History.
@@ -11698,21 +12242,23 @@ D.4 Function Index
* end-of-line (C-e): Commands For Moving. (line 9)
* exchange-point-and-mark (C-x C-x): Miscellaneous Commands.
(line 37)
+* fetch-history (): Commands For History.
+ (line 103)
* forward-backward-delete-char (): Commands For Text. (line 21)
* forward-char (C-f): Commands For Moving. (line 12)
* forward-search-history (C-s): Commands For History.
(line 33)
* forward-word (M-f): Commands For Moving. (line 18)
* glob-complete-word (M-g): Miscellaneous Commands.
- (line 92)
-* glob-expand-word (C-x *): Miscellaneous Commands.
(line 98)
-* glob-list-expansions (C-x g): Miscellaneous Commands.
+* glob-expand-word (C-x *): Miscellaneous Commands.
(line 104)
+* glob-list-expansions (C-x g): Miscellaneous Commands.
+ (line 110)
* history-and-alias-expand-line (): Miscellaneous Commands.
- (line 128)
+ (line 134)
* history-expand-line (M-^): Miscellaneous Commands.
- (line 118)
+ (line 124)
* history-search-backward (): Commands For History.
(line 57)
* history-search-forward (): Commands For History.
@@ -11726,7 +12272,7 @@ D.4 Function Index
* insert-completions (M-*): Commands For Completion.
(line 22)
* insert-last-argument (M-. or M-_): Miscellaneous Commands.
- (line 131)
+ (line 137)
* kill-line (C-k): Commands For Killing.
(line 6)
* kill-region (): Commands For Killing.
@@ -11736,7 +12282,7 @@ D.4 Function Index
* kill-word (M-d): Commands For Killing.
(line 23)
* magic-space (): Miscellaneous Commands.
- (line 121)
+ (line 127)
* menu-complete (): Commands For Completion.
(line 26)
* menu-complete-backward (): Commands For Completion.
@@ -11784,7 +12330,7 @@ D.4 Function Index
(line 37)
* shell-backward-word (M-C-b): Commands For Moving. (line 30)
* shell-expand-line (M-C-e): Miscellaneous Commands.
- (line 113)
+ (line 119)
* shell-forward-word (M-C-f): Commands For Moving. (line 26)
* shell-kill-word (M-C-d): Commands For Killing.
(line 32)
@@ -11792,6 +12338,8 @@ D.4 Function Index
(line 41)
* skip-csi-sequence (): Miscellaneous Commands.
(line 52)
+* spell-correct-word (C-x s): Miscellaneous Commands.
+ (line 92)
* start-kbd-macro (C-x (): Keyboard Macros. (line 6)
* tilde-expand (M-&): Miscellaneous Commands.
(line 30)
@@ -11913,6 +12461,8 @@ D.5 Concept Index
* interactive shell: Invoking Bash. (line 131)
* interactive shell <1>: Interactive Shells. (line 6)
* internationalization: Locale Translation. (line 6)
+* internationalized scripts: Creating Internationalized Scripts.
+ (line 3)
* job: Definitions. (line 38)
* job control: Definitions. (line 42)
* job control <1>: Job Control Basics. (line 6)
@@ -11968,6 +12518,8 @@ D.5 Concept Index
* special builtin: Definitions. (line 82)
* special builtin <1>: Special Builtins. (line 6)
* startup files: Bash Startup Files. (line 6)
+* string translations: Creating Internationalized Scripts.
+ (line 3)
* suspending jobs: Job Control Basics. (line 6)
* tilde expansion: Tilde Expansion. (line 6)
* token: Definitions. (line 86)
@@ -11983,137 +12535,138 @@ D.5 Concept Index

Tag Table:
-Node: Top895
-Node: Introduction2813
-Node: What is Bash?3029
-Node: What is a shell?4143
-Node: Definitions6681
-Node: Basic Shell Features9632
-Node: Shell Syntax10851
-Node: Shell Operation11877
-Node: Quoting13170
-Node: Escape Character14470
-Node: Single Quotes14955
-Node: Double Quotes15303
-Node: ANSI-C Quoting16581
-Node: Locale Translation17840
-Node: Comments18993
-Node: Shell Commands19611
-Node: Reserved Words20549
-Node: Simple Commands21305
-Node: Pipelines21959
-Node: Lists24891
-Node: Compound Commands26682
-Node: Looping Constructs27694
-Node: Conditional Constructs30189
-Node: Command Grouping41760
-Node: Coprocesses43239
-Node: GNU Parallel45142
-Node: Shell Functions49443
-Node: Shell Parameters56650
-Node: Positional Parameters61063
-Node: Special Parameters61963
-Node: Shell Expansions65187
-Node: Brace Expansion67310
-Node: Tilde Expansion70033
-Node: Shell Parameter Expansion72650
-Node: Command Substitution87779
-Node: Arithmetic Expansion89134
-Node: Process Substitution90066
-Node: Word Splitting91186
-Node: Filename Expansion93130
-Node: Pattern Matching95679
-Node: Quote Removal99665
-Node: Redirections99960
-Node: Executing Commands109530
-Node: Simple Command Expansion110200
-Node: Command Search and Execution112154
-Node: Command Execution Environment114530
-Node: Environment117514
-Node: Exit Status119173
-Node: Signals120843
-Node: Shell Scripts122810
-Node: Shell Builtin Commands125822
-Node: Bourne Shell Builtins127860
-Node: Bash Builtins148789
-Node: Modifying Shell Behavior178898
-Node: The Set Builtin179243
-Node: The Shopt Builtin189656
-Node: Special Builtins204566
-Node: Shell Variables205545
-Node: Bourne Shell Variables205982
-Node: Bash Variables208086
-Node: Bash Features240720
-Node: Invoking Bash241733
-Node: Bash Startup Files247746
-Node: Interactive Shells252849
-Node: What is an Interactive Shell?253259
-Node: Is this Shell Interactive?253908
-Node: Interactive Shell Behavior254723
-Node: Bash Conditional Expressions258237
-Node: Shell Arithmetic262814
-Node: Aliases265754
-Node: Arrays268374
-Node: The Directory Stack274383
-Node: Directory Stack Builtins275167
-Node: Controlling the Prompt278135
-Node: The Restricted Shell281085
-Node: Bash POSIX Mode283679
-Node: Shell Compatibility Mode294715
-Node: Job Control301371
-Node: Job Control Basics301831
-Node: Job Control Builtins306827
-Node: Job Control Variables312227
-Node: Command Line Editing313383
-Node: Introduction and Notation315054
-Node: Readline Interaction316677
-Node: Readline Bare Essentials317868
-Node: Readline Movement Commands319651
-Node: Readline Killing Commands320611
-Node: Readline Arguments322529
-Node: Searching323573
-Node: Readline Init File325759
-Node: Readline Init File Syntax327018
-Node: Conditional Init Constructs347556
-Node: Sample Init File351752
-Node: Bindable Readline Commands354876
-Node: Commands For Moving356080
-Node: Commands For History358131
-Node: Commands For Text362924
-Node: Commands For Killing366573
-Node: Numeric Arguments369606
-Node: Commands For Completion370745
-Node: Keyboard Macros374936
-Node: Miscellaneous Commands375623
-Node: Readline vi Mode381307
-Node: Programmable Completion382214
-Node: Programmable Completion Builtins389994
-Node: A Programmable Completion Example400689
-Node: Using History Interactively405936
-Node: Bash History Facilities406620
-Node: Bash History Builtins409625
-Node: History Interaction414354
-Node: Event Designators417974
-Node: Word Designators419328
-Node: Modifiers421088
-Node: Installing Bash422899
-Node: Basic Installation424036
-Node: Compilers and Options427294
-Node: Compiling For Multiple Architectures428035
-Node: Installation Names429728
-Node: Specifying the System Type430546
-Node: Sharing Defaults431262
-Node: Operation Controls431935
-Node: Optional Features432893
-Node: Reporting Bugs443411
-Node: Major Differences From The Bourne Shell444605
-Node: GNU Free Documentation License461457
-Node: Indexes486634
-Node: Builtin Index487088
-Node: Reserved Word Index493915
-Node: Variable Index496363
-Node: Function Index512260
-Node: Concept Index525770
+Node: Top899
+Node: Introduction2821
+Node: What is Bash?3037
+Node: What is a shell?4151
+Node: Definitions6689
+Node: Basic Shell Features9640
+Node: Shell Syntax10859
+Node: Shell Operation11885
+Node: Quoting13178
+Node: Escape Character14482
+Node: Single Quotes14967
+Node: Double Quotes15315
+Node: ANSI-C Quoting16593
+Node: Locale Translation17903
+Node: Creating Internationalized Scripts19214
+Node: Comments23331
+Node: Shell Commands23949
+Node: Reserved Words24887
+Node: Simple Commands25643
+Node: Pipelines26297
+Node: Lists29296
+Node: Compound Commands31091
+Node: Looping Constructs32103
+Node: Conditional Constructs34598
+Node: Command Grouping49086
+Node: Coprocesses50564
+Node: GNU Parallel53227
+Node: Shell Functions54144
+Node: Shell Parameters62029
+Node: Positional Parameters66417
+Node: Special Parameters67319
+Node: Shell Expansions70533
+Node: Brace Expansion72660
+Node: Tilde Expansion75394
+Node: Shell Parameter Expansion78015
+Node: Command Substitution96366
+Node: Arithmetic Expansion97721
+Node: Process Substitution98689
+Node: Word Splitting99809
+Node: Filename Expansion101753
+Node: Pattern Matching104502
+Node: Quote Removal109504
+Node: Redirections109799
+Node: Executing Commands119459
+Node: Simple Command Expansion120129
+Node: Command Search and Execution122239
+Node: Command Execution Environment124617
+Node: Environment127652
+Node: Exit Status129315
+Node: Signals131099
+Node: Shell Scripts134548
+Node: Shell Builtin Commands137575
+Node: Bourne Shell Builtins139613
+Node: Bash Builtins161079
+Node: Modifying Shell Behavior191935
+Node: The Set Builtin192280
+Node: The Shopt Builtin202881
+Node: Special Builtins218793
+Node: Shell Variables219772
+Node: Bourne Shell Variables220209
+Node: Bash Variables222313
+Node: Bash Features255128
+Node: Invoking Bash256141
+Node: Bash Startup Files262154
+Node: Interactive Shells267285
+Node: What is an Interactive Shell?267696
+Node: Is this Shell Interactive?268345
+Node: Interactive Shell Behavior269160
+Node: Bash Conditional Expressions272789
+Node: Shell Arithmetic277431
+Node: Aliases280375
+Node: Arrays282988
+Node: The Directory Stack289379
+Node: Directory Stack Builtins290163
+Node: Controlling the Prompt294423
+Node: The Restricted Shell297388
+Node: Bash POSIX Mode299998
+Node: Shell Compatibility Mode311916
+Node: Job Control320483
+Node: Job Control Basics320943
+Node: Job Control Builtins325945
+Node: Job Control Variables331740
+Node: Command Line Editing332896
+Node: Introduction and Notation334567
+Node: Readline Interaction336190
+Node: Readline Bare Essentials337381
+Node: Readline Movement Commands339170
+Node: Readline Killing Commands340130
+Node: Readline Arguments342051
+Node: Searching343095
+Node: Readline Init File345281
+Node: Readline Init File Syntax346542
+Node: Conditional Init Constructs370128
+Node: Sample Init File374324
+Node: Bindable Readline Commands377448
+Node: Commands For Moving378652
+Node: Commands For History380703
+Node: Commands For Text385697
+Node: Commands For Killing389346
+Node: Numeric Arguments392379
+Node: Commands For Completion393518
+Node: Keyboard Macros397709
+Node: Miscellaneous Commands398397
+Node: Readline vi Mode404342
+Node: Programmable Completion405249
+Node: Programmable Completion Builtins413029
+Node: A Programmable Completion Example423781
+Node: Using History Interactively429029
+Node: Bash History Facilities429713
+Node: Bash History Builtins432718
+Node: History Interaction437742
+Node: Event Designators441362
+Node: Word Designators442716
+Node: Modifiers444476
+Node: Installing Bash446284
+Node: Basic Installation447421
+Node: Compilers and Options451143
+Node: Compiling For Multiple Architectures451884
+Node: Installation Names453576
+Node: Specifying the System Type455685
+Node: Sharing Defaults456402
+Node: Operation Controls457075
+Node: Optional Features458033
+Node: Reporting Bugs469252
+Node: Major Differences From The Bourne Shell470527
+Node: GNU Free Documentation License487376
+Node: Indexes512553
+Node: Builtin Index513007
+Node: Reserved Word Index519834
+Node: Variable Index522282
+Node: Function Index539056
+Node: Concept Index552840

End Tag Table
diff --git a/doc/bashref.pdf b/doc/bashref.pdf
index 50b64fba..eb8b766a 100644
--- a/doc/bashref.pdf
+++ b/doc/bashref.pdf
Binary files differ
diff --git a/doc/bashref.ps b/doc/bashref.ps
index 0ef38c1d..02ab1d34 100644
--- a/doc/bashref.ps
+++ b/doc/bashref.ps
@@ -1,8 +1,8 @@
%!PS-Adobe-2.0
-%%Creator: dvips(k) 2020.1 Copyright 2020 Radical Eye Software
+%%Creator: dvips(k) 2021.1 Copyright 2021 Radical Eye Software
%%Title: bashref.dvi
-%%CreationDate: Wed Nov 18 20:13:07 2020
-%%Pages: 189
+%%CreationDate: Mon Sep 19 16:02:49 2022
+%%Pages: 196
%%PageOrder: Ascend
%%BoundingBox: 0 0 612 792
%%DocumentFonts: CMBX12 CMR10 CMTT10 CMSL10 CMSY10 CMMI12 CMMI10 CMCSC10
@@ -12,7 +12,7 @@
%DVIPSWebPage: (www.radicaleye.com)
%DVIPSCommandLine: dvips -D 600 -t letter -o bashref.ps bashref.dvi
%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2020.11.18:1513
+%DVIPSSource: TeX output 2022.09.19:1202
%%BeginProcSet: tex.pro 0 0
%!
/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -7613,23 +7613,23 @@ ifelse
%%Page: 1 1
TeXDict begin 1 0 bop 150 1318 a Fv(Bash)64 b(Reference)j(Man)-5
b(ual)p 150 1385 3600 34 v 2361 1481 a Fu(Reference)31
-b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(5.1,)g(for)f
-Ft(Bash)g Fu(V)-8 b(ersion)31 b(5.1.)3217 1697 y(Octob)s(er)f(2020)150
-4927 y Fs(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11 b(estern)46
-b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068 y(Brian)f(F)-11
-b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
+b(Do)s(cumen)m(tation)i(for)d(Bash)2428 1589 y(Edition)h(5.2,)g(for)f
+Ft(Bash)g Fu(V)-8 b(ersion)31 b(5.2.)3118 1697 y(Septem)m(b)s(er)f
+(2022)150 4927 y Fs(Chet)45 b(Ramey)-11 b(,)46 b(Case)g(W)-11
+b(estern)46 b(Reserv)l(e)g(Univ)l(ersit)l(y)150 5068
+y(Brian)f(F)-11 b(o)l(x,)45 b(F)-11 b(ree)45 b(Soft)l(w)l(are)h(F)-11
b(oundation)p 150 5141 3600 17 v eop end
%%Page: 2 2
TeXDict begin 2 1 bop 150 4279 a Fu(This)35 b(text)h(is)g(a)g(brief)f
(description)h(of)f(the)h(features)g(that)g(are)g(presen)m(t)g(in)f
-(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(5.1,)c(29)f(Octob)s(er)f
-(2020\).)150 4523 y(This)35 b(is)g(Edition)h(5.1,)i(last)f(up)s(dated)d
-(29)i(Octob)s(er)g(2020,)j(of)c Fr(The)h(GNU)g(Bash)f(Reference)i(Man)m
-(ual)p Fu(,)150 4633 y(for)30 b Ft(Bash)p Fu(,)g(V)-8
-b(ersion)31 b(5.1.)150 4767 y(Cop)m(yrigh)m(t)602 4764
-y(c)577 4767 y Fq(\015)f Fu(1988{2020)35 b(F)-8 b(ree)31
-b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390 4902
-y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8
+(the)h(Bash)f(shell)h(\(v)m(ersion)150 4389 y(5.2,)c(19)f(Septem)m(b)s
+(er)f(2022\).)150 4523 y(This)e(is)h(Edition)f(5.2,)j(last)e(up)s
+(dated)f(19)h(Septem)m(b)s(er)f(2022,)j(of)e Fr(The)f(GNU)i(Bash)e
+(Reference)i(Man)m(ual)p Fu(,)150 4633 y(for)g Ft(Bash)p
+Fu(,)g(V)-8 b(ersion)31 b(5.2.)150 4767 y(Cop)m(yrigh)m(t)602
+4764 y(c)577 4767 y Fq(\015)f Fu(1988{2022)35 b(F)-8
+b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390
+4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8
b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f
(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8
b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26
@@ -7691,434 +7691,434 @@ f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)30
b Fu(7)399 2438 y(3.1.3)93 b(Commen)m(ts)14 b Fn(:)i(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)28 b Fu(7)275 2548 y(3.2)92
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)28 b Fu(9)275 2548 y(3.2)92
b(Shell)30 b(Commands)9 b Fn(:)15 b(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g
-(:)h(:)f(:)23 b Fu(8)399 2658 y(3.2.1)93 b(Reserv)m(ed)31
+(:)h(:)f(:)23 b Fu(9)399 2658 y(3.2.1)93 b(Reserv)m(ed)31
b(W)-8 b(ords)27 b Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)40
-b Fu(8)399 2767 y(3.2.2)93 b(Simple)30 b(Commands)15
+b Fu(9)399 2767 y(3.2.2)93 b(Simple)30 b(Commands)15
b Fn(:)f(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)g(:)h(:)f(:)29 b Fu(8)399 2877 y(3.2.3)93
-b(Pip)s(elines)26 b Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)g(:)40 b Fu(8)399 2986 y(3.2.4)93 b(Lists)30
-b(of)h(Commands)23 b Fn(:)14 b(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)36 b Fu(9)399
+(:)f(:)h(:)f(:)g(:)h(:)f(:)29 b Fu(9)399 2877 y(3.2.3)93
+b(Pip)s(elines)23 b Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
+(:)f(:)h(:)36 b Fu(10)399 2986 y(3.2.4)93 b(Lists)30
+b(of)h(Commands)20 b Fn(:)15 b(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)33 b Fu(10)399
3096 y(3.2.5)93 b(Comp)s(ound)28 b(Commands)9 b Fn(:)14
b(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-22 b Fu(10)524 3205 y(3.2.5.1)93 b(Lo)s(oping)30 b(Constructs)16
+22 b Fu(11)524 3205 y(3.2.5.1)93 b(Lo)s(oping)30 b(Constructs)16
b Fn(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)29
-b Fu(10)524 3315 y(3.2.5.2)93 b(Conditional)31 b(Constructs)25
+b Fu(11)524 3315 y(3.2.5.2)93 b(Conditional)31 b(Constructs)25
b Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)39
-b Fu(11)524 3425 y(3.2.5.3)93 b(Grouping)30 b(Commands)22
+b Fu(12)524 3425 y(3.2.5.3)93 b(Grouping)30 b(Commands)22
b Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)36
-b Fu(15)399 3534 y(3.2.6)93 b(Copro)s(cesses)26 b Fn(:)15
+b Fu(17)399 3534 y(3.2.6)93 b(Copro)s(cesses)26 b Fn(:)15
b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)39 b Fu(15)399
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)39 b Fu(18)399
3644 y(3.2.7)93 b(GNU)31 b(P)m(arallel)13 b Fn(:)k(:)f(:)f(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)26 b Fu(16)275 3753 y(3.3)92 b(Shell)30
+(:)f(:)g(:)h(:)26 b Fu(19)275 3753 y(3.3)92 b(Shell)30
b(F)-8 b(unctions)16 b Fn(:)g(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g
-(:)h(:)29 b Fu(18)275 3863 y(3.4)92 b(Shell)30 b(P)m(arameters)c
+(:)h(:)29 b Fu(19)275 3863 y(3.4)92 b(Shell)30 b(P)m(arameters)c
Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)38 b
-Fu(20)399 3973 y(3.4.1)93 b(P)m(ositional)32 b(P)m(arameters)8
+Fu(21)399 3973 y(3.4.1)93 b(P)m(ositional)32 b(P)m(arameters)8
b Fn(:)17 b(:)f(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)21 b Fu(21)399 4082 y(3.4.2)93 b(Sp)s(ecial)30
+h(:)f(:)h(:)21 b Fu(23)399 4082 y(3.4.2)93 b(Sp)s(ecial)30
b(P)m(arameters)c Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b Fu(21)275 4192
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)37 b Fu(23)275 4192
y(3.5)92 b(Shell)30 b(Expansions)24 b Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)38 b Fu(22)399 4301 y(3.5.1)93 b(Brace)31
+(:)g(:)h(:)f(:)38 b Fu(24)399 4301 y(3.5.1)93 b(Brace)31
b(Expansion)9 b Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)22 b
-Fu(23)399 4411 y(3.5.2)93 b(Tilde)30 b(Expansion)18 b
+Fu(24)399 4411 y(3.5.2)93 b(Tilde)30 b(Expansion)18 b
Fn(:)d(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)31 b Fu(24)399 4521 y(3.5.3)93
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)31 b Fu(25)399 4521 y(3.5.3)93
b(Shell)30 b(P)m(arameter)i(Expansion)26 b Fn(:)15 b(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)39 b Fu(25)399 4630 y(3.5.4)93
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)39 b Fu(26)399 4630 y(3.5.4)93
b(Command)29 b(Substitution)20 b Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)33 b Fu(31)399 4740
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)33 b Fu(34)399 4740
y(3.5.5)93 b(Arithmetic)31 b(Expansion)c Fn(:)15 b(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)40 b
-Fu(31)399 4849 y(3.5.6)93 b(Pro)s(cess)30 b(Substitution)15
+Fu(34)399 4849 y(3.5.6)93 b(Pro)s(cess)30 b(Substitution)15
b Fn(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)28 b Fu(32)399 4959 y(3.5.7)93 b(W)-8
+(:)f(:)g(:)h(:)28 b Fu(34)399 4959 y(3.5.7)93 b(W)-8
b(ord)31 b(Splitting)d Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)41
-b Fu(32)399 5068 y(3.5.8)93 b(Filename)32 b(Expansion)22
+b Fu(35)399 5068 y(3.5.8)93 b(Filename)32 b(Expansion)22
b Fn(:)14 b(:)h(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)35 b Fu(33)524 5178 y(3.5.8.1)93 b(P)m(attern)31
+f(:)h(:)f(:)g(:)35 b Fu(35)524 5178 y(3.5.8.1)93 b(P)m(attern)31
b(Matc)m(hing)14 b Fn(:)k(:)d(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)27 b Fu(33)399 5288 y(3.5.9)93
+h(:)f(:)g(:)h(:)f(:)h(:)27 b Fu(36)399 5288 y(3.5.9)93
b(Quote)31 b(Remo)m(v)-5 b(al)17 b Fn(:)g(:)e(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)30
-b Fu(35)p eop end
+b Fu(38)p eop end
%%Page: -2 4
TeXDict begin -2 3 bop 3699 -116 a Fu(ii)275 83 y(3.6)92
b(Redirections)14 b Fn(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)g(:)27 b Fu(35)399 193 y(3.6.1)93 b(Redirecting)31
+(:)h(:)f(:)g(:)27 b Fu(38)399 193 y(3.6.1)93 b(Redirecting)31
b(Input)11 b Fn(:)j(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)24 b Fu(36)399 302
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)24 b Fu(39)399 302
y(3.6.2)93 b(Redirecting)31 b(Output)15 b Fn(:)f(:)i(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)28
-b Fu(36)399 412 y(3.6.3)93 b(App)s(ending)28 b(Redirected)k(Output)20
+b Fu(39)399 412 y(3.6.3)93 b(App)s(ending)28 b(Redirected)k(Output)20
b Fn(:)14 b(:)h(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)33 b Fu(36)399
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)33 b Fu(39)399
521 y(3.6.4)93 b(Redirecting)31 b(Standard)e(Output)h(and)f(Standard)h
(Error)16 b Fn(:)e(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)29 b
-Fu(37)399 631 y(3.6.5)93 b(App)s(ending)28 b(Standard)i(Output)f(and)h
+Fu(40)399 631 y(3.6.5)93 b(App)s(ending)28 b(Standard)i(Output)f(and)h
(Standard)f(Error)d Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)40
-b Fu(37)399 741 y(3.6.6)93 b(Here)31 b(Do)s(cumen)m(ts)15
+b Fu(40)399 741 y(3.6.6)93 b(Here)31 b(Do)s(cumen)m(ts)15
b Fn(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)27 b Fu(37)399 850 y(3.6.7)93
+(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)27 b Fu(40)399 850 y(3.6.7)93
b(Here)31 b(Strings)16 b Fn(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)29
-b Fu(38)399 960 y(3.6.8)93 b(Duplicating)32 b(File)f(Descriptors)25
+b Fu(41)399 960 y(3.6.8)93 b(Duplicating)32 b(File)f(Descriptors)25
b Fn(:)15 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)37
-b Fu(38)399 1069 y(3.6.9)93 b(Mo)m(ving)32 b(File)f(Descriptors)d
+b Fu(41)399 1069 y(3.6.9)93 b(Mo)m(ving)32 b(File)f(Descriptors)d
Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-40 b Fu(38)399 1179 y(3.6.10)93 b(Op)s(ening)29 b(File)j(Descriptors)f
+40 b Fu(41)399 1179 y(3.6.10)93 b(Op)s(ening)29 b(File)j(Descriptors)f
(for)f(Reading)h(and)f(W)-8 b(riting)29 b Fn(:)15 b(:)h(:)f(:)g(:)h(:)f
-(:)41 b Fu(38)275 1289 y(3.7)92 b(Executing)31 b(Commands)24
+(:)41 b Fu(41)275 1289 y(3.7)92 b(Executing)31 b(Commands)24
b Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)38 b Fu(39)399 1398 y(3.7.1)93
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)38 b Fu(42)399 1398 y(3.7.1)93
b(Simple)30 b(Command)f(Expansion)11 b Fn(:)k(:)g(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)24 b Fu(39)399 1508 y(3.7.2)93 b(Command)29
+h(:)f(:)g(:)h(:)f(:)24 b Fu(42)399 1508 y(3.7.2)93 b(Command)29
b(Searc)m(h)i(and)f(Execution)15 b Fn(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-28 b Fu(39)399 1617 y(3.7.3)93 b(Command)29 b(Execution)i(En)m
+28 b Fu(42)399 1617 y(3.7.3)93 b(Command)29 b(Execution)i(En)m
(vironmen)m(t)17 b Fn(:)e(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)30 b Fu(40)399
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)30 b Fu(43)399
1727 y(3.7.4)93 b(En)m(vironmen)m(t)26 b Fn(:)16 b(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)39 b Fu(41)399 1836 y(3.7.5)93 b(Exit)31
+(:)f(:)g(:)h(:)39 b Fu(44)399 1836 y(3.7.5)93 b(Exit)31
b(Status)16 b Fn(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)29
-b Fu(41)399 1946 y(3.7.6)93 b(Signals)23 b Fn(:)15 b(:)h(:)f(:)h(:)f(:)
+b Fu(44)399 1946 y(3.7.6)93 b(Signals)23 b Fn(:)15 b(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)36 b Fu(42)275
+h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)36 b Fu(45)275
2056 y(3.8)92 b(Shell)30 b(Scripts)12 b Fn(:)i(:)i(:)f(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)25 b Fu(42)150 2306
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)25 b Fu(46)150 2306
y Fs(4)135 b(Shell)45 b(Builtin)g(Commands)14 b Fo(:)20
b(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g
-(:)h(:)f(:)h(:)f(:)27 b Fs(44)275 2443 y Fu(4.1)92 b(Bourne)30
+(:)h(:)f(:)h(:)f(:)27 b Fs(48)275 2443 y Fu(4.1)92 b(Bourne)30
b(Shell)g(Builtins)16 b Fn(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)29
-b Fu(44)275 2553 y(4.2)92 b(Bash)30 b(Builtin)h(Commands)13
+b Fu(48)275 2553 y(4.2)92 b(Bash)30 b(Builtin)h(Commands)13
b Fn(:)h(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)26 b Fu(51)275 2663 y(4.3)92 b(Mo)s(difying)30
+(:)f(:)g(:)h(:)f(:)26 b Fu(55)275 2663 y(4.3)92 b(Mo)s(difying)30
b(Shell)g(Beha)m(vior)18 b Fn(:)f(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)31 b Fu(62)399
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)31 b Fu(67)399
2772 y(4.3.1)93 b(The)30 b(Set)g(Builtin)14 b Fn(:)i(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)27 b Fu(62)399 2882 y(4.3.2)93 b(The)30 b(Shopt)f(Builtin)21
+f(:)g(:)27 b Fu(67)399 2882 y(4.3.2)93 b(The)30 b(Shopt)f(Builtin)21
b Fn(:)16 b(:)g(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)34 b Fu(66)275 2991 y(4.4)92
+h(:)f(:)h(:)f(:)g(:)h(:)34 b Fu(71)275 2991 y(4.4)92
b(Sp)s(ecial)30 b(Builtins)9 b Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)22 b Fu(72)150 3242 y Fs(5)135 b(Shell)45
+f(:)g(:)h(:)f(:)22 b Fu(77)150 3242 y Fs(5)135 b(Shell)45
b(V)-11 b(ariables)11 b Fo(:)20 b(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)24 b Fs(73)275 3379 y Fu(5.1)92
+f(:)h(:)f(:)g(:)h(:)f(:)24 b Fs(78)275 3379 y Fu(5.1)92
b(Bourne)30 b(Shell)g(V)-8 b(ariables)10 b Fn(:)17 b(:)e(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-23 b Fu(73)275 3489 y(5.2)92 b(Bash)30 b(V)-8 b(ariables)26
+23 b Fu(78)275 3489 y(5.2)92 b(Bash)30 b(V)-8 b(ariables)26
b Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)38
-b Fu(73)150 3739 y Fs(6)135 b(Bash)44 b(F)-11 b(eatures)32
+b Fu(78)150 3739 y Fs(6)135 b(Bash)44 b(F)-11 b(eatures)32
b Fo(:)19 b(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-44 b Fs(86)275 3876 y Fu(6.1)92 b(In)m(v)m(oking)31 b(Bash)16
+44 b Fs(91)275 3876 y Fu(6.1)92 b(In)m(v)m(oking)31 b(Bash)16
b Fn(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)29
-b Fu(86)275 3986 y(6.2)92 b(Bash)30 b(Startup)g(Files)f
+b Fu(91)275 3986 y(6.2)92 b(Bash)30 b(Startup)g(Files)f
Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)41 b Fu(88)275
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)41 b Fu(93)275
4095 y(6.3)92 b(In)m(teractiv)m(e)32 b(Shells)19 b Fn(:)d(:)f(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)g(:)h(:)f(:)h(:)32 b Fu(89)399 4205 y(6.3.1)93
+(:)h(:)f(:)g(:)h(:)f(:)h(:)32 b Fu(94)399 4205 y(6.3.1)93
b(What)31 b(is)f(an)h(In)m(teractiv)m(e)h(Shell?)25 b
Fn(:)16 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)38
-b Fu(90)399 4315 y(6.3.2)93 b(Is)30 b(this)g(Shell)g(In)m(teractiv)m
+b Fu(95)399 4315 y(6.3.2)93 b(Is)30 b(this)g(Shell)g(In)m(teractiv)m
(e?)22 b Fn(:)d(:)c(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)35 b Fu(90)399 4424 y(6.3.3)93 b(In)m(teractiv)m(e)33
+h(:)35 b Fu(95)399 4424 y(6.3.3)93 b(In)m(teractiv)m(e)33
b(Shell)d(Beha)m(vior)11 b Fn(:)17 b(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)g(:)h(:)f(:)24 b Fu(90)275 4534 y(6.4)92 b(Bash)30
+(:)h(:)f(:)g(:)h(:)f(:)24 b Fu(95)275 4534 y(6.4)92 b(Bash)30
b(Conditional)h(Expressions)10 b Fn(:)k(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)23 b Fu(91)275 4643 y(6.5)92
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)23 b Fu(96)275 4643 y(6.5)92
b(Shell)30 b(Arithmetic)13 b Fn(:)k(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
-(:)h(:)26 b Fu(93)275 4753 y(6.6)92 b(Aliases)20 b Fn(:)d(:)e(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)33
-b Fu(94)275 4863 y(6.7)92 b(Arra)m(ys)25 b Fn(:)16 b(:)f(:)h(:)f(:)g(:)
+(:)h(:)26 b Fu(98)275 4753 y(6.6)92 b(Aliases)18 b Fn(:)e(:)g(:)f(:)g
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)31
+b Fu(100)275 4863 y(6.7)92 b(Arra)m(ys)23 b Fn(:)15 b(:)h(:)f(:)g(:)h
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)36
+b Fu(100)275 4972 y(6.8)92 b(The)29 b(Directory)j(Stac)m(k)14
+b Fn(:)j(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
+(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)27 b Fu(102)399 5082 y(6.8.1)93
+b(Directory)32 b(Stac)m(k)f(Builtins)20 b Fn(:)c(:)f(:)h(:)f(:)h(:)f(:)
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
+(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)33 b Fu(102)275 5191
+y(6.9)92 b(Con)m(trolling)31 b(the)g(Prompt)10 b Fn(:)15
+b(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)38
-b Fu(95)275 4972 y(6.8)92 b(The)29 b(Directory)j(Stac)m(k)16
-b Fn(:)h(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)29 b Fu(97)399 5082
-y(6.8.1)93 b(Directory)32 b(Stac)m(k)f(Builtins)23 b
-Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-36 b Fu(97)275 5191 y(6.9)92 b(Con)m(trolling)31 b(the)g(Prompt)13
-b Fn(:)h(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)25 b Fu(98)275 5301 y(6.10)92
-b(The)30 b(Restricted)h(Shell)9 b Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)22
-b Fu(100)p eop end
+h(:)f(:)h(:)23 b Fu(104)275 5301 y(6.10)92 b(The)30 b(Restricted)h
+(Shell)9 b Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
+g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)22 b Fu(105)p
+eop end
%%Page: -3 5
TeXDict begin -3 4 bop 3674 -116 a Fu(iii)275 83 y(6.11)92
b(Bash)31 b(POSIX)e(Mo)s(de)14 b Fn(:)i(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)28
-b Fu(101)275 193 y(6.12)92 b(Shell)30 b(Compatibilit)m(y)i(Mo)s(de)25
+b Fu(106)275 193 y(6.12)92 b(Shell)30 b(Compatibilit)m(y)i(Mo)s(de)25
b Fn(:)15 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)38 b Fu(104)150 443 y Fs(7)135 b(Job)45 b(Con)l(trol)35
+h(:)38 b Fu(110)150 443 y Fs(7)135 b(Job)45 b(Con)l(trol)35
b Fo(:)20 b(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)
-g(:)48 b Fs(107)275 580 y Fu(7.1)92 b(Job)30 b(Con)m(trol)h(Basics)23
+g(:)48 b Fs(113)275 580 y Fu(7.1)92 b(Job)30 b(Con)m(trol)h(Basics)23
b Fn(:)16 b(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
-g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)36 b Fu(107)275 690
+g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)36 b Fu(113)275 690
y(7.2)92 b(Job)30 b(Con)m(trol)h(Builtins)11 b Fn(:)k(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)24 b Fu(108)275 800 y(7.3)92 b(Job)30 b(Con)m(trol)h(V)-8
+(:)f(:)24 b Fu(114)275 800 y(7.3)92 b(Job)30 b(Con)m(trol)h(V)-8
b(ariables)26 b Fn(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)38 b Fu(110)150
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)38 b Fu(116)150
1050 y Fs(8)135 b(Command)45 b(Line)g(Editing)11 b Fo(:)20
b(:)g(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)k Fs(111)275 1187 y Fu(8.1)92 b(In)m(tro)s(duction)
+(:)g(:)h(:)f(:)h(:)k Fs(117)275 1187 y Fu(8.1)92 b(In)m(tro)s(duction)
30 b(to)h(Line)f(Editing)12 b Fn(:)k(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)g(:)h(:)f(:)h(:)25 b Fu(111)275 1297 y(8.2)92
+(:)h(:)f(:)g(:)h(:)f(:)h(:)25 b Fu(117)275 1297 y(8.2)92
b(Readline)31 b(In)m(teraction)14 b Fn(:)j(:)e(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)27
-b Fu(111)399 1406 y(8.2.1)93 b(Readline)31 b(Bare)g(Essen)m(tials)13
+b Fu(117)399 1406 y(8.2.1)93 b(Readline)31 b(Bare)g(Essen)m(tials)13
b Fn(:)j(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)26
-b Fu(112)399 1516 y(8.2.2)93 b(Readline)31 b(Mo)m(v)m(emen)m(t)i
+b Fu(118)399 1516 y(8.2.2)93 b(Readline)31 b(Mo)m(v)m(emen)m(t)i
(Commands)13 b Fn(:)i(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)27
-b Fu(112)399 1626 y(8.2.3)93 b(Readline)31 b(Killing)g(Commands)24
+b Fu(118)399 1626 y(8.2.3)93 b(Readline)31 b(Killing)g(Commands)24
b Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)38
-b Fu(113)399 1735 y(8.2.4)93 b(Readline)31 b(Argumen)m(ts)17
+b Fu(119)399 1735 y(8.2.4)93 b(Readline)31 b(Argumen)m(ts)17
b Fn(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)30 b Fu(113)399 1845 y(8.2.5)93 b(Searc)m(hing)31
+(:)f(:)h(:)30 b Fu(119)399 1845 y(8.2.5)93 b(Searc)m(hing)31
b(for)f(Commands)f(in)h(the)h(History)15 b Fn(:)g(:)h(:)f(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)28 b Fu(113)275
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)28 b Fu(119)275
1954 y(8.3)92 b(Readline)31 b(Init)f(File)8 b Fn(:)17
b(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)22 b Fu(114)399 2064
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)22 b Fu(120)399 2064
y(8.3.1)93 b(Readline)31 b(Init)f(File)i(Syn)m(tax)21
b Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)34
-b Fu(114)399 2174 y(8.3.2)93 b(Conditional)31 b(Init)f(Constructs)14
+b Fu(120)399 2174 y(8.3.2)93 b(Conditional)31 b(Init)f(Constructs)14
b Fn(:)h(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)27
-b Fu(122)399 2283 y(8.3.3)93 b(Sample)30 b(Init)g(File)20
+b Fu(129)399 2283 y(8.3.3)93 b(Sample)30 b(Init)g(File)20
b Fn(:)d(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)g(:)h(:)f(:)h(:)33 b Fu(124)275 2393 y(8.4)92
+(:)h(:)f(:)g(:)h(:)f(:)h(:)33 b Fu(130)275 2393 y(8.4)92
b(Bindable)30 b(Readline)h(Commands)19 b Fn(:)c(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)33 b Fu(127)399 2502 y(8.4.1)93
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)33 b Fu(133)399 2502 y(8.4.1)93
b(Commands)29 b(F)-8 b(or)31 b(Mo)m(ving)16 b Fn(:)h(:)e(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)29 b Fu(127)399
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)29 b Fu(133)399
2612 y(8.4.2)93 b(Commands)29 b(F)-8 b(or)31 b(Manipulating)g(The)f
(History)c Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)39 b Fu(128)399 2721 y(8.4.3)93 b(Commands)29 b(F)-8
+f(:)39 b Fu(134)399 2721 y(8.4.3)93 b(Commands)29 b(F)-8
b(or)31 b(Changing)f(T)-8 b(ext)9 b Fn(:)17 b(:)e(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)23 b Fu(130)399 2831 y(8.4.4)93 b(Killing)31
+h(:)f(:)23 b Fu(136)399 2831 y(8.4.4)93 b(Killing)31
b(And)e(Y)-8 b(anking)10 b Fn(:)17 b(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
-(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)24 b Fu(131)399
+(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)24 b Fu(137)399
2941 y(8.4.5)93 b(Sp)s(ecifying)30 b(Numeric)g(Argumen)m(ts)25
b Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)39 b Fu(132)399
+(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)39 b Fu(138)399
3050 y(8.4.6)93 b(Letting)31 b(Readline)g(T)m(yp)s(e)f(F)-8
b(or)31 b(Y)-8 b(ou)20 b Fn(:)c(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)33
-b Fu(133)399 3160 y(8.4.7)93 b(Keyb)s(oard)29 b(Macros)9
+b Fu(139)399 3160 y(8.4.7)93 b(Keyb)s(oard)29 b(Macros)9
b Fn(:)17 b(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)22 b Fu(134)399 3269 y(8.4.8)93
+h(:)f(:)h(:)f(:)g(:)h(:)22 b Fu(140)399 3269 y(8.4.8)93
b(Some)30 b(Miscellaneous)j(Commands)14 b Fn(:)f(:)j(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)27 b Fu(135)275 3379 y(8.5)92 b(Readline)31 b(vi)f(Mo)s(de)e
+(:)f(:)27 b Fu(141)275 3379 y(8.5)92 b(Readline)31 b(vi)f(Mo)s(de)e
Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)41 b Fu(137)275
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)41 b Fu(143)275
3489 y(8.6)92 b(Programmable)30 b(Completion)25 b Fn(:)15
b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)37
-b Fu(137)275 3598 y(8.7)92 b(Programmable)30 b(Completion)h(Builtins)14
+b Fu(143)275 3598 y(8.7)92 b(Programmable)30 b(Completion)h(Builtins)14
b Fn(:)i(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)28 b Fu(139)275
+h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)28 b Fu(146)275
3708 y(8.8)92 b(A)30 b(Programmable)h(Completion)g(Example)8
b Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)22 b Fu(143)150 3958 y
+(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)22 b Fu(150)150 3958 y
Fs(9)135 b(Using)45 b(History)h(In)l(teractiv)l(ely)28
b Fo(:)22 b(:)d(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g
-(:)h(:)41 b Fs(146)275 4095 y Fu(9.1)92 b(Bash)30 b(History)h(F)-8
+(:)h(:)41 b Fs(152)275 4095 y Fu(9.1)92 b(Bash)30 b(History)h(F)-8
b(acilities)9 b Fn(:)19 b(:)c(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)22 b Fu(146)275
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)22 b Fu(152)275
4205 y(9.2)92 b(Bash)30 b(History)h(Builtins)d Fn(:)16
b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)h(:)f(:)41 b Fu(146)275 4315 y(9.3)92 b(History)31
+h(:)f(:)h(:)f(:)41 b Fu(152)275 4315 y(9.3)92 b(History)31
b(Expansion)10 b Fn(:)k(:)h(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)23
-b Fu(148)399 4424 y(9.3.1)93 b(Ev)m(en)m(t)31 b(Designators)19
+b Fu(154)399 4424 y(9.3.1)93 b(Ev)m(en)m(t)31 b(Designators)19
b Fn(:)e(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)g(:)h(:)32 b Fu(149)399 4534 y(9.3.2)93 b(W)-8
+(:)h(:)f(:)g(:)h(:)32 b Fu(155)399 4534 y(9.3.2)93 b(W)-8
b(ord)31 b(Designators)c Fn(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)39 b Fu(150)399
+f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)39 b Fu(156)399
4643 y(9.3.3)93 b(Mo)s(di\014ers)15 b Fn(:)g(:)g(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)f(:)h(:)f(:)g(:)29 b Fu(150)p eop end
+h(:)f(:)h(:)f(:)g(:)29 b Fu(156)p eop end
%%Page: -4 6
TeXDict begin -4 5 bop 3677 -116 a Fu(iv)150 83 y Fs(10)135
b(Installing)46 b(Bash)16 b Fo(:)j(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
-f(:)h(:)f(:)29 b Fs(152)275 220 y Fu(10.1)92 b(Basic)32
+f(:)h(:)f(:)29 b Fs(158)275 220 y Fu(10.1)92 b(Basic)32
b(Installation)8 b Fn(:)17 b(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)22
-b Fu(152)275 330 y(10.2)92 b(Compilers)30 b(and)g(Options)17
+b Fu(158)275 330 y(10.2)92 b(Compilers)30 b(and)g(Options)17
b Fn(:)d(:)i(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)f(:)h(:)f(:)30 b Fu(153)275 439 y(10.3)92 b(Compiling)30
+(:)f(:)h(:)f(:)30 b Fu(159)275 439 y(10.3)92 b(Compiling)30
b(F)-8 b(or)32 b(Multiple)f(Arc)m(hitectures)10 b Fn(:)16
b(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
-(:)g(:)h(:)f(:)h(:)f(:)23 b Fu(153)275 549 y(10.4)92
+(:)g(:)h(:)f(:)h(:)f(:)23 b Fu(159)275 549 y(10.4)92
b(Installation)32 b(Names)22 b Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)
f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)35
-b Fu(153)275 658 y(10.5)92 b(Sp)s(ecifying)30 b(the)g(System)h(T)m(yp)s
+b Fu(160)275 658 y(10.5)92 b(Sp)s(ecifying)30 b(the)g(System)h(T)m(yp)s
(e)21 b Fn(:)14 b(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
-h(:)34 b Fu(154)275 768 y(10.6)92 b(Sharing)30 b(Defaults)24
+h(:)34 b Fu(160)275 768 y(10.6)92 b(Sharing)30 b(Defaults)24
b Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
-f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)37 b Fu(154)275
+f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)37 b Fu(160)275
878 y(10.7)92 b(Op)s(eration)30 b(Con)m(trols)12 b Fn(:)k(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f
-(:)h(:)f(:)25 b Fu(154)275 987 y(10.8)92 b(Optional)31
+(:)h(:)f(:)25 b Fu(161)275 987 y(10.8)92 b(Optional)31
b(F)-8 b(eatures)19 b Fn(:)d(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)32
-b Fu(155)150 1238 y Fs(App)t(endix)44 b(A)119 b(Rep)t(orting)46
+b Fu(161)150 1238 y Fs(App)t(endix)44 b(A)119 b(Rep)t(orting)46
b(Bugs)21 b Fo(:)f(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h
-(:)f(:)g(:)h(:)f(:)35 b Fs(160)150 1498 y(App)t(endix)44
+(:)f(:)g(:)h(:)f(:)35 b Fs(167)150 1498 y(App)t(endix)44
b(B)125 b(Ma)7 b(jor)46 b(Di\013erences)g(F)-11 b(rom)284
1639 y(The)45 b(Bourne)f(Shell)35 b Fo(:)19 b(:)h(:)f(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)
-f(:)g(:)h(:)f(:)h(:)47 b Fs(161)275 1776 y Fu(B.1)92
+f(:)g(:)h(:)f(:)h(:)47 b Fs(168)275 1776 y Fu(B.1)92
b(Implemen)m(tation)31 b(Di\013erences)h(F)-8 b(rom)31
b(The)e(SVR4.2)j(Shell)22 b Fn(:)15 b(:)g(:)g(:)h(:)f(:)h(:)f(:)g(:)h
-(:)35 b Fu(165)150 2027 y Fs(App)t(endix)44 b(C)124 b(GNU)36
+(:)35 b Fu(172)150 2027 y Fs(App)t(endix)44 b(C)124 b(GNU)36
b(F)-11 b(ree)35 b(Do)t(cumen)l(tation)i(License)25 b
-Fo(:)20 b(:)29 b Fs(167)150 2305 y(App)t(endix)44 b(D)118
+Fo(:)20 b(:)29 b Fs(174)150 2305 y(App)t(endix)44 b(D)118
b(Indexes)27 b Fo(:)20 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)
h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)40
-b Fs(175)275 2442 y Fu(D.1)92 b(Index)29 b(of)i(Shell)f(Builtin)h
+b Fs(182)275 2442 y Fu(D.1)92 b(Index)29 b(of)i(Shell)f(Builtin)h
(Commands)23 b Fn(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)
g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)38
-b Fu(175)275 2552 y(D.2)92 b(Index)29 b(of)i(Shell)f(Reserv)m(ed)h(W)-8
+b Fu(182)275 2552 y(D.2)92 b(Index)29 b(of)i(Shell)f(Reserv)m(ed)h(W)-8
b(ords)20 b Fn(:)c(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f
(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)34
-b Fu(176)275 2661 y(D.3)92 b(P)m(arameter)31 b(and)f(V)-8
+b Fu(183)275 2661 y(D.3)92 b(P)m(arameter)31 b(and)f(V)-8
b(ariable)32 b(Index)27 b Fn(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g
(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)
-h(:)f(:)g(:)42 b Fu(177)275 2771 y(D.4)92 b(F)-8 b(unction)31
+h(:)f(:)g(:)42 b Fu(184)275 2771 y(D.4)92 b(F)-8 b(unction)31
b(Index)24 b Fn(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h
(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)
f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)38
-b Fu(179)275 2880 y(D.5)92 b(Concept)30 b(Index)15 b
+b Fu(186)275 2880 y(D.5)92 b(Concept)30 b(Index)15 b
Fn(:)g(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h
(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)
h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)29 b
-Fu(181)p eop end
+Fu(188)p eop end
%%Page: 1 7
TeXDict begin 1 6 bop 3705 -116 a Fu(1)150 299 y Fp(1)80
b(In)l(tro)t(duction)150 604 y Fs(1.1)68 b(What)45 b(is)g(Bash?)150
@@ -8267,7 +8267,7 @@ b(and)e(function)h(names.)630 4020 y(Also)31 b(referred)f(to)h(as)f(an)
h Ft(identifier)p Fu(.)150 4186 y Ft(operator)96 b Fu(A)38
b Ft(control)28 b(operator)36 b Fu(or)h(a)i Ft(redirection)27
b(operator)p Fu(.)61 b(See)38 b(Section)g(3.6)h([Redirec-)630
-4295 y(tions],)f(page)f(35,)i(for)d(a)g(list)h(of)f(redirection)h(op)s
+4295 y(tions],)f(page)f(38,)i(for)d(a)g(list)h(of)f(redirection)h(op)s
(erators.)58 b(Op)s(erators)35 b(con)m(tain)j(at)f(least)630
4405 y(one)31 b(unquoted)e Ft(metacharacter)p Fu(.)150
4570 y Ft(process)f(group)630 4680 y Fu(A)i(collection)k(of)c(related)h
@@ -8339,34 +8339,34 @@ y Fu(The)c(follo)m(wing)h(is)f(a)h(brief)e(description)i(of)f(the)g
(shell's)h(op)s(eration)f(when)f(it)i(reads)f(and)f(executes)j(a)150
3299 y(command.)h(Basically)-8 b(,)34 b(the)c(shell)h(do)s(es)f(the)h
(follo)m(wing:)199 3456 y(1.)61 b(Reads)42 b(its)h(input)e(from)h(a)g
-(\014le)h(\(see)g(Section)g(3.8)g([Shell)f(Scripts],)j(page)e(42\),)k
+(\014le)h(\(see)g(Section)g(3.8)g([Shell)f(Scripts],)j(page)e(46\),)k
(from)41 b(a)i(string)330 3566 y(supplied)30 b(as)h(an)g(argumen)m(t)h
(to)g(the)f Ft(-c)g Fu(in)m(v)m(o)s(cation)i(option)f(\(see)g(Section)g
-(6.1)g([In)m(v)m(oking)g(Bash],)330 3675 y(page)f(86\),)h(or)e(from)g
+(6.1)g([In)m(v)m(oking)g(Bash],)330 3675 y(page)f(91\),)h(or)e(from)g
(the)h(user's)f(terminal.)199 3821 y(2.)61 b(Breaks)43
b(the)g(input)f(in)m(to)h(w)m(ords)f(and)g(op)s(erators,)k(ob)s(eying)d
(the)g(quoting)g(rules)f(describ)s(ed)f(in)330 3931 y(Section)27
b(3.1.2)i([Quoting],)f(page)f(6.)40 b(These)26 b(tok)m(ens)i(are)f
(separated)g(b)m(y)f Ft(metacharacters)p Fu(.)36 b(Alias)330
4040 y(expansion)30 b(is)h(p)s(erformed)d(b)m(y)j(this)f(step)g(\(see)i
-(Section)f(6.6)g([Aliases],)i(page)e(94\).)199 4186 y(3.)61
-b(P)m(arses)35 b(the)g(tok)m(ens)g(in)m(to)h(simple)e(and)g(comp)s
-(ound)f(commands)h(\(see)h(Section)h(3.2)f([Shell)g(Com-)330
-4296 y(mands],)30 b(page)h(8\).)199 4442 y(4.)61 b(P)m(erforms)40
+(Section)f(6.6)g([Aliases],)i(page)e(100\).)199 4186
+y(3.)61 b(P)m(arses)35 b(the)g(tok)m(ens)g(in)m(to)h(simple)e(and)g
+(comp)s(ound)f(commands)h(\(see)h(Section)h(3.2)f([Shell)g(Com-)330
+4296 y(mands],)30 b(page)h(9\).)199 4442 y(4.)61 b(P)m(erforms)40
b(the)h(v)-5 b(arious)40 b(shell)h(expansions)f(\(see)h(Section)g(3.5)g
-([Shell)g(Expansions],)h(page)f(22\),)330 4551 y(breaking)35
+([Shell)g(Expansions],)h(page)f(24\),)330 4551 y(breaking)35
b(the)g(expanded)g(tok)m(ens)h(in)m(to)g(lists)f(of)g(\014lenames)h
(\(see)g(Section)f(3.5.8)i([Filename)g(Ex-)330 4661 y(pansion],)30
-b(page)h(33\))h(and)e(commands)g(and)g(argumen)m(ts.)199
+b(page)h(35\))h(and)e(commands)g(and)g(argumen)m(ts.)199
4807 y(5.)61 b(P)m(erforms)36 b(an)m(y)i(necessary)f(redirections)g
-(\(see)h(Section)f(3.6)h([Redirections],)i(page)e(35\))g(and)e(re-)330
+(\(see)h(Section)f(3.6)h([Redirections],)i(page)e(38\))g(and)e(re-)330
4916 y(mo)m(v)m(es)c(the)e(redirection)h(op)s(erators)g(and)f(their)g
(op)s(erands)f(from)h(the)h(argumen)m(t)f(list.)199 5062
y(6.)61 b(Executes)31 b(the)g(command)f(\(see)h(Section)g(3.7)h
-([Executing)f(Commands],)f(page)h(39\).)199 5208 y(7.)61
+([Executing)f(Commands],)f(page)h(42\).)199 5208 y(7.)61
b(Optionally)40 b(w)m(aits)g(for)f(the)g(command)g(to)h(complete)g(and)
f(collects)i(its)f(exit)g(status)f(\(see)h(Sec-)330 5317
-y(tion)31 b(3.7.5)h([Exit)f(Status],)g(page)g(41\).)p
+y(tion)31 b(3.7.5)h([Exit)f(Status],)g(page)g(44\).)p
eop end
%%Page: 6 12
TeXDict begin 6 11 bop 150 -116 a Fu(Chapter)30 b(3:)41
@@ -8378,2350 +8378,2604 @@ y(Quoting)c(can)f(b)s(e)g(used)f(to)j(disable)e(sp)s(ecial)h(treatmen)m
(t)h(for)e(sp)s(ecial)h(c)m(haracters,)i(to)e(prev)m(en)m(t)g(reserv)m
(ed)150 665 y(w)m(ords)i(from)g(b)s(eing)g(recognized)h(as)g(suc)m(h,)f
(and)g(to)h(prev)m(en)m(t)g(parameter)g(expansion.)275
-795 y(Eac)m(h)22 b(of)g(the)g(shell)g(metac)m(haracters)i(\(see)f
+799 y(Eac)m(h)22 b(of)g(the)g(shell)g(metac)m(haracters)i(\(see)f
(Chapter)e(2)i([De\014nitions],)h(page)f(3\))g(has)e(sp)s(ecial)i
-(meaning)150 905 y(to)40 b(the)g(shell)f(and)g(m)m(ust)g(b)s(e)g
+(meaning)150 908 y(to)40 b(the)g(shell)f(and)g(m)m(ust)g(b)s(e)g
(quoted)g(if)h(it)g(is)f(to)h(represen)m(t)g(itself.)68
-b(When)39 b(the)h(command)f(history)150 1015 y(expansion)i(facilities)j
+b(When)39 b(the)h(command)f(history)150 1018 y(expansion)i(facilities)j
(are)e(b)s(eing)f(used)g(\(see)h(Section)h(9.3)f([History)h(In)m
-(teraction],)j(page)c(148\),)47 b(the)150 1124 y Fr(history)30
+(teraction],)j(page)c(154\),)47 b(the)150 1127 y Fr(history)30
b(expansion)h Fu(c)m(haracter,)h(usually)f(`)p Ft(!)p
Fu(',)g(m)m(ust)f(b)s(e)g(quoted)h(to)g(prev)m(en)m(t)g(history)g
-(expansion.)41 b(See)150 1234 y(Section)22 b(9.1)g([Bash)f(History)h(F)
--8 b(acilities],)26 b(page)c(146,)j(for)20 b(more)h(details)h
-(concerning)g(history)f(expansion.)275 1364 y(There)37
+(expansion.)41 b(See)150 1237 y(Section)22 b(9.1)g([Bash)f(History)h(F)
+-8 b(acilities],)26 b(page)c(152,)j(for)20 b(more)h(details)h
+(concerning)g(history)f(expansion.)275 1370 y(There)37
b(are)h(three)f(quoting)h(mec)m(hanisms:)56 b(the)38
b Fr(escap)s(e)g(c)m(haracter)p Fu(,)j(single)d(quotes,)i(and)d(double)
-150 1474 y(quotes.)150 1665 y Fk(3.1.2.1)63 b(Escap)s(e)41
-b(Character)150 1812 y Fu(A)36 b(non-quoted)f(bac)m(kslash)h(`)p
+150 1480 y(quotes.)150 1677 y Fk(3.1.2.1)63 b(Escap)s(e)41
+b(Character)150 1824 y Fu(A)36 b(non-quoted)f(bac)m(kslash)h(`)p
Ft(\\)p Fu(')g(is)f(the)h(Bash)g(escap)s(e)f(c)m(haracter.)58
b(It)36 b(preserv)m(es)f(the)h(literal)h(v)-5 b(alue)36
-b(of)150 1921 y(the)27 b(next)g(c)m(haracter)h(that)f(follo)m(ws,)i
+b(of)150 1934 y(the)27 b(next)g(c)m(haracter)h(that)f(follo)m(ws,)i
(with)d(the)h(exception)g(of)g Ft(newline)p Fu(.)38 b(If)26
-b(a)h Ft(\\newline)d Fu(pair)i(app)s(ears,)150 2031 y(and)k(the)h(bac)m
+b(a)h Ft(\\newline)d Fu(pair)i(app)s(ears,)150 2043 y(and)k(the)h(bac)m
(kslash)g(itself)g(is)g(not)g(quoted,)g(the)f Ft(\\newline)f
Fu(is)h(treated)i(as)f(a)g(line)g(con)m(tin)m(uation)h(\(that)150
-2140 y(is,)f(it)g(is)f(remo)m(v)m(ed)h(from)f(the)h(input)e(stream)i
-(and)f(e\013ectiv)m(ely)j(ignored\).)150 2331 y Fk(3.1.2.2)63
-b(Single)42 b(Quotes)150 2478 y Fu(Enclosing)24 b(c)m(haracters)h(in)e
+2153 y(is,)f(it)g(is)f(remo)m(v)m(ed)h(from)f(the)h(input)e(stream)i
+(and)f(e\013ectiv)m(ely)j(ignored\).)150 2350 y Fk(3.1.2.2)63
+b(Single)42 b(Quotes)150 2497 y Fu(Enclosing)24 b(c)m(haracters)h(in)e
(single)h(quotes)g(\(`)p Ft(')p Fu('\))g(preserv)m(es)g(the)f(literal)i
(v)-5 b(alue)24 b(of)g(eac)m(h)g(c)m(haracter)h(within)150
-2588 y(the)31 b(quotes.)42 b(A)31 b(single)h(quote)f(ma)m(y)g(not)g(o)s
+2607 y(the)31 b(quotes.)42 b(A)31 b(single)h(quote)f(ma)m(y)g(not)g(o)s
(ccur)g(b)s(et)m(w)m(een)g(single)h(quotes,)f(ev)m(en)h(when)d
-(preceded)i(b)m(y)g(a)150 2697 y(bac)m(kslash.)150 2888
-y Fk(3.1.2.3)63 b(Double)42 b(Quotes)150 3035 y Fu(Enclosing)24
+(preceded)i(b)m(y)g(a)150 2717 y(bac)m(kslash.)150 2914
+y Fk(3.1.2.3)63 b(Double)42 b(Quotes)150 3061 y Fu(Enclosing)24
b(c)m(haracters)h(in)f(double)f(quotes)h(\(`)p Ft(")p
Fu('\))g(preserv)m(es)g(the)g(literal)h(v)-5 b(alue)24
-b(of)g(all)g(c)m(haracters)h(within)150 3145 y(the)34
+b(of)g(all)g(c)m(haracters)h(within)150 3170 y(the)34
b(quotes,)h(with)f(the)g(exception)h(of)f(`)p Ft($)p
Fu(',)h(`)p Ft(`)p Fu(',)g(`)p Ft(\\)p Fu(',)g(and,)f(when)f(history)g
-(expansion)h(is)g(enabled,)h(`)p Ft(!)p Fu('.)150 3254
+(expansion)h(is)g(enabled,)h(`)p Ft(!)p Fu('.)150 3280
y(When)c(the)g(shell)g(is)g(in)f Fm(posix)h Fu(mo)s(de)f(\(see)i
-(Section)g(6.11)g([Bash)f(POSIX)f(Mo)s(de],)i(page)g(101\),)h(the)e(`)p
-Ft(!)p Fu(')150 3364 y(has)d(no)g(sp)s(ecial)h(meaning)g(within)f
+(Section)g(6.11)g([Bash)f(POSIX)f(Mo)s(de],)i(page)g(106\),)h(the)e(`)p
+Ft(!)p Fu(')150 3390 y(has)d(no)g(sp)s(ecial)h(meaning)g(within)f
(double)g(quotes,)h(ev)m(en)g(when)f(history)g(expansion)g(is)g
-(enabled.)40 b(The)150 3474 y(c)m(haracters)h(`)p Ft($)p
+(enabled.)40 b(The)150 3499 y(c)m(haracters)h(`)p Ft($)p
Fu(')e(and)g(`)p Ft(`)p Fu(')g(retain)h(their)f(sp)s(ecial)h(meaning)f
(within)g(double)g(quotes)h(\(see)g(Section)g(3.5)150
-3583 y([Shell)29 b(Expansions],)g(page)h(22\).)41 b(The)28
+3609 y([Shell)29 b(Expansions],)g(page)h(24\).)41 b(The)28
b(bac)m(kslash)i(retains)f(its)h(sp)s(ecial)f(meaning)g(only)g(when)f
-(follo)m(w)m(ed)150 3693 y(b)m(y)41 b(one)f(of)h(the)g(follo)m(wing)h
+(follo)m(w)m(ed)150 3718 y(b)m(y)41 b(one)f(of)h(the)g(follo)m(wing)h
(c)m(haracters:)63 b(`)p Ft($)p Fu(',)43 b(`)p Ft(`)p
Fu(',)h(`)p Ft(")p Fu(',)g(`)p Ft(\\)p Fu(',)f(or)e Ft(newline)p
-Fu(.)69 b(Within)41 b(double)f(quotes,)150 3802 y(bac)m(kslashes)25
+Fu(.)69 b(Within)41 b(double)f(quotes,)150 3828 y(bac)m(kslashes)25
b(that)h(are)f(follo)m(w)m(ed)h(b)m(y)e(one)h(of)g(these)g(c)m
(haracters)h(are)f(remo)m(v)m(ed.)40 b(Bac)m(kslashes)26
-b(preceding)150 3912 y(c)m(haracters)35 b(without)e(a)h(sp)s(ecial)f
+b(preceding)150 3938 y(c)m(haracters)35 b(without)e(a)h(sp)s(ecial)f
(meaning)h(are)f(left)h(unmo)s(di\014ed.)47 b(A)34 b(double)f(quote)g
-(ma)m(y)h(b)s(e)f(quoted)150 4022 y(within)h(double)h(quotes)g(b)m(y)g
+(ma)m(y)h(b)s(e)f(quoted)150 4047 y(within)h(double)h(quotes)g(b)m(y)g
(preceding)g(it)g(with)g(a)g(bac)m(kslash.)55 b(If)35
-b(enabled,)h(history)f(expansion)g(will)150 4131 y(b)s(e)f(p)s
+b(enabled,)h(history)f(expansion)g(will)150 4157 y(b)s(e)f(p)s
(erformed)g(unless)g(an)h(`)p Ft(!)p Fu(')g(app)s(earing)f(in)h(double)
f(quotes)i(is)f(escap)s(ed)g(using)f(a)h(bac)m(kslash.)55
-b(The)150 4241 y(bac)m(kslash)31 b(preceding)f(the)h(`)p
-Ft(!)p Fu(')f(is)h(not)g(remo)m(v)m(ed.)275 4371 y(The)41
+b(The)150 4266 y(bac)m(kslash)31 b(preceding)f(the)h(`)p
+Ft(!)p Fu(')f(is)h(not)g(remo)m(v)m(ed.)275 4400 y(The)41
b(sp)s(ecial)h(parameters)f(`)p Ft(*)p Fu(')h(and)f(`)p
Ft(@)p Fu(')h(ha)m(v)m(e)g(sp)s(ecial)g(meaning)g(when)f(in)g(double)g
-(quotes)h(\(see)150 4481 y(Section)31 b(3.5.3)h([Shell)f(P)m(arameter)h
-(Expansion],)e(page)h(25\).)150 4672 y Fk(3.1.2.4)63
-b(ANSI-C)40 b(Quoting)150 4819 y Fu(W)-8 b(ords)43 b(of)f(the)h(form)f
-Ft($')p Fj(string)p Ft(')e Fu(are)j(treated)g(sp)s(ecially)-8
-b(.)79 b(The)42 b(w)m(ord)g(expands)f(to)j Fr(string)p
-Fu(,)h(with)150 4928 y(bac)m(kslash-escap)s(ed)f(c)m(haracters)h
-(replaced)f(as)g(sp)s(eci\014ed)f(b)m(y)g(the)g(ANSI)g(C)g(standard.)79
-b(Bac)m(kslash)150 5038 y(escap)s(e)31 b(sequences,)g(if)f(presen)m(t,)
-h(are)g(deco)s(ded)f(as)g(follo)m(ws:)150 5189 y Ft(\\a)384
-b Fu(alert)31 b(\(b)s(ell\))150 5340 y Ft(\\b)384 b Fu(bac)m(kspace)p
-eop end
+(quotes)h(\(see)150 4509 y(Section)31 b(3.5.3)h([Shell)f(P)m(arameter)h
+(Expansion],)e(page)h(26\).)150 4707 y Fk(3.1.2.4)63
+b(ANSI-C)40 b(Quoting)150 4854 y Fu(Character)g(sequences)h(of)f(the)g
+(form)g($')p Fr(string)8 b Fu(')40 b(are)h(treated)g(as)f(a)h(sp)s
+(ecial)f(kind)f(of)i(single)f(quotes.)150 4963 y(The)e(sequence)i
+(expands)e(to)i Fr(string)p Fu(,)h(with)e(bac)m(kslash-escap)s(ed)h(c)m
+(haracters)g(in)f Fr(string)46 b Fu(replaced)40 b(as)150
+5073 y(sp)s(eci\014ed)32 b(b)m(y)h(the)g(ANSI)f(C)h(standard.)47
+b(Bac)m(kslash)34 b(escap)s(e)g(sequences,)g(if)e(presen)m(t,)i(are)f
+(deco)s(ded)g(as)150 5182 y(follo)m(ws:)150 5340 y Ft(\\a)384
+b Fu(alert)31 b(\(b)s(ell\))p eop end
%%Page: 7 13
TeXDict begin 7 12 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(7)150 299
-y Ft(\\e)150 408 y(\\E)384 b Fu(an)30 b(escap)s(e)h(c)m(haracter)h
-(\(not)f(ANSI)f(C\))150 566 y Ft(\\f)384 b Fu(form)30
-b(feed)150 723 y Ft(\\n)384 b Fu(newline)150 880 y Ft(\\r)g
-Fu(carriage)32 b(return)150 1037 y Ft(\\t)384 b Fu(horizon)m(tal)32
-b(tab)150 1194 y Ft(\\v)384 b Fu(v)m(ertical)32 b(tab)150
-1351 y Ft(\\\\)384 b Fu(bac)m(kslash)150 1508 y Ft(\\')g
-Fu(single)31 b(quote)150 1665 y Ft(\\")384 b Fu(double)30
-b(quote)150 1823 y Ft(\\?)384 b Fu(question)31 b(mark)150
-1980 y Ft(\\)p Fj(nnn)288 b Fu(the)36 b(eigh)m(t-bit)h(c)m(haracter)g
-(whose)f(v)-5 b(alue)36 b(is)f(the)h(o)s(ctal)h(v)-5
-b(alue)36 b Fr(nnn)e Fu(\(one)i(to)h(three)f(o)s(ctal)630
-2089 y(digits\))150 2246 y Ft(\\x)p Fj(HH)288 b Fu(the)36
-b(eigh)m(t-bit)i(c)m(haracter)f(whose)f(v)-5 b(alue)36
-b(is)g(the)g(hexadecimal)h(v)-5 b(alue)36 b Fr(HH)46
-b Fu(\(one)37 b(or)f(t)m(w)m(o)630 2356 y(hex)30 b(digits\))150
-2513 y Ft(\\u)p Fj(HHHH)192 b Fu(the)33 b(Unico)s(de)f(\(ISO/IEC)g
-(10646\))j(c)m(haracter)f(whose)e(v)-5 b(alue)33 b(is)g(the)g
-(hexadecimal)g(v)-5 b(alue)630 2623 y Fr(HHHH)41 b Fu(\(one)31
-b(to)g(four)f(hex)g(digits\))150 2780 y Ft(\\U)p Fj(HHHHHHHH)630
-2889 y Fu(the)j(Unico)s(de)f(\(ISO/IEC)g(10646\))j(c)m(haracter)f
-(whose)e(v)-5 b(alue)33 b(is)g(the)g(hexadecimal)g(v)-5
-b(alue)630 2999 y Fr(HHHHHHHH)42 b Fu(\(one)31 b(to)g(eigh)m(t)g(hex)g
-(digits\))150 3156 y Ft(\\c)p Fj(x)336 b Fu(a)31 b(con)m(trol-)p
-Fr(x)38 b Fu(c)m(haracter)150 3313 y(The)30 b(expanded)f(result)i(is)f
+y Ft(\\b)384 b Fu(bac)m(kspace)150 466 y Ft(\\e)150 576
+y(\\E)g Fu(an)30 b(escap)s(e)h(c)m(haracter)h(\(not)f(ANSI)f(C\))150
+743 y Ft(\\f)384 b Fu(form)30 b(feed)150 911 y Ft(\\n)384
+b Fu(newline)150 1078 y Ft(\\r)g Fu(carriage)32 b(return)150
+1245 y Ft(\\t)384 b Fu(horizon)m(tal)32 b(tab)150 1413
+y Ft(\\v)384 b Fu(v)m(ertical)32 b(tab)150 1580 y Ft(\\\\)384
+b Fu(bac)m(kslash)150 1747 y Ft(\\')g Fu(single)31 b(quote)150
+1915 y Ft(\\")384 b Fu(double)30 b(quote)150 2082 y Ft(\\?)384
+b Fu(question)31 b(mark)150 2249 y Ft(\\)p Fj(nnn)288
+b Fu(the)36 b(eigh)m(t-bit)h(c)m(haracter)g(whose)f(v)-5
+b(alue)36 b(is)f(the)h(o)s(ctal)h(v)-5 b(alue)36 b Fr(nnn)e
+Fu(\(one)i(to)h(three)f(o)s(ctal)630 2359 y(digits\))150
+2526 y Ft(\\x)p Fj(HH)288 b Fu(the)36 b(eigh)m(t-bit)i(c)m(haracter)f
+(whose)f(v)-5 b(alue)36 b(is)g(the)g(hexadecimal)h(v)-5
+b(alue)36 b Fr(HH)46 b Fu(\(one)37 b(or)f(t)m(w)m(o)630
+2636 y(hex)30 b(digits\))150 2803 y Ft(\\u)p Fj(HHHH)192
+b Fu(the)33 b(Unico)s(de)f(\(ISO/IEC)g(10646\))j(c)m(haracter)f(whose)e
+(v)-5 b(alue)33 b(is)g(the)g(hexadecimal)g(v)-5 b(alue)630
+2913 y Fr(HHHH)41 b Fu(\(one)31 b(to)g(four)f(hex)g(digits\))150
+3080 y Ft(\\U)p Fj(HHHHHHHH)630 3190 y Fu(the)j(Unico)s(de)f(\(ISO/IEC)
+g(10646\))j(c)m(haracter)f(whose)e(v)-5 b(alue)33 b(is)g(the)g
+(hexadecimal)g(v)-5 b(alue)630 3299 y Fr(HHHHHHHH)42
+b Fu(\(one)31 b(to)g(eigh)m(t)g(hex)g(digits\))150 3467
+y Ft(\\c)p Fj(x)336 b Fu(a)31 b(con)m(trol-)p Fr(x)38
+b Fu(c)m(haracter)150 3638 y(The)30 b(expanded)f(result)i(is)f
(single-quoted,)i(as)f(if)f(the)g(dollar)h(sign)g(had)e(not)i(b)s(een)f
-(presen)m(t.)150 3510 y Fk(3.1.2.5)63 b(Lo)s(cale-Sp)s(eci\014c)41
-b(T)-10 b(ranslation)150 3657 y Fu(A)28 b(double-quoted)g(string)f
-(preceded)h(b)m(y)f(a)h(dollar)h(sign)e(\(`)p Ft($)p
-Fu('\))i(will)f(cause)g(the)g(string)g(to)g(b)s(e)f(translated)150
-3767 y(according)37 b(to)g(the)f(curren)m(t)g(lo)s(cale.)59
-b(The)36 b Fr(gettext)k Fu(infrastructure)35 b(p)s(erforms)g(the)h
-(message)h(catalog)150 3876 y(lo)s(okup)21 b(and)g(translation,)k
-(using)c(the)h Ft(LC_MESSAGES)d Fu(and)i Ft(TEXTDOMAIN)e
-Fu(shell)i(v)-5 b(ariables,)25 b(as)d(explained)150 3986
-y(b)s(elo)m(w.)57 b(See)36 b(the)g(gettext)i(do)s(cumen)m(tation)e(for)
-g(additional)g(details.)58 b(If)35 b(the)h(curren)m(t)f(lo)s(cale)j(is)
-e Ft(C)f Fu(or)150 4096 y Ft(POSIX)p Fu(,)g(or)g(if)g(there)g(are)h(no)
-f(translations)h(a)m(v)-5 b(ailable,)38 b(the)e(dollar)f(sign)g(is)g
-(ignored.)55 b(If)35 b(the)g(string)g(is)150 4205 y(translated)c(and)f
-(replaced,)h(the)f(replacemen)m(t)i(is)f(double-quoted.)275
-4339 y(Some)20 b(systems)h(use)f(the)h(message)h(catalog)h(selected)f
-(b)m(y)f(the)g Ft(LC_MESSAGES)c Fu(shell)k(v)-5 b(ariable.)39
-b(Others)150 4448 y(create)g(the)e(name)g(of)g(the)g(message)h(catalog)
-i(from)d(the)g(v)-5 b(alue)37 b(of)g(the)h Ft(TEXTDOMAIN)c
-Fu(shell)j(v)-5 b(ariable,)150 4558 y(p)s(ossibly)31
-b(adding)g(a)g(su\016x)g(of)h(`)p Ft(.mo)p Fu('.)43 b(If)31
-b(y)m(ou)h(use)f(the)h Ft(TEXTDOMAIN)c Fu(v)-5 b(ariable,)33
-b(y)m(ou)f(ma)m(y)g(need)f(to)h(set)150 4667 y(the)22
-b Ft(TEXTDOMAINDIR)d Fu(v)-5 b(ariable)23 b(to)g(the)f(lo)s(cation)i
-(of)e(the)h(message)g(catalog)i(\014les.)38 b(Still)23
-b(others)f(use)g(b)s(oth)150 4777 y(v)-5 b(ariables)31
-b(in)f(this)g(fashion:)41 b Ft(TEXTDOMAINDIR)p Fu(/)p
-Ft(LC_MESSAGES)p Fu(/LC)p 2528 4777 28 4 v 34 w(MESSA)m(GES/)p
-Ft(TEXTDOMAIN)p Fu(.mo.)150 4974 y Fk(3.1.3)63 b(Commen)m(ts)150
-5121 y Fu(In)21 b(a)i(non-in)m(teractiv)m(e)h(shell,)g(or)e(an)g(in)m
-(teractiv)m(e)j(shell)d(in)g(whic)m(h)g(the)g Ft(interactive_comments)
-16 b Fu(option)150 5230 y(to)40 b(the)f Ft(shopt)e Fu(builtin)h(is)h
-(enabled)g(\(see)h(Section)g(4.3.2)g([The)f(Shopt)f(Builtin],)k(page)e
-(66\),)i(a)d(w)m(ord)150 5340 y(b)s(eginning)26 b(with)g(`)p
-Ft(#)p Fu(')g(causes)h(that)f(w)m(ord)g(and)g(all)h(remaining)g(c)m
-(haracters)g(on)f(that)h(line)g(to)g(b)s(e)f(ignored.)p
-eop end
+(presen)m(t.)150 3845 y Fk(3.1.2.5)63 b(Lo)s(cale-Sp)s(eci\014c)41
+b(T)-10 b(ranslation)150 3992 y Fu(Pre\014xing)38 b(a)h(double-quoted)g
+(string)f(with)g(a)h(dollar)g(sign)g(\(`)p Ft($)p Fu('\),)j(suc)m(h)c
+(as)h Ft($"hello,)45 b(world")p Fu(,)40 b(will)150 4102
+y(cause)33 b(the)f(string)h(to)g(b)s(e)f(translated)h(according)g(to)g
+(the)g(curren)m(t)f(lo)s(cale.)48 b(The)32 b Ft(gettext)e
+Fu(infrastruc-)150 4211 y(ture)41 b(p)s(erforms)e(the)i(lo)s(okup)g
+(and)f(translation,)45 b(using)40 b(the)i Ft(LC_MESSAGES)p
+Fu(,)e Ft(TEXTDOMAINDIR)p Fu(,)h(and)150 4321 y Ft(TEXTDOMAIN)34
+b Fu(shell)i(v)-5 b(ariables,)39 b(as)e(explained)f(b)s(elo)m(w.)60
+b(See)36 b(the)h(gettext)i(do)s(cumen)m(tation)e(for)f(addi-)150
+4430 y(tional)24 b(details)g(not)f(co)m(v)m(ered)i(here.)38
+b(If)23 b(the)g(curren)m(t)f(lo)s(cale)j(is)e Ft(C)g
+Fu(or)g Ft(POSIX)p Fu(,)g(if)g(there)g(are)g(no)g(translations)150
+4540 y(a)m(v)-5 b(ailable,)32 b(of)c(if)h(the)f(string)h(is)g(not)f
+(translated,)i(the)f(dollar)g(sign)f(is)h(ignored.)40
+b(Since)29 b(this)f(is)h(a)g(form)f(of)150 4650 y(double)d(quoting,)j
+(the)e(string)g(remains)f(double-quoted)h(b)m(y)g(default,)h(whether)e
+(or)h(not)g(it)g(is)g(translated)150 4759 y(and)i(replaced.)41
+b(If)28 b(the)h Ft(noexpand_translation)23 b Fu(option)29
+b(is)g(enabled)f(using)h(the)f Ft(shopt)g Fu(builtin)g(\(see)150
+4869 y(Section)33 b(4.3.2)h([The)e(Shopt)f(Builtin],)j(page)f(71\),)h
+(translated)f(strings)e(are)i(single-quoted)g(instead)g(of)150
+4978 y(double-quoted.)275 5121 y(The)39 b(rest)i(of)g(this)f(section)h
+(is)g(a)g(brief)f(o)m(v)m(erview)i(of)e(ho)m(w)h(y)m(ou)f(use)g
+(gettext)j(to)e(create)h(transla-)150 5230 y(tions)33
+b(for)f(strings)g(in)g(a)h(shell)f(script)h(named)f Fr(scriptname)p
+Fu(.)46 b(There)32 b(are)h(more)g(details)g(in)f(the)h(gettext)150
+5340 y(do)s(cumen)m(tation.)p eop end
%%Page: 8 14
TeXDict begin 8 13 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(8)150 299
-y(An)43 b(in)m(teractiv)m(e)j(shell)e(without)f(the)g
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(8)275 299
+y(Once)34 b(y)m(ou'v)m(e)i(mark)m(ed)f(the)f(strings)h(in)f(y)m(our)g
+(script)h(that)g(y)m(ou)g(w)m(an)m(t)g(to)g(translate)h(using)e($)p
+Ft(")p Fu(...)p Ft(")p Fu(,)150 408 y(y)m(ou)d(create)h(a)e(gettext)j
+Ft(")p Fu(template)p Ft(")e Fu(\014le)g(using)f(the)g(command)390
+540 y Ft(bash)47 b(--dump-po-strings)c Fj(scriptname)i
+Ft(>)i Fj(domain)p Ft(.pot)150 671 y Fu(The)36 b Fr(domain)g
+Fu(is)g(y)m(our)h Fr(message)g(domain)p Fu(.)58 b(It's)37
+b(just)e(an)i(arbitrary)f(string)g(that's)h(used)e(to)i(iden)m(tify)150
+781 y(the)32 b(\014les)g(gettext)i(needs,)f(lik)m(e)g(a)f(pac)m(k)-5
+b(age)35 b(or)d(script)f(name.)46 b(It)32 b(needs)g(to)h(b)s(e)e
+(unique)g(among)i(all)g(the)150 891 y(message)41 b(domains)f(on)f
+(systems)h(where)g(y)m(ou)g(install)h(the)f(translations,)j(so)d
+(gettext)i(kno)m(ws)e(whic)m(h)150 1000 y(translations)27
+b(corresp)s(ond)e(to)i(y)m(our)f(script.)39 b(Y)-8 b(ou'll)28
+b(use)d(the)i(template)g(\014le)g(to)f(create)i(translations)f(for)150
+1110 y(eac)m(h)32 b(target)f(language.)43 b(The)29 b(template)j(\014le)
+f(con)m(v)m(en)m(tionally)i(has)d(the)h(su\016x)e(`)p
+Ft(.pot)p Fu('.)275 1241 y(Y)-8 b(ou)23 b(cop)m(y)g(this)g(template)h
+(\014le)f(to)h(a)f(separate)h(\014le)f(for)g(eac)m(h)h(target)g
+(language)g(y)m(ou)f(w)m(an)m(t)h(to)g(supp)s(ort)150
+1351 y(\(called)39 b Ft(")p Fu(PO)p Ft(")e Fu(\014les,)i(whic)m(h)f
+(use)f(the)h(su\016x)e(`)p Ft(.po)p Fu('\).)63 b(PO)37
+b(\014les)g(use)h(v)-5 b(arious)37 b(naming)h(con)m(v)m(en)m(tions,)150
+1461 y(but)31 b(when)g(y)m(ou)i(are)f(w)m(orking)g(to)h(translate)g(a)f
+(template)i(\014le)e(in)m(to)h(a)f(particular)g(language,)i(y)m(ou)f
+(\014rst)150 1570 y(cop)m(y)k(the)g(template)h(\014le)e(to)h(a)g
+(\014le)f(whose)h(name)f(is)g(the)h(language)h(y)m(ou)f(w)m(an)m(t)g
+(to)g(target,)j(with)c(the)150 1680 y(`)p Ft(.po)p Fu(')29
+b(su\016x.)39 b(F)-8 b(or)30 b(instance,)g(the)f(Spanish)f
+(translations)i(of)f(y)m(our)g(strings)g(w)m(ould)g(b)s(e)f(in)h(a)g
+(\014le)g(named)150 1789 y(`)p Ft(es.po)p Fu(',)h(and)f(to)j(get)f
+(started)g(using)f(a)h(message)g(domain)f(named)g Ft(")p
+Fu(example,)p Ft(")h Fu(y)m(ou)g(w)m(ould)f(run)390 1921
+y Ft(cp)47 b(example.pot)e(es.po)150 2052 y Fu(Ultimately)-8
+b(,)42 b(PO)37 b(\014les)g(are)h(often)g(named)f Fr(domain)p
+Fu(.p)s(o)g(and)g(installed)h(in)f(directories)i(that)f(con)m(tain)150
+2162 y(m)m(ultiple)31 b(translation)g(\014les)g(for)f(a)h(particular)f
+(language.)275 2293 y(Whic)m(hev)m(er)k(naming)f(con)m(v)m(en)m(tion)i
+(y)m(ou)e(c)m(ho)s(ose,)i(y)m(ou)e(will)g(need)g(to)g(translate)h(the)f
+(strings)g(in)g(the)150 2403 y(PO)d(\014les)g(in)m(to)i(the)e
+(appropriate)h(languages.)42 b(This)29 b(has)h(to)h(b)s(e)f(done)g(man)
+m(ually)-8 b(.)275 2534 y(When)35 b(y)m(ou)h(ha)m(v)m(e)g(the)g
+(translations)g(and)f(PO)g(\014les)g(complete,)k(y)m(ou'll)d(use)g(the)
+f(gettext)j(to)s(ols)e(to)150 2644 y(pro)s(duce)26 b(what)g(are)i
+(called)g Ft(")p Fu(MO)p Ft(")e Fu(\014les,)i(whic)m(h)e(are)h
+(compiled)h(v)m(ersions)f(of)g(the)g(PO)f(\014les)h(the)g(gettext)150
+2754 y(to)s(ols)42 b(use)f(to)h(lo)s(ok)g(up)e(translations)j
+(e\016cien)m(tly)-8 b(.)75 b(MO)42 b(\014les)f(are)g(also)i(called)f
+Ft(")p Fu(message)g(catalog)p Ft(")150 2863 y Fu(\014les.)k(Y)-8
+b(ou)33 b(use)f(the)g Ft(msgfmt)f Fu(program)h(to)h(do)f(this.)46
+b(F)-8 b(or)33 b(instance,)g(if)f(y)m(ou)h(had)f(a)g(\014le)h(with)e
+(Spanish)150 2973 y(translations,)g(y)m(ou)g(could)g(run)390
+3104 y Ft(msgfmt)46 b(-o)h(es.mo)g(es.po)150 3236 y Fu(to)31
+b(pro)s(duce)e(the)i(corresp)s(onding)e(MO)i(\014le.)275
+3367 y(Once)21 b(y)m(ou)h(ha)m(v)m(e)i(the)e(MO)f(\014les,)j(y)m(ou)e
+(decide)g(where)g(to)g(install)h(them)f(and)f(use)h(the)g
+Ft(TEXTDOMAINDIR)150 3477 y Fu(shell)32 b(v)-5 b(ariable)33
+b(to)g(tell)h(the)e(gettext)i(to)s(ols)f(where)f(they)g(are.)47
+b(Mak)m(e)34 b(sure)d(to)i(use)f(the)g(same)h(message)150
+3587 y(domain)d(to)h(name)g(the)f(MO)h(\014les)f(as)h(y)m(ou)f(did)g
+(for)g(the)h(PO)e(\014les)i(when)e(y)m(ou)i(install)g(them.)275
+3718 y(Y)-8 b(our)21 b(users)f(will)h(use)g(the)g Ft(LANG)f
+Fu(or)h Ft(LC_MESSAGES)d Fu(shell)j(v)-5 b(ariables)21
+b(to)h(select)h(the)e(desired)f(language.)275 3850 y(Y)-8
+b(ou)29 b(set)g(the)g Ft(TEXTDOMAIN)d Fu(v)-5 b(ariable)30
+b(to)f(the)g(script's)g(message)h(domain.)40 b(As)29
+b(ab)s(o)m(v)m(e,)h(y)m(ou)f(use)g(the)150 3959 y(message)i(domain)g
+(to)g(name)f(y)m(our)h(translation)g(\014les.)275 4091
+y(Y)-8 b(ou,)31 b(or)g(p)s(ossibly)f(y)m(our)g(users,)h(set)g(the)g
+Ft(TEXTDOMAINDIR)c Fu(v)-5 b(ariable)31 b(to)h(the)f(name)f(of)h(a)g
+(directory)150 4200 y(where)d(the)h(message)h(catalog)i(\014les)d(are)g
+(stored.)40 b(If)28 b(y)m(ou)i(install)f(the)g(message)h(\014les)f(in)m
+(to)h(the)f(system's)150 4310 y(standard)h(message)h(catalog)i
+(directory)-8 b(,)32 b(y)m(ou)e(don't)h(need)f(to)h(w)m(orry)f(ab)s
+(out)g(this)g(v)-5 b(ariable.)275 4441 y(The)31 b(directory)h(where)g
+(the)g(message)h(catalog)h(\014les)e(are)g(stored)g(v)-5
+b(aries)32 b(b)s(et)m(w)m(een)h(systems.)45 b(Some)150
+4551 y(use)24 b(the)h(message)g(catalog)j(selected)e(b)m(y)e(the)h
+Ft(LC_MESSAGES)c Fu(shell)k(v)-5 b(ariable.)39 b(Others)24
+b(create)i(the)f(name)150 4661 y(of)i(the)h(message)g(catalog)i(from)d
+(the)g(v)-5 b(alue)27 b(of)h(the)f Ft(TEXTDOMAIN)e Fu(shell)i(v)-5
+b(ariable,)29 b(p)s(ossibly)d(adding)h(the)150 4770 y(`)p
+Ft(.mo)p Fu(')32 b(su\016x.)47 b(If)33 b(y)m(ou)g(use)f(the)h
+Ft(TEXTDOMAIN)d Fu(v)-5 b(ariable,)35 b(y)m(ou)e(ma)m(y)g(need)g(to)g
+(set)h(the)f Ft(TEXTDOMAINDIR)150 4880 y Fu(v)-5 b(ariable)26
+b(to)g(the)g(lo)s(cation)h(of)e(the)h(message)h(catalog)h(\014les,)e
+(as)g(ab)s(o)m(v)m(e.)40 b(It's)26 b(common)g(to)g(use)f(b)s(oth)f(v)-5
+b(ari-)150 4989 y(ables)31 b(in)f(this)g(fashion:)41
+b Ft($TEXTDOMAINDIR)p Fu(/)p Ft($LC_MESSAG)o(ES)p Fu(/LC)p
+2474 4989 28 4 v 34 w(MESSA)m(GES/)p Ft($TEXTDOMAIN)p
+Fu(.mo.)275 5121 y(If)i(y)m(ou)h(used)f(that)h(last)g(con)m(v)m(en)m
+(tion,)50 b(and)43 b(y)m(ou)h(w)m(an)m(ted)g(to)h(store)f(the)g
+(message)h(catalog)h(\014les)150 5230 y(with)28 b(Spanish)f(\(es\))i
+(and)f(Esp)s(eran)m(to)h(\(eo\))g(translations)h(in)m(to)f(a)g(lo)s
+(cal)h(directory)f(y)m(ou)f(use)g(for)h(custom)150 5340
+y(translation)i(\014les,)g(y)m(ou)g(could)f(run)p eop
+end
+%%Page: 9 15
+TeXDict begin 9 14 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(9)390 299
+y Ft(TEXTDOMAIN=example)390 408 y(TEXTDOMAINDIR=/usr/local)o(/sha)o
+(re/l)o(oca)o(le)390 628 y(cp)47 b(es.mo)g(${TEXTDOMAINDIR}/es/LC_)o
+(MES)o(SAGE)o(S/${)o(TEX)o(TDOM)o(AIN})o(.mo)390 737
+y(cp)g(eo.mo)g(${TEXTDOMAINDIR}/eo/LC_)o(MES)o(SAGE)o(S/${)o(TEX)o
+(TDOM)o(AIN})o(.mo)275 868 y Fu(When)30 b(all)i(of)f(this)f(is)h(done,)
+g(and)f(the)h(message)h(catalog)h(\014les)e(con)m(taining)h(the)f
+(compiled)g(transla-)150 977 y(tions)c(are)g(installed)h(in)e(the)h
+(correct)h(lo)s(cation,)h(y)m(our)e(users)f(will)h(b)s(e)f(able)h(to)h
+(see)f(translated)h(strings)e(in)150 1087 y(an)m(y)k(of)f(the)h(supp)s
+(orted)d(languages)k(b)m(y)e(setting)h(the)g Ft(LANG)e
+Fu(or)h Ft(LC_MESSAGES)d Fu(en)m(vironmen)m(t)k(v)-5
+b(ariables)150 1197 y(b)s(efore)30 b(running)f(y)m(our)h(script.)150
+1388 y Fk(3.1.3)63 b(Commen)m(ts)150 1535 y Fu(In)21
+b(a)i(non-in)m(teractiv)m(e)h(shell,)g(or)e(an)g(in)m(teractiv)m(e)j
+(shell)d(in)g(whic)m(h)g(the)g Ft(interactive_comments)16
+b Fu(option)150 1645 y(to)40 b(the)f Ft(shopt)e Fu(builtin)h(is)h
+(enabled)g(\(see)h(Section)g(4.3.2)g([The)f(Shopt)f(Builtin],)k(page)e
+(71\),)i(a)d(w)m(ord)150 1754 y(b)s(eginning)26 b(with)g(`)p
+Ft(#)p Fu(')g(causes)h(that)f(w)m(ord)g(and)g(all)h(remaining)g(c)m
+(haracters)g(on)f(that)h(line)g(to)g(b)s(e)f(ignored.)150
+1864 y(An)43 b(in)m(teractiv)m(e)j(shell)e(without)f(the)g
Ft(interactive_comments)38 b Fu(option)44 b(enabled)f(do)s(es)g(not)g
-(allo)m(w)150 408 y(commen)m(ts.)56 b(The)34 b Ft(interactive_comments)
-c Fu(option)35 b(is)g(on)g(b)m(y)g(default)g(in)g(in)m(teractiv)m(e)j
-(shells.)55 b(See)150 518 y(Section)30 b(6.3)f([In)m(teractiv)m(e)j
-(Shells],)d(page)h(89,)g(for)e(a)i(description)e(of)h(what)g(mak)m(es)h
-(a)f(shell)g(in)m(teractiv)m(e.)150 757 y Fs(3.2)68 b(Shell)45
-b(Commands)150 916 y Fu(A)d(simple)g(shell)g(command)f(suc)m(h)h(as)g
-Ft(echo)29 b(a)h(b)g(c)41 b Fu(consists)i(of)f(the)f(command)h(itself)h
-(follo)m(w)m(ed)g(b)m(y)150 1026 y(argumen)m(ts,)31 b(separated)g(b)m
-(y)f(spaces.)275 1159 y(More)h(complex)h(shell)f(commands)g(are)g(comp)
-s(osed)g(of)g(simple)g(commands)g(arranged)g(together)h(in)150
-1269 y(a)f(v)-5 b(ariet)m(y)32 b(of)f(w)m(a)m(ys:)41
-b(in)31 b(a)g(pip)s(eline)f(in)g(whic)m(h)g(the)h(output)f(of)h(one)f
-(command)h(b)s(ecomes)f(the)h(input)f(of)150 1378 y(a)h(second,)f(in)h
-(a)f(lo)s(op)h(or)f(conditional)i(construct,)f(or)f(in)g(some)h(other)g
-(grouping.)150 1575 y Fk(3.2.1)63 b(Reserv)m(ed)40 b(W)-10
-b(ords)150 1722 y Fu(Reserv)m(ed)33 b(w)m(ords)g(are)g(w)m(ords)g(that)
+(allo)m(w)150 1973 y(commen)m(ts.)56 b(The)34 b Ft
+(interactive_comments)c Fu(option)35 b(is)g(on)g(b)m(y)g(default)g(in)g
+(in)m(teractiv)m(e)j(shells.)55 b(See)150 2083 y(Section)30
+b(6.3)f([In)m(teractiv)m(e)j(Shells],)d(page)h(94,)g(for)e(a)i
+(description)e(of)h(what)g(mak)m(es)h(a)f(shell)g(in)m(teractiv)m(e.)
+150 2316 y Fs(3.2)68 b(Shell)45 b(Commands)150 2476 y
+Fu(A)d(simple)g(shell)g(command)f(suc)m(h)h(as)g Ft(echo)29
+b(a)h(b)g(c)41 b Fu(consists)i(of)f(the)f(command)h(itself)h(follo)m(w)
+m(ed)g(b)m(y)150 2585 y(argumen)m(ts,)31 b(separated)g(b)m(y)f(spaces.)
+275 2716 y(More)h(complex)h(shell)f(commands)g(are)g(comp)s(osed)g(of)g
+(simple)g(commands)g(arranged)g(together)h(in)150 2825
+y(a)f(v)-5 b(ariet)m(y)32 b(of)f(w)m(a)m(ys:)41 b(in)31
+b(a)g(pip)s(eline)f(in)g(whic)m(h)g(the)h(output)f(of)h(one)f(command)h
+(b)s(ecomes)f(the)h(input)f(of)150 2935 y(a)h(second,)f(in)h(a)f(lo)s
+(op)h(or)f(conditional)i(construct,)f(or)f(in)g(some)h(other)g
+(grouping.)150 3126 y Fk(3.2.1)63 b(Reserv)m(ed)40 b(W)-10
+b(ords)150 3273 y Fu(Reserv)m(ed)33 b(w)m(ords)g(are)g(w)m(ords)g(that)
g(ha)m(v)m(e)h(sp)s(ecial)g(meaning)f(to)h(the)f(shell.)49
-b(They)32 b(are)h(used)g(to)g(b)s(egin)150 1832 y(and)d(end)f(the)i
-(shell's)g(comp)s(ound)e(commands.)275 1965 y(The)k(follo)m(wing)i(w)m
+b(They)32 b(are)h(used)g(to)g(b)s(egin)150 3383 y(and)d(end)f(the)i
+(shell's)g(comp)s(ound)e(commands.)275 3514 y(The)k(follo)m(wing)i(w)m
(ords)e(are)h(recognized)i(as)e(reserv)m(ed)f(when)g(unquoted)g(and)g
-(the)h(\014rst)f(w)m(ord)h(of)g(a)150 2075 y(command)c(\(see)h(b)s(elo)
-m(w)g(for)f(exceptions\):)150 2208 y Ft(if)364 b(then)168
-b(elif)g(else)g(fi)336 b(time)150 2318 y(for)316 b(in)264
-b(until)120 b(while)g(do)336 b(done)150 2427 y(case)268
-b(esac)168 b(coproc)72 b(select)g(function)150 2537 y({)412
-b(})312 b([[)264 b(]])g(!)150 2670 y(in)33 b Fu(is)h(recognized)h(as)f
+(the)h(\014rst)f(w)m(ord)h(of)g(a)150 3623 y(command)c(\(see)h(b)s(elo)
+m(w)g(for)f(exceptions\):)150 3754 y Ft(if)364 b(then)168
+b(elif)g(else)g(fi)336 b(time)150 3863 y(for)316 b(in)264
+b(until)120 b(while)g(do)336 b(done)150 3973 y(case)268
+b(esac)168 b(coproc)72 b(select)g(function)150 4083 y({)412
+b(})312 b([[)264 b(]])g(!)150 4213 y(in)33 b Fu(is)h(recognized)h(as)f
(a)g(reserv)m(ed)f(w)m(ord)h(if)f(it)h(is)g(the)g(third)f(w)m(ord)g(of)
-h(a)g Ft(case)e Fu(or)i Ft(select)e Fu(command.)150 2780
+h(a)g Ft(case)e Fu(or)i Ft(select)e Fu(command.)150 4323
y Ft(in)e Fu(and)g Ft(do)f Fu(are)i(recognized)h(as)e(reserv)m(ed)h(w)m
(ords)f(if)g(they)h(are)f(the)h(third)f(w)m(ord)g(in)g(a)g
-Ft(for)g Fu(command.)150 2977 y Fk(3.2.2)63 b(Simple)41
-b(Commands)150 3124 y Fu(A)29 b(simple)f(command)g(is)h(the)g(kind)e
+Ft(for)g Fu(command.)150 4514 y Fk(3.2.2)63 b(Simple)41
+b(Commands)150 4661 y Fu(A)29 b(simple)f(command)g(is)h(the)g(kind)e
(of)i(command)f(encoun)m(tered)h(most)g(often.)40 b(It's)29
-b(just)f(a)h(sequence)g(of)150 3233 y(w)m(ords)22 b(separated)i(b)m(y)e
+b(just)f(a)h(sequence)g(of)150 4771 y(w)m(ords)22 b(separated)i(b)m(y)e
Ft(blank)p Fu(s,)i(terminated)f(b)m(y)g(one)g(of)g(the)g(shell's)g(con)
-m(trol)h(op)s(erators)f(\(see)h(Chapter)f(2)150 3343
+m(trol)h(op)s(erators)f(\(see)h(Chapter)f(2)150 4881
y([De\014nitions],)37 b(page)e(3\).)54 b(The)35 b(\014rst)e(w)m(ord)i
(generally)g(sp)s(eci\014es)g(a)g(command)f(to)h(b)s(e)f(executed,)j
-(with)150 3452 y(the)31 b(rest)f(of)h(the)f(w)m(ords)g(b)s(eing)g(that)
-h(command's)f(argumen)m(ts.)275 3586 y(The)h(return)h(status)g(\(see)i
-(Section)f(3.7.5)h([Exit)f(Status],)h(page)f(41\))g(of)g(a)g(simple)f
-(command)g(is)h(its)150 3695 y(exit)38 b(status)f(as)g(pro)m(vided)f(b)
+(with)150 4990 y(the)31 b(rest)f(of)h(the)f(w)m(ords)g(b)s(eing)g(that)
+h(command's)f(argumen)m(ts.)275 5121 y(The)h(return)h(status)g(\(see)i
+(Section)f(3.7.5)h([Exit)f(Status],)h(page)f(44\))g(of)g(a)g(simple)f
+(command)g(is)h(its)150 5230 y(exit)38 b(status)f(as)g(pro)m(vided)f(b)
m(y)h(the)g Fm(posix)f Fu(1003.1)j Ft(waitpid)c Fu(function,)j(or)f
-(128)p Ft(+)p Fr(n)g Fu(if)g(the)g(command)150 3805 y(w)m(as)31
-b(terminated)g(b)m(y)f(signal)h Fr(n)p Fu(.)150 4002
-y Fk(3.2.3)63 b(Pip)s(elines)150 4149 y Fu(A)21 b Ft(pipeline)d
+(128)p Ft(+)p Fr(n)g Fu(if)g(the)g(command)150 5340 y(w)m(as)31
+b(terminated)g(b)m(y)f(signal)h Fr(n)p Fu(.)p eop end
+%%Page: 10 16
+TeXDict begin 10 15 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(10)150 299
+y Fk(3.2.3)63 b(Pip)s(elines)150 446 y Fu(A)21 b Ft(pipeline)d
Fu(is)j(a)g(sequence)g(of)g(one)g(or)g(more)g(commands)f(separated)h(b)
m(y)g(one)g(of)g(the)g(con)m(trol)h(op)s(erators)150
-4259 y(`)p Ft(|)p Fu(')31 b(or)f(`)p Ft(|&)p Fu('.)275
-4392 y(The)f(format)i(for)f(a)h(pip)s(eline)f(is)390
-4525 y Ft([time)46 b([-p]])h([!])g Fj(command1)e Ft([)j(|)f(or)g(|&)g
-Fj(command2)f Ft(])h(...)150 4659 y Fu(The)25 b(output)f(of)i(eac)m(h)g
+555 y(`)p Ft(|)p Fu(')31 b(or)f(`)p Ft(|&)p Fu('.)275
+695 y(The)f(format)i(for)f(a)h(pip)s(eline)f(is)390 834
+y Ft([time)46 b([-p]])h([!])g Fj(command1)e Ft([)j(|)f(or)g(|&)g
+Fj(command2)f Ft(])h(...)150 974 y Fu(The)25 b(output)f(of)i(eac)m(h)g
(command)f(in)f(the)i(pip)s(eline)e(is)i(connected)g(via)f(a)h(pip)s(e)
-e(to)i(the)f(input)f(of)h(the)h(next)150 4768 y(command.)40
+e(to)i(the)f(input)f(of)h(the)h(next)150 1083 y(command.)40
b(That)29 b(is,)h(eac)m(h)h(command)e(reads)g(the)h(previous)f
-(command's)g(output.)40 b(This)29 b(connection)150 4878
+(command's)g(output.)40 b(This)29 b(connection)150 1193
y(is)h(p)s(erformed)f(b)s(efore)h(an)m(y)h(redirections)g(sp)s
-(eci\014ed)f(b)m(y)g(the)g(command.)275 5011 y(If)k(`)p
+(eci\014ed)f(b)m(y)g Fr(command1)p Fu(.)275 1333 y(If)k(`)p
Ft(|&)p Fu(')h(is)f(used,)i Fr(command1)7 b Fu('s)35
b(standard)f(error,)i(in)e(addition)h(to)h(its)f(standard)f(output,)i
-(is)e(con-)150 5121 y(nected)h(to)g Fr(command2)7 b Fu('s)35
+(is)e(con-)150 1442 y(nected)h(to)g Fr(command2)7 b Fu('s)35
b(standard)f(input)f(through)h(the)g(pip)s(e;)i(it)f(is)g(shorthand)e
-(for)h Ft(2>&1)29 b(|)p Fu(.)53 b(This)150 5230 y(implicit)41
+(for)h Ft(2>&1)29 b(|)p Fu(.)53 b(This)150 1552 y(implicit)41
b(redirection)f(of)g(the)g(standard)f(error)g(to)h(the)g(standard)f
-(output)g(is)h(p)s(erformed)e(after)j(an)m(y)150 5340
-y(redirections)31 b(sp)s(eci\014ed)f(b)m(y)g(the)g(command.)p
-eop end
-%%Page: 9 15
-TeXDict begin 9 14 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2292 b(9)275 299
-y(The)36 b(reserv)m(ed)g(w)m(ord)g Ft(time)g Fu(causes)h(timing)g
-(statistics)h(to)f(b)s(e)f(prin)m(ted)g(for)g(the)h(pip)s(eline)f(once)
-h(it)150 408 y(\014nishes.)51 b(The)34 b(statistics)i(curren)m(tly)e
-(consist)h(of)f(elapsed)h(\(w)m(all-clo)s(c)m(k\))i(time)e(and)f(user)f
-(and)h(system)150 518 y(time)e(consumed)e(b)m(y)h(the)g(command's)g
-(execution.)44 b(The)31 b Ft(-p)f Fu(option)i(c)m(hanges)g(the)f
-(output)g(format)g(to)150 628 y(that)j(sp)s(eci\014ed)e(b)m(y)h
-Fm(posix)p Fu(.)49 b(When)33 b(the)g(shell)g(is)h(in)e
-Fm(posix)h Fu(mo)s(de)g(\(see)h(Section)g(6.11)g([Bash)g(POSIX)150
-737 y(Mo)s(de],)j(page)e(101\),)j(it)e(do)s(es)e(not)i(recognize)g
+(output)g(is)h(p)s(erformed)e(after)j(an)m(y)150 1661
+y(redirections)31 b(sp)s(eci\014ed)f(b)m(y)g Fr(command1)p
+Fu(.)275 1801 y(The)36 b(reserv)m(ed)g(w)m(ord)g Ft(time)g
+Fu(causes)h(timing)g(statistics)h(to)f(b)s(e)f(prin)m(ted)g(for)g(the)h
+(pip)s(eline)f(once)h(it)150 1910 y(\014nishes.)51 b(The)34
+b(statistics)i(curren)m(tly)e(consist)h(of)f(elapsed)h(\(w)m(all-clo)s
+(c)m(k\))i(time)e(and)f(user)f(and)h(system)150 2020
+y(time)e(consumed)e(b)m(y)h(the)g(command's)g(execution.)44
+b(The)31 b Ft(-p)f Fu(option)i(c)m(hanges)g(the)f(output)g(format)g(to)
+150 2130 y(that)j(sp)s(eci\014ed)e(b)m(y)h Fm(posix)p
+Fu(.)49 b(When)33 b(the)g(shell)g(is)h(in)e Fm(posix)h
+Fu(mo)s(de)g(\(see)h(Section)g(6.11)g([Bash)g(POSIX)150
+2239 y(Mo)s(de],)j(page)e(106\),)j(it)e(do)s(es)e(not)i(recognize)g
Ft(time)e Fu(as)h(a)h(reserv)m(ed)f(w)m(ord)f(if)h(the)g(next)g(tok)m
-(en)h(b)s(egins)150 847 y(with)d(a)g(`)p Ft(-)p Fu('.)49
+(en)h(b)s(egins)150 2349 y(with)d(a)g(`)p Ft(-)p Fu('.)49
b(The)33 b Ft(TIMEFORMAT)d Fu(v)-5 b(ariable)34 b(ma)m(y)g(b)s(e)f(set)
g(to)h(a)g(format)f(string)g(that)h(sp)s(eci\014es)f(ho)m(w)g(the)150
-956 y(timing)38 b(information)g(should)e(b)s(e)h(displa)m(y)m(ed.)62
+2458 y(timing)38 b(information)g(should)e(b)s(e)h(displa)m(y)m(ed.)62
b(See)38 b(Section)g(5.2)g([Bash)g(V)-8 b(ariables],)41
-b(page)d(73,)i(for)e(a)150 1066 y(description)27 b(of)g(the)h(a)m(v)-5
+b(page)d(78,)i(for)e(a)150 2568 y(description)27 b(of)g(the)h(a)m(v)-5
b(ailable)29 b(formats.)40 b(The)26 b(use)h(of)g Ft(time)f
Fu(as)i(a)f(reserv)m(ed)g(w)m(ord)g(p)s(ermits)f(the)h(timing)150
-1176 y(of)38 b(shell)g(builtins,)i(shell)e(functions,)i(and)d(pip)s
+2677 y(of)38 b(shell)g(builtins,)i(shell)e(functions,)i(and)d(pip)s
(elines.)63 b(An)38 b(external)h Ft(time)e Fu(command)h(cannot)g(time)
-150 1285 y(these)31 b(easily)-8 b(.)275 1418 y(When)26
+150 2787 y(these)31 b(easily)-8 b(.)275 2927 y(When)26
b(the)h(shell)g(is)g(in)g Fm(posix)f Fu(mo)s(de)g(\(see)i(Section)f
-(6.11)i([Bash)e(POSIX)f(Mo)s(de],)i(page)g(101\),)h Ft(time)150
-1527 y Fu(ma)m(y)d(b)s(e)f(follo)m(w)m(ed)j(b)m(y)d(a)h(newline.)39
+(6.11)i([Bash)e(POSIX)f(Mo)s(de],)i(page)g(106\),)h Ft(time)150
+3036 y Fu(ma)m(y)d(b)s(e)f(follo)m(w)m(ed)j(b)m(y)d(a)h(newline.)39
b(In)25 b(this)h(case,)i(the)d(shell)h(displa)m(ys)g(the)g(total)h
-(user)e(and)g(system)h(time)150 1637 y(consumed)33 b(b)m(y)h(the)h
+(user)e(and)g(system)h(time)150 3146 y(consumed)33 b(b)m(y)h(the)h
(shell)f(and)f(its)i(c)m(hildren.)51 b(The)34 b Ft(TIMEFORMAT)d
Fu(v)-5 b(ariable)35 b(ma)m(y)g(b)s(e)e(used)g(to)i(sp)s(ecify)150
-1746 y(the)c(format)f(of)h(the)f(time)h(information.)275
-1879 y(If)24 b(the)h(pip)s(eline)g(is)g(not)g(executed)h(async)m
-(hronously)f(\(see)h(Section)g(3.2.4)h([Lists],)g(page)e(9\),)i(the)f
-(shell)150 1988 y(w)m(aits)31 b(for)f(all)i(commands)e(in)g(the)g(pip)s
-(eline)g(to)h(complete.)275 2121 y(Eac)m(h)e(command)g(in)g(a)g(pip)s
-(eline)g(is)g(executed)h(in)e(its)i(o)m(wn)f(subshell,)f(whic)m(h)h(is)
-g(a)g(separate)h(pro)s(cess)150 2230 y(\(see)g(Section)g(3.7.3)h
-([Command)e(Execution)h(En)m(vironmen)m(t],)g(page)g(40\).)41
-b(If)29 b(the)g Ft(lastpipe)e Fu(option)j(is)150 2340
-y(enabled)35 b(using)g(the)g Ft(shopt)f Fu(builtin)g(\(see)i(Section)g
-(4.3.2)h([The)e(Shopt)f(Builtin],)j(page)f(66\),)i(the)d(last)150
-2450 y(elemen)m(t)d(of)e(a)h(pip)s(eline)f(ma)m(y)h(b)s(e)f(run)f(b)m
-(y)h(the)h(shell)f(pro)s(cess.)275 2582 y(The)24 b(exit)i(status)f(of)h
-(a)f(pip)s(eline)g(is)g(the)g(exit)h(status)f(of)h(the)f(last)h
-(command)f(in)f(the)i(pip)s(eline,)g(unless)150 2692
-y(the)31 b Ft(pipefail)d Fu(option)j(is)g(enabled)f(\(see)i(Section)f
-(4.3.1)i([The)d(Set)h(Builtin],)g(page)h(62\).)42 b(If)30
-b Ft(pipefail)150 2801 y Fu(is)f(enabled,)g(the)f(pip)s(eline's)g
-(return)g(status)h(is)f(the)h(v)-5 b(alue)29 b(of)f(the)h(last)g
-(\(righ)m(tmost\))i(command)d(to)h(exit)150 2911 y(with)34
-b(a)h(non-zero)g(status,)i(or)d(zero)i(if)e(all)i(commands)e(exit)h
-(successfully)-8 b(.)54 b(If)34 b(the)h(reserv)m(ed)g(w)m(ord)f(`)p
-Ft(!)p Fu(')150 3020 y(precedes)e(the)f(pip)s(eline,)h(the)f(exit)i
-(status)f(is)f(the)h(logical)i(negation)f(of)e(the)h(exit)g(status)g
-(as)g(describ)s(ed)150 3130 y(ab)s(o)m(v)m(e.)63 b(The)38
-b(shell)f(w)m(aits)i(for)e(all)i(commands)e(in)g(the)h(pip)s(eline)f
-(to)h(terminate)h(b)s(efore)e(returning)g(a)150 3240
-y(v)-5 b(alue.)150 3435 y Fk(3.2.4)63 b(Lists)41 b(of)h(Commands)150
-3582 y Fu(A)37 b Ft(list)e Fu(is)i(a)g(sequence)g(of)g(one)g(or)f(more)
-h(pip)s(elines)f(separated)h(b)m(y)g(one)g(of)f(the)h(op)s(erators)g(`)
-p Ft(;)p Fu(',)i(`)p Ft(&)p Fu(',)150 3691 y(`)p Ft(&&)p
-Fu(',)31 b(or)f(`)p Ft(||)p Fu(',)g(and)g(optionally)i(terminated)f(b)m
-(y)f(one)h(of)f(`)p Ft(;)p Fu(',)h(`)p Ft(&)p Fu(',)g(or)f(a)h
-Ft(newline)p Fu(.)275 3824 y(Of)23 b(these)h(list)g(op)s(erators,)i(`)p
-Ft(&&)p Fu(')d(and)g(`)p Ft(||)p Fu(')h(ha)m(v)m(e)h(equal)f
-(precedence,)i(follo)m(w)m(ed)f(b)m(y)f(`)p Ft(;)p Fu(')g(and)f(`)p
-Ft(&)p Fu(',)i(whic)m(h)150 3933 y(ha)m(v)m(e)32 b(equal)e(precedence.)
-275 4066 y(A)f(sequence)h(of)g(one)g(or)g(more)g(newlines)f(ma)m(y)h
+3255 y(the)c(format)f(of)h(the)f(time)h(information.)275
+3395 y(If)36 b(the)h(pip)s(eline)g(is)g(not)g(executed)h(async)m
+(hronously)f(\(see)h(Section)g(3.2.4)g([Lists],)i(page)e(10\),)i(the)
+150 3504 y(shell)31 b(w)m(aits)g(for)f(all)h(commands)f(in)g(the)h(pip)
+s(eline)f(to)h(complete.)275 3644 y(Eac)m(h)d(command)g(in)f(a)i(m)m
+(ulti-command)f(pip)s(eline,)h(where)e(pip)s(es)g(are)h(created,)i(is)e
+(executed)h(in)f(its)150 3753 y(o)m(wn)h Fr(subshell)p
+Fu(,)f(whic)m(h)h(is)g(a)g(separate)h(pro)s(cess)e(\(see)i(Section)g
+(3.7.3)g([Command)f(Execution)g(En)m(viron-)150 3863
+y(men)m(t],)d(page)e(43\).)40 b(If)23 b(the)h Ft(lastpipe)d
+Fu(option)j(is)g(enabled)g(using)f(the)h Ft(shopt)e Fu(builtin)h(\(see)
+i(Section)f(4.3.2)150 3973 y([The)i(Shopt)f(Builtin],)i(page)g(71\),)h
+(the)e(last)h(elemen)m(t)g(of)f(a)g(pip)s(eline)g(ma)m(y)g(b)s(e)f(run)
+g(b)m(y)g(the)h(shell)g(pro)s(cess)150 4082 y(when)j(job)h(con)m(trol)i
+(is)f(not)f(activ)m(e.)275 4222 y(The)24 b(exit)i(status)f(of)h(a)f
+(pip)s(eline)g(is)g(the)g(exit)h(status)f(of)h(the)f(last)h(command)f
+(in)f(the)i(pip)s(eline,)g(unless)150 4331 y(the)31 b
+Ft(pipefail)d Fu(option)j(is)g(enabled)f(\(see)i(Section)f(4.3.1)i
+([The)d(Set)h(Builtin],)g(page)h(67\).)42 b(If)30 b Ft(pipefail)150
+4441 y Fu(is)f(enabled,)g(the)f(pip)s(eline's)g(return)g(status)h(is)f
+(the)h(v)-5 b(alue)29 b(of)f(the)h(last)g(\(righ)m(tmost\))i(command)d
+(to)h(exit)150 4550 y(with)34 b(a)h(non-zero)g(status,)i(or)d(zero)i
+(if)e(all)i(commands)e(exit)h(successfully)-8 b(.)54
+b(If)34 b(the)h(reserv)m(ed)g(w)m(ord)f(`)p Ft(!)p Fu(')150
+4660 y(precedes)e(the)f(pip)s(eline,)h(the)f(exit)i(status)f(is)f(the)h
+(logical)i(negation)f(of)e(the)h(exit)g(status)g(as)g(describ)s(ed)150
+4770 y(ab)s(o)m(v)m(e.)63 b(The)38 b(shell)f(w)m(aits)i(for)e(all)i
+(commands)e(in)g(the)h(pip)s(eline)f(to)h(terminate)h(b)s(efore)e
+(returning)g(a)150 4879 y(v)-5 b(alue.)150 5083 y Fk(3.2.4)63
+b(Lists)41 b(of)h(Commands)150 5230 y Fu(A)37 b Ft(list)e
+Fu(is)i(a)g(sequence)g(of)g(one)g(or)f(more)h(pip)s(elines)f(separated)
+h(b)m(y)g(one)g(of)f(the)h(op)s(erators)g(`)p Ft(;)p
+Fu(',)i(`)p Ft(&)p Fu(',)150 5340 y(`)p Ft(&&)p Fu(',)31
+b(or)f(`)p Ft(||)p Fu(',)g(and)g(optionally)i(terminated)f(b)m(y)f(one)
+h(of)f(`)p Ft(;)p Fu(',)h(`)p Ft(&)p Fu(',)g(or)f(a)h
+Ft(newline)p Fu(.)p eop end
+%%Page: 11 17
+TeXDict begin 11 16 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(11)275 299
+y(Of)23 b(these)h(list)g(op)s(erators,)i(`)p Ft(&&)p
+Fu(')d(and)g(`)p Ft(||)p Fu(')h(ha)m(v)m(e)h(equal)f(precedence,)i
+(follo)m(w)m(ed)f(b)m(y)f(`)p Ft(;)p Fu(')g(and)f(`)p
+Ft(&)p Fu(',)i(whic)m(h)150 408 y(ha)m(v)m(e)32 b(equal)e(precedence.)
+275 536 y(A)f(sequence)h(of)g(one)g(or)g(more)g(newlines)f(ma)m(y)h
(app)s(ear)f(in)h(a)g Ft(list)e Fu(to)j(delimit)f(commands,)g(equiv-)
-150 4175 y(alen)m(t)i(to)f(a)g(semicolon.)275 4308 y(If)c(a)h(command)f
+150 646 y(alen)m(t)i(to)f(a)g(semicolon.)275 773 y(If)c(a)h(command)f
(is)h(terminated)g(b)m(y)g(the)g(con)m(trol)h(op)s(erator)f(`)p
Ft(&)p Fu(',)h(the)e(shell)h(executes)h(the)f(command)150
-4418 y(async)m(hronously)g(in)h(a)g(subshell.)39 b(This)28
+883 y(async)m(hronously)g(in)h(a)g(subshell.)39 b(This)28
b(is)h(kno)m(wn)f(as)h(executing)h(the)f(command)g(in)f(the)h
-Fr(bac)m(kground)p Fu(,)150 4527 y(and)42 b(these)i(are)f(referred)g
-(to)g(as)h Fr(async)m(hronous)i Fu(commands.)78 b(The)43
-b(shell)g(do)s(es)g(not)g(w)m(ait)h(for)f(the)150 4637
+Fr(bac)m(kground)p Fu(,)150 992 y(and)42 b(these)i(are)f(referred)g(to)
+g(as)h Fr(async)m(hronous)i Fu(commands.)78 b(The)43
+b(shell)g(do)s(es)g(not)g(w)m(ait)h(for)f(the)150 1102
y(command)34 b(to)h(\014nish,)f(and)f(the)h(return)f(status)i(is)f(0)g
(\(true\).)53 b(When)34 b(job)g(con)m(trol)h(is)f(not)h(activ)m(e)h
-(\(see)150 4746 y(Chapter)27 b(7)h([Job)f(Con)m(trol],)i(page)g(107\),)
+(\(see)150 1211 y(Chapter)27 b(7)h([Job)f(Con)m(trol],)i(page)g(113\),)
h(the)d(standard)g(input)f(for)i(async)m(hronous)f(commands,)h(in)f
-(the)150 4856 y(absence)k(of)f(an)m(y)h(explicit)h(redirections,)f(is)f
-(redirected)h(from)f Ft(/dev/null)p Fu(.)275 4988 y(Commands)19
+(the)150 1321 y(absence)k(of)f(an)m(y)h(explicit)h(redirections,)f(is)f
+(redirected)h(from)f Ft(/dev/null)p Fu(.)275 1448 y(Commands)19
b(separated)j(b)m(y)f(a)g(`)p Ft(;)p Fu(')g(are)h(executed)g(sequen)m
(tially;)k(the)21 b(shell)g(w)m(aits)h(for)f(eac)m(h)h(command)150
-5098 y(to)31 b(terminate)h(in)e(turn.)39 b(The)30 b(return)f(status)i
+1558 y(to)31 b(terminate)h(in)e(turn.)39 b(The)30 b(return)f(status)i
(is)f(the)h(exit)g(status)g(of)g(the)f(last)h(command)f(executed.)275
-5230 y Fm(and)g Fu(and)h Fm(or)g Fu(lists)h(are)g(sequences)f(of)h(one)
+1685 y Fm(and)g Fu(and)h Fm(or)g Fu(lists)h(are)g(sequences)f(of)h(one)
g(or)f(more)h(pip)s(elines)e(separated)i(b)m(y)g(the)f(con)m(trol)i(op)
-s(er-)150 5340 y(ators)e(`)p Ft(&&)p Fu(')f(and)g(`)p
+s(er-)150 1795 y(ators)e(`)p Ft(&&)p Fu(')f(and)g(`)p
Ft(||)p Fu(',)h(resp)s(ectiv)m(ely)-8 b(.)42 b Fm(and)30
b Fu(and)f Fm(or)h Fu(lists)h(are)g(executed)g(with)f(left)h(asso)s
-(ciativit)m(y)-8 b(.)p eop end
-%%Page: 10 16
-TeXDict begin 10 15 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(10)275 299
-y(An)30 b Fm(and)f Fu(list)i(has)f(the)h(form)390 433
-y Fj(command1)46 b Ft(&&)h Fj(command2)150 567 y Fr(command2)38
-b Fu(is)30 b(executed)i(if,)e(and)g(only)g(if,)h Fr(command1)38
-b Fu(returns)29 b(an)h(exit)h(status)g(of)g(zero)g(\(success\).)275
-701 y(An)f Fm(or)f Fu(list)i(has)f(the)h(form)390 835
-y Fj(command1)46 b Ft(||)h Fj(command2)150 969 y Fr(command2)38
-b Fu(is)30 b(executed)i(if,)e(and)g(only)g(if,)h Fr(command1)38
-b Fu(returns)29 b(a)i(non-zero)g(exit)g(status.)275 1103
-y(The)h(return)g(status)i(of)f Fm(and)f Fu(and)h Fm(or)f
-Fu(lists)i(is)f(the)g(exit)h(status)g(of)f(the)g(last)h(command)f
-(executed)150 1213 y(in)d(the)h(list.)150 1412 y Fk(3.2.5)63
-b(Comp)s(ound)42 b(Commands)150 1558 y Fu(Comp)s(ound)29
-b(commands)h(are)i(the)f(shell)g(programming)f(language)j(constructs.)
-42 b(Eac)m(h)32 b(construct)f(b)s(e-)150 1668 y(gins)25
-b(with)f(a)i(reserv)m(ed)f(w)m(ord)f(or)h(con)m(trol)h(op)s(erator)f
-(and)g(is)g(terminated)g(b)m(y)g(a)g(corresp)s(onding)f(reserv)m(ed)150
-1778 y(w)m(ord)i(or)g(op)s(erator.)40 b(An)m(y)26 b(redirections)g
-(\(see)i(Section)f(3.6)g([Redirections],)h(page)f(35\))h(asso)s(ciated)
-f(with)150 1887 y(a)k(comp)s(ound)f(command)h(apply)f(to)i(all)g
-(commands)f(within)f(that)i(comp)s(ound)d(command)i(unless)f(ex-)150
-1997 y(plicitly)i(o)m(v)m(erridden.)275 2131 y(In)20
-b(most)h(cases)g(a)g(list)h(of)f(commands)f(in)g(a)h(comp)s(ound)f
-(command's)g(description)h(ma)m(y)g(b)s(e)f(separated)150
-2240 y(from)30 b(the)h(rest)g(of)g(the)g(command)g(b)m(y)f(one)h(or)g
+(ciativit)m(y)-8 b(.)275 1923 y(An)30 b Fm(and)f Fu(list)i(has)f(the)h
+(form)390 2050 y Fj(command1)46 b Ft(&&)h Fj(command2)150
+2178 y Fr(command2)38 b Fu(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
+Fr(command1)38 b Fu(returns)29 b(an)h(exit)h(status)g(of)g(zero)g
+(\(success\).)275 2305 y(An)f Fm(or)f Fu(list)i(has)f(the)h(form)390
+2432 y Fj(command1)46 b Ft(||)h Fj(command2)150 2560
+y Fr(command2)38 b Fu(is)30 b(executed)i(if,)e(and)g(only)g(if,)h
+Fr(command1)38 b Fu(returns)29 b(a)i(non-zero)g(exit)g(status.)275
+2687 y(The)h(return)g(status)i(of)f Fm(and)f Fu(and)h
+Fm(or)f Fu(lists)i(is)f(the)g(exit)h(status)g(of)f(the)g(last)h
+(command)f(executed)150 2797 y(in)d(the)h(list.)150 2982
+y Fk(3.2.5)63 b(Comp)s(ound)42 b(Commands)150 3129 y
+Fu(Comp)s(ound)29 b(commands)h(are)i(the)f(shell)g(programming)f
+(language)j(constructs.)42 b(Eac)m(h)32 b(construct)f(b)s(e-)150
+3239 y(gins)25 b(with)f(a)i(reserv)m(ed)f(w)m(ord)f(or)h(con)m(trol)h
+(op)s(erator)f(and)g(is)g(terminated)g(b)m(y)g(a)g(corresp)s(onding)f
+(reserv)m(ed)150 3348 y(w)m(ord)i(or)g(op)s(erator.)40
+b(An)m(y)26 b(redirections)g(\(see)i(Section)f(3.6)g([Redirections],)h
+(page)f(38\))h(asso)s(ciated)f(with)150 3458 y(a)k(comp)s(ound)f
+(command)h(apply)f(to)i(all)g(commands)f(within)f(that)i(comp)s(ound)d
+(command)i(unless)f(ex-)150 3568 y(plicitly)i(o)m(v)m(erridden.)275
+3695 y(In)20 b(most)h(cases)g(a)g(list)h(of)f(commands)f(in)g(a)h(comp)
+s(ound)f(command's)g(description)h(ma)m(y)g(b)s(e)f(separated)150
+3805 y(from)30 b(the)h(rest)g(of)g(the)g(command)g(b)m(y)f(one)h(or)g
(more)g(newlines,)g(and)f(ma)m(y)i(b)s(e)e(follo)m(w)m(ed)i(b)m(y)f(a)g
-(newline)150 2350 y(in)f(place)h(of)g(a)g(semicolon.)275
-2484 y(Bash)45 b(pro)m(vides)h(lo)s(oping)g(constructs,)j(conditional)e
+(newline)150 3914 y(in)f(place)h(of)g(a)g(semicolon.)275
+4042 y(Bash)45 b(pro)m(vides)h(lo)s(oping)g(constructs,)j(conditional)e
(commands,)j(and)44 b(mec)m(hanisms)i(to)g(group)150
-2594 y(commands)30 b(and)g(execute)i(them)e(as)g(a)h(unit.)150
-2792 y Fk(3.2.5.1)63 b(Lo)s(oping)43 b(Constructs)150
-2939 y Fu(Bash)31 b(supp)s(orts)d(the)j(follo)m(wing)g(lo)s(oping)g
-(constructs.)275 3073 y(Note)k(that)f(wherev)m(er)g(a)g(`)p
+4151 y(commands)30 b(and)g(execute)i(them)e(as)g(a)h(unit.)150
+4336 y Fk(3.2.5.1)63 b(Lo)s(oping)43 b(Constructs)150
+4483 y Fu(Bash)31 b(supp)s(orts)d(the)j(follo)m(wing)g(lo)s(oping)g
+(constructs.)275 4611 y(Note)k(that)f(wherev)m(er)g(a)g(`)p
Ft(;)p Fu(')g(app)s(ears)f(in)h(the)g(description)g(of)g(a)g(command's)
-g(syn)m(tax,)i(it)e(ma)m(y)h(b)s(e)150 3183 y(replaced)c(with)f(one)h
-(or)f(more)g(newlines.)150 3341 y Ft(until)240 b Fu(The)30
+g(syn)m(tax,)i(it)e(ma)m(y)h(b)s(e)150 4720 y(replaced)c(with)f(one)h
+(or)f(more)g(newlines.)150 4866 y Ft(until)240 b Fu(The)30
b(syn)m(tax)h(of)f(the)h Ft(until)e Fu(command)h(is:)870
-3476 y Ft(until)46 b Fj(test-commands)p Ft(;)e(do)j Fj
-(consequent-commands)p Ft(;)c(done)630 3610 y Fu(Execute)f
+4993 y Ft(until)46 b Fj(test-commands)p Ft(;)e(do)j Fj
+(consequent-commands)p Ft(;)c(done)630 5121 y Fu(Execute)f
Fr(consequen)m(t-commands)k Fu(as)41 b(long)h(as)f Fr(test-commands)46
-b Fu(has)41 b(an)g(exit)h(status)630 3719 y(whic)m(h)c(is)h(not)g
+b Fu(has)41 b(an)g(exit)h(status)630 5230 y(whic)m(h)c(is)h(not)g
(zero.)67 b(The)38 b(return)g(status)h(is)f(the)h(exit)h(status)f(of)g
-(the)g(last)g(command)630 3829 y(executed)31 b(in)f Fr(consequen)m
-(t-commands)p Fu(,)i(or)e(zero)h(if)g(none)f(w)m(as)h(executed.)150
-3987 y Ft(while)240 b Fu(The)30 b(syn)m(tax)h(of)f(the)h
-Ft(while)e Fu(command)h(is:)870 4122 y Ft(while)46 b
-Fj(test-commands)p Ft(;)e(do)j Fj(consequent-commands)p
-Ft(;)c(done)630 4256 y Fu(Execute)f Fr(consequen)m(t-commands)k
-Fu(as)41 b(long)h(as)f Fr(test-commands)46 b Fu(has)41
-b(an)g(exit)h(status)630 4365 y(of)34 b(zero.)53 b(The)34
-b(return)f(status)h(is)h(the)f(exit)h(status)g(of)f(the)g(last)h
-(command)f(executed)h(in)630 4475 y Fr(consequen)m(t-commands)p
-Fu(,)c(or)g(zero)g(if)f(none)g(w)m(as)h(executed.)150
-4633 y Ft(for)336 b Fu(The)30 b(syn)m(tax)h(of)f(the)h
-Ft(for)e Fu(command)i(is:)870 4768 y Ft(for)47 b Fj(name)g
-Ft([)g([in)g([)p Fj(words)f Ft(...)o(])i(])f(;)h(])f(do)g
-Fj(commands)p Ft(;)e(done)630 4902 y Fu(Expand)30 b Fr(w)m(ords)k
-Fu(\(see)d(Section)h(3.5)g([Shell)f(Expansions],)g(page)g(22\),)i(and)d
-(execute)i Fr(com-)630 5011 y(mands)43 b Fu(once)e(for)g(eac)m(h)g(mem)
+(the)g(last)g(command)630 5340 y(executed)31 b(in)f Fr(consequen)m
+(t-commands)p Fu(,)i(or)e(zero)h(if)g(none)f(w)m(as)h(executed.)p
+eop end
+%%Page: 12 18
+TeXDict begin 12 17 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(12)150 299
+y Ft(while)240 b Fu(The)30 b(syn)m(tax)h(of)f(the)h Ft(while)e
+Fu(command)h(is:)870 436 y Ft(while)46 b Fj(test-commands)p
+Ft(;)e(do)j Fj(consequent-commands)p Ft(;)c(done)630
+573 y Fu(Execute)f Fr(consequen)m(t-commands)k Fu(as)41
+b(long)h(as)f Fr(test-commands)46 b Fu(has)41 b(an)g(exit)h(status)630
+683 y(of)34 b(zero.)53 b(The)34 b(return)f(status)h(is)h(the)f(exit)h
+(status)g(of)f(the)g(last)h(command)f(executed)h(in)630
+792 y Fr(consequen)m(t-commands)p Fu(,)c(or)g(zero)g(if)f(none)g(w)m
+(as)h(executed.)150 957 y Ft(for)336 b Fu(The)30 b(syn)m(tax)h(of)f
+(the)h Ft(for)e Fu(command)i(is:)870 1094 y Ft(for)47
+b Fj(name)g Ft([)g([in)g([)p Fj(words)f Ft(...)o(])i(])f(;)h(])f(do)g
+Fj(commands)p Ft(;)e(done)630 1231 y Fu(Expand)30 b Fr(w)m(ords)k
+Fu(\(see)d(Section)h(3.5)g([Shell)f(Expansions],)g(page)g(24\),)i(and)d
+(execute)i Fr(com-)630 1341 y(mands)43 b Fu(once)e(for)g(eac)m(h)g(mem)
m(b)s(er)f(in)g(the)h(resultan)m(t)g(list,)j(with)c Fr(name)46
-b Fu(b)s(ound)39 b(to)i(the)630 5121 y(curren)m(t)34
+b Fu(b)s(ound)39 b(to)i(the)630 1450 y(curren)m(t)34
b(mem)m(b)s(er.)53 b(If)35 b(`)p Ft(in)30 b Fj(words)p
Fu(')j(is)i(not)g(presen)m(t,)h(the)f Ft(for)e Fu(command)i(executes)h
-(the)630 5230 y Fr(commands)j Fu(once)e(for)f(eac)m(h)h(p)s(ositional)g
+(the)630 1560 y Fr(commands)j Fu(once)e(for)f(eac)m(h)h(p)s(ositional)g
(parameter)f(that)h(is)f(set,)i(as)e(if)g(`)p Ft(in)30
-b("$@")p Fu(')36 b(had)630 5340 y(b)s(een)30 b(sp)s(eci\014ed)f(\(see)j
-(Section)f(3.4.2)h([Sp)s(ecial)f(P)m(arameters],)h(page)f(21\).)p
-eop end
-%%Page: 11 17
-TeXDict begin 11 16 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(11)630 299
-y(The)27 b(return)f(status)h(is)g(the)h(exit)g(status)f(of)g(the)h
+b("$@")p Fu(')36 b(had)630 1670 y(b)s(een)30 b(sp)s(eci\014ed)f(\(see)j
+(Section)f(3.4.2)h([Sp)s(ecial)f(P)m(arameters],)h(page)f(23\).)630
+1807 y(The)c(return)f(status)h(is)g(the)h(exit)g(status)f(of)g(the)h
(last)g(command)e(that)i(executes.)41 b(If)27 b(there)630
-408 y(are)38 b(no)f(items)g(in)g(the)h(expansion)f(of)g
+1916 y(are)38 b(no)f(items)g(in)g(the)h(expansion)f(of)g
Fr(w)m(ords)p Fu(,)i(no)e(commands)g(are)g(executed,)j(and)d(the)630
-518 y(return)29 b(status)i(is)f(zero.)630 644 y(An)g(alternate)i(form)e
-(of)h(the)f Ft(for)g Fu(command)g(is)g(also)h(supp)s(orted:)870
-771 y Ft(for)47 b(\(\()g Fj(expr1)f Ft(;)i Fj(expr2)e
+2026 y(return)29 b(status)i(is)f(zero.)630 2163 y(An)g(alternate)i
+(form)e(of)h(the)f Ft(for)g Fu(command)g(is)g(also)h(supp)s(orted:)870
+2300 y Ft(for)47 b(\(\()g Fj(expr1)f Ft(;)i Fj(expr2)e
Ft(;)i Fj(expr3)e Ft(\)\))h(;)h(do)f Fj(commands)e Ft(;)j(done)630
-897 y Fu(First,)38 b(the)f(arithmetic)h(expression)e
+2437 y Fu(First,)38 b(the)f(arithmetic)h(expression)e
Fr(expr1)43 b Fu(is)36 b(ev)-5 b(aluated)38 b(according)f(to)g(the)g
-(rules)f(de-)630 1007 y(scrib)s(ed)41 b(b)s(elo)m(w)h(\(see)h(Section)g
-(6.5)g([Shell)g(Arithmetic],)j(page)d(93\).)77 b(The)42
-b(arithmetic)630 1116 y(expression)33 b Fr(expr2)41 b
+(rules)f(de-)630 2547 y(scrib)s(ed)41 b(b)s(elo)m(w)h(\(see)h(Section)g
+(6.5)g([Shell)g(Arithmetic],)j(page)d(98\).)77 b(The)42
+b(arithmetic)630 2656 y(expression)33 b Fr(expr2)41 b
Fu(is)34 b(then)f(ev)-5 b(aluated)35 b(rep)s(eatedly)f(un)m(til)g(it)g
-(ev)-5 b(aluates)35 b(to)g(zero.)51 b(Eac)m(h)630 1226
+(ev)-5 b(aluates)35 b(to)g(zero.)51 b(Eac)m(h)630 2766
y(time)23 b Fr(expr2)30 b Fu(ev)-5 b(aluates)25 b(to)e(a)g(non-zero)h
(v)-5 b(alue,)25 b Fr(commands)h Fu(are)d(executed)g(and)g(the)g
-(arith-)630 1335 y(metic)29 b(expression)f Fr(expr3)36
+(arith-)630 2876 y(metic)29 b(expression)f Fr(expr3)36
b Fu(is)28 b(ev)-5 b(aluated.)41 b(If)28 b(an)m(y)h(expression)f(is)g
-(omitted,)i(it)f(b)s(eha)m(v)m(es)g(as)630 1445 y(if)i(it)h(ev)-5
+(omitted,)i(it)f(b)s(eha)m(v)m(es)g(as)630 2985 y(if)i(it)h(ev)-5
b(aluates)32 b(to)g(1.)44 b(The)30 b(return)g(v)-5 b(alue)32
b(is)f(the)g(exit)h(status)g(of)f(the)g(last)h(command)f(in)630
-1555 y Fr(commands)j Fu(that)d(is)f(executed,)i(or)e(false)h(if)f(an)m
+3095 y Fr(commands)j Fu(that)d(is)f(executed,)i(or)e(false)h(if)f(an)m
(y)h(of)g(the)f(expressions)g(is)h(in)m(v)-5 b(alid.)275
-1698 y(The)26 b Ft(break)g Fu(and)h Ft(continue)e Fu(builtins)i(\(see)h
-(Section)h(4.1)f([Bourne)g(Shell)f(Builtins],)i(page)f(44\))g(ma)m(y)
-150 1807 y(b)s(e)i(used)f(to)i(con)m(trol)h(lo)s(op)f(execution.)150
-1990 y Fk(3.2.5.2)63 b(Conditional)42 b(Constructs)150
-2154 y Ft(if)384 b Fu(The)30 b(syn)m(tax)h(of)f(the)h
-Ft(if)f Fu(command)g(is:)870 2280 y Ft(if)47 b Fj(test-commands)p
-Ft(;)d(then)965 2390 y Fj(consequent-commands)p Ft(;)870
-2500 y([elif)i Fj(more-test-commands)p Ft(;)d(then)965
-2609 y Fj(more-consequents)p Ft(;])870 2719 y([else)j
-Fj(alternate-consequents)p Ft(;])870 2828 y(fi)630 2955
+3262 y(The)26 b Ft(break)g Fu(and)h Ft(continue)e Fu(builtins)i(\(see)h
+(Section)h(4.1)f([Bourne)g(Shell)f(Builtins],)i(page)f(48\))g(ma)m(y)
+150 3372 y(b)s(e)i(used)f(to)i(con)m(trol)h(lo)s(op)f(execution.)150
+3576 y Fk(3.2.5.2)63 b(Conditional)42 b(Constructs)150
+3751 y Ft(if)384 b Fu(The)30 b(syn)m(tax)h(of)f(the)h
+Ft(if)f Fu(command)g(is:)870 3888 y Ft(if)47 b Fj(test-commands)p
+Ft(;)d(then)965 3997 y Fj(consequent-commands)p Ft(;)870
+4107 y([elif)i Fj(more-test-commands)p Ft(;)d(then)965
+4217 y Fj(more-consequents)p Ft(;])870 4326 y([else)j
+Fj(alternate-consequents)p Ft(;])870 4436 y(fi)630 4573
y Fu(The)53 b Fr(test-commands)58 b Fu(list)c(is)g(executed,)60
b(and)53 b(if)g(its)h(return)e(status)i(is)f(zero,)61
-b(the)630 3064 y Fr(consequen)m(t-commands)44 b Fu(list)d(is)f
+b(the)630 4682 y Fr(consequen)m(t-commands)44 b Fu(list)d(is)f
(executed.)70 b(If)40 b Fr(test-commands)k Fu(returns)39
-b(a)h(non-zero)630 3174 y(status,)45 b(eac)m(h)e Ft(elif)d
+b(a)h(non-zero)630 4792 y(status,)45 b(eac)m(h)e Ft(elif)d
Fu(list)i(is)g(executed)h(in)e(turn,)j(and)d(if)g(its)h(exit)h(status)f
-(is)f(zero,)46 b(the)630 3284 y(corresp)s(onding)37 b
+(is)f(zero,)46 b(the)630 4902 y(corresp)s(onding)37 b
Fr(more-consequen)m(ts)42 b Fu(is)c(executed)g(and)f(the)h(command)g
-(completes.)63 b(If)630 3393 y(`)p Ft(else)29 b Fj
+(completes.)63 b(If)630 5011 y(`)p Ft(else)29 b Fj
(alternate-consequents)p Fu(')c(is)30 b(presen)m(t,)h(and)f(the)g
-(\014nal)g(command)g(in)g(the)g(\014nal)630 3503 y Ft(if)44
+(\014nal)g(command)g(in)g(the)g(\014nal)630 5121 y Ft(if)44
b Fu(or)g Ft(elif)f Fu(clause)i(has)f(a)h(non-zero)g(exit)g(status,)j
-(then)c Fr(alternate-consequen)m(ts)51 b Fu(is)630 3612
+(then)c Fr(alternate-consequen)m(ts)51 b Fu(is)630 5230
y(executed.)k(The)34 b(return)g(status)h(is)f(the)h(exit)h(status)f(of)
-g(the)g(last)g(command)g(executed,)630 3722 y(or)30 b(zero)i(if)e(no)g
-(condition)h(tested)g(true.)150 3865 y Ft(case)288 b
-Fu(The)30 b(syn)m(tax)h(of)f(the)h Ft(case)e Fu(command)h(is:)870
-3991 y Ft(case)47 b Fj(word)f Ft(in)1061 4101 y([)h([\(])g
-Fj(pattern)f Ft([|)h Fj(pattern)p Ft(]...)m(\))h Fj(command-list)c
-Ft(;;]...)870 4211 y(esac)630 4337 y(case)20 b Fu(will)i(selectiv)m
-(ely)j(execute)e(the)e Fr(command-list)k Fu(corresp)s(onding)20
-b(to)i(the)g(\014rst)f Fr(pattern)630 4446 y Fu(that)h(matc)m(hes)h
-Fr(w)m(ord)p Fu(.)38 b(The)21 b(matc)m(h)h(is)g(p)s(erformed)e
-(according)j(to)f(the)g(rules)g(describ)s(ed)e(b)s(e-)630
-4556 y(lo)m(w)25 b(in)e(Section)i(3.5.8.1)h([P)m(attern)f(Matc)m
-(hing],)i(page)e(33.)39 b(If)23 b(the)h Ft(nocasematch)d
-Fu(shell)j(op-)630 4666 y(tion)j(\(see)g(the)f(description)g(of)g
-Ft(shopt)f Fu(in)g(Section)i(4.3.2)h([The)e(Shopt)f(Builtin],)j(page)f
-(66\))630 4775 y(is)40 b(enabled,)i(the)e(matc)m(h)h(is)e(p)s(erformed)
-g(without)g(regard)h(to)h(the)f(case)g(of)g(alphab)s(etic)630
-4885 y(c)m(haracters.)48 b(The)32 b(`)p Ft(|)p Fu(')g(is)h(used)e(to)i
-(separate)h(m)m(ultiple)f(patterns,)g(and)f(the)g(`)p
-Ft(\))p Fu(')h(op)s(erator)630 4994 y(terminates)f(a)f(pattern)g(list.)
-43 b(A)31 b(list)g(of)g(patterns)g(and)f(an)h(asso)s(ciated)h
-(command-list)g(is)630 5104 y(kno)m(wn)e(as)g(a)h Fr(clause)p
-Fu(.)630 5230 y(Eac)m(h)42 b(clause)g(m)m(ust)f(b)s(e)g(terminated)h
+g(the)g(last)g(command)g(executed,)630 5340 y(or)30 b(zero)i(if)e(no)g
+(condition)h(tested)g(true.)p eop end
+%%Page: 13 19
+TeXDict begin 13 18 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(13)150 299
+y Ft(case)288 b Fu(The)30 b(syn)m(tax)h(of)f(the)h Ft(case)e
+Fu(command)h(is:)870 425 y Ft(case)47 b Fj(word)f Ft(in)1061
+535 y([)h([\(])g Fj(pattern)f Ft([|)h Fj(pattern)p Ft(]...)m(\))h
+Fj(command-list)c Ft(;;]...)870 645 y(esac)630 771 y(case)20
+b Fu(will)i(selectiv)m(ely)j(execute)e(the)e Fr(command-list)k
+Fu(corresp)s(onding)20 b(to)i(the)g(\014rst)f Fr(pattern)630
+881 y Fu(that)h(matc)m(hes)h Fr(w)m(ord)p Fu(.)38 b(The)21
+b(matc)m(h)h(is)g(p)s(erformed)e(according)j(to)f(the)g(rules)g
+(describ)s(ed)e(b)s(e-)630 990 y(lo)m(w)25 b(in)e(Section)i(3.5.8.1)h
+([P)m(attern)f(Matc)m(hing],)i(page)e(36.)39 b(If)23
+b(the)h Ft(nocasematch)d Fu(shell)j(op-)630 1100 y(tion)j(\(see)g(the)f
+(description)g(of)g Ft(shopt)f Fu(in)g(Section)i(4.3.2)h([The)e(Shopt)f
+(Builtin],)j(page)f(71\))630 1209 y(is)40 b(enabled,)i(the)e(matc)m(h)h
+(is)e(p)s(erformed)g(without)g(regard)h(to)h(the)f(case)g(of)g(alphab)s
+(etic)630 1319 y(c)m(haracters.)48 b(The)32 b(`)p Ft(|)p
+Fu(')g(is)h(used)e(to)i(separate)h(m)m(ultiple)f(patterns,)g(and)f(the)
+g(`)p Ft(\))p Fu(')h(op)s(erator)630 1428 y(terminates)f(a)f(pattern)g
+(list.)43 b(A)31 b(list)g(of)g(patterns)g(and)f(an)h(asso)s(ciated)h
+(command-list)g(is)630 1538 y(kno)m(wn)e(as)g(a)h Fr(clause)p
+Fu(.)630 1665 y(Eac)m(h)42 b(clause)g(m)m(ust)f(b)s(e)g(terminated)h
(with)e(`)p Ft(;;)p Fu(',)45 b(`)p Ft(;&)p Fu(',)f(or)d(`)p
Ft(;;&)p Fu('.)73 b(The)41 b Fr(w)m(ord)j Fu(under-)630
-5340 y(go)s(es)35 b(tilde)f(expansion,)h(parameter)g(expansion,)g
-(command)f(substitution,)h(arithmetic)p eop end
-%%Page: 12 18
-TeXDict begin 12 17 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(12)630 299
-y(expansion,)35 b(and)f(quote)g(remo)m(v)-5 b(al)36 b(\(see)f(Section)g
-(3.5.3)h([Shell)e(P)m(arameter)h(Expansion],)630 408
-y(page)22 b(25\))g(b)s(efore)f(matc)m(hing)h(is)g(attempted.)38
-b(Eac)m(h)22 b Fr(pattern)g Fu(undergo)s(es)e(tilde)i(expansion,)630
-518 y(parameter)31 b(expansion,)f(command)g(substitution,)h(and)f
-(arithmetic)h(expansion.)630 651 y(There)f(ma)m(y)g(b)s(e)f(an)h
-(arbitrary)g(n)m(um)m(b)s(er)f(of)h Ft(case)f Fu(clauses,)i(eac)m(h)g
-(terminated)g(b)m(y)e(a)i(`)p Ft(;;)p Fu(',)630 761 y(`)p
-Ft(;&)p Fu(',)c(or)e(`)p Ft(;;&)p Fu('.)39 b(The)25 b(\014rst)g
-(pattern)h(that)g(matc)m(hes)h(determines)e(the)h(command-list)g(that)
-630 870 y(is)35 b(executed.)55 b(It's)35 b(a)g(common)g(idiom)g(to)g
-(use)g(`)p Ft(*)p Fu(')g(as)g(the)g(\014nal)f(pattern)h(to)h(de\014ne)e
-(the)630 980 y(default)d(case,)g(since)g(that)g(pattern)f(will)h(alw)m
-(a)m(ys)h(matc)m(h.)630 1113 y(Here)j(is)g(an)g(example)h(using)e
+1774 y(go)s(es)35 b(tilde)f(expansion,)h(parameter)g(expansion,)g
+(command)f(substitution,)h(arithmetic)630 1884 y(expansion,)g(and)f
+(quote)g(remo)m(v)-5 b(al)36 b(\(see)f(Section)g(3.5.3)h([Shell)e(P)m
+(arameter)h(Expansion],)630 1993 y(page)i(26\))g(b)s(efore)e(matc)m
+(hing)i(is)f(attempted.)59 b(Eac)m(h)36 b Fr(pattern)g
+Fu(undergo)s(es)f(tilde)i(expan-)630 2103 y(sion,)e(parameter)g
+(expansion,)g(command)f(substitution,)h(arithmetic)h(expansion,)f(pro-)
+630 2212 y(cess)c(substitution,)f(and)g(quote)h(remo)m(v)-5
+b(al.)630 2339 y(There)30 b(ma)m(y)g(b)s(e)f(an)h(arbitrary)g(n)m(um)m
+(b)s(er)f(of)h Ft(case)f Fu(clauses,)i(eac)m(h)g(terminated)g(b)m(y)e
+(a)i(`)p Ft(;;)p Fu(',)630 2449 y(`)p Ft(;&)p Fu(',)c(or)e(`)p
+Ft(;;&)p Fu('.)39 b(The)25 b(\014rst)g(pattern)h(that)g(matc)m(hes)h
+(determines)e(the)h(command-list)g(that)630 2558 y(is)35
+b(executed.)55 b(It's)35 b(a)g(common)g(idiom)g(to)g(use)g(`)p
+Ft(*)p Fu(')g(as)g(the)g(\014nal)f(pattern)h(to)h(de\014ne)e(the)630
+2668 y(default)d(case,)g(since)g(that)g(pattern)f(will)h(alw)m(a)m(ys)h
+(matc)m(h.)630 2794 y(Here)j(is)g(an)g(example)h(using)e
Ft(case)g Fu(in)g(a)h(script)g(that)h(could)f(b)s(e)f(used)g(to)h
-(describ)s(e)g(one)630 1223 y(in)m(teresting)d(feature)f(of)f(an)g
-(animal:)870 1356 y Ft(echo)47 b(-n)g("Enter)f(the)h(name)f(of)i(an)f
-(animal:)f(")870 1465 y(read)h(ANIMAL)870 1575 y(echo)g(-n)g("The)f
-($ANIMAL)g(has)h(")870 1684 y(case)g($ANIMAL)e(in)965
-1794 y(horse)i(|)g(dog)g(|)h(cat\))e(echo)h(-n)g("four";;)965
-1904 y(man)g(|)h(kangaroo)d(\))j(echo)e(-n)i("two";;)965
-2013 y(*\))g(echo)e(-n)h("an)g(unknown)f(number)g(of";;)870
-2123 y(esac)870 2232 y(echo)h(")g(legs.")630 2389 y Fu(If)40
+(describ)s(e)g(one)630 2904 y(in)m(teresting)d(feature)f(of)f(an)g
+(animal:)870 3030 y Ft(echo)47 b(-n)g("Enter)f(the)h(name)f(of)i(an)f
+(animal:)f(")870 3140 y(read)h(ANIMAL)870 3249 y(echo)g(-n)g("The)f
+($ANIMAL)g(has)h(")870 3359 y(case)g($ANIMAL)e(in)965
+3469 y(horse)i(|)g(dog)g(|)h(cat\))e(echo)h(-n)g("four";;)965
+3578 y(man)g(|)h(kangaroo)d(\))j(echo)e(-n)i("two";;)965
+3688 y(*\))g(echo)e(-n)h("an)g(unknown)f(number)g(of";;)870
+3797 y(esac)870 3907 y(echo)h(")g(legs.")630 4050 y Fu(If)40
b(the)i(`)p Ft(;;)p Fu(')e(op)s(erator)i(is)f(used,)i(no)e(subsequen)m
-(t)f(matc)m(hes)i(are)f(attempted)h(after)g(the)630 2498
+(t)f(matc)m(hes)i(are)f(attempted)h(after)g(the)630 4160
y(\014rst)c(pattern)h(matc)m(h.)67 b(Using)39 b(`)p Ft(;&)p
Fu(')g(in)f(place)i(of)f(`)p Ft(;;)p Fu(')g(causes)g(execution)h(to)g
-(con)m(tin)m(ue)630 2608 y(with)34 b(the)g Fr(command-list)j
+(con)m(tin)m(ue)630 4269 y(with)34 b(the)g Fr(command-list)j
Fu(asso)s(ciated)f(with)e(the)h(next)f(clause,)i(if)f(an)m(y)-8
-b(.)53 b(Using)34 b(`)p Ft(;;&)p Fu(')g(in)630 2718 y(place)c(of)f(`)p
+b(.)53 b(Using)34 b(`)p Ft(;;&)p Fu(')g(in)630 4379 y(place)c(of)f(`)p
Ft(;;)p Fu(')g(causes)h(the)f(shell)h(to)g(test)g(the)f(patterns)g(in)g
(the)g(next)h(clause,)g(if)f(an)m(y)-8 b(,)31 b(and)630
-2827 y(execute)26 b(an)m(y)f(asso)s(ciated)h Fr(command-list)h
+4489 y(execute)26 b(an)m(y)f(asso)s(ciated)h Fr(command-list)h
Fu(on)e(a)f(successful)h(matc)m(h,)i(con)m(tin)m(uing)e(the)g(case)630
-2937 y(statemen)m(t)32 b(execution)g(as)e(if)h(the)f(pattern)h(list)g
-(had)f(not)g(matc)m(hed.)630 3070 y(The)c(return)f(status)h(is)g(zero)h
+4598 y(statemen)m(t)32 b(execution)g(as)e(if)h(the)f(pattern)h(list)g
+(had)f(not)g(matc)m(hed.)630 4725 y(The)c(return)f(status)h(is)g(zero)h
(if)f(no)g Fr(pattern)g Fu(is)g(matc)m(hed.)40 b(Otherwise,)27
-b(the)g(return)e(status)630 3180 y(is)30 b(the)h(exit)g(status)g(of)f
-(the)h Fr(command-list)i Fu(executed.)150 3336 y Ft(select)630
-3469 y Fu(The)g Ft(select)f Fu(construct)i(allo)m(ws)h(the)f(easy)g
+b(the)g(return)e(status)630 4834 y(is)30 b(the)h(exit)g(status)g(of)f
+(the)h Fr(command-list)i Fu(executed.)150 4977 y Ft(select)630
+5104 y Fu(The)g Ft(select)f Fu(construct)i(allo)m(ws)h(the)f(easy)g
(generation)h(of)e(men)m(us.)50 b(It)34 b(has)f(almost)i(the)630
-3579 y(same)c(syn)m(tax)g(as)f(the)h Ft(for)e Fu(command:)870
-3712 y Ft(select)46 b Fj(name)h Ft([in)g Fj(words)f Ft(...)o(];)h(do)h
-Fj(commands)p Ft(;)d(done)630 3845 y Fu(The)25 b(list)h(of)f(w)m(ords)g
-(follo)m(wing)i Ft(in)d Fu(is)h(expanded,)h(generating)h(a)e(list)h(of)
-g(items.)39 b(The)25 b(set)h(of)630 3954 y(expanded)i(w)m(ords)h(is)g
-(prin)m(ted)f(on)h(the)g(standard)f(error)h(output)f(stream,)i(eac)m(h)
-g(preceded)630 4064 y(b)m(y)21 b(a)g(n)m(um)m(b)s(er.)37
-b(If)20 b(the)i(`)p Ft(in)30 b Fj(words)p Fu(')20 b(is)h(omitted,)j
-(the)d(p)s(ositional)h(parameters)g(are)f(prin)m(ted,)630
-4174 y(as)28 b(if)f(`)p Ft(in)j("$@")p Fu(')d(had)f(b)s(een)h(sp)s
-(eci\014ed.)39 b(The)27 b Ft(PS3)g Fu(prompt)f(is)i(then)f(displa)m(y)m
-(ed)h(and)f(a)h(line)630 4283 y(is)h(read)f(from)h(the)f(standard)g
-(input.)39 b(If)29 b(the)g(line)g(consists)g(of)g(a)g(n)m(um)m(b)s(er)e
-(corresp)s(onding)630 4393 y(to)36 b(one)f(of)h(the)f(displa)m(y)m(ed)h
-(w)m(ords,)g(then)f(the)g(v)-5 b(alue)36 b(of)f Fr(name)40
-b Fu(is)35 b(set)h(to)g(that)g(w)m(ord.)54 b(If)630 4502
-y(the)37 b(line)h(is)f(empt)m(y)-8 b(,)39 b(the)e(w)m(ords)g(and)f
-(prompt)g(are)i(displa)m(y)m(ed)f(again.)62 b(If)37 b
-Ft(EOF)f Fu(is)h(read,)630 4612 y(the)c Ft(select)e Fu(command)i
-(completes.)50 b(An)m(y)33 b(other)g(v)-5 b(alue)33 b(read)g(causes)g
-Fr(name)38 b Fu(to)c(b)s(e)e(set)630 4722 y(to)f(n)m(ull.)41
-b(The)30 b(line)g(read)h(is)f(sa)m(v)m(ed)h(in)g(the)f(v)-5
-b(ariable)31 b Ft(REPLY)p Fu(.)630 4855 y(The)42 b Fr(commands)j
-Fu(are)d(executed)h(after)g(eac)m(h)g(selection)h(un)m(til)e(a)h
-Ft(break)d Fu(command)i(is)630 4964 y(executed,)32 b(at)f(whic)m(h)f(p)
-s(oin)m(t)g(the)h Ft(select)d Fu(command)i(completes.)630
-5097 y(Here)39 b(is)g(an)g(example)h(that)f(allo)m(ws)i(the)e(user)f
-(to)i(pic)m(k)f(a)g(\014lename)h(from)e(the)h(curren)m(t)630
-5207 y(directory)-8 b(,)32 b(and)d(displa)m(ys)i(the)f(name)h(and)f
-(index)f(of)i(the)g(\014le)f(selected.)870 5340 y Ft(select)46
-b(fname)g(in)i(*;)p eop end
-%%Page: 13 19
-TeXDict begin 13 18 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(13)870 299
-y Ft(do)870 408 y(echo)47 b(you)g(picked)f($fname)g(\\\($REPLY\\\))870
-518 y(break;)870 628 y(done)150 788 y(\(\(...)o(\)\))870
-923 y(\(\()h Fj(expression)e Ft(\)\))630 1058 y Fu(The)33
-b(arithmetic)i Fr(expression)f Fu(is)f(ev)-5 b(aluated)35
-b(according)g(to)f(the)g(rules)f(describ)s(ed)g(b)s(elo)m(w)630
-1167 y(\(see)j(Section)f(6.5)h([Shell)f(Arithmetic],)i(page)f(93\).)55
-b(If)34 b(the)h(v)-5 b(alue)35 b(of)g(the)g(expression)g(is)630
-1277 y(non-zero,)27 b(the)f(return)e(status)i(is)g(0;)h(otherwise)f
-(the)g(return)e(status)i(is)g(1.)39 b(This)25 b(is)g(exactly)630
-1386 y(equiv)-5 b(alen)m(t)32 b(to)870 1521 y Ft(let)47
-b(")p Fj(expression)p Ft(")630 1656 y Fu(See)25 b(Section)h(4.2)h
-([Bash)e(Builtins],)i(page)f(51,)i(for)c(a)i(full)f(description)g(of)g
-(the)h Ft(let)e Fu(builtin.)150 1816 y Ft([[...)o(]])870
-1951 y([[)47 b Fj(expression)e Ft(]])630 2086 y Fu(Return)25
-b(a)h(status)f(of)h(0)g(or)g(1)g(dep)s(ending)e(on)h(the)h(ev)-5
-b(aluation)27 b(of)e(the)h(conditional)h(expres-)630
-2196 y(sion)j Fr(expression)p Fu(.)41 b(Expressions)29
-b(are)i(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s(elo)m
-(w)h(in)630 2305 y(Section)36 b(6.4)h([Bash)f(Conditional)g
-(Expressions],)h(page)f(91.)57 b(W)-8 b(ord)36 b(splitting)h(and)e
-(\014le-)630 2415 y(name)d(expansion)g(are)h(not)g(p)s(erformed)d(on)j
-(the)f(w)m(ords)g(b)s(et)m(w)m(een)h(the)f Ft([[)g Fu(and)f
-Ft(]])p Fu(;)i(tilde)630 2524 y(expansion,)e(parameter)g(and)f(v)-5
-b(ariable)31 b(expansion,)g(arithmetic)g(expansion,)g(command)630
-2634 y(substitution,)40 b(pro)s(cess)f(substitution,)h(and)e(quote)h
-(remo)m(v)-5 b(al)40 b(are)f(p)s(erformed.)63 b(Condi-)630
-2744 y(tional)32 b(op)s(erators)e(suc)m(h)g(as)h(`)p
-Ft(-f)p Fu(')f(m)m(ust)g(b)s(e)g(unquoted)g(to)h(b)s(e)e(recognized)j
-(as)f(primaries.)630 2878 y(When)k(used)f(with)h Ft([[)p
-Fu(,)h(the)f(`)p Ft(<)p Fu(')g(and)g(`)p Ft(>)p Fu(')g(op)s(erators)g
-(sort)g(lexicographically)j(using)d(the)630 2988 y(curren)m(t)30
-b(lo)s(cale.)630 3123 y(When)22 b(the)h(`)p Ft(==)p Fu(')f(and)g(`)p
-Ft(!=)p Fu(')g(op)s(erators)h(are)g(used,)g(the)g(string)f(to)i(the)e
-(righ)m(t)h(of)g(the)g(op)s(erator)630 3232 y(is)31 b(considered)g(a)h
-(pattern)f(and)g(matc)m(hed)h(according)g(to)g(the)g(rules)f(describ)s
-(ed)f(b)s(elo)m(w)h(in)630 3342 y(Section)d(3.5.8.1)h([P)m(attern)f
-(Matc)m(hing],)h(page)f(33,)g(as)f(if)g(the)g Ft(extglob)d
-Fu(shell)j(option)g(w)m(ere)630 3452 y(enabled.)46 b(The)31
-b(`)p Ft(=)p Fu(')h(op)s(erator)h(is)f(iden)m(tical)h(to)g(`)p
-Ft(==)p Fu('.)46 b(If)31 b(the)h Ft(nocasematch)d Fu(shell)j(option)630
-3561 y(\(see)42 b(the)f(description)g(of)h Ft(shopt)d
-Fu(in)i(Section)h(4.3.2)h([The)e(Shopt)f(Builtin],)45
-b(page)d(66\))630 3671 y(is)e(enabled,)i(the)e(matc)m(h)h(is)e(p)s
-(erformed)g(without)g(regard)h(to)h(the)f(case)g(of)g(alphab)s(etic)630
-3780 y(c)m(haracters.)h(The)28 b(return)e(v)-5 b(alue)28
-b(is)g(0)g(if)g(the)g(string)g(matc)m(hes)h(\(`)p Ft(==)p
-Fu('\))f(or)g(do)s(es)f(not)h(matc)m(h)630 3890 y(\(`)p
-Ft(!=)p Fu('\))j(the)f(pattern,)h(and)e(1)i(otherwise.)41
-b(An)m(y)30 b(part)g(of)h(the)f(pattern)g(ma)m(y)h(b)s(e)f(quoted)g(to)
-630 4000 y(force)h(the)g(quoted)f(p)s(ortion)g(to)h(b)s(e)f(matc)m(hed)
-h(as)g(a)f(string.)630 4134 y(An)44 b(additional)h(binary)f(op)s
-(erator,)49 b(`)p Ft(=~)p Fu(',)f(is)c(a)m(v)-5 b(ailable,)51
-b(with)44 b(the)h(same)f(precedence)630 4244 y(as)c(`)p
-Ft(==)p Fu(')g(and)f(`)p Ft(!=)p Fu('.)69 b(When)40 b(it)g(is)g(used,)i
-(the)e(string)g(to)g(the)g(righ)m(t)h(of)f(the)g(op)s(erator)g(is)630
-4354 y(considered)23 b(a)g Fm(posix)g Fu(extended)g(regular)g
-(expression)g(and)f(matc)m(hed)i(accordingly)g(\(using)630
-4463 y(the)29 b Fm(posix)g Ft(regcomp)e Fu(and)h Ft(regexec)g
-Fu(in)m(terfaces)i(usually)f(describ)s(ed)f(in)h Fl(r)-5
-b(e)g(gex)11 b Fu(\(3\)\).)42 b(The)630 4573 y(return)20
-b(v)-5 b(alue)21 b(is)g(0)g(if)g(the)g(string)g(matc)m(hes)h(the)f
-(pattern,)j(and)c(1)h(otherwise.)38 b(If)21 b(the)g(regular)630
-4682 y(expression)k(is)h(syn)m(tactically)i(incorrect,)g(the)e
-(conditional)h(expression's)e(return)g(v)-5 b(alue)26
-b(is)630 4792 y(2.)39 b(If)24 b(the)h Ft(nocasematch)c
-Fu(shell)k(option)g(\(see)h(the)e(description)h(of)g
-Ft(shopt)e Fu(in)h(Section)h(4.3.2)630 4902 y([The)e(Shopt)g(Builtin],)
-j(page)e(66\))h(is)e(enabled,)i(the)f(matc)m(h)g(is)g(p)s(erformed)e
-(without)h(regard)630 5011 y(to)36 b(the)g(case)h(of)f(alphab)s(etic)g
-(c)m(haracters.)58 b(An)m(y)36 b(part)g(of)g(the)g(pattern)f(ma)m(y)i
-(b)s(e)e(quoted)630 5121 y(to)f(force)g(the)f(quoted)h(p)s(ortion)f(to)
-h(b)s(e)f(matc)m(hed)h(as)f(a)h(string.)50 b(Brac)m(k)m(et)35
-b(expressions)e(in)630 5230 y(regular)g(expressions)g(m)m(ust)g(b)s(e)f
-(treated)i(carefully)-8 b(,)35 b(since)e(normal)g(quoting)g(c)m
-(haracters)630 5340 y(lose)25 b(their)f(meanings)g(b)s(et)m(w)m(een)h
-(brac)m(k)m(ets.)40 b(If)23 b(the)h(pattern)h(is)f(stored)g(in)f(a)i
-(shell)f(v)-5 b(ariable,)p eop end
+5214 y(same)c(syn)m(tax)g(as)f(the)h Ft(for)e Fu(command:)870
+5340 y Ft(select)46 b Fj(name)h Ft([in)g Fj(words)f Ft(...)o(];)h(do)h
+Fj(commands)p Ft(;)d(done)p eop end
%%Page: 14 20
TeXDict begin 14 19 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(14)630 299
-y(quoting)41 b(the)f(v)-5 b(ariable)42 b(expansion)e(forces)h(the)f(en)
-m(tire)h(pattern)g(to)g(b)s(e)f(matc)m(hed)h(as)g(a)630
-408 y(string.)630 555 y(The)26 b(pattern)g(will)h(matc)m(h)g(if)f(it)h
-(matc)m(hes)h(an)m(y)e(part)h(of)f(the)h(string.)39 b(Anc)m(hor)26
-b(the)h(pattern)630 664 y(using)f(the)i(`)p Ft(^)p Fu(')f(and)f(`)p
-Ft($)p Fu(')h(regular)h(expression)e(op)s(erators)h(to)h(force)g(it)f
-(to)h(matc)m(h)g(the)f(en)m(tire)630 774 y(string.)81
-b(The)44 b(arra)m(y)g(v)-5 b(ariable)45 b Ft(BASH_REMATCH)40
-b Fu(records)k(whic)m(h)f(parts)h(of)g(the)g(string)630
-883 y(matc)m(hed)31 b(the)f(pattern.)41 b(The)30 b(elemen)m(t)i(of)e
-Ft(BASH_REMATCH)d Fu(with)j(index)g(0)g(con)m(tains)i(the)630
-993 y(p)s(ortion)20 b(of)h(the)g(string)f(matc)m(hing)i(the)f(en)m
-(tire)g(regular)g(expression.)37 b(Substrings)19 b(matc)m(hed)630
-1103 y(b)m(y)30 b(paren)m(thesized)g(sub)s(expressions)e(within)i(the)g
-(regular)g(expression)g(are)g(sa)m(v)m(ed)h(in)f(the)630
-1212 y(remaining)j Ft(BASH_REMATCH)c Fu(indices.)49 b(The)32
-b(elemen)m(t)i(of)f Ft(BASH_REMATCH)d Fu(with)i(index)g
-Fr(n)630 1322 y Fu(is)e(the)h(p)s(ortion)f(of)g(the)h(string)f(matc)m
-(hing)i(the)e Fr(n)p Fu(th)g(paren)m(thesized)h(sub)s(expression.)630
-1468 y(F)-8 b(or)34 b(example,)h(the)e(follo)m(wing)i(will)f(matc)m(h)g
-(a)g(line)f(\(stored)h(in)f(the)h(shell)f(v)-5 b(ariable)34
-b Fr(line)5 b Fu(\))630 1577 y(if)42 b(there)h(is)g(a)f(sequence)h(of)g
-(c)m(haracters)h(an)m(ywhere)e(in)g(the)h(v)-5 b(alue)43
-b(consisting)g(of)g(an)m(y)630 1687 y(n)m(um)m(b)s(er,)30
-b(including)h(zero,)h(of)f(c)m(haracters)i(in)e(the)g
-Ft(space)f Fu(c)m(haracter)i(class,)h(zero)f(or)f(one)630
-1797 y(instances)g(of)f(`)p Ft(a)p Fu(',)h(then)f(a)h(`)p
-Ft(b)p Fu(':)870 1943 y Ft([[)47 b($line)g(=~)g([[:space:]]*\(a\)?b)c
-(]])630 2089 y Fu(That)24 b(means)g(v)-5 b(alues)24 b(lik)m(e)h(`)p
-Ft(aab)p Fu(')e(and)h(`)30 b Ft(aaaaaab)p Fu(')22 b(will)i(matc)m(h,)j
-(as)d(will)g(a)g(line)g(con)m(taining)630 2198 y(a)31
-b(`)p Ft(b)p Fu(')f(an)m(ywhere)h(in)f(its)g(v)-5 b(alue.)630
-2345 y(Storing)31 b(the)g(regular)g(expression)f(in)h(a)g(shell)g(v)-5
-b(ariable)31 b(is)g(often)g(a)g(useful)f(w)m(a)m(y)i(to)f(a)m(v)m(oid)
-630 2454 y(problems)f(with)g(quoting)h(c)m(haracters)i(that)e(are)g(sp)
-s(ecial)g(to)h(the)f(shell.)41 b(It)31 b(is)g(sometimes)630
-2564 y(di\016cult)24 b(to)h(sp)s(ecify)f(a)h(regular)g(expression)f
-(literally)i(without)f(using)e(quotes,)k(or)d(to)h(k)m(eep)630
-2673 y(trac)m(k)33 b(of)g(the)f(quoting)g(used)g(b)m(y)g(regular)g
-(expressions)g(while)g(pa)m(ying)h(atten)m(tion)h(to)f(the)630
-2783 y(shell's)25 b(quote)g(remo)m(v)-5 b(al.)40 b(Using)25
-b(a)g(shell)g(v)-5 b(ariable)26 b(to)f(store)g(the)g(pattern)g
-(decreases)g(these)630 2892 y(problems.)40 b(F)-8 b(or)31
-b(example,)g(the)g(follo)m(wing)h(is)e(equiv)-5 b(alen)m(t)32
-b(to)f(the)g(ab)s(o)m(v)m(e:)870 3039 y Ft(pattern='[[:space:]]*\(a\))o
-(?b')870 3148 y([[)47 b($line)g(=~)g($pattern)e(]])630
-3294 y Fu(If)28 b(y)m(ou)h(w)m(an)m(t)g(to)g(matc)m(h)h(a)e(c)m
-(haracter)j(that's)e(sp)s(ecial)g(to)g(the)g(regular)f(expression)g
-(gram-)630 3404 y(mar,)g(it)g(has)g(to)g(b)s(e)f(quoted)h(to)g(remo)m
-(v)m(e)h(its)f(sp)s(ecial)g(meaning.)40 b(This)27 b(means)g(that)h(in)g
-(the)630 3513 y(pattern)e(`)p Ft(xxx.txt)p Fu(',)g(the)h(`)p
-Ft(.)p Fu(')f(matc)m(hes)i(an)m(y)e(c)m(haracter)i(in)e(the)h(string)f
-(\(its)h(usual)f(regular)630 3623 y(expression)g(meaning\),)i(but)e(in)
-g(the)h(pattern)f(`)p Ft("xxx.txt")p Fu(')f(it)i(can)g(only)f(matc)m(h)
-i(a)e(literal)630 3733 y(`)p Ft(.)p Fu('.)56 b(Shell)35
-b(programmers)f(should)h(tak)m(e)i(sp)s(ecial)e(care)i(with)e(bac)m
-(kslashes,)i(since)f(bac)m(k-)630 3842 y(slashes)27 b(are)g(used)f(b)s
-(oth)g(b)m(y)h(the)f(shell)h(and)f(regular)h(expressions)g(to)g(remo)m
-(v)m(e)h(the)f(sp)s(ecial)630 3952 y(meaning)h(from)f(the)h(follo)m
-(wing)i(c)m(haracter.)41 b(The)27 b(follo)m(wing)j(t)m(w)m(o)f(sets)f
-(of)g(commands)g(are)630 4061 y Fl(not)40 b Fu(equiv)-5
-b(alen)m(t:)870 4208 y Ft(pattern='\\.')870 4427 y([[)47
-b(.)h(=~)f($pattern)e(]])870 4536 y([[)i(.)h(=~)f(\\.)g(]])870
-4756 y([[)g(.)h(=~)f("$pattern")e(]])870 4865 y([[)i(.)h(=~)f('\\.')f
-(]])630 5011 y Fu(The)28 b(\014rst)h(t)m(w)m(o)h(matc)m(hes)g(will)f
-(succeed,)h(but)f(the)g(second)g(t)m(w)m(o)h(will)f(not,)h(b)s(ecause)f
-(in)g(the)630 5121 y(second)39 b(t)m(w)m(o)i(the)e(bac)m(kslash)h(will)
-f(b)s(e)g(part)g(of)g(the)h(pattern)f(to)h(b)s(e)e(matc)m(hed.)68
-b(In)39 b(the)630 5230 y(\014rst)31 b(t)m(w)m(o)h(examples,)h(the)e
-(bac)m(kslash)h(remo)m(v)m(es)h(the)f(sp)s(ecial)g(meaning)f(from)g(`)p
-Ft(.)p Fu(',)h(so)g(the)630 5340 y(literal)f(`)p Ft(.)p
-Fu(')e(matc)m(hes.)42 b(If)28 b(the)i(string)f(in)g(the)g(\014rst)g
-(examples)g(w)m(ere)h(an)m(ything)g(other)f(than)p eop
-end
+y(The)32 b(list)i(of)f(w)m(ords)f(follo)m(wing)j Ft(in)d
+Fu(is)h(expanded,)g(generating)h(a)f(list)h(of)f(items,)h(and)f(the)630
+408 y(set)41 b(of)f(expanded)f(w)m(ords)g(is)i(prin)m(ted)e(on)h(the)g
+(standard)f(error)h(output)g(stream,)j(eac)m(h)630 518
+y(preceded)31 b(b)m(y)g(a)g(n)m(um)m(b)s(er.)42 b(If)31
+b(the)g(`)p Ft(in)f Fj(words)p Fu(')g(is)i(omitted,)g(the)g(p)s
+(ositional)g(parameters)630 628 y(are)k(prin)m(ted,)h(as)e(if)h(`)p
+Ft(in)30 b("$@")p Fu(')k(had)h(b)s(een)g(sp)s(eci\014ed.)56
+b Ft(select)33 b Fu(then)j(displa)m(ys)f(the)h Ft(PS3)630
+737 y Fu(prompt)42 b(and)h(reads)f(a)i(line)f(from)g(the)g(standard)f
+(input.)78 b(If)42 b(the)i(line)f(consists)g(of)h(a)630
+847 y(n)m(um)m(b)s(er)34 b(corresp)s(onding)h(to)h(one)g(of)g(the)g
+(displa)m(y)m(ed)g(w)m(ords,)h(then)e(the)h(v)-5 b(alue)36
+b(of)g Fr(name)630 956 y Fu(is)f(set)g(to)h(that)f(w)m(ord.)54
+b(If)34 b(the)h(line)g(is)g(empt)m(y)-8 b(,)37 b(the)e(w)m(ords)f(and)g
+(prompt)g(are)h(displa)m(y)m(ed)630 1066 y(again.)40
+b(If)26 b Ft(EOF)f Fu(is)g(read,)i(the)f Ft(select)f
+Fu(command)g(completes)i(and)f(returns)e(1.)40 b(An)m(y)26
+b(other)630 1176 y(v)-5 b(alue)30 b(read)f(causes)h Fr(name)k
+Fu(to)c(b)s(e)f(set)g(to)h(n)m(ull.)41 b(The)28 b(line)i(read)f(is)g
+(sa)m(v)m(ed)i(in)e(the)g(v)-5 b(ariable)630 1285 y Ft(REPLY)p
+Fu(.)630 1420 y(The)42 b Fr(commands)j Fu(are)d(executed)h(after)g(eac)
+m(h)g(selection)h(un)m(til)e(a)h Ft(break)d Fu(command)i(is)630
+1530 y(executed,)32 b(at)f(whic)m(h)f(p)s(oin)m(t)g(the)h
+Ft(select)d Fu(command)i(completes.)630 1665 y(Here)39
+b(is)g(an)g(example)h(that)f(allo)m(ws)i(the)e(user)f(to)i(pic)m(k)f(a)
+g(\014lename)h(from)e(the)h(curren)m(t)630 1774 y(directory)-8
+b(,)32 b(and)d(displa)m(ys)i(the)f(name)h(and)f(index)f(of)i(the)g
+(\014le)f(selected.)870 1909 y Ft(select)46 b(fname)g(in)i(*;)870
+2019 y(do)870 2128 y(echo)f(you)g(picked)f($fname)g(\\\($REPLY\\\))870
+2238 y(break;)870 2347 y(done)150 2508 y(\(\(...)o(\)\))870
+2642 y(\(\()h Fj(expression)e Ft(\)\))630 2777 y Fu(The)33
+b(arithmetic)i Fr(expression)f Fu(is)f(ev)-5 b(aluated)35
+b(according)g(to)f(the)g(rules)f(describ)s(ed)g(b)s(elo)m(w)630
+2887 y(\(see)22 b(Section)f(6.5)h([Shell)f(Arithmetic],)j(page)d(98\).)
+39 b(The)20 b Fr(expression)h Fu(undergo)s(es)f(the)h(same)630
+2996 y(expansions)35 b(as)h(if)f(it)h(w)m(ere)g(within)f(double)f
+(quotes,)k(but)d(double)f(quote)i(c)m(haracters)h(in)630
+3106 y Fr(expression)29 b Fu(are)h(not)f(treated)h(sp)s(ecially)g(are)g
+(remo)m(v)m(ed.)41 b(If)29 b(the)h(v)-5 b(alue)29 b(of)h(the)f
+(expression)630 3216 y(is)h(non-zero,)i(the)e(return)f(status)i(is)g
+(0;)g(otherwise)f(the)h(return)e(status)i(is)f(1.)150
+3376 y Ft([[...)o(]])870 3511 y([[)47 b Fj(expression)e
+Ft(]])630 3646 y Fu(Return)25 b(a)h(status)f(of)h(0)g(or)g(1)g(dep)s
+(ending)e(on)h(the)h(ev)-5 b(aluation)27 b(of)e(the)h(conditional)h
+(expres-)630 3755 y(sion)j Fr(expression)p Fu(.)41 b(Expressions)29
+b(are)i(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s(elo)m
+(w)h(in)630 3865 y(Section)37 b(6.4)g([Bash)f(Conditional)h
+(Expressions],)g(page)g(96.)58 b(The)36 b(w)m(ords)f(b)s(et)m(w)m(een)i
+(the)630 3974 y Ft([[)h Fu(and)g Ft(]])g Fu(do)g(not)h(undergo)f(w)m
+(ord)g(splitting)h(and)f(\014lename)h(expansion.)65 b(The)38
+b(shell)630 4084 y(p)s(erforms)26 b(tilde)j(expansion,)f(parameter)g
+(and)g(v)-5 b(ariable)28 b(expansion,)h(arithmetic)g(expan-)630
+4194 y(sion,)j(command)g(substitution,)g(pro)s(cess)g(substitution,)g
+(and)f(quote)i(remo)m(v)-5 b(al)33 b(on)e(those)630 4303
+y(w)m(ords)k(\(the)h(expansions)g(that)g(w)m(ould)f(o)s(ccur)h(if)g
+(the)f(w)m(ords)h(w)m(ere)g(enclosed)g(in)f(double)630
+4413 y(quotes\).)41 b(Conditional)28 b(op)s(erators)g(suc)m(h)f(as)i(`)
+p Ft(-f)p Fu(')e(m)m(ust)h(b)s(e)f(unquoted)g(to)h(b)s(e)g(recognized)
+630 4522 y(as)j(primaries.)630 4657 y(When)k(used)f(with)h
+Ft([[)p Fu(,)h(the)f(`)p Ft(<)p Fu(')g(and)g(`)p Ft(>)p
+Fu(')g(op)s(erators)g(sort)g(lexicographically)j(using)d(the)630
+4767 y(curren)m(t)30 b(lo)s(cale.)630 4902 y(When)22
+b(the)h(`)p Ft(==)p Fu(')f(and)g(`)p Ft(!=)p Fu(')g(op)s(erators)h(are)
+g(used,)g(the)g(string)f(to)i(the)e(righ)m(t)h(of)g(the)g(op)s(erator)
+630 5011 y(is)31 b(considered)g(a)h(pattern)f(and)g(matc)m(hed)h
+(according)g(to)g(the)g(rules)f(describ)s(ed)f(b)s(elo)m(w)h(in)630
+5121 y(Section)d(3.5.8.1)h([P)m(attern)f(Matc)m(hing],)h(page)f(36,)g
+(as)f(if)g(the)g Ft(extglob)d Fu(shell)j(option)g(w)m(ere)630
+5230 y(enabled.)46 b(The)31 b(`)p Ft(=)p Fu(')h(op)s(erator)h(is)f
+(iden)m(tical)h(to)g(`)p Ft(==)p Fu('.)46 b(If)31 b(the)h
+Ft(nocasematch)d Fu(shell)j(option)630 5340 y(\(see)42
+b(the)f(description)g(of)h Ft(shopt)d Fu(in)i(Section)h(4.3.2)h([The)e
+(Shopt)f(Builtin],)45 b(page)d(71\))p eop end
%%Page: 15 21
TeXDict begin 15 20 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(15)630 299
-y(`)p Ft(.)p Fu(',)29 b(sa)m(y)g(`)p Ft(a)p Fu(',)g(the)f(pattern)g(w)m
-(ould)g(not)h(matc)m(h,)h(b)s(ecause)e(the)g(quoted)g(`)p
-Ft(.)p Fu(')h(in)e(the)i(pattern)630 408 y(loses)i(its)g(sp)s(ecial)g
-(meaning)f(of)h(matc)m(hing)g(an)m(y)g(single)g(c)m(haracter.)630
-542 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h
+y(is)40 b(enabled,)i(the)e(matc)m(h)h(is)e(p)s(erformed)g(without)g
+(regard)h(to)h(the)f(case)g(of)g(alphab)s(etic)630 408
+y(c)m(haracters.)h(The)28 b(return)e(v)-5 b(alue)28 b(is)g(0)g(if)g
+(the)g(string)g(matc)m(hes)h(\(`)p Ft(==)p Fu('\))f(or)g(do)s(es)f(not)
+h(matc)m(h)630 518 y(\(`)p Ft(!=)p Fu('\))j(the)g(pattern,)f(and)g(1)h
+(otherwise.)630 645 y(If)20 b(y)m(ou)h(quote)g(an)m(y)f(part)h(of)f
+(the)h(pattern,)h(using)e(an)m(y)h(of)f(the)h(shell's)g(quoting)g(mec)m
+(hanisms,)630 754 y(the)43 b(quoted)g(p)s(ortion)g(is)g(matc)m(hed)h
+(literally)-8 b(.)81 b(This)42 b(means)h(ev)m(ery)h(c)m(haracter)h(in)e
+(the)630 864 y(quoted)34 b(p)s(ortion)f(matc)m(hes)i(itself,)h(instead)
+e(of)f(ha)m(ving)i(an)m(y)f(sp)s(ecial)g(pattern)g(matc)m(hing)630
+973 y(meaning.)630 1100 y(An)f(additional)i(binary)e(op)s(erator,)i(`)p
+Ft(=~)p Fu(',)g(is)f(a)m(v)-5 b(ailable,)37 b(with)c(the)h(same)g
+(precedence)h(as)630 1209 y(`)p Ft(==)p Fu(')40 b(and)g(`)p
+Ft(!=)p Fu('.)70 b(When)40 b(y)m(ou)g(use)g(`)p Ft(=~)p
+Fu(',)j(the)d(string)h(to)f(the)h(righ)m(t)g(of)f(the)g(op)s(erator)h
+(is)630 1319 y(considered)36 b(a)g Fm(posix)f Fu(extended)g(regular)h
+(expression)g(pattern)f(and)g(matc)m(hed)i(accord-)630
+1428 y(ingly)k(\(using)f(the)h Fm(posix)f Ft(regcomp)f
+Fu(and)h Ft(regexec)e Fu(in)m(terfaces)k(usually)f(describ)s(ed)e(in)
+630 1538 y Fl(r)-5 b(e)g(gex)11 b Fu(\(3\)\).)56 b(The)34
+b(return)g(v)-5 b(alue)35 b(is)g(0)g(if)g(the)g(string)g(matc)m(hes)h
+(the)f(pattern,)h(and)e(1)i(if)e(it)630 1648 y(do)s(es)39
+b(not.)66 b(If)38 b(the)h(regular)g(expression)g(is)g(syn)m(tactically)
+i(incorrect,)i(the)c(conditional)630 1757 y(expression)e(returns)e(2.)
+61 b(If)37 b(the)g Ft(nocasematch)d Fu(shell)j(option)h(\(see)g(the)f
+(description)g(of)630 1867 y Ft(shopt)d Fu(in)h(Section)h(4.3.2)h([The)
+e(Shopt)f(Builtin],)k(page)e(71\))g(is)g(enabled,)g(the)g(matc)m(h)g
+(is)630 1976 y(p)s(erformed)29 b(without)h(regard)h(to)g(the)f(case)i
+(of)e(alphab)s(etic)h(c)m(haracters.)630 2103 y(Y)-8
+b(ou)23 b(can)g(quote)g(an)m(y)g(part)g(of)g(the)g(pattern)f(to)i
+(force)f(the)g(quoted)g(p)s(ortion)f(to)h(b)s(e)f(matc)m(hed)630
+2212 y(literally)33 b(instead)f(of)g(as)f(a)h(regular)g(expression)f
+(\(see)h(ab)s(o)m(v)m(e\).)46 b(If)31 b(the)h(pattern)f(is)h(stored)630
+2322 y(in)h(a)i(shell)f(v)-5 b(ariable,)35 b(quoting)f(the)g(v)-5
+b(ariable)35 b(expansion)e(forces)i(the)f(en)m(tire)g(pattern)g(to)630
+2432 y(b)s(e)c(matc)m(hed)h(literally)-8 b(.)630 2558
+y(The)25 b(pattern)h(will)g(matc)m(h)h(if)e(it)i(matc)m(hes)f(an)m(y)h
+(part)e(of)h(the)g(string.)39 b(If)25 b(y)m(ou)h(w)m(an)m(t)h(to)f
+(force)630 2668 y(the)j(pattern)h(to)g(matc)m(h)g(the)f(en)m(tire)h
+(string,)g(anc)m(hor)g(the)f(pattern)h(using)e(the)i(`)p
+Ft(^)p Fu(')f(and)g(`)p Ft($)p Fu(')630 2777 y(regular)i(expression)f
+(op)s(erators.)630 2904 y(F)-8 b(or)31 b(example,)g(the)f(follo)m(wing)
+h(will)f(matc)m(h)h(a)g(line)f(\(stored)g(in)g(the)g(shell)g(v)-5
+b(ariable)31 b Ft(line)p Fu(\))630 3013 y(if)42 b(there)h(is)g(a)f
+(sequence)h(of)g(c)m(haracters)h(an)m(ywhere)e(in)g(the)h(v)-5
+b(alue)43 b(consisting)g(of)g(an)m(y)630 3123 y(n)m(um)m(b)s(er,)26
+b(including)g(zero,)i(of)f(c)m(haracters)g(in)f(the)h
+Ft(space)e Fu(c)m(haracter)j(class,)g(immediately)630
+3232 y(follo)m(w)m(ed)k(b)m(y)e(zero)h(or)g(one)f(instances)h(of)g(`)p
+Ft(a)p Fu(',)g(then)f(a)h(`)p Ft(b)p Fu(':)870 3359 y
+Ft([[)47 b($line)g(=~)g([[:space:]]*\(a\)?b)c(]])630
+3485 y Fu(That)f(means)g(v)-5 b(alues)42 b(for)g Ft(line)f
+Fu(lik)m(e)i(`)p Ft(aab)p Fu(',)i(`)31 b Ft(aaaaaab)p
+Fu(',)43 b(`)p Ft(xaby)p Fu(',)i(and)c(`)31 b Ft(ab)p
+Fu(')42 b(will)g(all)630 3595 y(matc)m(h,)32 b(as)e(will)h(a)g(line)f
+(con)m(taining)i(a)f(`)p Ft(b)p Fu(')g(an)m(ywhere)f(in)g(its)h(v)-5
+b(alue.)630 3721 y(If)28 b(y)m(ou)h(w)m(an)m(t)g(to)g(matc)m(h)h(a)e(c)
+m(haracter)j(that's)e(sp)s(ecial)g(to)g(the)g(regular)f(expression)g
+(gram-)630 3831 y(mar)g(\(`)p Ft(^$|[]\(\)\\.*+?)p Fu('\),)e(it)j(has)f
+(to)h(b)s(e)e(quoted)h(to)h(remo)m(v)m(e)g(its)g(sp)s(ecial)g(meaning.)
+40 b(This)630 3941 y(means)24 b(that)h(in)f(the)h(pattern)f(`)p
+Ft(xxx.txt)p Fu(',)g(the)h(`)p Ft(.)p Fu(')f(matc)m(hes)i(an)m(y)f(c)m
+(haracter)g(in)f(the)h(string)630 4050 y(\(its)34 b(usual)f(regular)g
+(expression)g(meaning\),)i(but)e(in)g(the)g(pattern)h(`)p
+Ft("xxx.txt")p Fu(',)e(it)i(can)630 4160 y(only)c(matc)m(h)i(a)f
+(literal)g(`)p Ft(.)p Fu('.)630 4286 y(Lik)m(ewise,)i(if)f(y)m(ou)g(w)m
+(an)m(t)g(to)h(include)e(a)h(c)m(haracter)h(in)e(y)m(our)h(pattern)g
+(that)g(has)f(a)h(sp)s(ecial)630 4396 y(meaning)21 b(to)h(the)g
+(regular)f(expression)g(grammar,)i(y)m(ou)f(m)m(ust)f(mak)m(e)h(sure)e
+(it's)i(not)g(quoted.)630 4505 y(If)44 b(y)m(ou)g(w)m(an)m(t)h(to)g
+(anc)m(hor)f(a)h(pattern)f(at)h(the)f(b)s(eginning)f(or)h(end)g(of)g
+(the)g(string,)k(for)630 4615 y(instance,)e(y)m(ou)d(cannot)g(quote)g
+(the)f(`)p Ft(^)p Fu(')h(or)f(`)p Ft($)p Fu(')g(c)m(haracters)i(using)e
+(an)m(y)g(form)g(of)h(shell)630 4725 y(quoting.)630 4851
+y(If)28 b(y)m(ou)h(w)m(an)m(t)g(to)g(matc)m(h)h(`)p Ft(initial)e
+(string)p Fu(')f(at)i(the)g(start)g(of)g(a)g(line,)g(the)g(follo)m
+(wing)h(will)630 4961 y(w)m(ork:)870 5087 y Ft([[)47
+b($line)g(=~)g(^"initial)e(string")h(]])630 5214 y Fu(but)30
+b(this)g(will)h(not:)870 5340 y Ft([[)47 b($line)g(=~)g("^initial)e
+(string")h(]])p eop end
+%%Page: 16 22
+TeXDict begin 16 21 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(16)630 299
+y(b)s(ecause)42 b(in)h(the)f(second)h(example)g(the)g(`)p
+Ft(^)p Fu(')f(is)h(quoted)g(and)f(do)s(esn't)g(ha)m(v)m(e)i(its)e
+(usual)630 408 y(sp)s(ecial)31 b(meaning.)630 540 y(It)h(is)f
+(sometimes)h(di\016cult)g(to)g(sp)s(ecify)f(a)h(regular)g(expression)f
+(prop)s(erly)f(without)h(using)630 650 y(quotes,)c(or)f(to)g(k)m(eep)h
+(trac)m(k)g(of)e(the)h(quoting)g(used)f(b)m(y)h(regular)f(expressions)h
+(while)f(pa)m(ying)630 759 y(atten)m(tion)40 b(to)f(shell)f(quoting)h
+(and)e(the)h(shell's)h(quote)f(remo)m(v)-5 b(al.)65 b(Storing)38
+b(the)h(regular)630 869 y(expression)45 b(in)g(a)g(shell)h(v)-5
+b(ariable)46 b(is)f(often)g(a)h(useful)e(w)m(a)m(y)i(to)g(a)m(v)m(oid)h
+(problems)d(with)630 978 y(quoting)35 b(c)m(haracters)g(that)g(are)g
+(sp)s(ecial)g(to)g(the)f(shell.)53 b(F)-8 b(or)35 b(example,)h(the)e
+(follo)m(wing)i(is)630 1088 y(equiv)-5 b(alen)m(t)32
+b(to)f(the)f(pattern)h(used)f(ab)s(o)m(v)m(e:)870 1219
+y Ft(pattern='[[:space:]]*\(a\))o(?b')870 1329 y([[)47
+b($line)g(=~)g($pattern)e(]])630 1461 y Fu(Shell)29 b(programmers)f
+(should)f(tak)m(e)k(sp)s(ecial)e(care)g(with)g(bac)m(kslashes,)h(since)
+f(bac)m(kslashes)630 1570 y(are)22 b(used)f(b)m(y)h(b)s(oth)f(the)h
+(shell)g(and)f(regular)h(expressions)f(to)i(remo)m(v)m(e)g(the)f(sp)s
+(ecial)h(meaning)630 1680 y(from)j(the)g(follo)m(wing)i(c)m(haracter.)
+41 b(This)25 b(means)h(that)h(after)g(the)f(shell's)g(w)m(ord)g
+(expansions)630 1789 y(complete)i(\(see)f(Section)g(3.5)h([Shell)e
+(Expansions],)h(page)g(24\),)i(an)m(y)d(bac)m(kslashes)i(remain-)630
+1899 y(ing)44 b(in)f(parts)g(of)h(the)g(pattern)f(that)h(w)m(ere)g
+(originally)h(not)f(quoted)g(can)g(remo)m(v)m(e)h(the)630
+2008 y(sp)s(ecial)29 b(meaning)g(of)g(pattern)f(c)m(haracters.)42
+b(If)28 b(an)m(y)h(part)g(of)f(the)h(pattern)g(is)f(quoted,)i(the)630
+2118 y(shell)h(do)s(es)f(its)g(b)s(est)g(to)i(ensure)d(that)i(the)g
+(regular)f(expression)h(treats)g(those)g(remaining)630
+2228 y(bac)m(kslashes)g(as)g(literal,)h(if)e(they)h(app)s(eared)f(in)g
+(a)g(quoted)h(p)s(ortion.)630 2359 y(The)f(follo)m(wing)i(t)m(w)m(o)f
+(sets)g(of)g(commands)f(are)h Fl(not)39 b Fu(equiv)-5
+b(alen)m(t:)870 2491 y Ft(pattern='\\.')870 2710 y([[)47
+b(.)h(=~)f($pattern)e(]])870 2819 y([[)i(.)h(=~)f(\\.)g(]])870
+3039 y([[)g(.)h(=~)f("$pattern")e(]])870 3148 y([[)i(.)h(=~)f('\\.')f
+(]])630 3280 y Fu(The)28 b(\014rst)h(t)m(w)m(o)h(matc)m(hes)g(will)f
+(succeed,)h(but)f(the)g(second)g(t)m(w)m(o)h(will)f(not,)h(b)s(ecause)f
+(in)g(the)630 3389 y(second)e(t)m(w)m(o)i(the)e(bac)m(kslash)h(will)f
+(b)s(e)g(part)g(of)g(the)g(pattern)g(to)h(b)s(e)f(matc)m(hed.)40
+b(In)26 b(the)i(\014rst)630 3499 y(t)m(w)m(o)33 b(examples,)f(the)g
+(pattern)f(passed)g(to)h(the)g(regular)f(expression)h(parser)e(is)i(`)p
+Ft(\\.)p Fu('.)43 b(The)630 3608 y(bac)m(kslash)35 b(remo)m(v)m(es)g
+(the)g(sp)s(ecial)f(meaning)h(from)e(`)p Ft(.)p Fu(',)j(so)e(the)h
+(literal)g(`)p Ft(.)p Fu(')g(matc)m(hes.)53 b(In)630
+3718 y(the)35 b(second)h(t)m(w)m(o)g(examples,)h(the)f(pattern)f
+(passed)g(to)h(the)f(regular)h(expression)f(parser)630
+3828 y(has)26 b(the)g(bac)m(kslash)g(quoted)g(\(e.g.,)j(`)p
+Ft(\\\\\\.)p Fu('\),)e(whic)m(h)e(will)h(not)g(matc)m(h)h(the)f
+(string,)h(since)f(it)630 3937 y(do)s(es)31 b(not)g(con)m(tain)h(a)g
+(bac)m(kslash.)43 b(If)31 b(the)g(string)g(in)g(the)g(\014rst)f
+(examples)i(w)m(ere)g(an)m(ything)630 4047 y(other)f(than)f(`)p
+Ft(.)p Fu(',)h(sa)m(y)g(`)p Ft(a)p Fu(',)g(the)f(pattern)h(w)m(ould)f
+(not)h(matc)m(h,)g(b)s(ecause)g(the)f(quoted)h(`)p Ft(.)p
+Fu(')f(in)630 4156 y(the)h(pattern)f(loses)h(its)g(sp)s(ecial)g
+(meaning)g(of)f(matc)m(hing)i(an)m(y)e(single)h(c)m(haracter.)630
+4288 y(Brac)m(k)m(et)d(expressions)d(in)g(regular)h(expressions)f(can)h
+(b)s(e)e(sources)i(of)f(errors)g(as)h(w)m(ell,)i(since)630
+4398 y(c)m(haracters)43 b(that)f(are)g(normally)g(sp)s(ecial)g(in)f
+(regular)h(expressions)f(lose)i(their)e(sp)s(ecial)630
+4507 y(meanings)24 b(b)s(et)m(w)m(een)g(brac)m(k)m(ets.)40
+b(Ho)m(w)m(ev)m(er,)27 b(y)m(ou)e(can)f(use)f(brac)m(k)m(et)i
+(expressions)f(to)g(matc)m(h)630 4617 y(sp)s(ecial)31
+b(pattern)g(c)m(haracters)h(without)f(quoting)g(them,)f(so)h(they)g
+(are)g(sometimes)h(useful)630 4726 y(for)e(this)g(purp)s(ose.)630
+4858 y(Though)f(it)i(migh)m(t)g(seem)f(lik)m(e)i(a)e(strange)h(w)m(a)m
+(y)g(to)g(write)f(it,)h(the)g(follo)m(wing)g(pattern)g(will)630
+4967 y(matc)m(h)g(a)g(`)p Ft(.)p Fu(')g(in)f(the)g(string:)870
+5099 y Ft([[)47 b(.)h(=~)f([.])g(]])630 5230 y Fu(The)30
+b(shell)g(p)s(erforms)f(an)m(y)i(w)m(ord)f(expansions)g(b)s(efore)g
+(passing)g(the)g(pattern)h(to)g(the)f(reg-)630 5340 y(ular)44
+b(expression)g(functions,)k(so)d(y)m(ou)f(can)h(assume)f(that)h(the)g
+(shell's)g(quoting)f(tak)m(es)p eop end
+%%Page: 17 23
+TeXDict begin 17 22 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(17)630 299
+y(precedence.)63 b(As)37 b(noted)h(ab)s(o)m(v)m(e,)j(the)d(regular)f
+(expression)h(parser)f(will)h(in)m(terpret)g(an)m(y)630
+408 y(unquoted)30 b(bac)m(kslashes)h(remaining)g(in)g(the)g(pattern)f
+(after)i(shell)e(expansion)h(according)630 518 y(to)40
+b(its)g(o)m(wn)f(rules.)68 b(The)39 b(in)m(ten)m(tion)i(is)e(to)h(a)m
+(v)m(oid)h(making)f(shell)f(programmers)g(quote)630 628
+y(things)31 b(t)m(wice)h(as)f(m)m(uc)m(h)f(as)h(p)s(ossible,)g(so)g
+(shell)g(quoting)g(should)f(b)s(e)g(su\016cien)m(t)h(to)g(quote)630
+737 y(sp)s(ecial)g(pattern)f(c)m(haracters)i(where)e(that's)h
+(necessary)-8 b(.)630 867 y(The)39 b(arra)m(y)h(v)-5
+b(ariable)40 b Ft(BASH_REMATCH)c Fu(records)j(whic)m(h)g(parts)g(of)g
+(the)h(string)f(matc)m(hed)630 977 y(the)34 b(pattern.)51
+b(The)33 b(elemen)m(t)i(of)f Ft(BASH_REMATCH)d Fu(with)i(index)g(0)h
+(con)m(tains)h(the)f(p)s(ortion)630 1086 y(of)39 b(the)g(string)g(matc)
+m(hing)h(the)g(en)m(tire)f(regular)h(expression.)66 b(Substrings)37
+b(matc)m(hed)j(b)m(y)630 1196 y(paren)m(thesized)k(sub)s(expressions)e
+(within)i(the)g(regular)g(expression)g(are)g(sa)m(v)m(ed)h(in)f(the)630
+1306 y(remaining)33 b Ft(BASH_REMATCH)c Fu(indices.)49
+b(The)32 b(elemen)m(t)i(of)f Ft(BASH_REMATCH)d Fu(with)i(index)g
+Fr(n)630 1415 y Fu(is)e(the)h(p)s(ortion)f(of)g(the)h(string)f(matc)m
+(hing)i(the)e Fr(n)p Fu(th)g(paren)m(thesized)h(sub)s(expression.)630
+1545 y(Bash)26 b(sets)h Ft(BASH_REMATCH)c Fu(in)j(the)g(global)i(scop)s
+(e;)f(declaring)g(it)g(as)g(a)f(lo)s(cal)i(v)-5 b(ariable)27
+b(will)630 1655 y(lead)k(to)g(unexp)s(ected)f(results.)630
+1785 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h
(follo)m(wing)h(op)s(erators,)g(listed)f(in)f(decreasing)630
-651 y(order)30 b(of)g(precedence:)630 808 y Ft(\()g Fj(expression)e
-Ft(\))1110 918 y Fu(Returns)i(the)h(v)-5 b(alue)31 b(of)g
-Fr(expression)p Fu(.)42 b(This)30 b(ma)m(y)i(b)s(e)e(used)g(to)i(o)m(v)
-m(erride)g(the)1110 1027 y(normal)e(precedence)h(of)g(op)s(erators.)630
-1184 y Ft(!)f Fj(expression)1110 1293 y Fu(T)-8 b(rue)30
-b(if)g Fr(expression)g Fu(is)h(false.)630 1450 y Fj(expression1)c
-Ft(&&)j Fj(expression2)1110 1560 y Fu(T)-8 b(rue)30 b(if)g(b)s(oth)g
-Fr(expression1)38 b Fu(and)29 b Fr(expression2)38 b Fu(are)31
-b(true.)630 1716 y Fj(expression1)c Ft(||)j Fj(expression2)1110
-1826 y Fu(T)-8 b(rue)30 b(if)g(either)h Fr(expression1)38
+1895 y(order)30 b(of)g(precedence:)630 2045 y Ft(\()g
+Fj(expression)e Ft(\))1110 2155 y Fu(Returns)i(the)h(v)-5
+b(alue)31 b(of)g Fr(expression)p Fu(.)42 b(This)30 b(ma)m(y)i(b)s(e)e
+(used)g(to)i(o)m(v)m(erride)g(the)1110 2264 y(normal)e(precedence)h(of)
+g(op)s(erators.)630 2415 y Ft(!)f Fj(expression)1110
+2524 y Fu(T)-8 b(rue)30 b(if)g Fr(expression)g Fu(is)h(false.)630
+2675 y Fj(expression1)c Ft(&&)j Fj(expression2)1110 2784
+y Fu(T)-8 b(rue)30 b(if)g(b)s(oth)g Fr(expression1)38
+b Fu(and)29 b Fr(expression2)38 b Fu(are)31 b(true.)630
+2935 y Fj(expression1)c Ft(||)j Fj(expression2)1110 3045
+y Fu(T)-8 b(rue)30 b(if)g(either)h Fr(expression1)38
b Fu(or)30 b Fr(expression2)38 b Fu(is)30 b(true.)630
-1983 y(The)24 b Ft(&&)h Fu(and)f Ft(||)g Fu(op)s(erators)h(do)g(not)g
+3195 y(The)24 b Ft(&&)h Fu(and)f Ft(||)g Fu(op)s(erators)h(do)g(not)g
(ev)-5 b(aluate)27 b Fr(expression2)32 b Fu(if)25 b(the)g(v)-5
-b(alue)25 b(of)g Fr(expression1)630 2092 y Fu(is)30 b(su\016cien)m(t)h
+b(alue)25 b(of)g Fr(expression1)630 3305 y Fu(is)30 b(su\016cien)m(t)h
(to)g(determine)g(the)f(return)g(v)-5 b(alue)31 b(of)f(the)h(en)m(tire)
-g(conditional)h(expression.)150 2289 y Fk(3.2.5.3)63
-b(Grouping)43 b(Commands)150 2436 y Fu(Bash)30 b(pro)m(vides)g(t)m(w)m
+g(conditional)h(expression.)150 3495 y Fk(3.2.5.3)63
+b(Grouping)43 b(Commands)150 3642 y Fu(Bash)30 b(pro)m(vides)g(t)m(w)m
(o)h(w)m(a)m(ys)f(to)h(group)e(a)h(list)g(of)g(commands)f(to)i(b)s(e)e
-(executed)h(as)g(a)h(unit.)40 b(When)29 b(com-)150 2545
+(executed)h(as)g(a)h(unit.)40 b(When)29 b(com-)150 3752
y(mands)h(are)i(group)s(ed,)f(redirections)h(ma)m(y)g(b)s(e)e(applied)i
(to)g(the)f(en)m(tire)h(command)g(list.)44 b(F)-8 b(or)32
-b(example,)150 2655 y(the)f(output)f(of)g(all)h(the)g(commands)f(in)g
+b(example,)150 3861 y(the)f(output)f(of)g(all)h(the)g(commands)f(in)g
(the)h(list)g(ma)m(y)g(b)s(e)e(redirected)i(to)g(a)g(single)g(stream.)
-150 2812 y Ft(\(\))870 2945 y(\()47 b Fj(list)g Ft(\))630
-3078 y Fu(Placing)30 b(a)f(list)g(of)g(commands)f(b)s(et)m(w)m(een)i
-(paren)m(theses)e(causes)i(a)f(subshell)e(en)m(vironmen)m(t)630
-3188 y(to)k(b)s(e)e(created)j(\(see)f(Section)g(3.7.3)h([Command)d
-(Execution)i(En)m(vironmen)m(t],)g(page)f(40\),)630 3297
-y(and)d(eac)m(h)h(of)g(the)f(commands)g(in)g Fr(list)j
-Fu(to)f(b)s(e)d(executed)j(in)e(that)h(subshell.)38 b(Since)28
-b(the)f Fr(list)630 3407 y Fu(is)i(executed)g(in)f(a)h(subshell,)g(v)-5
-b(ariable)29 b(assignmen)m(ts)g(do)g(not)g(remain)f(in)g(e\013ect)j
-(after)e(the)630 3516 y(subshell)g(completes.)150 3673
-y Ft({})870 3806 y({)47 b Fj(list)p Ft(;)g(})630 3939
-y Fu(Placing)30 b(a)g(list)g(of)g(commands)f(b)s(et)m(w)m(een)h(curly)f
+150 4012 y Ft(\(\))870 4142 y(\()47 b Fj(list)g Ft(\))630
+4272 y Fu(Placing)42 b(a)g(list)g(of)f(commands)g(b)s(et)m(w)m(een)h
+(paren)m(theses)f(forces)h(the)f(shell)h(to)g(create)h(a)630
+4381 y(subshell)33 b(\(see)h(Section)g(3.7.3)i([Command)c(Execution)j
+(En)m(vironmen)m(t],)g(page)f(43\),)i(and)630 4491 y(eac)m(h)g(of)f
+(the)h(commands)e(in)h Fr(list)i Fu(is)e(executed)h(in)f(that)h
+(subshell)e(en)m(vironmen)m(t.)55 b(Since)630 4601 y(the)33
+b Fr(list)j Fu(is)e(executed)g(in)f(a)g(subshell,)h(v)-5
+b(ariable)34 b(assignmen)m(ts)g(do)f(not)g(remain)g(in)g(e\013ect)630
+4710 y(after)e(the)f(subshell)g(completes.)150 4861 y
+Ft({})870 4991 y({)47 b Fj(list)p Ft(;)g(})630 5121 y
+Fu(Placing)30 b(a)g(list)g(of)g(commands)f(b)s(et)m(w)m(een)h(curly)f
(braces)g(causes)h(the)f(list)h(to)g(b)s(e)f(executed)630
-4049 y(in)d(the)h(curren)m(t)g(shell)f(con)m(text.)42
+5230 y(in)d(the)h(curren)m(t)g(shell)f(con)m(text.)42
b(No)27 b(subshell)f(is)g(created.)41 b(The)26 b(semicolon)i(\(or)f
-(newline\))630 4159 y(follo)m(wing)32 b Fr(list)h Fu(is)d(required.)275
-4315 y(In)44 b(addition)h(to)h(the)f(creation)i(of)e(a)g(subshell,)j
-(there)e(is)f(a)g(subtle)g(di\013erence)h(b)s(et)m(w)m(een)f(these)150
-4425 y(t)m(w)m(o)c(constructs)e(due)g(to)g(historical)i(reasons.)67
-b(The)39 b(braces)g(are)h Ft(reserved)28 b(words)p Fu(,)40
-b(so)g(they)f(m)m(ust)150 4535 y(b)s(e)d(separated)h(from)f(the)g
-Fr(list)j Fu(b)m(y)e Ft(blank)p Fu(s)e(or)h(other)h(shell)f(metac)m
-(haracters.)62 b(The)36 b(paren)m(theses)h(are)150 4644
-y Ft(operators)p Fu(,)23 b(and)h(are)g(recognized)i(as)e(separate)i
-(tok)m(ens)f(b)m(y)f(the)g(shell)h(ev)m(en)g(if)f(they)g(are)h(not)f
-(separated)150 4754 y(from)30 b(the)g Fr(list)j Fu(b)m(y)e(whitespace.)
-275 4887 y(The)e(exit)j(status)e(of)h(b)s(oth)f(of)g(these)h
-(constructs)g(is)f(the)h(exit)g(status)f(of)h Fr(list)p
-Fu(.)150 5083 y Fk(3.2.6)63 b(Copro)s(cesses)150 5230
-y Fu(A)37 b Ft(coprocess)c Fu(is)k(a)g(shell)f(command)h(preceded)f(b)m
-(y)g(the)h Ft(coproc)d Fu(reserv)m(ed)j(w)m(ord.)59 b(A)36
-b(copro)s(cess)h(is)150 5340 y(executed)g(async)m(hronously)g(in)f(a)h
-(subshell,)g(as)g(if)g(the)f(command)h(had)f(b)s(een)f(terminated)i
-(with)g(the)p eop end
-%%Page: 16 22
-TeXDict begin 16 21 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(16)150 299
-y(`)p Ft(&)p Fu(')34 b(con)m(trol)h(op)s(erator,)g(with)f(a)g(t)m(w)m
+(newline\))630 5340 y(follo)m(wing)32 b Fr(list)h Fu(is)d(required.)p
+eop end
+%%Page: 18 24
+TeXDict begin 18 23 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(18)275 299
+y(In)44 b(addition)h(to)h(the)f(creation)i(of)e(a)g(subshell,)j(there)e
+(is)f(a)g(subtle)g(di\013erence)h(b)s(et)m(w)m(een)f(these)150
+408 y(t)m(w)m(o)f(constructs)f(due)g(to)g(historical)i(reasons.)78
+b(The)42 b(braces)i(are)f(reserv)m(ed)g(w)m(ords,)j(so)d(they)g(m)m
+(ust)150 518 y(b)s(e)36 b(separated)h(from)f(the)g Fr(list)j
+Fu(b)m(y)e Ft(blank)p Fu(s)e(or)h(other)h(shell)f(metac)m(haracters.)62
+b(The)36 b(paren)m(theses)h(are)150 628 y(op)s(erators,)29
+b(and)e(are)i(recognized)g(as)g(separate)g(tok)m(ens)g(b)m(y)f(the)g
+(shell)g(ev)m(en)h(if)f(they)h(are)f(not)g(separated)150
+737 y(from)i(the)g Fr(list)j Fu(b)m(y)e(whitespace.)275
+865 y(The)e(exit)j(status)e(of)h(b)s(oth)f(of)g(these)h(constructs)g
+(is)f(the)h(exit)g(status)f(of)h Fr(list)p Fu(.)150 1050
+y Fk(3.2.6)63 b(Copro)s(cesses)150 1197 y Fu(A)37 b Ft(coprocess)c
+Fu(is)k(a)g(shell)f(command)h(preceded)f(b)m(y)g(the)h
+Ft(coproc)d Fu(reserv)m(ed)j(w)m(ord.)59 b(A)36 b(copro)s(cess)h(is)150
+1307 y(executed)g(async)m(hronously)g(in)f(a)h(subshell,)g(as)g(if)g
+(the)f(command)h(had)f(b)s(een)f(terminated)i(with)g(the)150
+1416 y(`)p Ft(&)p Fu(')d(con)m(trol)h(op)s(erator,)g(with)f(a)g(t)m(w)m
(o-w)m(a)m(y)i(pip)s(e)d(established)h(b)s(et)m(w)m(een)h(the)f
-(executing)h(shell)f(and)f(the)150 408 y(copro)s(cess.)275
-550 y(The)c(format)i(for)f(a)h(copro)s(cess)g(is:)390
-691 y Ft(coproc)46 b([)p Fj(NAME)p Ft(])g Fj(command)g
-Ft([)p Fj(redirections)p Ft(])150 833 y Fu(This)39 b(creates)j(a)e
-(copro)s(cess)h(named)f Fr(NAME)p Fu(.)70 b(If)40 b Fr(NAME)46
-b Fu(is)40 b(not)g(supplied,)i(the)e(default)h(name)f(is)150
-942 y Fr(COPR)m(OC)p Fu(.)d Fr(NAME)28 b Fu(m)m(ust)23
-b(not)g(b)s(e)e(supplied)h(if)g Fr(command)k Fu(is)d(a)g(simple)f
-(command)g(\(see)i(Section)f(3.2.2)150 1052 y([Simple)39
-b(Commands],)h(page)g(8\);)k(otherwise,)e(it)d(is)g(in)m(terpreted)h
-(as)f(the)g(\014rst)f(w)m(ord)h(of)g(the)g(simple)150
-1162 y(command.)275 1303 y(When)j(the)i(copro)s(cess)f(is)g(executed,)
-48 b(the)43 b(shell)g(creates)i(an)e(arra)m(y)g(v)-5
-b(ariable)44 b(\(see)g(Section)g(6.7)150 1413 y([Arra)m(ys],)32
-b(page)g(95\))h(named)e Ft(NAME)f Fu(in)h(the)h(con)m(text)h(of)e(the)h
-(executing)g(shell.)44 b(The)31 b(standard)f(output)150
-1522 y(of)39 b Fr(command)j Fu(is)d(connected)g(via)g(a)g(pip)s(e)f(to)
-i(a)f(\014le)f(descriptor)h(in)f(the)h(executing)h(shell,)h(and)d(that)
-150 1632 y(\014le)i(descriptor)h(is)f(assigned)h(to)g
-Ft(NAME)p Fu([0].)70 b(The)40 b(standard)f(input)h(of)g
-Fr(command)k Fu(is)c(connected)h(via)150 1741 y(a)h(pip)s(e)f(to)i(a)f
-(\014le)g(descriptor)g(in)f(the)h(executing)i(shell,)h(and)c(that)h
-(\014le)g(descriptor)g(is)g(assigned)g(to)150 1851 y
-Ft(NAME)p Fu([1].)69 b(This)39 b(pip)s(e)g(is)h(established)g(b)s
-(efore)f(an)m(y)h(redirections)h(sp)s(eci\014ed)e(b)m(y)g(the)h
-(command)g(\(see)150 1961 y(Section)45 b(3.6)h([Redirections],)k(page)
-45 b(35\).)84 b(The)44 b(\014le)h(descriptors)f(can)h(b)s(e)f(utilized)
-h(as)g(argumen)m(ts)150 2070 y(to)d(shell)g(commands)f(and)g
+(executing)h(shell)f(and)f(the)150 1526 y(copro)s(cess.)275
+1653 y(The)c(syn)m(tax)i(for)f(a)h(copro)s(cess)g(is:)390
+1781 y Ft(coproc)46 b([)p Fj(NAME)p Ft(])g Fj(command)g
+Ft([)p Fj(redirections)p Ft(])150 1909 y Fu(This)33 b(creates)i(a)f
+(copro)s(cess)g(named)f Fr(NAME)p Fu(.)51 b Fr(command)37
+b Fu(ma)m(y)d(b)s(e)f(either)h(a)g(simple)g(command)f(\(see)150
+2018 y(Section)44 b(3.2.2)i([Simple)d(Commands],)k(page)d(9\))g(or)g(a)
+g(comp)s(ound)e(command)h(\(see)i(Section)f(3.2.5)150
+2128 y([Comp)s(ound)e(Commands],)47 b(page)e(11\).)83
+b Fr(NAME)50 b Fu(is)44 b(a)g(shell)g(v)-5 b(ariable)45
+b(name.)82 b(If)44 b Fr(NAME)50 b Fu(is)44 b(not)150
+2237 y(supplied,)29 b(the)i(default)f(name)h(is)f Ft(COPROC)p
+Fu(.)275 2365 y(The)f(recommended)h(form)g(to)h(use)f(for)h(a)f(copro)s
+(cess)h(is)390 2492 y Ft(coproc)46 b Fj(NAME)h Ft({)g
+Fj(command)p Ft(;)f(})150 2620 y Fu(This)31 b(form)g(is)h(recommended)f
+(b)s(ecause)h(simple)g(commands)f(result)h(in)f(the)h(copro)s(cess)g
+(alw)m(a)m(ys)h(b)s(eing)150 2730 y(named)45 b Ft(COPROC)p
+Fu(,)i(and)e(it)h(is)f(simpler)g(to)h(use)f(and)g(more)g(complete)i
+(than)e(the)h(other)f(comp)s(ound)150 2839 y(commands.)275
+2967 y(There)29 b(are)i(other)g(forms)f(of)g(copro)s(cesses:)390
+3094 y Ft(coproc)46 b Fj(NAME)h(compound-command)390
+3204 y Ft(coproc)f Fj(compound-command)390 3313 y Ft(coproc)g
+Fj(simple-command)150 3441 y Fu(If)41 b Fr(command)46
+b Fu(is)41 b(a)i(comp)s(ound)d(command,)45 b Fr(NAME)i
+Fu(is)42 b(optional.)77 b(The)41 b(w)m(ord)g(follo)m(wing)j
+Ft(coproc)150 3551 y Fu(determines)27 b(whether)f(that)i(w)m(ord)f(is)g
+(in)m(terpreted)g(as)g(a)h(v)-5 b(ariable)28 b(name:)39
+b(it)27 b(is)g(in)m(terpreted)h(as)f Fr(NAME)150 3660
+y Fu(if)i(it)h(is)g(not)f(a)h(reserv)m(ed)f(w)m(ord)g(that)h(in)m(tro)s
+(duces)f(a)h(comp)s(ound)e(command.)40 b(If)29 b Fr(command)k
+Fu(is)c(a)h(simple)150 3770 y(command,)36 b Fr(NAME)k
+Fu(is)35 b(not)f(allo)m(w)m(ed;)39 b(this)34 b(is)h(to)g(a)m(v)m(oid)h
+(confusion)f(b)s(et)m(w)m(een)g Fr(NAME)40 b Fu(and)34
+b(the)h(\014rst)150 3879 y(w)m(ord)30 b(of)h(the)f(simple)g(command.)
+275 4007 y(When)42 b(the)i(copro)s(cess)f(is)g(executed,)48
+b(the)43 b(shell)g(creates)i(an)e(arra)m(y)g(v)-5 b(ariable)44
+b(\(see)g(Section)g(6.7)150 4117 y([Arra)m(ys],)h(page)e(100\))g(named)
+e Fr(NAME)48 b Fu(in)41 b(the)h(con)m(text)h(of)f(the)g(executing)h
+(shell.)75 b(The)41 b(standard)150 4226 y(output)32 b(of)h
+Fr(command)i Fu(is)e(connected)g(via)g(a)g(pip)s(e)f(to)h(a)g(\014le)f
+(descriptor)h(in)f(the)g(executing)i(shell,)g(and)150
+4336 y(that)d(\014le)g(descriptor)g(is)g(assigned)f(to)i
+Fr(NAME)5 b Fu([0].)43 b(The)31 b(standard)f(input)f(of)i
+Fr(command)j Fu(is)d(connected)150 4445 y(via)40 b(a)g(pip)s(e)f(to)h
+(a)g(\014le)g(descriptor)f(in)g(the)h(executing)h(shell,)h(and)d(that)h
+(\014le)g(descriptor)f(is)h(assigned)150 4555 y(to)f
+Fr(NAME)5 b Fu([1].)65 b(This)38 b(pip)s(e)f(is)h(established)g(b)s
+(efore)g(an)m(y)g(redirections)h(sp)s(eci\014ed)e(b)m(y)h(the)g
+(command)150 4664 y(\(see)33 b(Section)f(3.6)h([Redirections],)g(page)g
+(38\).)45 b(The)31 b(\014le)h(descriptors)f(can)h(b)s(e)f(utilized)i
+(as)f(argumen)m(ts)150 4774 y(to)42 b(shell)g(commands)f(and)g
(redirections)h(using)f(standard)g(w)m(ord)g(expansions.)74
-b(Other)41 b(than)g(those)150 2180 y(created)27 b(to)g(execute)g
+b(Other)41 b(than)g(those)150 4884 y(created)27 b(to)g(execute)g
(command)f(and)f(pro)s(cess)h(substitutions,)h(the)f(\014le)g
-(descriptors)g(are)g(not)h(a)m(v)-5 b(ailable)150 2289
-y(in)30 b(subshells.)275 2431 y(The)d(pro)s(cess)h(ID)h(of)f(the)h
+(descriptors)g(are)g(not)h(a)m(v)-5 b(ailable)150 4993
+y(in)30 b(subshells.)275 5121 y(The)d(pro)s(cess)h(ID)h(of)f(the)h
(shell)f(spa)m(wned)g(to)h(execute)h(the)e(copro)s(cess)h(is)f(a)m(v)-5
-b(ailable)31 b(as)d(the)h(v)-5 b(alue)29 b(of)150 2540
-y(the)k(v)-5 b(ariable)33 b Ft(NAME)p 850 2540 28 4 v
-39 w Fu(PID.)g(The)f Ft(wait)f Fu(builtin)h(command)g(ma)m(y)h(b)s(e)f
-(used)g(to)h(w)m(ait)h(for)e(the)h(copro)s(cess)150 2650
-y(to)e(terminate.)275 2791 y(Since)20 b(the)g(copro)s(cess)h(is)g
-(created)g(as)g(an)f(async)m(hronous)g(command,)i(the)f
-Ft(coproc)d Fu(command)i(alw)m(a)m(ys)150 2901 y(returns)29
-b(success.)41 b(The)30 b(return)f(status)i(of)f(a)h(copro)s(cess)g(is)f
-(the)h(exit)g(status)g(of)f Fr(command)p Fu(.)150 3107
-y Fk(3.2.7)63 b(GNU)41 b(P)m(arallel)150 3254 y Fu(There)30
-b(are)h(w)m(a)m(ys)g(to)g(run)f(commands)g(in)g(parallel)h(that)h(are)e
-(not)h(built)g(in)m(to)g(Bash.)41 b(GNU)31 b(P)m(arallel)i(is)150
-3364 y(a)e(to)s(ol)g(to)g(do)f(just)g(that.)275 3505
-y(GNU)e(P)m(arallel,)i(as)e(its)g(name)f(suggests,)j(can)d(b)s(e)g
-(used)g(to)h(build)f(and)g(run)f(commands)h(in)h(parallel.)150
-3615 y(Y)-8 b(ou)41 b(ma)m(y)g(run)e(the)h(same)h(command)f(with)g
-(di\013eren)m(t)h(argumen)m(ts,)j(whether)39 b(they)i(are)g
-(\014lenames,)150 3724 y(usernames,)27 b(hostnames,)h(or)e(lines)h
-(read)f(from)h(\014les.)39 b(GNU)27 b(P)m(arallel)i(pro)m(vides)d
-(shorthand)g(references)150 3834 y(to)38 b(man)m(y)g(of)g(the)g(most)g
-(common)g(op)s(erations)g(\(input)f(lines,)j(v)-5 b(arious)38
-b(p)s(ortions)f(of)h(the)g(input)e(line,)150 3943 y(di\013eren)m(t)f(w)
-m(a)m(ys)h(to)f(sp)s(ecify)f(the)h(input)f(source,)i(and)e(so)h(on\).)
-54 b(P)m(arallel)36 b(can)f(replace)h Ft(xargs)d Fu(or)i(feed)150
-4053 y(commands)30 b(from)g(its)h(input)e(sources)h(to)i(sev)m(eral)f
-(di\013eren)m(t)g(instances)g(of)g(Bash.)275 4194 y(F)-8
-b(or)33 b(a)g(complete)h(description,)g(refer)e(to)i(the)f(GNU)g(P)m
-(arallel)i(do)s(cumen)m(tation.)48 b(A)33 b(few)f(examples)150
-4304 y(should)d(pro)m(vide)i(a)g(brief)e(in)m(tro)s(duction)i(to)g(its)
-g(use.)275 4445 y(F)-8 b(or)37 b(example,)i(it)e(is)f(easy)h(to)g
-(replace)h Ft(xargs)d Fu(to)i(gzip)g(all)g(h)m(tml)g(\014les)f(in)h
-(the)f(curren)m(t)g(directory)150 4555 y(and)30 b(its)h(sub)s
-(directories:)390 4696 y Ft(find)47 b(.)g(-type)f(f)i(-name)e('*.html')
-g(-print)g(|)h(parallel)f(gzip)150 4838 y Fu(If)30 b(y)m(ou)h(need)f
-(to)h(protect)h(sp)s(ecial)f(c)m(haracters)g(suc)m(h)g(as)f(newlines)h
-(in)f(\014le)g(names,)h(use)f(\014nd's)f Ft(-print0)150
-4948 y Fu(option)i(and)f(parallel's)h Ft(-0)f Fu(option.)275
-5089 y(Y)-8 b(ou)34 b(can)g(use)f(P)m(arallel)j(to)e(mo)m(v)m(e)h
-(\014les)f(from)f(the)h(curren)m(t)f(directory)h(when)f(the)h(n)m(um)m
-(b)s(er)e(of)i(\014les)150 5199 y(is)c(to)s(o)i(large)f(to)g(pro)s
-(cess)f(with)g(one)h Ft(mv)f Fu(in)m(v)m(o)s(cation:)390
-5340 y Ft(printf)46 b('\045s\\n')g(*)i(|)f(parallel)f(mv)h({})g
-(destdir)p eop end
-%%Page: 17 23
-TeXDict begin 17 22 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(17)275 299
-y(As)28 b(y)m(ou)h(can)g(see,)g(the)g Fi({})g Fu(is)g(replaced)g(with)f
-(eac)m(h)i(line)f(read)f(from)g(standard)g(input.)39
-b(While)29 b(using)150 408 y Ft(ls)34 b Fu(will)i(w)m(ork)f(in)g(most)g
-(instances,)i(it)f(is)f(not)g(su\016cien)m(t)h(to)g(deal)f(with)g(all)h
-(\014lenames.)55 b Ft(printf)33 b Fu(is)j(a)150 518 y(shell)31
-b(builtin,)f(and)g(therefore)h(is)g(not)g(sub)5 b(ject)30
-b(to)h(the)g(k)m(ernel's)g(limit)g(on)g(the)g(n)m(um)m(b)s(er)e(of)i
-(argumen)m(ts)150 628 y(to)37 b(a)f(program,)h(so)g(y)m(ou)f(can)g(use)
-g(`)p Ft(*)p Fu(')g(\(but)f(see)i(b)s(elo)m(w)f(ab)s(out)g(the)g
-Ft(dotglob)e Fu(shell)i(option\).)58 b(If)36 b(y)m(ou)150
-737 y(need)30 b(to)h(accommo)s(date)h(sp)s(ecial)f(c)m(haracters)h(in)e
-(\014lenames,)h(y)m(ou)g(can)f(use)390 877 y Ft(printf)46
-b('\045s\\0')g(*)i(|)f(parallel)f(-0)h(mv)g({})g(destdir)150
-1017 y Fu(as)31 b(alluded)f(to)h(ab)s(o)m(v)m(e.)275
-1157 y(This)e(will)i(run)e(as)h(man)m(y)h Ft(mv)e Fu(commands)h(as)h
-(there)f(are)h(\014les)f(in)h(the)f(curren)m(t)g(directory)-8
-b(.)42 b(Y)-8 b(ou)31 b(can)150 1267 y(em)m(ulate)h(a)f(parallel)g
-Ft(xargs)e Fu(b)m(y)h(adding)g(the)h Ft(-X)f Fu(option:)390
-1407 y Ft(printf)46 b('\045s\\0')g(*)i(|)f(parallel)f(-0)h(-X)g(mv)g
-({})g(destdir)275 1547 y Fu(\(Y)-8 b(ou)31 b(ma)m(y)g(ha)m(v)m(e)g(to)g
-(mo)s(dify)f(the)h(pattern)f(if)g(y)m(ou)h(ha)m(v)m(e)h(the)e
-Ft(dotglob)f Fu(option)h(enabled.\))275 1687 y(GNU)h(P)m(arallel)i(can)
-e(replace)h(certain)g(common)g(idioms)f(that)g(op)s(erate)h(on)f(lines)
-g(read)g(from)f(a)i(\014le)150 1797 y(\(in)e(this)h(case,)g
-(\014lenames)g(listed)g(one)f(p)s(er)g(line\):)390 1937
-y Ft(while)46 b(IFS=)h(read)g(-r)g(x;)g(do)390 2046 y(do-something1)d
-("$x")j("config-$x")390 2156 y(do-something2)d(<)k("$x")390
-2265 y(done)f(<)g(file)g(|)g(process-output)150 2405
-y Fu(with)30 b(a)h(more)f(compact)i(syn)m(tax)f(reminiscen)m(t)g(of)g
-(lam)m(b)s(das:)390 2545 y Ft(cat)47 b(list)g(|)g(parallel)f
-("do-something1)d({})48 b(config-{})d(;)i(do-something2)e(<)i({}")g(|)
-915 2655 y(process-output)275 2795 y Fu(P)m(arallel)31
-b(pro)m(vides)e(a)h(built-in)g(mec)m(hanism)g(to)g(remo)m(v)m(e)h
-(\014lename)e(extensions,)i(whic)m(h)e(lends)g(itself)150
-2905 y(to)i(batc)m(h)g(\014le)g(transformations)f(or)g(renaming:)390
-3045 y Ft(ls)47 b(*.gz)g(|)g(parallel)f(-j+0)g("zcat)h({})g(|)g(bzip2)g
-(>{.}.bz2)e(&&)j(rm)f({}")150 3185 y Fu(This)28 b(will)i(recompress)e
-(all)i(\014les)f(in)g(the)g(curren)m(t)g(directory)g(with)g(names)g
-(ending)f(in)h(.gz)h(using)f(bzip2,)150 3294 y(running)37
-b(one)i(job)f(p)s(er)f(CPU)h(\(-j)p Ft(+)p Fu(0\))i(in)e(parallel.)66
-b(\(W)-8 b(e)40 b(use)e Ft(ls)g Fu(for)h(brevit)m(y)g(here;)j(using)c
-Ft(find)g Fu(as)150 3404 y(ab)s(o)m(v)m(e)e(is)g(more)f(robust)f(in)h
-(the)h(face)g(of)f(\014lenames)h(con)m(taining)g(unexp)s(ected)f(c)m
-(haracters.\))57 b(P)m(arallel)150 3513 y(can)31 b(tak)m(e)h(argumen)m
-(ts)e(from)g(the)h(command)f(line;)h(the)f(ab)s(o)m(v)m(e)i(can)f(also)
-g(b)s(e)f(written)g(as)390 3654 y Ft(parallel)46 b("zcat)g({})h(|)h
-(bzip2)e(>{.}.bz2)f(&&)j(rm)f({}")g(:::)g(*.gz)275 3794
-y Fu(If)24 b(a)i(command)f(generates)h(output,)g(y)m(ou)g(ma)m(y)f(w)m
-(an)m(t)h(to)g(preserv)m(e)g(the)f(input)f(order)h(in)g(the)g(output.)
-150 3903 y(F)-8 b(or)31 b(instance,)g(the)g(follo)m(wing)h(command)390
-4043 y Ft({)581 4153 y(echo)47 b(foss.org.my)d(;)581
-4262 y(echo)j(debian.org)e(;)581 4372 y(echo)i(freenetproject.org)42
-b(;)390 4482 y(})47 b(|)h(parallel)d(traceroute)150 4622
-y Fu(will)31 b(displa)m(y)f(as)h(output)f(the)g(traceroute)i(in)m(v)m
-(o)s(cation)h(that)e(\014nishes)e(\014rst.)40 b(Adding)30
-b(the)g Ft(-k)g Fu(option)390 4762 y Ft({)581 4871 y(echo)47
-b(foss.org.my)d(;)581 4981 y(echo)j(debian.org)e(;)581
-5090 y(echo)i(freenetproject.org)42 b(;)390 5200 y(})47
-b(|)h(parallel)d(-k)j(traceroute)150 5340 y Fu(will)31
-b(ensure)e(that)i(the)g(output)f(of)g Ft(traceroute)e(foss.org.my)f
-Fu(is)k(displa)m(y)m(ed)g(\014rst.)p eop end
-%%Page: 18 24
-TeXDict begin 18 23 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(18)275 299
-y(Finally)-8 b(,)31 b(P)m(arallel)h(can)e(b)s(e)f(used)g(to)i(run)d(a)i
-(sequence)h(of)f(shell)g(commands)f(in)h(parallel,)h(similar)f(to)150
-408 y(`)p Ft(cat)g(file)f(|)h(bash)p Fu('.)53 b(It)35
-b(is)g(not)g(uncommon)f(to)i(tak)m(e)g(a)f(list)h(of)f(\014lenames,)h
-(create)g(a)g(series)f(of)g(shell)150 518 y(commands)24
-b(to)h(op)s(erate)h(on)e(them,)i(and)e(feed)g(that)h(list)h(of)e
-(commands)g(to)i(a)f(shell.)39 b(P)m(arallel)26 b(can)f(sp)s(eed)150
-628 y(this)30 b(up.)40 b(Assuming)30 b(that)h Ft(file)e
-Fu(con)m(tains)i(a)g(list)g(of)g(shell)f(commands,)h(one)f(p)s(er)g
-(line,)390 772 y Ft(parallel)46 b(-j)h(10)g(<)g(file)150
-917 y Fu(will)37 b(ev)-5 b(aluate)38 b(the)f(commands)f(using)g(the)h
-(shell)g(\(since)g(no)f(explicit)i(command)e(is)h(supplied)e(as)i(an)
-150 1027 y(argumen)m(t\),)31 b(in)f(blo)s(c)m(ks)h(of)g(ten)f(shell)h
-(jobs)f(at)h(a)g(time.)150 1283 y Fs(3.3)68 b(Shell)45
-b(F)-11 b(unctions)150 1442 y Fu(Shell)35 b(functions)h(are)g(a)g(w)m
-(a)m(y)g(to)h(group)e(commands)g(for)h(later)g(execution)h(using)e(a)h
-(single)g(name)g(for)150 1552 y(the)f(group.)55 b(They)35
-b(are)g(executed)h(just)f(lik)m(e)h(a)g Ft(")p Fu(regular)p
-Ft(")f Fu(command.)54 b(When)35 b(the)h(name)f(of)g(a)h(shell)150
-1661 y(function)j(is)g(used)f(as)h(a)h(simple)f(command)g(name,)i(the)e
-(list)h(of)f(commands)g(asso)s(ciated)i(with)d(that)150
-1771 y(function)25 b(name)h(is)g(executed.)40 b(Shell)25
-b(functions)g(are)i(executed)f(in)f(the)h(curren)m(t)g(shell)g(con)m
-(text;)j(no)c(new)150 1881 y(pro)s(cess)30 b(is)g(created)i(to)f(in)m
-(terpret)g(them.)275 2025 y(F)-8 b(unctions)30 b(are)h(declared)g
-(using)f(this)g(syn)m(tax:)390 2170 y Fj(fname)46 b Ft(\(\))i
-Fj(compound-command)43 b Ft([)k Fj(redirections)e Ft(])275
-2315 y Fu(or)390 2460 y Ft(function)h Fj(fname)g Ft([\(\)])h
-Fj(compound-command)c Ft([)k Fj(redirections)e Ft(])275
-2604 y Fu(This)37 b(de\014nes)h(a)h(shell)f(function)g(named)g
-Fr(fname)p Fu(.)65 b(The)38 b(reserv)m(ed)h(w)m(ord)f
-Ft(function)e Fu(is)j(optional.)150 2714 y(If)33 b(the)g
-Ft(function)e Fu(reserv)m(ed)i(w)m(ord)g(is)g(supplied,)g(the)g(paren)m
-(theses)h(are)f(optional.)50 b(The)33 b Fr(b)s(o)s(dy)39
-b Fu(of)34 b(the)150 2824 y(function)41 b(is)h(the)g(comp)s(ound)e
-(command)h Fr(comp)s(ound-command)j Fu(\(see)e(Section)h(3.2.5)g([Comp)
-s(ound)150 2933 y(Commands],)30 b(page)h(10\).)42 b(That)30
-b(command)g(is)g(usually)h(a)f Fr(list)j Fu(enclosed)e(b)s(et)m(w)m
-(een)g Fi({)g Fu(and)f Fi(})p Fu(,)h(but)e(ma)m(y)150
-3043 y(b)s(e)39 b(an)m(y)h(comp)s(ound)e(command)i(listed)g(ab)s(o)m(v)
-m(e,)j(with)d(one)g(exception:)60 b(If)39 b(the)h Ft(function)e
-Fu(reserv)m(ed)150 3152 y(w)m(ord)g(is)g(used,)h(but)f(the)g(paren)m
-(theses)h(are)f(not)h(supplied,)g(the)f(braces)g(are)h(required.)63
-b Fr(comp)s(ound-)150 3262 y(command)37 b Fu(is)d(executed)g(whenev)m
-(er)f Fr(fname)39 b Fu(is)34 b(sp)s(eci\014ed)e(as)i(the)g(name)g(of)f
-(a)h(command.)50 b(When)34 b(the)150 3371 y(shell)e(is)f(in)g
-Fm(posix)f Fu(mo)s(de)h(\(see)i(Section)f(6.11)h([Bash)e(POSIX)g(Mo)s
-(de],)h(page)g(101\),)h Fr(fname)k Fu(m)m(ust)31 b(b)s(e)g(a)150
-3481 y(v)-5 b(alid)37 b(shell)f Fr(name)42 b Fu(and)36
-b(ma)m(y)h(not)f(b)s(e)g(the)g(same)h(as)g(one)f(of)h(the)g(sp)s(ecial)
-g(builtins)e(\(see)j(Section)f(4.4)150 3591 y([Sp)s(ecial)e(Builtins],)
-h(page)e(72\).)54 b(In)33 b(default)h(mo)s(de,)h(a)g(function)f(name)g
-(can)g(b)s(e)g(an)m(y)g(unquoted)g(shell)150 3700 y(w)m(ord)g(that)h
-(do)s(es)e(not)i(con)m(tain)g(`)p Ft($)p Fu('.)53 b(An)m(y)34
-b(redirections)h(\(see)g(Section)g(3.6)g([Redirections],)i(page)e(35\))
-150 3810 y(asso)s(ciated)30 b(with)e(the)h(shell)f(function)g(are)h(p)s
-(erformed)e(when)h(the)g(function)g(is)h(executed.)41
-b(A)28 b(function)150 3919 y(de\014nition)g(ma)m(y)h(b)s(e)f(deleted)h
-(using)f(the)h Ft(-f)e Fu(option)i(to)g(the)g Ft(unset)e
-Fu(builtin)h(\(see)h(Section)g(4.1)h([Bourne)150 4029
-y(Shell)g(Builtins],)h(page)h(44\).)275 4174 y(The)26
-b(exit)i(status)g(of)f(a)h(function)f(de\014nition)g(is)g(zero)h
-(unless)f(a)g(syn)m(tax)h(error)f(o)s(ccurs)g(or)g(a)h(readonly)150
-4283 y(function)k(with)f(the)i(same)f(name)g(already)h(exists.)46
+b(ailable)31 b(as)d(the)h(v)-5 b(alue)29 b(of)150 5230
+y(the)k(v)-5 b(ariable)33 b Fj(NAME)p Ft(_PID)p Fu(.)44
+b(The)32 b Ft(wait)g Fu(builtin)f(command)i(ma)m(y)g(b)s(e)e(used)h(to)
+h(w)m(ait)h(for)e(the)h(copro)s(cess)150 5340 y(to)e(terminate.)p
+eop end
+%%Page: 19 25
+TeXDict begin 19 24 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(19)275 299
+y(Since)20 b(the)g(copro)s(cess)h(is)g(created)g(as)g(an)f(async)m
+(hronous)g(command,)i(the)f Ft(coproc)d Fu(command)i(alw)m(a)m(ys)150
+408 y(returns)29 b(success.)41 b(The)30 b(return)f(status)i(of)f(a)h
+(copro)s(cess)g(is)f(the)h(exit)g(status)g(of)f Fr(command)p
+Fu(.)150 609 y Fk(3.2.7)63 b(GNU)41 b(P)m(arallel)150
+756 y Fu(There)30 b(are)h(w)m(a)m(ys)g(to)g(run)f(commands)g(in)g
+(parallel)h(that)h(are)e(not)h(built)g(in)m(to)g(Bash.)41
+b(GNU)31 b(P)m(arallel)i(is)150 866 y(a)e(to)s(ol)g(to)g(do)f(just)g
+(that.)275 1001 y(GNU)e(P)m(arallel,)i(as)e(its)g(name)f(suggests,)j
+(can)d(b)s(e)g(used)g(to)h(build)f(and)g(run)f(commands)h(in)h
+(parallel.)150 1111 y(Y)-8 b(ou)41 b(ma)m(y)g(run)e(the)h(same)h
+(command)f(with)g(di\013eren)m(t)h(argumen)m(ts,)j(whether)39
+b(they)i(are)g(\014lenames,)150 1221 y(usernames,)27
+b(hostnames,)h(or)e(lines)h(read)f(from)h(\014les.)39
+b(GNU)27 b(P)m(arallel)i(pro)m(vides)d(shorthand)g(references)150
+1330 y(to)38 b(man)m(y)g(of)g(the)g(most)g(common)g(op)s(erations)g
+(\(input)f(lines,)j(v)-5 b(arious)38 b(p)s(ortions)f(of)h(the)g(input)e
+(line,)150 1440 y(di\013eren)m(t)f(w)m(a)m(ys)h(to)f(sp)s(ecify)f(the)h
+(input)f(source,)i(and)e(so)h(on\).)54 b(P)m(arallel)36
+b(can)f(replace)h Ft(xargs)d Fu(or)i(feed)150 1549 y(commands)30
+b(from)g(its)h(input)e(sources)h(to)i(sev)m(eral)f(di\013eren)m(t)g
+(instances)g(of)g(Bash.)275 1685 y(F)-8 b(or)28 b(a)h(complete)g
+(description,)g(refer)f(to)g(the)h(GNU)f(P)m(arallel)i(do)s(cumen)m
+(tation,)g(whic)m(h)e(is)g(a)m(v)-5 b(ailable)150 1795
+y(at)31 b Ft(https://www.gnu.org/softw)o(are)o(/par)o(alle)o(l/p)o
+(aral)o(lel_)o(tut)o(oria)o(l.ht)o(ml)p Fu(.)150 2038
+y Fs(3.3)68 b(Shell)45 b(F)-11 b(unctions)150 2197 y
+Fu(Shell)35 b(functions)h(are)g(a)g(w)m(a)m(y)g(to)h(group)e(commands)g
+(for)h(later)g(execution)h(using)e(a)h(single)g(name)g(for)150
+2307 y(the)f(group.)55 b(They)35 b(are)g(executed)h(just)f(lik)m(e)h(a)
+g Ft(")p Fu(regular)p Ft(")f Fu(command.)54 b(When)35
+b(the)h(name)f(of)g(a)h(shell)150 2416 y(function)j(is)g(used)f(as)h(a)
+h(simple)f(command)g(name,)i(the)e(list)h(of)f(commands)g(asso)s
+(ciated)i(with)d(that)150 2526 y(function)25 b(name)h(is)g(executed.)40
+b(Shell)25 b(functions)g(are)i(executed)f(in)f(the)h(curren)m(t)g
+(shell)g(con)m(text;)j(no)c(new)150 2635 y(pro)s(cess)30
+b(is)g(created)i(to)f(in)m(terpret)g(them.)275 2771 y(F)-8
+b(unctions)30 b(are)h(declared)g(using)f(this)g(syn)m(tax:)390
+2907 y Fj(fname)46 b Ft(\(\))i Fj(compound-command)43
+b Ft([)k Fj(redirections)e Ft(])275 3043 y Fu(or)390
+3179 y Ft(function)h Fj(fname)g Ft([\(\)])h Fj(compound-command)c
+Ft([)k Fj(redirections)e Ft(])275 3315 y Fu(This)37 b(de\014nes)h(a)h
+(shell)f(function)g(named)g Fr(fname)p Fu(.)65 b(The)38
+b(reserv)m(ed)h(w)m(ord)f Ft(function)e Fu(is)j(optional.)150
+3424 y(If)33 b(the)g Ft(function)e Fu(reserv)m(ed)i(w)m(ord)g(is)g
+(supplied,)g(the)g(paren)m(theses)h(are)f(optional.)50
+b(The)33 b Fr(b)s(o)s(dy)39 b Fu(of)34 b(the)150 3534
+y(function)41 b(is)h(the)g(comp)s(ound)e(command)h Fr(comp)s
+(ound-command)j Fu(\(see)e(Section)h(3.2.5)g([Comp)s(ound)150
+3644 y(Commands],)30 b(page)h(11\).)42 b(That)30 b(command)g(is)g
+(usually)h(a)f Fr(list)j Fu(enclosed)e(b)s(et)m(w)m(een)g
+Fi({)g Fu(and)f Fi(})p Fu(,)h(but)e(ma)m(y)150 3753 y(b)s(e)k(an)m(y)h
+(comp)s(ound)f(command)g(listed)i(ab)s(o)m(v)m(e.)52
+b(If)33 b(the)i Ft(function)c Fu(reserv)m(ed)j(w)m(ord)g(is)f(used,)i
+(but)e(the)150 3863 y(paren)m(theses)22 b(are)g(not)f(supplied,)h(the)g
+(braces)g(are)f(recommended.)38 b Fr(comp)s(ound-command)24
+b Fu(is)d(executed)150 3972 y(whenev)m(er)29 b Fr(fname)35
+b Fu(is)29 b(sp)s(eci\014ed)g(as)g(the)h(name)f(of)h(a)f(simple)h
+(command.)40 b(When)29 b(the)h(shell)f(is)h(in)f Fm(posix)150
+4082 y Fu(mo)s(de)i(\(see)h(Section)g(6.11)h([Bash)f(POSIX)e(Mo)s(de],)
+i(page)g(106\),)i Fr(fname)i Fu(m)m(ust)31 b(b)s(e)g(a)h(v)-5
+b(alid)31 b(shell)h(name)150 4192 y(and)h(ma)m(y)h(not)f(b)s(e)g(the)h
+(same)f(as)h(one)g(of)f(the)h(sp)s(ecial)g(builtins)e(\(see)j(Section)f
+(4.4)g([Sp)s(ecial)g(Builtins],)150 4301 y(page)d(77\).)43
+b(In)29 b(default)i(mo)s(de,)g(a)f(function)h(name)f(can)h(b)s(e)f(an)m
+(y)h(unquoted)e(shell)i(w)m(ord)f(that)h(do)s(es)g(not)150
+4411 y(con)m(tain)k(`)p Ft($)p Fu('.)52 b(An)m(y)34 b(redirections)g
+(\(see)h(Section)g(3.6)g([Redirections],)h(page)f(38\))g(asso)s(ciated)
+g(with)f(the)150 4520 y(shell)g(function)f(are)h(p)s(erformed)e(when)h
+(the)g(function)h(is)f(executed.)51 b(A)34 b(function)f(de\014nition)g
+(ma)m(y)i(b)s(e)150 4630 y(deleted)i(using)e(the)i Ft(-f)e
+Fu(option)i(to)f(the)h Ft(unset)d Fu(builtin)i(\(see)h(Section)g(4.1)g
+([Bourne)f(Shell)g(Builtins],)150 4739 y(page)31 b(48\).)275
+4875 y(The)26 b(exit)i(status)g(of)f(a)h(function)f(de\014nition)g(is)g
+(zero)h(unless)f(a)g(syn)m(tax)h(error)f(o)s(ccurs)g(or)g(a)h(readonly)
+150 4985 y(function)k(with)f(the)i(same)f(name)g(already)h(exists.)46
b(When)32 b(executed,)h(the)f(exit)h(status)g(of)f(a)g(function)150
-4393 y(is)e(the)h(exit)g(status)g(of)f(the)h(last)g(command)f(executed)
-i(in)e(the)g(b)s(o)s(dy)-8 b(.)275 4538 y(Note)22 b(that)f(for)f
+5095 y(is)e(the)h(exit)g(status)g(of)f(the)h(last)g(command)f(executed)
+i(in)e(the)g(b)s(o)s(dy)-8 b(.)275 5230 y(Note)22 b(that)f(for)f
(historical)i(reasons,)h(in)e(the)g(most)g(common)g(usage)g(the)g
-(curly)f(braces)h(that)g(surround)150 4647 y(the)38 b(b)s(o)s(dy)d(of)j
+(curly)f(braces)h(that)g(surround)150 5340 y(the)38 b(b)s(o)s(dy)d(of)j
(the)f(function)g(m)m(ust)g(b)s(e)g(separated)h(from)f(the)g(b)s(o)s
-(dy)f(b)m(y)h Ft(blank)p Fu(s)f(or)h(newlines.)62 b(This)150
-4757 y(is)38 b(b)s(ecause)g(the)h(braces)f(are)h(reserv)m(ed)f(w)m
-(ords)g(and)f(are)i(only)f(recognized)i(as)e(suc)m(h)g(when)f(they)i
-(are)150 4866 y(separated)26 b(from)f(the)h(command)f(list)i(b)m(y)e
-(whitespace)h(or)g(another)g(shell)g(metac)m(haracter.)41
-b(Also,)28 b(when)150 4976 y(using)i(the)g(braces,)h(the)g
-Fr(list)i Fu(m)m(ust)d(b)s(e)g(terminated)h(b)m(y)f(a)h(semicolon,)h(a)
-e(`)p Ft(&)p Fu(',)h(or)g(a)f(newline.)275 5121 y(When)i(a)i(function)f
-(is)g(executed,)i(the)e(argumen)m(ts)h(to)g(the)f(function)g(b)s(ecome)
-g(the)h(p)s(ositional)g(pa-)150 5230 y(rameters)42 b(during)e(its)i
+(dy)f(b)m(y)h Ft(blank)p Fu(s)f(or)h(newlines.)62 b(This)p
+eop end
+%%Page: 20 26
+TeXDict begin 20 25 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(20)150 299
+y(is)38 b(b)s(ecause)g(the)h(braces)f(are)h(reserv)m(ed)f(w)m(ords)g
+(and)f(are)i(only)f(recognized)i(as)e(suc)m(h)g(when)f(they)i(are)150
+408 y(separated)26 b(from)f(the)h(command)f(list)i(b)m(y)e(whitespace)h
+(or)g(another)g(shell)g(metac)m(haracter.)41 b(Also,)28
+b(when)150 518 y(using)i(the)g(braces,)h(the)g Fr(list)i
+Fu(m)m(ust)d(b)s(e)g(terminated)h(b)m(y)f(a)h(semicolon,)h(a)e(`)p
+Ft(&)p Fu(',)h(or)g(a)f(newline.)275 669 y(When)i(a)i(function)f(is)g
+(executed,)i(the)e(argumen)m(ts)h(to)g(the)f(function)g(b)s(ecome)g
+(the)h(p)s(ositional)g(pa-)150 778 y(rameters)42 b(during)e(its)i
(execution)h(\(see)f(Section)g(3.4.1)h([P)m(ositional)h(P)m
-(arameters],)i(page)c(21\).)75 b(The)150 5340 y(sp)s(ecial)37
+(arameters],)i(page)c(23\).)75 b(The)150 888 y(sp)s(ecial)37
b(parameter)f(`)p Ft(#)p Fu(')g(that)h(expands)e(to)i(the)f(n)m(um)m(b)
-s(er)f(of)h(p)s(ositional)h(parameters)f(is)g(up)s(dated)f(to)p
-eop end
-%%Page: 19 25
-TeXDict begin 19 24 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(19)150 299
-y(re\015ect)36 b(the)f(c)m(hange.)56 b(Sp)s(ecial)35
+s(er)f(of)h(p)s(ositional)h(parameters)f(is)g(up)s(dated)f(to)150
+998 y(re\015ect)h(the)f(c)m(hange.)56 b(Sp)s(ecial)35
b(parameter)h Ft(0)f Fu(is)g(unc)m(hanged.)54 b(The)35
-b(\014rst)f(elemen)m(t)j(of)e(the)g Ft(FUNCNAME)150 408
+b(\014rst)f(elemen)m(t)j(of)e(the)g Ft(FUNCNAME)150 1107
y Fu(v)-5 b(ariable)31 b(is)g(set)f(to)i(the)e(name)h(of)f(the)h
(function)f(while)g(the)h(function)f(is)g(executing.)275
-540 y(All)25 b(other)g(asp)s(ects)g(of)g(the)g(shell)g(execution)h(en)m
-(vironmen)m(t)g(are)f(iden)m(tical)h(b)s(et)m(w)m(een)g(a)f(function)g
-(and)150 650 y(its)35 b(caller)i(with)d(these)i(exceptions:)50
+1258 y(All)25 b(other)g(asp)s(ects)g(of)g(the)g(shell)g(execution)h(en)
+m(vironmen)m(t)g(are)f(iden)m(tical)h(b)s(et)m(w)m(een)g(a)f(function)g
+(and)150 1367 y(its)35 b(caller)i(with)d(these)i(exceptions:)50
b(the)36 b Ft(DEBUG)d Fu(and)h Ft(RETURN)g Fu(traps)g(are)i(not)f
-(inherited)f(unless)h(the)150 759 y(function)26 b(has)g(b)s(een)f(giv)m
-(en)i(the)g Ft(trace)d Fu(attribute)j(using)f(the)g Ft(declare)e
-Fu(builtin)i(or)g(the)h Ft(-o)i(functrace)150 869 y Fu(option)f(has)e
-(b)s(een)h(enabled)g(with)g(the)g Ft(set)f Fu(builtin,)i(\(in)f(whic)m
-(h)f(case)j(all)f(functions)e(inherit)h(the)g Ft(DEBUG)150
-978 y Fu(and)33 b Ft(RETURN)f Fu(traps\),)j(and)e(the)h
-Ft(ERR)f Fu(trap)h(is)g(not)g(inherited)f(unless)g(the)h
-Ft(-o)c(errtrace)h Fu(shell)j(option)150 1088 y(has)h(b)s(een)f
-(enabled.)55 b(See)35 b(Section)h(4.1)g([Bourne)f(Shell)g(Builtins],)i
-(page)f(44,)i(for)c(the)i(description)f(of)150 1198 y(the)c
-Ft(trap)e Fu(builtin.)275 1329 y(The)38 b Ft(FUNCNEST)f
-Fu(v)-5 b(ariable,)42 b(if)d(set)h(to)g(a)g(n)m(umeric)f(v)-5
-b(alue)39 b(greater)h(than)f(0,)j(de\014nes)d(a)g(maxim)m(um)150
-1439 y(function)24 b(nesting)h(lev)m(el.)40 b(F)-8 b(unction)25
+(inherited)f(unless)h(the)150 1477 y(function)26 b(has)g(b)s(een)f(giv)
+m(en)i(the)g Ft(trace)d Fu(attribute)j(using)f(the)g
+Ft(declare)e Fu(builtin)i(or)g(the)h Ft(-o)i(functrace)150
+1587 y Fu(option)f(has)e(b)s(een)h(enabled)g(with)g(the)g
+Ft(set)f Fu(builtin,)i(\(in)f(whic)m(h)f(case)j(all)f(functions)e
+(inherit)h(the)g Ft(DEBUG)150 1696 y Fu(and)33 b Ft(RETURN)f
+Fu(traps\),)j(and)e(the)h Ft(ERR)f Fu(trap)h(is)g(not)g(inherited)f
+(unless)g(the)h Ft(-o)c(errtrace)h Fu(shell)j(option)150
+1806 y(has)h(b)s(een)f(enabled.)55 b(See)35 b(Section)h(4.1)g([Bourne)f
+(Shell)g(Builtins],)i(page)f(48,)i(for)c(the)i(description)f(of)150
+1915 y(the)c Ft(trap)e Fu(builtin.)275 2066 y(The)38
+b Ft(FUNCNEST)f Fu(v)-5 b(ariable,)42 b(if)d(set)h(to)g(a)g(n)m(umeric)
+f(v)-5 b(alue)39 b(greater)h(than)f(0,)j(de\014nes)d(a)g(maxim)m(um)150
+2176 y(function)24 b(nesting)h(lev)m(el.)40 b(F)-8 b(unction)25
b(in)m(v)m(o)s(cations)i(that)e(exceed)g(the)g(limit)g(cause)g(the)g
-(en)m(tire)g(command)150 1548 y(to)31 b(ab)s(ort.)275
-1680 y(If)37 b(the)g(builtin)g(command)h Ft(return)d
+(en)m(tire)g(command)150 2285 y(to)31 b(ab)s(ort.)275
+2436 y(If)37 b(the)g(builtin)g(command)h Ft(return)d
Fu(is)j(executed)g(in)g(a)g(function,)h(the)e(function)h(completes)h
-(and)150 1789 y(execution)25 b(resumes)e(with)h(the)g(next)g(command)f
+(and)150 2545 y(execution)25 b(resumes)e(with)h(the)g(next)g(command)f
(after)i(the)f(function)f(call.)40 b(An)m(y)24 b(command)f(asso)s
-(ciated)150 1899 y(with)36 b(the)h Ft(RETURN)d Fu(trap)i(is)h(executed)
+(ciated)150 2655 y(with)36 b(the)h Ft(RETURN)d Fu(trap)i(is)h(executed)
g(b)s(efore)f(execution)i(resumes.)57 b(When)37 b(a)f(function)g
-(completes,)150 2008 y(the)h(v)-5 b(alues)38 b(of)f(the)g(p)s
+(completes,)150 2765 y(the)h(v)-5 b(alues)38 b(of)f(the)g(p)s
(ositional)h(parameters)f(and)g(the)g(sp)s(ecial)h(parameter)f(`)p
-Ft(#)p Fu(')g(are)h(restored)f(to)h(the)150 2118 y(v)-5
+Ft(#)p Fu(')g(are)h(restored)f(to)h(the)150 2874 y(v)-5
b(alues)26 b(they)f(had)g(prior)f(to)i(the)g(function's)f(execution.)40
b(If)25 b(a)h(n)m(umeric)f(argumen)m(t)h(is)f(giv)m(en)h(to)g
-Ft(return)p Fu(,)150 2228 y(that)j(is)g(the)f(function's)h(return)e
+Ft(return)p Fu(,)150 2984 y(that)j(is)g(the)f(function's)h(return)e
(status;)j(otherwise)f(the)f(function's)h(return)e(status)i(is)f(the)h
-(exit)h(status)150 2337 y(of)h(the)f(last)h(command)f(executed)i(b)s
-(efore)e(the)g Ft(return)p Fu(.)275 2469 y(V)-8 b(ariables)31
-b(lo)s(cal)g(to)f(the)g(function)f(ma)m(y)i(b)s(e)e(declared)h(with)f
-(the)h Ft(local)f Fu(builtin.)40 b(These)29 b(v)-5 b(ariables)150
-2578 y(are)25 b(visible)h(only)f(to)g(the)g(function)g(and)f(the)i
-(commands)e(it)i(in)m(v)m(ok)m(es.)40 b(This)24 b(is)h(particularly)h
-(imp)s(ortan)m(t)150 2688 y(when)j(a)i(shell)g(function)f(calls)h
-(other)g(functions.)275 2819 y(Lo)s(cal)41 b(v)-5 b(ariables)42
-b Ft(")p Fu(shado)m(w)p Ft(")e Fu(v)-5 b(ariables)42
-b(with)f(the)g(same)g(name)g(declared)h(at)f(previous)g(scop)s(es.)150
-2929 y(F)-8 b(or)41 b(instance,)j(a)d(lo)s(cal)h(v)-5
+(exit)h(status)150 3093 y(of)h(the)f(last)h(command)f(executed)i(b)s
+(efore)e(the)g Ft(return)p Fu(.)275 3244 y(V)-8 b(ariables)29
+b(lo)s(cal)h(to)g(the)e(function)g(ma)m(y)i(b)s(e)e(declared)h(with)f
+(the)h Ft(local)e Fu(builtin)h(\()p Fr(lo)s(cal)i(v)-5
+b(ariables)t Fu(\).)150 3354 y(Ordinarily)d(,)35 b(v)-5
+b(ariables)35 b(and)f(their)g(v)-5 b(alues)35 b(are)g(shared)e(b)s(et)m
+(w)m(een)i(a)g(function)f(and)g(its)g(caller.)54 b(These)150
+3463 y(v)-5 b(ariables)30 b(are)f(visible)g(only)g(to)h(the)f(function)
+f(and)g(the)i(commands)e(it)h(in)m(v)m(ok)m(es.)42 b(This)28
+b(is)h(particularly)150 3573 y(imp)s(ortan)m(t)i(when)e(a)i(shell)f
+(function)g(calls)i(other)e(functions.)275 3724 y(In)j(the)h(follo)m
+(wing)i(description,)f(the)g Fr(curren)m(t)f(scop)s(e)39
+b Fu(is)34 b(a)h(curren)m(tly-)g(executing)g(function.)52
+b(Pre-)150 3833 y(vious)33 b(scop)s(es)g(consist)g(of)g(that)g
+(function's)g(caller)h(and)e(so)h(on,)h(bac)m(k)g(to)f(the)g
+Ft(")p Fu(global)p Ft(")h Fu(scop)s(e,)f(where)150 3943
+y(the)g(shell)g(is)g(not)g(executing)h(an)m(y)f(shell)g(function.)48
+b(Consequen)m(tly)-8 b(,)34 b(a)f(lo)s(cal)h(v)-5 b(ariable)34
+b(at)f(the)g(curren)m(t)150 4052 y(lo)s(cal)g(scop)s(e)f(is)f(a)h(v)-5
+b(ariable)33 b(declared)f(using)f(the)h Ft(local)e Fu(or)i
+Ft(declare)e Fu(builtins)h(in)g(the)h(function)f(that)150
+4162 y(is)f(curren)m(tly)h(executing.)275 4313 y(Lo)s(cal)41
+b(v)-5 b(ariables)42 b Ft(")p Fu(shado)m(w)p Ft(")e Fu(v)-5
+b(ariables)42 b(with)f(the)g(same)g(name)g(declared)h(at)f(previous)g
+(scop)s(es.)150 4422 y(F)-8 b(or)41 b(instance,)j(a)d(lo)s(cal)h(v)-5
b(ariable)41 b(declared)g(in)f(a)h(function)f(hides)g(a)h(global)h(v)-5
-b(ariable)41 b(of)g(the)g(same)150 3039 y(name:)59 b(references)40
+b(ariable)41 b(of)g(the)g(same)150 4532 y(name:)59 b(references)40
b(and)f(assignmen)m(ts)h(refer)f(to)i(the)f(lo)s(cal)g(v)-5
b(ariable,)43 b(lea)m(ving)f(the)d(global)i(v)-5 b(ariable)150
-3148 y(unmo)s(di\014ed.)39 b(When)30 b(the)g(function)g(returns,)g(the)
+4641 y(unmo)s(di\014ed.)39 b(When)30 b(the)g(function)g(returns,)g(the)
g(global)i(v)-5 b(ariable)31 b(is)g(once)g(again)g(visible.)275
-3280 y(The)f(shell)h(uses)g Fr(dynamic)g(scoping)39 b
+4792 y(The)f(shell)h(uses)g Fr(dynamic)g(scoping)39 b
Fu(to)32 b(con)m(trol)g(a)f(v)-5 b(ariable's)32 b(visibilit)m(y)h
-(within)d(functions.)42 b(With)150 3389 y(dynamic)31
+(within)d(functions.)42 b(With)150 4902 y(dynamic)31
b(scoping,)i(visible)e(v)-5 b(ariables)32 b(and)f(their)h(v)-5
b(alues)32 b(are)f(a)h(result)g(of)f(the)h(sequence)g(of)f(function)150
-3499 y(calls)37 b(that)g(caused)g(execution)g(to)g(reac)m(h)g(the)g
+5011 y(calls)37 b(that)g(caused)g(execution)g(to)g(reac)m(h)g(the)g
(curren)m(t)f(function.)58 b(The)36 b(v)-5 b(alue)36
-b(of)h(a)g(v)-5 b(ariable)37 b(that)g(a)150 3608 y(function)24
+b(of)h(a)g(v)-5 b(ariable)37 b(that)g(a)150 5121 y(function)24
b(sees)g(dep)s(ends)f(on)h(its)g(v)-5 b(alue)25 b(within)e(its)i
(caller,)i(if)d(an)m(y)-8 b(,)26 b(whether)e(that)g(caller)i(is)e(the)g
-Ft(")p Fu(global)p Ft(")150 3718 y Fu(scop)s(e)41 b(or)g(another)g
+Ft(")p Fu(global)p Ft(")150 5230 y Fu(scop)s(e)41 b(or)g(another)g
(shell)g(function.)73 b(This)40 b(is)h(also)h(the)f(v)-5
b(alue)41 b(that)h(a)f(lo)s(cal)i(v)-5 b(ariable)41 b(declaration)150
-3828 y Ft(")p Fu(shado)m(ws)p Ft(")p Fu(,)30 b(and)g(the)g(v)-5
-b(alue)31 b(that)g(is)f(restored)h(when)e(the)i(function)f(returns.)275
-3959 y(F)-8 b(or)41 b(example,)j(if)d(a)g(v)-5 b(ariable)41
-b Fr(v)-5 b(ar)48 b Fu(is)40 b(declared)h(as)g(lo)s(cal)h(in)f
-(function)f Fr(func1)p Fu(,)j(and)d Fr(func1)48 b Fu(calls)150
-4069 y(another)33 b(function)g Fr(func2)p Fu(,)g(references)g(to)h
-Fr(v)-5 b(ar)39 b Fu(made)33 b(from)f(within)h Fr(func2)39
-b Fu(will)34 b(resolv)m(e)g(to)g(the)f(lo)s(cal)150 4178
-y(v)-5 b(ariable)31 b Fr(v)-5 b(ar)37 b Fu(from)30 b
-Fr(func1)p Fu(,)g(shado)m(wing)h(an)m(y)f(global)i(v)-5
-b(ariable)31 b(named)f Fr(v)-5 b(ar)p Fu(.)275 4310 y(The)29
-b(follo)m(wing)j(script)f(demonstrates)f(this)h(b)s(eha)m(vior.)40
-b(When)31 b(executed,)g(the)g(script)f(displa)m(ys)390
-4441 y Ft(In)47 b(func2,)f(var)h(=)h(func1)e(local)390
-4573 y(func1\(\))390 4682 y({)581 4792 y(local)g(var='func1)f(local')
-581 4902 y(func2)390 5011 y(})390 5230 y(func2\(\))390
-5340 y({)p eop end
-%%Page: 20 26
-TeXDict begin 20 25 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(20)581 299
-y Ft(echo)47 b("In)f(func2,)h(var)f(=)i($var")390 408
-y(})390 628 y(var=global)390 737 y(func1)275 878 y Fu(The)32
-b Ft(unset)g Fu(builtin)g(also)i(acts)g(using)e(the)i(same)f(dynamic)g
-(scop)s(e:)46 b(if)33 b(a)g(v)-5 b(ariable)34 b(is)f(lo)s(cal)h(to)g
-(the)150 987 y(curren)m(t)i(scop)s(e,)h Ft(unset)e Fu(will)h(unset)g
-(it;)j(otherwise)e(the)f(unset)f(will)h(refer)g(to)h(the)f(v)-5
-b(ariable)37 b(found)d(in)150 1097 y(an)m(y)j(calling)h(scop)s(e)f(as)g
-(describ)s(ed)f(ab)s(o)m(v)m(e.)61 b(If)36 b(a)h(v)-5
-b(ariable)38 b(at)f(the)g(curren)m(t)g(lo)s(cal)h(scop)s(e)e(is)h
-(unset,)h(it)150 1207 y(will)27 b(remain)h(so)f(un)m(til)g(it)h(is)f
-(reset)h(in)f(that)g(scop)s(e)h(or)f(un)m(til)g(the)h(function)e
-(returns.)39 b(Once)27 b(the)g(function)150 1316 y(returns,)34
-b(an)m(y)h(instance)g(of)f(the)g(v)-5 b(ariable)35 b(at)g(a)g(previous)
-e(scop)s(e)i(will)f(b)s(ecome)h(visible.)52 b(If)34 b(the)g(unset)150
-1426 y(acts)e(on)f(a)h(v)-5 b(ariable)32 b(at)g(a)f(previous)g(scop)s
-(e,)h(an)m(y)f(instance)h(of)f(a)h(v)-5 b(ariable)32
-b(with)f(that)h(name)f(that)h(had)150 1535 y(b)s(een)e(shado)m(w)m(ed)g
-(will)h(b)s(ecome)g(visible.)275 1676 y(F)-8 b(unction)51
-b(names)f(and)g(de\014nitions)g(ma)m(y)i(b)s(e)e(listed)h(with)f(the)h
-Ft(-f)f Fu(option)h(to)g(the)g Ft(declare)150 1786 y
-Fu(\()p Ft(typeset)p Fu(\))35 b(builtin)g(command)h(\(see)h(Section)g
-(4.2)g([Bash)f(Builtins],)i(page)f(51\).)59 b(The)35
-b Ft(-F)h Fu(option)g(to)150 1895 y Ft(declare)e Fu(or)i
-Ft(typeset)e Fu(will)i(list)h(the)f(function)g(names)g(only)g(\(and)g
-(optionally)h(the)f(source)g(\014le)h(and)150 2005 y(line)c(n)m(um)m(b)
-s(er,)g(if)f(the)h Ft(extdebug)e Fu(shell)i(option)g(is)g(enabled\).)49
-b(F)-8 b(unctions)33 b(ma)m(y)h(b)s(e)e(exp)s(orted)g(so)h(that)150
-2114 y(subshells)j(automatically)k(ha)m(v)m(e)f(them)e(de\014ned)f
-(with)h(the)h Ft(-f)e Fu(option)i(to)g(the)g Ft(export)d
-Fu(builtin)i(\(see)150 2224 y(Section)31 b(4.1)h([Bourne)e(Shell)g
-(Builtins],)h(page)h(44\).)275 2365 y(F)-8 b(unctions)33
-b(ma)m(y)g(b)s(e)g(recursiv)m(e.)48 b(The)32 b Ft(FUNCNEST)f
-Fu(v)-5 b(ariable)34 b(ma)m(y)f(b)s(e)f(used)g(to)i(limit)g(the)f
-(depth)f(of)150 2474 y(the)27 b(function)f(call)i(stac)m(k)h(and)d
-(restrict)h(the)g(n)m(um)m(b)s(er)f(of)h(function)f(in)m(v)m(o)s
-(cations.)42 b(By)27 b(default,)g(no)g(limit)150 2584
-y(is)j(placed)h(on)g(the)f(n)m(um)m(b)s(er)f(of)i(recursiv)m(e)f
-(calls.)150 2834 y Fs(3.4)68 b(Shell)45 b(P)l(arameters)150
-2993 y Fu(A)23 b Fr(parameter)31 b Fu(is)23 b(an)g(en)m(tit)m(y)i(that)
-f(stores)g(v)-5 b(alues.)39 b(It)23 b(can)h(b)s(e)f(a)g
-Ft(name)p Fu(,)h(a)g(n)m(um)m(b)s(er,)f(or)h(one)f(of)h(the)f(sp)s
-(ecial)150 3103 y(c)m(haracters)i(listed)e(b)s(elo)m(w.)39
-b(A)23 b Fr(v)-5 b(ariable)30 b Fu(is)23 b(a)g(parameter)h(denoted)f(b)
-m(y)h(a)f Ft(name)p Fu(.)37 b(A)24 b(v)-5 b(ariable)24
-b(has)f(a)g Fr(v)-5 b(alue)150 3212 y Fu(and)33 b(zero)i(or)f(more)g
-Fr(attributes)p Fu(.)52 b(A)m(ttributes)35 b(are)f(assigned)g(using)g
-(the)g Ft(declare)e Fu(builtin)h(command)150 3322 y(\(see)e(the)g
-(description)f(of)h(the)f Ft(declare)f Fu(builtin)h(in)g(Section)h(4.2)
-g([Bash)g(Builtins],)g(page)g(51\).)275 3462 y(A)d(parameter)h(is)g
-(set)g(if)f(it)h(has)f(b)s(een)g(assigned)h(a)g(v)-5
-b(alue.)40 b(The)28 b(n)m(ull)h(string)f(is)h(a)g(v)-5
-b(alid)28 b(v)-5 b(alue.)41 b(Once)150 3572 y(a)31 b(v)-5
-b(ariable)31 b(is)f(set,)i(it)e(ma)m(y)h(b)s(e)f(unset)g(only)h(b)m(y)f
-(using)g(the)g Ft(unset)f Fu(builtin)h(command.)275 3713
-y(A)g(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)f(assigned)g(to)i(b)m(y)e(a)h
-(statemen)m(t)h(of)e(the)h(form)390 3853 y Fj(name)p
-Ft(=[)p Fj(value)p Ft(])150 3994 y Fu(If)j Fr(v)-5 b(alue)40
-b Fu(is)35 b(not)g(giv)m(en,)h(the)f(v)-5 b(ariable)35
-b(is)g(assigned)g(the)f(n)m(ull)h(string.)53 b(All)35
-b Fr(v)-5 b(alue)5 b Fu(s)35 b(undergo)f(tilde)h(ex-)150
-4103 y(pansion,)h(parameter)f(and)f(v)-5 b(ariable)36
-b(expansion,)f(command)g(substitution,)h(arithmetic)g(expansion,)150
-4213 y(and)k(quote)h(remo)m(v)-5 b(al)42 b(\(detailed)h(b)s(elo)m(w\).)
-72 b(If)40 b(the)h(v)-5 b(ariable)41 b(has)g(its)g Ft(integer)e
-Fu(attribute)i(set,)j(then)150 4323 y Fr(v)-5 b(alue)38
-b Fu(is)33 b(ev)-5 b(aluated)34 b(as)f(an)g(arithmetic)h(expression)f
-(ev)m(en)h(if)e(the)h Ft($\(\(...)o(\)\))f Fu(expansion)h(is)g(not)g
-(used)150 4432 y(\(see)e(Section)g(3.5.5)i([Arithmetic)e(Expansion],)f
-(page)h(31\).)42 b(W)-8 b(ord)31 b(splitting)g(is)g(not)f(p)s
-(erformed,)f(with)150 4542 y(the)35 b(exception)h(of)f
-Ft("$@")f Fu(as)h(explained)g(b)s(elo)m(w.)54 b(Filename)36
-b(expansion)f(is)g(not)g(p)s(erformed.)53 b(Assign-)150
-4651 y(men)m(t)33 b(statemen)m(ts)h(ma)m(y)f(also)g(app)s(ear)f(as)g
-(argumen)m(ts)h(to)g(the)g Ft(alias)p Fu(,)e Ft(declare)p
-Fu(,)g Ft(typeset)p Fu(,)g Ft(export)p Fu(,)150 4761
-y Ft(readonly)p Fu(,)38 b(and)g Ft(local)f Fu(builtin)h(commands)g(\()p
-Fr(declaration)j Fu(commands\).)64 b(When)39 b(in)f Fm(posix)f
-Fu(mo)s(de)150 4871 y(\(see)29 b(Section)h(6.11)g([Bash)f(POSIX)e(Mo)s
-(de],)j(page)f(101\),)h(these)f(builtins)f(ma)m(y)h(app)s(ear)f(in)g(a)
-h(command)150 4980 y(after)34 b(one)g(or)f(more)h(instances)g(of)f(the)
-h Ft(command)d Fu(builtin)i(and)g(retain)h(these)g(assignmen)m(t)g
-(statemen)m(t)150 5090 y(prop)s(erties.)275 5230 y(In)29
-b(the)h(con)m(text)i(where)d(an)h(assignmen)m(t)h(statemen)m(t)h(is)e
-(assigning)g(a)h(v)-5 b(alue)30 b(to)h(a)f(shell)g(v)-5
-b(ariable)31 b(or)150 5340 y(arra)m(y)24 b(index)f(\(see)h(Section)g
-(6.7)g([Arra)m(ys],)i(page)e(95\),)i(the)e(`)p Ft(+=)p
-Fu(')f(op)s(erator)g(can)h(b)s(e)f(used)f(to)i(app)s(end)e(to)i(or)p
+5340 y Ft(")p Fu(shado)m(ws)p Ft(")p Fu(,)30 b(and)g(the)g(v)-5
+b(alue)31 b(that)g(is)f(restored)h(when)e(the)i(function)f(returns.)p
eop end
%%Page: 21 27
TeXDict begin 21 26 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(21)150 299
-y(add)28 b(to)i(the)f(v)-5 b(ariable's)30 b(previous)e(v)-5
-b(alue.)41 b(This)28 b(includes)g(argumen)m(ts)i(to)f(builtin)g
-(commands)f(suc)m(h)h(as)150 408 y Ft(declare)e Fu(that)i(accept)h
-(assignmen)m(t)f(statemen)m(ts)h(\()p Fr(declaration)h
-Fu(commands\).)40 b(When)28 b(`)p Ft(+=)p Fu(')h(is)f(applied)150
-518 y(to)d(a)f(v)-5 b(ariable)24 b(for)g(whic)m(h)f(the)h
-Fr(in)m(teger)32 b Fu(attribute)24 b(has)g(b)s(een)f(set,)j
-Fr(v)-5 b(alue)29 b Fu(is)24 b(ev)-5 b(aluated)25 b(as)f(an)g
-(arithmetic)150 628 y(expression)30 b(and)f(added)g(to)i(the)f(v)-5
-b(ariable's)30 b(curren)m(t)g(v)-5 b(alue,)31 b(whic)m(h)e(is)h(also)h
-(ev)-5 b(aluated.)42 b(When)29 b(`)p Ft(+=)p Fu(')h(is)150
-737 y(applied)25 b(to)h(an)f(arra)m(y)h(v)-5 b(ariable)26
-b(using)f(comp)s(ound)f(assignmen)m(t)i(\(see)g(Section)g(6.7)g([Arra)m
-(ys],)h(page)f(95\),)150 847 y(the)33 b(v)-5 b(ariable's)33
-b(v)-5 b(alue)33 b(is)g(not)g(unset)f(\(as)h(it)g(is)g(when)e(using)i
-(`)p Ft(=)p Fu('\),)g(and)f(new)g(v)-5 b(alues)33 b(are)g(app)s(ended)e
-(to)150 956 y(the)26 b(arra)m(y)h(b)s(eginning)e(at)i(one)f(greater)h
-(than)f(the)g(arra)m(y's)h(maxim)m(um)f(index)f(\(for)i(indexed)e(arra)
-m(ys\),)j(or)150 1066 y(added)c(as)i(additional)g(k)m(ey-v)-5
-b(alue)26 b(pairs)f(in)g(an)g(asso)s(ciativ)m(e)j(arra)m(y)-8
-b(.)40 b(When)24 b(applied)h(to)h(a)g(string-v)-5 b(alued)150
-1176 y(v)g(ariable,)31 b Fr(v)-5 b(alue)36 b Fu(is)31
-b(expanded)e(and)h(app)s(ended)f(to)i(the)f(v)-5 b(ariable's)32
-b(v)-5 b(alue.)275 1319 y(A)28 b(v)-5 b(ariable)29 b(can)f(b)s(e)f
-(assigned)i(the)f Fr(nameref)45 b Fu(attribute)29 b(using)f(the)g
-Ft(-n)f Fu(option)i(to)g(the)f Ft(declare)e Fu(or)150
-1428 y Ft(local)f Fu(builtin)h(commands)g(\(see)i(Section)f(4.2)h
-([Bash)f(Builtins],)h(page)f(51\))h(to)f(create)i(a)e
-Fr(nameref)p Fu(,)g(or)g(a)150 1538 y(reference)f(to)g(another)f(v)-5
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(21)275 299
+y(F)-8 b(or)38 b(example,)h(if)f(a)f(v)-5 b(ariable)38
+b Ft(var)f Fu(is)g(declared)h(as)f(lo)s(cal)i(in)e(function)g
+Ft(func1)p Fu(,)g(and)g Ft(func1)f Fu(calls)150 408 y(another)29
+b(function)g Ft(func2)p Fu(,)f(references)i(to)f Ft(var)g
+Fu(made)g(from)f(within)h Ft(func2)f Fu(will)h(resolv)m(e)i(to)e(the)h
+(lo)s(cal)150 518 y(v)-5 b(ariable)31 b Ft(var)f Fu(from)g
+Ft(func1)p Fu(,)f(shado)m(wing)h(an)m(y)h(global)h(v)-5
+b(ariable)31 b(named)f Ft(var)p Fu(.)275 650 y(The)f(follo)m(wing)j
+(script)f(demonstrates)f(this)h(b)s(eha)m(vior.)40 b(When)31
+b(executed,)g(the)g(script)f(displa)m(ys)390 781 y Ft(In)47
+b(func2,)f(var)h(=)h(func1)e(local)390 913 y(func1\(\))390
+1022 y({)581 1132 y(local)g(var='func1)f(local')581 1241
+y(func2)390 1351 y(})390 1570 y(func2\(\))390 1680 y({)581
+1789 y(echo)i("In)f(func2,)h(var)f(=)i($var")390 1899
+y(})390 2118 y(var=global)390 2228 y(func1)275 2359 y
+Fu(The)32 b Ft(unset)g Fu(builtin)g(also)i(acts)g(using)e(the)i(same)f
+(dynamic)g(scop)s(e:)46 b(if)33 b(a)g(v)-5 b(ariable)34
+b(is)f(lo)s(cal)h(to)g(the)150 2469 y(curren)m(t)i(scop)s(e,)h
+Ft(unset)e Fu(will)h(unset)g(it;)j(otherwise)e(the)f(unset)f(will)h
+(refer)g(to)h(the)f(v)-5 b(ariable)37 b(found)d(in)150
+2578 y(an)m(y)27 b(calling)i(scop)s(e)e(as)g(describ)s(ed)f(ab)s(o)m(v)
+m(e.)41 b(If)26 b(a)h(v)-5 b(ariable)28 b(at)g(the)f(curren)m(t)g(lo)s
+(cal)h(scop)s(e)f(is)g(unset,)g(it)h(will)150 2688 y(remain)k(so)g
+(\(app)s(earing)g(as)h(unset\))e(un)m(til)i(it)f(is)g(reset)h(in)f
+(that)g(scop)s(e)h(or)f(un)m(til)g(the)g(function)g(returns.)150
+2798 y(Once)39 b(the)h(function)f(returns,)h(an)m(y)g(instance)g(of)f
+(the)h(v)-5 b(ariable)40 b(at)g(a)g(previous)f(scop)s(e)g(will)h(b)s
+(ecome)150 2907 y(visible.)k(If)31 b(the)h(unset)f(acts)h(on)g(a)g(v)-5
+b(ariable)32 b(at)g(a)g(previous)f(scop)s(e,)h(an)m(y)f(instance)i(of)e
+(a)h(v)-5 b(ariable)32 b(with)150 3017 y(that)23 b(name)g(that)h(had)e
+(b)s(een)g(shado)m(w)m(ed)h(will)g(b)s(ecome)h(visible)f(\(see)h(b)s
+(elo)m(w)f(ho)m(w)g Ft(localvar_unset)p Fu(shell)150
+3126 y(option)31 b(c)m(hanges)g(this)f(b)s(eha)m(vior\).)275
+3258 y(F)-8 b(unction)51 b(names)f(and)g(de\014nitions)g(ma)m(y)i(b)s
+(e)e(listed)h(with)f(the)h Ft(-f)f Fu(option)h(to)g(the)g
+Ft(declare)150 3368 y Fu(\()p Ft(typeset)p Fu(\))43 b(builtin)h
+(command)g(\(see)h(Section)g(4.2)g([Bash)g(Builtins],)j(page)d(55\).)83
+b(The)44 b Ft(-F)f Fu(option)150 3477 y(to)e Ft(declare)e
+Fu(or)i Ft(typeset)e Fu(will)i(list)g(the)g(function)f(names)h(only)g
+(\(and)f(optionally)i(the)f(source)g(\014le)150 3587
+y(and)g(line)h(n)m(um)m(b)s(er,)h(if)f(the)g Ft(extdebug)d
+Fu(shell)j(option)g(is)g(enabled\).)75 b(F)-8 b(unctions)42
+b(ma)m(y)g(b)s(e)f(exp)s(orted)150 3696 y(so)i(that)g(c)m(hild)g(shell)
+g(pro)s(cesses)g(\(those)g(created)h(when)e(executing)i(a)f(separate)h
+(shell)f(in)m(v)m(o)s(cation\))150 3806 y(automatically)34
+b(ha)m(v)m(e)e(them)e(de\014ned)g(with)g(the)h Ft(-f)f
+Fu(option)i(to)f(the)g Ft(export)e Fu(builtin)i(\(see)g(Section)h(4.1)
+150 3916 y([Bourne)e(Shell)h(Builtins],)g(page)g(48\).)275
+4047 y(F)-8 b(unctions)33 b(ma)m(y)g(b)s(e)g(recursiv)m(e.)48
+b(The)32 b Ft(FUNCNEST)f Fu(v)-5 b(ariable)34 b(ma)m(y)f(b)s(e)f(used)g
+(to)i(limit)g(the)f(depth)f(of)150 4157 y(the)27 b(function)f(call)i
+(stac)m(k)h(and)d(restrict)h(the)g(n)m(um)m(b)s(er)f(of)h(function)f
+(in)m(v)m(o)s(cations.)42 b(By)27 b(default,)g(no)g(limit)150
+4266 y(is)j(placed)h(on)g(the)f(n)m(um)m(b)s(er)f(of)i(recursiv)m(e)f
+(calls.)150 4501 y Fs(3.4)68 b(Shell)45 b(P)l(arameters)150
+4660 y Fu(A)39 b Fr(parameter)45 b Fu(is)39 b(an)g(en)m(tit)m(y)h(that)
+f(stores)g(v)-5 b(alues.)66 b(It)39 b(can)g(b)s(e)f(a)h
+Ft(name)p Fu(,)h(a)f(n)m(um)m(b)s(er,)g(or)g(one)g(of)g(the)150
+4770 y(sp)s(ecial)c(c)m(haracters)h(listed)g(b)s(elo)m(w.)53
+b(A)35 b Fr(v)-5 b(ariable)41 b Fu(is)34 b(a)h(parameter)h(denoted)e(b)
+m(y)h(a)g Ft(name)p Fu(.)52 b(A)35 b(v)-5 b(ariable)150
+4880 y(has)41 b(a)h Ft(value)d Fu(and)i(zero)h(or)f(more)g
+Ft(attributes)p Fu(.)71 b(A)m(ttributes)42 b(are)f(assigned)h(using)f
+(the)g Ft(declare)150 4989 y Fu(builtin)29 b(command)g(\(see)h(the)g
+(description)f(of)g(the)h Ft(declare)d Fu(builtin)i(in)g(Section)h(4.2)
+g([Bash)g(Builtins],)150 5099 y(page)h(55\).)275 5230
+y(A)d(parameter)h(is)g(set)g(if)f(it)h(has)f(b)s(een)g(assigned)h(a)g
+(v)-5 b(alue.)40 b(The)28 b(n)m(ull)h(string)f(is)h(a)g(v)-5
+b(alid)28 b(v)-5 b(alue.)41 b(Once)150 5340 y(a)31 b(v)-5
+b(ariable)31 b(is)f(set,)i(it)e(ma)m(y)h(b)s(e)f(unset)g(only)h(b)m(y)f
+(using)g(the)g Ft(unset)f Fu(builtin)h(command.)p eop
+end
+%%Page: 22 28
+TeXDict begin 22 27 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(22)275 299
+y(A)30 b(v)-5 b(ariable)31 b(ma)m(y)g(b)s(e)f(assigned)g(to)i(b)m(y)e
+(a)h(statemen)m(t)h(of)e(the)h(form)390 471 y Fj(name)p
+Ft(=[)p Fj(value)p Ft(])150 643 y Fu(If)43 b Fr(v)-5
+b(alue)49 b Fu(is)43 b(not)h(giv)m(en,)k(the)c(v)-5 b(ariable)44
+b(is)f(assigned)h(the)f(n)m(ull)h(string.)80 b(All)44
+b Fr(v)-5 b(alue)5 b Fu(s)43 b(undergo)g(tilde)150 753
+y(expansion,)25 b(parameter)f(and)f(v)-5 b(ariable)25
+b(expansion,)g(command)e(substitution,)i(arithmetic)g(expansion,)150
+862 y(and)i(quote)i(remo)m(v)-5 b(al)29 b(\(see)g(Section)f(3.5.3)i
+([Shell)e(P)m(arameter)h(Expansion],)f(page)h(26\).)41
+b(If)27 b(the)h(v)-5 b(ariable)150 972 y(has)35 b(its)h
+Ft(integer)e Fu(attribute)i(set,)i(then)d Fr(v)-5 b(alue)42
+b Fu(is)35 b(ev)-5 b(aluated)37 b(as)f(an)f(arithmetic)i(expression)f
+(ev)m(en)g(if)150 1082 y(the)i Ft($\(\(...)n(\)\))f Fu(expansion)g(is)g
+(not)h(used)e(\(see)j(Section)f(3.5.5)h([Arithmetic)f(Expansion],)h
+(page)f(34\).)150 1191 y(W)-8 b(ord)26 b(splitting)h(and)e(\014lename)h
+(expansion)g(are)g(not)h(p)s(erformed.)37 b(Assignmen)m(t)27
+b(statemen)m(ts)g(ma)m(y)g(also)150 1301 y(app)s(ear)22
+b(as)h(argumen)m(ts)g(to)h(the)f Ft(alias)p Fu(,)g Ft(declare)p
+Fu(,)f Ft(typeset)p Fu(,)h Ft(export)p Fu(,)g Ft(readonly)p
+Fu(,)f(and)g Ft(local)f Fu(builtin)150 1410 y(commands)31
+b(\()p Fr(declaration)j Fu(commands\).)44 b(When)32 b(in)f
+Fm(posix)g Fu(mo)s(de)g(\(see)h(Section)h(6.11)g([Bash)f(POSIX)150
+1520 y(Mo)s(de],)h(page)f(106\),)i(these)e(builtins)f(ma)m(y)h(app)s
+(ear)f(in)g(a)h(command)f(after)h(one)g(or)g(more)g(instances)g(of)150
+1630 y(the)f Ft(command)d Fu(builtin)i(and)g(retain)h(these)f
+(assignmen)m(t)i(statemen)m(t)g(prop)s(erties.)275 1802
+y(In)d(the)h(con)m(text)i(where)d(an)h(assignmen)m(t)h(statemen)m(t)h
+(is)e(assigning)g(a)h(v)-5 b(alue)30 b(to)h(a)f(shell)g(v)-5
+b(ariable)31 b(or)150 1911 y(arra)m(y)k(index)f(\(see)h(Section)g(6.7)g
+([Arra)m(ys],)h(page)f(100\),)i(the)e(`)p Ft(+=)p Fu(')f(op)s(erator)g
+(can)h(b)s(e)e(used)h(to)h(app)s(end)150 2021 y(to)h(or)g(add)e(to)j
+(the)e(v)-5 b(ariable's)36 b(previous)f(v)-5 b(alue.)57
+b(This)34 b(includes)h(argumen)m(ts)h(to)g(builtin)f(commands)150
+2131 y(suc)m(h)29 b(as)g Ft(declare)e Fu(that)i(accept)h(assignmen)m(t)
+g(statemen)m(ts)h(\(declaration)f(commands\).)41 b(When)28
+b(`)p Ft(+=)p Fu(')h(is)150 2240 y(applied)36 b(to)h(a)f(v)-5
+b(ariable)37 b(for)f(whic)m(h)f(the)i Ft(integer)d Fu(attribute)i(has)g
+(b)s(een)g(set,)i Fr(v)-5 b(alue)41 b Fu(is)36 b(ev)-5
+b(aluated)38 b(as)150 2350 y(an)28 b(arithmetic)h(expression)f(and)f
+(added)h(to)h(the)f(v)-5 b(ariable's)29 b(curren)m(t)e(v)-5
+b(alue,)30 b(whic)m(h)d(is)i(also)f(ev)-5 b(aluated.)150
+2459 y(When)43 b(`)p Ft(+=)p Fu(')g(is)h(applied)f(to)h(an)f(arra)m(y)h
+(v)-5 b(ariable)44 b(using)f(comp)s(ound)e(assignmen)m(t)j(\(see)h
+(Section)f(6.7)150 2569 y([Arra)m(ys],)g(page)d(100\),)k(the)c(v)-5
+b(ariable's)42 b(v)-5 b(alue)41 b(is)g(not)f(unset)h(\(as)g(it)g(is)g
+(when)e(using)h(`)p Ft(=)p Fu('\),)k(and)c(new)150 2679
+y(v)-5 b(alues)27 b(are)g(app)s(ended)f(to)h(the)g(arra)m(y)h(b)s
+(eginning)e(at)h(one)g(greater)i(than)d(the)h(arra)m(y's)h(maxim)m(um)e
+(index)150 2788 y(\(for)32 b(indexed)g(arra)m(ys\),)i(or)e(added)f(as)i
+(additional)g(k)m(ey-v)-5 b(alue)34 b(pairs)d(in)h(an)g(asso)s(ciativ)m
+(e)j(arra)m(y)-8 b(.)47 b(When)150 2898 y(applied)27
+b(to)h(a)f(string-v)-5 b(alued)28 b(v)-5 b(ariable,)29
+b Fr(v)-5 b(alue)32 b Fu(is)c(expanded)e(and)h(app)s(ended)e(to)j(the)f
+(v)-5 b(ariable's)28 b(v)-5 b(alue.)275 3070 y(A)28 b(v)-5
+b(ariable)28 b(can)h(b)s(e)e(assigned)h(the)h Ft(nameref)d
+Fu(attribute)i(using)g(the)g Ft(-n)f Fu(option)i(to)g(the)f
+Ft(declare)e Fu(or)150 3180 y Ft(local)f Fu(builtin)h(commands)g(\(see)
+i(Section)f(4.2)h([Bash)f(Builtins],)h(page)f(55\))h(to)f(create)i(a)e
+Fr(nameref)p Fu(,)g(or)g(a)150 3289 y(reference)f(to)g(another)f(v)-5
b(ariable.)40 b(This)24 b(allo)m(ws)j(v)-5 b(ariables)26
b(to)g(b)s(e)e(manipulated)h(indirectly)-8 b(.)40 b(Whenev)m(er)150
-1647 y(the)31 b(nameref)g(v)-5 b(ariable)32 b(is)f(referenced,)g
+3399 y(the)31 b(nameref)g(v)-5 b(ariable)32 b(is)f(referenced,)g
(assigned)h(to,)g(unset,)f(or)g(has)f(its)i(attributes)f(mo)s(di\014ed)
-f(\(other)150 1757 y(than)c(using)g(or)h(c)m(hanging)g(the)g(nameref)f
+f(\(other)150 3508 y(than)c(using)g(or)h(c)m(hanging)g(the)g(nameref)f
(attribute)i(itself)7 b(\),)29 b(the)d(op)s(eration)h(is)g(actually)h
-(p)s(erformed)d(on)150 1867 y(the)31 b(v)-5 b(ariable)31
+(p)s(erformed)d(on)150 3618 y(the)31 b(v)-5 b(ariable)31
b(sp)s(eci\014ed)f(b)m(y)g(the)h(nameref)f(v)-5 b(ariable's)31
b(v)-5 b(alue.)42 b(A)30 b(nameref)g(is)h(commonly)g(used)e(within)150
-1976 y(shell)h(functions)g(to)h(refer)f(to)h(a)f(v)-5
+3727 y(shell)h(functions)g(to)h(refer)f(to)h(a)f(v)-5
b(ariable)31 b(whose)f(name)h(is)f(passed)g(as)g(an)g(argumen)m(t)h(to)
-g(the)f(function.)150 2086 y(F)-8 b(or)31 b(instance,)g(if)g(a)g(v)-5
+g(the)f(function.)150 3837 y(F)-8 b(or)31 b(instance,)g(if)g(a)g(v)-5
b(ariable)31 b(name)f(is)h(passed)e(to)j(a)e(shell)h(function)f(as)h
-(its)f(\014rst)g(argumen)m(t,)h(running)390 2229 y Ft(declare)46
-b(-n)h(ref=$1)150 2372 y Fu(inside)31 b(the)h(function)f(creates)i(a)g
-(nameref)e(v)-5 b(ariable)32 b Fr(ref)49 b Fu(whose)32
-b(v)-5 b(alue)32 b(is)g(the)f(v)-5 b(ariable)33 b(name)e(passed)150
-2481 y(as)e(the)h(\014rst)e(argumen)m(t.)41 b(References)30
-b(and)e(assignmen)m(ts)i(to)g Fr(ref)p Fu(,)f(and)g(c)m(hanges)h(to)g
-(its)f(attributes,)i(are)150 2591 y(treated)g(as)f(references,)g
+(its)f(\014rst)g(argumen)m(t,)h(running)390 4009 y Ft(declare)46
+b(-n)h(ref=$1)150 4181 y Fu(inside)30 b(the)g(function)g(creates)h(a)g
+(nameref)f(v)-5 b(ariable)30 b Ft(ref)g Fu(whose)g(v)-5
+b(alue)30 b(is)g(the)g(v)-5 b(ariable)31 b(name)f(passed)150
+4291 y(as)c(the)h(\014rst)e(argumen)m(t.)40 b(References)26
+b(and)g(assignmen)m(ts)h(to)g Ft(ref)p Fu(,)f(and)f(c)m(hanges)i(to)g
+(its)g(attributes,)h(are)150 4401 y(treated)j(as)f(references,)g
(assignmen)m(ts,)h(and)e(attribute)i(mo)s(di\014cations)f(to)h(the)f(v)
--5 b(ariable)30 b(whose)g(name)150 2701 y(w)m(as)h(passed)f(as)g
-Ft($1)p Fu(.)275 2844 y(If)h(the)g(con)m(trol)i(v)-5
+-5 b(ariable)30 b(whose)g(name)150 4510 y(w)m(as)h(passed)f(as)g
+Ft($1)p Fu(.)275 4682 y(If)h(the)g(con)m(trol)i(v)-5
b(ariable)32 b(in)g(a)f Ft(for)g Fu(lo)s(op)h(has)f(the)g(nameref)h
(attribute,)g(the)g(list)g(of)g(w)m(ords)f(can)h(b)s(e)150
-2953 y(a)h(list)h(of)f(shell)g(v)-5 b(ariables,)34 b(and)e(a)i(name)f
+4792 y(a)h(list)h(of)f(shell)g(v)-5 b(ariables,)34 b(and)e(a)i(name)f
(reference)g(will)g(b)s(e)f(established)h(for)g(eac)m(h)h(w)m(ord)e(in)
-h(the)g(list,)150 3063 y(in)c(turn,)g(when)g(the)h(lo)s(op)g(is)g
+h(the)g(list,)150 4902 y(in)c(turn,)g(when)g(the)h(lo)s(op)g(is)g
(executed.)41 b(Arra)m(y)30 b(v)-5 b(ariables)30 b(cannot)h(b)s(e)e
-(giv)m(en)h(the)g(nameref)g(attribute.)150 3172 y(Ho)m(w)m(ev)m(er,)39
+(giv)m(en)h(the)g(nameref)g(attribute.)150 5011 y(Ho)m(w)m(ev)m(er,)39
b(nameref)d(v)-5 b(ariables)36 b(can)g(reference)g(arra)m(y)g(v)-5
b(ariables)37 b(and)e(subscripted)f(arra)m(y)i(v)-5 b(ariables.)150
-3282 y(Namerefs)36 b(can)f(b)s(e)g(unset)g(using)g(the)h
+5121 y(Namerefs)36 b(can)f(b)s(e)g(unset)g(using)g(the)h
Ft(-n)e Fu(option)i(to)g(the)g Ft(unset)e Fu(builtin)h(\(see)h(Section)
-g(4.1)h([Bourne)150 3392 y(Shell)43 b(Builtins],)j(page)e(44\).)79
+g(4.1)h([Bourne)150 5230 y(Shell)43 b(Builtins],)j(page)e(48\).)79
b(Otherwise,)45 b(if)e Ft(unset)e Fu(is)i(executed)h(with)e(the)h(name)
-g(of)g(a)g(nameref)150 3501 y(v)-5 b(ariable)31 b(as)g(an)f(argumen)m
+g(of)g(a)g(nameref)150 5340 y(v)-5 b(ariable)31 b(as)g(an)f(argumen)m
(t,)h(the)g(v)-5 b(ariable)31 b(referenced)f(b)m(y)g(the)h(nameref)f(v)
--5 b(ariable)31 b(will)g(b)s(e)f(unset.)150 3709 y Fk(3.4.1)63
-b(P)m(ositional)41 b(P)m(arameters)150 3856 y Fu(A)28
-b Fr(p)s(ositional)h(parameter)35 b Fu(is)28 b(a)g(parameter)g(denoted)
-g(b)m(y)g(one)g(or)g(more)g(digits,)h(other)g(than)e(the)h(single)150
-3965 y(digit)34 b Ft(0)p Fu(.)48 b(P)m(ositional)36 b(parameters)d(are)
-g(assigned)h(from)e(the)i(shell's)f(argumen)m(ts)g(when)f(it)i(is)f(in)
-m(v)m(ok)m(ed,)150 4075 y(and)38 b(ma)m(y)i(b)s(e)e(reassigned)i(using)
-e(the)h Ft(set)g Fu(builtin)f(command.)67 b(P)m(ositional)41
-b(parameter)e Ft(N)g Fu(ma)m(y)h(b)s(e)150 4185 y(referenced)34
+-5 b(ariable)31 b(will)g(b)s(e)f(unset.)p eop end
+%%Page: 23 29
+TeXDict begin 23 28 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(23)150 299
+y Fk(3.4.1)63 b(P)m(ositional)41 b(P)m(arameters)150
+446 y Fu(A)28 b Fr(p)s(ositional)h(parameter)35 b Fu(is)28
+b(a)g(parameter)g(denoted)g(b)m(y)g(one)g(or)g(more)g(digits,)h(other)g
+(than)e(the)h(single)150 555 y(digit)34 b Ft(0)p Fu(.)48
+b(P)m(ositional)36 b(parameters)d(are)g(assigned)h(from)e(the)i
+(shell's)f(argumen)m(ts)g(when)f(it)i(is)f(in)m(v)m(ok)m(ed,)150
+665 y(and)38 b(ma)m(y)i(b)s(e)e(reassigned)i(using)e(the)h
+Ft(set)g Fu(builtin)f(command.)67 b(P)m(ositional)41
+b(parameter)e Ft(N)g Fu(ma)m(y)h(b)s(e)150 775 y(referenced)34
b(as)h Ft(${N})p Fu(,)g(or)f(as)h Ft($N)e Fu(when)h Ft(N)g
Fu(consists)h(of)f(a)h(single)g(digit.)54 b(P)m(ositional)37
-b(parameters)d(ma)m(y)150 4294 y(not)j(b)s(e)f(assigned)h(to)g(with)f
+b(parameters)d(ma)m(y)150 884 y(not)j(b)s(e)f(assigned)h(to)g(with)f
(assignmen)m(t)i(statemen)m(ts.)61 b(The)36 b Ft(set)g
Fu(and)g Ft(shift)f Fu(builtins)h(are)h(used)f(to)150
-4404 y(set)k(and)f(unset)f(them)i(\(see)g(Chapter)f(4)g([Shell)h
-(Builtin)g(Commands],)h(page)f(44\).)68 b(The)39 b(p)s(ositional)150
-4513 y(parameters)44 b(are)g(temp)s(orarily)g(replaced)h(when)e(a)h
+994 y(set)k(and)f(unset)f(them)i(\(see)g(Chapter)f(4)g([Shell)h
+(Builtin)g(Commands],)h(page)f(48\).)68 b(The)39 b(p)s(ositional)150
+1103 y(parameters)44 b(are)g(temp)s(orarily)g(replaced)h(when)e(a)h
(shell)g(function)g(is)g(executed)g(\(see)h(Section)g(3.3)150
-4623 y([Shell)30 b(F)-8 b(unctions],)32 b(page)f(18\).)275
-4766 y(When)c(a)i(p)s(ositional)g(parameter)g(consisting)f(of)h(more)f
+1213 y([Shell)30 b(F)-8 b(unctions],)32 b(page)f(19\).)275
+1344 y(When)c(a)i(p)s(ositional)g(parameter)g(consisting)f(of)h(more)f
(than)g(a)g(single)h(digit)g(is)f(expanded,)g(it)h(m)m(ust)150
-4876 y(b)s(e)h(enclosed)h(in)f(braces.)150 5083 y Fk(3.4.2)63
-b(Sp)s(ecial)41 b(P)m(arameters)150 5230 y Fu(The)d(shell)g(treats)h
+1454 y(b)s(e)h(enclosed)h(in)f(braces.)150 1646 y Fk(3.4.2)63
+b(Sp)s(ecial)41 b(P)m(arameters)150 1793 y Fu(The)d(shell)g(treats)h
(sev)m(eral)g(parameters)f(sp)s(ecially)-8 b(.)65 b(These)38
b(parameters)h(ma)m(y)f(only)g(b)s(e)g(referenced;)150
-5340 y(assignmen)m(t)31 b(to)g(them)g(is)f(not)h(allo)m(w)m(ed.)p
-eop end
-%%Page: 22 28
-TeXDict begin 22 27 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(22)150 299
-y Ft(*)432 b Fu(\($*\))38 b(Expands)d(to)i(the)f(p)s(ositional)h
+1903 y(assignmen)m(t)31 b(to)g(them)g(is)f(not)h(allo)m(w)m(ed.)150
+2056 y Ft(*)432 b Fu(\($*\))38 b(Expands)d(to)i(the)f(p)s(ositional)h
(parameters,)h(starting)f(from)f(one.)59 b(When)36 b(the)g(ex-)630
-408 y(pansion)h(is)h(not)g(within)f(double)g(quotes,)j(eac)m(h)f(p)s
-(ositional)f(parameter)g(expands)f(to)i(a)630 518 y(separate)23
+2165 y(pansion)h(is)h(not)g(within)f(double)g(quotes,)j(eac)m(h)f(p)s
+(ositional)f(parameter)g(expands)f(to)i(a)630 2275 y(separate)23
b(w)m(ord.)38 b(In)21 b(con)m(texts)j(where)e(it)g(is)h(p)s(erformed,)f
(those)h(w)m(ords)e(are)i(sub)5 b(ject)22 b(to)h(fur-)630
-628 y(ther)k(w)m(ord)g(splitting)i(and)e(\014lename)g(expansion.)40
+2384 y(ther)k(w)m(ord)g(splitting)i(and)e(\014lename)g(expansion.)40
b(When)27 b(the)h(expansion)f(o)s(ccurs)g(within)630
-737 y(double)37 b(quotes,)k(it)d(expands)f(to)h(a)g(single)h(w)m(ord)e
+2494 y(double)37 b(quotes,)k(it)d(expands)f(to)h(a)g(single)h(w)m(ord)e
(with)h(the)f(v)-5 b(alue)39 b(of)f(eac)m(h)g(parameter)630
-847 y(separated)g(b)m(y)g(the)f(\014rst)g(c)m(haracter)i(of)f(the)g
+2604 y(separated)g(b)m(y)g(the)f(\014rst)g(c)m(haracter)i(of)f(the)g
Ft(IFS)f Fu(sp)s(ecial)h(v)-5 b(ariable.)63 b(That)38
-b(is,)h Ft("$*")e Fu(is)630 956 y(equiv)-5 b(alen)m(t)39
+b(is,)h Ft("$*")e Fu(is)630 2713 y(equiv)-5 b(alen)m(t)39
b(to)g Ft("$1)p Fj(c)p Ft($2)p Fj(c)p Ft(...)m(")p Fu(,)h(where)d
Fr(c)44 b Fu(is)38 b(the)g(\014rst)g(c)m(haracter)h(of)f(the)g(v)-5
-b(alue)39 b(of)f(the)630 1066 y Ft(IFS)29 b Fu(v)-5 b(ariable.)41
+b(alue)39 b(of)f(the)630 2823 y Ft(IFS)29 b Fu(v)-5 b(ariable.)41
b(If)29 b Ft(IFS)g Fu(is)h(unset,)f(the)h(parameters)g(are)g(separated)
-g(b)m(y)g(spaces.)41 b(If)29 b Ft(IFS)g Fu(is)630 1176
+g(b)m(y)g(spaces.)41 b(If)29 b Ft(IFS)g Fu(is)630 2932
y(n)m(ull,)i(the)f(parameters)h(are)g(joined)f(without)g(in)m(terv)m
-(ening)i(separators.)150 1334 y Ft(@)432 b Fu(\($@\))43
+(ening)i(separators.)150 3085 y Ft(@)432 b Fu(\($@\))43
b(Expands)f(to)h(the)g(p)s(ositional)g(parameters,)k(starting)c(from)f
-(one.)78 b(In)42 b(con)m(texts)630 1444 y(where)35 b(w)m(ord)h
+(one.)78 b(In)42 b(con)m(texts)630 3195 y(where)35 b(w)m(ord)h
(splitting)g(is)g(p)s(erformed,)g(this)g(expands)e(eac)m(h)j(p)s
-(ositional)g(parameter)f(to)630 1553 y(a)d(separate)h(w)m(ord;)g(if)f
+(ositional)g(parameter)f(to)630 3304 y(a)d(separate)h(w)m(ord;)g(if)f
(not)g(within)g(double)f(quotes,)j(these)e(w)m(ords)g(are)g(sub)5
-b(ject)33 b(to)g(w)m(ord)630 1663 y(splitting.)60 b(In)36
+b(ject)33 b(to)g(w)m(ord)630 3414 y(splitting.)60 b(In)36
b(con)m(texts)j(where)d(w)m(ord)g(splitting)h(is)g(not)g(p)s(erformed,)
-g(this)f(expands)g(to)630 1773 y(a)c(single)h(w)m(ord)e(with)h(eac)m(h)
+g(this)f(expands)g(to)630 3523 y(a)c(single)h(w)m(ord)e(with)h(eac)m(h)
h(p)s(ositional)g(parameter)f(separated)g(b)m(y)g(a)g(space.)46
-b(When)32 b(the)630 1882 y(expansion)i(o)s(ccurs)h(within)e(double)i
+b(When)32 b(the)630 3633 y(expansion)i(o)s(ccurs)h(within)e(double)i
(quotes,)h(and)e(w)m(ord)g(splitting)h(is)g(p)s(erformed,)f(eac)m(h)630
-1992 y(parameter)23 b(expands)f(to)i(a)f(separate)h(w)m(ord.)37
+3743 y(parameter)23 b(expands)f(to)i(a)f(separate)h(w)m(ord.)37
b(That)23 b(is,)i Ft("$@")c Fu(is)i(equiv)-5 b(alen)m(t)24
-b(to)g Ft("$1")29 b("$2")630 2101 y(...)o Fu(.)39 b(If)26
+b(to)g Ft("$1")29 b("$2")630 3852 y(...)o Fu(.)39 b(If)26
b(the)g(double-quoted)g(expansion)f(o)s(ccurs)h(within)f(a)h(w)m(ord,)h
-(the)f(expansion)g(of)g(the)630 2211 y(\014rst)31 b(parameter)h(is)g
+(the)f(expansion)g(of)g(the)630 3962 y(\014rst)31 b(parameter)h(is)g
(joined)f(with)g(the)h(b)s(eginning)f(part)h(of)f(the)h(original)h(w)m
-(ord,)f(and)f(the)630 2321 y(expansion)25 b(of)g(the)h(last)g
+(ord,)f(and)f(the)630 4071 y(expansion)25 b(of)g(the)h(last)g
(parameter)f(is)h(joined)f(with)g(the)g(last)h(part)f(of)g(the)h
-(original)g(w)m(ord.)630 2430 y(When)i(there)g(are)g(no)g(p)s
+(original)g(w)m(ord.)630 4181 y(When)i(there)g(are)g(no)g(p)s
(ositional)g(parameters,)h Ft("$@")e Fu(and)g Ft($@)h
-Fu(expand)f(to)h(nothing)g(\(i.e.,)630 2540 y(they)j(are)f(remo)m(v)m
-(ed\).)150 2698 y Ft(#)432 b Fu(\($#\))31 b(Expands)e(to)i(the)g(n)m
+Fu(expand)f(to)h(nothing)g(\(i.e.,)630 4291 y(they)j(are)f(remo)m(v)m
+(ed\).)150 4443 y Ft(#)432 b Fu(\($#\))31 b(Expands)e(to)i(the)g(n)m
(um)m(b)s(er)e(of)h(p)s(ositional)i(parameters)e(in)g(decimal.)150
-2857 y Ft(?)432 b Fu(\($?\))88 b(Expands)45 b(to)h(the)g(exit)h(status)
+4596 y Ft(?)432 b Fu(\($?\))88 b(Expands)45 b(to)h(the)g(exit)h(status)
f(of)g(the)g(most)h(recen)m(tly)g(executed)g(foreground)630
-2967 y(pip)s(eline.)150 3125 y Ft(-)432 b Fu(\($-,)24
+4706 y(pip)s(eline.)150 4858 y Ft(-)432 b Fu(\($-,)24
b(a)e(h)m(yphen.\))37 b(Expands)20 b(to)i(the)f(curren)m(t)h(option)f
(\015ags)h(as)f(sp)s(eci\014ed)g(up)s(on)f(in)m(v)m(o)s(cation,)630
-3235 y(b)m(y)38 b(the)h Ft(set)f Fu(builtin)g(command,)j(or)d(those)i
+4968 y(b)m(y)38 b(the)h Ft(set)f Fu(builtin)g(command,)j(or)d(those)i
(set)f(b)m(y)f(the)h(shell)g(itself)g(\(suc)m(h)g(as)g(the)g
-Ft(-i)630 3344 y Fu(option\).)150 3503 y Ft($)432 b Fu(\($$\))31
-b(Expands)d(to)j(the)e(pro)s(cess)h Fm(id)f Fu(of)h(the)g(shell.)41
-b(In)28 b(a)i Ft(\(\))f Fu(subshell,)h(it)g(expands)e(to)j(the)630
-3613 y(pro)s(cess)f Fm(id)g Fu(of)h(the)g(in)m(v)m(oking)g(shell,)g
-(not)g(the)f(subshell.)150 3771 y Ft(!)432 b Fu(\($!\))51
-b(Expands)32 b(to)i(the)g(pro)s(cess)f Fm(id)h Fu(of)f(the)h(job)f
-(most)h(recen)m(tly)h(placed)f(in)m(to)g(the)g(bac)m(k-)630
-3881 y(ground,)26 b(whether)g(executed)g(as)h(an)f(async)m(hronous)f
-(command)h(or)g(using)g(the)g Ft(bg)f Fu(builtin)630
-3990 y(\(see)31 b(Section)h(7.2)f([Job)f(Con)m(trol)h(Builtins],)g
-(page)h(108\).)150 4149 y Ft(0)432 b Fu(\($0\))46 b(Expands)d(to)i(the)
-g(name)g(of)f(the)h(shell)g(or)f(shell)h(script.)83 b(This)44
-b(is)g(set)h(at)h(shell)630 4259 y(initialization.)d(If)27
+Ft(-i)630 5078 y Fu(option\).)150 5230 y Ft($)432 b Fu(\($$\))39
+b(Expands)c(to)j(the)f(pro)s(cess)g Fm(id)g Fu(of)g(the)g(shell.)61
+b(In)36 b(a)h(subshell,)h(it)g(expands)e(to)i(the)630
+5340 y(pro)s(cess)30 b Fm(id)g Fu(of)h(the)g(in)m(v)m(oking)g(shell,)g
+(not)g(the)f(subshell.)p eop end
+%%Page: 24 30
+TeXDict begin 24 29 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(24)150 299
+y Ft(!)432 b Fu(\($!\))51 b(Expands)32 b(to)i(the)g(pro)s(cess)f
+Fm(id)h Fu(of)f(the)h(job)f(most)h(recen)m(tly)h(placed)f(in)m(to)g
+(the)g(bac)m(k-)630 408 y(ground,)26 b(whether)g(executed)g(as)h(an)f
+(async)m(hronous)f(command)h(or)g(using)g(the)g Ft(bg)f
+Fu(builtin)630 518 y(\(see)31 b(Section)h(7.2)f([Job)f(Con)m(trol)h
+(Builtins],)g(page)h(114\).)150 675 y Ft(0)432 b Fu(\($0\))46
+b(Expands)d(to)i(the)g(name)g(of)f(the)h(shell)g(or)f(shell)h(script.)
+83 b(This)44 b(is)g(set)h(at)h(shell)630 785 y(initialization.)d(If)27
b(Bash)h(is)g(in)m(v)m(ok)m(ed)h(with)e(a)i(\014le)e(of)h(commands)g
-(\(see)g(Section)h(3.8)g([Shell)630 4368 y(Scripts],)g(page)g(42\),)h
+(\(see)g(Section)h(3.8)g([Shell)630 894 y(Scripts],)g(page)g(46\),)h
Ft($0)e Fu(is)h(set)g(to)g(the)f(name)h(of)f(that)h(\014le.)41
-b(If)28 b(Bash)g(is)h(started)g(with)f(the)630 4478 y
+b(If)28 b(Bash)g(is)h(started)g(with)f(the)630 1004 y
Ft(-c)i Fu(option)h(\(see)h(Section)g(6.1)f([In)m(v)m(oking)h(Bash],)g
-(page)f(86\),)i(then)d Ft($0)g Fu(is)h(set)g(to)h(the)f(\014rst)630
-4587 y(argumen)m(t)g(after)g(the)g(string)g(to)g(b)s(e)f(executed,)i
+(page)f(91\),)i(then)d Ft($0)g Fu(is)h(set)g(to)h(the)f(\014rst)630
+1113 y(argumen)m(t)g(after)g(the)g(string)g(to)g(b)s(e)f(executed,)i
(if)f(one)g(is)f(presen)m(t.)42 b(Otherwise,)31 b(it)g(is)f(set)630
-4697 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m(ok)m(e)h(Bash,)f
-(as)g(giv)m(en)g(b)m(y)f(argumen)m(t)h(zero.)150 4937
-y Fs(3.5)68 b(Shell)45 b(Expansions)150 5096 y Fu(Expansion)27
+1223 y(to)h(the)g(\014lename)f(used)g(to)h(in)m(v)m(ok)m(e)h(Bash,)f
+(as)g(giv)m(en)g(b)m(y)f(argumen)m(t)h(zero.)150 1461
+y Fs(3.5)68 b(Shell)45 b(Expansions)150 1621 y Fu(Expansion)27
b(is)i(p)s(erformed)d(on)i(the)g(command)g(line)h(after)f(it)h(has)f(b)
s(een)f(split)h(in)m(to)i Ft(token)p Fu(s.)38 b(There)28
-b(are)150 5206 y(sev)m(en)j(kinds)e(of)i(expansion)f(p)s(erformed:)225
-5340 y Fq(\017)60 b Fu(brace)31 b(expansion)p eop end
-%%Page: 23 29
-TeXDict begin 23 28 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(23)225 299
-y Fq(\017)60 b Fu(tilde)31 b(expansion)225 436 y Fq(\017)60
+b(are)150 1730 y(sev)m(en)j(kinds)e(of)i(expansion)f(p)s(erformed:)225
+1863 y Fq(\017)60 b Fu(brace)31 b(expansion)225 1997
+y Fq(\017)60 b Fu(tilde)31 b(expansion)225 2130 y Fq(\017)60
b Fu(parameter)31 b(and)f(v)-5 b(ariable)31 b(expansion)225
-574 y Fq(\017)60 b Fu(command)30 b(substitution)225 711
-y Fq(\017)60 b Fu(arithmetic)32 b(expansion)225 849 y
-Fq(\017)60 b Fu(w)m(ord)30 b(splitting)225 986 y Fq(\017)60
-b Fu(\014lename)31 b(expansion)275 1155 y(The)24 b(order)h(of)h
-(expansions)f(is:)39 b(brace)25 b(expansion;)j(tilde)e(expansion,)g
-(parameter)g(and)f(v)-5 b(ariable)26 b(ex-)150 1264 y(pansion,)j
-(arithmetic)i(expansion,)f(and)f(command)g(substitution)g(\(done)g(in)h
-(a)f(left-to-righ)m(t)k(fashion\);)150 1374 y(w)m(ord)d(splitting;)h
-(and)f(\014lename)h(expansion.)275 1515 y(On)42 b(systems)h(that)h(can)
-g(supp)s(ort)e(it,)47 b(there)d(is)f(an)h(additional)g(expansion)f(a)m
-(v)-5 b(ailable:)69 b Fr(pro)s(cess)150 1624 y(substitution)p
-Fu(.)50 b(This)33 b(is)h(p)s(erformed)e(at)j(the)f(same)g(time)g(as)g
-(tilde,)i(parameter,)f(v)-5 b(ariable,)35 b(and)f(arith-)150
-1734 y(metic)d(expansion)g(and)e(command)i(substitution.)275
-1874 y(After)f(these)h(expansions)f(are)g(p)s(erformed,)f(quote)i(c)m
+2263 y Fq(\017)60 b Fu(command)30 b(substitution)225
+2396 y Fq(\017)60 b Fu(arithmetic)32 b(expansion)225
+2529 y Fq(\017)60 b Fu(w)m(ord)30 b(splitting)225 2663
+y Fq(\017)60 b Fu(\014lename)31 b(expansion)275 2820
+y(The)24 b(order)h(of)h(expansions)f(is:)39 b(brace)25
+b(expansion;)j(tilde)e(expansion,)g(parameter)g(and)f(v)-5
+b(ariable)26 b(ex-)150 2929 y(pansion,)j(arithmetic)i(expansion,)f(and)
+f(command)g(substitution)g(\(done)g(in)h(a)f(left-to-righ)m(t)k
+(fashion\);)150 3039 y(w)m(ord)d(splitting;)h(and)f(\014lename)h
+(expansion.)275 3172 y(On)c(systems)h(that)h(can)g(supp)s(ort)e(it,)i
+(there)g(is)f(an)g(additional)i(expansion)e(a)m(v)-5
+b(ailable:)42 b Fr(pro)s(cess)28 b(sub-)150 3282 y(stitution)p
+Fu(.)42 b(This)30 b(is)g(p)s(erformed)f(at)j(the)e(same)h(time)h(as)e
+(tilde,)i(parameter,)f(v)-5 b(ariable,)32 b(and)e(arithmetic)150
+3391 y(expansion)g(and)g(command)g(substitution.)275
+3524 y(After)g(these)h(expansions)f(are)g(p)s(erformed,)f(quote)i(c)m
(haracters)h(presen)m(t)e(in)g(the)g(original)i(w)m(ord)e(are)150
-1984 y(remo)m(v)m(ed)h(unless)f(they)h(ha)m(v)m(e)g(b)s(een)f(quoted)g
+3634 y(remo)m(v)m(ed)h(unless)f(they)h(ha)m(v)m(e)g(b)s(een)f(quoted)g
(themselv)m(es)i(\()p Fr(quote)f(remo)m(v)-5 b(al)t Fu(\).)275
-2124 y(Only)31 b(brace)i(expansion,)h(w)m(ord)e(splitting,)i(and)e
+3767 y(Only)31 b(brace)i(expansion,)h(w)m(ord)e(splitting,)i(and)e
(\014lename)h(expansion)f(can)h(increase)g(the)g(n)m(um)m(b)s(er)150
-2234 y(of)24 b(w)m(ords)g(of)g(the)h(expansion;)h(other)e(expansions)g
+3877 y(of)24 b(w)m(ords)g(of)g(the)h(expansion;)h(other)e(expansions)g
(expand)g(a)g(single)h(w)m(ord)f(to)h(a)f(single)h(w)m(ord.)38
-b(The)24 b(only)150 2344 y(exceptions)i(to)f(this)g(are)g(the)g
+b(The)24 b(only)150 3986 y(exceptions)i(to)f(this)g(are)g(the)g
(expansions)g(of)g Ft("$@")f Fu(and)g Ft($*)g Fu(\(see)i(Section)f
-(3.4.2)i([Sp)s(ecial)e(P)m(arameters],)150 2453 y(page)31
-b(21\),)h(and)e Ft("${)p Fj(name)p Ft([@]}")d Fu(and)i
+(3.4.2)i([Sp)s(ecial)e(P)m(arameters],)150 4096 y(page)31
+b(23\),)h(and)e Ft("${)p Fj(name)p Ft([@]}")d Fu(and)i
Ft(${)p Fj(name)p Ft([*]})f Fu(\(see)j(Section)h(6.7)f([Arra)m(ys],)g
-(page)g(95\).)275 2594 y(After)41 b(all)i(expansions,)h
+(page)g(100\).)275 4229 y(After)41 b(all)i(expansions,)h
Ft(quote)29 b(removal)40 b Fu(\(see)i(Section)h(3.5.9)g([Quote)f(Remo)m
-(v)-5 b(al],)47 b(page)42 b(35\))h(is)150 2703 y(p)s(erformed.)150
-2908 y Fk(3.5.1)63 b(Brace)40 b(Expansion)150 3055 y
+(v)-5 b(al],)47 b(page)42 b(38\))h(is)150 4339 y(p)s(erformed.)150
+4535 y Fk(3.5.1)63 b(Brace)40 b(Expansion)150 4682 y
Fu(Brace)32 b(expansion)f(is)f(a)i(mec)m(hanism)f(b)m(y)f(whic)m(h)h
(arbitrary)f(strings)h(ma)m(y)g(b)s(e)f(generated.)43
-b(This)30 b(mec)m(h-)150 3165 y(anism)35 b(is)h(similar)f(to)h
+b(This)30 b(mec)m(h-)150 4792 y(anism)35 b(is)h(similar)f(to)h
Fr(\014lename)g(expansion)f Fu(\(see)i(Section)f(3.5.8)h([Filename)g
-(Expansion],)f(page)g(33\),)150 3275 y(but)26 b(the)h(\014lenames)g
+(Expansion],)f(page)g(35\),)150 4902 y(but)26 b(the)h(\014lenames)g
(generated)h(need)f(not)g(exist.)40 b(P)m(atterns)28
b(to)f(b)s(e)g(brace)g(expanded)f(tak)m(e)i(the)f(form)g(of)150
-3384 y(an)j(optional)h Fr(pream)m(ble)p Fu(,)g(follo)m(w)m(ed)g(b)m(y)f
+5011 y(an)j(optional)h Fr(pream)m(ble)p Fu(,)g(follo)m(w)m(ed)g(b)m(y)f
(either)g(a)h(series)f(of)g(comma-separated)i(strings)d(or)h(a)h
-(sequence)150 3494 y(expression)36 b(b)s(et)m(w)m(een)g(a)h(pair)e(of)i
+(sequence)150 5121 y(expression)36 b(b)s(et)m(w)m(een)g(a)h(pair)e(of)i
(braces,)g(follo)m(w)m(ed)h(b)m(y)e(an)g(optional)h Fr(p)s(ostscript)p
-Fu(.)57 b(The)36 b(pream)m(ble)g(is)150 3603 y(pre\014xed)28
+Fu(.)57 b(The)36 b(pream)m(ble)g(is)150 5230 y(pre\014xed)28
b(to)h(eac)m(h)h(string)f(con)m(tained)h(within)e(the)h(braces,)g(and)g
(the)g(p)s(ostscript)f(is)h(then)f(app)s(ended)f(to)150
-3713 y(eac)m(h)32 b(resulting)e(string,)h(expanding)e(left)j(to)f(righ)
-m(t.)275 3853 y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f(nested.)59
+5340 y(eac)m(h)32 b(resulting)e(string,)h(expanding)e(left)j(to)f(righ)
+m(t.)p eop end
+%%Page: 25 31
+TeXDict begin 25 30 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(25)275 299
+y(Brace)37 b(expansions)f(ma)m(y)h(b)s(e)f(nested.)59
b(The)36 b(results)g(of)h(eac)m(h)g(expanded)f(string)g(are)h(not)g
-(sorted;)150 3963 y(left)31 b(to)g(righ)m(t)g(order)f(is)g(preserv)m
-(ed.)41 b(F)-8 b(or)31 b(example,)390 4104 y Ft(bash$)46
-b(echo)h(a{d,c,b}e)390 4213 y(ade)g(ace)g(abe)275 4354
+(sorted;)150 408 y(left)31 b(to)g(righ)m(t)g(order)f(is)g(preserv)m
+(ed.)41 b(F)-8 b(or)31 b(example,)390 537 y Ft(bash$)46
+b(echo)h(a{d,c,b}e)390 647 y(ade)g(ace)g(abe)275 776
y Fu(A)23 b(sequence)g(expression)g(tak)m(es)i(the)e(form)g
Ft({)p Fj(x)p Ft(..)p Fj(y)p Ft([..)p Fj(incr)p Ft(]})p
Fu(,)e(where)i Fr(x)29 b Fu(and)23 b Fr(y)30 b Fu(are)24
-b(either)g(in)m(tegers)150 4463 y(or)42 b(single)h(c)m(haracters,)48
-b(and)41 b Fr(incr)p Fu(,)46 b(an)c(optional)i(incremen)m(t,)i(is)c(an)
-h(in)m(teger.)78 b(When)42 b(in)m(tegers)i(are)150 4573
-y(supplied,)f(the)f(expression)f(expands)f(to)i(eac)m(h)h(n)m(um)m(b)s
-(er)d(b)s(et)m(w)m(een)i Fr(x)47 b Fu(and)41 b Fr(y)p
-Fu(,)j(inclusiv)m(e.)75 b(Supplied)150 4682 y(in)m(tegers)33
-b(ma)m(y)e(b)s(e)g(pre\014xed)f(with)h(`)p Ft(0)p Fu(')h(to)g(force)g
-(eac)m(h)g(term)g(to)g(ha)m(v)m(e)g(the)g(same)g(width.)42
-b(When)31 b(either)150 4792 y Fr(x)43 b Fu(or)36 b Fr(y)44
-b Fu(b)s(egins)36 b(with)g(a)h(zero,)i(the)e(shell)g(attempts)g(to)g
-(force)g(all)h(generated)f(terms)g(to)g(con)m(tain)h(the)150
-4902 y(same)e(n)m(um)m(b)s(er)e(of)i(digits,)i(zero-padding)d(where)h
-(necessary)-8 b(.)57 b(When)35 b(c)m(haracters)i(are)f(supplied,)g(the)
-150 5011 y(expression)24 b(expands)g(to)h(eac)m(h)h(c)m(haracter)g
-(lexicographically)h(b)s(et)m(w)m(een)e Fr(x)30 b Fu(and)24
-b Fr(y)p Fu(,)i(inclusiv)m(e,)h(using)d(the)150 5121
-y(default)32 b(C)g(lo)s(cale.)48 b(Note)34 b(that)f(b)s(oth)e
-Fr(x)39 b Fu(and)31 b Fr(y)40 b Fu(m)m(ust)32 b(b)s(e)g(of)g(the)h
-(same)f(t)m(yp)s(e.)47 b(When)32 b(the)g(incremen)m(t)150
-5230 y(is)d(supplied,)g(it)h(is)f(used)f(as)i(the)f(di\013erence)h(b)s
-(et)m(w)m(een)g(eac)m(h)g(term.)41 b(The)29 b(default)g(incremen)m(t)h
-(is)f(1)h(or)f(-1)150 5340 y(as)i(appropriate.)p eop
-end
-%%Page: 24 30
-TeXDict begin 24 29 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(24)275 299
-y(Brace)36 b(expansion)g(is)f(p)s(erformed)f(b)s(efore)h(an)m(y)h
-(other)g(expansions,)h(and)e(an)m(y)g(c)m(haracters)i(sp)s(ecial)150
-408 y(to)32 b(other)g(expansions)g(are)g(preserv)m(ed)f(in)h(the)f
-(result.)45 b(It)32 b(is)g(strictly)g(textual.)46 b(Bash)32
-b(do)s(es)f(not)h(apply)150 518 y(an)m(y)27 b(syn)m(tactic)i(in)m
-(terpretation)g(to)f(the)f(con)m(text)i(of)e(the)g(expansion)g(or)g
-(the)h(text)g(b)s(et)m(w)m(een)f(the)h(braces.)275 656
-y(A)h(correctly-formed)i(brace)f(expansion)f(m)m(ust)h(con)m(tain)h
-(unquoted)e(op)s(ening)g(and)g(closing)i(braces,)150
-766 y(and)h(at)i(least)g(one)f(unquoted)g(comma)g(or)g(a)h(v)-5
+b(either)g(in)m(tegers)150 886 y(or)34 b(letters,)i(and)d
+Fr(incr)p Fu(,)h(an)g(optional)g(incremen)m(t,)i(is)d(an)h(in)m(teger.)
+52 b(When)33 b(in)m(tegers)i(are)f(supplied,)g(the)150
+995 y(expression)f(expands)f(to)i(eac)m(h)g(n)m(um)m(b)s(er)e(b)s(et)m
+(w)m(een)i Fr(x)39 b Fu(and)33 b Fr(y)p Fu(,)h(inclusiv)m(e.)50
+b(Supplied)31 b(in)m(tegers)k(ma)m(y)f(b)s(e)150 1105
+y(pre\014xed)h(with)h(`)p Ft(0)p Fu(')g(to)h(force)g(eac)m(h)h(term)e
+(to)h(ha)m(v)m(e)g(the)g(same)g(width.)57 b(When)36 b(either)h
+Fr(x)42 b Fu(or)37 b Fr(y)43 b Fu(b)s(egins)150 1214
+y(with)37 b(a)h(zero,)j(the)c(shell)h(attempts)h(to)f(force)g(all)g
+(generated)h(terms)e(to)i(con)m(tain)g(the)e(same)h(n)m(um)m(b)s(er)150
+1324 y(of)30 b(digits,)h(zero-padding)f(where)f(necessary)-8
+b(.)41 b(When)30 b(letters)g(are)h(supplied,)d(the)i(expression)g
+(expands)150 1433 y(to)k(eac)m(h)g(c)m(haracter)h(lexicographically)h
+(b)s(et)m(w)m(een)e Fr(x)40 b Fu(and)32 b Fr(y)p Fu(,)i(inclusiv)m(e,)i
+(using)c(the)i(default)f(C)g(lo)s(cale.)150 1543 y(Note)f(that)f(b)s
+(oth)f Fr(x)37 b Fu(and)30 b Fr(y)38 b Fu(m)m(ust)31
+b(b)s(e)f(of)h(the)g(same)g(t)m(yp)s(e)g(\(in)m(teger)h(or)f(letter\).)
+43 b(When)30 b(the)h(incremen)m(t)150 1653 y(is)e(supplied,)g(it)h(is)f
+(used)f(as)i(the)f(di\013erence)h(b)s(et)m(w)m(een)g(eac)m(h)g(term.)41
+b(The)29 b(default)g(incremen)m(t)h(is)f(1)h(or)f(-1)150
+1762 y(as)i(appropriate.)275 1891 y(Brace)36 b(expansion)g(is)f(p)s
+(erformed)f(b)s(efore)h(an)m(y)h(other)g(expansions,)h(and)e(an)m(y)g
+(c)m(haracters)i(sp)s(ecial)150 2001 y(to)32 b(other)g(expansions)g
+(are)g(preserv)m(ed)f(in)h(the)f(result.)45 b(It)32 b(is)g(strictly)g
+(textual.)46 b(Bash)32 b(do)s(es)f(not)h(apply)150 2110
+y(an)m(y)27 b(syn)m(tactic)i(in)m(terpretation)g(to)f(the)f(con)m(text)
+i(of)e(the)g(expansion)g(or)g(the)h(text)g(b)s(et)m(w)m(een)f(the)h
+(braces.)275 2239 y(A)h(correctly-formed)i(brace)f(expansion)f(m)m(ust)
+h(con)m(tain)h(unquoted)e(op)s(ening)g(and)g(closing)i(braces,)150
+2349 y(and)h(at)i(least)g(one)f(unquoted)g(comma)g(or)g(a)h(v)-5
b(alid)33 b(sequence)g(expression.)48 b(An)m(y)33 b(incorrectly)h
-(formed)150 875 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)275
-1013 y(A)25 b Fi({)h Fu(or)f(`)p Ft(,)p Fu(')g(ma)m(y)h(b)s(e)f(quoted)
+(formed)150 2458 y(brace)d(expansion)f(is)g(left)h(unc)m(hanged.)275
+2587 y(A)25 b Fi({)h Fu(or)f(`)p Ft(,)p Fu(')g(ma)m(y)h(b)s(e)f(quoted)
h(with)f(a)g(bac)m(kslash)h(to)g(prev)m(en)m(t)g(its)g(b)s(eing)f
-(considered)g(part)g(of)h(a)g(brace)150 1123 y(expression.)51
+(considered)g(part)g(of)h(a)g(brace)150 2697 y(expression.)51
b(T)-8 b(o)34 b(a)m(v)m(oid)i(con\015icts)e(with)g(parameter)g
(expansion,)h(the)f(string)g(`)p Ft(${)p Fu(')g(is)g(not)g(considered)
-150 1232 y(eligible)e(for)e(brace)h(expansion,)f(and)g(inhibits)g
+150 2807 y(eligible)e(for)e(brace)h(expansion,)f(and)g(inhibits)g
(brace)h(expansion)f(un)m(til)g(the)h(closing)h(`)p Ft(})p
-Fu('.)275 1370 y(This)e(construct)h(is)g(t)m(ypically)i(used)d(as)h
+Fu('.)275 2936 y(This)e(construct)h(is)g(t)m(ypically)i(used)d(as)h
(shorthand)f(when)g(the)h(common)g(pre\014x)f(of)h(the)g(strings)g(to)
-150 1480 y(b)s(e)f(generated)h(is)g(longer)g(than)f(in)g(the)g(ab)s(o)m
-(v)m(e)i(example:)390 1618 y Ft(mkdir)46 b(/usr/local/src/bash/{old,n)o
-(ew,)o(dist)o(,bug)o(s})275 1756 y Fu(or)390 1894 y Ft(chown)g(root)h
+150 3045 y(b)s(e)f(generated)h(is)g(longer)g(than)f(in)g(the)g(ab)s(o)m
+(v)m(e)i(example:)390 3174 y Ft(mkdir)46 b(/usr/local/src/bash/{old,n)o
+(ew,)o(dist)o(,bug)o(s})275 3303 y Fu(or)390 3432 y Ft(chown)g(root)h
(/usr/{ucb/{ex,edit},lib/)o({ex?)o(.?*,)o(how)o(_ex})o(})150
-2097 y Fk(3.5.2)63 b(Tilde)41 b(Expansion)150 2243 y
+3620 y Fk(3.5.2)63 b(Tilde)41 b(Expansion)150 3767 y
Fu(If)29 b(a)h(w)m(ord)g(b)s(egins)f(with)g(an)h(unquoted)f(tilde)h(c)m
(haracter)h(\(`)p Ft(~)p Fu('\),)g(all)g(of)f(the)g(c)m(haracters)h(up)
-d(to)j(the)f(\014rst)150 2353 y(unquoted)24 b(slash)g(\(or)h(all)h(c)m
+d(to)j(the)f(\014rst)150 3877 y(unquoted)24 b(slash)g(\(or)h(all)h(c)m
(haracters,)h(if)e(there)g(is)f(no)h(unquoted)e(slash\))i(are)g
-(considered)g(a)g Fr(tilde-pre\014x)p Fu(.)150 2463 y(If)38
+(considered)g(a)g Fr(tilde-pre\014x)p Fu(.)150 3986 y(If)38
b(none)g(of)g(the)h(c)m(haracters)g(in)f(the)h(tilde-pre\014x)f(are)h
(quoted,)h(the)f(c)m(haracters)h(in)d(the)i(tilde-pre\014x)150
-2572 y(follo)m(wing)28 b(the)g(tilde)f(are)h(treated)g(as)f(a)g(p)s
+4096 y(follo)m(wing)28 b(the)g(tilde)f(are)h(treated)g(as)f(a)g(p)s
(ossible)g Fr(login)h(name)p Fu(.)39 b(If)27 b(this)g(login)h(name)f
-(is)g(the)g(n)m(ull)g(string,)150 2682 y(the)35 b(tilde)g(is)g
+(is)g(the)g(n)m(ull)g(string,)150 4205 y(the)35 b(tilde)g(is)g
(replaced)g(with)f(the)h(v)-5 b(alue)35 b(of)g(the)g
Ft(HOME)e Fu(shell)i(v)-5 b(ariable.)54 b(If)34 b Ft(HOME)g
-Fu(is)h(unset,)g(the)g(home)150 2791 y(directory)e(of)g(the)f(user)g
+Fu(is)h(unset,)g(the)g(home)150 4315 y(directory)e(of)g(the)f(user)g
(executing)i(the)e(shell)h(is)f(substituted)g(instead.)47
-b(Otherwise,)33 b(the)g(tilde-pre\014x)150 2901 y(is)d(replaced)h(with)
+b(Otherwise,)33 b(the)g(tilde-pre\014x)150 4425 y(is)d(replaced)h(with)
f(the)h(home)f(directory)h(asso)s(ciated)h(with)e(the)h(sp)s(eci\014ed)
-e(login)j(name.)275 3039 y(If)g(the)h(tilde-pre\014x)f(is)h(`)p
+e(login)j(name.)275 4554 y(If)g(the)h(tilde-pre\014x)f(is)h(`)p
Ft(~+)p Fu(',)g(the)g(v)-5 b(alue)33 b(of)g(the)g(shell)g(v)-5
b(ariable)34 b Ft(PWD)d Fu(replaces)j(the)f(tilde-pre\014x.)47
-b(If)150 3149 y(the)31 b(tilde-pre\014x)f(is)g(`)p Ft(~-)p
+b(If)150 4663 y(the)31 b(tilde-pre\014x)f(is)g(`)p Ft(~-)p
Fu(',)h(the)f(v)-5 b(alue)31 b(of)g(the)f(shell)h(v)-5
b(ariable)31 b Ft(OLDPWD)p Fu(,)e(if)h(it)h(is)g(set,)g(is)f
-(substituted.)275 3287 y(If)f(the)h(c)m(haracters)h(follo)m(wing)h(the)
+(substituted.)275 4792 y(If)f(the)h(c)m(haracters)h(follo)m(wing)h(the)
e(tilde)g(in)g(the)g(tilde-pre\014x)g(consist)g(of)g(a)h(n)m(um)m(b)s
-(er)d Fr(N)p Fu(,)j(optionally)150 3396 y(pre\014xed)22
+(er)d Fr(N)p Fu(,)j(optionally)150 4902 y(pre\014xed)22
b(b)m(y)h(a)h(`)p Ft(+)p Fu(')f(or)h(a)f(`)p Ft(-)p Fu(',)j(the)d
(tilde-pre\014x)g(is)h(replaced)f(with)g(the)h(corresp)s(onding)e
-(elemen)m(t)j(from)e(the)150 3506 y(directory)36 b(stac)m(k,)i(as)e(it)
+(elemen)m(t)j(from)e(the)150 5011 y(directory)36 b(stac)m(k,)i(as)e(it)
g(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)g(the)f
Ft(dirs)g Fu(builtin)g(in)m(v)m(ok)m(ed)i(with)e(the)g(c)m(haracters)
-150 3615 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g
+150 5121 y(follo)m(wing)40 b(tilde)f(in)g(the)f(tilde-pre\014x)h(as)g
(an)f(argumen)m(t)h(\(see)h(Section)f(6.8)h([The)e(Directory)i(Stac)m
-(k],)150 3725 y(page)c(97\).)57 b(If)35 b(the)g(tilde-pre\014x,)i(sans)
-e(the)h(tilde,)h(consists)f(of)g(a)f(n)m(um)m(b)s(er)f(without)i(a)f
-(leading)h(`)p Ft(+)p Fu(')g(or)150 3834 y(`)p Ft(-)p
-Fu(',)31 b(`)p Ft(+)p Fu(')f(is)h(assumed.)275 3972 y(If)e(the)i(login)
-g(name)g(is)f(in)m(v)-5 b(alid,)31 b(or)g(the)f(tilde)h(expansion)f
-(fails,)i(the)e(w)m(ord)g(is)h(left)g(unc)m(hanged.)275
-4110 y(Eac)m(h)38 b(v)-5 b(ariable)38 b(assignmen)m(t)h(is)e(c)m(hec)m
-(k)m(ed)j(for)d(unquoted)g(tilde-pre\014xes)h(immediately)g(follo)m
-(wing)150 4220 y(a)d(`)p Ft(:)p Fu(')g(or)g(the)g(\014rst)f(`)p
-Ft(=)p Fu('.)54 b(In)34 b(these)h(cases,)i(tilde)e(expansion)g(is)g
-(also)h(p)s(erformed.)52 b(Consequen)m(tly)-8 b(,)37
-b(one)150 4330 y(ma)m(y)29 b(use)e(\014lenames)h(with)g(tildes)g(in)g
-(assignmen)m(ts)g(to)h Ft(PATH)p Fu(,)f Ft(MAILPATH)p
-Fu(,)e(and)h Ft(CDPATH)p Fu(,)g(and)h(the)g(shell)150
-4439 y(assigns)j(the)f(expanded)g(v)-5 b(alue.)275 4577
-y(The)29 b(follo)m(wing)j(table)g(sho)m(ws)e(ho)m(w)g(Bash)h(treats)g
-(unquoted)e(tilde-pre\014xes:)150 4742 y Ft(~)432 b Fu(The)30
-b(v)-5 b(alue)31 b(of)f Ft($HOME)150 4905 y(~/foo)240
-b($HOME/foo)150 5068 y(~fred/foo)630 5177 y Fu(The)30
-b(sub)s(directory)f Ft(foo)h Fu(of)g(the)h(home)f(directory)h(of)g(the)
-f(user)g Ft(fred)150 5340 y(~+/foo)192 b($PWD/foo)p eop
-end
-%%Page: 25 31
-TeXDict begin 25 30 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(25)150 299
-y Ft(~-/foo)192 b(${OLDPWD-'~-'}/foo)150 471 y(~)p Fj(N)384
-b Fu(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m
-(y)f(`)p Ft(dirs)g(+)p Fj(N)p Fu(')150 644 y Ft(~+)p
-Fj(N)336 b Fu(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g(displa)m(y)m
-(ed)h(b)m(y)f(`)p Ft(dirs)g(+)p Fj(N)p Fu(')150 816 y
-Ft(~-)p Fj(N)336 b Fu(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g
-(displa)m(y)m(ed)h(b)m(y)f(`)p Ft(dirs)g(-)p Fj(N)p Fu(')275
-995 y(Bash)40 b(also)h(p)s(erforms)e(tilde)h(expansion)g(on)h(w)m(ords)
-e(satisfying)i(the)f(conditions)h(of)f(v)-5 b(ariable)41
-b(as-)150 1105 y(signmen)m(ts)f(\(see)h(Section)g(3.4)g([Shell)f(P)m
-(arameters],)k(page)d(20\))g(when)e(they)h(app)s(ear)f(as)i(argumen)m
-(ts)150 1215 y(to)c(simple)f(commands.)57 b(Bash)36 b(do)s(es)f(not)h
-(do)g(this,)i(except)f(for)e(the)h Fr(declaration)i Fu(commands)d
-(listed)150 1324 y(ab)s(o)m(v)m(e,)d(when)d(in)h Fm(posix)g
-Fu(mo)s(de.)150 1536 y Fk(3.5.3)63 b(Shell)41 b(P)m(arameter)f
-(Expansion)150 1683 y Fu(The)g(`)p Ft($)p Fu(')h(c)m(haracter)i(in)m
-(tro)s(duces)d(parameter)h(expansion,)j(command)d(substitution,)i(or)e
-(arithmetic)150 1793 y(expansion.)d(The)22 b(parameter)h(name)f(or)g
-(sym)m(b)s(ol)h(to)g(b)s(e)e(expanded)h(ma)m(y)h(b)s(e)f(enclosed)h(in)
-f(braces,)i(whic)m(h)150 1903 y(are)31 b(optional)g(but)f(serv)m(e)h
-(to)h(protect)f(the)g(v)-5 b(ariable)31 b(to)g(b)s(e)f(expanded)g(from)
-g(c)m(haracters)i(immediately)150 2012 y(follo)m(wing)g(it)f(whic)m(h)f
-(could)g(b)s(e)g(in)m(terpreted)h(as)f(part)h(of)f(the)h(name.)275
-2160 y(When)44 b(braces)i(are)f(used,)j(the)e(matc)m(hing)g(ending)f
-(brace)g(is)g(the)g(\014rst)g(`)p Ft(})p Fu(')g(not)g(escap)s(ed)h(b)m
-(y)f(a)150 2269 y(bac)m(kslash)40 b(or)f(within)g(a)g(quoted)g(string,)
-j(and)c(not)i(within)e(an)h(em)m(b)s(edded)f(arithmetic)j(expansion,)
-150 2379 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275
-2526 y(The)40 b(basic)i(form)f(of)g(parameter)h(expansion)f(is)h($)p
+(k],)150 5230 y(page)34 b(102\).)50 b(If)32 b(the)h(tilde-pre\014x,)h
+(sans)e(the)h(tilde,)i(consists)e(of)g(a)h(n)m(um)m(b)s(er)d(without)i
+(a)g(leading)h(`)p Ft(+)p Fu(')f(or)150 5340 y(`)p Ft(-)p
+Fu(',)e(`)p Ft(+)p Fu(')f(is)h(assumed.)p eop end
+%%Page: 26 32
+TeXDict begin 26 31 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(26)275 299
+y(If)29 b(the)i(login)g(name)g(is)f(in)m(v)-5 b(alid,)31
+b(or)g(the)f(tilde)h(expansion)f(fails,)i(the)e(w)m(ord)g(is)h(left)g
+(unc)m(hanged.)275 438 y(Eac)m(h)38 b(v)-5 b(ariable)38
+b(assignmen)m(t)h(is)e(c)m(hec)m(k)m(ed)j(for)d(unquoted)g
+(tilde-pre\014xes)h(immediately)g(follo)m(wing)150 547
+y(a)d(`)p Ft(:)p Fu(')g(or)g(the)g(\014rst)f(`)p Ft(=)p
+Fu('.)54 b(In)34 b(these)h(cases,)i(tilde)e(expansion)g(is)g(also)h(p)s
+(erformed.)52 b(Consequen)m(tly)-8 b(,)37 b(one)150 657
+y(ma)m(y)29 b(use)e(\014lenames)h(with)g(tildes)g(in)g(assignmen)m(ts)g
+(to)h Ft(PATH)p Fu(,)f Ft(MAILPATH)p Fu(,)e(and)h Ft(CDPATH)p
+Fu(,)g(and)h(the)g(shell)150 766 y(assigns)j(the)f(expanded)g(v)-5
+b(alue.)275 905 y(The)29 b(follo)m(wing)j(table)g(sho)m(ws)e(ho)m(w)g
+(Bash)h(treats)g(unquoted)e(tilde-pre\014xes:)150 1071
+y Ft(~)432 b Fu(The)30 b(v)-5 b(alue)31 b(of)f Ft($HOME)150
+1234 y(~/foo)240 b($HOME/foo)150 1398 y(~fred/foo)630
+1508 y Fu(The)30 b(sub)s(directory)f Ft(foo)h Fu(of)g(the)h(home)f
+(directory)h(of)g(the)f(user)g Ft(fred)150 1671 y(~+/foo)192
+b($PWD/foo)150 1835 y(~-/foo)g(${OLDPWD-'~-'}/foo)150
+1998 y(~)p Fj(N)384 b Fu(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)g
+(displa)m(y)m(ed)h(b)m(y)f(`)p Ft(dirs)g(+)p Fj(N)p Fu(')150
+2162 y Ft(~+)p Fj(N)336 b Fu(The)30 b(string)g(that)h(w)m(ould)f(b)s(e)
+g(displa)m(y)m(ed)h(b)m(y)f(`)p Ft(dirs)g(+)p Fj(N)p
+Fu(')150 2326 y Ft(~-)p Fj(N)336 b Fu(The)30 b(string)g(that)h(w)m
+(ould)f(b)s(e)g(displa)m(y)m(ed)h(b)m(y)f(`)p Ft(dirs)g(-)p
+Fj(N)p Fu(')275 2491 y(Bash)40 b(also)h(p)s(erforms)e(tilde)h
+(expansion)g(on)h(w)m(ords)e(satisfying)i(the)f(conditions)h(of)f(v)-5
+b(ariable)41 b(as-)150 2601 y(signmen)m(ts)f(\(see)h(Section)g(3.4)g
+([Shell)f(P)m(arameters],)k(page)d(21\))g(when)e(they)h(app)s(ear)f(as)
+i(argumen)m(ts)150 2710 y(to)c(simple)f(commands.)57
+b(Bash)36 b(do)s(es)f(not)h(do)g(this,)i(except)f(for)e(the)h
+(declaration)i(commands)d(listed)150 2820 y(ab)s(o)m(v)m(e,)d(when)d
+(in)h Fm(posix)g Fu(mo)s(de.)150 3024 y Fk(3.5.3)63 b(Shell)41
+b(P)m(arameter)f(Expansion)150 3170 y Fu(The)g(`)p Ft($)p
+Fu(')h(c)m(haracter)i(in)m(tro)s(duces)d(parameter)h(expansion,)j
+(command)d(substitution,)i(or)e(arithmetic)150 3280 y(expansion.)d(The)
+22 b(parameter)h(name)f(or)g(sym)m(b)s(ol)h(to)g(b)s(e)e(expanded)h(ma)
+m(y)h(b)s(e)f(enclosed)h(in)f(braces,)i(whic)m(h)150
+3390 y(are)31 b(optional)g(but)f(serv)m(e)h(to)h(protect)f(the)g(v)-5
+b(ariable)31 b(to)g(b)s(e)f(expanded)g(from)g(c)m(haracters)i
+(immediately)150 3499 y(follo)m(wing)g(it)f(whic)m(h)f(could)g(b)s(e)g
+(in)m(terpreted)h(as)f(part)h(of)f(the)h(name.)275 3638
+y(When)44 b(braces)i(are)f(used,)j(the)e(matc)m(hing)g(ending)f(brace)g
+(is)g(the)g(\014rst)g(`)p Ft(})p Fu(')g(not)g(escap)s(ed)h(b)m(y)f(a)
+150 3748 y(bac)m(kslash)40 b(or)f(within)g(a)g(quoted)g(string,)j(and)c
+(not)i(within)e(an)h(em)m(b)s(edded)f(arithmetic)j(expansion,)150
+3857 y(command)30 b(substitution,)g(or)h(parameter)g(expansion.)275
+3996 y(The)40 b(basic)i(form)f(of)g(parameter)h(expansion)f(is)h($)p
Fi({)p Fr(parameter)7 b Fi(})p Fu(.)74 b(The)41 b(v)-5
-b(alue)42 b(of)g Fr(parameter)48 b Fu(is)150 2636 y(substituted.)43
+b(alue)42 b(of)g Fr(parameter)48 b Fu(is)150 4105 y(substituted.)43
b(The)31 b Fr(parameter)39 b Fu(is)31 b(a)h(shell)f(parameter)h(as)g
(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)g(3.4)h([Shell)150
-2746 y(P)m(arameters],)e(page)f(20\))h(or)e(an)g(arra)m(y)h(reference)f
-(\(see)i(Section)f(6.7)g([Arra)m(ys],)g(page)g(95\).)42
-b(The)29 b(braces)150 2855 y(are)j(required)g(when)f
+4215 y(P)m(arameters],)28 b(page)f(21\))g(or)f(an)f(arra)m(y)h
+(reference)h(\(see)f(Section)h(6.7)g([Arra)m(ys],)g(page)g(100\).)41
+b(The)25 b(braces)150 4325 y(are)32 b(required)g(when)f
Fr(parameter)39 b Fu(is)32 b(a)h(p)s(ositional)f(parameter)h(with)f
-(more)g(than)g(one)g(digit,)i(or)e(when)150 2965 y Fr(parameter)37
+(more)g(than)g(one)g(digit,)i(or)e(when)150 4434 y Fr(parameter)37
b Fu(is)31 b(follo)m(w)m(ed)h(b)m(y)e(a)h(c)m(haracter)h(that)f(is)f
(not)h(to)g(b)s(e)f(in)m(terpreted)g(as)h(part)f(of)h(its)f(name.)275
-3112 y(If)k(the)h(\014rst)f(c)m(haracter)i(of)f Fr(parameter)42
+4573 y(If)k(the)h(\014rst)f(c)m(haracter)i(of)f Fr(parameter)42
b Fu(is)35 b(an)g(exclamation)i(p)s(oin)m(t)e(\(!\),)i(and)d
-Fr(parameter)42 b Fu(is)34 b(not)i(a)150 3222 y Fr(nameref)p
-Fu(,)c(it)f(in)m(tro)s(duces)h(a)f(lev)m(el)i(of)f(indirection.)44
-b(Bash)31 b(uses)g(the)g(v)-5 b(alue)32 b(formed)f(b)m(y)g(expanding)g
-(the)150 3332 y(rest)c(of)f Fr(parameter)33 b Fu(as)27
-b(the)g(new)f Fr(parameter)7 b Fu(;)28 b(this)e(is)g(then)g(expanded)g
-(and)g(that)h(v)-5 b(alue)27 b(is)f(used)g(in)g(the)150
-3441 y(rest)33 b(of)f(the)h(expansion,)g(rather)g(than)f(the)h
-(expansion)f(of)h(the)g(original)g Fr(parameter)p Fu(.)48
-b(This)32 b(is)g(kno)m(wn)150 3551 y(as)42 b Ft(indirect)28
-b(expansion)p Fu(.)71 b(The)41 b(v)-5 b(alue)41 b(is)h(sub)5
-b(ject)41 b(to)h(tilde)g(expansion,)i(parameter)e(expansion,)150
-3660 y(command)31 b(substitution,)g(and)g(arithmetic)h(expansion.)43
-b(If)31 b Fr(parameter)38 b Fu(is)32 b(a)f(nameref,)h(this)f(expands)
-150 3770 y(to)d(the)g(name)g(of)f(the)h(v)-5 b(ariable)28
-b(referenced)g(b)m(y)f Fr(parameter)35 b Fu(instead)27
-b(of)h(p)s(erforming)e(the)i(complete)h(in-)150 3880
-y(direct)e(expansion.)39 b(The)25 b(exceptions)i(to)g(this)f(are)h(the)
-f(expansions)g(of)g($)p Fi({)p Fu(!)p Fr(pre\014x)6 b
-Fu(*)p Fi(})28 b Fu(and)d($)p Fi({)p Fu(!)p Fr(name)5
-b Fu([@])p Fi(})150 3989 y Fu(describ)s(ed)28 b(b)s(elo)m(w.)41
-b(The)28 b(exclamation)j(p)s(oin)m(t)f(m)m(ust)f(immediately)h(follo)m
-(w)g(the)g(left)f(brace)h(in)f(order)f(to)150 4099 y(in)m(tro)s(duce)i
-(indirection.)275 4246 y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s(elo)m
-(w,)i Fr(w)m(ord)h Fu(is)c(sub)5 b(ject)40 b(to)h(tilde)f(expansion,)j
-(parameter)e(expansion,)150 4356 y(command)30 b(substitution,)g(and)g
-(arithmetic)i(expansion.)275 4503 y(When)h(not)h(p)s(erforming)e
+Fr(parameter)42 b Fu(is)34 b(not)i(a)150 4682 y(nameref,)c(it)f(in)m
+(tro)s(duces)h(a)f(lev)m(el)i(of)f(indirection.)44 b(Bash)31
+b(uses)g(the)g(v)-5 b(alue)32 b(formed)f(b)m(y)g(expanding)g(the)150
+4792 y(rest)c(of)f Fr(parameter)33 b Fu(as)27 b(the)g(new)f
+Fr(parameter)7 b Fu(;)28 b(this)e(is)g(then)g(expanded)g(and)g(that)h
+(v)-5 b(alue)27 b(is)f(used)g(in)g(the)150 4902 y(rest)33
+b(of)f(the)h(expansion,)g(rather)g(than)f(the)h(expansion)f(of)h(the)g
+(original)g Fr(parameter)p Fu(.)48 b(This)32 b(is)g(kno)m(wn)150
+5011 y(as)42 b Ft(indirect)28 b(expansion)p Fu(.)71 b(The)41
+b(v)-5 b(alue)41 b(is)h(sub)5 b(ject)41 b(to)h(tilde)g(expansion,)i
+(parameter)e(expansion,)150 5121 y(command)31 b(substitution,)g(and)g
+(arithmetic)h(expansion.)43 b(If)31 b Fr(parameter)38
+b Fu(is)32 b(a)f(nameref,)h(this)f(expands)150 5230 y(to)d(the)g(name)g
+(of)f(the)h(v)-5 b(ariable)28 b(referenced)g(b)m(y)f
+Fr(parameter)35 b Fu(instead)27 b(of)h(p)s(erforming)e(the)i(complete)h
+(in-)150 5340 y(direct)e(expansion.)39 b(The)25 b(exceptions)i(to)g
+(this)f(are)h(the)f(expansions)g(of)g($)p Fi({)p Fu(!)p
+Fr(pre\014x)6 b Fu(*)p Fi(})28 b Fu(and)d($)p Fi({)p
+Fu(!)p Fr(name)5 b Fu([@])p Fi(})p eop end
+%%Page: 27 33
+TeXDict begin 27 32 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(27)150 299
+y(describ)s(ed)28 b(b)s(elo)m(w.)41 b(The)28 b(exclamation)j(p)s(oin)m
+(t)f(m)m(ust)f(immediately)h(follo)m(w)g(the)g(left)f(brace)h(in)f
+(order)f(to)150 408 y(in)m(tro)s(duce)i(indirection.)275
+547 y(In)39 b(eac)m(h)i(of)g(the)f(cases)h(b)s(elo)m(w,)i
+Fr(w)m(ord)h Fu(is)c(sub)5 b(ject)40 b(to)h(tilde)f(expansion,)j
+(parameter)e(expansion,)150 657 y(command)30 b(substitution,)g(and)g
+(arithmetic)i(expansion.)275 795 y(When)h(not)h(p)s(erforming)e
(substring)h(expansion,)h(using)g(the)f(form)h(describ)s(ed)e(b)s(elo)m
-(w)i(\(e.g.,)i(`)p Ft(:-)p Fu('\),)150 4613 y(Bash)d(tests)h(for)e(a)i
+(w)i(\(e.g.,)i(`)p Ft(:-)p Fu('\),)150 905 y(Bash)d(tests)h(for)e(a)i
(parameter)f(that)h(is)e(unset)h(or)g(n)m(ull.)48 b(Omitting)33
-b(the)h(colon)f(results)g(in)g(a)g(test)h(only)150 4723
+b(the)h(colon)f(results)g(in)g(a)g(test)h(only)150 1015
y(for)c(a)i(parameter)f(that)g(is)g(unset.)41 b(Put)31
b(another)f(w)m(a)m(y)-8 b(,)33 b(if)e(the)f(colon)i(is)f(included,)f
-(the)h(op)s(erator)g(tests)150 4832 y(for)36 b(b)s(oth)g
+(the)h(op)s(erator)g(tests)150 1124 y(for)36 b(b)s(oth)g
Fr(parameter)7 b Fu('s)37 b(existence)h(and)e(that)i(its)f(v)-5
b(alue)37 b(is)g(not)f(n)m(ull;)k(if)d(the)g(colon)h(is)e(omitted,)k
-(the)150 4942 y(op)s(erator)31 b(tests)g(only)f(for)g(existence.)150
-5121 y Ft(${)p Fj(parameter)p Ft(:)p Fq(\000)p Fj(word)p
-Ft(})630 5230 y Fu(If)g Fr(parameter)37 b Fu(is)30 b(unset)g(or)h(n)m
+(the)150 1234 y(op)s(erator)31 b(tests)g(only)f(for)g(existence.)150
+1399 y Ft(${)p Fj(parameter)p Ft(:)p Fq(\000)p Fj(word)p
+Ft(})630 1509 y Fu(If)g Fr(parameter)37 b Fu(is)30 b(unset)g(or)h(n)m
(ull,)f(the)h(expansion)f(of)g Fr(w)m(ord)k Fu(is)c(substituted.)40
-b(Otherwise,)630 5340 y(the)31 b(v)-5 b(alue)30 b(of)h
-Fr(parameter)37 b Fu(is)31 b(substituted.)p eop end
-%%Page: 26 32
-TeXDict begin 26 31 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(26)150 299
-y Ft(${)p Fj(parameter)p Ft(:=)p Fj(word)p Ft(})630 408
-y Fu(If)33 b Fr(parameter)40 b Fu(is)33 b(unset)f(or)h(n)m(ull,)h(the)f
-(expansion)g(of)g Fr(w)m(ord)j Fu(is)d(assigned)g(to)h
-Fr(parameter)p Fu(.)630 518 y(The)c(v)-5 b(alue)32 b(of)f
-Fr(parameter)38 b Fu(is)31 b(then)g(substituted.)42 b(P)m(ositional)33
-b(parameters)e(and)f(sp)s(ecial)630 628 y(parameters)h(ma)m(y)g(not)f
-(b)s(e)g(assigned)h(to)g(in)f(this)g(w)m(a)m(y)-8 b(.)150
-786 y Ft(${)p Fj(parameter)p Ft(:?)p Fj(word)p Ft(})630
-896 y Fu(If)26 b Fr(parameter)33 b Fu(is)26 b(n)m(ull)g(or)g(unset,)h
-(the)f(expansion)g(of)g Fr(w)m(ord)k Fu(\(or)c(a)h(message)g(to)g(that)
-f(e\013ect)630 1005 y(if)i Fr(w)m(ord)j Fu(is)d(not)g(presen)m(t\))h
-(is)f(written)g(to)h(the)f(standard)f(error)h(and)f(the)h(shell,)h(if)f
-(it)h(is)f(not)630 1115 y(in)m(teractiv)m(e,)33 b(exits.)42
-b(Otherwise,)30 b(the)h(v)-5 b(alue)31 b(of)f Fr(parameter)38
-b Fu(is)30 b(substituted.)150 1273 y Ft(${)p Fj(parameter)p
-Ft(:+)p Fj(word)p Ft(})630 1383 y Fu(If)35 b Fr(parameter)42
-b Fu(is)36 b(n)m(ull)f(or)h(unset,)g(nothing)g(is)f(substituted,)i
-(otherwise)e(the)h(expansion)630 1492 y(of)31 b Fr(w)m(ord)i
-Fu(is)e(substituted.)150 1650 y Ft(${)p Fj(parameter)p
-Ft(:)p Fj(offset)p Ft(})150 1760 y(${)p Fj(parameter)p
-Ft(:)p Fj(offset)p Ft(:)p Fj(lengt)o(h)p Ft(})630 1870
-y Fu(This)f(is)h(referred)f(to)h(as)g(Substring)f(Expansion.)41
-b(It)31 b(expands)f(to)h(up)f(to)h Fr(length)g Fu(c)m(harac-)630
-1979 y(ters)k(of)g(the)h(v)-5 b(alue)35 b(of)g Fr(parameter)42
-b Fu(starting)36 b(at)g(the)f(c)m(haracter)i(sp)s(eci\014ed)d(b)m(y)h
-Fr(o\013set)p Fu(.)55 b(If)630 2089 y Fr(parameter)32
-b Fu(is)26 b(`)p Ft(@)p Fu(',)g(an)f(indexed)g(arra)m(y)h(subscripted)e
-(b)m(y)h(`)p Ft(@)p Fu(')g(or)h(`)p Ft(*)p Fu(',)g(or)g(an)f(asso)s
-(ciativ)m(e)j(ar-)630 2198 y(ra)m(y)g(name,)h(the)f(results)g(di\013er)
-g(as)g(describ)s(ed)f(b)s(elo)m(w.)40 b(If)28 b Fr(length)g
-Fu(is)g(omitted,)i(it)f(expands)630 2308 y(to)e(the)g(substring)f(of)g
-(the)h(v)-5 b(alue)27 b(of)g Fr(parameter)33 b Fu(starting)28
-b(at)f(the)g(c)m(haracter)h(sp)s(eci\014ed)e(b)m(y)630
-2418 y Fr(o\013set)37 b Fu(and)d(extending)g(to)h(the)f(end)g(of)g(the)
-g(v)-5 b(alue.)53 b Fr(length)34 b Fu(and)g Fr(o\013set)j
-Fu(are)e(arithmetic)630 2527 y(expressions)30 b(\(see)h(Section)g(6.5)h
-([Shell)e(Arithmetic],)i(page)f(93\).)630 2661 y(If)39
-b Fr(o\013set)k Fu(ev)-5 b(aluates)41 b(to)f(a)g(n)m(um)m(b)s(er)f
-(less)h(than)f(zero,)k(the)d(v)-5 b(alue)40 b(is)g(used)e(as)i(an)g
-(o\013set)630 2771 y(in)33 b(c)m(haracters)i(from)f(the)f(end)g(of)h
-(the)g(v)-5 b(alue)34 b(of)g Fr(parameter)p Fu(.)51 b(If)33
-b Fr(length)h Fu(ev)-5 b(aluates)35 b(to)g(a)630 2880
-y(n)m(um)m(b)s(er)23 b(less)h(than)g(zero,)j(it)d(is)h(in)m(terpreted)f
-(as)g(an)h(o\013set)g(in)f(c)m(haracters)h(from)f(the)g(end)g(of)630
-2990 y(the)31 b(v)-5 b(alue)31 b(of)g Fr(parameter)38
-b Fu(rather)30 b(than)h(a)g(n)m(um)m(b)s(er)f(of)g(c)m(haracters,)j
-(and)d(the)h(expansion)630 3099 y(is)39 b(the)g(c)m(haracters)i(b)s(et)
-m(w)m(een)f Fr(o\013set)i Fu(and)c(that)i(result.)67
-b(Note)40 b(that)g(a)g(negativ)m(e)h(o\013set)630 3209
-y(m)m(ust)27 b(b)s(e)g(separated)g(from)g(the)g(colon)i(b)m(y)e(at)h
-(least)g(one)f(space)h(to)g(a)m(v)m(oid)h(b)s(eing)e(confused)630
-3319 y(with)j(the)h(`)p Ft(:-)p Fu(')f(expansion.)630
-3453 y(Here)43 b(are)g(some)f(examples)h(illustrating)g(substring)f
-(expansion)g(on)g(parameters)h(and)630 3562 y(subscripted)29
-b(arra)m(ys:)630 3696 y Ft($)47 b(string=01234567890abcdefgh)630
-3806 y($)g(echo)g(${string:7})630 3915 y(7890abcdefgh)630
-4025 y($)g(echo)g(${string:7:0})630 4244 y($)g(echo)g(${string:7:2})630
-4354 y(78)630 4463 y($)g(echo)g(${string:7:-2})630 4573
-y(7890abcdef)630 4682 y($)g(echo)g(${string:)e(-7})630
-4792 y(bcdefgh)630 4902 y($)i(echo)g(${string:)e(-7:0})630
-5121 y($)i(echo)g(${string:)e(-7:2})630 5230 y(bc)630
-5340 y($)i(echo)g(${string:)e(-7:-2})p eop end
-%%Page: 27 33
-TeXDict begin 27 32 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(27)630 299
-y Ft(bcdef)630 408 y($)47 b(set)g(--)h(01234567890abcdefgh)630
-518 y($)f(echo)g(${1:7})630 628 y(7890abcdefgh)630 737
-y($)g(echo)g(${1:7:0})630 956 y($)g(echo)g(${1:7:2})630
-1066 y(78)630 1176 y($)g(echo)g(${1:7:-2})630 1285 y(7890abcdef)630
-1395 y($)g(echo)g(${1:)g(-7})630 1504 y(bcdefgh)630 1614
-y($)g(echo)g(${1:)g(-7:0})630 1833 y($)g(echo)g(${1:)g(-7:2})630
-1943 y(bc)630 2052 y($)g(echo)g(${1:)g(-7:-2})630 2162
-y(bcdef)630 2271 y($)g(array[0]=01234567890abcdef)o(gh)630
-2381 y($)g(echo)g(${array[0]:7})630 2491 y(7890abcdefgh)630
-2600 y($)g(echo)g(${array[0]:7:0})630 2819 y($)g(echo)g
-(${array[0]:7:2})630 2929 y(78)630 3039 y($)g(echo)g(${array[0]:7:-2})
-630 3148 y(7890abcdef)630 3258 y($)g(echo)g(${array[0]:)e(-7})630
-3367 y(bcdefgh)630 3477 y($)i(echo)g(${array[0]:)e(-7:0})630
-3696 y($)i(echo)g(${array[0]:)e(-7:2})630 3806 y(bc)630
-3915 y($)i(echo)g(${array[0]:)e(-7:-2})630 4025 y(bcdef)630
-4171 y Fu(If)22 b Fr(parameter)30 b Fu(is)23 b(`)p Ft(@)p
-Fu(',)i(the)e(result)g(is)g Fr(length)h Fu(p)s(ositional)f(parameters)h
-(b)s(eginning)e(at)i Fr(o\013set)p Fu(.)630 4281 y(A)36
-b(negativ)m(e)j Fr(o\013set)g Fu(is)e(tak)m(en)g(relativ)m(e)i(to)e
-(one)g(greater)g(than)f(the)h(greatest)h(p)s(ositional)630
-4390 y(parameter,)29 b(so)f(an)g(o\013set)h(of)f(-1)g(ev)-5
-b(aluates)30 b(to)e(the)g(last)h(p)s(ositional)g(parameter.)40
-b(It)28 b(is)g(an)630 4500 y(expansion)i(error)g(if)h
-Fr(length)f Fu(ev)-5 b(aluates)32 b(to)f(a)g(n)m(um)m(b)s(er)e(less)i
-(than)f(zero.)630 4646 y(The)i(follo)m(wing)i(examples)f(illustrate)h
-(substring)d(expansion)i(using)f(p)s(ositional)h(param-)630
-4755 y(eters:)630 4902 y Ft($)47 b(set)g(--)h(1)f(2)g(3)h(4)f(5)h(6)f
-(7)h(8)f(9)h(0)f(a)h(b)f(c)g(d)h(e)f(f)h(g)f(h)630 5011
-y($)g(echo)g(${@:7})630 5121 y(7)g(8)h(9)f(0)h(a)f(b)h(c)f(d)h(e)f(f)h
-(g)f(h)630 5230 y($)g(echo)g(${@:7:0})p eop end
+b(Otherwise,)630 1619 y(the)31 b(v)-5 b(alue)30 b(of)h
+Fr(parameter)37 b Fu(is)31 b(substituted.)870 1755 y
+Ft($)47 b(v=123)870 1865 y($)g(echo)g(${v-unset})870
+1974 y(123)150 2138 y(${)p Fj(parameter)p Ft(:=)p Fj(word)p
+Ft(})630 2248 y Fu(If)33 b Fr(parameter)40 b Fu(is)33
+b(unset)f(or)h(n)m(ull,)h(the)f(expansion)g(of)g Fr(w)m(ord)j
+Fu(is)d(assigned)g(to)h Fr(parameter)p Fu(.)630 2357
+y(The)c(v)-5 b(alue)32 b(of)f Fr(parameter)38 b Fu(is)31
+b(then)g(substituted.)42 b(P)m(ositional)33 b(parameters)e(and)f(sp)s
+(ecial)630 2467 y(parameters)h(ma)m(y)g(not)f(b)s(e)g(assigned)h(to)g
+(in)f(this)g(w)m(a)m(y)-8 b(.)870 2603 y Ft($)47 b(var=)870
+2713 y($)g(:)h(${var:=DEFAULT})870 2823 y($)f(echo)g($var)870
+2932 y(DEFAULT)150 3096 y(${)p Fj(parameter)p Ft(:?)p
+Fj(word)p Ft(})630 3205 y Fu(If)26 b Fr(parameter)33
+b Fu(is)26 b(n)m(ull)g(or)g(unset,)h(the)f(expansion)g(of)g
+Fr(w)m(ord)k Fu(\(or)c(a)h(message)g(to)g(that)f(e\013ect)630
+3315 y(if)i Fr(w)m(ord)j Fu(is)d(not)g(presen)m(t\))h(is)f(written)g
+(to)h(the)f(standard)f(error)h(and)f(the)h(shell,)h(if)f(it)h(is)f(not)
+630 3425 y(in)m(teractiv)m(e,)33 b(exits.)42 b(Otherwise,)30
+b(the)h(v)-5 b(alue)31 b(of)f Fr(parameter)38 b Fu(is)30
+b(substituted.)870 3561 y Ft($)47 b(var=)870 3671 y($)g(:)h(${var:?var)
+d(is)i(unset)f(or)i(null})870 3780 y(bash:)e(var:)h(var)g(is)g(unset)f
+(or)i(null)150 3944 y(${)p Fj(parameter)p Ft(:+)p Fj(word)p
+Ft(})630 4053 y Fu(If)35 b Fr(parameter)42 b Fu(is)36
+b(n)m(ull)f(or)h(unset,)g(nothing)g(is)f(substituted,)i(otherwise)e
+(the)h(expansion)630 4163 y(of)31 b Fr(w)m(ord)i Fu(is)e(substituted.)
+870 4300 y Ft($)47 b(var=123)870 4409 y($)g(echo)g(${var:+var)e(is)i
+(set)g(and)g(not)g(null})870 4519 y(var)g(is)g(set)g(and)g(not)g(null)
+150 4682 y(${)p Fj(parameter)p Ft(:)p Fj(offset)p Ft(})150
+4792 y(${)p Fj(parameter)p Ft(:)p Fj(offset)p Ft(:)p
+Fj(lengt)o(h)p Ft(})630 4902 y Fu(This)30 b(is)h(referred)f(to)h(as)g
+(Substring)f(Expansion.)41 b(It)31 b(expands)f(to)h(up)f(to)h
+Fr(length)g Fu(c)m(harac-)630 5011 y(ters)k(of)g(the)h(v)-5
+b(alue)35 b(of)g Fr(parameter)42 b Fu(starting)36 b(at)g(the)f(c)m
+(haracter)i(sp)s(eci\014ed)d(b)m(y)h Fr(o\013set)p Fu(.)55
+b(If)630 5121 y Fr(parameter)41 b Fu(is)35 b(`)p Ft(@)p
+Fu(')f(or)h(`)p Ft(*)p Fu(',)g(an)g(indexed)f(arra)m(y)g(subscripted)g
+(b)m(y)g(`)p Ft(@)p Fu(')g(or)h(`)p Ft(*)p Fu(',)g(or)g(an)f(asso-)630
+5230 y(ciativ)m(e)i(arra)m(y)e(name,)h(the)f(results)f(di\013er)g(as)h
+(describ)s(ed)e(b)s(elo)m(w.)51 b(If)33 b Fr(length)h
+Fu(is)g(omitted,)630 5340 y(it)d(expands)f(to)h(the)g(substring)e(of)h
+(the)h(v)-5 b(alue)31 b(of)g Fr(parameter)37 b Fu(starting)31
+b(at)h(the)e(c)m(haracter)p eop end
%%Page: 28 34
TeXDict begin 28 33 bop 150 -116 a Fu(Chapter)30 b(3:)41
b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(28)630 299
-y Ft($)47 b(echo)g(${@:7:2})630 408 y(7)g(8)630 518 y($)g(echo)g
-(${@:7:-2})630 628 y(bash:)f(-2:)h(substring)f(expression)f(<)i(0)630
-737 y($)g(echo)g(${@:)g(-7:2})630 847 y(b)g(c)630 956
-y($)g(echo)g(${@:0})630 1066 y(./bash)f(1)i(2)f(3)g(4)h(5)f(6)h(7)f(8)h
-(9)f(0)h(a)f(b)h(c)f(d)g(e)h(f)f(g)h(h)630 1176 y($)f(echo)g(${@:0:2})
-630 1285 y(./bash)f(1)630 1395 y($)h(echo)g(${@:)g(-7:0})630
-1677 y Fu(If)36 b Fr(parameter)43 b Fu(is)36 b(an)g(indexed)g(arra)m(y)
+y(sp)s(eci\014ed)30 b(b)m(y)g Fr(o\013set)k Fu(and)c(extending)h(to)g
+(the)g(end)f(of)g(the)h(v)-5 b(alue.)42 b Fr(length)31
+b Fu(and)f Fr(o\013set)k Fu(are)630 408 y(arithmetic)e(expressions)e
+(\(see)h(Section)g(6.5)h([Shell)e(Arithmetic],)i(page)f(98\).)630
+555 y(If)39 b Fr(o\013set)k Fu(ev)-5 b(aluates)41 b(to)f(a)g(n)m(um)m
+(b)s(er)f(less)h(than)f(zero,)k(the)d(v)-5 b(alue)40
+b(is)g(used)e(as)i(an)g(o\013set)630 664 y(in)33 b(c)m(haracters)i
+(from)f(the)f(end)g(of)h(the)g(v)-5 b(alue)34 b(of)g
+Fr(parameter)p Fu(.)51 b(If)33 b Fr(length)h Fu(ev)-5
+b(aluates)35 b(to)g(a)630 774 y(n)m(um)m(b)s(er)23 b(less)h(than)g
+(zero,)j(it)d(is)h(in)m(terpreted)f(as)g(an)h(o\013set)g(in)f(c)m
+(haracters)h(from)f(the)g(end)g(of)630 883 y(the)31 b(v)-5
+b(alue)31 b(of)g Fr(parameter)38 b Fu(rather)30 b(than)h(a)g(n)m(um)m
+(b)s(er)f(of)g(c)m(haracters,)j(and)d(the)h(expansion)630
+993 y(is)39 b(the)g(c)m(haracters)i(b)s(et)m(w)m(een)f
+Fr(o\013set)i Fu(and)c(that)i(result.)67 b(Note)40 b(that)g(a)g
+(negativ)m(e)h(o\013set)630 1103 y(m)m(ust)27 b(b)s(e)g(separated)g
+(from)g(the)g(colon)i(b)m(y)e(at)h(least)g(one)f(space)h(to)g(a)m(v)m
+(oid)h(b)s(eing)e(confused)630 1212 y(with)j(the)h(`)p
+Ft(:-)p Fu(')f(expansion.)630 1358 y(Here)43 b(are)g(some)f(examples)h
+(illustrating)g(substring)f(expansion)g(on)g(parameters)h(and)630
+1468 y(subscripted)29 b(arra)m(ys:)630 1614 y Ft($)47
+b(string=01234567890abcdefgh)630 1724 y($)g(echo)g(${string:7})630
+1833 y(7890abcdefgh)630 1943 y($)g(echo)g(${string:7:0})630
+2162 y($)g(echo)g(${string:7:2})630 2271 y(78)630 2381
+y($)g(echo)g(${string:7:-2})630 2491 y(7890abcdef)630
+2600 y($)g(echo)g(${string:)e(-7})630 2710 y(bcdefgh)630
+2819 y($)i(echo)g(${string:)e(-7:0})630 3039 y($)i(echo)g(${string:)e
+(-7:2})630 3148 y(bc)630 3258 y($)i(echo)g(${string:)e(-7:-2})630
+3367 y(bcdef)630 3477 y($)i(set)g(--)h(01234567890abcdefgh)630
+3587 y($)f(echo)g(${1:7})630 3696 y(7890abcdefgh)630
+3806 y($)g(echo)g(${1:7:0})630 4025 y($)g(echo)g(${1:7:2})630
+4134 y(78)630 4244 y($)g(echo)g(${1:7:-2})630 4354 y(7890abcdef)630
+4463 y($)g(echo)g(${1:)g(-7})630 4573 y(bcdefgh)630 4682
+y($)g(echo)g(${1:)g(-7:0})630 4902 y($)g(echo)g(${1:)g(-7:2})630
+5011 y(bc)630 5121 y($)g(echo)g(${1:)g(-7:-2})630 5230
+y(bcdef)630 5340 y($)g(array[0]=01234567890abcdef)o(gh)p
+eop end
+%%Page: 29 35
+TeXDict begin 29 34 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(29)630 299
+y Ft($)47 b(echo)g(${array[0]:7})630 408 y(7890abcdefgh)630
+518 y($)g(echo)g(${array[0]:7:0})630 737 y($)g(echo)g(${array[0]:7:2})
+630 847 y(78)630 956 y($)g(echo)g(${array[0]:7:-2})630
+1066 y(7890abcdef)630 1176 y($)g(echo)g(${array[0]:)e(-7})630
+1285 y(bcdefgh)630 1395 y($)i(echo)g(${array[0]:)e(-7:0})630
+1614 y($)i(echo)g(${array[0]:)e(-7:2})630 1724 y(bc)630
+1833 y($)i(echo)g(${array[0]:)e(-7:-2})630 1943 y(bcdef)630
+2071 y Fu(If)34 b Fr(parameter)41 b Fu(is)35 b(`)p Ft(@)p
+Fu(')f(or)h(`)p Ft(*)p Fu(',)h(the)e(result)g(is)h Fr(length)g
+Fu(p)s(ositional)g(parameters)g(b)s(eginning)630 2180
+y(at)27 b Fr(o\013set)p Fu(.)40 b(A)26 b(negativ)m(e)j
+Fr(o\013set)g Fu(is)d(tak)m(en)h(relativ)m(e)h(to)f(one)g(greater)g
+(than)f(the)g(greatest)i(p)s(o-)630 2290 y(sitional)i(parameter,)f(so)f
+(an)g(o\013set)i(of)e(-1)h(ev)-5 b(aluates)30 b(to)f(the)f(last)h(p)s
+(ositional)g(parameter.)630 2399 y(It)h(is)h(an)f(expansion)g(error)g
+(if)h Fr(length)f Fu(ev)-5 b(aluates)32 b(to)g(a)e(n)m(um)m(b)s(er)f
+(less)i(than)f(zero.)630 2527 y(The)i(follo)m(wing)i(examples)f
+(illustrate)h(substring)d(expansion)i(using)f(p)s(ositional)h(param-)
+630 2637 y(eters:)630 2765 y Ft($)47 b(set)g(--)h(1)f(2)g(3)h(4)f(5)h
+(6)f(7)h(8)f(9)h(0)f(a)h(b)f(c)g(d)h(e)f(f)h(g)f(h)630
+2874 y($)g(echo)g(${@:7})630 2984 y(7)g(8)h(9)f(0)h(a)f(b)h(c)f(d)h(e)f
+(f)h(g)f(h)630 3093 y($)g(echo)g(${@:7:0})630 3313 y($)g(echo)g
+(${@:7:2})630 3422 y(7)g(8)630 3532 y($)g(echo)g(${@:7:-2})630
+3641 y(bash:)f(-2:)h(substring)f(expression)f(<)i(0)630
+3751 y($)g(echo)g(${@:)g(-7:2})630 3861 y(b)g(c)630 3970
+y($)g(echo)g(${@:0})630 4080 y(./bash)f(1)i(2)f(3)g(4)h(5)f(6)h(7)f(8)h
+(9)f(0)h(a)f(b)h(c)f(d)g(e)h(f)f(g)h(h)630 4189 y($)f(echo)g(${@:0:2})
+630 4299 y(./bash)f(1)630 4408 y($)h(echo)g(${@:)g(-7:0})630
+4646 y Fu(If)36 b Fr(parameter)43 b Fu(is)36 b(an)g(indexed)g(arra)m(y)
g(name)g(subscripted)f(b)m(y)h(`)p Ft(@)p Fu(')g(or)h(`)p
-Ft(*)p Fu(',)h(the)e(result)g(is)630 1786 y(the)j Fr(length)g
+Ft(*)p Fu(',)h(the)e(result)g(is)630 4755 y(the)j Fr(length)g
Fu(mem)m(b)s(ers)f(of)h(the)f(arra)m(y)i(b)s(eginning)d(with)i
Ft(${)p Fj(parameter)p Ft([)p Fj(offset)p Ft(]})p Fu(.)60
-b(A)630 1896 y(negativ)m(e)33 b Fr(o\013set)g Fu(is)e(tak)m(en)h
+b(A)630 4865 y(negativ)m(e)33 b Fr(o\013set)g Fu(is)e(tak)m(en)h
(relativ)m(e)g(to)g(one)f(greater)g(than)g(the)f(maxim)m(um)h(index)f
-(of)h(the)630 2005 y(sp)s(eci\014ed)38 b(arra)m(y)-8
+(of)h(the)630 4975 y(sp)s(eci\014ed)38 b(arra)m(y)-8
b(.)65 b(It)38 b(is)g(an)h(expansion)f(error)f(if)i Fr(length)f
Fu(ev)-5 b(aluates)40 b(to)f(a)g(n)m(um)m(b)s(er)e(less)630
-2115 y(than)30 b(zero.)630 2287 y(These)23 b(examples)i(sho)m(w)e(ho)m
+5084 y(than)30 b(zero.)630 5212 y(These)23 b(examples)i(sho)m(w)e(ho)m
(w)h(y)m(ou)g(can)g(use)f(substring)f(expansion)i(with)f(indexed)g
-(arra)m(ys:)630 2459 y Ft($)47 b(array=\(0)f(1)h(2)h(3)f(4)h(5)f(6)h(7)
-f(8)h(9)f(0)h(a)f(b)g(c)h(d)f(e)h(f)f(g)h(h\))630 2569
-y($)f(echo)g(${array[@]:7})630 2679 y(7)g(8)h(9)f(0)h(a)f(b)h(c)f(d)h
-(e)f(f)h(g)f(h)630 2788 y($)g(echo)g(${array[@]:7:2})630
-2898 y(7)g(8)630 3007 y($)g(echo)g(${array[@]:)e(-7:2})630
-3117 y(b)i(c)630 3226 y($)g(echo)g(${array[@]:)e(-7:-2})630
-3336 y(bash:)h(-2:)h(substring)f(expression)f(<)i(0)630
-3446 y($)g(echo)g(${array[@]:0})630 3555 y(0)g(1)h(2)f(3)h(4)f(5)h(6)f
-(7)h(8)f(9)h(0)f(a)g(b)h(c)f(d)h(e)f(f)h(g)f(h)630 3665
-y($)g(echo)g(${array[@]:0:2})630 3774 y(0)g(1)630 3884
-y($)g(echo)g(${array[@]:)e(-7:0})630 4166 y Fu(Substring)25
+(arra)m(ys:)630 5340 y Ft($)47 b(array=\(0)f(1)h(2)h(3)f(4)h(5)f(6)h(7)
+f(8)h(9)f(0)h(a)f(b)g(c)h(d)f(e)h(f)f(g)h(h\))p eop end
+%%Page: 30 36
+TeXDict begin 30 35 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(30)630 299
+y Ft($)47 b(echo)g(${array[@]:7})630 408 y(7)g(8)h(9)f(0)h(a)f(b)h(c)f
+(d)h(e)f(f)h(g)f(h)630 518 y($)g(echo)g(${array[@]:7:2})630
+628 y(7)g(8)630 737 y($)g(echo)g(${array[@]:)e(-7:2})630
+847 y(b)i(c)630 956 y($)g(echo)g(${array[@]:)e(-7:-2})630
+1066 y(bash:)h(-2:)h(substring)f(expression)f(<)i(0)630
+1176 y($)g(echo)g(${array[@]:0})630 1285 y(0)g(1)h(2)f(3)h(4)f(5)h(6)f
+(7)h(8)f(9)h(0)f(a)g(b)h(c)f(d)h(e)f(f)h(g)f(h)630 1395
+y($)g(echo)g(${array[@]:0:2})630 1504 y(0)g(1)630 1614
+y($)g(echo)g(${array[@]:)e(-7:0})630 1855 y Fu(Substring)25
b(expansion)g(applied)h(to)h(an)f(asso)s(ciativ)m(e)j(arra)m(y)d(pro)s
-(duces)f(unde\014ned)f(results.)630 4338 y(Substring)32
+(duces)f(unde\014ned)f(results.)630 1987 y(Substring)32
b(indexing)i(is)f(zero-based)i(unless)e(the)h(p)s(ositional)g
-(parameters)g(are)g(used,)g(in)630 4448 y(whic)m(h)29
+(parameters)g(are)g(used,)g(in)630 2096 y(whic)m(h)29
b(case)i(the)f(indexing)g(starts)g(at)g(1)g(b)m(y)g(default.)41
b(If)29 b Fr(o\013set)k Fu(is)d(0,)g(and)f(the)h(p)s(ositional)630
-4557 y(parameters)h(are)f(used,)g Ft($0)g Fu(is)g(pre\014xed)g(to)h
-(the)f(list.)150 4792 y Ft(${!)p Fj(prefix)p Ft(*})150
-4902 y(${!)p Fj(prefix)p Ft(@})630 5011 y Fu(Expands)24
+2206 y(parameters)h(are)f(used,)g Ft($0)g Fu(is)g(pre\014xed)g(to)h
+(the)f(list.)150 2359 y Ft(${!)p Fj(prefix)p Ft(*})150
+2469 y(${!)p Fj(prefix)p Ft(@})630 2578 y Fu(Expands)24
b(to)h(the)g(names)g(of)g(v)-5 b(ariables)26 b(whose)f(names)f(b)s
(egin)h(with)f Fr(pre\014x)p Fu(,)i(separated)f(b)m(y)630
-5121 y(the)k(\014rst)f(c)m(haracter)j(of)e(the)g Ft(IFS)f
+2688 y(the)k(\014rst)f(c)m(haracter)j(of)e(the)g Ft(IFS)f
Fu(sp)s(ecial)i(v)-5 b(ariable.)41 b(When)29 b(`)p Ft(@)p
-Fu(')g(is)g(used)f(and)h(the)g(expan-)630 5230 y(sion)35
+Fu(')g(is)g(used)f(and)h(the)g(expan-)630 2798 y(sion)35
b(app)s(ears)g(within)f(double)h(quotes,)i(eac)m(h)f(v)-5
b(ariable)36 b(name)f(expands)g(to)g(a)h(separate)630
-5340 y(w)m(ord.)p eop end
-%%Page: 29 35
-TeXDict begin 29 34 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(29)150 299
-y Ft(${!)p Fj(name)p Ft([@]})150 408 y(${!)p Fj(name)p
-Ft([*]})630 518 y Fu(If)26 b Fr(name)32 b Fu(is)27 b(an)f(arra)m(y)h(v)
--5 b(ariable,)29 b(expands)d(to)h(the)g(list)g(of)g(arra)m(y)g(indices)
-g(\(k)m(eys\))h(assigned)630 628 y(in)c Fr(name)p Fu(.)39
-b(If)24 b Fr(name)30 b Fu(is)24 b(not)h(an)f(arra)m(y)-8
-b(,)27 b(expands)c(to)j(0)f(if)f Fr(name)30 b Fu(is)24
-b(set)h(and)f(n)m(ull)g(otherwise.)630 737 y(When)39
-b(`)p Ft(@)p Fu(')h(is)f(used)g(and)f(the)i(expansion)f(app)s(ears)g
-(within)f(double)h(quotes,)k(eac)m(h)d(k)m(ey)630 847
-y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150 1011
-y Ft(${#)p Fj(parameter)p Ft(})630 1121 y Fu(The)40 b(length)g(in)g(c)m
-(haracters)i(of)e(the)h(expanded)e(v)-5 b(alue)41 b(of)f
-Fr(parameter)47 b Fu(is)40 b(substituted.)630 1230 y(If)i
-Fr(parameter)50 b Fu(is)43 b(`)p Ft(*)p Fu(')g(or)g(`)p
+2907 y(w)m(ord.)150 3061 y Ft(${!)p Fj(name)p Ft([@]})150
+3170 y(${!)p Fj(name)p Ft([*]})630 3280 y Fu(If)26 b
+Fr(name)32 b Fu(is)27 b(an)f(arra)m(y)h(v)-5 b(ariable,)29
+b(expands)d(to)h(the)g(list)g(of)g(arra)m(y)g(indices)g(\(k)m(eys\))h
+(assigned)630 3389 y(in)c Fr(name)p Fu(.)39 b(If)24 b
+Fr(name)30 b Fu(is)24 b(not)h(an)f(arra)m(y)-8 b(,)27
+b(expands)c(to)j(0)f(if)f Fr(name)30 b Fu(is)24 b(set)h(and)f(n)m(ull)g
+(otherwise.)630 3499 y(When)39 b(`)p Ft(@)p Fu(')h(is)f(used)g(and)f
+(the)i(expansion)f(app)s(ears)g(within)f(double)h(quotes,)k(eac)m(h)d
+(k)m(ey)630 3608 y(expands)30 b(to)h(a)f(separate)i(w)m(ord.)150
+3762 y Ft(${#)p Fj(parameter)p Ft(})630 3871 y Fu(The)40
+b(length)g(in)g(c)m(haracters)i(of)e(the)h(expanded)e(v)-5
+b(alue)41 b(of)f Fr(parameter)47 b Fu(is)40 b(substituted.)630
+3981 y(If)i Fr(parameter)50 b Fu(is)43 b(`)p Ft(*)p Fu(')g(or)g(`)p
Ft(@)p Fu(',)k(the)c(v)-5 b(alue)43 b(substituted)f(is)h(the)g(n)m(um)m
-(b)s(er)f(of)h(p)s(ositional)630 1340 y(parameters.)i(If)32
+(b)s(er)f(of)h(p)s(ositional)630 4091 y(parameters.)i(If)32
b Fr(parameter)38 b Fu(is)32 b(an)g(arra)m(y)g(name)g(subscripted)f(b)m
(y)g(`)p Ft(*)p Fu(')h(or)g(`)p Ft(@)p Fu(',)g(the)g(v)-5
-b(alue)630 1450 y(substituted)30 b(is)h(the)g(n)m(um)m(b)s(er)e(of)i
+b(alue)630 4200 y(substituted)30 b(is)h(the)g(n)m(um)m(b)s(er)e(of)i
(elemen)m(ts)i(in)d(the)h(arra)m(y)-8 b(.)43 b(If)30
-b Fr(parameter)38 b Fu(is)31 b(an)f(indexed)630 1559
+b Fr(parameter)38 b Fu(is)31 b(an)f(indexed)630 4310
y(arra)m(y)37 b(name)g(subscripted)f(b)m(y)h(a)g(negativ)m(e)i(n)m(um)m
(b)s(er,)f(that)f(n)m(um)m(b)s(er)f(is)g(in)m(terpreted)i(as)630
-1669 y(relativ)m(e)47 b(to)g(one)e(greater)i(than)e(the)h(maxim)m(um)f
+4419 y(relativ)m(e)47 b(to)g(one)e(greater)i(than)e(the)h(maxim)m(um)f
(index)g(of)g Fr(parameter)p Fu(,)50 b(so)c(negativ)m(e)630
-1778 y(indices)30 b(coun)m(t)h(bac)m(k)g(from)f(the)h(end)e(of)i(the)f
+4529 y(indices)30 b(coun)m(t)h(bac)m(k)g(from)f(the)h(end)e(of)i(the)f
(arra)m(y)-8 b(,)32 b(and)e(an)g(index)g(of)g(-1)h(references)g(the)630
-1888 y(last)g(elemen)m(t.)150 2052 y Ft(${)p Fj(parameter)p
-Ft(#)p Fj(word)p Ft(})150 2162 y(${)p Fj(parameter)p
-Ft(##)p Fj(word)p Ft(})630 2271 y Fu(The)43 b Fr(w)m(ord)k
+4639 y(last)g(elemen)m(t.)150 4792 y Ft(${)p Fj(parameter)p
+Ft(#)p Fj(word)p Ft(})150 4902 y(${)p Fj(parameter)p
+Ft(##)p Fj(word)p Ft(})630 5011 y Fu(The)43 b Fr(w)m(ord)k
Fu(is)d(expanded)f(to)h(pro)s(duce)f(a)h(pattern)g(and)f(matc)m(hed)i
-(according)f(to)h(the)630 2381 y(rules)31 b(describ)s(ed)g(b)s(elo)m(w)
+(according)f(to)h(the)630 5121 y(rules)31 b(describ)s(ed)g(b)s(elo)m(w)
h(\(see)h(Section)g(3.5.8.1)h([P)m(attern)g(Matc)m(hing],)g(page)f
-(33\).)46 b(If)32 b(the)630 2491 y(pattern)37 b(matc)m(hes)h(the)f(b)s
+(36\).)46 b(If)32 b(the)630 5230 y(pattern)37 b(matc)m(hes)h(the)f(b)s
(eginning)f(of)h(the)g(expanded)f(v)-5 b(alue)38 b(of)f
-Fr(parameter)p Fu(,)i(then)e(the)630 2600 y(result)f(of)h(the)f
+Fr(parameter)p Fu(,)i(then)e(the)630 5340 y(result)f(of)h(the)f
(expansion)h(is)f(the)h(expanded)e(v)-5 b(alue)37 b(of)g
-Fr(parameter)43 b Fu(with)36 b(the)h(shortest)630 2710
+Fr(parameter)43 b Fu(with)36 b(the)h(shortest)p eop end
+%%Page: 31 37
+TeXDict begin 31 36 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(31)630 299
y(matc)m(hing)31 b(pattern)e(\(the)h(`)p Ft(#)p Fu(')g(case\))h(or)e
(the)h(longest)h(matc)m(hing)f(pattern)g(\(the)g(`)p
-Ft(##)p Fu(')g(case\))630 2819 y(deleted.)49 b(If)32
+Ft(##)p Fu(')g(case\))630 408 y(deleted.)49 b(If)32 b
+Fr(parameter)40 b Fu(is)33 b(`)p Ft(@)p Fu(')g(or)g(`)p
+Ft(*)p Fu(',)h(the)f(pattern)g(remo)m(v)-5 b(al)34 b(op)s(eration)g(is)
+f(applied)f(to)630 518 y(eac)m(h)38 b(p)s(ositional)g(parameter)g(in)f
+(turn,)h(and)e(the)h(expansion)g(is)h(the)f(resultan)m(t)h(list.)61
+b(If)630 628 y Fr(parameter)38 b Fu(is)32 b(an)f(arra)m(y)h(v)-5
+b(ariable)32 b(subscripted)e(with)h(`)p Ft(@)p Fu(')g(or)h(`)p
+Ft(*)p Fu(',)g(the)f(pattern)h(remo)m(v)-5 b(al)630 737
+y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m(b)s(er)e(of)h
+(the)g(arra)m(y)g(in)f(turn,)g(and)g(the)h(expansion)g(is)630
+847 y(the)h(resultan)m(t)g(list.)150 1019 y Ft(${)p Fj(parameter)p
+Ft(\045)p Fj(word)p Ft(})150 1129 y(${)p Fj(parameter)p
+Ft(\045\045)p Fj(word)p Ft(})630 1238 y Fu(The)43 b Fr(w)m(ord)k
+Fu(is)d(expanded)f(to)h(pro)s(duce)f(a)h(pattern)g(and)f(matc)m(hed)i
+(according)f(to)h(the)630 1348 y(rules)f(describ)s(ed)g(b)s(elo)m(w)h
+(\(see)h(Section)g(3.5.8.1)h([P)m(attern)f(Matc)m(hing],)51
+b(page)45 b(36\).)85 b(If)630 1457 y(the)43 b(pattern)g(matc)m(hes)h(a)
+g(trailing)g(p)s(ortion)e(of)h(the)g(expanded)g(v)-5
+b(alue)43 b(of)g Fr(parameter)p Fu(,)630 1567 y(then)c(the)g(result)g
+(of)h(the)f(expansion)g(is)h(the)f(v)-5 b(alue)40 b(of)f
+Fr(parameter)46 b Fu(with)39 b(the)h(shortest)630 1677
+y(matc)m(hing)31 b(pattern)e(\(the)h(`)p Ft(\045)p Fu(')g(case\))h(or)e
+(the)h(longest)h(matc)m(hing)f(pattern)g(\(the)g(`)p
+Ft(\045\045)p Fu(')g(case\))630 1786 y(deleted.)49 b(If)32
b Fr(parameter)40 b Fu(is)33 b(`)p Ft(@)p Fu(')g(or)g(`)p
Ft(*)p Fu(',)h(the)f(pattern)g(remo)m(v)-5 b(al)34 b(op)s(eration)g(is)
-f(applied)f(to)630 2929 y(eac)m(h)38 b(p)s(ositional)g(parameter)g(in)f
+f(applied)f(to)630 1896 y(eac)m(h)38 b(p)s(ositional)g(parameter)g(in)f
(turn,)h(and)e(the)h(expansion)g(is)h(the)f(resultan)m(t)h(list.)61
-b(If)630 3039 y Fr(parameter)38 b Fu(is)32 b(an)f(arra)m(y)h(v)-5
+b(If)630 2005 y Fr(parameter)38 b Fu(is)32 b(an)f(arra)m(y)h(v)-5
b(ariable)32 b(subscripted)e(with)h(`)p Ft(@)p Fu(')g(or)h(`)p
-Ft(*)p Fu(',)g(the)f(pattern)h(remo)m(v)-5 b(al)630 3148
+Ft(*)p Fu(',)g(the)f(pattern)h(remo)m(v)-5 b(al)630 2115
y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m(b)s(er)e(of)h
(the)g(arra)m(y)g(in)f(turn,)g(and)g(the)h(expansion)g(is)630
-3258 y(the)h(resultan)m(t)g(list.)150 3422 y Ft(${)p
-Fj(parameter)p Ft(\045)p Fj(word)p Ft(})150 3532 y(${)p
-Fj(parameter)p Ft(\045\045)p Fj(word)p Ft(})630 3641
-y Fu(The)43 b Fr(w)m(ord)k Fu(is)d(expanded)f(to)h(pro)s(duce)f(a)h
-(pattern)g(and)f(matc)m(hed)i(according)f(to)h(the)630
-3751 y(rules)f(describ)s(ed)g(b)s(elo)m(w)h(\(see)h(Section)g(3.5.8.1)h
-([P)m(attern)f(Matc)m(hing],)51 b(page)45 b(33\).)85
-b(If)630 3861 y(the)43 b(pattern)g(matc)m(hes)h(a)g(trailing)g(p)s
-(ortion)e(of)h(the)g(expanded)g(v)-5 b(alue)43 b(of)g
-Fr(parameter)p Fu(,)630 3970 y(then)c(the)g(result)g(of)h(the)f
-(expansion)g(is)h(the)f(v)-5 b(alue)40 b(of)f Fr(parameter)46
-b Fu(with)39 b(the)h(shortest)630 4080 y(matc)m(hing)31
-b(pattern)e(\(the)h(`)p Ft(\045)p Fu(')g(case\))h(or)e(the)h(longest)h
-(matc)m(hing)f(pattern)g(\(the)g(`)p Ft(\045\045)p Fu(')g(case\))630
-4189 y(deleted.)49 b(If)32 b Fr(parameter)40 b Fu(is)33
-b(`)p Ft(@)p Fu(')g(or)g(`)p Ft(*)p Fu(',)h(the)f(pattern)g(remo)m(v)-5
-b(al)34 b(op)s(eration)g(is)f(applied)f(to)630 4299 y(eac)m(h)38
-b(p)s(ositional)g(parameter)g(in)f(turn,)h(and)e(the)h(expansion)g(is)h
-(the)f(resultan)m(t)h(list.)61 b(If)630 4408 y Fr(parameter)38
-b Fu(is)32 b(an)f(arra)m(y)h(v)-5 b(ariable)32 b(subscripted)e(with)h
-(`)p Ft(@)p Fu(')g(or)h(`)p Ft(*)p Fu(',)g(the)f(pattern)h(remo)m(v)-5
-b(al)630 4518 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m
-(b)s(er)e(of)h(the)g(arra)m(y)g(in)f(turn,)g(and)g(the)h(expansion)g
-(is)630 4628 y(the)h(resultan)m(t)g(list.)150 4792 y
-Ft(${)p Fj(parameter)p Ft(/)p Fj(pattern)p Ft(/)p Fj(stri)o(ng)p
-Ft(})630 4902 y Fu(The)37 b Fr(pattern)g Fu(is)g(expanded)g(to)h(pro)s
-(duce)e(a)h(pattern)g(just)g(as)h(in)e(\014lename)i(expansion.)630
-5011 y Fr(P)m(arameter)46 b Fu(is)38 b(expanded)f(and)g(the)i(longest)g
-(matc)m(h)g(of)f Fr(pattern)g Fu(against)h(its)f(v)-5
-b(alue)39 b(is)630 5121 y(replaced)31 b(with)g Fr(string)p
-Fu(.)42 b(The)30 b(matc)m(h)h(is)g(p)s(erformed)f(according)h(to)h(the)
-f(rules)f(describ)s(ed)630 5230 y(b)s(elo)m(w)f(\(see)h(Section)g
-(3.5.8.1)h([P)m(attern)g(Matc)m(hing],)g(page)f(33\).)41
-b(If)29 b Fr(pattern)g Fu(b)s(egins)f(with)630 5340 y(`)p
-Ft(/)p Fu(',)43 b(all)e(matc)m(hes)g(of)f Fr(pattern)g
-Fu(are)h(replaced)f(with)g Fr(string)p Fu(.)69 b(Normally)41
-b(only)f(the)h(\014rst)p eop end
-%%Page: 30 36
-TeXDict begin 30 35 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(30)630 299
-y(matc)m(h)28 b(is)f(replaced.)40 b(If)26 b Fr(pattern)h
-Fu(b)s(egins)f(with)h(`)p Ft(#)p Fu(',)h(it)f(m)m(ust)g(matc)m(h)h(at)g
-(the)f(b)s(eginning)f(of)630 408 y(the)32 b(expanded)f(v)-5
-b(alue)32 b(of)g Fr(parameter)p Fu(.)45 b(If)31 b Fr(pattern)h
-Fu(b)s(egins)f(with)g(`)p Ft(\045)p Fu(',)i(it)f(m)m(ust)g(matc)m(h)g
-(at)630 518 y(the)24 b(end)f(of)h(the)h(expanded)e(v)-5
-b(alue)24 b(of)g Fr(parameter)p Fu(.)39 b(If)24 b Fr(string)31
-b Fu(is)24 b(n)m(ull,)i(matc)m(hes)f(of)f Fr(pattern)630
-628 y Fu(are)36 b(deleted)g(and)f(the)g Ft(/)g Fu(follo)m(wing)i
-Fr(pattern)e Fu(ma)m(y)h(b)s(e)f(omitted.)57 b(If)34
-b(the)i Ft(nocasematch)630 737 y Fu(shell)31 b(option)h(\(see)g(the)g
-(description)f(of)g Ft(shopt)f Fu(in)h(Section)h(4.3.2)h([The)e(Shopt)f
-(Builtin],)630 847 y(page)45 b(66\))h(is)f(enabled,)j(the)d(matc)m(h)g
-(is)g(p)s(erformed)e(without)i(regard)f(to)h(the)g(case)h(of)630
-956 y(alphab)s(etic)36 b(c)m(haracters.)56 b(If)34 b
-Fr(parameter)42 b Fu(is)36 b(`)p Ft(@)p Fu(')f(or)g(`)p
-Ft(*)p Fu(',)h(the)g(substitution)e(op)s(eration)i(is)630
-1066 y(applied)26 b(to)g(eac)m(h)h(p)s(ositional)f(parameter)h(in)e
-(turn,)h(and)f(the)h(expansion)g(is)f(the)h(resultan)m(t)630
-1176 y(list.)38 b(If)21 b Fr(parameter)28 b Fu(is)22
-b(an)f(arra)m(y)h(v)-5 b(ariable)22 b(subscripted)e(with)h(`)p
-Ft(@)p Fu(')g(or)g(`)p Ft(*)p Fu(',)j(the)d(substitution)630
-1285 y(op)s(eration)30 b(is)g(applied)f(to)i(eac)m(h)g(mem)m(b)s(er)e
-(of)h(the)g(arra)m(y)g(in)f(turn,)g(and)g(the)h(expansion)g(is)630
-1395 y(the)h(resultan)m(t)g(list.)150 1551 y Ft(${)p
-Fj(parameter)p Ft(^)p Fj(pattern)p Ft(})150 1661 y(${)p
-Fj(parameter)p Ft(^^)p Fj(pattern)p Ft(})150 1771 y(${)p
-Fj(parameter)p Ft(,)p Fj(pattern)p Ft(})150 1880 y(${)p
-Fj(parameter)p Ft(,,)p Fj(pattern)p Ft(})630 1990 y Fu(This)36
-b(expansion)g(mo)s(di\014es)g(the)g(case)i(of)f(alphab)s(etic)g(c)m
-(haracters)h(in)e Fr(parameter)p Fu(.)59 b(The)630 2099
-y Fr(pattern)33 b Fu(is)g(expanded)e(to)j(pro)s(duce)d(a)j(pattern)e
-(just)g(as)h(in)g(\014lename)g(expansion.)47 b(Eac)m(h)630
-2209 y(c)m(haracter)32 b(in)e(the)g(expanded)f(v)-5 b(alue)31
+2225 y(the)h(resultan)m(t)g(list.)150 2397 y Ft(${)p
+Fj(parameter)p Ft(/)p Fj(pattern)p Ft(/)p Fj(stri)o(ng)p
+Ft(})150 2506 y(${)p Fj(parameter)p Ft(//)p Fj(pattern)p
+Ft(/)p Fj(str)o(ing)p Ft(})150 2616 y(${)p Fj(parameter)p
+Ft(/#)p Fj(pattern)p Ft(/)p Fj(str)o(ing)p Ft(})150 2725
+y(${)p Fj(parameter)p Ft(/\045)p Fj(pattern)p Ft(/)p
+Fj(str)o(ing)p Ft(})630 2835 y Fu(The)37 b Fr(pattern)g
+Fu(is)g(expanded)g(to)h(pro)s(duce)e(a)h(pattern)g(just)g(as)h(in)e
+(\014lename)i(expansion.)630 2945 y Fr(P)m(arameter)46
+b Fu(is)38 b(expanded)f(and)g(the)i(longest)g(matc)m(h)g(of)f
+Fr(pattern)g Fu(against)h(its)f(v)-5 b(alue)39 b(is)630
+3054 y(replaced)30 b(with)e Fr(string)p Fu(.)41 b Fr(string)c
+Fu(undergo)s(es)28 b(tilde)i(expansion,)f(parameter)h(and)e(v)-5
+b(ariable)630 3164 y(expansion,)25 b(arithmetic)g(expansion,)g(command)
+e(and)g(pro)s(cess)g(substitution,)i(and)e(quote)630
+3273 y(remo)m(v)-5 b(al.)54 b(The)33 b(matc)m(h)j(is)e(p)s(erformed)f
+(according)i(to)g(the)f(rules)g(describ)s(ed)f(b)s(elo)m(w)i(\(see)630
+3383 y(Section)c(3.5.8.1)i([P)m(attern)f(Matc)m(hing],)g(page)f(36\).)
+630 3524 y(In)45 b(the)g(\014rst)g(form)g(ab)s(o)m(v)m(e,)50
+b(only)c(the)f(\014rst)g(matc)m(h)h(is)f(replaced.)86
+b(If)45 b(there)h(are)g(t)m(w)m(o)630 3634 y(slashes)28
+b(separating)g Fr(parameter)35 b Fu(and)27 b Fr(pattern)g
+Fu(\(the)i(second)e(form)g(ab)s(o)m(v)m(e\),)j(all)f(matc)m(hes)630
+3743 y(of)d Fr(pattern)g Fu(are)g(replaced)g(with)f Fr(string)p
+Fu(.)40 b(If)25 b Fr(pattern)h Fu(is)f(preceded)h(b)m(y)f(`)p
+Ft(#)p Fu(')h(\(the)h(third)d(form)630 3853 y(ab)s(o)m(v)m(e\),)32
+b(it)e(m)m(ust)f(matc)m(h)i(at)f(the)g(b)s(eginning)e(of)i(the)g
+(expanded)f(v)-5 b(alue)30 b(of)f Fr(parameter)p Fu(.)41
+b(If)630 3962 y Fr(pattern)28 b Fu(is)g(preceded)g(b)m(y)g(`)p
+Ft(\045)p Fu(')g(\(the)h(fourth)e(form)h(ab)s(o)m(v)m(e\),)i(it)f(m)m
+(ust)f(matc)m(h)h(at)g(the)f(end)g(of)630 4072 y(the)i(expanded)e(v)-5
+b(alue)30 b(of)g Fr(parameter)p Fu(.)41 b(If)28 b(the)i(expansion)f(of)
+h Fr(string)37 b Fu(is)29 b(n)m(ull,)h(matc)m(hes)h(of)630
+4181 y Fr(pattern)d Fu(are)g(deleted.)41 b(If)28 b Fr(string)35
+b Fu(is)28 b(n)m(ull,)h(matc)m(hes)g(of)f Fr(pattern)g
+Fu(are)h(deleted)f(and)g(the)g(`)p Ft(/)p Fu(')630 4291
+y(follo)m(wing)k Fr(pattern)e Fu(ma)m(y)h(b)s(e)f(omitted.)630
+4432 y(If)f(the)h Ft(patsub_replacement)25 b Fu(shell)30
+b(option)g(is)f(enabled)h(using)f Ft(shopt)p Fu(,)g(an)m(y)h(unquoted)
+630 4542 y(instances)40 b(of)g(`)p Ft(&)p Fu(')g(in)f
+Fr(string)48 b Fu(are)40 b(replaced)g(with)g(the)g(matc)m(hing)g(p)s
+(ortion)g(of)g Fr(pattern)p Fu(.)630 4651 y(This)30 b(is)g(in)m(tended)
+g(to)h(duplicate)g(a)g(common)g Ft(sed)e Fu(idiom.)630
+4792 y(Quoting)g(an)m(y)f(part)h(of)f Fr(string)36 b
+Fu(inhibits)28 b(replacemen)m(t)i(in)e(the)g(expansion)h(of)f(the)h
+(quoted)630 4902 y(p)s(ortion,)j(including)g(replacemen)m(t)h(strings)f
+(stored)g(in)g(shell)g(v)-5 b(ariables.)46 b(Bac)m(kslash)34
+b(will)630 5011 y(escap)s(e)k(`)p Ft(&)p Fu(')g(in)f
+Fr(string)8 b Fu(;)42 b(the)c(bac)m(kslash)g(is)g(remo)m(v)m(ed)g(in)g
+(order)f(to)h(p)s(ermit)f(a)i(literal)g(`)p Ft(&)p Fu(')630
+5121 y(in)31 b(the)h(replacemen)m(t)h(string.)44 b(Users)32
+b(should)e(tak)m(e)k(care)e(if)g Fr(string)39 b Fu(is)32
+b(double-quoted)f(to)630 5230 y(a)m(v)m(oid)37 b(un)m(w)m(an)m(ted)f
+(in)m(teractions)i(b)s(et)m(w)m(een)e(the)g(bac)m(kslash)h(and)e
+(double-quoting,)j(since)630 5340 y(bac)m(kslash)31 b(has)f(sp)s(ecial)
+h(meaning)f(within)g(double)f(quotes.)42 b(P)m(attern)31
+b(substitution)f(p)s(er-)p eop end
+%%Page: 32 38
+TeXDict begin 32 37 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(32)630 299
+y(forms)28 b(the)h(c)m(hec)m(k)i(for)d(unquoted)g(`)p
+Ft(&)p Fu(')h(after)g(expanding)g Fr(string)p Fu(,)g(so)g(users)f
+(should)g(ensure)630 408 y(to)33 b(prop)s(erly)e(quote)i(an)m(y)f(o)s
+(ccurrences)g(of)h(`)p Ft(&)p Fu(')f(they)g(w)m(an)m(t)h(to)g(b)s(e)f
+(tak)m(en)h(literally)h(in)e(the)630 518 y(replacemen)m(t)k(and)e
+(ensure)g(an)m(y)h(instances)g(of)g(`)p Ft(&)p Fu(')f(they)h(w)m(an)m
+(t)g(to)h(b)s(e)e(replaced)h(are)g(un-)630 628 y(quoted.)630
+756 y(F)-8 b(or)31 b(instance,)870 883 y Ft(var=abcdef)870
+993 y(rep='&)46 b(')870 1103 y(echo)h(${var/abc/&)d(})870
+1212 y(echo)j("${var/abc/&)d(}")870 1322 y(echo)j(${var/abc/$rep})870
+1431 y(echo)g("${var/abc/$rep}")630 1559 y Fu(will)31
+b(displa)m(y)f(four)g(lines)h(of)f Ft(")p Fu(ab)s(c)g(def)p
+Ft(")p Fu(,)g(while)870 1687 y Ft(var=abcdef)870 1797
+y(rep='&)46 b(')870 1906 y(echo)h(${var/abc/\\&)d(})870
+2016 y(echo)j("${var/abc/\\&)d(}")870 2125 y(echo)j(${var/abc/"&)d("})
+870 2235 y(echo)j(${var/abc/"$rep"})630 2363 y Fu(will)34
+b(displa)m(y)g(four)g(lines)g(of)g Ft(")p Fu(&)f(def)p
+Ft(")p Fu(.)51 b(Lik)m(e)35 b(the)f(pattern)g(remo)m(v)-5
+b(al)35 b(op)s(erators,)g(double)630 2472 y(quotes)23
+b(surrounding)c(the)k(replacemen)m(t)g(string)f(quote)h(the)f(expanded)
+f(c)m(haracters,)26 b(while)630 2582 y(double)43 b(quotes)i(enclosing)f
+(the)g(en)m(tire)h(parameter)f(substitution)f(do)h(not,)k(since)c(the)
+630 2692 y(expansion)e(is)h(p)s(erformed)e(in)h(a)h(con)m(text)h(that)f
+(do)s(esn't)f(tak)m(e)i(an)m(y)f(enclosing)g(double)630
+2801 y(quotes)31 b(in)m(to)g(accoun)m(t.)630 2929 y(Since)24
+b(bac)m(kslash)i(can)e(escap)s(e)h(`)p Ft(&)p Fu(',)h(it)f(can)g(also)h
+(escap)s(e)f(a)f(bac)m(kslash)i(in)e(the)g(replacemen)m(t)630
+3039 y(string.)39 b(This)26 b(means)g(that)h(`)p Ft(\\\\)p
+Fu(')g(will)f(insert)h(a)f(literal)i(bac)m(kslash)f(in)m(to)h(the)e
+(replacemen)m(t,)630 3148 y(so)31 b(these)f(t)m(w)m(o)i
+Ft(echo)d Fu(commands)870 3276 y Ft(var=abcdef)870 3386
+y(rep='\\\\&xyz')870 3495 y(echo)47 b(${var/abc/\\\\&xyz})870
+3605 y(echo)g(${var/abc/$rep})630 3733 y Fu(will)31 b(b)s(oth)e(output)
+h(`)p Ft(\\abcxyzdef)p Fu('.)630 3861 y(It)g(should)g(rarely)g(b)s(e)g
+(necessary)h(to)g(enclose)h(only)e Fr(string)38 b Fu(in)30
+b(double)g(quotes.)630 3988 y(If)j(the)h Ft(nocasematch)d
+Fu(shell)i(option)h(\(see)h(the)f(description)f(of)h
+Ft(shopt)e Fu(in)i(Section)g(4.3.2)630 4098 y([The)23
+b(Shopt)g(Builtin],)j(page)e(71\))h(is)e(enabled,)i(the)f(matc)m(h)g
+(is)g(p)s(erformed)e(without)h(regard)630 4208 y(to)31
+b(the)f(case)h(of)g(alphab)s(etic)f(c)m(haracters.)42
+b(If)30 b Fr(parameter)37 b Fu(is)30 b(`)p Ft(@)p Fu(')g(or)g(`)p
+Ft(*)p Fu(',)h(the)f(substitution)630 4317 y(op)s(eration)g(is)f
+(applied)g(to)h(eac)m(h)g(p)s(ositional)g(parameter)g(in)e(turn,)h(and)
+g(the)g(expansion)g(is)630 4427 y(the)i(resultan)m(t)h(list.)45
+b(If)30 b Fr(parameter)39 b Fu(is)31 b(an)g(arra)m(y)h(v)-5
+b(ariable)32 b(subscripted)e(with)h(`)p Ft(@)p Fu(')g(or)h(`)p
+Ft(*)p Fu(',)630 4536 y(the)e(substitution)g(op)s(eration)h(is)f
+(applied)g(to)h(eac)m(h)h(mem)m(b)s(er)e(of)g(the)g(arra)m(y)h(in)f
+(turn,)g(and)630 4646 y(the)h(expansion)f(is)g(the)h(resultan)m(t)g
+(list.)150 4792 y Ft(${)p Fj(parameter)p Ft(^)p Fj(pattern)p
+Ft(})150 4902 y(${)p Fj(parameter)p Ft(^^)p Fj(pattern)p
+Ft(})150 5011 y(${)p Fj(parameter)p Ft(,)p Fj(pattern)p
+Ft(})150 5121 y(${)p Fj(parameter)p Ft(,,)p Fj(pattern)p
+Ft(})630 5230 y Fu(This)36 b(expansion)g(mo)s(di\014es)g(the)g(case)i
+(of)f(alphab)s(etic)g(c)m(haracters)h(in)e Fr(parameter)p
+Fu(.)59 b(The)630 5340 y Fr(pattern)33 b Fu(is)g(expanded)e(to)j(pro)s
+(duce)d(a)j(pattern)e(just)g(as)h(in)g(\014lename)g(expansion.)47
+b(Eac)m(h)p eop end
+%%Page: 33 39
+TeXDict begin 33 38 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(33)630 299
+y(c)m(haracter)32 b(in)e(the)g(expanded)f(v)-5 b(alue)31
b(of)f Fr(parameter)37 b Fu(is)30 b(tested)h(against)h
-Fr(pattern)p Fu(,)e(and,)g(if)630 2318 y(it)j(matc)m(hes)h(the)g
+Fr(pattern)p Fu(,)e(and,)g(if)630 408 y(it)j(matc)m(hes)h(the)g
(pattern,)f(its)h(case)g(is)f(con)m(v)m(erted.)49 b(The)33
-b(pattern)g(should)f(not)h(attempt)630 2428 y(to)f(matc)m(h)g(more)f
-(than)g(one)g(c)m(haracter.)44 b(The)30 b(`)p Ft(^)p
-Fu(')i(op)s(erator)f(con)m(v)m(erts)h(lo)m(w)m(ercase)i(letters)630
-2538 y(matc)m(hing)i Fr(pattern)f Fu(to)h(upp)s(ercase;)h(the)e(`)p
-Ft(,)p Fu(')g(op)s(erator)g(con)m(v)m(erts)i(matc)m(hing)f(upp)s
-(ercase)630 2647 y(letters)e(to)f(lo)m(w)m(ercase.)50
-b(The)32 b(`)p Ft(^^)p Fu(')h(and)f(`)p Ft(,,)p Fu(')g(expansions)h
-(con)m(v)m(ert)h(eac)m(h)g(matc)m(hed)f(c)m(har-)630
-2757 y(acter)c(in)f(the)h(expanded)e(v)-5 b(alue;)30
-b(the)e(`)p Ft(^)p Fu(')g(and)g(`)p Ft(,)p Fu(')g(expansions)g(matc)m
-(h)h(and)f(con)m(v)m(ert)i(only)630 2866 y(the)37 b(\014rst)g(c)m
-(haracter)i(in)e(the)g(expanded)g(v)-5 b(alue.)61 b(If)37
-b Fr(pattern)g Fu(is)h(omitted,)i(it)e(is)f(treated)630
-2976 y(lik)m(e)h(a)f(`)p Ft(?)p Fu(',)i(whic)m(h)d(matc)m(hes)i(ev)m
-(ery)f(c)m(haracter.)61 b(If)37 b Fr(parameter)43 b Fu(is)37
-b(`)p Ft(@)p Fu(')g(or)f(`)p Ft(*)p Fu(',)j(the)e(case)630
-3086 y(mo)s(di\014cation)29 b(op)s(eration)f(is)g(applied)g(to)h(eac)m
-(h)h(p)s(ositional)f(parameter)f(in)g(turn,)g(and)g(the)630
-3195 y(expansion)38 b(is)g(the)g(resultan)m(t)h(list.)65
-b(If)37 b Fr(parameter)46 b Fu(is)38 b(an)g(arra)m(y)g(v)-5
-b(ariable)39 b(subscripted)630 3305 y(with)26 b(`)p Ft(@)p
-Fu(')f(or)h(`)p Ft(*)p Fu(',)h(the)f(case)h(mo)s(di\014cation)f(op)s
-(eration)h(is)e(applied)h(to)h(eac)m(h)g(mem)m(b)s(er)e(of)h(the)630
-3414 y(arra)m(y)31 b(in)f(turn,)f(and)h(the)h(expansion)f(is)g(the)h
-(resultan)m(t)g(list.)150 3571 y Ft(${)p Fj(parameter)p
-Ft(@)p Fj(operator)p Ft(})630 3680 y Fu(The)d(expansion)h(is)f(either)h
-(a)g(transformation)g(of)g(the)g(v)-5 b(alue)29 b(of)g
-Fr(parameter)35 b Fu(or)29 b(informa-)630 3790 y(tion)e(ab)s(out)f
-Fr(parameter)33 b Fu(itself,)28 b(dep)s(ending)c(on)i(the)h(v)-5
-b(alue)26 b(of)h Fr(op)s(erator)p Fu(.)39 b(Eac)m(h)27
-b Fr(op)s(erator)630 3900 y Fu(is)j(a)h(single)g(letter:)630
-4056 y Ft(U)432 b Fu(The)31 b(expansion)g(is)g(a)g(string)h(that)f(is)h
-(the)f(v)-5 b(alue)32 b(of)f Fr(parameter)38 b Fu(with)31
-b(lo)m(w-)1110 4166 y(ercase)g(alphab)s(etic)g(c)m(haracters)h(con)m(v)
-m(erted)g(to)f(upp)s(ercase.)630 4322 y Ft(u)432 b Fu(The)34
-b(expansion)g(is)g(a)h(string)f(that)h(is)g(the)f(v)-5
-b(alue)35 b(of)f Fr(parameter)42 b Fu(with)34 b(the)1110
-4432 y(\014rst)c(c)m(haracter)i(con)m(v)m(erted)f(to)h(upp)s(ercase,)d
-(if)i(it)g(is)f(alphab)s(etic.)630 4589 y Ft(L)432 b
-Fu(The)33 b(expansion)h(is)g(a)g(string)g(that)h(is)f(the)g(v)-5
-b(alue)34 b(of)g Fr(parameter)41 b Fu(with)34 b(up-)1110
-4698 y(p)s(ercase)c(alphab)s(etic)h(c)m(haracters)h(con)m(v)m(erted)g
-(to)f(lo)m(w)m(ercase.)630 4855 y Ft(Q)432 b Fu(The)30
-b(expansion)h(is)g(a)g(string)f(that)i(is)f(the)g(v)-5
+b(pattern)g(should)f(not)h(attempt)630 518 y(to)e(matc)m(h)g(more)g
+(than)f(one)h(c)m(haracter.)630 650 y(The)f(`)p Ft(^)p
+Fu(')g(op)s(erator)g(con)m(v)m(erts)i(lo)m(w)m(ercase)g(letters)g(matc)
+m(hing)f Fr(pattern)f Fu(to)h(upp)s(ercase;)f(the)630
+760 y(`)p Ft(,)p Fu(')25 b(op)s(erator)f(con)m(v)m(erts)i(matc)m(hing)g
+(upp)s(ercase)d(letters)j(to)f(lo)m(w)m(ercase.)41 b(The)24
+b(`)p Ft(^^)p Fu(')g(and)g(`)p Ft(,,)p Fu(')630 870 y(expansions)31
+b(con)m(v)m(ert)i(eac)m(h)g(matc)m(hed)f(c)m(haracter)h(in)e(the)h
+(expanded)f(v)-5 b(alue;)32 b(the)g(`)p Ft(^)p Fu(')g(and)630
+979 y(`)p Ft(,)p Fu(')24 b(expansions)f(matc)m(h)i(and)e(con)m(v)m(ert)
+j(only)d(the)h(\014rst)f(c)m(haracter)j(in)d(the)h(expanded)f(v)-5
+b(alue.)630 1089 y(If)30 b Fr(pattern)g Fu(is)h(omitted,)g(it)g(is)g
+(treated)g(lik)m(e)h(a)f(`)p Ft(?)p Fu(',)f(whic)m(h)g(matc)m(hes)i(ev)
+m(ery)f(c)m(haracter.)630 1221 y(If)23 b Fr(parameter)31
+b Fu(is)24 b(`)p Ft(@)p Fu(')g(or)g(`)p Ft(*)p Fu(',)h(the)f(case)h(mo)
+s(di\014cation)f(op)s(eration)g(is)g(applied)g(to)g(eac)m(h)h(p)s(osi-)
+630 1331 y(tional)h(parameter)e(in)h(turn,)f(and)g(the)h(expansion)f
+(is)g(the)h(resultan)m(t)g(list.)40 b(If)23 b Fr(parameter)32
+b Fu(is)630 1440 y(an)e(arra)m(y)g(v)-5 b(ariable)31
+b(subscripted)d(with)i(`)p Ft(@)p Fu(')g(or)f(`)p Ft(*)p
+Fu(',)i(the)f(case)g(mo)s(di\014cation)h(op)s(eration)f(is)630
+1550 y(applied)d(to)g(eac)m(h)h(mem)m(b)s(er)e(of)h(the)g(arra)m(y)g
+(in)g(turn,)g(and)f(the)h(expansion)f(is)h(the)g(resultan)m(t)630
+1660 y(list.)150 1815 y Ft(${)p Fj(parameter)p Ft(@)p
+Fj(operator)p Ft(})630 1924 y Fu(The)h(expansion)h(is)f(either)h(a)g
+(transformation)g(of)g(the)g(v)-5 b(alue)29 b(of)g Fr(parameter)35
+b Fu(or)29 b(informa-)630 2034 y(tion)e(ab)s(out)f Fr(parameter)33
+b Fu(itself,)28 b(dep)s(ending)c(on)i(the)h(v)-5 b(alue)26
+b(of)h Fr(op)s(erator)p Fu(.)39 b(Eac)m(h)27 b Fr(op)s(erator)630
+2144 y Fu(is)j(a)h(single)g(letter:)630 2299 y Ft(U)432
+b Fu(The)31 b(expansion)g(is)g(a)g(string)h(that)f(is)h(the)f(v)-5
+b(alue)32 b(of)f Fr(parameter)38 b Fu(with)31 b(lo)m(w-)1110
+2408 y(ercase)g(alphab)s(etic)g(c)m(haracters)h(con)m(v)m(erted)g(to)f
+(upp)s(ercase.)630 2564 y Ft(u)432 b Fu(The)34 b(expansion)g(is)g(a)h
+(string)f(that)h(is)g(the)f(v)-5 b(alue)35 b(of)f Fr(parameter)42
+b Fu(with)34 b(the)1110 2673 y(\014rst)c(c)m(haracter)i(con)m(v)m
+(erted)f(to)h(upp)s(ercase,)d(if)i(it)g(is)f(alphab)s(etic.)630
+2829 y Ft(L)432 b Fu(The)33 b(expansion)h(is)g(a)g(string)g(that)h(is)f
+(the)g(v)-5 b(alue)34 b(of)g Fr(parameter)41 b Fu(with)34
+b(up-)1110 2938 y(p)s(ercase)c(alphab)s(etic)h(c)m(haracters)h(con)m(v)
+m(erted)g(to)f(lo)m(w)m(ercase.)630 3093 y Ft(Q)432 b
+Fu(The)30 b(expansion)h(is)g(a)g(string)f(that)i(is)f(the)g(v)-5
b(alue)31 b(of)g Fr(parameter)37 b Fu(quoted)31 b(in)1110
-4964 y(a)g(format)f(that)h(can)g(b)s(e)f(reused)f(as)i(input.)630
-5121 y Ft(E)432 b Fu(The)27 b(expansion)g(is)g(a)g(string)h(that)f(is)h
+3203 y(a)g(format)f(that)h(can)g(b)s(e)f(reused)f(as)i(input.)630
+3358 y Ft(E)432 b Fu(The)27 b(expansion)g(is)g(a)g(string)h(that)f(is)h
(the)f(v)-5 b(alue)28 b(of)f Fr(parameter)34 b Fu(with)27
-b(bac)m(k-)1110 5230 y(slash)e(escap)s(e)h(sequences)f(expanded)g(as)g
+b(bac)m(k-)1110 3468 y(slash)e(escap)s(e)h(sequences)f(expanded)g(as)g
(with)g(the)h Ft($'...)o(')e Fu(quoting)i(mec)m(h-)1110
-5340 y(anism.)p eop end
-%%Page: 31 37
-TeXDict begin 31 36 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(31)630 299
-y Ft(P)432 b Fu(The)22 b(expansion)h(is)g(a)g(string)g(that)g(is)g(the)
-g(result)g(of)g(expanding)f(the)h(v)-5 b(alue)24 b(of)1110
-408 y Fr(parameter)31 b Fu(as)24 b(if)f(it)h(w)m(ere)g(a)g(prompt)f
-(string)h(\(see)g(Section)h(6.9)g([Con)m(trolling)1110
-518 y(the)31 b(Prompt],)f(page)h(98\).)630 676 y Ft(A)432
-b Fu(The)24 b(expansion)g(is)g(a)h(string)f(in)g(the)g(form)g(of)h(an)f
-(assignmen)m(t)h(statemen)m(t)h(or)1110 785 y Ft(declare)h
-Fu(command)i(that,)h(if)f(ev)-5 b(aluated,)31 b(will)e(recreate)i
-Fr(parameter)36 b Fu(with)1110 895 y(its)31 b(attributes)g(and)e(v)-5
-b(alue.)630 1052 y Ft(K)432 b Fu(Pro)s(duces)33 b(a)i(p)s
-(ossibly-quoted)e(v)m(ersion)i(of)f(the)h(v)-5 b(alue)34
-b(of)h Fr(parameter)p Fu(,)g(ex-)1110 1162 y(cept)46
-b(that)h(it)f(prin)m(ts)f(the)h(v)-5 b(alues)47 b(of)f(indexed)f(and)g
-(asso)s(ciativ)m(e)k(arra)m(ys)1110 1271 y(as)37 b(a)g(sequence)f(of)h
-(quoted)g(k)m(ey-v)-5 b(alue)38 b(pairs)e(\(see)h(Section)h(6.7)f
-([Arra)m(ys],)1110 1381 y(page)31 b(95\).)630 1539 y
-Ft(a)432 b Fu(The)30 b(expansion)g(is)g(a)h(string)f(consisting)h(of)g
-(\015ag)g(v)-5 b(alues)30 b(represen)m(ting)h Fr(pa-)1110
-1648 y(rameter)7 b Fu('s)31 b(attributes.)630 1806 y(If)e
-Fr(parameter)37 b Fu(is)30 b(`)p Ft(@)p Fu(')g(or)g(`)p
+3577 y(anism.)630 3733 y Ft(P)432 b Fu(The)22 b(expansion)h(is)g(a)g
+(string)g(that)g(is)g(the)g(result)g(of)g(expanding)f(the)h(v)-5
+b(alue)24 b(of)1110 3842 y Fr(parameter)31 b Fu(as)24
+b(if)f(it)h(w)m(ere)g(a)g(prompt)f(string)h(\(see)g(Section)h(6.9)g
+([Con)m(trolling)1110 3952 y(the)31 b(Prompt],)f(page)h(104\).)630
+4107 y Ft(A)432 b Fu(The)24 b(expansion)g(is)g(a)h(string)f(in)g(the)g
+(form)g(of)h(an)f(assignmen)m(t)h(statemen)m(t)h(or)1110
+4217 y Ft(declare)h Fu(command)i(that,)h(if)f(ev)-5 b(aluated,)31
+b(will)e(recreate)i Fr(parameter)36 b Fu(with)1110 4326
+y(its)31 b(attributes)g(and)e(v)-5 b(alue.)630 4482 y
+Ft(K)432 b Fu(Pro)s(duces)33 b(a)i(p)s(ossibly-quoted)e(v)m(ersion)i
+(of)f(the)h(v)-5 b(alue)34 b(of)h Fr(parameter)p Fu(,)g(ex-)1110
+4591 y(cept)46 b(that)h(it)f(prin)m(ts)f(the)h(v)-5 b(alues)47
+b(of)f(indexed)f(and)g(asso)s(ciativ)m(e)k(arra)m(ys)1110
+4701 y(as)37 b(a)g(sequence)f(of)h(quoted)g(k)m(ey-v)-5
+b(alue)38 b(pairs)e(\(see)h(Section)h(6.7)f([Arra)m(ys],)1110
+4810 y(page)31 b(100\).)630 4966 y Ft(a)432 b Fu(The)30
+b(expansion)g(is)g(a)h(string)f(consisting)h(of)g(\015ag)g(v)-5
+b(alues)30 b(represen)m(ting)h Fr(pa-)1110 5075 y(rameter)7
+b Fu('s)31 b(attributes.)630 5230 y Ft(k)432 b Fu(Lik)m(e)29
+b(the)g(`)p Ft(K)p Fu(')g(transformation,)g(but)f(expands)g(the)g(k)m
+(eys)i(and)d(v)-5 b(alues)29 b(of)g(in-)1110 5340 y(dexed)c(and)f(asso)
+s(ciativ)m(e)k(arra)m(ys)d(to)h(separate)f(w)m(ords)g(after)g(w)m(ord)g
+(splitting.)p eop end
+%%Page: 34 40
+TeXDict begin 34 39 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(34)630 299
+y(If)29 b Fr(parameter)37 b Fu(is)30 b(`)p Ft(@)p Fu(')g(or)g(`)p
Ft(*)p Fu(',)g(the)g(op)s(eration)g(is)g(applied)f(to)i(eac)m(h)g(p)s
-(ositional)f(parameter)630 1915 y(in)24 b(turn,)g(and)f(the)h
-(expansion)g(is)g(the)g(resultan)m(t)h(list.)39 b(If)23
-b Fr(parameter)31 b Fu(is)24 b(an)g(arra)m(y)g(v)-5 b(ariable)630
-2025 y(subscripted)24 b(with)h(`)p Ft(@)p Fu(')h(or)g(`)p
-Ft(*)p Fu(',)h(the)e(op)s(eration)h(is)g(applied)f(to)h(eac)m(h)h(mem)m
-(b)s(er)e(of)h(the)f(arra)m(y)630 2134 y(in)30 b(turn,)g(and)f(the)i
-(expansion)f(is)h(the)f(resultan)m(t)h(list.)630 2268
-y(The)c(result)h(of)g(the)f(expansion)h(is)g(sub)5 b(ject)27
-b(to)h(w)m(ord)g(splitting)g(and)f(\014lename)h(expansion)630
-2378 y(as)j(describ)s(ed)e(b)s(elo)m(w.)150 2575 y Fk(3.5.4)63
-b(Command)41 b(Substitution)150 2722 y Fu(Command)f(substitution)h
+(ositional)f(parameter)630 408 y(in)24 b(turn,)g(and)f(the)h(expansion)
+g(is)g(the)g(resultan)m(t)h(list.)39 b(If)23 b Fr(parameter)31
+b Fu(is)24 b(an)g(arra)m(y)g(v)-5 b(ariable)630 518 y(subscripted)24
+b(with)h(`)p Ft(@)p Fu(')h(or)g(`)p Ft(*)p Fu(',)h(the)e(op)s(eration)h
+(is)g(applied)f(to)h(eac)m(h)h(mem)m(b)s(er)e(of)h(the)f(arra)m(y)630
+628 y(in)30 b(turn,)g(and)f(the)i(expansion)f(is)h(the)f(resultan)m(t)h
+(list.)630 761 y(The)c(result)h(of)g(the)f(expansion)h(is)g(sub)5
+b(ject)27 b(to)h(w)m(ord)g(splitting)g(and)f(\014lename)h(expansion)630
+870 y(as)j(describ)s(ed)e(b)s(elo)m(w.)150 1067 y Fk(3.5.4)63
+b(Command)41 b(Substitution)150 1214 y Fu(Command)f(substitution)h
(allo)m(ws)i(the)e(output)g(of)h(a)f(command)g(to)h(replace)g(the)g
-(command)f(itself.)150 2831 y(Command)29 b(substitution)h(o)s(ccurs)h
+(command)f(itself.)150 1324 y(Command)29 b(substitution)h(o)s(ccurs)h
(when)e(a)i(command)f(is)g(enclosed)h(as)g(follo)m(ws:)390
-2965 y Ft($\()p Fj(command)p Ft(\))150 3098 y Fu(or)390
-3232 y Ft(`)p Fj(command)p Ft(`)150 3366 y Fu(Bash)20
+1457 y Ft($\()p Fj(command)p Ft(\))150 1590 y Fu(or)390
+1724 y Ft(`)p Fj(command)p Ft(`)150 1857 y Fu(Bash)20
b(p)s(erforms)f(the)i(expansion)f(b)m(y)g(executing)i
Fr(command)h Fu(in)d(a)h(subshell)e(en)m(vironmen)m(t)i(and)f
-(replacing)150 3475 y(the)40 b(command)g(substitution)f(with)h(the)g
+(replacing)150 1966 y(the)40 b(command)g(substitution)f(with)h(the)g
(standard)f(output)g(of)h(the)g(command,)i(with)e(an)m(y)g(trailing)150
-3585 y(newlines)e(deleted.)64 b(Em)m(b)s(edded)37 b(newlines)h(are)g
+2076 y(newlines)e(deleted.)64 b(Em)m(b)s(edded)37 b(newlines)h(are)g
(not)g(deleted,)j(but)d(they)g(ma)m(y)h(b)s(e)e(remo)m(v)m(ed)i(during)
-150 3694 y(w)m(ord)30 b(splitting.)42 b(The)30 b(command)g
+150 2186 y(w)m(ord)30 b(splitting.)42 b(The)30 b(command)g
(substitution)h Ft($\(cat)e Fj(file)p Ft(\))g Fu(can)h(b)s(e)g
-(replaced)h(b)m(y)g(the)f(equiv)-5 b(alen)m(t)150 3804
+(replaced)h(b)m(y)g(the)f(equiv)-5 b(alen)m(t)150 2295
y(but)30 b(faster)g Ft($\(<)g Fj(file)p Ft(\))p Fu(.)275
-3937 y(When)j(the)i(old-st)m(yle)h(bac)m(kquote)f(form)f(of)g
+2428 y(When)j(the)i(old-st)m(yle)h(bac)m(kquote)f(form)f(of)g
(substitution)g(is)g(used,)h(bac)m(kslash)f(retains)h(its)f(literal)150
-4047 y(meaning)k(except)h(when)e(follo)m(w)m(ed)j(b)m(y)e(`)p
+2538 y(meaning)k(except)h(when)e(follo)m(w)m(ed)j(b)m(y)e(`)p
Ft($)p Fu(',)j(`)p Ft(`)p Fu(',)f(or)e(`)p Ft(\\)p Fu('.)64
b(The)38 b(\014rst)f(bac)m(kquote)j(not)e(preceded)g(b)m(y)g(a)150
-4157 y(bac)m(kslash)k(terminates)f(the)h(command)e(substitution.)72
+2648 y(bac)m(kslash)k(terminates)f(the)h(command)e(substitution.)72
b(When)41 b(using)f(the)i Ft($\()p Fj(command)p Ft(\))c
-Fu(form,)43 b(all)150 4266 y(c)m(haracters)32 b(b)s(et)m(w)m(een)f(the)
+Fu(form,)43 b(all)150 2757 y(c)m(haracters)32 b(b)s(et)m(w)m(een)f(the)
f(paren)m(theses)h(mak)m(e)g(up)f(the)g(command;)h(none)f(are)h
-(treated)g(sp)s(ecially)-8 b(.)275 4400 y(Command)22
+(treated)g(sp)s(ecially)-8 b(.)275 2890 y(Command)22
b(substitutions)g(ma)m(y)i(b)s(e)e(nested.)39 b(T)-8
b(o)23 b(nest)g(when)f(using)h(the)g(bac)m(kquoted)h(form,)g(escap)s(e)
-150 4509 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m(kslashes.)275
-4643 y(If)e(the)i(substitution)e(app)s(ears)h(within)g(double)f
+150 3000 y(the)31 b(inner)e(bac)m(kquotes)j(with)e(bac)m(kslashes.)275
+3133 y(If)e(the)i(substitution)e(app)s(ears)h(within)g(double)f
(quotes,)i(w)m(ord)f(splitting)h(and)f(\014lename)g(expansion)150
-4753 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)150
-4950 y Fk(3.5.5)63 b(Arithmetic)40 b(Expansion)150 5097
+3243 y(are)i(not)f(p)s(erformed)f(on)h(the)h(results.)150
+3440 y Fk(3.5.5)63 b(Arithmetic)40 b(Expansion)150 3587
y Fu(Arithmetic)25 b(expansion)g(allo)m(ws)g(the)g(ev)-5
b(aluation)26 b(of)f(an)f(arithmetic)i(expression)e(and)g(the)g
-(substitution)150 5206 y(of)31 b(the)f(result.)41 b(The)30
-b(format)g(for)g(arithmetic)i(expansion)e(is:)390 5340
-y Ft($\(\()47 b Fj(expression)e Ft(\)\))p eop end
-%%Page: 32 38
-TeXDict begin 32 37 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(32)275 299
-y(The)33 b(expression)g(is)h(treated)g(as)g(if)g(it)g(w)m(ere)g(within)
-f(double)h(quotes,)h(but)e(a)h(double)f(quote)h(inside)150
-408 y(the)k(paren)m(theses)g(is)g(not)g(treated)h(sp)s(ecially)-8
-b(.)65 b(All)38 b(tok)m(ens)h(in)f(the)g(expression)f(undergo)g
-(parameter)150 518 y(and)26 b(v)-5 b(ariable)28 b(expansion,)g(command)
-e(substitution,)i(and)e(quote)i(remo)m(v)-5 b(al.)41
-b(The)26 b(result)h(is)g(treated)h(as)150 628 y(the)j(arithmetic)g
-(expression)f(to)h(b)s(e)f(ev)-5 b(aluated.)42 b(Arithmetic)31
-b(expansions)g(ma)m(y)g(b)s(e)e(nested.)275 761 y(The)34
-b(ev)-5 b(aluation)37 b(is)f(p)s(erformed)e(according)i(to)g(the)g
-(rules)f(listed)h(b)s(elo)m(w)g(\(see)g(Section)g(6.5)h([Shell)150
-870 y(Arithmetic],)32 b(page)f(93\).)42 b(If)30 b(the)h(expression)f
-(is)g(in)m(v)-5 b(alid,)32 b(Bash)e(prin)m(ts)g(a)h(message)g
-(indicating)h(failure)150 980 y(to)f(the)g(standard)e(error)h(and)g(no)
-g(substitution)g(o)s(ccurs.)150 1177 y Fk(3.5.6)63 b(Pro)s(cess)42
-b(Substitution)150 1324 y Fu(Pro)s(cess)33 b(substitution)g(allo)m(ws)i
-(a)e(pro)s(cess's)g(input)f(or)h(output)g(to)h(b)s(e)f(referred)f(to)i
-(using)f(a)g(\014lename.)150 1433 y(It)d(tak)m(es)i(the)f(form)f(of)390
-1567 y Ft(<\()p Fj(list)p Ft(\))150 1700 y Fu(or)390
-1833 y Ft(>\()p Fj(list)p Ft(\))150 1966 y Fu(The)e(pro)s(cess)h
-Fr(list)j Fu(is)d(run)e(async)m(hronously)-8 b(,)30 b(and)e(its)i
-(input)e(or)h(output)f(app)s(ears)h(as)g(a)g(\014lename.)41
-b(This)150 2076 y(\014lename)25 b(is)g(passed)g(as)g(an)g(argumen)m(t)h
-(to)g(the)f(curren)m(t)g(command)g(as)g(the)g(result)g(of)g(the)h
-(expansion.)38 b(If)150 2186 y(the)28 b Ft(>\()p Fj(list)p
-Ft(\))d Fu(form)i(is)g(used,)h(writing)f(to)h(the)g(\014le)f(will)h
-(pro)m(vide)g(input)e(for)h Fr(list)p Fu(.)41 b(If)26
-b(the)i Ft(<\()p Fj(list)p Ft(\))d Fu(form)150 2295 y(is)g(used,)g(the)
-f(\014le)h(passed)f(as)h(an)f(argumen)m(t)h(should)e(b)s(e)h(read)h(to)
-g(obtain)g(the)f(output)g(of)h Fr(list)p Fu(.)40 b(Note)25
-b(that)150 2405 y(no)33 b(space)g(ma)m(y)g(app)s(ear)f(b)s(et)m(w)m
-(een)i(the)f Ft(<)f Fu(or)h Ft(>)f Fu(and)g(the)h(left)h(paren)m
-(thesis,)f(otherwise)h(the)f(construct)150 2514 y(w)m(ould)j(b)s(e)g
-(in)m(terpreted)g(as)h(a)f(redirection.)59 b(Pro)s(cess)36
-b(substitution)g(is)h(supp)s(orted)d(on)i(systems)g(that)150
-2624 y(supp)s(ort)29 b(named)h(pip)s(es)f(\()p Fm(fif)n(o)p
-Fu(s\))h(or)h(the)f Ft(/dev/fd)f Fu(metho)s(d)h(of)g(naming)g(op)s(en)g
-(\014les.)275 2757 y(When)36 b(a)m(v)-5 b(ailable,)40
-b(pro)s(cess)c(substitution)h(is)f(p)s(erformed)f(sim)m(ultaneously)i
-(with)g(parameter)g(and)150 2867 y(v)-5 b(ariable)31
-b(expansion,)g(command)f(substitution,)g(and)g(arithmetic)i(expansion.)
-150 3064 y Fk(3.5.7)63 b(W)-10 b(ord)41 b(Splitting)150
-3210 y Fu(The)30 b(shell)h(scans)g(the)g(results)f(of)h(parameter)g
-(expansion,)g(command)g(substitution,)g(and)f(arithmetic)150
-3320 y(expansion)g(that)h(did)f(not)g(o)s(ccur)h(within)e(double)h
-(quotes)h(for)f(w)m(ord)g(splitting.)275 3453 y(The)e(shell)g(treats)i
+(substitution)150 3696 y(of)31 b(the)f(result.)41 b(The)30
+b(format)g(for)g(arithmetic)i(expansion)e(is:)390 3829
+y Ft($\(\()47 b Fj(expression)e Ft(\)\))275 3963 y Fu(The)34
+b Fr(expression)h Fu(undergo)s(es)f(the)h(same)h(expansions)e(as)i(if)f
+(it)g(w)m(ere)h(within)e(double)h(quotes,)i(but)150 4072
+y(double)g(quote)g(c)m(haracters)i(in)d Fr(expression)h
+Fu(are)g(not)g(treated)h(sp)s(ecially)g(and)f(are)g(remo)m(v)m(ed.)61
+b(All)38 b(to-)150 4182 y(k)m(ens)c(in)f(the)h(expression)f(undergo)g
+(parameter)h(and)f(v)-5 b(ariable)34 b(expansion,)h(command)e
+(substitution,)150 4291 y(and)41 b(quote)i(remo)m(v)-5
+b(al.)76 b(The)41 b(result)h(is)g(treated)h(as)f(the)g(arithmetic)h
+(expression)f(to)g(b)s(e)f(ev)-5 b(aluated.)150 4401
+y(Arithmetic)31 b(expansions)f(ma)m(y)h(b)s(e)f(nested.)275
+4534 y(The)k(ev)-5 b(aluation)37 b(is)f(p)s(erformed)e(according)i(to)g
+(the)g(rules)f(listed)h(b)s(elo)m(w)g(\(see)g(Section)g(6.5)h([Shell)
+150 4644 y(Arithmetic],)32 b(page)f(98\).)42 b(If)30
+b(the)h(expression)f(is)g(in)m(v)-5 b(alid,)32 b(Bash)e(prin)m(ts)g(a)h
+(message)g(indicating)h(failure)150 4753 y(to)f(the)g(standard)e(error)
+h(and)g(no)g(substitution)g(o)s(ccurs.)150 4950 y Fk(3.5.6)63
+b(Pro)s(cess)42 b(Substitution)150 5097 y Fu(Pro)s(cess)33
+b(substitution)g(allo)m(ws)i(a)e(pro)s(cess's)g(input)f(or)h(output)g
+(to)h(b)s(e)f(referred)f(to)i(using)f(a)g(\014lename.)150
+5207 y(It)d(tak)m(es)i(the)f(form)f(of)390 5340 y Ft(<\()p
+Fj(list)p Ft(\))p eop end
+%%Page: 35 41
+TeXDict begin 35 40 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(35)150 299
+y(or)390 426 y Ft(>\()p Fj(list)p Ft(\))150 553 y Fu(The)28
+b(pro)s(cess)h Fr(list)j Fu(is)d(run)e(async)m(hronously)-8
+b(,)30 b(and)e(its)i(input)e(or)h(output)f(app)s(ears)h(as)g(a)g
+(\014lename.)41 b(This)150 663 y(\014lename)25 b(is)g(passed)g(as)g(an)
+g(argumen)m(t)h(to)g(the)f(curren)m(t)g(command)g(as)g(the)g(result)g
+(of)g(the)h(expansion.)38 b(If)150 772 y(the)28 b Ft(>\()p
+Fj(list)p Ft(\))d Fu(form)i(is)g(used,)h(writing)f(to)h(the)g(\014le)f
+(will)h(pro)m(vide)g(input)e(for)h Fr(list)p Fu(.)41
+b(If)26 b(the)i Ft(<\()p Fj(list)p Ft(\))d Fu(form)150
+882 y(is)g(used,)g(the)f(\014le)h(passed)f(as)h(an)f(argumen)m(t)h
+(should)e(b)s(e)h(read)h(to)g(obtain)g(the)f(output)g(of)h
+Fr(list)p Fu(.)40 b(Note)25 b(that)150 991 y(no)33 b(space)g(ma)m(y)g
+(app)s(ear)f(b)s(et)m(w)m(een)i(the)f Ft(<)f Fu(or)h
+Ft(>)f Fu(and)g(the)h(left)h(paren)m(thesis,)f(otherwise)h(the)f
+(construct)150 1101 y(w)m(ould)j(b)s(e)g(in)m(terpreted)g(as)h(a)f
+(redirection.)59 b(Pro)s(cess)36 b(substitution)g(is)h(supp)s(orted)d
+(on)i(systems)g(that)150 1210 y(supp)s(ort)29 b(named)h(pip)s(es)f(\()p
+Fm(fif)n(o)p Fu(s\))h(or)h(the)f Ft(/dev/fd)f Fu(metho)s(d)h(of)g
+(naming)g(op)s(en)g(\014les.)275 1337 y(When)36 b(a)m(v)-5
+b(ailable,)40 b(pro)s(cess)c(substitution)h(is)f(p)s(erformed)f(sim)m
+(ultaneously)i(with)g(parameter)g(and)150 1447 y(v)-5
+b(ariable)31 b(expansion,)g(command)f(substitution,)g(and)g(arithmetic)
+i(expansion.)150 1631 y Fk(3.5.7)63 b(W)-10 b(ord)41
+b(Splitting)150 1778 y Fu(The)30 b(shell)h(scans)g(the)g(results)f(of)h
+(parameter)g(expansion,)g(command)g(substitution,)g(and)f(arithmetic)
+150 1888 y(expansion)g(that)h(did)f(not)g(o)s(ccur)h(within)e(double)h
+(quotes)h(for)f(w)m(ord)g(splitting.)275 2015 y(The)e(shell)g(treats)i
(eac)m(h)g(c)m(haracter)g(of)f Ft($IFS)e Fu(as)i(a)g(delimiter,)h(and)e
-(splits)g(the)h(results)f(of)h(the)g(other)150 3563 y(expansions)22
+(splits)g(the)h(results)f(of)h(the)g(other)150 2125 y(expansions)22
b(in)m(to)i(w)m(ords)e(using)h(these)g(c)m(haracters)h(as)f(\014eld)f
(terminators.)39 b(If)22 b Ft(IFS)g Fu(is)h(unset,)h(or)e(its)h(v)-5
-b(alue)150 3672 y(is)36 b(exactly)j Ft(<space><tab><newline>)p
+b(alue)150 2234 y(is)36 b(exactly)j Ft(<space><tab><newline>)p
Fu(,)32 b(the)37 b(default,)h(then)e(sequences)h(of)67
-b Ft(<space>)p Fu(,)36 b Ft(<tab>)p Fu(,)h(and)150 3782
+b Ft(<space>)p Fu(,)36 b Ft(<tab>)p Fu(,)h(and)150 2344
y Ft(<newline>)28 b Fu(at)k(the)f(b)s(eginning)f(and)h(end)f(of)h(the)g
(results)g(of)g(the)g(previous)g(expansions)f(are)i(ignored,)150
-3892 y(and)k(an)m(y)h(sequence)h(of)f Ft(IFS)f Fu(c)m(haracters)i(not)f
+2453 y(and)k(an)m(y)h(sequence)h(of)f Ft(IFS)f Fu(c)m(haracters)i(not)f
(at)h(the)f(b)s(eginning)f(or)h(end)f(serv)m(es)h(to)h(delimit)f(w)m
-(ords.)150 4001 y(If)43 b Ft(IFS)f Fu(has)h(a)h(v)-5
+(ords.)150 2563 y(If)43 b Ft(IFS)f Fu(has)h(a)h(v)-5
b(alue)43 b(other)h(than)f(the)g(default,)k(then)c(sequences)h(of)f
-(the)h(whitespace)f(c)m(haracters)150 4111 y Ft(space)p
+(the)h(whitespace)f(c)m(haracters)150 2672 y Ft(space)p
Fu(,)29 b Ft(tab)p Fu(,)h(and)g Ft(newline)e Fu(are)j(ignored)g(at)g
(the)f(b)s(eginning)g(and)g(end)g(of)g(the)h(w)m(ord,)f(as)h(long)g(as)
-g(the)150 4220 y(whitespace)c(c)m(haracter)h(is)f(in)f(the)g(v)-5
+g(the)150 2782 y(whitespace)c(c)m(haracter)h(is)f(in)f(the)g(v)-5
b(alue)27 b(of)g Ft(IFS)e Fu(\(an)i Ft(IFS)e Fu(whitespace)i(c)m
-(haracter\).)42 b(An)m(y)26 b(c)m(haracter)i(in)150 4330
+(haracter\).)42 b(An)m(y)26 b(c)m(haracter)i(in)150 2892
y Ft(IFS)c Fu(that)h(is)g(not)f Ft(IFS)g Fu(whitespace,)j(along)f(with)
e(an)m(y)h(adjacen)m(t)h Ft(IFS)e Fu(whitespace)h(c)m(haracters,)i
-(delimits)150 4440 y(a)k(\014eld.)40 b(A)31 b(sequence)g(of)f
+(delimits)150 3001 y(a)k(\014eld.)40 b(A)31 b(sequence)g(of)f
Ft(IFS)g Fu(whitespace)h(c)m(haracters)h(is)e(also)h(treated)h(as)f(a)f
-(delimiter.)42 b(If)30 b(the)g(v)-5 b(alue)150 4549 y(of)31
+(delimiter.)42 b(If)30 b(the)g(v)-5 b(alue)150 3111 y(of)31
b Ft(IFS)e Fu(is)h(n)m(ull,)h(no)f(w)m(ord)g(splitting)h(o)s(ccurs.)275
-4682 y(Explicit)21 b(n)m(ull)g(argumen)m(ts)g(\()p Ft("")g
+3238 y(Explicit)21 b(n)m(ull)g(argumen)m(ts)g(\()p Ft("")g
Fu(or)g Ft('')p Fu(\))f(are)h(retained)h(and)e(passed)g(to)i(commands)e
-(as)i(empt)m(y)f(strings.)150 4792 y(Unquoted)37 b(implicit)i(n)m(ull)f
+(as)i(empt)m(y)f(strings.)150 3347 y(Unquoted)37 b(implicit)i(n)m(ull)f
(argumen)m(ts,)i(resulting)d(from)g(the)h(expansion)g(of)g(parameters)f
-(that)i(ha)m(v)m(e)150 4902 y(no)32 b(v)-5 b(alues,)33
+(that)i(ha)m(v)m(e)150 3457 y(no)32 b(v)-5 b(alues,)33
b(are)f(remo)m(v)m(ed.)47 b(If)32 b(a)g(parameter)h(with)e(no)h(v)-5
b(alue)33 b(is)f(expanded)f(within)h(double)f(quotes,)j(a)150
-5011 y(n)m(ull)c(argumen)m(t)g(results)g(and)f(is)h(retained)g(and)f
+3567 y(n)m(ull)c(argumen)m(t)g(results)g(and)f(is)h(retained)g(and)f
(passed)g(to)i(a)f(command)g(as)g(an)f(empt)m(y)i(string.)40
-b(When)150 5121 y(a)f(quoted)f(n)m(ull)g(argumen)m(t)h(app)s(ears)e(as)
+b(When)150 3676 y(a)f(quoted)f(n)m(ull)g(argumen)m(t)h(app)s(ears)e(as)
i(part)f(of)g(a)g(w)m(ord)g(whose)g(expansion)g(is)h(non-n)m(ull,)h
-(the)e(n)m(ull)150 5230 y(argumen)m(t)i(is)f(remo)m(v)m(ed.)69
+(the)e(n)m(ull)150 3786 y(argumen)m(t)i(is)f(remo)m(v)m(ed.)69
b(That)39 b(is,)j(the)e(w)m(ord)f Ft(-d'')f Fu(b)s(ecomes)i
Ft(-d)e Fu(after)i(w)m(ord)f(splitting)h(and)f(n)m(ull)150
-5340 y(argumen)m(t)31 b(remo)m(v)-5 b(al.)p eop end
-%%Page: 33 39
-TeXDict begin 33 38 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(33)275 299
-y(Note)31 b(that)g(if)g(no)f(expansion)g(o)s(ccurs,)g(no)h(splitting)g
-(is)f(p)s(erformed.)150 505 y Fk(3.5.8)63 b(Filename)41
-b(Expansion)150 652 y Fu(After)30 b(w)m(ord)f(splitting,)i(unless)d
-(the)i Ft(-f)f Fu(option)h(has)f(b)s(een)g(set)h(\(see)g(Section)h
-(4.3.1)g([The)e(Set)h(Builtin],)150 762 y(page)d(62\),)i(Bash)d(scans)h
-(eac)m(h)h(w)m(ord)e(for)g(the)h(c)m(haracters)g(`)p
-Ft(*)p Fu(',)h(`)p Ft(?)p Fu(',)g(and)e(`)p Ft([)p Fu('.)39
-b(If)26 b(one)h(of)g(these)f(c)m(haracters)150 872 y(app)s(ears,)34
+3895 y(argumen)m(t)31 b(remo)m(v)-5 b(al.)275 4022 y(Note)31
+b(that)g(if)g(no)f(expansion)g(o)s(ccurs,)g(no)h(splitting)g(is)f(p)s
+(erformed.)150 4207 y Fk(3.5.8)63 b(Filename)41 b(Expansion)150
+4354 y Fu(After)30 b(w)m(ord)f(splitting,)i(unless)d(the)i
+Ft(-f)f Fu(option)h(has)f(b)s(een)g(set)h(\(see)g(Section)h(4.3.1)g
+([The)e(Set)h(Builtin],)150 4463 y(page)d(67\),)i(Bash)d(scans)h(eac)m
+(h)h(w)m(ord)e(for)g(the)h(c)m(haracters)g(`)p Ft(*)p
+Fu(',)h(`)p Ft(?)p Fu(',)g(and)e(`)p Ft([)p Fu('.)39
+b(If)26 b(one)h(of)g(these)f(c)m(haracters)150 4573 y(app)s(ears,)34
b(and)f(is)g(not)h(quoted,)h(then)e(the)h(w)m(ord)f(is)h(regarded)f(as)
h(a)g Fr(pattern)p Fu(,)h(and)e(replaced)h(with)f(an)150
-981 y(alphab)s(etically)41 b(sorted)e(list)h(of)g(\014lenames)f(matc)m
+4682 y(alphab)s(etically)41 b(sorted)e(list)h(of)g(\014lenames)f(matc)m
(hing)i(the)e(pattern)g(\(see)i(Section)f(3.5.8.1)i([P)m(attern)150
-1091 y(Matc)m(hing],)e(page)e(33\).)60 b(If)36 b(no)h(matc)m(hing)g
+4792 y(Matc)m(hing],)e(page)e(36\).)60 b(If)36 b(no)h(matc)m(hing)g
(\014lenames)g(are)g(found,)g(and)f(the)g(shell)h(option)g
-Ft(nullglob)150 1200 y Fu(is)k(disabled,)i(the)f(w)m(ord)e(is)h(left)h
+Ft(nullglob)150 4902 y Fu(is)k(disabled,)i(the)f(w)m(ord)e(is)h(left)h
(unc)m(hanged.)72 b(If)40 b(the)h Ft(nullglob)e Fu(option)i(is)g(set,)k
-(and)40 b(no)h(matc)m(hes)150 1310 y(are)c(found,)g(the)g(w)m(ord)f(is)
+(and)40 b(no)h(matc)m(hes)150 5011 y(are)c(found,)g(the)g(w)m(ord)f(is)
g(remo)m(v)m(ed.)60 b(If)36 b(the)h Ft(failglob)d Fu(shell)j(option)g
-(is)g(set,)i(and)c(no)i(matc)m(hes)h(are)150 1420 y(found,)e(an)g
+(is)g(set,)i(and)c(no)i(matc)m(hes)h(are)150 5121 y(found,)e(an)g
(error)f(message)i(is)f(prin)m(ted)f(and)h(the)g(command)f(is)h(not)g
-(executed.)58 b(If)35 b(the)h(shell)g(option)150 1529
+(executed.)58 b(If)35 b(the)h(shell)g(option)150 5230
y Ft(nocaseglob)e Fu(is)j(enabled,)i(the)e(matc)m(h)h(is)f(p)s
(erformed)e(without)i(regard)g(to)h(the)f(case)h(of)f(alphab)s(etic)150
-1639 y(c)m(haracters.)275 1781 y(When)23 b(a)h(pattern)f(is)h(used)f
-(for)g(\014lename)h(expansion,)h(the)e(c)m(haracter)i(`)p
-Ft(.)p Fu(')f(at)g(the)g(start)g(of)g(a)g(\014lename)150
-1890 y(or)f(immediately)i(follo)m(wing)g(a)f(slash)f(m)m(ust)h(b)s(e)f
-(matc)m(hed)h(explicitly)-8 b(,)27 b(unless)c(the)g(shell)h(option)g
-Ft(dotglob)150 2000 y Fu(is)k(set.)41 b(The)28 b(\014lenames)g(`)p
-Ft(.)p Fu(')g(and)g(`)p Ft(..)p Fu(')g(m)m(ust)g(alw)m(a)m(ys)i(b)s(e)e
-(matc)m(hed)h(explicitly)-8 b(,)30 b(ev)m(en)f(if)g Ft(dotglob)d
-Fu(is)i(set.)150 2109 y(In)i(other)g(cases,)i(the)e(`)p
-Ft(.)p Fu(')h(c)m(haracter)h(is)e(not)h(treated)g(sp)s(ecially)-8
-b(.)275 2251 y(When)30 b(matc)m(hing)i(a)f(\014lename,)h(the)f(slash)f
+5340 y(c)m(haracters.)p eop end
+%%Page: 36 42
+TeXDict begin 36 41 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(36)275 299
+y(When)23 b(a)h(pattern)f(is)h(used)f(for)g(\014lename)h(expansion,)h
+(the)e(c)m(haracter)i(`)p Ft(.)p Fu(')f(at)g(the)g(start)g(of)g(a)g
+(\014lename)150 408 y(or)f(immediately)i(follo)m(wing)g(a)f(slash)f(m)m
+(ust)h(b)s(e)f(matc)m(hed)h(explicitly)-8 b(,)27 b(unless)c(the)g
+(shell)h(option)g Ft(dotglob)150 518 y Fu(is)36 b(set.)58
+b(In)35 b(order)g(to)i(matc)m(h)f(the)g(\014lenames)g(`)p
+Ft(.)p Fu(')g(and)g(`)p Ft(..)p Fu(',)h(the)f(pattern)g(m)m(ust)g(b)s
+(egin)f(with)h(`)p Ft(.)p Fu(')g(\(for)150 628 y(example,)42
+b(`)p Ft(.?)p Fu('\),)f(ev)m(en)f(if)f Ft(dotglob)d Fu(is)j(set.)67
+b(If)38 b(the)h Ft(globskipdots)d Fu(shell)j(option)g(is)g(enabled,)i
+(the)150 737 y(\014lenames)33 b(`)p Ft(.)p Fu(')g(and)f(`)p
+Ft(..)p Fu(')h(are)g(nev)m(er)g(matc)m(hed,)h(ev)m(en)g(if)e(the)h
+(pattern)g(b)s(egins)f(with)h(a)g(`)p Ft(.)p Fu('.)48
+b(When)33 b(not)150 847 y(matc)m(hing)e(\014lenames,)g(the)g(`)p
+Ft(.)p Fu(')f(c)m(haracter)i(is)f(not)f(treated)i(sp)s(ecially)-8
+b(.)275 985 y(When)30 b(matc)m(hing)i(a)f(\014lename,)h(the)f(slash)f
(c)m(haracter)j(m)m(ust)d(alw)m(a)m(ys)j(b)s(e)d(matc)m(hed)h
-(explicitly)i(b)m(y)e(a)150 2361 y(slash)d(in)f(the)h(pattern,)h(but)e
+(explicitly)i(b)m(y)e(a)150 1095 y(slash)d(in)f(the)h(pattern,)h(but)e
(in)h(other)g(matc)m(hing)h(con)m(texts)h(it)e(can)g(b)s(e)g(matc)m
-(hed)g(b)m(y)g(a)g(sp)s(ecial)h(pattern)150 2470 y(c)m(haracter)j(as)f
+(hed)g(b)m(y)g(a)g(sp)s(ecial)h(pattern)150 1205 y(c)m(haracter)j(as)f
(describ)s(ed)e(b)s(elo)m(w)h(\(see)i(Section)f(3.5.8.1)i([P)m(attern)e
-(Matc)m(hing],)i(page)e(33\).)275 2612 y(See)d(the)g(description)g(of)g
+(Matc)m(hing],)i(page)e(36\).)275 1343 y(See)d(the)g(description)g(of)g
Ft(shopt)e Fu(in)i(Section)g(4.3.2)i([The)e(Shopt)f(Builtin],)i(page)g
-(66,)g(for)f(a)g(descrip-)150 2722 y(tion)j(of)f(the)h
-Ft(nocaseglob)p Fu(,)d Ft(nullglob)p Fu(,)g Ft(failglob)p
-Fu(,)h(and)g Ft(dotglob)g Fu(options.)275 2864 y(The)36
-b Ft(GLOBIGNORE)d Fu(shell)k(v)-5 b(ariable)37 b(ma)m(y)g(b)s(e)f(used)
-g(to)h(restrict)g(the)g(set)g(of)g(\014le)f(names)h(matc)m(hing)150
-2973 y(a)42 b(pattern.)74 b(If)41 b Ft(GLOBIGNORE)e Fu(is)i(set,)k(eac)
-m(h)e(matc)m(hing)f(\014le)g(name)f(that)h(also)h(matc)m(hes)f(one)g
-(of)g(the)150 3083 y(patterns)34 b(in)g Ft(GLOBIGNORE)d
-Fu(is)k(remo)m(v)m(ed)g(from)f(the)g(list)h(of)f(matc)m(hes.)54
-b(If)33 b(the)i Ft(nocaseglob)c Fu(option)k(is)150 3192
-y(set,)c(the)e(matc)m(hing)i(against)g(the)f(patterns)f(in)h
-Ft(GLOBIGNORE)c Fu(is)k(p)s(erformed)e(without)i(regard)f(to)i(case.)
-150 3302 y(The)d(\014lenames)h Ft(.)g Fu(and)f Ft(..)h
-Fu(are)g(alw)m(a)m(ys)h(ignored)f(when)f Ft(GLOBIGNORE)f
-Fu(is)i(set)g(and)f(not)h(n)m(ull.)41 b(Ho)m(w)m(ev)m(er,)150
-3412 y(setting)30 b Ft(GLOBIGNORE)d Fu(to)j(a)f(non-n)m(ull)g(v)-5
-b(alue)30 b(has)f(the)g(e\013ect)i(of)f(enabling)f(the)h
-Ft(dotglob)d Fu(shell)i(option,)150 3521 y(so)j(all)h(other)f
-(\014lenames)g(b)s(eginning)f(with)h(a)g(`)p Ft(.)p Fu(')g(will)h(matc)
-m(h.)46 b(T)-8 b(o)32 b(get)h(the)f(old)g(b)s(eha)m(vior)g(of)h
-(ignoring)150 3631 y(\014lenames)c(b)s(eginning)f(with)h(a)h(`)p
-Ft(.)p Fu(',)f(mak)m(e)h(`)p Ft(.*)p Fu(')f(one)h(of)f(the)g(patterns)g
-(in)g Ft(GLOBIGNORE)p Fu(.)37 b(The)29 b Ft(dotglob)150
-3740 y Fu(option)i(is)f(disabled)g(when)g Ft(GLOBIGNORE)d
-Fu(is)k(unset.)150 3947 y Fk(3.5.8.1)63 b(P)m(attern)40
-b(Matc)m(hing)150 4094 y Fu(An)m(y)24 b(c)m(haracter)h(that)f(app)s
-(ears)f(in)g(a)h(pattern,)i(other)e(than)f(the)h(sp)s(ecial)g(pattern)g
-(c)m(haracters)h(describ)s(ed)150 4203 y(b)s(elo)m(w,)31
-b(matc)m(hes)g(itself.)42 b(The)29 b Fm(nul)h Fu(c)m(haracter)i(ma)m(y)
-e(not)h(o)s(ccur)f(in)g(a)h(pattern.)40 b(A)31 b(bac)m(kslash)g(escap)s
-(es)150 4313 y(the)38 b(follo)m(wing)g(c)m(haracter;)43
-b(the)37 b(escaping)i(bac)m(kslash)e(is)h(discarded)f(when)f(matc)m
-(hing.)63 b(The)36 b(sp)s(ecial)150 4423 y(pattern)30
-b(c)m(haracters)i(m)m(ust)f(b)s(e)e(quoted)i(if)f(they)h(are)f(to)i(b)s
-(e)d(matc)m(hed)i(literally)-8 b(.)275 4564 y(The)29
-b(sp)s(ecial)i(pattern)g(c)m(haracters)h(ha)m(v)m(e)f(the)g(follo)m
-(wing)h(meanings:)150 4735 y Ft(*)432 b Fu(Matc)m(hes)31
-b(an)m(y)e(string,)h(including)f(the)g(n)m(ull)g(string.)41
-b(When)29 b(the)g Ft(globstar)e Fu(shell)i(option)630
-4844 y(is)37 b(enabled,)h(and)e(`)p Ft(*)p Fu(')h(is)g(used)f(in)g(a)h
+(71,)g(for)f(a)g(descrip-)150 1453 y(tion)j(of)f(the)h
+Ft(nocaseglob)p Fu(,)d Ft(nullglob)p Fu(,)g Ft(globskipdots)p
+Fu(,)f Ft(failglob)p Fu(,)i(and)h Ft(dotglob)e Fu(options.)275
+1592 y(The)36 b Ft(GLOBIGNORE)d Fu(shell)k(v)-5 b(ariable)37
+b(ma)m(y)g(b)s(e)f(used)g(to)h(restrict)g(the)g(set)g(of)g(\014le)f
+(names)h(matc)m(hing)150 1701 y(a)42 b(pattern.)74 b(If)41
+b Ft(GLOBIGNORE)e Fu(is)i(set,)k(eac)m(h)e(matc)m(hing)f(\014le)g(name)
+f(that)h(also)h(matc)m(hes)f(one)g(of)g(the)150 1811
+y(patterns)34 b(in)g Ft(GLOBIGNORE)d Fu(is)k(remo)m(v)m(ed)g(from)f
+(the)g(list)h(of)f(matc)m(hes.)54 b(If)33 b(the)i Ft(nocaseglob)c
+Fu(option)k(is)150 1920 y(set,)c(the)e(matc)m(hing)i(against)g(the)f
+(patterns)f(in)h Ft(GLOBIGNORE)c Fu(is)k(p)s(erformed)e(without)i
+(regard)f(to)i(case.)150 2030 y(The)d(\014lenames)h Ft(.)g
+Fu(and)f Ft(..)h Fu(are)g(alw)m(a)m(ys)h(ignored)f(when)f
+Ft(GLOBIGNORE)f Fu(is)i(set)g(and)f(not)h(n)m(ull.)41
+b(Ho)m(w)m(ev)m(er,)150 2139 y(setting)30 b Ft(GLOBIGNORE)d
+Fu(to)j(a)f(non-n)m(ull)g(v)-5 b(alue)30 b(has)f(the)g(e\013ect)i(of)f
+(enabling)f(the)h Ft(dotglob)d Fu(shell)i(option,)150
+2249 y(so)j(all)h(other)f(\014lenames)g(b)s(eginning)f(with)h(a)g(`)p
+Ft(.)p Fu(')g(will)h(matc)m(h.)46 b(T)-8 b(o)32 b(get)h(the)f(old)g(b)s
+(eha)m(vior)g(of)h(ignoring)150 2359 y(\014lenames)c(b)s(eginning)f
+(with)h(a)h(`)p Ft(.)p Fu(',)f(mak)m(e)h(`)p Ft(.*)p
+Fu(')f(one)h(of)f(the)g(patterns)g(in)g Ft(GLOBIGNORE)p
+Fu(.)37 b(The)29 b Ft(dotglob)150 2468 y Fu(option)i(is)f(disabled)g
+(when)g Ft(GLOBIGNORE)d Fu(is)k(unset.)150 2672 y Fk(3.5.8.1)63
+b(P)m(attern)40 b(Matc)m(hing)150 2819 y Fu(An)m(y)24
+b(c)m(haracter)h(that)f(app)s(ears)f(in)g(a)h(pattern,)i(other)e(than)f
+(the)h(sp)s(ecial)g(pattern)g(c)m(haracters)h(describ)s(ed)150
+2928 y(b)s(elo)m(w,)31 b(matc)m(hes)g(itself.)42 b(The)29
+b Fm(nul)h Fu(c)m(haracter)i(ma)m(y)e(not)h(o)s(ccur)f(in)g(a)h
+(pattern.)40 b(A)31 b(bac)m(kslash)g(escap)s(es)150 3038
+y(the)38 b(follo)m(wing)g(c)m(haracter;)43 b(the)37 b(escaping)i(bac)m
+(kslash)e(is)h(discarded)f(when)f(matc)m(hing.)63 b(The)36
+b(sp)s(ecial)150 3147 y(pattern)30 b(c)m(haracters)i(m)m(ust)f(b)s(e)e
+(quoted)i(if)f(they)h(are)f(to)i(b)s(e)d(matc)m(hed)i(literally)-8
+b(.)275 3286 y(The)29 b(sp)s(ecial)i(pattern)g(c)m(haracters)h(ha)m(v)m
+(e)f(the)g(follo)m(wing)h(meanings:)150 3452 y Ft(*)432
+b Fu(Matc)m(hes)31 b(an)m(y)e(string,)h(including)f(the)g(n)m(ull)g
+(string.)41 b(When)29 b(the)g Ft(globstar)e Fu(shell)i(option)630
+3561 y(is)37 b(enabled,)h(and)e(`)p Ft(*)p Fu(')h(is)g(used)f(in)g(a)h
(\014lename)g(expansion)g(con)m(text,)j(t)m(w)m(o)e(adjacen)m(t)g(`)p
-Ft(*)p Fu('s)630 4954 y(used)f(as)g(a)h(single)g(pattern)g(will)f(matc)
+Ft(*)p Fu('s)630 3671 y(used)f(as)g(a)h(single)g(pattern)g(will)f(matc)
m(h)i(all)f(\014les)f(and)g(zero)h(or)g(more)f(directories)i(and)630
-5064 y(sub)s(directories.)g(If)25 b(follo)m(w)m(ed)j(b)m(y)e(a)g(`)p
+3780 y(sub)s(directories.)g(If)25 b(follo)m(w)m(ed)j(b)m(y)e(a)g(`)p
Ft(/)p Fu(',)h(t)m(w)m(o)g(adjacen)m(t)h(`)p Ft(*)p Fu('s)e(will)g
-(matc)m(h)h(only)f(directories)630 5173 y(and)k(sub)s(directories.)150
-5340 y Ft(?)432 b Fu(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.)p
-eop end
-%%Page: 34 40
-TeXDict begin 34 39 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(34)150 299
-y Ft([...)o(])241 b Fu(Matc)m(hes)27 b(an)m(y)e(one)g(of)g(the)g
-(enclosed)g(c)m(haracters.)41 b(A)25 b(pair)f(of)h(c)m(haracters)i
-(separated)e(b)m(y)g(a)630 408 y(h)m(yphen)k(denotes)i(a)g
+(matc)m(h)h(only)f(directories)630 3890 y(and)k(sub)s(directories.)150
+4054 y Ft(?)432 b Fu(Matc)m(hes)32 b(an)m(y)f(single)g(c)m(haracter.)
+150 4217 y Ft([...)o(])241 b Fu(Matc)m(hes)27 b(an)m(y)e(one)g(of)g
+(the)g(enclosed)g(c)m(haracters.)41 b(A)25 b(pair)f(of)h(c)m(haracters)
+i(separated)e(b)m(y)g(a)630 4327 y(h)m(yphen)k(denotes)i(a)g
Fr(range)g(expression)p Fu(;)f(an)m(y)h(c)m(haracter)h(that)f(falls)g
-(b)s(et)m(w)m(een)g(those)g(t)m(w)m(o)630 518 y(c)m(haracters,)d
+(b)s(et)m(w)m(een)g(those)g(t)m(w)m(o)630 4436 y(c)m(haracters,)d
(inclusiv)m(e,)f(using)d(the)h(curren)m(t)f(lo)s(cale's)j(collating)g
-(sequence)e(and)f(c)m(haracter)630 628 y(set,)31 b(is)f(matc)m(hed.)42
+(sequence)e(and)f(c)m(haracter)630 4546 y(set,)31 b(is)f(matc)m(hed.)42
b(If)30 b(the)g(\014rst)g(c)m(haracter)i(follo)m(wing)g(the)e(`)p
Ft([)p Fu(')h(is)f(a)h(`)p Ft(!)p Fu(')f(or)g(a)h(`)p
-Ft(^)p Fu(')g(then)f(an)m(y)630 737 y(c)m(haracter)c(not)f(enclosed)g
+Ft(^)p Fu(')g(then)f(an)m(y)630 4655 y(c)m(haracter)c(not)f(enclosed)g
(is)g(matc)m(hed.)40 b(A)25 b(`)p Fq(\000)p Fu(')f(ma)m(y)i(b)s(e)e
-(matc)m(hed)h(b)m(y)f(including)h(it)g(as)g(the)630 847
+(matc)m(hed)h(b)m(y)f(including)h(it)g(as)g(the)630 4765
y(\014rst)32 b(or)h(last)h(c)m(haracter)h(in)e(the)g(set.)50
b(A)33 b(`)p Ft(])p Fu(')g(ma)m(y)h(b)s(e)e(matc)m(hed)i(b)m(y)f
-(including)g(it)g(as)h(the)630 956 y(\014rst)25 b(c)m(haracter)i(in)e
-(the)h(set.)40 b(The)25 b(sorting)h(order)f(of)h(c)m(haracters)h(in)f
-(range)g(expressions)f(is)630 1066 y(determined)h(b)m(y)h(the)g(curren)
-m(t)f(lo)s(cale)j(and)d(the)h(v)-5 b(alues)27 b(of)g(the)g
-Ft(LC_COLLATE)d Fu(and)i Ft(LC_ALL)630 1176 y Fu(shell)31
-b(v)-5 b(ariables,)31 b(if)f(set.)630 1312 y(F)-8 b(or)34
-b(example,)g(in)f(the)g(default)g(C)f(lo)s(cale,)k(`)p
-Ft([a-dx-z])p Fu(')31 b(is)i(equiv)-5 b(alen)m(t)34 b(to)g(`)p
-Ft([abcdxyz])p Fu('.)630 1422 y(Man)m(y)68 b(lo)s(cales)h(sort)f(c)m
-(haracters)h(in)e(dictionary)i(order,)76 b(and)67 b(in)g(these)h(lo)s
-(cales)630 1531 y(`)p Ft([a-dx-z])p Fu(')36 b(is)i(t)m(ypically)i(not)e
-(equiv)-5 b(alen)m(t)39 b(to)g(`)p Ft([abcdxyz])p Fu(';)g(it)g(migh)m
-(t)f(b)s(e)f(equiv)-5 b(alen)m(t)630 1641 y(to)34 b(`)p
-Ft([aBbCcDdxXyYz])p Fu(',)c(for)j(example.)49 b(T)-8
-b(o)33 b(obtain)h(the)f(traditional)h(in)m(terpretation)h(of)630
-1751 y(ranges)e(in)f(brac)m(k)m(et)i(expressions,)g(y)m(ou)f(can)g
-(force)g(the)g(use)f(of)h(the)g(C)f(lo)s(cale)i(b)m(y)f(setting)630
-1860 y(the)c Ft(LC_COLLATE)e Fu(or)i Ft(LC_ALL)f Fu(en)m(vironmen)m(t)i
-(v)-5 b(ariable)30 b(to)g(the)f(v)-5 b(alue)30 b(`)p
-Ft(C)p Fu(',)g(or)f(enable)h(the)630 1970 y Ft(globasciiranges)c
-Fu(shell)31 b(option.)630 2106 y(Within)23 b(`)p Ft([)p
-Fu(')h(and)e(`)p Ft(])p Fu(',)j Fr(c)m(haracter)g(classes)j
-Fu(can)c(b)s(e)e(sp)s(eci\014ed)h(using)f(the)i(syn)m(tax)f
-Ft([:)p Fr(class)t Ft(:])p Fu(,)630 2216 y(where)30 b
-Fr(class)35 b Fu(is)30 b(one)h(of)f(the)h(follo)m(wing)h(classes)f
-(de\014ned)e(in)h(the)h Fm(posix)f Fu(standard:)870 2353
-y Ft(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g(digit)g(graph)g(lower)
-870 2462 y(print)g(punct)g(space)f(upper)h(word)190 b(xdigit)630
-2599 y Fu(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h(an)m(y)f(c)m
-(haracter)h(b)s(elonging)f(to)g(that)g(class.)75 b(The)41
-b Ft(word)630 2709 y Fu(c)m(haracter)32 b(class)f(matc)m(hes)h
+(including)g(it)g(as)h(the)630 4875 y(\014rst)c(c)m(haracter)j(in)d
+(the)h(set.)43 b(The)31 b(sorting)g(order)g(of)g(c)m(haracters)h(in)f
+(range)g(expressions,)630 4984 y(and)f(the)h(c)m(haracters)h(included)e
+(in)h(the)f(range,)i(are)f(determined)f(b)m(y)h(the)g(curren)m(t)f(lo)s
+(cale)630 5094 y(and)g(the)g(v)-5 b(alues)31 b(of)g(the)f
+Ft(LC_COLLATE)e Fu(and)h Ft(LC_ALL)g Fu(shell)i(v)-5
+b(ariables,)31 b(if)f(set.)630 5230 y(F)-8 b(or)34 b(example,)g(in)f
+(the)g(default)g(C)f(lo)s(cale,)k(`)p Ft([a-dx-z])p Fu(')31
+b(is)i(equiv)-5 b(alen)m(t)34 b(to)g(`)p Ft([abcdxyz])p
+Fu('.)630 5340 y(Man)m(y)68 b(lo)s(cales)h(sort)f(c)m(haracters)h(in)e
+(dictionary)i(order,)76 b(and)67 b(in)g(these)h(lo)s(cales)p
+eop end
+%%Page: 37 43
+TeXDict begin 37 42 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(37)630 299
+y(`)p Ft([a-dx-z])p Fu(')36 b(is)i(t)m(ypically)i(not)e(equiv)-5
+b(alen)m(t)39 b(to)g(`)p Ft([abcdxyz])p Fu(';)g(it)g(migh)m(t)f(b)s(e)f
+(equiv)-5 b(alen)m(t)630 408 y(to)34 b(`)p Ft([aBbCcDdxYyZz])p
+Fu(',)c(for)j(example.)49 b(T)-8 b(o)33 b(obtain)h(the)f(traditional)h
+(in)m(terpretation)h(of)630 518 y(ranges)e(in)f(brac)m(k)m(et)i
+(expressions,)g(y)m(ou)f(can)g(force)g(the)g(use)f(of)h(the)g(C)f(lo)s
+(cale)i(b)m(y)f(setting)630 628 y(the)c Ft(LC_COLLATE)e
+Fu(or)i Ft(LC_ALL)f Fu(en)m(vironmen)m(t)i(v)-5 b(ariable)30
+b(to)g(the)f(v)-5 b(alue)30 b(`)p Ft(C)p Fu(',)g(or)f(enable)h(the)630
+737 y Ft(globasciiranges)c Fu(shell)31 b(option.)630
+873 y(Within)23 b(`)p Ft([)p Fu(')h(and)e(`)p Ft(])p
+Fu(',)j Fr(c)m(haracter)g(classes)j Fu(can)c(b)s(e)e(sp)s(eci\014ed)h
+(using)f(the)i(syn)m(tax)f Ft([:)p Fr(class)t Ft(:])p
+Fu(,)630 982 y(where)30 b Fr(class)35 b Fu(is)30 b(one)h(of)f(the)h
+(follo)m(wing)h(classes)f(de\014ned)e(in)h(the)h Fm(posix)f
+Fu(standard:)870 1118 y Ft(alnum)142 b(alpha)g(ascii)f(blank)h(cntrl)g
+(digit)g(graph)g(lower)870 1227 y(print)g(punct)g(space)f(upper)h(word)
+190 b(xdigit)630 1363 y Fu(A)42 b(c)m(haracter)h(class)f(matc)m(hes)h
+(an)m(y)f(c)m(haracter)h(b)s(elonging)f(to)g(that)g(class.)75
+b(The)41 b Ft(word)630 1472 y Fu(c)m(haracter)32 b(class)f(matc)m(hes)h
(letters,)f(digits,)h(and)d(the)i(c)m(haracter)h(`)p
-Ft(_)p Fu('.)630 2845 y(Within)25 b(`)p Ft([)p Fu(')f(and)g(`)p
+Ft(_)p Fu('.)630 1608 y(Within)25 b(`)p Ft([)p Fu(')f(and)g(`)p
Ft(])p Fu(',)i(an)e Fr(equiv)-5 b(alence)26 b(class)j
Fu(can)24 b(b)s(e)g(sp)s(eci\014ed)g(using)g(the)g(syn)m(tax)h
-Ft([=)p Fr(c)6 b Ft(=])p Fu(,)630 2955 y(whic)m(h)29
+Ft([=)p Fr(c)6 b Ft(=])p Fu(,)630 1717 y(whic)m(h)29
b(matc)m(hes)i(all)f(c)m(haracters)h(with)e(the)h(same)g(collation)h(w)
-m(eigh)m(t)g(\(as)f(de\014ned)e(b)m(y)i(the)630 3064
+m(eigh)m(t)g(\(as)f(de\014ned)e(b)m(y)i(the)630 1827
y(curren)m(t)g(lo)s(cale\))j(as)d(the)h(c)m(haracter)h
-Fr(c)p Fu(.)630 3201 y(Within)22 b(`)p Ft([)p Fu(')f(and)g(`)p
+Fr(c)p Fu(.)630 1962 y(Within)22 b(`)p Ft([)p Fu(')f(and)g(`)p
Ft(])p Fu(',)j(the)d(syn)m(tax)h Ft([.)p Fr(sym)m(b)s(ol)t
Ft(.])e Fu(matc)m(hes)i(the)g(collating)i(sym)m(b)s(ol)d
-Fr(sym)m(b)s(ol)p Fu(.)275 3367 y(If)29 b(the)g Ft(extglob)f
+Fr(sym)m(b)s(ol)p Fu(.)275 2125 y(If)i(the)g Ft(extglob)f
Fu(shell)h(option)h(is)g(enabled)f(using)g(the)h Ft(shopt)e
-Fu(builtin,)h(sev)m(eral)i(extended)f(pattern)150 3477
-y(matc)m(hing)37 b(op)s(erators)e(are)h(recognized.)58
-b(In)35 b(the)g(follo)m(wing)i(description,)g(a)f Fr(pattern-list)j
-Fu(is)d(a)g(list)g(of)150 3586 y(one)d(or)f(more)h(patterns)f
-(separated)h(b)m(y)f(a)h(`)p Ft(|)p Fu('.)47 b(Comp)s(osite)33
-b(patterns)f(ma)m(y)i(b)s(e)d(formed)h(using)g(one)h(or)150
-3696 y(more)e(of)f(the)h(follo)m(wing)g(sub-patterns:)150
-3862 y Ft(?\()p Fj(pattern-list)p Ft(\))630 3971 y Fu(Matc)m(hes)h
-(zero)f(or)g(one)f(o)s(ccurrence)h(of)f(the)h(giv)m(en)g(patterns.)150
-4135 y Ft(*\()p Fj(pattern-list)p Ft(\))630 4245 y Fu(Matc)m(hes)h
+Fu(builtin,)i(the)g(shell)f(recognizes)j(sev)m(eral)150
+2234 y(extended)i(pattern)f(matc)m(hing)i(op)s(erators.)40
+b(In)26 b(the)i(follo)m(wing)h(description,)g(a)e Fr(pattern-list)k
+Fu(is)d(a)g(list)g(of)150 2344 y(one)23 b(or)f(more)h(patterns)g
+(separated)g(b)m(y)f(a)h(`)p Ft(|)p Fu('.)38 b(When)22
+b(matc)m(hing)i(\014lenames,)g(the)f Ft(dotglob)e Fu(shell)h(option)150
+2453 y(determines)h(the)h(set)g(of)g(\014lenames)f(that)h(are)g
+(tested,)i(as)d(describ)s(ed)g(ab)s(o)m(v)m(e.)39 b(Comp)s(osite)24
+b(patterns)f(ma)m(y)150 2563 y(b)s(e)30 b(formed)g(using)f(one)i(or)f
+(more)h(of)g(the)f(follo)m(wing)i(sub-patterns:)150 2725
+y Ft(?\()p Fj(pattern-list)p Ft(\))630 2835 y Fu(Matc)m(hes)g(zero)f
+(or)g(one)f(o)s(ccurrence)h(of)f(the)h(giv)m(en)g(patterns.)150
+2996 y Ft(*\()p Fj(pattern-list)p Ft(\))630 3106 y Fu(Matc)m(hes)h
(zero)f(or)g(more)f(o)s(ccurrences)h(of)f(the)h(giv)m(en)g(patterns.)
-150 4408 y Ft(+\()p Fj(pattern-list)p Ft(\))630 4518
+150 3267 y Ft(+\()p Fj(pattern-list)p Ft(\))630 3377
y Fu(Matc)m(hes)h(one)f(or)f(more)h(o)s(ccurrences)f(of)h(the)f(giv)m
-(en)i(patterns.)150 4682 y Ft(@\()p Fj(pattern-list)p
-Ft(\))630 4791 y Fu(Matc)m(hes)g(one)f(of)f(the)h(giv)m(en)g(patterns.)
-150 4955 y Ft(!\()p Fj(pattern-list)p Ft(\))630 5064
+(en)i(patterns.)150 3538 y Ft(@\()p Fj(pattern-list)p
+Ft(\))630 3648 y Fu(Matc)m(hes)g(one)f(of)f(the)h(giv)m(en)g(patterns.)
+150 3809 y Ft(!\()p Fj(pattern-list)p Ft(\))630 3919
y Fu(Matc)m(hes)h(an)m(ything)f(except)g(one)g(of)f(the)h(giv)m(en)g
-(patterns.)275 5230 y(Complicated)41 b(extended)f(pattern)g(matc)m
-(hing)h(against)h(long)f(strings)f(is)g(slo)m(w,)k(esp)s(ecially)d
-(when)150 5340 y(the)29 b(patterns)g(con)m(tain)i(alternations)f(and)f
-(the)g(strings)g(con)m(tain)h(m)m(ultiple)g(matc)m(hes.)42
-b(Using)29 b(separate)p eop end
-%%Page: 35 41
-TeXDict begin 35 40 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(35)150 299
+(patterns.)275 4081 y(The)h Ft(extglob)f Fu(option)j(c)m(hanges)g(the)f
+(b)s(eha)m(vior)g(of)h(the)f(parser,)g(since)h(the)f(paren)m(theses)h
+(are)f(nor-)150 4190 y(mally)44 b(treated)g(as)f(op)s(erators)g(with)g
+(syn)m(tactic)i(meaning.)79 b(T)-8 b(o)44 b(ensure)e(that)i(extended)f
+(matc)m(hing)150 4300 y(patterns)30 b(are)g(parsed)f(correctly)-8
+b(,)32 b(mak)m(e)e(sure)g(that)g Ft(extglob)e Fu(is)h(enabled)h(b)s
+(efore)f(parsing)h(constructs)150 4410 y(con)m(taining)i(the)e
+(patterns,)h(including)f(shell)h(functions)f(and)f(command)h
+(substitutions.)275 4546 y(When)c(matc)m(hing)i(\014lenames,)g(the)f
+Ft(dotglob)e Fu(shell)i(option)h(determines)f(the)g(set)g(of)g
+(\014lenames)g(that)150 4656 y(are)34 b(tested:)47 b(when)33
+b Ft(dotglob)e Fu(is)i(enabled,)i(the)e(set)h(of)g(\014lenames)f
+(includes)g(all)h(\014les)g(b)s(eginning)e(with)150 4765
+y(`)p Ft(.)p Fu(',)d(but)e(the)g(\014lenames)h(`)p Ft(.)p
+Fu(')g(and)f(`)p Ft(..)p Fu(')g(m)m(ust)h(b)s(e)f(matc)m(hed)h(b)m(y)g
+(a)g(pattern)g(or)f(sub-pattern)g(that)h(b)s(egins)150
+4875 y(with)33 b(a)g(dot;)j(when)c(it)h(is)h(disabled,)f(the)h(set)g
+(do)s(es)e(not)i(include)f(an)m(y)g(\014lenames)g(b)s(eginning)g(with)g
+(\\.")150 4984 y(unless)24 b(the)g(pattern)h(or)f(sub-pattern)g(b)s
+(egins)g(with)g(a)g(`)p Ft(.)p Fu('.)39 b(As)25 b(ab)s(o)m(v)m(e,)i(`)p
+Ft(.)p Fu(')d(only)h(has)f(a)h(sp)s(ecial)g(meaning)150
+5094 y(when)k(matc)m(hing)j(\014lenames.)275 5230 y(Complicated)41
+b(extended)f(pattern)g(matc)m(hing)h(against)h(long)f(strings)f(is)g
+(slo)m(w,)k(esp)s(ecially)d(when)150 5340 y(the)29 b(patterns)g(con)m
+(tain)i(alternations)f(and)f(the)g(strings)g(con)m(tain)h(m)m(ultiple)g
+(matc)m(hes.)42 b(Using)29 b(separate)p eop end
+%%Page: 38 44
+TeXDict begin 38 43 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(38)150 299
y(matc)m(hes)38 b(against)g(shorter)e(strings,)i(or)f(using)f(arra)m
(ys)h(of)g(strings)f(instead)h(of)g(a)g(single)g(long)h(string,)150
-408 y(ma)m(y)31 b(b)s(e)f(faster.)150 614 y Fk(3.5.9)63
-b(Quote)41 b(Remo)m(v)-7 b(al)150 760 y Fu(After)32 b(the)g(preceding)g
+408 y(ma)m(y)31 b(b)s(e)f(faster.)150 603 y Fk(3.5.9)63
+b(Quote)41 b(Remo)m(v)-7 b(al)150 750 y Fu(After)32 b(the)g(preceding)g
(expansions,)h(all)f(unquoted)f(o)s(ccurrences)h(of)g(the)h(c)m
(haracters)g(`)p Ft(\\)p Fu(',)g(`)p Ft(')p Fu(',)f(and)g(`)p
-Ft(")p Fu(')150 870 y(that)f(did)f(not)g(result)g(from)g(one)h(of)g
+Ft(")p Fu(')150 860 y(that)f(did)f(not)g(result)g(from)g(one)h(of)g
(the)f(ab)s(o)m(v)m(e)i(expansions)e(are)h(remo)m(v)m(ed.)150
-1120 y Fs(3.6)68 b(Redirections)150 1279 y Fu(Before)32
+1096 y Fs(3.6)68 b(Redirections)150 1255 y Fu(Before)32
b(a)f(command)f(is)h(executed,)h(its)f(input)e(and)h(output)h(ma)m(y)g
(b)s(e)f Fr(redirected)k Fu(using)c(a)i(sp)s(ecial)f(no-)150
-1389 y(tation)d(in)m(terpreted)f(b)m(y)f(the)h(shell.)40
-b(Redirection)27 b(allo)m(ws)h(commands')f(\014le)f(handles)g(to)i(b)s
-(e)e(duplicated,)150 1498 y(op)s(ened,)i(closed,)i(made)e(to)h(refer)f
-(to)h(di\013eren)m(t)f(\014les,)h(and)f(can)g(c)m(hange)h(the)g
-(\014les)f(the)g(command)g(reads)150 1608 y(from)39 b(and)g(writes)h
+1365 y(tation)d(in)m(terpreted)f(b)m(y)f(the)h(shell.)40
+b Fr(Redirection)27 b Fu(allo)m(ws)h(commands')f(\014le)f(handles)g(to)
+i(b)s(e)e(duplicated,)150 1475 y(op)s(ened,)i(closed,)i(made)e(to)h
+(refer)f(to)h(di\013eren)m(t)f(\014les,)h(and)f(can)g(c)m(hange)h(the)g
+(\014les)f(the)g(command)g(reads)150 1584 y(from)39 b(and)g(writes)h
(to.)69 b(Redirection)40 b(ma)m(y)g(also)h(b)s(e)e(used)g(to)h(mo)s
(dify)f(\014le)g(handles)g(in)g(the)h(curren)m(t)150
-1717 y(shell)e(execution)h(en)m(vironmen)m(t.)65 b(The)37
+1694 y(shell)e(execution)h(en)m(vironmen)m(t.)65 b(The)37
b(follo)m(wing)j(redirection)f(op)s(erators)f(ma)m(y)g(precede)h(or)f
-(app)s(ear)150 1827 y(an)m(ywhere)30 b(within)f(a)h(simple)f(command)h
+(app)s(ear)150 1803 y(an)m(ywhere)30 b(within)f(a)h(simple)f(command)h
(or)f(ma)m(y)i(follo)m(w)g(a)f(command.)40 b(Redirections)30
-b(are)g(pro)s(cessed)150 1936 y(in)g(the)h(order)f(they)g(app)s(ear,)g
-(from)g(left)h(to)g(righ)m(t.)275 2077 y(Eac)m(h)45 b(redirection)h
+b(are)g(pro)s(cessed)150 1913 y(in)g(the)h(order)f(they)g(app)s(ear,)g
+(from)g(left)h(to)g(righ)m(t.)275 2045 y(Eac)m(h)45 b(redirection)h
(that)f(ma)m(y)h(b)s(e)e(preceded)g(b)m(y)h(a)h(\014le)f(descriptor)f
-(n)m(um)m(b)s(er)g(ma)m(y)h(instead)h(b)s(e)150 2186
+(n)m(um)m(b)s(er)g(ma)m(y)h(instead)h(b)s(e)150 2155
y(preceded)41 b(b)m(y)g(a)h(w)m(ord)f(of)g(the)h(form)f
Fi({)p Fr(v)-5 b(arname)5 b Fi(})p Fu(.)74 b(In)41 b(this)g(case,)k
-(for)c(eac)m(h)i(redirection)f(op)s(erator)150 2296 y(except)37
+(for)c(eac)m(h)i(redirection)f(op)s(erator)150 2264 y(except)37
b Ft(>)p Fu(&-)e(and)g Ft(<)p Fu(&-,)i(the)f(shell)g(will)g(allo)s
(cate)j(a)d(\014le)g(descriptor)f(greater)i(than)f(10)g(and)f(assign)h
-(it)150 2406 y(to)e Fi({)p Fr(v)-5 b(arname)5 b Fi(})p
+(it)150 2374 y(to)e Fi({)p Fr(v)-5 b(arname)5 b Fi(})p
Fu(.)52 b(If)33 b Ft(>)p Fu(&-)g(or)h Ft(<)p Fu(&-)f(is)g(preceded)h(b)
m(y)f Fi({)p Fr(v)-5 b(arname)5 b Fi(})p Fu(,)36 b(the)e(v)-5
b(alue)34 b(of)f Fr(v)-5 b(arname)39 b Fu(de\014nes)33
-b(the)150 2515 y(\014le)e(descriptor)g(to)h(close.)43
+b(the)150 2483 y(\014le)e(descriptor)g(to)h(close.)43
b(If)31 b Fi({)p Fr(v)-5 b(arname)5 b Fi(})32 b Fu(is)f(supplied,)f
(the)h(redirection)g(p)s(ersists)f(b)s(ey)m(ond)h(the)g(scop)s(e)150
-2625 y(of)42 b(the)f(command,)j(allo)m(wing)f(the)f(shell)g(programmer)
+2593 y(of)42 b(the)f(command,)j(allo)m(wing)f(the)f(shell)g(programmer)
f(to)h(manage)g(the)g(\014le)f(descriptor's)h(lifetime)150
-2734 y(man)m(ually)-8 b(.)275 2875 y(In)27 b(the)i(follo)m(wing)h
-(descriptions,)g(if)e(the)h(\014le)g(descriptor)f(n)m(um)m(b)s(er)g(is)
-g(omitted,)i(and)f(the)f(\014rst)g(c)m(har-)150 2984
-y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)g(is)g(`)p
-Ft(<)p Fu(',)i(the)e(redirection)g(refers)g(to)g(the)g(standard)f
-(input)f(\(\014le)150 3094 y(descriptor)33 b(0\).)49
-b(If)33 b(the)g(\014rst)f(c)m(haracter)i(of)g(the)f(redirection)g(op)s
-(erator)h(is)f(`)p Ft(>)p Fu(',)h(the)f(redirection)g(refers)150
-3203 y(to)e(the)g(standard)e(output)h(\(\014le)h(descriptor)f(1\).)275
-3344 y(The)h(w)m(ord)h(follo)m(wing)i(the)f(redirection)g(op)s(erator)f
-(in)g(the)h(follo)m(wing)h(descriptions,)f(unless)e(other-)150
-3453 y(wise)21 b(noted,)i(is)e(sub)5 b(jected)21 b(to)h(brace)f
-(expansion,)i(tilde)f(expansion,)h(parameter)e(expansion,)i(command)150
-3563 y(substitution,)31 b(arithmetic)h(expansion,)f(quote)h(remo)m(v)-5
-b(al,)33 b(\014lename)e(expansion,)g(and)f(w)m(ord)h(splitting.)150
-3672 y(If)f(it)h(expands)e(to)i(more)g(than)f(one)h(w)m(ord,)f(Bash)h
-(rep)s(orts)e(an)h(error.)275 3813 y(Note)h(that)g(the)g(order)f(of)g
-(redirections)h(is)g(signi\014can)m(t.)41 b(F)-8 b(or)31
-b(example,)h(the)e(command)390 3953 y Ft(ls)47 b(>)h
-Fj(dirlist)d Ft(2>&1)150 4093 y Fu(directs)28 b(b)s(oth)f(standard)g
-(output)g(\(\014le)h(descriptor)f(1\))i(and)e(standard)f(error)i
-(\(\014le)g(descriptor)f(2\))h(to)h(the)150 4203 y(\014le)h
-Fr(dirlist)p Fu(,)h(while)f(the)h(command)390 4343 y
-Ft(ls)47 b(2>&1)g(>)g Fj(dirlist)150 4484 y Fu(directs)28
+2703 y(man)m(ually)-8 b(.)41 b(The)29 b Ft(varredir_close)c
+Fu(shell)k(option)g(manages)h(this)f(b)s(eha)m(vior)g(\(see)h(Section)f
+(4.3.2)i([The)150 2812 y(Shopt)f(Builtin],)h(page)g(71\).)275
+2944 y(In)c(the)i(follo)m(wing)h(descriptions,)g(if)e(the)h(\014le)g
+(descriptor)f(n)m(um)m(b)s(er)g(is)g(omitted,)i(and)f(the)f(\014rst)g
+(c)m(har-)150 3054 y(acter)42 b(of)f(the)g(redirection)g(op)s(erator)g
+(is)g(`)p Ft(<)p Fu(',)i(the)e(redirection)g(refers)g(to)g(the)g
+(standard)f(input)f(\(\014le)150 3164 y(descriptor)33
+b(0\).)49 b(If)33 b(the)g(\014rst)f(c)m(haracter)i(of)g(the)f
+(redirection)g(op)s(erator)h(is)f(`)p Ft(>)p Fu(',)h(the)f(redirection)
+g(refers)150 3273 y(to)e(the)g(standard)e(output)h(\(\014le)h
+(descriptor)f(1\).)275 3405 y(The)h(w)m(ord)h(follo)m(wing)i(the)f
+(redirection)g(op)s(erator)f(in)g(the)h(follo)m(wing)h(descriptions,)f
+(unless)e(other-)150 3515 y(wise)21 b(noted,)i(is)e(sub)5
+b(jected)21 b(to)h(brace)f(expansion,)i(tilde)f(expansion,)h(parameter)
+e(expansion,)i(command)150 3625 y(substitution,)31 b(arithmetic)h
+(expansion,)f(quote)h(remo)m(v)-5 b(al,)33 b(\014lename)e(expansion,)g
+(and)f(w)m(ord)h(splitting.)150 3734 y(If)f(it)h(expands)e(to)i(more)g
+(than)f(one)h(w)m(ord,)f(Bash)h(rep)s(orts)e(an)h(error.)275
+3866 y(Note)h(that)g(the)g(order)f(of)g(redirections)h(is)g
+(signi\014can)m(t.)41 b(F)-8 b(or)31 b(example,)h(the)e(command)390
+3999 y Ft(ls)47 b(>)h Fj(dirlist)d Ft(2>&1)150 4131 y
+Fu(directs)28 b(b)s(oth)f(standard)g(output)g(\(\014le)h(descriptor)f
+(1\))i(and)e(standard)f(error)i(\(\014le)g(descriptor)f(2\))h(to)h(the)
+150 4240 y(\014le)h Fr(dirlist)p Fu(,)h(while)f(the)h(command)390
+4373 y Ft(ls)47 b(2>&1)g(>)g Fj(dirlist)150 4505 y Fu(directs)28
b(only)f(the)h(standard)e(output)i(to)g(\014le)f Fr(dirlist)p
Fu(,)h(b)s(ecause)g(the)f(standard)g(error)g(w)m(as)h(made)f(a)h(cop)m
-(y)150 4593 y(of)j(the)f(standard)g(output)g(b)s(efore)g(the)g
+(y)150 4615 y(of)j(the)f(standard)g(output)g(b)s(efore)g(the)g
(standard)g(output)g(w)m(as)g(redirected)h(to)g Fr(dirlist)p
-Fu(.)275 4733 y(Bash)26 b(handles)f(sev)m(eral)j(\014lenames)e(sp)s
+Fu(.)275 4747 y(Bash)26 b(handles)f(sev)m(eral)j(\014lenames)e(sp)s
(ecially)h(when)f(they)g(are)g(used)g(in)g(redirections,)i(as)e
-(describ)s(ed)150 4843 y(in)38 b(the)h(follo)m(wing)h(table.)66
+(describ)s(ed)150 4856 y(in)38 b(the)h(follo)m(wing)h(table.)66
b(If)38 b(the)h(op)s(erating)g(system)f(on)h(whic)m(h)f(Bash)h(is)f
-(running)f(pro)m(vides)h(these)150 4953 y(sp)s(ecial)27
+(running)f(pro)m(vides)h(these)150 4966 y(sp)s(ecial)27
b(\014les,)g(bash)e(will)i(use)f(them;)h(otherwise)g(it)f(will)h(em)m
(ulate)h(them)e(in)m(ternally)h(with)f(the)g(b)s(eha)m(vior)150
-5062 y(describ)s(ed)j(b)s(elo)m(w.)150 5230 y Ft(/dev/fd/)p
+5076 y(describ)s(ed)j(b)s(elo)m(w.)150 5230 y Ft(/dev/fd/)p
Fj(fd)630 5340 y Fu(If)h Fr(fd)j Fu(is)d(a)h(v)-5 b(alid)31
b(in)m(teger,)h(\014le)e(descriptor)h Fr(fd)i Fu(is)d(duplicated.)p
eop end
-%%Page: 36 42
-TeXDict begin 36 41 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(36)150 299
+%%Page: 39 45
+TeXDict begin 39 44 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(39)150 299
y Ft(/dev/stdin)630 408 y Fu(File)32 b(descriptor)e(0)h(is)f
(duplicated.)150 577 y Ft(/dev/stdout)630 687 y Fu(File)i(descriptor)e
(1)h(is)f(duplicated.)150 856 y Ft(/dev/stderr)630 965
@@ -10782,9 +11036,9 @@ b Fu(to)e(b)s(e)e(op)s(ened)g(for)h(app)s(ending)e(on)i(\014le)g
(is)f(created.)275 5196 y(The)f(general)j(format)e(for)h(app)s(ending)e
(output)h(is:)390 5340 y Ft([)p Fj(n)p Ft(]>>)p Fj(word)p
eop end
-%%Page: 37 43
-TeXDict begin 37 42 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(37)150 299
+%%Page: 40 46
+TeXDict begin 40 45 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(40)150 299
y Fk(3.6.4)63 b(Redirecting)40 b(Standard)h(Output)g(and)g(Standard)g
(Error)150 446 y Fu(This)33 b(construct)i(allo)m(ws)g(b)s(oth)f(the)g
(standard)g(output)f(\(\014le)i(descriptor)f(1\))h(and)f(the)g
@@ -10844,9 +11098,9 @@ Fu(',)g(and)f(`)p Ft(`)p Fu('.)275 5121 y(If)21 b(the)i(redirection)g
Fr(delimiter)p Fu(.)49 b(This)32 b(allo)m(ws)i(here-do)s(cumen)m(ts)f
(within)f(shell)i(scripts)e(to)150 5340 y(b)s(e)e(inden)m(ted)g(in)g(a)
h(natural)f(fashion.)p eop end
-%%Page: 38 44
-TeXDict begin 38 43 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(38)150 299
+%%Page: 41 47
+TeXDict begin 41 46 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(41)150 299
y Fk(3.6.7)63 b(Here)41 b(Strings)150 446 y Fu(A)30 b(v)-5
b(arian)m(t)32 b(of)e(here)h(do)s(cumen)m(ts,)f(the)g(format)h(is:)390
600 y Ft([)p Fj(n)p Ft(]<<<)46 b Fj(word)275 753 y Fu(The)29
@@ -10909,9 +11163,9 @@ b(on)f(\014le)h(descriptor)f Fr(n)p Fu(,)h(or)g(on)f(\014le)h
(descriptor)g(0)g(if)f Fr(n)g Fu(is)h(not)g(sp)s(eci\014ed.)47
b(If)32 b(the)h(\014le)f(do)s(es)h(not)150 5340 y(exist,)e(it)g(is)g
(created.)p eop end
-%%Page: 39 45
-TeXDict begin 39 44 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(39)150 299
+%%Page: 42 48
+TeXDict begin 42 47 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(42)150 299
y Fs(3.7)68 b(Executing)46 b(Commands)150 523 y Fk(3.7.1)63
b(Simple)41 b(Command)h(Expansion)150 670 y Fu(When)33
b(a)g(simple)g(command)g(is)g(executed,)h(the)g(shell)f(p)s(erforms)e
@@ -10924,12 +11178,12 @@ b(a)g(simple)g(command)g(is)g(executed,)h(the)g(shell)f(p)s(erforms)e
1157 y(2.)61 b(The)39 b(w)m(ords)g(that)i(are)f(not)g(v)-5
b(ariable)40 b(assignmen)m(ts)h(or)e(redirections)i(are)f(expanded)f
(\(see)h(Sec-)330 1267 y(tion)d(3.5)i([Shell)e(Expansions],)h(page)g
-(22\).)61 b(If)37 b(an)m(y)g(w)m(ords)f(remain)h(after)h(expansion,)h
+(24\).)61 b(If)37 b(an)m(y)g(w)m(ords)f(remain)h(after)h(expansion,)h
(the)e(\014rst)330 1376 y(w)m(ord)31 b(is)g(tak)m(en)h(to)g(b)s(e)f
(the)g(name)h(of)f(the)h(command)f(and)f(the)i(remaining)f(w)m(ords)g
(are)g(the)h(argu-)330 1486 y(men)m(ts.)199 1620 y(3.)61
b(Redirections)25 b(are)f(p)s(erformed)f(as)h(describ)s(ed)f(ab)s(o)m
-(v)m(e)i(\(see)g(Section)g(3.6)g([Redirections],)i(page)d(35\).)199
+(v)m(e)i(\(see)g(Section)g(3.6)g([Redirections],)i(page)d(38\).)199
1754 y(4.)61 b(The)25 b(text)h(after)f(the)g(`)p Ft(=)p
Fu(')h(in)e(eac)m(h)j(v)-5 b(ariable)25 b(assignmen)m(t)h(undergo)s(es)
e(tilde)i(expansion,)g(parameter)330 1864 y(expansion,)49
@@ -10938,383 +11192,433 @@ b(quote)h(remo)m(v)-5 b(al)46 b(b)s(efore)330 1973 y(b)s(eing)30
b(assigned)h(to)g(the)f(v)-5 b(ariable.)275 2132 y(If)32
b(no)i(command)f(name)g(results,)h(the)g(v)-5 b(ariable)34
b(assignmen)m(ts)g(a\013ect)h(the)f(curren)m(t)f(shell)h(en)m(viron-)
-150 2242 y(men)m(t.)39 b(Otherwise,)27 b(the)e(v)-5 b(ariables)26
-b(are)g(added)f(to)h(the)f(en)m(vironmen)m(t)h(of)g(the)f(executed)h
-(command)g(and)150 2351 y(do)35 b(not)f(a\013ect)j(the)d(curren)m(t)h
-(shell)g(en)m(vironmen)m(t.)54 b(If)34 b(an)m(y)h(of)g(the)f(assignmen)
-m(ts)i(attempts)f(to)h(assign)150 2461 y(a)j(v)-5 b(alue)39
-b(to)g(a)g(readonly)f(v)-5 b(ariable,)42 b(an)c(error)g(o)s(ccurs,)j
-(and)c(the)i(command)f(exits)h(with)g(a)f(non-zero)150
-2570 y(status.)275 2705 y(If)33 b(no)g(command)g(name)h(results,)g
-(redirections)g(are)g(p)s(erformed,)f(but)g(do)h(not)f(a\013ect)i(the)f
-(curren)m(t)150 2814 y(shell)d(en)m(vironmen)m(t.)41
-b(A)30 b(redirection)h(error)f(causes)h(the)g(command)f(to)h(exit)g
-(with)f(a)h(non-zero)g(status.)275 2948 y(If)26 b(there)i(is)f(a)h
-(command)f(name)h(left)g(after)g(expansion,)g(execution)h(pro)s(ceeds)e
-(as)g(describ)s(ed)f(b)s(elo)m(w.)150 3058 y(Otherwise,)39
-b(the)e(command)g(exits.)62 b(If)37 b(one)g(of)g(the)h(expansions)f
-(con)m(tained)h(a)g(command)f(substitu-)150 3167 y(tion,)i(the)d(exit)h
-(status)g(of)f(the)h(command)f(is)h(the)f(exit)h(status)g(of)f(the)h
-(last)g(command)f(substitution)150 3277 y(p)s(erformed.)55
-b(If)35 b(there)g(w)m(ere)h(no)g(command)f(substitutions,)i(the)e
-(command)h(exits)g(with)f(a)h(status)g(of)150 3387 y(zero.)150
-3585 y Fk(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h(Execution)150
-3732 y Fu(After)i(a)h(command)f(has)g(b)s(een)f(split)h(in)m(to)h(w)m
-(ords,)j(if)c(it)g(results)g(in)g(a)h(simple)f(command)g(and)f(an)150
-3842 y(optional)32 b(list)f(of)f(argumen)m(ts,)h(the)g(follo)m(wing)g
-(actions)h(are)f(tak)m(en.)199 3976 y(1.)61 b(If)24 b(the)g(command)g
-(name)g(con)m(tains)i(no)e(slashes,)i(the)e(shell)h(attempts)g(to)g(lo)
-s(cate)h(it.)39 b(If)24 b(there)g(exists)330 4085 y(a)h(shell)g
-(function)f(b)m(y)g(that)h(name,)h(that)f(function)f(is)h(in)m(v)m(ok)m
-(ed)h(as)e(describ)s(ed)g(in)g(Section)h(3.3)h([Shell)330
-4195 y(F)-8 b(unctions],)31 b(page)h(18.)199 4329 y(2.)61
-b(If)41 b(the)g(name)h(do)s(es)f(not)g(matc)m(h)i(a)e(function,)j(the)e
-(shell)f(searc)m(hes)i(for)e(it)h(in)f(the)g(list)h(of)g(shell)330
-4439 y(builtins.)e(If)30 b(a)h(matc)m(h)g(is)f(found,)g(that)h(builtin)
-f(is)g(in)m(v)m(ok)m(ed.)199 4573 y(3.)61 b(If)40 b(the)g(name)h(is)f
-(neither)h(a)f(shell)h(function)f(nor)g(a)g(builtin,)j(and)d(con)m
-(tains)h(no)g(slashes,)i(Bash)330 4682 y(searc)m(hes)c(eac)m(h)g
-(elemen)m(t)g(of)g Ft($PATH)d Fu(for)i(a)g(directory)h(con)m(taining)g
-(an)f(executable)h(\014le)f(b)m(y)g(that)330 4792 y(name.)56
-b(Bash)36 b(uses)f(a)h(hash)e(table)j(to)f(remem)m(b)s(er)f(the)h(full)
-f(pathnames)g(of)h(executable)h(\014les)e(to)330 4902
-y(a)m(v)m(oid)e(m)m(ultiple)f Ft(PATH)f Fu(searc)m(hes)i(\(see)f(the)g
-(description)g(of)f Ft(hash)g Fu(in)g(Section)i(4.1)f([Bourne)g(Shell)
-330 5011 y(Builtins],)37 b(page)f(44\).)55 b(A)35 b(full)g(searc)m(h)g
-(of)g(the)g(directories)h(in)f Ft($PATH)e Fu(is)i(p)s(erformed)f(only)h
-(if)g(the)330 5121 y(command)24 b(is)h(not)g(found)e(in)i(the)g(hash)f
-(table.)39 b(If)25 b(the)f(searc)m(h)i(is)e(unsuccessful,)h(the)g
-(shell)g(searc)m(hes)330 5230 y(for)e(a)h(de\014ned)e(shell)h(function)
-h(named)e Ft(command_not_found_handle)p Fu(.)32 b(If)23
-b(that)h(function)f(exists,)330 5340 y(it)33 b(is)f(in)m(v)m(ok)m(ed)i
-(in)e(a)h(separate)h(execution)f(en)m(vironmen)m(t)g(with)f(the)h
-(original)h(command)e(and)g(the)p eop end
-%%Page: 40 46
-TeXDict begin 40 45 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(40)330 299
-y(original)26 b(command's)e(argumen)m(ts)h(as)g(its)g(argumen)m(ts,)h
-(and)e(the)h(function's)f(exit)i(status)f(b)s(ecomes)330
-408 y(the)j(exit)g(status)g(of)f(that)h(subshell.)39
+150 2242 y(men)m(t.)68 b(In)38 b(the)h(case)i(of)e(suc)m(h)g(a)g
+(command)g(\(one)h(that)g(consists)g(only)f(of)g(assignmen)m(t)h
+(statemen)m(ts)150 2351 y(and)27 b(redirections\),)i(assignmen)m(t)g
+(statemen)m(ts)g(are)f(p)s(erformed)e(b)s(efore)h(redirections.)41
+b(Otherwise,)28 b(the)150 2461 y(v)-5 b(ariables)27 b(are)g(added)e(to)
+i(the)g(en)m(vironmen)m(t)g(of)f(the)h(executed)g(command)f(and)g(do)g
+(not)h(a\013ect)h(the)e(cur-)150 2570 y(ren)m(t)32 b(shell)f(en)m
+(vironmen)m(t.)44 b(If)31 b(an)m(y)g(of)h(the)f(assignmen)m(ts)h
+(attempts)g(to)g(assign)g(a)f(v)-5 b(alue)32 b(to)g(a)g(readonly)150
+2680 y(v)-5 b(ariable,)31 b(an)g(error)f(o)s(ccurs,)g(and)g(the)g
+(command)g(exits)i(with)e(a)g(non-zero)h(status.)275
+2814 y(If)i(no)g(command)g(name)h(results,)g(redirections)g(are)g(p)s
+(erformed,)f(but)g(do)h(not)f(a\013ect)i(the)f(curren)m(t)150
+2924 y(shell)d(en)m(vironmen)m(t.)41 b(A)30 b(redirection)h(error)f
+(causes)h(the)g(command)f(to)h(exit)g(with)f(a)h(non-zero)g(status.)275
+3058 y(If)26 b(there)i(is)f(a)h(command)f(name)h(left)g(after)g
+(expansion,)g(execution)h(pro)s(ceeds)e(as)g(describ)s(ed)f(b)s(elo)m
+(w.)150 3167 y(Otherwise,)39 b(the)e(command)g(exits.)62
+b(If)37 b(one)g(of)g(the)h(expansions)f(con)m(tained)h(a)g(command)f
+(substitu-)150 3277 y(tion,)i(the)d(exit)h(status)g(of)f(the)h(command)
+f(is)h(the)f(exit)h(status)g(of)f(the)h(last)g(command)f(substitution)
+150 3387 y(p)s(erformed.)55 b(If)35 b(there)g(w)m(ere)h(no)g(command)f
+(substitutions,)i(the)e(command)h(exits)g(with)f(a)h(status)g(of)150
+3496 y(zero.)150 3695 y Fk(3.7.2)63 b(Command)41 b(Searc)m(h)f(and)h
+(Execution)150 3842 y Fu(After)i(a)h(command)f(has)g(b)s(een)f(split)h
+(in)m(to)h(w)m(ords,)j(if)c(it)g(results)g(in)g(a)h(simple)f(command)g
+(and)f(an)150 3951 y(optional)32 b(list)f(of)f(argumen)m(ts,)h(the)g
+(follo)m(wing)g(actions)h(are)f(tak)m(en.)199 4085 y(1.)61
+b(If)24 b(the)g(command)g(name)g(con)m(tains)i(no)e(slashes,)i(the)e
+(shell)h(attempts)g(to)g(lo)s(cate)h(it.)39 b(If)24 b(there)g(exists)
+330 4195 y(a)h(shell)g(function)f(b)m(y)g(that)h(name,)h(that)f
+(function)f(is)h(in)m(v)m(ok)m(ed)h(as)e(describ)s(ed)g(in)g(Section)h
+(3.3)h([Shell)330 4305 y(F)-8 b(unctions],)31 b(page)h(19.)199
+4439 y(2.)61 b(If)41 b(the)g(name)h(do)s(es)f(not)g(matc)m(h)i(a)e
+(function,)j(the)e(shell)f(searc)m(hes)i(for)e(it)h(in)f(the)g(list)h
+(of)g(shell)330 4548 y(builtins.)e(If)30 b(a)h(matc)m(h)g(is)f(found,)g
+(that)h(builtin)f(is)g(in)m(v)m(ok)m(ed.)199 4682 y(3.)61
+b(If)40 b(the)g(name)h(is)f(neither)h(a)f(shell)h(function)f(nor)g(a)g
+(builtin,)j(and)d(con)m(tains)h(no)g(slashes,)i(Bash)330
+4792 y(searc)m(hes)c(eac)m(h)g(elemen)m(t)g(of)g Ft($PATH)d
+Fu(for)i(a)g(directory)h(con)m(taining)g(an)f(executable)h(\014le)f(b)m
+(y)g(that)330 4902 y(name.)56 b(Bash)36 b(uses)f(a)h(hash)e(table)j(to)
+f(remem)m(b)s(er)f(the)h(full)f(pathnames)g(of)h(executable)h(\014les)e
+(to)330 5011 y(a)m(v)m(oid)e(m)m(ultiple)f Ft(PATH)f
+Fu(searc)m(hes)i(\(see)f(the)g(description)g(of)f Ft(hash)g
+Fu(in)g(Section)i(4.1)f([Bourne)g(Shell)330 5121 y(Builtins],)37
+b(page)f(48\).)55 b(A)35 b(full)g(searc)m(h)g(of)g(the)g(directories)h
+(in)f Ft($PATH)e Fu(is)i(p)s(erformed)f(only)h(if)g(the)330
+5230 y(command)24 b(is)h(not)g(found)e(in)i(the)g(hash)f(table.)39
+b(If)25 b(the)f(searc)m(h)i(is)e(unsuccessful,)h(the)g(shell)g(searc)m
+(hes)330 5340 y(for)e(a)h(de\014ned)e(shell)h(function)h(named)e
+Ft(command_not_found_handle)p Fu(.)32 b(If)23 b(that)h(function)f
+(exists,)p eop end
+%%Page: 43 49
+TeXDict begin 43 48 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(43)330 299
+y(it)33 b(is)f(in)m(v)m(ok)m(ed)i(in)e(a)h(separate)h(execution)f(en)m
+(vironmen)m(t)g(with)f(the)h(original)h(command)e(and)g(the)330
+408 y(original)26 b(command's)e(argumen)m(ts)h(as)g(its)g(argumen)m
+(ts,)h(and)e(the)h(function's)f(exit)i(status)f(b)s(ecomes)330
+518 y(the)j(exit)g(status)g(of)f(that)h(subshell.)39
b(If)27 b(that)h(function)f(is)h(not)g(de\014ned,)f(the)g(shell)h(prin)
-m(ts)f(an)g(error)330 518 y(message)k(and)f(returns)f(an)i(exit)g
-(status)g(of)f(127.)199 654 y(4.)61 b(If)33 b(the)g(searc)m(h)h(is)g
+m(ts)f(an)g(error)330 628 y(message)k(and)f(returns)f(an)i(exit)g
+(status)g(of)f(127.)199 759 y(4.)61 b(If)33 b(the)g(searc)m(h)h(is)g
(successful,)g(or)f(if)g(the)h(command)f(name)g(con)m(tains)i(one)f(or)
-f(more)g(slashes,)i(the)330 763 y(shell)g(executes)h(the)f(named)f
+f(more)g(slashes,)i(the)330 868 y(shell)g(executes)h(the)f(named)f
(program)g(in)h(a)g(separate)h(execution)f(en)m(vironmen)m(t.)55
-b(Argumen)m(t)35 b(0)330 873 y(is)30 b(set)h(to)h(the)e(name)h(giv)m
+b(Argumen)m(t)35 b(0)330 978 y(is)30 b(set)h(to)h(the)e(name)h(giv)m
(en,)g(and)f(the)h(remaining)f(argumen)m(ts)h(to)g(the)g(command)f(are)
-h(set)g(to)g(the)330 983 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8
-b(.)199 1118 y(5.)61 b(If)35 b(this)h(execution)h(fails)f(b)s(ecause)g
+h(set)g(to)g(the)330 1087 y(argumen)m(ts)g(supplied,)e(if)h(an)m(y)-8
+b(.)199 1218 y(5.)61 b(If)35 b(this)h(execution)h(fails)f(b)s(ecause)g
(the)f(\014le)h(is)g(not)g(in)f(executable)j(format,)f(and)e(the)h
-(\014le)g(is)g(not)330 1228 y(a)d(directory)-8 b(,)34
+(\014le)g(is)g(not)330 1328 y(a)d(directory)-8 b(,)34
b(it)f(is)g(assumed)e(to)j(b)s(e)d(a)i Fr(shell)g(script)h
Fu(and)e(the)h(shell)f(executes)i(it)f(as)g(describ)s(ed)e(in)330
-1338 y(Section)g(3.8)h([Shell)e(Scripts],)g(page)i(42.)199
-1473 y(6.)61 b(If)38 b(the)h(command)f(w)m(as)h(not)g(b)s(egun)e(async)
+1438 y(Section)g(3.8)h([Shell)e(Scripts],)g(page)i(46.)199
+1569 y(6.)61 b(If)38 b(the)h(command)f(w)m(as)h(not)g(b)s(egun)e(async)
m(hronously)-8 b(,)42 b(the)c(shell)h(w)m(aits)h(for)e(the)h(command)f
-(to)330 1583 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)150
-1785 y Fk(3.7.3)63 b(Command)41 b(Execution)f(En)m(vironmen)m(t)150
-1932 y Fu(The)30 b(shell)g(has)h(an)f Fr(execution)h(en)m(vironmen)m(t)
+(to)330 1678 y(complete)32 b(and)e(collects)i(its)f(exit)g(status.)150
+1870 y Fk(3.7.3)63 b(Command)41 b(Execution)f(En)m(vironmen)m(t)150
+2017 y Fu(The)30 b(shell)g(has)h(an)f Fr(execution)h(en)m(vironmen)m(t)
p Fu(,)h(whic)m(h)e(consists)h(of)f(the)h(follo)m(wing:)225
-2069 y Fq(\017)60 b Fu(op)s(en)32 b(\014les)g(inherited)g(b)m(y)h(the)f
+2148 y Fq(\017)60 b Fu(op)s(en)32 b(\014les)g(inherited)g(b)m(y)h(the)f
(shell)h(at)g(in)m(v)m(o)s(cation,)j(as)c(mo)s(di\014ed)g(b)m(y)g
-(redirections)h(supplied)e(to)330 2178 y(the)g Ft(exec)e
-Fu(builtin)225 2314 y Fq(\017)60 b Fu(the)28 b(curren)m(t)g(w)m(orking)
+(redirections)h(supplied)e(to)330 2258 y(the)g Ft(exec)e
+Fu(builtin)225 2389 y Fq(\017)60 b Fu(the)28 b(curren)m(t)g(w)m(orking)
h(directory)g(as)f(set)h(b)m(y)f Ft(cd)p Fu(,)g Ft(pushd)p
Fu(,)g(or)g Ft(popd)p Fu(,)g(or)g(inherited)g(b)m(y)g(the)h(shell)f(at)
-330 2424 y(in)m(v)m(o)s(cation)225 2560 y Fq(\017)60
+330 2498 y(in)m(v)m(o)s(cation)225 2629 y Fq(\017)60
b Fu(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)g(as)h(set)g(b)m(y)f
Ft(umask)f Fu(or)h(inherited)g(from)g(the)h(shell's)f(paren)m(t)225
-2695 y Fq(\017)60 b Fu(curren)m(t)30 b(traps)g(set)h(b)m(y)f
-Ft(trap)225 2831 y Fq(\017)60 b Fu(shell)30 b(parameters)f(that)h(are)g
+2760 y Fq(\017)60 b Fu(curren)m(t)30 b(traps)g(set)h(b)m(y)f
+Ft(trap)225 2891 y Fq(\017)60 b Fu(shell)30 b(parameters)f(that)h(are)g
(set)g(b)m(y)g(v)-5 b(ariable)30 b(assignmen)m(t)g(or)g(with)f
-Ft(set)f Fu(or)i(inherited)f(from)g(the)330 2941 y(shell's)i(paren)m(t)
-f(in)g(the)h(en)m(vironmen)m(t)225 3077 y Fq(\017)60
+Ft(set)f Fu(or)i(inherited)f(from)g(the)330 3001 y(shell's)i(paren)m(t)
+f(in)g(the)h(en)m(vironmen)m(t)225 3132 y Fq(\017)60
b Fu(shell)44 b(functions)f(de\014ned)f(during)h(execution)i(or)e
(inherited)h(from)f(the)h(shell's)g(paren)m(t)f(in)h(the)330
-3186 y(en)m(vironmen)m(t)225 3322 y Fq(\017)60 b Fu(options)33
+3242 y(en)m(vironmen)m(t)225 3373 y Fq(\017)60 b Fu(options)33
b(enabled)g(at)h(in)m(v)m(o)s(cation)h(\(either)f(b)m(y)f(default)g(or)
-g(with)g(command-line)g(argumen)m(ts\))h(or)330 3432
-y(b)m(y)c Ft(set)225 3567 y Fq(\017)60 b Fu(options)31
+g(with)g(command-line)g(argumen)m(ts\))h(or)330 3482
+y(b)m(y)c Ft(set)225 3613 y Fq(\017)60 b Fu(options)31
b(enabled)f(b)m(y)g Ft(shopt)f Fu(\(see)j(Section)f(4.3.2)h([The)e
-(Shopt)g(Builtin],)h(page)g(66\))225 3703 y Fq(\017)60
+(Shopt)g(Builtin],)h(page)g(71\))225 3744 y Fq(\017)60
b Fu(shell)31 b(aliases)g(de\014ned)f(with)g Ft(alias)f
-Fu(\(see)i(Section)g(6.6)h([Aliases],)g(page)f(94\))225
-3839 y Fq(\017)60 b Fu(v)-5 b(arious)50 b(pro)s(cess)f
+Fu(\(see)i(Section)g(6.6)h([Aliases],)g(page)f(100\))225
+3875 y Fq(\017)60 b Fu(v)-5 b(arious)50 b(pro)s(cess)f
Fm(id)p Fu(s,)55 b(including)49 b(those)i(of)e(bac)m(kground)h(jobs)f
-(\(see)i(Section)g(3.2.4)g([Lists],)330 3948 y(page)31
-b(9\),)g(the)g(v)-5 b(alue)31 b(of)f Ft($$)p Fu(,)g(and)g(the)h(v)-5
-b(alue)31 b(of)f Ft($PPID)275 4112 y Fu(When)k(a)g(simple)h(command)f
+(\(see)i(Section)g(3.2.4)g([Lists],)330 3985 y(page)31
+b(10\),)h(the)f(v)-5 b(alue)30 b(of)h Ft($$)p Fu(,)f(and)g(the)g(v)-5
+b(alue)31 b(of)g Ft($PPID)275 4137 y Fu(When)j(a)g(simple)h(command)f
(other)g(than)g(a)h(builtin)f(or)g(shell)h(function)f(is)g(to)h(b)s(e)f
-(executed,)i(it)f(is)150 4221 y(in)m(v)m(ok)m(ed)25 b(in)f(a)g
+(executed,)i(it)f(is)150 4247 y(in)m(v)m(ok)m(ed)25 b(in)f(a)g
(separate)h(execution)g(en)m(vironmen)m(t)g(that)f(consists)g(of)h(the)
-f(follo)m(wing.)40 b(Unless)24 b(otherwise)150 4331 y(noted,)31
+f(follo)m(wing.)40 b(Unless)24 b(otherwise)150 4356 y(noted,)31
b(the)f(v)-5 b(alues)31 b(are)g(inherited)f(from)g(the)g(shell.)225
-4468 y Fq(\017)60 b Fu(the)31 b(shell's)h(op)s(en)e(\014les,)i(plus)e
+4487 y Fq(\017)60 b Fu(the)31 b(shell's)h(op)s(en)e(\014les,)i(plus)e
(an)m(y)h(mo)s(di\014cations)h(and)e(additions)h(sp)s(eci\014ed)g(b)m
-(y)g(redirections)g(to)330 4578 y(the)g(command)225 4713
+(y)g(redirections)g(to)330 4597 y(the)g(command)225 4728
y Fq(\017)60 b Fu(the)31 b(curren)m(t)f(w)m(orking)g(directory)225
-4849 y Fq(\017)60 b Fu(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)225
-4985 y Fq(\017)60 b Fu(shell)32 b(v)-5 b(ariables)33
+4859 y Fq(\017)60 b Fu(the)31 b(\014le)f(creation)i(mo)s(de)e(mask)225
+4990 y Fq(\017)60 b Fu(shell)32 b(v)-5 b(ariables)33
b(and)e(functions)h(mark)m(ed)g(for)g(exp)s(ort,)g(along)h(with)f(v)-5
-b(ariables)32 b(exp)s(orted)g(for)g(the)330 5095 y(command,)e(passed)g
+b(ariables)32 b(exp)s(orted)g(for)g(the)330 5099 y(command,)e(passed)g
(in)g(the)h(en)m(vironmen)m(t)g(\(see)g(Section)g(3.7.4)i([En)m
-(vironmen)m(t],)e(page)g(41\))225 5230 y Fq(\017)60 b
+(vironmen)m(t],)e(page)g(44\))225 5230 y Fq(\017)60 b
Fu(traps)31 b(caugh)m(t)h(b)m(y)f(the)g(shell)h(are)f(reset)h(to)g(the)
f(v)-5 b(alues)32 b(inherited)e(from)h(the)g(shell's)h(paren)m(t,)g
(and)330 5340 y(traps)e(ignored)h(b)m(y)f(the)g(shell)h(are)g(ignored)p
eop end
-%%Page: 41 47
-TeXDict begin 41 46 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(41)275 299
+%%Page: 44 50
+TeXDict begin 44 49 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(44)275 299
y(A)41 b(command)g(in)m(v)m(ok)m(ed)i(in)e(this)h(separate)g(en)m
(vironmen)m(t)g(cannot)g(a\013ect)h(the)f(shell's)g(execution)150
-408 y(en)m(vironmen)m(t.)275 552 y(Command)35 b(substitution,)j
-(commands)e(group)s(ed)f(with)i(paren)m(theses,)h(and)e(async)m
-(hronous)g(com-)150 662 y(mands)c(are)h(in)m(v)m(ok)m(ed)i(in)d(a)i
-(subshell)e(en)m(vironmen)m(t)h(that)h(is)f(a)g(duplicate)h(of)f(the)g
-(shell)g(en)m(vironmen)m(t,)150 772 y(except)i(that)g(traps)f(caugh)m
-(t)h(b)m(y)f(the)h(shell)f(are)g(reset)h(to)g(the)f(v)-5
-b(alues)35 b(that)g(the)f(shell)h(inherited)e(from)150
-881 y(its)g(paren)m(t)f(at)h(in)m(v)m(o)s(cation.)49
+408 y(en)m(vironmen)m(t.)275 540 y(A)30 b Fr(subshell)j
+Fu(is)d(a)h(cop)m(y)g(of)g(the)f(shell)h(pro)s(cess.)275
+671 y(Command)k(substitution,)j(commands)e(group)s(ed)f(with)i(paren)m
+(theses,)h(and)e(async)m(hronous)g(com-)150 781 y(mands)c(are)h(in)m(v)
+m(ok)m(ed)i(in)d(a)i(subshell)e(en)m(vironmen)m(t)h(that)h(is)f(a)g
+(duplicate)h(of)f(the)g(shell)g(en)m(vironmen)m(t,)150
+891 y(except)i(that)g(traps)f(caugh)m(t)h(b)m(y)f(the)h(shell)f(are)g
+(reset)h(to)g(the)f(v)-5 b(alues)35 b(that)g(the)f(shell)h(inherited)e
+(from)150 1000 y(its)g(paren)m(t)f(at)h(in)m(v)m(o)s(cation.)49
b(Builtin)32 b(commands)g(that)h(are)g(in)m(v)m(ok)m(ed)h(as)e(part)g
-(of)h(a)f(pip)s(eline)g(are)h(also)150 991 y(executed)41
+(of)h(a)f(pip)s(eline)g(are)h(also)150 1110 y(executed)41
b(in)f(a)h(subshell)e(en)m(vironmen)m(t.)72 b(Changes)40
b(made)g(to)h(the)g(subshell)e(en)m(vironmen)m(t)i(cannot)150
-1100 y(a\013ect)32 b(the)f(shell's)f(execution)i(en)m(vironmen)m(t.)275
-1244 y(Subshells)c(spa)m(wned)i(to)h(execute)g(command)f(substitutions)
+1219 y(a\013ect)32 b(the)f(shell's)f(execution)i(en)m(vironmen)m(t.)275
+1351 y(Subshells)c(spa)m(wned)i(to)h(execute)g(command)f(substitutions)
g(inherit)g(the)g(v)-5 b(alue)31 b(of)f(the)h Ft(-e)e
-Fu(option)150 1354 y(from)23 b(the)i(paren)m(t)f(shell.)38
+Fu(option)150 1460 y(from)23 b(the)i(paren)m(t)f(shell.)38
b(When)24 b(not)g(in)g Fm(posix)f Fu(mo)s(de,)i(Bash)f(clears)h(the)f
-Ft(-e)f Fu(option)i(in)e(suc)m(h)h(subshells.)275 1498
+Ft(-e)f Fu(option)i(in)e(suc)m(h)h(subshells.)275 1592
y(If)f(a)h(command)g(is)g(follo)m(w)m(ed)h(b)m(y)f(a)g(`)p
Ft(&)p Fu(')g(and)f(job)h(con)m(trol)h(is)f(not)g(activ)m(e,)k(the)c
-(default)g(standard)f(input)150 1607 y(for)35 b(the)g(command)g(is)g
+(default)g(standard)f(input)150 1701 y(for)35 b(the)g(command)g(is)g
(the)g(empt)m(y)h(\014le)f Ft(/dev/null)p Fu(.)52 b(Otherwise,)37
-b(the)e(in)m(v)m(ok)m(ed)h(command)f(inherits)150 1717
+b(the)e(in)m(v)m(ok)m(ed)h(command)f(inherits)150 1811
y(the)c(\014le)f(descriptors)g(of)h(the)f(calling)i(shell)f(as)f(mo)s
-(di\014ed)g(b)m(y)g(redirections.)150 1926 y Fk(3.7.4)63
-b(En)m(vironmen)m(t)150 2073 y Fu(When)29 b(a)g(program)f(is)h(in)m(v)m
+(di\014ed)g(b)m(y)g(redirections.)150 2004 y Fk(3.7.4)63
+b(En)m(vironmen)m(t)150 2151 y Fu(When)29 b(a)g(program)f(is)h(in)m(v)m
(ok)m(ed)h(it)g(is)f(giv)m(en)g(an)g(arra)m(y)g(of)g(strings)g(called)h
(the)f Fr(en)m(vironmen)m(t)p Fu(.)41 b(This)28 b(is)h(a)150
-2182 y(list)i(of)g(name-v)-5 b(alue)31 b(pairs,)f(of)h(the)f(form)g
-Ft(name=value)p Fu(.)275 2326 y(Bash)39 b(pro)m(vides)g(sev)m(eral)i(w)
+2261 y(list)i(of)g(name-v)-5 b(alue)31 b(pairs,)f(of)h(the)f(form)g
+Ft(name=value)p Fu(.)275 2392 y(Bash)39 b(pro)m(vides)g(sev)m(eral)i(w)
m(a)m(ys)g(to)f(manipulate)f(the)h(en)m(vironmen)m(t.)69
-b(On)38 b(in)m(v)m(o)s(cation,)44 b(the)c(shell)150 2436
+b(On)38 b(in)m(v)m(o)s(cation,)44 b(the)c(shell)150 2502
y(scans)g(its)h(o)m(wn)f(en)m(vironmen)m(t)h(and)f(creates)i(a)f
(parameter)f(for)g(eac)m(h)i(name)e(found,)i(automatically)150
-2545 y(marking)26 b(it)g(for)g Fr(exp)s(ort)h Fu(to)g(c)m(hild)f(pro)s
-(cesses.)39 b(Executed)26 b(commands)g(inherit)g(the)g(en)m(vironmen)m
-(t.)39 b(The)150 2655 y Ft(export)c Fu(and)i(`)p Ft(declare)29
+2611 y(marking)23 b(it)h(for)f Ft(export)f Fu(to)i(c)m(hild)g(pro)s
+(cesses.)38 b(Executed)24 b(commands)f(inherit)g(the)g(en)m(vironmen)m
+(t.)39 b(The)150 2721 y Ft(export)c Fu(and)i(`)p Ft(declare)29
b(-x)p Fu(')36 b(commands)h(allo)m(w)i(parameters)e(and)g(functions)g
-(to)h(b)s(e)e(added)h(to)h(and)150 2765 y(deleted)21
+(to)h(b)s(e)e(added)h(to)h(and)150 2830 y(deleted)21
b(from)f(the)h(en)m(vironmen)m(t.)38 b(If)20 b(the)h(v)-5
b(alue)21 b(of)g(a)g(parameter)g(in)f(the)g(en)m(vironmen)m(t)i(is)e
-(mo)s(di\014ed,)i(the)150 2874 y(new)31 b(v)-5 b(alue)32
+(mo)s(di\014ed,)i(the)150 2940 y(new)31 b(v)-5 b(alue)32
b(b)s(ecomes)f(part)h(of)f(the)h(en)m(vironmen)m(t,)g(replacing)h(the)e
(old.)44 b(The)31 b(en)m(vironmen)m(t)h(inherited)150
-2984 y(b)m(y)f(an)m(y)g(executed)h(command)f(consists)g(of)g(the)g
+3050 y(b)m(y)f(an)m(y)g(executed)h(command)f(consists)g(of)g(the)g
(shell's)h(initial)g(en)m(vironmen)m(t,)g(whose)f(v)-5
-b(alues)31 b(ma)m(y)h(b)s(e)150 3093 y(mo)s(di\014ed)26
+b(alues)31 b(ma)m(y)h(b)s(e)150 3159 y(mo)s(di\014ed)26
b(in)g(the)h(shell,)h(less)f(an)m(y)g(pairs)f(remo)m(v)m(ed)i(b)m(y)f
(the)g Ft(unset)e Fu(and)h(`)p Ft(export)j(-n)p Fu(')e(commands,)g
-(plus)150 3203 y(an)m(y)k(additions)f(via)h(the)g Ft(export)d
-Fu(and)i(`)p Ft(declare)f(-x)p Fu(')h(commands.)275 3347
+(plus)150 3269 y(an)m(y)k(additions)f(via)h(the)g Ft(export)d
+Fu(and)i(`)p Ft(declare)f(-x)p Fu(')h(commands.)275 3400
y(The)j(en)m(vironmen)m(t)i(for)f(an)m(y)g(simple)h(command)f(or)g
(function)g(ma)m(y)g(b)s(e)g(augmen)m(ted)h(temp)s(orarily)150
-3457 y(b)m(y)c(pre\014xing)e(it)i(with)g(parameter)g(assignmen)m(ts,)h
+3510 y(b)m(y)c(pre\014xing)e(it)i(with)g(parameter)g(assignmen)m(ts,)h
(as)e(describ)s(ed)g(in)g(Section)i(3.4)g([Shell)e(P)m(arameters],)150
-3566 y(page)g(20.)41 b(These)29 b(assignmen)m(t)i(statemen)m(ts)g
+3619 y(page)g(21.)41 b(These)29 b(assignmen)m(t)i(statemen)m(ts)g
(a\013ect)f(only)g(the)f(en)m(vironmen)m(t)h(seen)g(b)m(y)f(that)h
-(command.)275 3710 y(If)g(the)h Ft(-k)g Fu(option)g(is)g(set)h(\(see)g
-(Section)g(4.3.1)g([The)f(Set)g(Builtin],)h(page)g(62\),)h(then)e(all)g
-(parameter)150 3820 y(assignmen)m(ts)f(are)g(placed)h(in)e(the)h(en)m
+(command.)275 3751 y(If)g(the)h Ft(-k)g Fu(option)g(is)g(set)h(\(see)g
+(Section)g(4.3.1)g([The)f(Set)g(Builtin],)h(page)g(67\),)h(then)e(all)g
+(parameter)150 3860 y(assignmen)m(ts)f(are)g(placed)h(in)e(the)h(en)m
(vironmen)m(t)g(for)g(a)g(command,)f(not)h(just)f(those)i(that)f
-(precede)g(the)150 3929 y(command)g(name.)275 4073 y(When)h(Bash)h(in)m
+(precede)g(the)150 3970 y(command)g(name.)275 4101 y(When)h(Bash)h(in)m
(v)m(ok)m(es)i(an)e(external)h(command,)f(the)g(v)-5
b(ariable)33 b(`)p Ft($_)p Fu(')f(is)g(set)h(to)f(the)g(full)g
-(pathname)150 4183 y(of)f(the)f(command)g(and)g(passed)g(to)h(that)g
-(command)f(in)g(its)h(en)m(vironmen)m(t.)150 4392 y Fk(3.7.5)63
-b(Exit)40 b(Status)150 4538 y Fu(The)26 b(exit)h(status)f(of)g(an)g
-(executed)h(command)f(is)g(the)h(v)-5 b(alue)26 b(returned)f(b)m(y)h
-(the)g Fr(w)m(aitpid)k Fu(system)d(call)g(or)150 4648
-y(equiv)-5 b(alen)m(t)33 b(function.)45 b(Exit)32 b(statuses)g(fall)g
-(b)s(et)m(w)m(een)h(0)f(and)f(255,)i(though,)f(as)g(explained)g(b)s
-(elo)m(w,)h(the)150 4758 y(shell)i(ma)m(y)g(use)f(v)-5
-b(alues)35 b(ab)s(o)m(v)m(e)g(125)h(sp)s(ecially)-8 b(.)54
-b(Exit)35 b(statuses)g(from)f(shell)h(builtins)f(and)f(comp)s(ound)150
-4867 y(commands)j(are)g(also)h(limited)g(to)g(this)f(range.)58
-b(Under)36 b(certain)h(circumstances,)h(the)e(shell)h(will)f(use)150
-4977 y(sp)s(ecial)31 b(v)-5 b(alues)31 b(to)g(indicate)g(sp)s(eci\014c)
-f(failure)h(mo)s(des.)275 5121 y(F)-8 b(or)32 b(the)g(shell's)g(purp)s
-(oses,)e(a)j(command)e(whic)m(h)h(exits)g(with)g(a)g(zero)g(exit)h
-(status)f(has)f(succeeded.)150 5230 y(A)e(non-zero)h(exit)g(status)g
-(indicates)g(failure.)40 b(This)28 b(seemingly)i(coun)m(ter-in)m
-(tuitiv)m(e)i(sc)m(heme)e(is)f(used)g(so)150 5340 y(there)34
-b(is)g(one)g(w)m(ell-de\014ned)g(w)m(a)m(y)g(to)h(indicate)g(success)f
-(and)f(a)h(v)-5 b(ariet)m(y)35 b(of)f(w)m(a)m(ys)h(to)f(indicate)h(v)-5
-b(arious)p eop end
-%%Page: 42 48
-TeXDict begin 42 47 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(42)150 299
+(pathname)150 4211 y(of)f(the)f(command)g(and)g(passed)g(to)h(that)g
+(command)f(in)g(its)h(en)m(vironmen)m(t.)150 4404 y Fk(3.7.5)63
+b(Exit)40 b(Status)150 4551 y Fu(The)23 b(exit)i(status)f(of)h(an)e
+(executed)i(command)f(is)g(the)g(v)-5 b(alue)24 b(returned)f(b)m(y)h
+(the)g Ft(waitpid)e Fu(system)i(call)h(or)150 4661 y(equiv)-5
+b(alen)m(t)33 b(function.)45 b(Exit)32 b(statuses)g(fall)g(b)s(et)m(w)m
+(een)h(0)f(and)f(255,)i(though,)f(as)g(explained)g(b)s(elo)m(w,)h(the)
+150 4770 y(shell)i(ma)m(y)g(use)f(v)-5 b(alues)35 b(ab)s(o)m(v)m(e)g
+(125)h(sp)s(ecially)-8 b(.)54 b(Exit)35 b(statuses)g(from)f(shell)h
+(builtins)f(and)f(comp)s(ound)150 4880 y(commands)j(are)g(also)h
+(limited)g(to)g(this)f(range.)58 b(Under)36 b(certain)h(circumstances,)
+h(the)e(shell)h(will)f(use)150 4989 y(sp)s(ecial)31 b(v)-5
+b(alues)31 b(to)g(indicate)g(sp)s(eci\014c)f(failure)h(mo)s(des.)275
+5121 y(F)-8 b(or)32 b(the)g(shell's)g(purp)s(oses,)e(a)j(command)e
+(whic)m(h)h(exits)g(with)g(a)g(zero)g(exit)h(status)f(has)f(succeeded.)
+150 5230 y(A)e(non-zero)h(exit)g(status)g(indicates)g(failure.)40
+b(This)28 b(seemingly)i(coun)m(ter-in)m(tuitiv)m(e)i(sc)m(heme)e(is)f
+(used)g(so)150 5340 y(there)34 b(is)g(one)g(w)m(ell-de\014ned)g(w)m(a)m
+(y)g(to)h(indicate)g(success)f(and)f(a)h(v)-5 b(ariet)m(y)35
+b(of)f(w)m(a)m(ys)h(to)f(indicate)h(v)-5 b(arious)p eop
+end
+%%Page: 45 51
+TeXDict begin 45 50 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(45)150 299
y(failure)38 b(mo)s(des.)62 b(When)37 b(a)h(command)f(terminates)i(on)e
(a)h(fatal)h(signal)g(whose)e(n)m(um)m(b)s(er)f(is)i
Fr(N)p Fu(,)i(Bash)150 408 y(uses)30 b(the)g(v)-5 b(alue)31
b(128)p Ft(+)p Fr(N)42 b Fu(as)30 b(the)h(exit)g(status.)275
-537 y(If)k(a)h(command)g(is)g(not)g(found,)g(the)g(c)m(hild)h(pro)s
+549 y(If)k(a)h(command)g(is)g(not)g(found,)g(the)g(c)m(hild)h(pro)s
(cess)e(created)i(to)g(execute)g(it)g(returns)d(a)j(status)f(of)150
-647 y(127.)42 b(If)30 b(a)h(command)f(is)g(found)f(but)h(is)g(not)h
+658 y(127.)42 b(If)30 b(a)h(command)f(is)g(found)f(but)h(is)g(not)h
(executable,)h(the)f(return)e(status)i(is)f(126.)275
-776 y(If)i(a)i(command)f(fails)g(b)s(ecause)g(of)h(an)f(error)f(during)
+798 y(If)i(a)i(command)f(fails)g(b)s(ecause)g(of)h(an)f(error)f(during)
g(expansion)h(or)g(redirection,)i(the)f(exit)g(status)150
-885 y(is)c(greater)i(than)e(zero.)275 1014 y(The)38 b(exit)h(status)g
+908 y(is)c(greater)i(than)e(zero.)275 1048 y(The)38 b(exit)h(status)g
(is)g(used)f(b)m(y)g(the)h(Bash)g(conditional)h(commands)e(\(see)h
-(Section)h(3.2.5.2)h([Con-)150 1123 y(ditional)i(Constructs],)h(page)f
-(11\))g(and)e(some)i(of)f(the)g(list)g(constructs)g(\(see)h(Section)f
-(3.2.4)i([Lists],)150 1233 y(page)31 b(9\).)275 1362
+(Section)h(3.2.5.2)h([Con-)150 1158 y(ditional)i(Constructs],)h(page)f
+(12\))g(and)e(some)i(of)f(the)g(list)g(constructs)g(\(see)h(Section)f
+(3.2.4)i([Lists],)150 1267 y(page)31 b(10\).)275 1407
y(All)40 b(of)g(the)h(Bash)f(builtins)f(return)g(an)h(exit)h(status)g
(of)f(zero)h(if)f(they)g(succeed)g(and)g(a)g(non-zero)150
-1471 y(status)34 b(on)f(failure,)i(so)f(they)g(ma)m(y)g(b)s(e)f(used)g
+1517 y(status)34 b(on)f(failure,)i(so)f(they)g(ma)m(y)g(b)s(e)f(used)g
(b)m(y)g(the)h(conditional)h(and)e(list)h(constructs.)50
-b(All)35 b(builtins)150 1581 y(return)e(an)i(exit)g(status)g(of)f(2)h
+b(All)35 b(builtins)150 1627 y(return)e(an)i(exit)g(status)g(of)f(2)h
(to)g(indicate)h(incorrect)f(usage,)h(generally)g(in)m(v)-5
-b(alid)35 b(options)g(or)f(missing)150 1691 y(argumen)m(ts.)150
-1878 y Fk(3.7.6)63 b(Signals)150 2025 y Fu(When)36 b(Bash)g(is)h(in)m
-(teractiv)m(e,)j(in)c(the)h(absence)f(of)h(an)m(y)f(traps,)i(it)e
-(ignores)h Ft(SIGTERM)d Fu(\(so)j(that)g(`)p Ft(kill)150
-2135 y(0)p Fu(')c(do)s(es)g(not)g(kill)g(an)g(in)m(teractiv)m(e)j
-(shell\),)f(and)d Ft(SIGINT)f Fu(is)i(caugh)m(t)h(and)f(handled)f(\(so)
-h(that)h(the)f Ft(wait)150 2244 y Fu(builtin)24 b(is)h(in)m
-(terruptible\).)39 b(When)24 b(Bash)g(receiv)m(es)j(a)d
-Ft(SIGINT)p Fu(,)h(it)g(breaks)f(out)h(of)f(an)m(y)h(executing)h(lo)s
-(ops.)150 2354 y(In)31 b(all)h(cases,)h(Bash)f(ignores)g
-Ft(SIGQUIT)p Fu(.)42 b(If)32 b(job)f(con)m(trol)i(is)e(in)h(e\013ect)h
-(\(see)f(Chapter)f(7)h([Job)g(Con)m(trol],)150 2464 y(page)f(107\),)h
-(Bash)f(ignores)g Ft(SIGTTIN)p Fu(,)d Ft(SIGTTOU)p Fu(,)h(and)h
-Ft(SIGTSTP)p Fu(.)275 2592 y(Non-builtin)h(commands)g(started)g(b)m(y)g
-(Bash)h(ha)m(v)m(e)g(signal)g(handlers)e(set)i(to)g(the)g(v)-5
-b(alues)31 b(inherited)150 2702 y(b)m(y)37 b(the)h(shell)g(from)f(its)h
-(paren)m(t.)62 b(When)38 b(job)f(con)m(trol)i(is)e(not)h(in)f
-(e\013ect,)k(async)m(hronous)c(commands)150 2812 y(ignore)f
-Ft(SIGINT)e Fu(and)h Ft(SIGQUIT)e Fu(in)j(addition)f(to)i(these)f
-(inherited)f(handlers.)55 b(Commands)35 b(run)f(as)i(a)150
-2921 y(result)27 b(of)h(command)f(substitution)h(ignore)g(the)g(k)m
-(eyb)s(oard-generated)g(job)g(con)m(trol)h(signals)f
-Ft(SIGTTIN)p Fu(,)150 3031 y Ft(SIGTTOU)p Fu(,)h(and)g
-Ft(SIGTSTP)p Fu(.)275 3160 y(The)h(shell)i(exits)g(b)m(y)f(default)g
-(up)s(on)f(receipt)i(of)f(a)h Ft(SIGHUP)p Fu(.)42 b(Before)32
-b(exiting,)h(an)e(in)m(teractiv)m(e)j(shell)150 3269
-y(resends)41 b(the)i Ft(SIGHUP)e Fu(to)i(all)g(jobs,)i(running)c(or)h
-(stopp)s(ed.)76 b(Stopp)s(ed)41 b(jobs)h(are)h(sen)m(t)g
-Ft(SIGCONT)d Fu(to)150 3379 y(ensure)32 b(that)h(they)g(receiv)m(e)i
-(the)e Ft(SIGHUP)p Fu(.)47 b(T)-8 b(o)33 b(prev)m(en)m(t)g(the)g(shell)
-g(from)g(sending)f(the)h Ft(SIGHUP)e Fu(signal)150 3488
-y(to)i(a)g(particular)g(job,)g(it)g(should)f(b)s(e)g(remo)m(v)m(ed)h
-(from)g(the)f(jobs)g(table)i(with)e(the)h Ft(disown)e
-Fu(builtin)h(\(see)150 3598 y(Section)c(7.2)g([Job)e(Con)m(trol)i
-(Builtins],)g(page)g(108\))h(or)e(mark)m(ed)g(to)g(not)g(receiv)m(e)i
-Ft(SIGHUP)c Fu(using)i Ft(disown)150 3707 y(-h)p Fu(.)275
-3836 y(If)38 b(the)h Ft(huponexit)e Fu(shell)i(option)g(has)g(b)s(een)f
-(set)i(with)f Ft(shopt)e Fu(\(see)j(Section)g(4.3.2)h([The)e(Shopt)150
-3946 y(Builtin],)31 b(page)g(66\),)h(Bash)f(sends)e(a)i
+b(alid)35 b(options)g(or)f(missing)150 1736 y(argumen)m(ts.)275
+1876 y(The)f(exit)i(status)f(of)h(the)f(last)h(command)f(is)g(a)m(v)-5
+b(ailable)36 b(in)e(the)g(sp)s(ecial)h(parameter)f($?)52
+b(\(see)35 b(Sec-)150 1986 y(tion)c(3.4.2)h([Sp)s(ecial)f(P)m
+(arameters],)h(page)f(23\).)150 2191 y Fk(3.7.6)63 b(Signals)150
+2338 y Fu(When)36 b(Bash)g(is)h(in)m(teractiv)m(e,)j(in)c(the)h
+(absence)f(of)h(an)m(y)f(traps,)i(it)e(ignores)h Ft(SIGTERM)d
+Fu(\(so)j(that)g(`)p Ft(kill)150 2447 y(0)p Fu(')c(do)s(es)g(not)g
+(kill)g(an)g(in)m(teractiv)m(e)j(shell\),)f(and)d Ft(SIGINT)f
+Fu(is)i(caugh)m(t)h(and)f(handled)f(\(so)h(that)h(the)f
+Ft(wait)150 2557 y Fu(builtin)24 b(is)h(in)m(terruptible\).)39
+b(When)24 b(Bash)g(receiv)m(es)j(a)d Ft(SIGINT)p Fu(,)h(it)g(breaks)f
+(out)h(of)f(an)m(y)h(executing)h(lo)s(ops.)150 2667 y(In)31
+b(all)h(cases,)h(Bash)f(ignores)g Ft(SIGQUIT)p Fu(.)42
+b(If)32 b(job)f(con)m(trol)i(is)e(in)h(e\013ect)h(\(see)f(Chapter)f(7)h
+([Job)g(Con)m(trol],)150 2776 y(page)f(113\),)h(Bash)f(ignores)g
+Ft(SIGTTIN)p Fu(,)d Ft(SIGTTOU)p Fu(,)h(and)h Ft(SIGTSTP)p
+Fu(.)275 2916 y(Non-builtin)h(commands)g(started)g(b)m(y)g(Bash)h(ha)m
+(v)m(e)g(signal)g(handlers)e(set)i(to)g(the)g(v)-5 b(alues)31
+b(inherited)150 3026 y(b)m(y)37 b(the)h(shell)g(from)f(its)h(paren)m
+(t.)62 b(When)38 b(job)f(con)m(trol)i(is)e(not)h(in)f(e\013ect,)k
+(async)m(hronous)c(commands)150 3136 y(ignore)f Ft(SIGINT)e
+Fu(and)h Ft(SIGQUIT)e Fu(in)j(addition)f(to)i(these)f(inherited)f
+(handlers.)55 b(Commands)35 b(run)f(as)i(a)150 3245 y(result)27
+b(of)h(command)f(substitution)h(ignore)g(the)g(k)m(eyb)s
+(oard-generated)g(job)g(con)m(trol)h(signals)f Ft(SIGTTIN)p
+Fu(,)150 3355 y Ft(SIGTTOU)p Fu(,)h(and)g Ft(SIGTSTP)p
+Fu(.)275 3495 y(The)h(shell)i(exits)g(b)m(y)f(default)g(up)s(on)f
+(receipt)i(of)f(a)h Ft(SIGHUP)p Fu(.)42 b(Before)32 b(exiting,)h(an)e
+(in)m(teractiv)m(e)j(shell)150 3604 y(resends)41 b(the)i
+Ft(SIGHUP)e Fu(to)i(all)g(jobs,)i(running)c(or)h(stopp)s(ed.)76
+b(Stopp)s(ed)41 b(jobs)h(are)h(sen)m(t)g Ft(SIGCONT)d
+Fu(to)150 3714 y(ensure)32 b(that)h(they)g(receiv)m(e)i(the)e
+Ft(SIGHUP)p Fu(.)47 b(T)-8 b(o)33 b(prev)m(en)m(t)g(the)g(shell)g(from)
+g(sending)f(the)h Ft(SIGHUP)e Fu(signal)150 3824 y(to)i(a)g(particular)
+g(job,)g(it)g(should)f(b)s(e)g(remo)m(v)m(ed)h(from)g(the)f(jobs)g
+(table)i(with)e(the)h Ft(disown)e Fu(builtin)h(\(see)150
+3933 y(Section)c(7.2)g([Job)e(Con)m(trol)i(Builtins],)g(page)g(114\))h
+(or)e(mark)m(ed)g(to)g(not)g(receiv)m(e)i Ft(SIGHUP)c
+Fu(using)i Ft(disown)150 4043 y(-h)p Fu(.)275 4183 y(If)38
+b(the)h Ft(huponexit)e Fu(shell)i(option)g(has)g(b)s(een)f(set)i(with)f
+Ft(shopt)e Fu(\(see)j(Section)g(4.3.2)h([The)e(Shopt)150
+4293 y(Builtin],)31 b(page)g(71\),)h(Bash)f(sends)e(a)i
Ft(SIGHUP)e Fu(to)i(all)g(jobs)f(when)f(an)i(in)m(teractiv)m(e)i(login)
-e(shell)g(exits.)275 4075 y(If)38 b(Bash)h(is)g(w)m(aiting)h(for)f(a)g
+e(shell)g(exits.)275 4433 y(If)38 b(Bash)h(is)g(w)m(aiting)h(for)f(a)g
(command)f(to)i(complete)g(and)e(receiv)m(es)j(a)e(signal)h(for)e(whic)
-m(h)h(a)g(trap)150 4184 y(has)c(b)s(een)f(set,)i(the)f(trap)g(will)g
+m(h)h(a)g(trap)150 4542 y(has)c(b)s(een)f(set,)i(the)f(trap)g(will)g
(not)g(b)s(e)f(executed)i(un)m(til)f(the)g(command)f(completes.)55
-b(When)35 b(Bash)g(is)150 4294 y(w)m(aiting)j(for)f(an)g(async)m
+b(When)35 b(Bash)g(is)150 4652 y(w)m(aiting)j(for)f(an)g(async)m
(hronous)g(command)g(via)h(the)f Ft(wait)f Fu(builtin,)i(the)g
-(reception)g(of)f(a)g(signal)h(for)150 4403 y(whic)m(h)d(a)g(trap)g
+(reception)g(of)f(a)g(signal)h(for)150 4761 y(whic)m(h)d(a)g(trap)g
(has)g(b)s(een)f(set)h(will)h(cause)f(the)g Ft(wait)f
Fu(builtin)h(to)g(return)f(immediately)i(with)f(an)g(exit)150
-4513 y(status)c(greater)g(than)f(128,)i(immediately)g(after)f(whic)m(h)
-f(the)h(trap)f(is)g(executed.)150 4742 y Fs(3.8)68 b(Shell)45
-b(Scripts)150 4902 y Fu(A)30 b(shell)f(script)h(is)f(a)h(text)h(\014le)
-f(con)m(taining)h(shell)f(commands.)40 b(When)29 b(suc)m(h)g(a)h
-(\014le)g(is)f(used)g(as)h(the)g(\014rst)150 5011 y(non-option)c
-(argumen)m(t)h(when)e(in)m(v)m(oking)i(Bash,)g(and)f(neither)g(the)g
-Ft(-c)g Fu(nor)f Ft(-s)h Fu(option)g(is)g(supplied)f(\(see)150
-5121 y(Section)39 b(6.1)g([In)m(v)m(oking)g(Bash],)h(page)f(86\),)i
-(Bash)d(reads)g(and)f(executes)i(commands)f(from)f(the)i(\014le,)150
-5230 y(then)32 b(exits.)46 b(This)32 b(mo)s(de)f(of)i(op)s(eration)f
+4871 y(status)c(greater)g(than)f(128,)i(immediately)g(after)f(whic)m(h)
+f(the)h(trap)f(is)g(executed.)275 5011 y(When)41 b(job)g(con)m(trol)h
+(is)g(not)f(enabled,)k(and)40 b(Bash)i(is)f(w)m(aiting)i(for)e(a)h
+(foreground)e(command)h(to)150 5121 y(complete,)35 b(the)e(shell)h
+(receiv)m(es)g(k)m(eyb)s(oard-generated)g(signals)g(suc)m(h)e(as)i
+Ft(SIGINT)d Fu(\(usually)i(generated)150 5230 y(b)m(y)e(`)p
+Ft(^C)p Fu('\))h(that)g(users)e(commonly)i(in)m(tend)g(to)g(send)e(to)j
+(that)f(command.)43 b(This)31 b(happ)s(ens)e(b)s(ecause)j(the)150
+5340 y(shell)23 b(and)g(the)h(command)f(are)g(in)g(the)h(same)f(pro)s
+(cess)g(group)g(as)h(the)f(terminal,)i(and)e(`)p Ft(^C)p
+Fu(')g(sends)g Ft(SIGINT)p eop end
+%%Page: 46 52
+TeXDict begin 46 51 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(46)150 299
+y(to)35 b(all)g(pro)s(cesses)f(in)g(that)g(pro)s(cess)g(group.)51
+b(See)35 b(Chapter)e(7)i([Job)f(Con)m(trol],)i(page)f(113,)h(for)e(a)h
+(more)150 408 y(in-depth)30 b(discussion)f(of)i(pro)s(cess)f(groups.)
+275 542 y(When)35 b(Bash)h(is)g(running)f(without)h(job)f(con)m(trol)i
+(enabled)f(and)g(receiv)m(es)h Ft(SIGINT)e Fu(while)h(w)m(aiting)150
+651 y(for)g(a)h(foreground)f(command,)i(it)f(w)m(aits)g(un)m(til)g
+(that)g(foreground)f(command)g(terminates)h(and)f(then)150
+761 y(decides)31 b(what)f(to)h(do)f(ab)s(out)g(the)h
+Ft(SIGINT)p Fu(:)199 894 y(1.)61 b(If)29 b(the)h(command)f(terminates)i
+(due)d(to)j(the)e Ft(SIGINT)p Fu(,)g(Bash)g(concludes)h(that)g(the)g
+(user)f(mean)m(t)h(to)330 1004 y(end)25 b(the)h(en)m(tire)h(script,)g
+(and)f(acts)h(on)e(the)i Ft(SIGINT)d Fu(\(e.g.,)k(b)m(y)e(running)f(a)h
+Ft(SIGINT)e Fu(trap)i(or)g(exiting)330 1113 y(itself)7
+b(\);)199 1246 y(2.)61 b(If)39 b(the)g(pip)s(eline)g(do)s(es)g(not)h
+(terminate)g(due)f(to)h Ft(SIGINT)p Fu(,)g(the)g(program)f(handled)f
+(the)i Ft(SIGINT)330 1356 y Fu(itself)35 b(and)e(did)h(not)g(treat)h
+(it)g(as)f(a)g(fatal)i(signal.)52 b(In)33 b(that)i(case,)h(Bash)e(do)s
+(es)g(not)g(treat)i Ft(SIGINT)330 1466 y Fu(as)41 b(a)g(fatal)g
+(signal,)j(either,)g(instead)d(assuming)f(that)h(the)g
+Ft(SIGINT)d Fu(w)m(as)j(used)f(as)h(part)f(of)h(the)330
+1575 y(program's)32 b(normal)g(op)s(eration)h(\(e.g.,)h
+Ft(emacs)d Fu(uses)g(it)i(to)g(ab)s(ort)f(editing)h(commands\))f(or)g
+(delib-)330 1685 y(erately)41 b(discarded.)69 b(Ho)m(w)m(ev)m(er,)45
+b(Bash)40 b(will)h(run)d(an)m(y)j(trap)e(set)i(on)f Ft(SIGINT)p
+Fu(,)h(as)f(it)h(do)s(es)e(with)330 1794 y(an)m(y)31
+b(other)f(trapp)s(ed)f(signal)i(it)g(receiv)m(es)h(while)e(it)h(is)f(w)
+m(aiting)h(for)f(the)h(foreground)e(command)h(to)330
+1904 y(complete,)i(for)e(compatibilit)m(y)-8 b(.)150
+2142 y Fs(3.8)68 b(Shell)45 b(Scripts)150 2302 y Fu(A)30
+b(shell)f(script)h(is)f(a)h(text)h(\014le)f(con)m(taining)h(shell)f
+(commands.)40 b(When)29 b(suc)m(h)g(a)h(\014le)g(is)f(used)g(as)h(the)g
+(\014rst)150 2411 y(non-option)c(argumen)m(t)h(when)e(in)m(v)m(oking)i
+(Bash,)g(and)f(neither)g(the)g Ft(-c)g Fu(nor)f Ft(-s)h
+Fu(option)g(is)g(supplied)f(\(see)150 2521 y(Section)39
+b(6.1)g([In)m(v)m(oking)g(Bash],)h(page)f(91\),)i(Bash)d(reads)g(and)f
+(executes)i(commands)f(from)f(the)i(\014le,)150 2630
+y(then)32 b(exits.)46 b(This)32 b(mo)s(de)f(of)i(op)s(eration)f
(creates)i(a)e(non-in)m(teractiv)m(e)j(shell.)46 b(The)31
-b(shell)i(\014rst)e(searc)m(hes)150 5340 y(for)d(the)g(\014le)g(in)g
+b(shell)i(\014rst)e(searc)m(hes)150 2740 y(for)d(the)g(\014le)g(in)g
(the)g(curren)m(t)f(directory)-8 b(,)30 b(and)d(lo)s(oks)i(in)e(the)i
-(directories)g(in)e Ft($PATH)g Fu(if)h(not)g(found)e(there.)p
-eop end
-%%Page: 43 49
-TeXDict begin 43 48 bop 150 -116 a Fu(Chapter)30 b(3:)41
-b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(43)275 299
-y(When)34 b(Bash)h(runs)e(a)i(shell)g(script,)g(it)h(sets)f(the)f(sp)s
-(ecial)i(parameter)f Ft(0)f Fu(to)h(the)g(name)g(of)g(the)g(\014le,)150
-408 y(rather)k(than)g(the)h(name)f(of)h(the)f(shell,)j(and)d(the)h(p)s
-(ositional)g(parameters)f(are)h(set)g(to)g(the)g(remain-)150
-518 y(ing)f(argumen)m(ts,)j(if)d(an)m(y)g(are)g(giv)m(en.)67
-b(If)39 b(no)g(additional)g(argumen)m(ts)h(are)f(supplied,)h(the)f(p)s
-(ositional)150 628 y(parameters)31 b(are)f(unset.)275
-762 y(A)39 b(shell)h(script)f(ma)m(y)h(b)s(e)f(made)h(executable)h(b)m
+(directories)g(in)e Ft($PATH)g Fu(if)h(not)g(found)e(there.)275
+2873 y(When)34 b(Bash)h(runs)e(a)i(shell)g(script,)g(it)h(sets)f(the)f
+(sp)s(ecial)i(parameter)f Ft(0)f Fu(to)h(the)g(name)g(of)g(the)g
+(\014le,)150 2983 y(rather)k(than)g(the)h(name)f(of)h(the)f(shell,)j
+(and)d(the)h(p)s(ositional)g(parameters)f(are)h(set)g(to)g(the)g
+(remain-)150 3092 y(ing)f(argumen)m(ts,)j(if)d(an)m(y)g(are)g(giv)m
+(en.)67 b(If)39 b(no)g(additional)g(argumen)m(ts)h(are)f(supplied,)h
+(the)f(p)s(ositional)150 3202 y(parameters)31 b(are)f(unset.)275
+3335 y(A)39 b(shell)h(script)f(ma)m(y)h(b)s(e)f(made)h(executable)h(b)m
(y)e(using)g(the)h Ft(chmod)e Fu(command)h(to)h(turn)e(on)i(the)150
-872 y(execute)j(bit.)73 b(When)41 b(Bash)g(\014nds)e(suc)m(h)i(a)h
+3445 y(execute)j(bit.)73 b(When)41 b(Bash)g(\014nds)e(suc)m(h)i(a)h
(\014le)f(while)g(searc)m(hing)h(the)f Ft($PATH)f Fu(for)h(a)h
-(command,)h(it)150 981 y(spa)m(wns)30 b(a)g(subshell)g(to)h(execute)h
-(it.)41 b(In)30 b(other)g(w)m(ords,)g(executing)390 1116
-y Ft(filename)46 b Fj(arguments)150 1250 y Fu(is)30 b(equiv)-5
-b(alen)m(t)32 b(to)f(executing)390 1385 y Ft(bash)47
-b(filename)e Fj(arguments)150 1519 y Fu(if)30 b Ft(filename)d
-Fu(is)j(an)f(executable)j(shell)e(script.)40 b(This)29
-b(subshell)g(reinitializes)i(itself,)g(so)f(that)h(the)e(e\013ect)150
-1629 y(is)36 b(as)h(if)g(a)f(new)g(shell)h(had)f(b)s(een)g(in)m(v)m(ok)
-m(ed)h(to)h(in)m(terpret)e(the)h(script,)h(with)e(the)h(exception)h
-(that)f(the)150 1738 y(lo)s(cations)25 b(of)g(commands)e(remem)m(b)s
-(ered)h(b)m(y)g(the)g(paren)m(t)g(\(see)h(the)f(description)g(of)g
-Ft(hash)f Fu(in)h(Section)h(4.1)150 1848 y([Bourne)30
-b(Shell)h(Builtins],)g(page)g(44\))h(are)e(retained)h(b)m(y)f(the)h(c)m
-(hild.)275 1983 y(Most)36 b(v)m(ersions)g(of)g(Unix)f(mak)m(e)h(this)g
-(a)g(part)f(of)h(the)g(op)s(erating)g(system's)f(command)h(execution)
-150 2092 y(mec)m(hanism.)50 b(If)33 b(the)g(\014rst)g(line)h(of)f(a)h
-(script)f(b)s(egins)g(with)g(the)g(t)m(w)m(o)i(c)m(haracters)g(`)p
-Ft(#!)p Fu(',)f(the)g(remainder)150 2202 y(of)27 b(the)g(line)g(sp)s
-(eci\014es)g(an)g(in)m(terpreter)g(for)g(the)g(program)g(and,)g(dep)s
-(ending)e(on)i(the)g(op)s(erating)h(system,)150 2311
-y(one)e(or)g(more)g(optional)h(argumen)m(ts)f(for)g(that)g(in)m
-(terpreter.)40 b(Th)m(us,)26 b(y)m(ou)g(can)g(sp)s(ecify)g(Bash,)h
-Ft(awk)p Fu(,)f(P)m(erl,)150 2421 y(or)k(some)h(other)g(in)m(terpreter)
-g(and)e(write)i(the)f(rest)h(of)g(the)f(script)g(\014le)h(in)f(that)h
-(language.)275 2555 y(The)k(argumen)m(ts)h(to)h(the)f(in)m(terpreter)h
-(consist)f(of)h(one)f(or)g(more)g(optional)h(argumen)m(ts)f(follo)m
-(wing)150 2665 y(the)e(in)m(terpreter)g(name)g(on)g(the)g(\014rst)g
-(line)g(of)g(the)g(script)g(\014le,)h(follo)m(w)m(ed)h(b)m(y)e(the)g
-(name)g(of)g(the)g(script)150 2775 y(\014le,)k(follo)m(w)m(ed)g(b)m(y)e
-(the)g(rest)g(of)g(the)h(argumen)m(ts)f(supplied)f(to)i(the)f(script.)
-58 b(The)35 b(details)i(of)g(ho)m(w)f(the)150 2884 y(in)m(terpreter)26
-b(line)g(is)g(split)g(in)m(to)h(an)f(in)m(terpreter)g(name)g(and)f(a)h
-(set)h(of)e(argumen)m(ts)i(v)-5 b(ary)25 b(across)i(systems.)150
-2994 y(Bash)j(will)f(p)s(erform)g(this)g(action)i(on)e(op)s(erating)h
-(systems)g(that)g(do)f(not)h(handle)f(it)h(themselv)m(es.)42
-b(Note)150 3103 y(that)e(some)g(older)g(v)m(ersions)g(of)g(Unix)f
-(limit)i(the)f(in)m(terpreter)g(name)g(and)f(a)h(single)g(argumen)m(t)g
-(to)h(a)150 3213 y(maxim)m(um)21 b(of)g(32)h(c)m(haracters,)j(so)c
-(it's)h(not)g(p)s(ortable)f(to)h(assume)e(that)i(using)f(more)g(than)g
-(one)g(argumen)m(t)150 3323 y(will)31 b(w)m(ork.)275
-3457 y(Bash)h(scripts)g(often)g(b)s(egin)g(with)g Ft(#!)e(/bin/bash)g
-Fu(\(assuming)i(that)h(Bash)f(has)g(b)s(een)f(installed)i(in)150
-3567 y Ft(/bin)p Fu(\),)26 b(since)h(this)f(ensures)f(that)i(Bash)f
-(will)h(b)s(e)f(used)f(to)i(in)m(terpret)f(the)h(script,)g(ev)m(en)g
-(if)f(it)h(is)f(executed)150 3676 y(under)h(another)h(shell.)41
-b(It's)28 b(a)h(common)g(idiom)f(to)h(use)f Ft(env)g
-Fu(to)h(\014nd)e Ft(bash)g Fu(ev)m(en)i(if)f(it's)i(b)s(een)d
-(installed)150 3786 y(in)h(another)g(directory:)40 b
-Ft(#!/usr/bin/env)27 b(bash)f Fu(will)j(\014nd)d(the)j(\014rst)e(o)s
+(command,)h(it)150 3554 y(creates)32 b(a)f(new)e(instance)i(of)g
+(itself)g(to)g(execute)h(it.)41 b(In)30 b(other)h(w)m(ords,)f
+(executing)390 3688 y Ft(filename)46 b Fj(arguments)150
+3821 y Fu(is)30 b(equiv)-5 b(alen)m(t)32 b(to)f(executing)390
+3954 y Ft(bash)47 b(filename)e Fj(arguments)150 4087
+y Fu(if)30 b Ft(filename)d Fu(is)j(an)f(executable)j(shell)e(script.)40
+b(This)29 b(subshell)g(reinitializes)i(itself,)g(so)f(that)h(the)e
+(e\013ect)150 4197 y(is)36 b(as)h(if)g(a)f(new)g(shell)h(had)f(b)s(een)
+g(in)m(v)m(ok)m(ed)h(to)h(in)m(terpret)e(the)h(script,)h(with)e(the)h
+(exception)h(that)f(the)150 4306 y(lo)s(cations)25 b(of)g(commands)e
+(remem)m(b)s(ered)h(b)m(y)g(the)g(paren)m(t)g(\(see)h(the)f
+(description)g(of)g Ft(hash)f Fu(in)h(Section)h(4.1)150
+4416 y([Bourne)30 b(Shell)h(Builtins],)g(page)g(48\))h(are)e(retained)h
+(b)m(y)f(the)h(c)m(hild.)275 4549 y(Most)36 b(v)m(ersions)g(of)g(Unix)f
+(mak)m(e)h(this)g(a)g(part)f(of)h(the)g(op)s(erating)g(system's)f
+(command)h(execution)150 4659 y(mec)m(hanism.)50 b(If)33
+b(the)g(\014rst)g(line)h(of)f(a)h(script)f(b)s(egins)g(with)g(the)g(t)m
+(w)m(o)i(c)m(haracters)g(`)p Ft(#!)p Fu(',)f(the)g(remainder)150
+4768 y(of)27 b(the)g(line)g(sp)s(eci\014es)g(an)g(in)m(terpreter)g(for)
+g(the)g(program)g(and,)g(dep)s(ending)e(on)i(the)g(op)s(erating)h
+(system,)150 4878 y(one)e(or)g(more)g(optional)h(argumen)m(ts)f(for)g
+(that)g(in)m(terpreter.)40 b(Th)m(us,)26 b(y)m(ou)g(can)g(sp)s(ecify)g
+(Bash,)h Ft(awk)p Fu(,)f(P)m(erl,)150 4988 y(or)k(some)h(other)g(in)m
+(terpreter)g(and)e(write)i(the)f(rest)h(of)g(the)f(script)g(\014le)h
+(in)f(that)h(language.)275 5121 y(The)k(argumen)m(ts)h(to)h(the)f(in)m
+(terpreter)h(consist)f(of)h(one)f(or)g(more)g(optional)h(argumen)m(ts)f
+(follo)m(wing)150 5230 y(the)e(in)m(terpreter)g(name)g(on)g(the)g
+(\014rst)g(line)g(of)g(the)g(script)g(\014le,)h(follo)m(w)m(ed)h(b)m(y)
+e(the)g(name)g(of)g(the)g(script)150 5340 y(\014le,)k(follo)m(w)m(ed)g
+(b)m(y)e(the)g(rest)g(of)g(the)h(argumen)m(ts)f(supplied)f(to)i(the)f
+(script.)58 b(The)35 b(details)i(of)g(ho)m(w)f(the)p
+eop end
+%%Page: 47 53
+TeXDict begin 47 52 bop 150 -116 a Fu(Chapter)30 b(3:)41
+b(Basic)32 b(Shell)e(F)-8 b(eatures)2246 b(47)150 299
+y(in)m(terpreter)26 b(line)g(is)g(split)g(in)m(to)h(an)f(in)m
+(terpreter)g(name)g(and)f(a)h(set)h(of)e(argumen)m(ts)i(v)-5
+b(ary)25 b(across)i(systems.)150 408 y(Bash)j(will)f(p)s(erform)g(this)
+g(action)i(on)e(op)s(erating)h(systems)g(that)g(do)f(not)h(handle)f(it)
+h(themselv)m(es.)42 b(Note)150 518 y(that)e(some)g(older)g(v)m(ersions)
+g(of)g(Unix)f(limit)i(the)f(in)m(terpreter)g(name)g(and)f(a)h(single)g
+(argumen)m(t)g(to)h(a)150 628 y(maxim)m(um)21 b(of)g(32)h(c)m
+(haracters,)j(so)c(it's)h(not)g(p)s(ortable)f(to)h(assume)e(that)i
+(using)f(more)g(than)g(one)g(argumen)m(t)150 737 y(will)31
+b(w)m(ork.)275 872 y(Bash)h(scripts)g(often)g(b)s(egin)g(with)g
+Ft(#!)e(/bin/bash)g Fu(\(assuming)i(that)h(Bash)f(has)g(b)s(een)f
+(installed)i(in)150 981 y Ft(/bin)p Fu(\),)26 b(since)h(this)f(ensures)
+f(that)i(Bash)f(will)h(b)s(e)f(used)f(to)i(in)m(terpret)f(the)h
+(script,)g(ev)m(en)g(if)f(it)h(is)f(executed)150 1091
+y(under)h(another)h(shell.)41 b(It's)28 b(a)h(common)g(idiom)f(to)h
+(use)f Ft(env)g Fu(to)h(\014nd)e Ft(bash)g Fu(ev)m(en)i(if)f(it's)i(b)s
+(een)d(installed)150 1200 y(in)h(another)g(directory:)40
+b Ft(#!/usr/bin/env)27 b(bash)f Fu(will)j(\014nd)d(the)j(\014rst)e(o)s
(ccurrence)h(of)g Ft(bash)f Fu(in)h Ft($PATH)p Fu(.)p
eop end
-%%Page: 44 50
-TeXDict begin 44 49 bop 3659 -116 a Fu(44)150 299 y Fp(4)80
+%%Page: 48 54
+TeXDict begin 48 53 bop 3659 -116 a Fu(48)150 299 y Fp(4)80
b(Shell)53 b(Builtin)f(Commands)150 499 y Fu(Builtin)34
b(commands)f(are)h(con)m(tained)g(within)f(the)h(shell)g(itself.)50
b(When)34 b(the)f(name)h(of)f(a)h(builtin)f(com-)150
608 y(mand)26 b(is)i(used)e(as)i(the)g(\014rst)e(w)m(ord)h(of)h(a)f
(simple)h(command)f(\(see)h(Section)g(3.2.2)h([Simple)f(Commands],)150
-718 y(page)21 b(8\),)j(the)d(shell)g(executes)h(the)f(command)f
+718 y(page)21 b(9\),)j(the)d(shell)g(executes)h(the)f(command)f
(directly)-8 b(,)24 b(without)d(in)m(v)m(oking)h(another)f(program.)37
b(Builtin)150 828 y(commands)f(are)h(necessary)g(to)g(implemen)m(t)g
(functionalit)m(y)h(imp)s(ossible)e(or)h(incon)m(v)m(enien)m(t)h(to)f
@@ -11327,12 +11631,12 @@ b(Builtin)150 828 y(commands)f(are)h(necessary)g(to)g(implemen)m(t)g
(other)g(c)m(hapters:)69 b(builtin)43 b(commands)h(whic)m(h)150
1412 y(pro)m(vide)23 b(the)h(Bash)f(in)m(terface)i(to)f(the)g(job)f
(con)m(trol)i(facilities)g(\(see)f(Section)h(7.2)f([Job)f(Con)m(trol)h
-(Builtins],)150 1521 y(page)37 b(108\),)i(the)d(directory)g(stac)m(k)h
-(\(see)g(Section)g(6.8.1)g([Directory)h(Stac)m(k)f(Builtins],)h(page)e
-(97\),)j(the)150 1631 y(command)23 b(history)h(\(see)g(Section)g(9.2)h
-([Bash)f(History)g(Builtins],)h(page)g(146\),)h(and)d(the)h
+(Builtins],)150 1521 y(page)33 b(114\),)i(the)e(directory)g(stac)m(k)h
+(\(see)f(Section)h(6.8.1)g([Directory)g(Stac)m(k)g(Builtins],)g(page)f
+(102\),)i(the)150 1631 y(command)23 b(history)h(\(see)g(Section)g(9.2)h
+([Bash)f(History)g(Builtins],)h(page)g(152\),)h(and)d(the)h
(programmable)150 1740 y(completion)32 b(facilities)g(\(see)g(Section)f
-(8.7)g([Programmable)g(Completion)g(Builtins],)g(page)h(139\).)275
+(8.7)g([Programmable)g(Completion)g(Builtins],)g(page)h(146\).)275
1868 y(Man)m(y)f(of)f(the)h(builtins)e(ha)m(v)m(e)j(b)s(een)e(extended)
g(b)m(y)g Fm(posix)g Fu(or)g(Bash.)275 1996 y(Unless)20
b(otherwise)h(noted,)h(eac)m(h)g(builtin)e(command)g(do)s(cumen)m(ted)g
@@ -11368,1999 +11672,2061 @@ Fr(\014lename)39 b Fu(argumen)m(t)34 b(in)f(the)h(curren)m(t)g(shell)
630 4134 y(con)m(text.)45 b(If)31 b Fr(\014lename)37
b Fu(do)s(es)31 b(not)g(con)m(tain)i(a)e(slash,)h(the)g
Ft(PATH)e Fu(v)-5 b(ariable)32 b(is)f(used)f(to)i(\014nd)630
-4244 y Fr(\014lename)p Fu(.)52 b(When)34 b(Bash)g(is)h(not)f(in)g
-Fm(posix)f Fu(mo)s(de,)i(the)g(curren)m(t)f(directory)g(is)g(searc)m
-(hed)630 4354 y(if)d Fr(\014lename)36 b Fu(is)31 b(not)h(found)d(in)i
-Ft($PATH)p Fu(.)41 b(If)31 b(an)m(y)g Fr(argumen)m(ts)k
-Fu(are)c(supplied,)f(they)i(b)s(ecome)630 4463 y(the)e(p)s(ositional)h
-(parameters)g(when)e Fr(\014lename)35 b Fu(is)30 b(executed.)42
-b(Otherwise)30 b(the)g(p)s(ositional)630 4573 y(parameters)40
-b(are)f(unc)m(hanged.)67 b(If)39 b(the)g Ft(-T)g Fu(option)g(is)h
-(enabled,)h Ft(source)d Fu(inherits)h(an)m(y)630 4682
-y(trap)31 b(on)g Ft(DEBUG)p Fu(;)f(if)i(it)f(is)g(not,)h(an)m(y)g
-Ft(DEBUG)e Fu(trap)h(string)g(is)g(sa)m(v)m(ed)h(and)f(restored)g
-(around)630 4792 y(the)41 b(call)i(to)e Ft(source)p Fu(,)i(and)d
-Ft(source)f Fu(unsets)i(the)g Ft(DEBUG)f Fu(trap)h(while)g(it)g
-(executes.)74 b(If)630 4902 y Ft(-T)39 b Fu(is)g(not)h(set,)j(and)c
-(the)g(sourced)h(\014le)f(c)m(hanges)i(the)e Ft(DEBUG)f
-Fu(trap,)k(the)e(new)f(v)-5 b(alue)40 b(is)630 5011 y(retained)e(when)e
-Ft(source)g Fu(completes.)63 b(The)37 b(return)f(status)h(is)h(the)f
-(exit)i(status)e(of)h(the)630 5121 y(last)g(command)e(executed,)j(or)e
-(zero)h(if)e(no)h(commands)f(are)h(executed.)61 b(If)36
-b Fr(\014lename)42 b Fu(is)630 5230 y(not)f(found,)h(or)e(cannot)h(b)s
-(e)f(read,)j(the)e(return)e(status)i(is)g(non-zero.)71
-b(This)40 b(builtin)g(is)630 5340 y(equiv)-5 b(alen)m(t)32
-b(to)f Ft(source)p Fu(.)p eop end
-%%Page: 45 51
-TeXDict begin 45 50 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(45)150 299 y Ft(break)870
-428 y(break)46 b([)p Fj(n)p Ft(])630 558 y Fu(Exit)f(from)f(a)g
+4244 y Fr(\014lename)p Fu(,)38 b(but)e Fr(\014lename)41
+b Fu(do)s(es)36 b(not)h(need)f(to)h(b)s(e)e(executable.)60
+b(When)36 b(Bash)g(is)h(not)f(in)630 4354 y Fm(posix)26
+b Fu(mo)s(de,)i(it)g(searc)m(hes)g(the)f(curren)m(t)g(directory)g(if)h
+Fr(\014lename)k Fu(is)27 b(not)h(found)d(in)i Ft($PATH)p
+Fu(.)630 4463 y(If)39 b(an)m(y)h Fr(argumen)m(ts)j Fu(are)d(supplied,)h
+(they)e(b)s(ecome)h(the)g(p)s(ositional)g(parameters)g(when)630
+4573 y Fr(\014lename)i Fu(is)36 b(executed.)60 b(Otherwise)36
+b(the)h(p)s(ositional)g(parameters)g(are)g(unc)m(hanged.)58
+b(If)630 4682 y(the)33 b Ft(-T)g Fu(option)g(is)g(enabled,)h
+Ft(.)f Fu(inherits)g(an)m(y)g(trap)g(on)g Ft(DEBUG)p
+Fu(;)g(if)g(it)h(is)f(not,)h(an)m(y)f Ft(DEBUG)630 4792
+y Fu(trap)f(string)g(is)g(sa)m(v)m(ed)h(and)f(restored)g(around)f(the)i
+(call)g(to)g Ft(.)p Fu(,)f(and)g Ft(.)g Fu(unsets)f(the)h
+Ft(DEBUG)630 4902 y Fu(trap)f(while)h(it)g(executes.)46
+b(If)31 b Ft(-T)g Fu(is)g(not)h(set,)h(and)d(the)i(sourced)f(\014le)h
+(c)m(hanges)h(the)e Ft(DEBUG)630 5011 y Fu(trap,)e(the)f(new)g(v)-5
+b(alue)29 b(is)f(retained)h(when)e Ft(.)h Fu(completes.)42
+b(The)27 b(return)h(status)g(is)h(the)f(exit)630 5121
+y(status)k(of)f(the)h(last)g(command)f(executed,)i(or)f(zero)g(if)f(no)
+h(commands)f(are)h(executed.)44 b(If)630 5230 y Fr(\014lename)d
+Fu(is)36 b(not)g(found,)h(or)e(cannot)i(b)s(e)e(read,)j(the)e(return)f
+(status)h(is)g(non-zero.)58 b(This)630 5340 y(builtin)30
+b(is)g(equiv)-5 b(alen)m(t)32 b(to)f Ft(source)p Fu(.)p
+eop end
+%%Page: 49 55
+TeXDict begin 49 54 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(49)150 299 y Ft(break)870
+433 y(break)46 b([)p Fj(n)p Ft(])630 568 y Fu(Exit)f(from)f(a)g
Ft(for)p Fu(,)k Ft(while)p Fu(,)e Ft(until)p Fu(,)h(or)d
Ft(select)f Fu(lo)s(op.)83 b(If)44 b Fr(n)g Fu(is)g(supplied,)j(the)e
-Fr(n)p Fu(th)630 667 y(enclosing)c(lo)s(op)f(is)h(exited.)70
+Fr(n)p Fu(th)630 677 y(enclosing)c(lo)s(op)f(is)h(exited.)70
b Fr(n)40 b Fu(m)m(ust)g(b)s(e)f(greater)j(than)d(or)i(equal)f(to)h(1.)
-70 b(The)40 b(return)630 777 y(status)31 b(is)f(zero)h(unless)f
+70 b(The)40 b(return)630 787 y(status)31 b(is)f(zero)h(unless)f
Fr(n)g Fu(is)g(not)h(greater)g(than)g(or)f(equal)h(to)g(1.)150
-927 y Ft(cd)870 1056 y(cd)47 b([-L|[-P)f([-e]])g([-@])h([)p
-Fj(directory)p Ft(])630 1186 y Fu(Change)27 b(the)g(curren)m(t)f(w)m
+946 y Ft(cd)870 1081 y(cd)47 b([-L|[-P)f([-e]])g([-@])h([)p
+Fj(directory)p Ft(])630 1215 y Fu(Change)27 b(the)g(curren)m(t)f(w)m
(orking)h(directory)g(to)h Fr(directory)p Fu(.)40 b(If)26
-b Fr(directory)35 b Fu(is)27 b(not)g(supplied,)630 1295
-y(the)f(v)-5 b(alue)26 b(of)f(the)h Ft(HOME)e Fu(shell)i(v)-5
-b(ariable)26 b(is)g(used.)38 b(An)m(y)25 b(additional)i(argumen)m(ts)e
-(follo)m(wing)630 1405 y Fr(directory)39 b Fu(are)31
-b(ignored.)41 b(If)30 b(the)h(shell)g(v)-5 b(ariable)31
-b Ft(CDPATH)e Fu(exists,)i(it)g(is)g(used)f(as)g(a)h(searc)m(h)630
-1514 y(path:)39 b(eac)m(h)29 b(directory)g(name)f(in)f
-Ft(CDPATH)g Fu(is)h(searc)m(hed)g(for)g Fr(directory)p
-Fu(,)h(with)f(alternativ)m(e)630 1624 y(directory)j(names)g(in)f
-Ft(CDPATH)f Fu(separated)j(b)m(y)e(a)h(colon)h(\(`)p
-Ft(:)p Fu('\).)43 b(If)30 b Fr(directory)39 b Fu(b)s(egins)30
-b(with)630 1733 y(a)h(slash,)f Ft(CDPATH)f Fu(is)h(not)h(used.)630
-1863 y(The)g Ft(-P)h Fu(option)g(means)g(to)h(not)f(follo)m(w)h(sym)m
-(b)s(olic)g(links:)44 b(sym)m(b)s(olic)32 b(links)g(are)g(resolv)m(ed)
-630 1973 y(while)41 b Ft(cd)f Fu(is)h(tra)m(v)m(ersing)h
+b Fr(directory)35 b Fu(is)27 b(not)g(supplied,)630 1325
+y(the)k(v)-5 b(alue)31 b(of)g(the)g Ft(HOME)e Fu(shell)i(v)-5
+b(ariable)32 b(is)f(used.)40 b(If)31 b(the)g(shell)g(v)-5
+b(ariable)31 b Ft(CDPATH)e Fu(exists,)630 1435 y(it)44
+b(is)f(used)g(as)h(a)f(searc)m(h)h(path:)67 b(eac)m(h)45
+b(directory)f(name)f(in)g Ft(CDPATH)f Fu(is)h(searc)m(hed)h(for)630
+1544 y Fr(directory)p Fu(,)k(with)c(alternativ)m(e)i(directory)f(names)
+e(in)h Ft(CDPATH)e Fu(separated)j(b)m(y)f(a)g(colon)630
+1654 y(\(`)p Ft(:)p Fu('\).)e(If)30 b Fr(directory)38
+b Fu(b)s(egins)30 b(with)g(a)h(slash,)f Ft(CDPATH)f Fu(is)h(not)h
+(used.)630 1788 y(The)g Ft(-P)h Fu(option)g(means)g(to)h(not)f(follo)m
+(w)h(sym)m(b)s(olic)g(links:)44 b(sym)m(b)s(olic)32 b(links)g(are)g
+(resolv)m(ed)630 1898 y(while)41 b Ft(cd)f Fu(is)h(tra)m(v)m(ersing)h
Fr(directory)49 b Fu(and)40 b(b)s(efore)g(pro)s(cessing)h(an)f
-(instance)i(of)f(`)p Ft(..)p Fu(')f(in)630 2082 y Fr(directory)p
-Fu(.)630 2212 y(By)34 b(default,)h(or)e(when)g(the)g
+(instance)i(of)f(`)p Ft(..)p Fu(')f(in)630 2007 y Fr(directory)p
+Fu(.)630 2142 y(By)34 b(default,)h(or)e(when)g(the)g
Ft(-L)g Fu(option)h(is)g(supplied,)f(sym)m(b)s(olic)h(links)f(in)h
-Fr(directory)42 b Fu(are)630 2321 y(resolv)m(ed)31 b(after)g
+Fr(directory)42 b Fu(are)630 2252 y(resolv)m(ed)31 b(after)g
Ft(cd)f Fu(pro)s(cesses)g(an)g(instance)h(of)g(`)p Ft(..)p
-Fu(')f(in)g Fr(directory)p Fu(.)630 2451 y(If)35 b(`)p
+Fu(')f(in)g Fr(directory)p Fu(.)630 2386 y(If)35 b(`)p
Ft(..)p Fu(')f(app)s(ears)h(in)f Fr(directory)p Fu(,)j(it)f(is)f(pro)s
(cessed)f(b)m(y)h(remo)m(ving)h(the)f(immediately)h(pre-)630
-2560 y(ceding)31 b(pathname)f(comp)s(onen)m(t,)h(bac)m(k)g(to)g(a)g
+2496 y(ceding)31 b(pathname)f(comp)s(onen)m(t,)h(bac)m(k)g(to)g(a)g
(slash)f(or)h(the)f(b)s(eginning)g(of)g Fr(directory)p
-Fu(.)630 2690 y(If)i(the)i Ft(-e)e Fu(option)h(is)g(supplied)f(with)g
+Fu(.)630 2630 y(If)i(the)i Ft(-e)e Fu(option)h(is)g(supplied)f(with)g
Ft(-P)h Fu(and)f(the)h(curren)m(t)g(w)m(orking)g(directory)g(cannot)630
-2800 y(b)s(e)k(successfully)g(determined)g(after)i(a)e(successful)h
+2740 y(b)s(e)k(successfully)g(determined)g(after)i(a)e(successful)h
(directory)g(c)m(hange,)i Ft(cd)d Fu(will)h(return)630
-2909 y(an)30 b(unsuccessful)f(status.)630 3039 y(On)41
+2849 y(an)30 b(unsuccessful)f(status.)630 2984 y(On)41
b(systems)h(that)h(supp)s(ort)d(it,)46 b(the)c Ft(-@)g
Fu(option)g(presen)m(ts)g(the)g(extended)g(attributes)630
-3148 y(asso)s(ciated)32 b(with)e(a)h(\014le)f(as)h(a)f(directory)-8
-b(.)630 3278 y(If)41 b Fr(directory)49 b Fu(is)41 b(`)p
+3093 y(asso)s(ciated)32 b(with)e(a)h(\014le)f(as)h(a)f(directory)-8
+b(.)630 3228 y(If)41 b Fr(directory)49 b Fu(is)41 b(`)p
Ft(-)p Fu(',)j(it)e(is)f(con)m(v)m(erted)h(to)g Ft($OLDPWD)d
-Fu(b)s(efore)i(the)g(directory)h(c)m(hange)g(is)630 3387
-y(attempted.)630 3517 y(If)33 b(a)h(non-empt)m(y)g(directory)g(name)f
+Fu(b)s(efore)i(the)g(directory)h(c)m(hange)g(is)630 3337
+y(attempted.)630 3472 y(If)33 b(a)h(non-empt)m(y)g(directory)g(name)f
(from)g Ft(CDPATH)f Fu(is)h(used,)h(or)g(if)f(`)p Ft(-)p
-Fu(')h(is)f(the)h(\014rst)f(argu-)630 3626 y(men)m(t,)28
+Fu(')h(is)f(the)h(\014rst)f(argu-)630 3582 y(men)m(t,)28
b(and)e(the)h(directory)g(c)m(hange)h(is)f(successful,)h(the)f
-(absolute)g(pathname)g(of)f(the)h(new)630 3736 y(w)m(orking)k
+(absolute)g(pathname)g(of)f(the)h(new)630 3691 y(w)m(orking)k
(directory)g(is)f(written)g(to)i(the)e(standard)g(output.)630
-3866 y(The)f(return)g(status)h(is)f(zero)i(if)e(the)h(directory)g(is)g
-(successfully)g(c)m(hanged,)g(non-zero)g(oth-)630 3975
-y(erwise.)150 4125 y Ft(continue)870 4254 y(continue)46
-b([)p Fj(n)p Ft(])630 4384 y Fu(Resume)32 b(the)g(next)g(iteration)i
+3826 y(If)i(the)i(directory)f(c)m(hange)h(is)f(successful,)h
+Ft(cd)e Fu(sets)h(the)h(v)-5 b(alue)33 b(of)g(the)g Ft(PWD)f
+Fu(en)m(vironmen)m(t)630 3935 y(v)-5 b(ariable)32 b(to)g(the)f(new)g
+(directory)g(name,)h(and)e(sets)i(the)f Ft(OLDPWD)e Fu(en)m(vironmen)m
+(t)j(v)-5 b(ariable)630 4045 y(to)31 b(the)g(v)-5 b(alue)31
+b(of)f(the)h(curren)m(t)f(w)m(orking)g(directory)h(b)s(efore)f(the)h(c)
+m(hange.)630 4179 y(The)e(return)g(status)h(is)f(zero)i(if)e(the)h
+(directory)g(is)g(successfully)g(c)m(hanged,)g(non-zero)g(oth-)630
+4289 y(erwise.)150 4448 y Ft(continue)870 4583 y(continue)46
+b([)p Fj(n)p Ft(])630 4717 y Fu(Resume)32 b(the)g(next)g(iteration)i
(of)e(an)g(enclosing)h Ft(for)p Fu(,)f Ft(while)p Fu(,)f
-Ft(until)p Fu(,)g(or)h Ft(select)f Fu(lo)s(op.)630 4493
+Ft(until)p Fu(,)g(or)h Ft(select)f Fu(lo)s(op.)630 4827
y(If)f Fr(n)h Fu(is)g(supplied,)e(the)j(execution)g(of)f(the)g
Fr(n)p Fu(th)f(enclosing)i(lo)s(op)f(is)f(resumed.)42
-b Fr(n)30 b Fu(m)m(ust)h(b)s(e)630 4603 y(greater)39
+b Fr(n)30 b Fu(m)m(ust)h(b)s(e)630 4936 y(greater)39
b(than)f(or)g(equal)g(to)h(1.)63 b(The)38 b(return)e(status)j(is)e
-(zero)i(unless)e Fr(n)h Fu(is)g(not)g(greater)630 4712
-y(than)30 b(or)g(equal)h(to)g(1.)150 4862 y Ft(eval)870
-4991 y(eval)47 b([)p Fj(arguments)p Ft(])630 5121 y Fu(The)25
+(zero)i(unless)e Fr(n)h Fu(is)g(not)g(greater)630 5046
+y(than)30 b(or)g(equal)h(to)g(1.)150 5205 y Ft(eval)870
+5340 y(eval)47 b([)p Fj(arguments)p Ft(])p eop end
+%%Page: 50 56
+TeXDict begin 50 55 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(50)630 299 y(The)25
b(argumen)m(ts)h(are)g(concatenated)i(together)f(in)m(to)f(a)g(single)h
-(command,)f(whic)m(h)g(is)f(then)630 5230 y(read)35 b(and)g(executed,)j
+(command,)f(whic)m(h)g(is)f(then)630 408 y(read)35 b(and)g(executed,)j
(and)d(its)h(exit)g(status)g(returned)e(as)h(the)h(exit)g(status)g(of)g
-Ft(eval)p Fu(.)54 b(If)630 5340 y(there)31 b(are)f(no)h(argumen)m(ts)f
+Ft(eval)p Fu(.)54 b(If)630 518 y(there)31 b(are)f(no)h(argumen)m(ts)f
(or)h(only)f(empt)m(y)h(argumen)m(ts,)g(the)f(return)g(status)g(is)h
-(zero.)p eop end
-%%Page: 46 52
-TeXDict begin 46 51 bop 150 -116 a Fu(Chapter)30 b(4:)h(Shell)f
-(Builtin)h(Commands)2079 b(46)150 299 y Ft(exec)870 430
-y(exec)47 b([-cl])f([-a)h Fj(name)p Ft(])f([)p Fj(command)g
-Ft([)p Fj(arguments)p Ft(]])630 562 y Fu(If)36 b Fr(command)k
-Fu(is)c(supplied,)h(it)g(replaces)h(the)e(shell)h(without)f(creating)i
-(a)f(new)f(pro)s(cess.)630 671 y(If)k(the)h Ft(-l)e Fu(option)i(is)g
-(supplied,)h(the)e(shell)h(places)g(a)g(dash)f(at)h(the)f(b)s(eginning)
-g(of)h(the)630 781 y(zeroth)36 b(argumen)m(t)h(passed)e(to)h
-Fr(command)p Fu(.)57 b(This)35 b(is)h(what)f(the)h Ft(login)e
-Fu(program)i(do)s(es.)630 891 y(The)i Ft(-c)g Fu(option)g(causes)h
-Fr(command)j Fu(to)d(b)s(e)f(executed)h(with)f(an)g(empt)m(y)h(en)m
-(vironmen)m(t.)630 1000 y(If)c Ft(-a)g Fu(is)h(supplied,)f(the)h(shell)
-g(passes)f Fr(name)41 b Fu(as)36 b(the)f(zeroth)i(argumen)m(t)f(to)g
-Fr(command)p Fu(.)630 1110 y(If)c Fr(command)j Fu(cannot)e(b)s(e)f
+(zero.)150 679 y Ft(exec)870 815 y(exec)47 b([-cl])f([-a)h
+Fj(name)p Ft(])f([)p Fj(command)g Ft([)p Fj(arguments)p
+Ft(]])630 950 y Fu(If)36 b Fr(command)k Fu(is)c(supplied,)h(it)g
+(replaces)h(the)e(shell)h(without)f(creating)i(a)f(new)f(pro)s(cess.)
+630 1060 y(If)k(the)h Ft(-l)e Fu(option)i(is)g(supplied,)h(the)e(shell)
+h(places)g(a)g(dash)f(at)h(the)f(b)s(eginning)g(of)h(the)630
+1169 y(zeroth)36 b(argumen)m(t)h(passed)e(to)h Fr(command)p
+Fu(.)57 b(This)35 b(is)h(what)f(the)h Ft(login)e Fu(program)i(do)s(es.)
+630 1279 y(The)i Ft(-c)g Fu(option)g(causes)h Fr(command)j
+Fu(to)d(b)s(e)f(executed)h(with)f(an)g(empt)m(y)h(en)m(vironmen)m(t.)
+630 1388 y(If)c Ft(-a)g Fu(is)h(supplied,)f(the)h(shell)g(passes)f
+Fr(name)41 b Fu(as)36 b(the)f(zeroth)i(argumen)m(t)f(to)g
+Fr(command)p Fu(.)630 1498 y(If)c Fr(command)j Fu(cannot)e(b)s(e)f
(executed)h(for)f(some)g(reason,)h(a)g(non-in)m(teractiv)m(e)i(shell)d
-(exits,)630 1219 y(unless)27 b(the)g Ft(execfail)e Fu(shell)i(option)h
+(exits,)630 1608 y(unless)27 b(the)g Ft(execfail)e Fu(shell)i(option)h
(is)f(enabled.)40 b(In)27 b(that)g(case,)j(it)d(returns)f(failure.)40
-b(An)630 1329 y(in)m(teractiv)m(e)35 b(shell)d(returns)f(failure)h(if)g
+b(An)630 1717 y(in)m(teractiv)m(e)35 b(shell)d(returns)f(failure)h(if)g
(the)g(\014le)g(cannot)h(b)s(e)e(executed.)47 b(A)32
-b(subshell)f(exits)630 1439 y(unconditionally)j(if)g
+b(subshell)f(exits)630 1827 y(unconditionally)j(if)g
Ft(exec)f Fu(fails.)52 b(If)33 b(no)h Fr(command)j Fu(is)d(sp)s
-(eci\014ed,)h(redirections)f(ma)m(y)h(b)s(e)630 1548
+(eci\014ed,)h(redirections)f(ma)m(y)h(b)s(e)630 1936
y(used)30 b(to)i(a\013ect)g(the)f(curren)m(t)g(shell)g(en)m(vironmen)m
(t.)43 b(If)30 b(there)i(are)f(no)g(redirection)g(errors,)630
-1658 y(the)g(return)e(status)i(is)f(zero;)h(otherwise)g(the)g(return)e
-(status)i(is)f(non-zero.)150 1811 y Ft(exit)870 1943
-y(exit)47 b([)p Fj(n)p Ft(])630 2074 y Fu(Exit)30 b(the)g(shell,)h
+2046 y(the)g(return)e(status)i(is)f(zero;)h(otherwise)g(the)g(return)e
+(status)i(is)f(non-zero.)150 2207 y Ft(exit)870 2342
+y(exit)47 b([)p Fj(n)p Ft(])630 2478 y Fu(Exit)30 b(the)g(shell,)h
(returning)d(a)j(status)f(of)g Fr(n)f Fu(to)h(the)g(shell's)g(paren)m
-(t.)41 b(If)30 b Fr(n)f Fu(is)h(omitted,)h(the)630 2184
+(t.)41 b(If)30 b Fr(n)f Fu(is)h(omitted,)h(the)630 2587
y(exit)c(status)g(is)g(that)g(of)g(the)g(last)g(command)f(executed.)41
b(An)m(y)26 b(trap)h(on)f Ft(EXIT)f Fu(is)i(executed)630
-2293 y(b)s(efore)j(the)h(shell)f(terminates.)150 2447
-y Ft(export)870 2578 y(export)46 b([-fn])g([-p])h([)p
-Fj(name)p Ft([=)p Fj(value)p Ft(]])630 2710 y Fu(Mark)40
+2697 y(b)s(efore)j(the)h(shell)f(terminates.)150 2858
+y Ft(export)870 2993 y(export)46 b([-fn])g([-p])h([)p
+Fj(name)p Ft([=)p Fj(value)p Ft(]])630 3129 y Fu(Mark)40
b(eac)m(h)h Fr(name)k Fu(to)40 b(b)s(e)f(passed)g(to)i(c)m(hild)f(pro)s
(cesses)f(in)g(the)h(en)m(vironmen)m(t.)70 b(If)39 b(the)630
-2819 y Ft(-f)33 b Fu(option)h(is)g(supplied,)f(the)h
+3238 y Ft(-f)33 b Fu(option)h(is)g(supplied,)f(the)h
Fr(name)5 b Fu(s)33 b(refer)g(to)i(shell)e(functions;)i(otherwise)f
-(the)g(names)630 2929 y(refer)c(to)h(shell)g(v)-5 b(ariables.)41
+(the)g(names)630 3348 y(refer)c(to)h(shell)g(v)-5 b(ariables.)41
b(The)30 b Ft(-n)f Fu(option)i(means)f(to)h(no)f(longer)h(mark)f(eac)m
-(h)i Fr(name)j Fu(for)630 3039 y(exp)s(ort.)52 b(If)33
-b(no)h Fr(names)k Fu(are)c(supplied,)g(or)g(if)g(the)g
-Ft(-p)g Fu(option)g(is)g(giv)m(en,)j(a)d(list)h(of)f(names)630
-3148 y(of)d(all)h(exp)s(orted)e(v)-5 b(ariables)31 b(is)g(displa)m(y)m
+(h)i Fr(name)j Fu(for)630 3458 y(exp)s(ort.)51 b(If)34
+b(no)g Fr(name)5 b Fu(s)34 b(are)g(supplied,)g(or)g(if)g(the)g
+Ft(-p)f Fu(option)i(is)f(giv)m(en,)i(a)e(list)h(of)f(names)630
+3567 y(of)d(all)h(exp)s(orted)e(v)-5 b(ariables)31 b(is)g(displa)m(y)m
(ed.)43 b(The)30 b Ft(-p)g Fu(option)i(displa)m(ys)e(output)h(in)f(a)h
-(form)630 3258 y(that)25 b(ma)m(y)g(b)s(e)f(reused)g(as)h(input.)38
+(form)630 3677 y(that)25 b(ma)m(y)g(b)s(e)f(reused)g(as)h(input.)38
b(If)24 b(a)h(v)-5 b(ariable)25 b(name)g(is)g(follo)m(w)m(ed)h(b)m(y)e
(=)p Fr(v)-5 b(alue)p Fu(,)27 b(the)d(v)-5 b(alue)630
-3367 y(of)31 b(the)f(v)-5 b(ariable)31 b(is)g(set)g(to)g
-Fr(v)-5 b(alue)p Fu(.)630 3499 y(The)29 b(return)e(status)j(is)f(zero)h
+3786 y(of)31 b(the)f(v)-5 b(ariable)31 b(is)g(set)g(to)g
+Fr(v)-5 b(alue)p Fu(.)630 3922 y(The)29 b(return)e(status)j(is)f(zero)h
(unless)e(an)h(in)m(v)-5 b(alid)29 b(option)h(is)f(supplied,)f(one)i
-(of)f(the)g(names)630 3608 y(is)k(not)g(a)h(v)-5 b(alid)33
+(of)f(the)g(names)630 4031 y(is)k(not)g(a)h(v)-5 b(alid)33
b(shell)h(v)-5 b(ariable)33 b(name,)i(or)e Ft(-f)f Fu(is)h(supplied)f
-(with)h(a)g(name)g(that)h(is)f(not)h(a)630 3718 y(shell)d(function.)150
-3871 y Ft(getopts)870 4003 y(getopts)46 b Fj(optstring)f(name)i
-Ft([)p Fj(arg)f Ft(...])630 4134 y(getopts)28 b Fu(is)i(used)g(b)m(y)g
+(with)h(a)g(name)g(that)h(is)f(not)h(a)630 4141 y(shell)d(function.)150
+4302 y Ft(getopts)870 4437 y(getopts)46 b Fj(optstring)f(name)i
+Ft([)p Fj(arg)f Ft(...])630 4573 y(getopts)28 b Fu(is)i(used)g(b)m(y)g
(shell)g(scripts)g(to)g(parse)g(p)s(ositional)h(parameters.)41
-b Fr(optstring)d Fu(con-)630 4244 y(tains)k(the)g(option)f(c)m
+b Fr(optstring)d Fu(con-)630 4682 y(tains)k(the)g(option)f(c)m
(haracters)i(to)g(b)s(e)d(recognized;)49 b(if)42 b(a)f(c)m(haracter)j
-(is)d(follo)m(w)m(ed)i(b)m(y)f(a)630 4354 y(colon,)33
+(is)d(follo)m(w)m(ed)i(b)m(y)f(a)630 4792 y(colon,)33
b(the)f(option)g(is)g(exp)s(ected)g(to)h(ha)m(v)m(e)g(an)e(argumen)m
-(t,)i(whic)m(h)f(should)e(b)s(e)h(separated)630 4463
+(t,)i(whic)m(h)f(should)e(b)s(e)h(separated)630 4902
y(from)40 b(it)g(b)m(y)g(whitespace.)70 b(The)40 b(colon)h(\(`)p
Ft(:)p Fu('\))g(and)e(question)h(mark)g(\(`)p Ft(?)p
-Fu('\))h(ma)m(y)f(not)h(b)s(e)630 4573 y(used)d(as)g(option)h(c)m
+Fu('\))h(ma)m(y)f(not)h(b)s(e)630 5011 y(used)d(as)g(option)h(c)m
(haracters.)67 b(Eac)m(h)39 b(time)g(it)g(is)f(in)m(v)m(ok)m(ed,)k
-Ft(getopts)37 b Fu(places)i(the)g(next)630 4682 y(option)29
+Ft(getopts)37 b Fu(places)i(the)g(next)630 5121 y(option)29
b(in)f(the)h(shell)g(v)-5 b(ariable)30 b Fr(name)p Fu(,)f(initializing)
i Fr(name)j Fu(if)28 b(it)h(do)s(es)g(not)g(exist,)h(and)e(the)630
-4792 y(index)33 b(of)g(the)h(next)f(argumen)m(t)h(to)g(b)s(e)e(pro)s
+5230 y(index)33 b(of)g(the)h(next)f(argumen)m(t)h(to)g(b)s(e)e(pro)s
(cessed)h(in)m(to)h(the)g(v)-5 b(ariable)34 b Ft(OPTIND)p
-Fu(.)48 b Ft(OPTIND)630 4902 y Fu(is)41 b(initialized)i(to)f(1)f(eac)m
+Fu(.)48 b Ft(OPTIND)630 5340 y Fu(is)41 b(initialized)i(to)f(1)f(eac)m
(h)h(time)g(the)f(shell)g(or)g(a)g(shell)g(script)g(is)g(in)m(v)m(ok)m
-(ed.)74 b(When)41 b(an)630 5011 y(option)36 b(requires)e(an)h(argumen)m
-(t,)i Ft(getopts)c Fu(places)j(that)g(argumen)m(t)g(in)m(to)g(the)f(v)
--5 b(ariable)630 5121 y Ft(OPTARG)p Fu(.)55 b(The)35
-b(shell)g(do)s(es)h(not)g(reset)g Ft(OPTIND)e Fu(automatically;)41
-b(it)36 b(m)m(ust)f(b)s(e)g(man)m(ually)630 5230 y(reset)i(b)s(et)m(w)m
-(een)g(m)m(ultiple)h(calls)f(to)g Ft(getopts)e Fu(within)h(the)h(same)g
-(shell)f(in)m(v)m(o)s(cation)j(if)e(a)630 5340 y(new)30
-b(set)h(of)f(parameters)h(is)f(to)i(b)s(e)d(used.)p eop
-end
-%%Page: 47 53
-TeXDict begin 47 52 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(47)630 299 y(When)41
-b(the)h(end)e(of)i(options)g(is)f(encoun)m(tered,)k Ft(getopts)39
-b Fu(exits)j(with)f(a)h(return)e(v)-5 b(alue)630 408
-y(greater)32 b(than)e(zero.)41 b Ft(OPTIND)29 b Fu(is)h(set)h(to)g(the)
-g(index)f(of)g(the)h(\014rst)f(non-option)g(argumen)m(t,)630
-518 y(and)g Fr(name)35 b Fu(is)c(set)g(to)g(`)p Ft(?)p
-Fu('.)630 655 y Ft(getopts)c Fu(normally)j(parses)e(the)i(p)s
+(ed.)74 b(When)41 b(an)p eop end
+%%Page: 51 57
+TeXDict begin 51 56 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(51)630 299 y(option)36
+b(requires)e(an)h(argumen)m(t,)i Ft(getopts)c Fu(places)j(that)g
+(argumen)m(t)g(in)m(to)g(the)f(v)-5 b(ariable)630 408
+y Ft(OPTARG)p Fu(.)55 b(The)35 b(shell)g(do)s(es)h(not)g(reset)g
+Ft(OPTIND)e Fu(automatically;)41 b(it)36 b(m)m(ust)f(b)s(e)g(man)m
+(ually)630 518 y(reset)i(b)s(et)m(w)m(een)g(m)m(ultiple)h(calls)f(to)g
+Ft(getopts)e Fu(within)h(the)h(same)g(shell)f(in)m(v)m(o)s(cation)j(if)
+e(a)630 628 y(new)30 b(set)h(of)f(parameters)h(is)f(to)i(b)s(e)d(used.)
+630 771 y(When)41 b(the)h(end)e(of)i(options)g(is)f(encoun)m(tered,)k
+Ft(getopts)39 b Fu(exits)j(with)f(a)h(return)e(v)-5 b(alue)630
+881 y(greater)32 b(than)e(zero.)41 b Ft(OPTIND)29 b Fu(is)h(set)h(to)g
+(the)g(index)f(of)g(the)h(\014rst)f(non-option)g(argumen)m(t,)630
+990 y(and)g Fr(name)35 b Fu(is)c(set)g(to)g(`)p Ft(?)p
+Fu('.)630 1133 y Ft(getopts)c Fu(normally)j(parses)e(the)i(p)s
(ositional)g(parameters,)g(but)e(if)i(more)f(argumen)m(ts)h(are)630
-765 y(supplied)f(as)i Fr(arg)38 b Fu(v)-5 b(alues,)31
-b Ft(getopts)e Fu(parses)h(those)h(instead.)630 902 y
-Ft(getopts)h Fu(can)h(rep)s(ort)g(errors)g(in)h(t)m(w)m(o)h(w)m(a)m
+1243 y(supplied)f(as)i Fr(arg)38 b Fu(v)-5 b(alues,)31
+b Ft(getopts)e Fu(parses)h(those)h(instead.)630 1386
+y Ft(getopts)h Fu(can)h(rep)s(ort)g(errors)g(in)h(t)m(w)m(o)h(w)m(a)m
(ys.)51 b(If)33 b(the)h(\014rst)e(c)m(haracter)k(of)d
-Fr(optstring)42 b Fu(is)34 b(a)630 1011 y(colon,)g Fr(silen)m(t)h
+Fr(optstring)42 b Fu(is)34 b(a)630 1496 y(colon,)g Fr(silen)m(t)h
Fu(error)d(rep)s(orting)f(is)i(used.)45 b(In)31 b(normal)h(op)s
-(eration,)h(diagnostic)h(messages)630 1121 y(are)c(prin)m(ted)e(when)g
+(eration,)h(diagnostic)h(messages)630 1606 y(are)c(prin)m(ted)e(when)g
(in)m(v)-5 b(alid)30 b(options)g(or)f(missing)g(option)g(argumen)m(ts)h
-(are)f(encoun)m(tered.)630 1230 y(If)34 b(the)g(v)-5
+(are)f(encoun)m(tered.)630 1715 y(If)34 b(the)g(v)-5
b(ariable)35 b Ft(OPTERR)d Fu(is)i(set)h(to)f(0,)i(no)e(error)g
(messages)h(will)f(b)s(e)f(displa)m(y)m(ed,)j(ev)m(en)f(if)630
-1340 y(the)c(\014rst)e(c)m(haracter)j(of)f Ft(optstring)d
-Fu(is)i(not)h(a)f(colon.)630 1477 y(If)39 b(an)h(in)m(v)-5
+1825 y(the)c(\014rst)e(c)m(haracter)j(of)f Ft(optstring)d
+Fu(is)i(not)h(a)f(colon.)630 1968 y(If)39 b(an)h(in)m(v)-5
b(alid)41 b(option)f(is)g(seen,)i Ft(getopts)c Fu(places)j(`)p
Ft(?)p Fu(')f(in)m(to)h Fr(name)k Fu(and,)d(if)e(not)g(silen)m(t,)630
-1587 y(prin)m(ts)f(an)h(error)f(message)h(and)f(unsets)g
+2078 y(prin)m(ts)f(an)h(error)f(message)h(and)f(unsets)g
Ft(OPTARG)p Fu(.)67 b(If)39 b Ft(getopts)f Fu(is)i(silen)m(t,)j(the)c
-(option)630 1696 y(c)m(haracter)32 b(found)d(is)h(placed)h(in)f
+(option)630 2187 y(c)m(haracter)32 b(found)d(is)h(placed)h(in)f
Ft(OPTARG)f Fu(and)h(no)g(diagnostic)i(message)f(is)g(prin)m(ted.)630
-1833 y(If)c(a)g(required)f(argumen)m(t)i(is)f(not)g(found,)g(and)f
+2330 y(If)c(a)g(required)f(argumen)m(t)i(is)f(not)g(found,)g(and)f
Ft(getopts)f Fu(is)i(not)h(silen)m(t,)h(a)e(question)g(mark)630
-1943 y(\(`)p Ft(?)p Fu('\))h(is)g(placed)g(in)f Fr(name)p
+2440 y(\(`)p Ft(?)p Fu('\))h(is)g(placed)g(in)f Fr(name)p
Fu(,)h Ft(OPTARG)e Fu(is)h(unset,)h(and)f(a)g(diagnostic)i(message)g
-(is)e(prin)m(ted.)39 b(If)630 2052 y Ft(getopts)28 b
+(is)e(prin)m(ted.)39 b(If)630 2550 y Ft(getopts)28 b
Fu(is)h(silen)m(t,)i(then)e(a)h(colon)h(\(`)p Ft(:)p
Fu('\))f(is)g(placed)g(in)f Fr(name)35 b Fu(and)29 b
-Ft(OPTARG)f Fu(is)h(set)h(to)h(the)630 2162 y(option)g(c)m(haracter)h
-(found.)150 2326 y Ft(hash)870 2463 y(hash)47 b([-r])f([-p)h
-Fj(filename)p Ft(])e([-dt])i([)p Fj(name)p Ft(])630 2600
+Ft(OPTARG)f Fu(is)h(set)h(to)h(the)630 2659 y(option)g(c)m(haracter)h
+(found.)150 2836 y Ft(hash)870 2980 y(hash)47 b([-r])f([-p)h
+Fj(filename)p Ft(])e([-dt])i([)p Fj(name)p Ft(])630 3123
y Fu(Eac)m(h)32 b(time)g Ft(hash)e Fu(is)h(in)m(v)m(ok)m(ed,)j(it)d
(remem)m(b)s(ers)g(the)g(full)g(pathnames)g(of)h(the)f(commands)630
-2710 y(sp)s(eci\014ed)i(as)i Fr(name)k Fu(argumen)m(ts,)c(so)g(they)f
+3232 y(sp)s(eci\014ed)i(as)i Fr(name)k Fu(argumen)m(ts,)c(so)g(they)f
(need)g(not)g(b)s(e)f(searc)m(hed)i(for)f(on)g(subsequen)m(t)630
-2819 y(in)m(v)m(o)s(cations.)79 b(The)41 b(commands)h(are)h(found)e(b)m
-(y)h(searc)m(hing)i(through)d(the)i(directories)630 2929
+3342 y(in)m(v)m(o)s(cations.)79 b(The)41 b(commands)h(are)h(found)e(b)m
+(y)h(searc)m(hing)i(through)d(the)i(directories)630 3452
y(listed)37 b(in)g Ft($PATH)p Fu(.)58 b(An)m(y)37 b(previously-remem)m
(b)s(ered)f(pathname)h(is)g(discarded.)59 b(The)37 b
-Ft(-p)630 3039 y Fu(option)d(inhibits)f(the)h(path)g(searc)m(h,)h(and)e
+Ft(-p)630 3561 y Fu(option)d(inhibits)f(the)h(path)g(searc)m(h,)h(and)e
Fr(\014lename)39 b Fu(is)34 b(used)f(as)h(the)f(lo)s(cation)j(of)e
-Fr(name)p Fu(.)630 3148 y(The)42 b Ft(-r)g Fu(option)h(causes)f(the)h
+Fr(name)p Fu(.)630 3671 y(The)42 b Ft(-r)g Fu(option)h(causes)f(the)h
(shell)g(to)g(forget)g(all)h(remem)m(b)s(ered)d(lo)s(cations.)79
-b(The)42 b Ft(-d)630 3258 y Fu(option)31 b(causes)g(the)f(shell)h(to)g
+b(The)42 b Ft(-d)630 3780 y Fu(option)31 b(causes)g(the)f(shell)h(to)g
(forget)h(the)f(remem)m(b)s(ered)e(lo)s(cation)j(of)f(eac)m(h)h
-Fr(name)p Fu(.)41 b(If)30 b(the)630 3367 y Ft(-t)39 b
+Fr(name)p Fu(.)41 b(If)30 b(the)630 3890 y Ft(-t)39 b
Fu(option)h(is)g(supplied,)g(the)g(full)f(pathname)h(to)g(whic)m(h)f
-(eac)m(h)i Fr(name)k Fu(corresp)s(onds)38 b(is)630 3477
+(eac)m(h)i Fr(name)k Fu(corresp)s(onds)38 b(is)630 4000
y(prin)m(ted.)i(If)28 b(m)m(ultiple)h Fr(name)34 b Fu(argumen)m(ts)29
b(are)g(supplied)f(with)g Ft(-t)p Fu(,)h(the)g Fr(name)34
-b Fu(is)28 b(prin)m(ted)630 3587 y(b)s(efore)h(the)i(hashed)e(full)g
+b Fu(is)28 b(prin)m(ted)630 4109 y(b)s(efore)h(the)i(hashed)e(full)g
(pathname.)41 b(The)29 b Ft(-l)g Fu(option)i(causes)f(output)f(to)i(b)s
-(e)e(displa)m(y)m(ed)630 3696 y(in)23 b(a)h(format)g(that)g(ma)m(y)g(b)
+(e)e(displa)m(y)m(ed)630 4219 y(in)23 b(a)h(format)g(that)g(ma)m(y)g(b)
s(e)f(reused)f(as)i(input.)37 b(If)23 b(no)h(argumen)m(ts)f(are)h(giv)m
-(en,)i(or)e(if)f(only)h Ft(-l)630 3806 y Fu(is)35 b(supplied,)f
+(en,)i(or)e(if)f(only)h Ft(-l)630 4328 y Fu(is)35 b(supplied,)f
(information)h(ab)s(out)g(remem)m(b)s(ered)f(commands)g(is)h(prin)m
-(ted.)53 b(The)34 b(return)630 3915 y(status)d(is)f(zero)h(unless)f(a)h
+(ted.)53 b(The)34 b(return)630 4438 y(status)d(is)f(zero)h(unless)f(a)h
Fr(name)k Fu(is)c(not)f(found)f(or)i(an)f(in)m(v)-5 b(alid)31
-b(option)g(is)f(supplied.)150 4080 y Ft(pwd)870 4217
-y(pwd)47 b([-LP])630 4354 y Fu(Prin)m(t)29 b(the)g(absolute)h(pathname)
+b(option)g(is)f(supplied.)150 4615 y Ft(pwd)870 4758
+y(pwd)47 b([-LP])630 4902 y Fu(Prin)m(t)29 b(the)g(absolute)h(pathname)
e(of)h(the)h(curren)m(t)e(w)m(orking)h(directory)-8 b(.)42
-b(If)28 b(the)h Ft(-P)f Fu(option)630 4463 y(is)39 b(supplied,)h(the)f
+b(If)28 b(the)h Ft(-P)f Fu(option)630 5011 y(is)39 b(supplied,)h(the)f
(pathname)g(prin)m(ted)g(will)g(not)h(con)m(tain)g(sym)m(b)s(olic)f
-(links.)67 b(If)38 b(the)i Ft(-L)630 4573 y Fu(option)k(is)g(supplied,)
+(links.)67 b(If)38 b(the)i Ft(-L)630 5121 y Fu(option)k(is)g(supplied,)
i(the)e(pathname)f(prin)m(ted)h(ma)m(y)g(con)m(tain)h(sym)m(b)s(olic)f
-(links.)80 b(The)630 4682 y(return)26 b(status)h(is)h(zero)g(unless)e
+(links.)80 b(The)630 5230 y(return)26 b(status)h(is)h(zero)g(unless)e
(an)h(error)g(is)g(encoun)m(tered)g(while)h(determining)f(the)g(name)
-630 4792 y(of)k(the)f(curren)m(t)g(directory)h(or)f(an)h(in)m(v)-5
-b(alid)31 b(option)g(is)f(supplied.)150 4956 y Ft(readonly)870
-5093 y(readonly)46 b([-aAf])g([-p])g([)p Fj(name)p Ft([=)p
-Fj(value)p Ft(]])e(...)630 5230 y Fu(Mark)33 b(eac)m(h)h
+630 5340 y(of)k(the)f(curren)m(t)g(directory)h(or)f(an)h(in)m(v)-5
+b(alid)31 b(option)g(is)f(supplied.)p eop end
+%%Page: 52 58
+TeXDict begin 52 57 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(52)150 299 y Ft(readonly)870
+432 y(readonly)46 b([-aAf])g([-p])g([)p Fj(name)p Ft([=)p
+Fj(value)p Ft(]])e(...)630 565 y Fu(Mark)33 b(eac)m(h)h
Fr(name)39 b Fu(as)33 b(readonly)-8 b(.)49 b(The)32 b(v)-5
b(alues)34 b(of)f(these)g(names)g(ma)m(y)h(not)f(b)s(e)f(c)m(hanged)630
-5340 y(b)m(y)38 b(subsequen)m(t)g(assignmen)m(t.)65 b(If)38
+675 y(b)m(y)38 b(subsequen)m(t)g(assignmen)m(t.)65 b(If)38
b(the)h Ft(-f)f Fu(option)g(is)h(supplied,)g(eac)m(h)h
-Fr(name)j Fu(refers)38 b(to)p eop end
-%%Page: 48 54
-TeXDict begin 48 53 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(48)630 299 y(a)37
-b(shell)g(function.)59 b(The)36 b Ft(-a)g Fu(option)h(means)f(eac)m(h)i
-Fr(name)k Fu(refers)36 b(to)h(an)f(indexed)g(arra)m(y)630
-408 y(v)-5 b(ariable;)28 b(the)f Ft(-A)e Fu(option)h(means)g(eac)m(h)h
+Fr(name)j Fu(refers)38 b(to)630 784 y(a)f(shell)g(function.)59
+b(The)36 b Ft(-a)g Fu(option)h(means)f(eac)m(h)i Fr(name)k
+Fu(refers)36 b(to)h(an)f(indexed)g(arra)m(y)630 894 y(v)-5
+b(ariable;)28 b(the)f Ft(-A)e Fu(option)h(means)g(eac)m(h)h
Fr(name)k Fu(refers)26 b(to)g(an)g(asso)s(ciativ)m(e)i(arra)m(y)f(v)-5
-b(ariable.)630 518 y(If)35 b(b)s(oth)g(options)h(are)h(supplied,)f
+b(ariable.)630 1003 y(If)35 b(b)s(oth)g(options)h(are)h(supplied,)f
Ft(-A)f Fu(tak)m(es)i(precedence.)58 b(If)35 b(no)h Fr(name)k
-Fu(argumen)m(ts)d(are)630 628 y(giv)m(en,)k(or)c(if)h(the)g
+Fu(argumen)m(ts)d(are)630 1113 y(giv)m(en,)k(or)c(if)h(the)g
Ft(-p)f Fu(option)h(is)f(supplied,)i(a)f(list)g(of)g(all)g(readonly)g
-(names)f(is)h(prin)m(ted.)630 737 y(The)32 b(other)g(options)g(ma)m(y)h
-(b)s(e)f(used)f(to)i(restrict)g(the)f(output)g(to)h(a)f(subset)g(of)g
-(the)g(set)h(of)630 847 y(readonly)c(names.)41 b(The)28
+(names)f(is)h(prin)m(ted.)630 1223 y(The)32 b(other)g(options)g(ma)m(y)
+h(b)s(e)f(used)f(to)i(restrict)g(the)f(output)g(to)h(a)f(subset)g(of)g
+(the)g(set)h(of)630 1332 y(readonly)c(names.)41 b(The)28
b Ft(-p)h Fu(option)h(causes)g(output)e(to)j(b)s(e)d(displa)m(y)m(ed)i
-(in)f(a)h(format)f(that)630 956 y(ma)m(y)j(b)s(e)e(reused)g(as)i
+(in)f(a)h(format)f(that)630 1442 y(ma)m(y)j(b)s(e)e(reused)g(as)i
(input.)42 b(If)30 b(a)i(v)-5 b(ariable)31 b(name)h(is)f(follo)m(w)m
(ed)h(b)m(y)f(=)p Fr(v)-5 b(alue)p Fu(,)32 b(the)f(v)-5
-b(alue)32 b(of)630 1066 y(the)i(v)-5 b(ariable)34 b(is)f(set)i(to)f
+b(alue)32 b(of)630 1551 y(the)i(v)-5 b(ariable)34 b(is)f(set)i(to)f
Fr(v)-5 b(alue)p Fu(.)50 b(The)33 b(return)g(status)g(is)h(zero)g
-(unless)f(an)g(in)m(v)-5 b(alid)34 b(option)630 1176
+(unless)f(an)g(in)m(v)-5 b(alid)34 b(option)630 1661
y(is)c(supplied,)f(one)h(of)g(the)g Fr(name)35 b Fu(argumen)m(ts)30
b(is)g(not)g(a)g(v)-5 b(alid)31 b(shell)f(v)-5 b(ariable)30
-b(or)g(function)630 1285 y(name,)h(or)f(the)h Ft(-f)e
+b(or)g(function)630 1771 y(name,)h(or)f(the)h Ft(-f)e
Fu(option)i(is)g(supplied)e(with)h(a)h(name)f(that)h(is)f(not)h(a)g
-(shell)f(function.)150 1462 y Ft(return)870 1606 y(return)46
-b([)p Fj(n)p Ft(])630 1749 y Fu(Cause)37 b(a)g(shell)h(function)f(to)g
+(shell)f(function.)150 1927 y Ft(return)870 2060 y(return)46
+b([)p Fj(n)p Ft(])630 2193 y Fu(Cause)37 b(a)g(shell)h(function)f(to)g
(stop)h(executing)g(and)e(return)h(the)g(v)-5 b(alue)37
-b Fr(n)g Fu(to)h(its)f(caller.)630 1858 y(If)h Fr(n)h
+b Fr(n)g Fu(to)h(its)f(caller.)630 2303 y(If)h Fr(n)h
Fu(is)g(not)g(supplied,)h(the)f(return)e(v)-5 b(alue)40
b(is)f(the)g(exit)g(status)g(of)g(the)g(last)h(command)630
-1968 y(executed)i(in)f(the)g(function.)72 b(If)41 b Ft(return)e
+2412 y(executed)i(in)f(the)g(function.)72 b(If)41 b Ft(return)e
Fu(is)i(executed)h(b)m(y)f(a)h(trap)f(handler,)i(the)e(last)630
-2078 y(command)d(used)f(to)i(determine)f(the)g(status)g(is)h(the)f
-(last)h(command)e(executed)i(b)s(efore)630 2187 y(the)27
+2522 y(command)d(used)f(to)i(determine)f(the)g(status)g(is)h(the)f
+(last)h(command)e(executed)i(b)s(efore)630 2632 y(the)27
b(trap)g(handler.)39 b(If)26 b Ft(return)g Fu(is)h(executed)h(during)d
-(a)j Ft(DEBUG)d Fu(trap,)j(the)f(last)h(command)630 2297
+(a)j Ft(DEBUG)d Fu(trap,)j(the)f(last)h(command)630 2741
y(used)f(to)h(determine)g(the)f(status)h(is)g(the)f(last)i(command)e
-(executed)h(b)m(y)g(the)f(trap)h(handler)630 2406 y(b)s(efore)e
+(executed)h(b)m(y)g(the)f(trap)h(handler)630 2851 y(b)s(efore)e
Ft(return)f Fu(w)m(as)i(in)m(v)m(ok)m(ed.)41 b Ft(return)25
b Fu(ma)m(y)i(also)g(b)s(e)f(used)g(to)h(terminate)h(execution)g(of)630
-2516 y(a)34 b(script)g(b)s(eing)g(executed)g(with)g(the)g
+2960 y(a)34 b(script)g(b)s(eing)g(executed)g(with)g(the)g
Ft(.)g Fu(\()p Ft(source)p Fu(\))f(builtin,)h(returning)f(either)i
-Fr(n)e Fu(or)h(the)630 2626 y(exit)j(status)f(of)g(the)g(last)h
+Fr(n)e Fu(or)h(the)630 3070 y(exit)j(status)f(of)g(the)g(last)h
(command)e(executed)i(within)e(the)h(script)g(as)g(the)g(exit)h(status)
-630 2735 y(of)i(the)g(script.)65 b(If)38 b Fr(n)g Fu(is)h(supplied,)h
+630 3180 y(of)i(the)g(script.)65 b(If)38 b Fr(n)g Fu(is)h(supplied,)h
(the)f(return)e(v)-5 b(alue)39 b(is)g(its)g(least)h(signi\014can)m(t)g
-(8)f(bits.)630 2845 y(An)m(y)g(command)f(asso)s(ciated)j(with)d(the)h
+(8)f(bits.)630 3289 y(An)m(y)g(command)f(asso)s(ciated)j(with)d(the)h
Ft(RETURN)e Fu(trap)i(is)g(executed)g(b)s(efore)g(execution)630
-2954 y(resumes)29 b(after)h(the)g(function)g(or)g(script.)40
+3399 y(resumes)29 b(after)h(the)g(function)g(or)g(script.)40
b(The)29 b(return)g(status)h(is)g(non-zero)g(if)g Ft(return)e
-Fu(is)630 3064 y(supplied)h(a)i(non-n)m(umeric)g(argumen)m(t)g(or)f(is)
+Fu(is)630 3508 y(supplied)h(a)i(non-n)m(umeric)g(argumen)m(t)g(or)f(is)
h(used)f(outside)h(a)g(function)f(and)g(not)h(during)630
-3173 y(the)g(execution)g(of)g(a)f(script)h(b)m(y)f Ft(.)g
-Fu(or)g Ft(source)p Fu(.)150 3351 y Ft(shift)870 3494
-y(shift)46 b([)p Fj(n)p Ft(])630 3637 y Fu(Shift)41 b(the)g(p)s
+3618 y(the)g(execution)g(of)g(a)f(script)h(b)m(y)f Ft(.)g
+Fu(or)g Ft(source)p Fu(.)150 3774 y Ft(shift)870 3907
+y(shift)46 b([)p Fj(n)p Ft(])630 4041 y Fu(Shift)41 b(the)g(p)s
(ositional)h(parameters)g(to)g(the)f(left)h(b)m(y)g Fr(n)p
-Fu(.)73 b(The)40 b(p)s(ositional)j(parameters)630 3747
+Fu(.)73 b(The)40 b(p)s(ositional)j(parameters)630 4150
y(from)34 b Fr(n)p Ft(+)p Fu(1)39 b(.)22 b(.)h(.)45 b
Ft($#)34 b Fu(are)g(renamed)g(to)h Ft($1)k Fu(.)22 b(.)g(.)46
b Ft($#)p Fu(-)p Fr(n)p Fu(.)51 b(P)m(arameters)36 b(represen)m(ted)e
-(b)m(y)g(the)630 3856 y(n)m(um)m(b)s(ers)d Ft($#)i Fu(do)m(wn)f(to)i
+(b)m(y)g(the)630 4260 y(n)m(um)m(b)s(ers)d Ft($#)i Fu(do)m(wn)f(to)i
Ft($#)p Fu(-)p Fr(n)p Ft(+)p Fu(1)e(are)h(unset.)48 b
Fr(n)32 b Fu(m)m(ust)h(b)s(e)f(a)h(non-negativ)m(e)i(n)m(um)m(b)s(er)d
-(less)630 3966 y(than)g(or)g(equal)h(to)g Ft($#)p Fu(.)46
+(less)630 4369 y(than)g(or)g(equal)h(to)g Ft($#)p Fu(.)46
b(If)31 b Fr(n)h Fu(is)g(zero)h(or)f(greater)i(than)e
-Ft($#)p Fu(,)g(the)h(p)s(ositional)g(parameters)630 4075
+Ft($#)p Fu(,)g(the)h(p)s(ositional)g(parameters)630 4479
y(are)e(not)h(c)m(hanged.)43 b(If)31 b Fr(n)g Fu(is)g(not)g(supplied,)f
(it)i(is)f(assumed)f(to)i(b)s(e)f(1.)43 b(The)31 b(return)f(status)630
-4185 y(is)g(zero)i(unless)d Fr(n)h Fu(is)g(greater)i(than)e
+4589 y(is)g(zero)i(unless)d Fr(n)h Fu(is)g(greater)i(than)e
Ft($#)g Fu(or)g(less)h(than)f(zero,)i(non-zero)e(otherwise.)150
-4362 y Ft(test)150 4472 y([)870 4615 y(test)47 b Fj(expr)630
-4758 y Fu(Ev)-5 b(aluate)43 b(a)f(conditional)h(expression)f
+4745 y Ft(test)150 4855 y([)870 4988 y(test)47 b Fj(expr)630
+5121 y Fu(Ev)-5 b(aluate)43 b(a)f(conditional)h(expression)f
Fr(expr)48 b Fu(and)41 b(return)g(a)h(status)g(of)g(0)g(\(true\))h(or)f
-(1)630 4868 y(\(false\).)g(Eac)m(h)31 b(op)s(erator)f(and)f(op)s(erand)
+(1)630 5230 y(\(false\).)g(Eac)m(h)31 b(op)s(erator)f(and)f(op)s(erand)
g(m)m(ust)h(b)s(e)f(a)i(separate)g(argumen)m(t.)41 b(Expressions)630
-4977 y(are)26 b(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s
-(elo)m(w)h(in)g(Section)h(6.4)h([Bash)e(Conditional)630
-5087 y(Expressions],)39 b(page)g(91.)64 b Ft(test)37
-b Fu(do)s(es)g(not)h(accept)i(an)m(y)e(options,)i(nor)e(do)s(es)f(it)h
-(accept)630 5197 y(and)30 b(ignore)h(an)f(argumen)m(t)h(of)f
-Ft(--)g Fu(as)h(signifying)f(the)h(end)f(of)g(options.)630
-5340 y(When)g(the)h Ft([)f Fu(form)g(is)g(used,)g(the)g(last)i(argumen)
-m(t)e(to)i(the)e(command)g(m)m(ust)h(b)s(e)e(a)i Ft(])p
-Fu(.)p eop end
-%%Page: 49 55
-TeXDict begin 49 54 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(49)630 299 y(Expressions)23
-b(ma)m(y)h(b)s(e)e(com)m(bined)i(using)f(the)h(follo)m(wing)h(op)s
-(erators,)g(listed)f(in)f(decreasing)630 408 y(order)30
-b(of)h(precedence.)43 b(The)30 b(ev)-5 b(aluation)33
-b(dep)s(ends)28 b(on)j(the)g(n)m(um)m(b)s(er)f(of)h(argumen)m(ts;)g
-(see)630 518 y(b)s(elo)m(w.)41 b(Op)s(erator)30 b(precedence)h(is)f
-(used)g(when)f(there)i(are)f(\014v)m(e)h(or)f(more)h(argumen)m(ts.)630
-673 y Ft(!)f Fj(expr)210 b Fu(T)-8 b(rue)30 b(if)g Fr(expr)37
-b Fu(is)30 b(false.)630 829 y Ft(\()g Fj(expr)f Ft(\))133
-b Fu(Returns)23 b(the)i(v)-5 b(alue)25 b(of)f Fr(expr)p
-Fu(.)38 b(This)24 b(ma)m(y)h(b)s(e)e(used)h(to)h(o)m(v)m(erride)g(the)g
-(normal)1110 938 y(precedence)31 b(of)f(op)s(erators.)630
-1093 y Fj(expr1)f Ft(-a)h Fj(expr2)1110 1203 y Fu(T)-8
-b(rue)30 b(if)g(b)s(oth)g Fr(expr1)37 b Fu(and)30 b Fr(expr2)38
-b Fu(are)30 b(true.)630 1358 y Fj(expr1)f Ft(-o)h Fj(expr2)1110
-1468 y Fu(T)-8 b(rue)30 b(if)g(either)h Fr(expr1)38 b
-Fu(or)30 b Fr(expr2)37 b Fu(is)31 b(true.)630 1623 y(The)37
-b Ft(test)f Fu(and)g Ft([)h Fu(builtins)g(ev)-5 b(aluate)39
-b(conditional)f(expressions)f(using)g(a)g(set)h(of)f(rules)630
-1733 y(based)30 b(on)g(the)h(n)m(um)m(b)s(er)e(of)h(argumen)m(ts.)630
-1888 y(0)h(argumen)m(ts)1110 1998 y(The)f(expression)g(is)g(false.)630
-2153 y(1)h(argumen)m(t)1110 2262 y(The)f(expression)g(is)g(true)h(if,)f
-(and)g(only)g(if,)h(the)g(argumen)m(t)f(is)h(not)f(n)m(ull.)630
-2418 y(2)h(argumen)m(ts)1110 2527 y(If)f(the)h(\014rst)f(argumen)m(t)h
-(is)g(`)p Ft(!)p Fu(',)g(the)g(expression)g(is)g(true)f(if)h(and)f
-(only)h(if)g(the)1110 2637 y(second)j(argumen)m(t)f(is)h(n)m(ull.)50
-b(If)33 b(the)h(\014rst)e(argumen)m(t)i(is)g(one)g(of)f(the)h(unary)
-1110 2746 y(conditional)42 b(op)s(erators)f(\(see)g(Section)h(6.4)f
-([Bash)g(Conditional)g(Expres-)1110 2856 y(sions],)34
-b(page)f(91\),)i(the)e(expression)f(is)h(true)g(if)g(the)g(unary)e
-(test)j(is)f(true.)47 b(If)1110 2966 y(the)33 b(\014rst)g(argumen)m(t)h
-(is)f(not)g(a)h(v)-5 b(alid)34 b(unary)e(op)s(erator,)i(the)g
-(expression)f(is)1110 3075 y(false.)630 3230 y(3)e(argumen)m(ts)1110
-3340 y(The)f(follo)m(wing)i(conditions)f(are)f(applied)h(in)f(the)g
-(order)g(listed.)1159 3472 y(1.)61 b(If)29 b(the)g(second)g(argumen)m
-(t)h(is)f(one)h(of)f(the)h(binary)e(conditional)j(op)s(era-)1290
-3582 y(tors)c(\(see)h(Section)g(6.4)g([Bash)g(Conditional)f
-(Expressions],)h(page)f(91\),)1290 3692 y(the)d(result)g(of)f(the)h
-(expression)g(is)g(the)f(result)h(of)g(the)g(binary)f(test)h(using)1290
-3801 y(the)35 b(\014rst)e(and)h(third)g(argumen)m(ts)h(as)f(op)s
-(erands.)52 b(The)34 b(`)p Ft(-a)p Fu(')g(and)g(`)p Ft(-o)p
-Fu(')1290 3911 y(op)s(erators)24 b(are)g(considered)g(binary)f(op)s
-(erators)h(when)f(there)h(are)h(three)1290 4020 y(argumen)m(ts.)1159
-4153 y(2.)61 b(If)41 b(the)h(\014rst)e(argumen)m(t)i(is)f(`)p
+5340 y(are)26 b(comp)s(osed)f(of)g(the)h(primaries)f(describ)s(ed)f(b)s
+(elo)m(w)h(in)g(Section)h(6.4)h([Bash)e(Conditional)p
+eop end
+%%Page: 53 59
+TeXDict begin 53 58 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(53)630 299 y(Expressions],)39
+b(page)g(96.)64 b Ft(test)37 b Fu(do)s(es)g(not)h(accept)i(an)m(y)e
+(options,)i(nor)e(do)s(es)f(it)h(accept)630 408 y(and)30
+b(ignore)h(an)f(argumen)m(t)h(of)f Ft(--)g Fu(as)h(signifying)f(the)h
+(end)f(of)g(options.)630 550 y(When)g(the)h Ft([)f Fu(form)g(is)g
+(used,)g(the)g(last)i(argumen)m(t)e(to)i(the)e(command)g(m)m(ust)h(b)s
+(e)e(a)i Ft(])p Fu(.)630 692 y(Expressions)23 b(ma)m(y)h(b)s(e)e(com)m
+(bined)i(using)f(the)h(follo)m(wing)h(op)s(erators,)g(listed)f(in)f
+(decreasing)630 801 y(order)30 b(of)h(precedence.)43
+b(The)30 b(ev)-5 b(aluation)33 b(dep)s(ends)28 b(on)j(the)g(n)m(um)m(b)
+s(er)f(of)h(argumen)m(ts;)g(see)630 911 y(b)s(elo)m(w.)41
+b(Op)s(erator)30 b(precedence)h(is)f(used)g(when)f(there)i(are)f(\014v)
+m(e)h(or)f(more)h(argumen)m(ts.)630 1084 y Ft(!)f Fj(expr)210
+b Fu(T)-8 b(rue)30 b(if)g Fr(expr)37 b Fu(is)30 b(false.)630
+1258 y Ft(\()g Fj(expr)f Ft(\))133 b Fu(Returns)23 b(the)i(v)-5
+b(alue)25 b(of)f Fr(expr)p Fu(.)38 b(This)24 b(ma)m(y)h(b)s(e)e(used)h
+(to)h(o)m(v)m(erride)g(the)g(normal)1110 1367 y(precedence)31
+b(of)f(op)s(erators.)630 1541 y Fj(expr1)f Ft(-a)h Fj(expr2)1110
+1650 y Fu(T)-8 b(rue)30 b(if)g(b)s(oth)g Fr(expr1)37
+b Fu(and)30 b Fr(expr2)38 b Fu(are)30 b(true.)630 1824
+y Fj(expr1)f Ft(-o)h Fj(expr2)1110 1934 y Fu(T)-8 b(rue)30
+b(if)g(either)h Fr(expr1)38 b Fu(or)30 b Fr(expr2)37
+b Fu(is)31 b(true.)630 2107 y(The)37 b Ft(test)f Fu(and)g
+Ft([)h Fu(builtins)g(ev)-5 b(aluate)39 b(conditional)f(expressions)f
+(using)g(a)g(set)h(of)f(rules)630 2217 y(based)30 b(on)g(the)h(n)m(um)m
+(b)s(er)e(of)h(argumen)m(ts.)630 2390 y(0)h(argumen)m(ts)1110
+2500 y(The)f(expression)g(is)g(false.)630 2673 y(1)h(argumen)m(t)1110
+2783 y(The)f(expression)g(is)g(true)h(if,)f(and)g(only)g(if,)h(the)g
+(argumen)m(t)f(is)h(not)f(n)m(ull.)630 2956 y(2)h(argumen)m(ts)1110
+3066 y(If)f(the)h(\014rst)f(argumen)m(t)h(is)g(`)p Ft(!)p
+Fu(',)g(the)g(expression)g(is)g(true)f(if)h(and)f(only)h(if)g(the)1110
+3176 y(second)j(argumen)m(t)f(is)h(n)m(ull.)50 b(If)33
+b(the)h(\014rst)e(argumen)m(t)i(is)g(one)g(of)f(the)h(unary)1110
+3285 y(conditional)42 b(op)s(erators)f(\(see)g(Section)h(6.4)f([Bash)g
+(Conditional)g(Expres-)1110 3395 y(sions],)34 b(page)f(96\),)i(the)e
+(expression)f(is)h(true)g(if)g(the)g(unary)e(test)j(is)f(true.)47
+b(If)1110 3504 y(the)33 b(\014rst)g(argumen)m(t)h(is)f(not)g(a)h(v)-5
+b(alid)34 b(unary)e(op)s(erator,)i(the)g(expression)f(is)1110
+3614 y(false.)630 3787 y(3)e(argumen)m(ts)1110 3897 y(The)f(follo)m
+(wing)i(conditions)f(are)f(applied)h(in)f(the)g(order)g(listed.)1159
+4039 y(1.)61 b(If)29 b(the)g(second)g(argumen)m(t)h(is)f(one)h(of)f
+(the)h(binary)e(conditional)j(op)s(era-)1290 4148 y(tors)c(\(see)h
+(Section)g(6.4)g([Bash)g(Conditional)f(Expressions],)h(page)f(96\),)
+1290 4258 y(the)d(result)g(of)f(the)h(expression)g(is)g(the)f(result)h
+(of)g(the)g(binary)f(test)h(using)1290 4367 y(the)35
+b(\014rst)e(and)h(third)g(argumen)m(ts)h(as)f(op)s(erands.)52
+b(The)34 b(`)p Ft(-a)p Fu(')g(and)g(`)p Ft(-o)p Fu(')1290
+4477 y(op)s(erators)24 b(are)g(considered)g(binary)f(op)s(erators)h
+(when)f(there)h(are)h(three)1290 4587 y(argumen)m(ts.)1159
+4728 y(2.)61 b(If)41 b(the)h(\014rst)e(argumen)m(t)i(is)f(`)p
Ft(!)p Fu(',)k(the)d(v)-5 b(alue)41 b(is)h(the)f(negation)i(of)f(the)
-1290 4262 y(t)m(w)m(o-argumen)m(t)33 b(test)e(using)f(the)g(second)h
-(and)e(third)h(argumen)m(ts.)1159 4395 y(3.)61 b(If)35
+1290 4838 y(t)m(w)m(o-argumen)m(t)33 b(test)e(using)f(the)g(second)h
+(and)e(third)h(argumen)m(ts.)1159 4979 y(3.)61 b(If)35
b(the)h(\014rst)e(argumen)m(t)i(is)g(exactly)h(`)p Ft(\()p
-Fu(')f(and)f(the)g(third)g(argumen)m(t)h(is)1290 4504
+Fu(')f(and)f(the)g(third)g(argumen)m(t)h(is)1290 5089
y(exactly)i(`)p Ft(\))p Fu(',)g(the)f(result)f(is)h(the)f(one-argumen)m
-(t)i(test)f(of)f(the)h(second)1290 4614 y(argumen)m(t.)1159
-4746 y(4.)61 b(Otherwise,)30 b(the)h(expression)f(is)g(false.)630
-4902 y(4)h(argumen)m(ts)1110 5011 y(If)h(the)i(\014rst)e(argumen)m(t)h
-(is)g(`)p Ft(!)p Fu(',)h(the)f(result)g(is)g(the)g(negation)h(of)f(the)
-g(three-)1110 5121 y(argumen)m(t)h(expression)f(comp)s(osed)h(of)f(the)
-h(remaining)g(argumen)m(ts.)50 b(Oth-)1110 5230 y(erwise,)34
-b(the)f(expression)g(is)g(parsed)g(and)f(ev)-5 b(aluated)34
-b(according)h(to)e(prece-)1110 5340 y(dence)e(using)e(the)i(rules)f
-(listed)h(ab)s(o)m(v)m(e.)p eop end
-%%Page: 50 56
-TeXDict begin 50 55 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(50)630 299 y(5)31
-b(or)f(more)h(argumen)m(ts)1110 408 y(The)43 b(expression)f(is)i
-(parsed)e(and)g(ev)-5 b(aluated)45 b(according)f(to)f(precedence)1110
-518 y(using)30 b(the)g(rules)g(listed)h(ab)s(o)m(v)m(e.)630
-690 y(When)40 b(used)f(with)g Ft(test)g Fu(or)h(`)p Ft([)p
-Fu(',)j(the)d(`)p Ft(<)p Fu(')g(and)f(`)p Ft(>)p Fu(')h(op)s(erators)g
-(sort)g(lexicographically)630 800 y(using)30 b(ASCI)s(I)f(ordering.)150
-972 y Ft(times)870 1113 y(times)630 1254 y Fu(Prin)m(t)37
-b(out)h(the)g(user)e(and)h(system)g(times)h(used)f(b)m(y)g(the)h(shell)
-f(and)g(its)h(c)m(hildren.)61 b(The)630 1363 y(return)29
-b(status)i(is)f(zero.)150 1536 y Ft(trap)870 1677 y(trap)47
-b([-lp])f([)p Fj(arg)p Ft(])g([)p Fj(sigspec)g Ft(...)o(])630
-1817 y Fu(The)d(commands)f(in)h Fr(arg)51 b Fu(are)44
-b(to)g(b)s(e)e(read)h(and)g(executed)h(when)e(the)h(shell)g(receiv)m
-(es)630 1927 y(signal)36 b Fr(sigsp)s(ec)p Fu(.)57 b(If)35
-b Fr(arg)44 b Fu(is)36 b(absen)m(t)g(\(and)f(there)h(is)g(a)f(single)i
-Fr(sigsp)s(ec)6 b Fu(\))35 b(or)h(equal)g(to)h(`)p Ft(-)p
-Fu(',)630 2037 y(eac)m(h)k(sp)s(eci\014ed)e(signal's)h(disp)s(osition)g
-(is)f(reset)i(to)f(the)g(v)-5 b(alue)40 b(it)g(had)f(when)g(the)h
-(shell)630 2146 y(w)m(as)33 b(started.)47 b(If)32 b Fr(arg)41
-b Fu(is)32 b(the)h(n)m(ull)f(string,)i(then)e(the)g(signal)i(sp)s
-(eci\014ed)d(b)m(y)i(eac)m(h)g Fr(sigsp)s(ec)630 2256
-y Fu(is)g(ignored)h(b)m(y)f(the)g(shell)h(and)e(commands)h(it)h(in)m(v)
-m(ok)m(es.)51 b(If)33 b Fr(arg)41 b Fu(is)33 b(not)h(presen)m(t)f(and)g
-Ft(-p)630 2365 y Fu(has)g(b)s(een)g(supplied,)f(the)i(shell)f(displa)m
-(ys)h(the)f(trap)g(commands)g(asso)s(ciated)i(with)e(eac)m(h)630
-2475 y Fr(sigsp)s(ec)p Fu(.)47 b(If)31 b(no)i(argumen)m(ts)f(are)h
-(supplied,)e(or)i(only)f Ft(-p)g Fu(is)g(giv)m(en,)i
-Ft(trap)d Fu(prin)m(ts)h(the)g(list)630 2585 y(of)c(commands)f(asso)s
-(ciated)i(with)f(eac)m(h)h(signal)f(n)m(um)m(b)s(er)e(in)i(a)g(form)f
-(that)h(ma)m(y)h(b)s(e)e(reused)630 2694 y(as)f(shell)h(input.)38
-b(The)26 b Ft(-l)f Fu(option)i(causes)f(the)g(shell)h(to)g(prin)m(t)e
-(a)i(list)f(of)h(signal)g(names)f(and)630 2804 y(their)33
-b(corresp)s(onding)f(n)m(um)m(b)s(ers.)47 b(Eac)m(h)34
-b Fr(sigsp)s(ec)39 b Fu(is)33 b(either)g(a)h(signal)g(name)f(or)g(a)g
-(signal)630 2913 y(n)m(um)m(b)s(er.)39 b(Signal)31 b(names)f(are)h
-(case)h(insensitiv)m(e)f(and)f(the)g Ft(SIG)g Fu(pre\014x)f(is)i
-(optional.)630 3054 y(If)k(a)g Fr(sigsp)s(ec)41 b Fu(is)35
-b Ft(0)g Fu(or)g Ft(EXIT)p Fu(,)g Fr(arg)43 b Fu(is)35
-b(executed)h(when)e(the)h(shell)h(exits.)55 b(If)35 b(a)g
-Fr(sigsp)s(ec)41 b Fu(is)630 3164 y Ft(DEBUG)p Fu(,)32
-b(the)g(command)g Fr(arg)40 b Fu(is)33 b(executed)g(b)s(efore)f(ev)m
-(ery)h(simple)f(command,)h Ft(for)e Fu(com-)630 3273
-y(mand,)d Ft(case)g Fu(command,)h Ft(select)e Fu(command,)i(ev)m(ery)h
-(arithmetic)g Ft(for)d Fu(command,)j(and)630 3383 y(b)s(efore)22
-b(the)g(\014rst)f(command)h(executes)i(in)e(a)g(shell)h(function.)37
-b(Refer)22 b(to)h(the)g(description)f(of)630 3493 y(the)i
-Ft(extdebug)d Fu(option)j(to)h(the)f Ft(shopt)e Fu(builtin)h(\(see)i
-(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)630 3602
-y(page)33 b(66\))g(for)f(details)h(of)f(its)h(e\013ect)g(on)f(the)g
-Ft(DEBUG)f Fu(trap.)46 b(If)31 b(a)i Fr(sigsp)s(ec)38
-b Fu(is)32 b Ft(RETURN)p Fu(,)f(the)630 3712 y(command)h
+(t)i(test)f(of)f(the)h(second)1290 5198 y(argumen)m(t.)1159
+5340 y(4.)61 b(Otherwise,)30 b(the)h(expression)f(is)g(false.)p
+eop end
+%%Page: 54 60
+TeXDict begin 54 59 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(54)630 299 y(4)31
+b(argumen)m(ts)1110 408 y(The)f(follo)m(wing)i(conditions)f(are)f
+(applied)h(in)f(the)g(order)g(listed.)1159 544 y(1.)61
+b(If)39 b(the)i(\014rst)e(argumen)m(t)h(is)g(`)p Ft(!)p
+Fu(',)j(the)d(result)f(is)h(the)g(negation)i(of)e(the)1290
+653 y(three-argumen)m(t)k(expression)e(comp)s(osed)g(of)h(the)g
+(remaining)g(argu-)1290 763 y(men)m(ts.)1159 898 y(2.)61
+b(If)31 b(the)g(\014rst)f(argumen)m(t)i(is)f(exactly)i(`)p
+Ft(\()p Fu(')e(and)g(the)g(fourth)f(argumen)m(t)i(is)1290
+1008 y(exactly)38 b(`)p Ft(\))p Fu(',)f(the)f(result)g(is)g(the)g(t)m
+(w)m(o-argumen)m(t)i(test)f(of)f(the)g(second)1290 1118
+y(and)30 b(third)f(argumen)m(ts.)1159 1253 y(3.)61 b(Otherwise,)26
+b(the)f(expression)f(is)h(parsed)f(and)g(ev)-5 b(aluated)26
+b(according)g(to)1290 1363 y(precedence)31 b(using)f(the)g(rules)g
+(listed)h(ab)s(o)m(v)m(e.)630 1524 y(5)g(or)f(more)h(argumen)m(ts)1110
+1633 y(The)43 b(expression)f(is)i(parsed)e(and)g(ev)-5
+b(aluated)45 b(according)f(to)f(precedence)1110 1743
+y(using)30 b(the)g(rules)g(listed)h(ab)s(o)m(v)m(e.)630
+1904 y(When)40 b(used)f(with)g Ft(test)g Fu(or)h(`)p
+Ft([)p Fu(',)j(the)d(`)p Ft(<)p Fu(')g(and)f(`)p Ft(>)p
+Fu(')h(op)s(erators)g(sort)g(lexicographically)630 2014
+y(using)30 b(ASCI)s(I)f(ordering.)150 2175 y Ft(times)870
+2310 y(times)630 2446 y Fu(Prin)m(t)37 b(out)h(the)g(user)e(and)h
+(system)g(times)h(used)f(b)m(y)g(the)h(shell)f(and)g(its)h(c)m
+(hildren.)61 b(The)630 2555 y(return)29 b(status)i(is)f(zero.)150
+2716 y Ft(trap)870 2852 y(trap)47 b([-lp])f([)p Fj(arg)p
+Ft(])g([)p Fj(sigspec)g Ft(...)o(])630 2987 y Fu(The)d(commands)f(in)h
+Fr(arg)51 b Fu(are)44 b(to)g(b)s(e)e(read)h(and)g(executed)h(when)e
+(the)h(shell)g(receiv)m(es)630 3097 y(signal)36 b Fr(sigsp)s(ec)p
+Fu(.)57 b(If)35 b Fr(arg)44 b Fu(is)36 b(absen)m(t)g(\(and)f(there)h
+(is)g(a)f(single)i Fr(sigsp)s(ec)6 b Fu(\))35 b(or)h(equal)g(to)h(`)p
+Ft(-)p Fu(',)630 3206 y(eac)m(h)k(sp)s(eci\014ed)e(signal's)h(disp)s
+(osition)g(is)f(reset)i(to)f(the)g(v)-5 b(alue)40 b(it)g(had)f(when)g
+(the)h(shell)630 3316 y(w)m(as)33 b(started.)47 b(If)32
+b Fr(arg)41 b Fu(is)32 b(the)h(n)m(ull)f(string,)i(then)e(the)g(signal)
+i(sp)s(eci\014ed)d(b)m(y)i(eac)m(h)g Fr(sigsp)s(ec)630
+3425 y Fu(is)g(ignored)h(b)m(y)f(the)g(shell)h(and)e(commands)h(it)h
+(in)m(v)m(ok)m(es.)51 b(If)33 b Fr(arg)41 b Fu(is)33
+b(not)h(presen)m(t)f(and)g Ft(-p)630 3535 y Fu(has)g(b)s(een)g
+(supplied,)f(the)i(shell)f(displa)m(ys)h(the)f(trap)g(commands)g(asso)s
+(ciated)i(with)e(eac)m(h)630 3645 y Fr(sigsp)s(ec)p Fu(.)47
+b(If)31 b(no)i(argumen)m(ts)f(are)h(supplied,)e(or)i(only)f
+Ft(-p)g Fu(is)g(giv)m(en,)i Ft(trap)d Fu(prin)m(ts)h(the)g(list)630
+3754 y(of)c(commands)f(asso)s(ciated)i(with)f(eac)m(h)h(signal)f(n)m
+(um)m(b)s(er)e(in)i(a)g(form)f(that)h(ma)m(y)h(b)s(e)e(reused)630
+3864 y(as)f(shell)h(input.)38 b(The)26 b Ft(-l)f Fu(option)i(causes)f
+(the)g(shell)h(to)g(prin)m(t)e(a)i(list)f(of)h(signal)g(names)f(and)630
+3973 y(their)33 b(corresp)s(onding)f(n)m(um)m(b)s(ers.)47
+b(Eac)m(h)34 b Fr(sigsp)s(ec)39 b Fu(is)33 b(either)g(a)h(signal)g
+(name)f(or)g(a)g(signal)630 4083 y(n)m(um)m(b)s(er.)39
+b(Signal)31 b(names)f(are)h(case)h(insensitiv)m(e)f(and)f(the)g
+Ft(SIG)g Fu(pre\014x)f(is)i(optional.)630 4218 y(If)k(a)g
+Fr(sigsp)s(ec)41 b Fu(is)35 b Ft(0)g Fu(or)g Ft(EXIT)p
+Fu(,)g Fr(arg)43 b Fu(is)35 b(executed)h(when)e(the)h(shell)h(exits.)55
+b(If)35 b(a)g Fr(sigsp)s(ec)41 b Fu(is)630 4328 y Ft(DEBUG)p
+Fu(,)32 b(the)g(command)g Fr(arg)40 b Fu(is)33 b(executed)g(b)s(efore)f
+(ev)m(ery)h(simple)f(command,)h Ft(for)e Fu(com-)630
+4437 y(mand,)d Ft(case)g Fu(command,)h Ft(select)e Fu(command,)i(ev)m
+(ery)h(arithmetic)g Ft(for)d Fu(command,)j(and)630 4547
+y(b)s(efore)22 b(the)g(\014rst)f(command)h(executes)i(in)e(a)g(shell)h
+(function.)37 b(Refer)22 b(to)h(the)g(description)f(of)630
+4657 y(the)i Ft(extdebug)d Fu(option)j(to)h(the)f Ft(shopt)e
+Fu(builtin)h(\(see)i(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)630
+4766 y(page)33 b(71\))g(for)f(details)h(of)f(its)h(e\013ect)g(on)f(the)
+g Ft(DEBUG)f Fu(trap.)46 b(If)31 b(a)i Fr(sigsp)s(ec)38
+b Fu(is)32 b Ft(RETURN)p Fu(,)f(the)630 4876 y(command)h
Fr(arg)41 b Fu(is)33 b(executed)g(eac)m(h)h(time)f(a)g(shell)g
-(function)g(or)f(a)h(script)g(executed)g(with)630 3821
+(function)g(or)f(a)h(script)g(executed)g(with)630 4985
y(the)e Ft(.)f Fu(or)g Ft(source)f Fu(builtins)g(\014nishes)h
-(executing.)630 3962 y(If)20 b(a)i Fr(sigsp)s(ec)27 b
+(executing.)630 5121 y(If)20 b(a)i Fr(sigsp)s(ec)27 b
Fu(is)21 b Ft(ERR)p Fu(,)h(the)f(command)g Fr(arg)29
b Fu(is)21 b(executed)h(whenev)m(er)e(a)i(pip)s(eline)e(\(whic)m(h)h
-(ma)m(y)630 4072 y(consist)35 b(of)g(a)f(single)h(simple)g(command\),)h
+(ma)m(y)630 5230 y(consist)35 b(of)g(a)f(single)h(simple)g(command\),)h
(a)e(list,)j(or)d(a)h(comp)s(ound)e(command)h(returns)630
-4181 y(a)41 b(non-zero)g(exit)h(status,)h(sub)5 b(ject)41
+5340 y(a)41 b(non-zero)g(exit)h(status,)h(sub)5 b(ject)41
b(to)g(the)g(follo)m(wing)h(conditions.)72 b(The)40 b
-Ft(ERR)f Fu(trap)i(is)630 4291 y(not)c(executed)h(if)f(the)h(failed)f
-(command)g(is)g(part)g(of)h(the)f(command)g(list)h(immediately)630
-4401 y(follo)m(wing)30 b(an)e Ft(until)f Fu(or)i Ft(while)e
-Fu(k)m(eyw)m(ord,)i(part)g(of)f(the)h(test)g(follo)m(wing)h(the)f
-Ft(if)f Fu(or)g Ft(elif)630 4510 y Fu(reserv)m(ed)45
-b(w)m(ords,)j(part)c(of)h(a)g(command)g(executed)g(in)g(a)g
-Ft(&&)f Fu(or)h Ft(||)f Fu(list)h(except)h(the)630 4620
-y(command)28 b(follo)m(wing)j(the)d(\014nal)h Ft(&&)f
+Ft(ERR)f Fu(trap)i(is)p eop end
+%%Page: 55 61
+TeXDict begin 55 60 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(55)630 299 y(not)37
+b(executed)h(if)f(the)h(failed)f(command)g(is)g(part)g(of)h(the)f
+(command)g(list)h(immediately)630 408 y(follo)m(wing)30
+b(an)e Ft(until)f Fu(or)i Ft(while)e Fu(k)m(eyw)m(ord,)i(part)g(of)f
+(the)h(test)g(follo)m(wing)h(the)f Ft(if)f Fu(or)g Ft(elif)630
+518 y Fu(reserv)m(ed)45 b(w)m(ords,)j(part)c(of)h(a)g(command)g
+(executed)g(in)g(a)g Ft(&&)f Fu(or)h Ft(||)f Fu(list)h(except)h(the)630
+628 y(command)28 b(follo)m(wing)j(the)d(\014nal)h Ft(&&)f
Fu(or)g Ft(||)p Fu(,)h(an)m(y)g(command)f(in)h(a)g(pip)s(eline)f(but)g
-(the)h(last,)630 4729 y(or)d(if)g(the)f(command's)h(return)f(status)h
+(the)h(last,)630 737 y(or)d(if)g(the)f(command's)h(return)f(status)h
(is)g(b)s(eing)f(in)m(v)m(erted)i(using)e Ft(!)p Fu(.)39
-b(These)25 b(are)i(the)f(same)630 4839 y(conditions)31
+b(These)25 b(are)i(the)f(same)630 847 y(conditions)31
b(ob)s(ey)m(ed)f(b)m(y)h(the)f Ft(errexit)f Fu(\()p Ft(-e)p
-Fu(\))h(option.)630 4980 y(Signals)37 b(ignored)f(up)s(on)f(en)m(try)i
+Fu(\))h(option.)630 974 y(Signals)37 b(ignored)f(up)s(on)f(en)m(try)i
(to)g(the)f(shell)h(cannot)g(b)s(e)f(trapp)s(ed)f(or)h(reset.)59
-b(T)-8 b(rapp)s(ed)630 5089 y(signals)28 b(that)f(are)h(not)f(b)s(eing)
+b(T)-8 b(rapp)s(ed)630 1084 y(signals)28 b(that)f(are)h(not)f(b)s(eing)
g(ignored)g(are)g(reset)h(to)g(their)f(original)h(v)-5
-b(alues)28 b(in)e(a)i(subshell)630 5199 y(or)i(subshell)g(en)m
-(vironmen)m(t)h(when)e(one)i(is)f(created.)630 5340 y(The)g(return)f
+b(alues)28 b(in)e(a)i(subshell)630 1194 y(or)i(subshell)g(en)m
+(vironmen)m(t)h(when)e(one)i(is)f(created.)630 1321 y(The)g(return)f
(status)i(is)f(zero)h(unless)f(a)h Fr(sigsp)s(ec)36 b
Fu(do)s(es)30 b(not)h(sp)s(ecify)f(a)g(v)-5 b(alid)31
-b(signal.)p eop end
-%%Page: 51 57
-TeXDict begin 51 56 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(51)150 299 y Ft(umask)870
-434 y(umask)46 b([-p])h([-S])g([)p Fj(mode)p Ft(])630
-570 y Fu(Set)30 b(the)f(shell)h(pro)s(cess's)f(\014le)h(creation)g
-(mask)g(to)g Fr(mo)s(de)p Fu(.)40 b(If)29 b Fr(mo)s(de)34
-b Fu(b)s(egins)29 b(with)g(a)h(digit,)630 679 y(it)e(is)f(in)m
-(terpreted)g(as)g(an)g(o)s(ctal)i(n)m(um)m(b)s(er;)e(if)g(not,)h(it)g
-(is)f(in)m(terpreted)g(as)g(a)h(sym)m(b)s(olic)f(mo)s(de)630
-789 y(mask)i(similar)g(to)g(that)h(accepted)g(b)m(y)f(the)g
-Ft(chmod)e Fu(command.)40 b(If)28 b Fr(mo)s(de)34 b Fu(is)28
-b(omitted,)j(the)630 899 y(curren)m(t)39 b(v)-5 b(alue)40
-b(of)f(the)g(mask)g(is)h(prin)m(ted.)66 b(If)39 b(the)g
-Ft(-S)g Fu(option)g(is)h(supplied)d(without)j(a)630 1008
-y Fr(mo)s(de)d Fu(argumen)m(t,)d(the)e(mask)g(is)h(prin)m(ted)f(in)g(a)
-g(sym)m(b)s(olic)h(format.)47 b(If)32 b(the)g Ft(-p)g
-Fu(option)h(is)630 1118 y(supplied,)f(and)f Fr(mo)s(de)37
+b(signal.)150 1467 y Ft(umask)870 1595 y(umask)46 b([-p])h([-S])g([)p
+Fj(mode)p Ft(])630 1722 y Fu(Set)30 b(the)f(shell)h(pro)s(cess's)f
+(\014le)h(creation)g(mask)g(to)g Fr(mo)s(de)p Fu(.)40
+b(If)29 b Fr(mo)s(de)34 b Fu(b)s(egins)29 b(with)g(a)h(digit,)630
+1832 y(it)e(is)f(in)m(terpreted)g(as)g(an)g(o)s(ctal)i(n)m(um)m(b)s
+(er;)e(if)g(not,)h(it)g(is)f(in)m(terpreted)g(as)g(a)h(sym)m(b)s(olic)f
+(mo)s(de)630 1942 y(mask)i(similar)g(to)g(that)h(accepted)g(b)m(y)f
+(the)g Ft(chmod)e Fu(command.)40 b(If)28 b Fr(mo)s(de)34
+b Fu(is)28 b(omitted,)j(the)630 2051 y(curren)m(t)39
+b(v)-5 b(alue)40 b(of)f(the)g(mask)g(is)h(prin)m(ted.)66
+b(If)39 b(the)g Ft(-S)g Fu(option)g(is)h(supplied)d(without)j(a)630
+2161 y Fr(mo)s(de)d Fu(argumen)m(t,)d(the)e(mask)g(is)h(prin)m(ted)f
+(in)g(a)g(sym)m(b)s(olic)h(format.)47 b(If)32 b(the)g
+Ft(-p)g Fu(option)h(is)630 2270 y(supplied,)f(and)f Fr(mo)s(de)37
b Fu(is)32 b(omitted,)i(the)f(output)f(is)g(in)g(a)g(form)g(that)h(ma)m
-(y)g(b)s(e)e(reused)h(as)630 1227 y(input.)62 b(The)38
+(y)g(b)s(e)e(reused)h(as)630 2380 y(input.)62 b(The)38
b(return)f(status)h(is)g(zero)g(if)g(the)g(mo)s(de)g(is)g(successfully)
-g(c)m(hanged)g(or)g(if)g(no)630 1337 y Fr(mo)s(de)d Fu(argumen)m(t)c
-(is)f(supplied,)g(and)f(non-zero)i(otherwise.)630 1473
+g(c)m(hanged)g(or)g(if)g(no)630 2489 y Fr(mo)s(de)d Fu(argumen)m(t)c
+(is)f(supplied,)g(and)f(non-zero)i(otherwise.)630 2617
y(Note)38 b(that)e(when)g(the)g(mo)s(de)g(is)g(in)m(terpreted)h(as)f
(an)g(o)s(ctal)i(n)m(um)m(b)s(er,)e(eac)m(h)i(n)m(um)m(b)s(er)d(of)630
-1582 y(the)f(umask)g(is)h(subtracted)f(from)f Ft(7)p
+2727 y(the)f(umask)g(is)h(subtracted)f(from)f Ft(7)p
Fu(.)53 b(Th)m(us,)34 b(a)h(umask)e(of)i Ft(022)e Fu(results)h(in)g(p)s
-(ermissions)630 1692 y(of)d Ft(755)p Fu(.)150 1853 y
-Ft(unset)870 1989 y(unset)46 b([-fnv])g([)p Fj(name)p
-Ft(])630 2124 y Fu(Remo)m(v)m(e)36 b(eac)m(h)f(v)-5 b(ariable)35
+(ermissions)630 2836 y(of)d Ft(755)p Fu(.)150 2982 y
+Ft(unset)870 3110 y(unset)46 b([-fnv])g([)p Fj(name)p
+Ft(])630 3237 y Fu(Remo)m(v)m(e)36 b(eac)m(h)f(v)-5 b(ariable)35
b(or)f(function)f Fr(name)p Fu(.)52 b(If)33 b(the)i Ft(-v)e
-Fu(option)h(is)g(giv)m(en,)j(eac)m(h)e Fr(name)630 2234
+Fu(option)h(is)g(giv)m(en,)j(eac)m(h)e Fr(name)630 3347
y Fu(refers)27 b(to)h(a)g(shell)f(v)-5 b(ariable)28 b(and)f(that)h(v)-5
b(ariable)28 b(is)f(remo)m(v)m(ed.)41 b(If)27 b(the)g
-Ft(-f)g Fu(option)g(is)h(giv)m(en,)630 2343 y(the)37
+Ft(-f)g Fu(option)g(is)h(giv)m(en,)630 3457 y(the)37
b Fr(name)5 b Fu(s)37 b(refer)f(to)i(shell)f(functions,)h(and)e(the)h
(function)g(de\014nition)f(is)h(remo)m(v)m(ed.)61 b(If)630
-2453 y(the)34 b Ft(-n)e Fu(option)i(is)g(supplied,)f(and)g
-Fr(name)38 b Fu(is)c(a)f(v)-5 b(ariable)34 b(with)g(the)f
-Fr(nameref)51 b Fu(attribute,)630 2563 y Fr(name)42 b
-Fu(will)37 b(b)s(e)f(unset)g(rather)g(than)h(the)g(v)-5
-b(ariable)37 b(it)g(references.)60 b Ft(-n)36 b Fu(has)g(no)h(e\013ect)
-h(if)630 2672 y(the)h Ft(-f)g Fu(option)g(is)h(supplied.)65
-b(If)39 b(no)g(options)h(are)f(supplied,)h(eac)m(h)h
-Fr(name)j Fu(refers)39 b(to)h(a)630 2782 y(v)-5 b(ariable;)45
-b(if)39 b(there)g(is)g(no)g(v)-5 b(ariable)40 b(b)m(y)f(that)h(name,)h
-(a)f(function)f(with)g(that)g(name,)j(if)630 2891 y(an)m(y)-8
+3566 y(the)34 b Ft(-n)e Fu(option)i(is)f(supplied,)h(and)e
+Fr(name)39 b Fu(is)33 b(a)h(v)-5 b(ariable)34 b(with)f(the)h
+Ft(nameref)d Fu(attribute,)630 3676 y Fr(name)42 b Fu(will)37
+b(b)s(e)f(unset)g(rather)g(than)h(the)g(v)-5 b(ariable)37
+b(it)g(references.)60 b Ft(-n)36 b Fu(has)g(no)h(e\013ect)h(if)630
+3785 y(the)h Ft(-f)g Fu(option)g(is)h(supplied.)65 b(If)39
+b(no)g(options)h(are)f(supplied,)h(eac)m(h)h Fr(name)j
+Fu(refers)39 b(to)h(a)630 3895 y(v)-5 b(ariable;)45 b(if)39
+b(there)g(is)g(no)g(v)-5 b(ariable)40 b(b)m(y)f(that)h(name,)h(a)f
+(function)f(with)g(that)g(name,)j(if)630 4004 y(an)m(y)-8
b(,)34 b(is)e(unset.)46 b(Readonly)33 b(v)-5 b(ariables)33
b(and)f(functions)g(ma)m(y)h(not)f(b)s(e)g(unset.)46
-b(Some)33 b(shell)630 3001 y(v)-5 b(ariables)29 b(lose)h(their)e(sp)s
+b(Some)33 b(shell)630 4114 y(v)-5 b(ariables)29 b(lose)h(their)e(sp)s
(ecial)h(b)s(eha)m(vior)g(if)f(they)h(are)g(unset;)g(suc)m(h)f(b)s(eha)
-m(vior)h(is)g(noted)f(in)630 3110 y(the)35 b(description)h(of)f(the)g
+m(vior)h(is)g(noted)f(in)630 4224 y(the)35 b(description)h(of)f(the)g
(individual)g(v)-5 b(ariables.)56 b(The)34 b(return)g(status)i(is)f
-(zero)h(unless)f(a)630 3220 y Fr(name)h Fu(is)30 b(readonly)-8
-b(.)150 3464 y Fs(4.2)68 b(Bash)45 b(Builtin)g(Commands)150
-3623 y Fu(This)c(section)h(describ)s(es)f(builtin)f(commands)h(whic)m
-(h)g(are)h(unique)e(to)j(or)e(ha)m(v)m(e)h(b)s(een)f(extended)g(in)150
-3733 y(Bash.)g(Some)30 b(of)h(these)g(commands)f(are)g(sp)s(eci\014ed)g
-(in)g(the)h Fm(posix)e Fu(standard.)150 3895 y Ft(alias)870
-4031 y(alias)46 b([-p])h([)p Fj(name)p Ft([=)p Fj(value)p
-Ft(])d(...)o(])630 4166 y Fu(Without)26 b(argumen)m(ts)f(or)g(with)f
-(the)h Ft(-p)g Fu(option,)h Ft(alias)e Fu(prin)m(ts)g(the)h(list)h(of)f
-(aliases)h(on)f(the)630 4276 y(standard)g(output)g(in)g(a)h(form)f
+(zero)h(unless)f(a)630 4333 y Fr(name)h Fu(is)30 b(readonly)g(or)h(ma)m
+(y)g(not)f(b)s(e)g(unset.)150 4560 y Fs(4.2)68 b(Bash)45
+b(Builtin)g(Commands)150 4720 y Fu(This)c(section)h(describ)s(es)f
+(builtin)f(commands)h(whic)m(h)g(are)h(unique)e(to)j(or)e(ha)m(v)m(e)h
+(b)s(een)f(extended)g(in)150 4829 y(Bash.)g(Some)30 b(of)h(these)g
+(commands)f(are)g(sp)s(eci\014ed)g(in)g(the)h Fm(posix)e
+Fu(standard.)150 4975 y Ft(alias)870 5103 y(alias)46
+b([-p])h([)p Fj(name)p Ft([=)p Fj(value)p Ft(])d(...)o(])630
+5230 y Fu(Without)26 b(argumen)m(ts)f(or)g(with)f(the)h
+Ft(-p)g Fu(option,)h Ft(alias)e Fu(prin)m(ts)g(the)h(list)h(of)f
+(aliases)h(on)f(the)630 5340 y(standard)g(output)g(in)g(a)h(form)f
(that)h(allo)m(ws)h(them)e(to)h(b)s(e)f(reused)g(as)g(input.)39
-b(If)25 b(argumen)m(ts)630 4385 y(are)j(supplied,)e(an)i(alias)g(is)f
-(de\014ned)f(for)h(eac)m(h)h Fr(name)33 b Fu(whose)27
-b Fr(v)-5 b(alue)33 b Fu(is)27 b(giv)m(en.)41 b(If)26
-b(no)h Fr(v)-5 b(alue)630 4495 y Fu(is)37 b(giv)m(en,)j(the)d(name)g
-(and)g(v)-5 b(alue)37 b(of)h(the)f(alias)h(is)f(prin)m(ted.)61
-b(Aliases)38 b(are)f(describ)s(ed)f(in)630 4605 y(Section)31
-b(6.6)h([Aliases],)g(page)f(94.)150 4766 y Ft(bind)870
-4902 y(bind)47 b([-m)g Fj(keymap)p Ft(])e([-lpsvPSVX])870
-5011 y(bind)i([-m)g Fj(keymap)p Ft(])e([-q)i Fj(function)p
-Ft(])f([-u)g Fj(function)p Ft(])g([-r)h Fj(keyseq)p Ft(])870
-5121 y(bind)g([-m)g Fj(keymap)p Ft(])e(-f)j Fj(filename)870
-5230 y Ft(bind)f([-m)g Fj(keymap)p Ft(])e(-x)j Fj(keyseq:shell-command)
-870 5340 y Ft(bind)f([-m)g Fj(keymap)p Ft(])e Fj(keyseq:function-name)p
-eop end
-%%Page: 52 58
-TeXDict begin 52 57 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(52)870 299 y Ft(bind)47
-b([-m)g Fj(keymap)p Ft(])e Fj(keyseq:readline-command)630
-432 y Fu(Displa)m(y)22 b(curren)m(t)f(Readline)h(\(see)f(Chapter)g(8)g
-([Command)f(Line)h(Editing],)j(page)e(111\))g(k)m(ey)630
-542 y(and)36 b(function)g(bindings,)i(bind)d(a)i(k)m(ey)g(sequence)g
-(to)h(a)f(Readline)g(function)f(or)h(macro,)630 651 y(or)44
-b(set)h(a)g(Readline)f(v)-5 b(ariable.)83 b(Eac)m(h)45
+b(If)25 b(argumen)m(ts)p eop end
+%%Page: 56 62
+TeXDict begin 56 61 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(56)630 299 y(are)28
+b(supplied,)e(an)i(alias)g(is)f(de\014ned)f(for)h(eac)m(h)h
+Fr(name)33 b Fu(whose)27 b Fr(v)-5 b(alue)33 b Fu(is)27
+b(giv)m(en.)41 b(If)26 b(no)h Fr(v)-5 b(alue)630 408
+y Fu(is)37 b(giv)m(en,)j(the)d(name)g(and)g(v)-5 b(alue)37
+b(of)h(the)f(alias)h(is)f(prin)m(ted.)61 b(Aliases)38
+b(are)f(describ)s(ed)f(in)630 518 y(Section)31 b(6.6)h([Aliases],)g
+(page)f(100.)150 676 y Ft(bind)870 810 y(bind)47 b([-m)g
+Fj(keymap)p Ft(])e([-lpsvPSVX])870 920 y(bind)i([-m)g
+Fj(keymap)p Ft(])e([-q)i Fj(function)p Ft(])f([-u)g Fj(function)p
+Ft(])g([-r)h Fj(keyseq)p Ft(])870 1029 y(bind)g([-m)g
+Fj(keymap)p Ft(])e(-f)j Fj(filename)870 1139 y Ft(bind)f([-m)g
+Fj(keymap)p Ft(])e(-x)j Fj(keyseq:shell-command)870 1249
+y Ft(bind)f([-m)g Fj(keymap)p Ft(])e Fj(keyseq:function-name)870
+1358 y Ft(bind)i([-m)g Fj(keymap)p Ft(])e Fj(keyseq:readline-command)
+870 1468 y Ft(bind)i Fj(readline-command-line)630 1602
+y Fu(Displa)m(y)22 b(curren)m(t)f(Readline)h(\(see)f(Chapter)g(8)g
+([Command)f(Line)h(Editing],)j(page)e(117\))g(k)m(ey)630
+1711 y(and)36 b(function)g(bindings,)i(bind)d(a)i(k)m(ey)g(sequence)g
+(to)h(a)f(Readline)g(function)f(or)h(macro,)630 1821
+y(or)44 b(set)h(a)g(Readline)f(v)-5 b(ariable.)83 b(Eac)m(h)45
b(non-option)g(argumen)m(t)f(is)g(a)h(command)f(as)g(it)630
-761 y(w)m(ould)e(app)s(ear)f(in)h(a)h(Readline)g(initialization)i
+1931 y(w)m(ould)e(app)s(ear)f(in)h(a)h(Readline)g(initialization)i
(\014le)d(\(see)h(Section)g(8.3)g([Readline)g(Init)630
-870 y(File],)c(page)d(114\),)j(but)c(eac)m(h)h(binding)f(or)g(command)h
-(m)m(ust)f(b)s(e)g(passed)g(as)h(a)g(separate)630 980
+2040 y(File],)c(page)d(120\),)j(but)c(eac)m(h)h(binding)f(or)g(command)
+h(m)m(ust)f(b)s(e)g(passed)g(as)h(a)g(separate)630 2150
y(argumen)m(t;)31 b(e.g.,)h(`)p Ft("\\C-x\\C-r":re-read-init-f)o(ile)p
-Fu('.)630 1113 y(Options,)e(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)m
-(wing)h(meanings:)630 1270 y Ft(-m)e Fj(keymap)66 b Fu(Use)54
+Fu('.)630 2284 y(Options,)e(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)m
+(wing)h(meanings:)630 2442 y Ft(-m)e Fj(keymap)66 b Fu(Use)54
b Fr(k)m(eymap)j Fu(as)d(the)g(k)m(eymap)g(to)h(b)s(e)e(a\013ected)i(b)
-m(y)f(the)g(subsequen)m(t)1110 1379 y(bindings.)46 b(Acceptable)34
+m(y)f(the)g(subsequen)m(t)1110 2552 y(bindings.)46 b(Acceptable)34
b Fr(k)m(eymap)i Fu(names)c(are)h Ft(emacs)p Fu(,)f Ft(emacs-standard)p
-Fu(,)1110 1489 y Ft(emacs-meta)p Fu(,)99 b Ft(emacs-ctlx)p
+Fu(,)1110 2661 y Ft(emacs-meta)p Fu(,)99 b Ft(emacs-ctlx)p
Fu(,)f Ft(vi)p Fu(,)j Ft(vi-move)p Fu(,)f Ft(vi-command)p
-Fu(,)f(and)1110 1598 y Ft(vi-insert)p Fu(.)81 b Ft(vi)44
+Fu(,)f(and)1110 2771 y Ft(vi-insert)p Fu(.)81 b Ft(vi)44
b Fu(is)h(equiv)-5 b(alen)m(t)46 b(to)g Ft(vi-command)c
-Fu(\()p Ft(vi-move)h Fu(is)i(also)h(a)1110 1708 y(synon)m(ym\);)30
+Fu(\()p Ft(vi-move)h Fu(is)i(also)h(a)1110 2880 y(synon)m(ym\);)30
b Ft(emacs)f Fu(is)i(equiv)-5 b(alen)m(t)32 b(to)f Ft(emacs-standard)p
-Fu(.)630 1864 y Ft(-l)384 b Fu(List)31 b(the)f(names)g(of)h(all)g
-(Readline)g(functions.)630 2021 y Ft(-p)384 b Fu(Displa)m(y)34
+Fu(.)630 3039 y Ft(-l)384 b Fu(List)31 b(the)f(names)g(of)h(all)g
+(Readline)g(functions.)630 3197 y Ft(-p)384 b Fu(Displa)m(y)34
b(Readline)f(function)g(names)g(and)f(bindings)f(in)i(suc)m(h)f(a)i(w)m
-(a)m(y)f(that)1110 2131 y(they)e(can)f(b)s(e)g(used)g(as)g(input)g(or)g
-(in)g(a)h(Readline)g(initialization)i(\014le.)630 2287
+(a)m(y)f(that)1110 3306 y(they)e(can)f(b)s(e)g(used)g(as)g(input)g(or)g
+(in)g(a)h(Readline)g(initialization)i(\014le.)630 3465
y Ft(-P)384 b Fu(List)31 b(curren)m(t)f(Readline)h(function)f(names)g
-(and)g(bindings.)630 2444 y Ft(-v)384 b Fu(Displa)m(y)25
+(and)g(bindings.)630 3623 y Ft(-v)384 b Fu(Displa)m(y)25
b(Readline)f(v)-5 b(ariable)25 b(names)f(and)f(v)-5 b(alues)24
-b(in)g(suc)m(h)f(a)i(w)m(a)m(y)f(that)h(they)1110 2553
+b(in)g(suc)m(h)f(a)i(w)m(a)m(y)f(that)h(they)1110 3733
y(can)31 b(b)s(e)e(used)h(as)h(input)e(or)h(in)g(a)h(Readline)g
-(initialization)j(\014le.)630 2710 y Ft(-V)384 b Fu(List)31
+(initialization)j(\014le.)630 3891 y Ft(-V)384 b Fu(List)31
b(curren)m(t)f(Readline)h(v)-5 b(ariable)31 b(names)f(and)g(v)-5
-b(alues.)630 2866 y Ft(-s)384 b Fu(Displa)m(y)39 b(Readline)f(k)m(ey)g
+b(alues.)630 4049 y Ft(-s)384 b Fu(Displa)m(y)39 b(Readline)f(k)m(ey)g
(sequences)f(b)s(ound)f(to)i(macros)g(and)f(the)g(strings)1110
-2976 y(they)d(output)f(in)h(suc)m(h)f(a)h(w)m(a)m(y)h(that)f(they)g
-(can)g(b)s(e)f(used)g(as)h(input)e(or)i(in)g(a)1110 3086
-y(Readline)d(initialization)i(\014le.)630 3242 y Ft(-S)384
+4159 y(they)d(output)f(in)h(suc)m(h)f(a)h(w)m(a)m(y)h(that)f(they)g
+(can)g(b)s(e)f(used)g(as)h(input)e(or)i(in)g(a)1110 4268
+y(Readline)d(initialization)i(\014le.)630 4427 y Ft(-S)384
b Fu(Displa)m(y)39 b(Readline)f(k)m(ey)g(sequences)f(b)s(ound)f(to)i
-(macros)g(and)f(the)g(strings)1110 3352 y(they)31 b(output.)630
-3508 y Ft(-f)f Fj(filename)1110 3618 y Fu(Read)h(k)m(ey)g(bindings)e
-(from)h Fr(\014lename)p Fu(.)630 3774 y Ft(-q)g Fj(function)1110
-3884 y Fu(Query)g(ab)s(out)g(whic)m(h)g(k)m(eys)h(in)m(v)m(ok)m(e)h
-(the)f(named)f Fr(function)p Fu(.)630 4041 y Ft(-u)g
-Fj(function)1110 4150 y Fu(Un)m(bind)f(all)i(k)m(eys)g(b)s(ound)e(to)i
-(the)f(named)g Fr(function)p Fu(.)630 4307 y Ft(-r)g
-Fj(keyseq)66 b Fu(Remo)m(v)m(e)32 b(an)m(y)f(curren)m(t)f(binding)f
-(for)h Fr(k)m(eyseq)p Fu(.)630 4463 y Ft(-x)g Fj(keyseq:shell-command)
-1110 4573 y Fu(Cause)35 b Fr(shell-command)k Fu(to)d(b)s(e)f(executed)h
+(macros)g(and)f(the)g(strings)1110 4536 y(they)31 b(output.)630
+4695 y Ft(-f)f Fj(filename)1110 4804 y Fu(Read)h(k)m(ey)g(bindings)e
+(from)h Fr(\014lename)p Fu(.)630 4963 y Ft(-q)g Fj(function)1110
+5072 y Fu(Query)g(ab)s(out)g(whic)m(h)g(k)m(eys)h(in)m(v)m(ok)m(e)h
+(the)f(named)f Fr(function)p Fu(.)630 5230 y Ft(-u)g
+Fj(function)1110 5340 y Fu(Un)m(bind)f(all)i(k)m(eys)g(b)s(ound)e(to)i
+(the)f(named)g Fr(function)p Fu(.)p eop end
+%%Page: 57 63
+TeXDict begin 57 62 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(57)630 299 y Ft(-r)30
+b Fj(keyseq)66 b Fu(Remo)m(v)m(e)32 b(an)m(y)f(curren)m(t)f(binding)f
+(for)h Fr(k)m(eyseq)p Fu(.)630 452 y Ft(-x)g Fj(keyseq:shell-command)
+1110 562 y Fu(Cause)35 b Fr(shell-command)k Fu(to)d(b)s(e)f(executed)h
(whenev)m(er)f Fr(k)m(eyseq)j Fu(is)d(en)m(tered.)1110
-4682 y(When)46 b Fr(shell-command)k Fu(is)c(executed,)51
-b(the)46 b(shell)g(sets)g(the)g Ft(READLINE_)1110 4792
+671 y(When)46 b Fr(shell-command)k Fu(is)c(executed,)51
+b(the)46 b(shell)g(sets)g(the)g Ft(READLINE_)1110 781
y(LINE)37 b Fu(v)-5 b(ariable)38 b(to)g(the)g(con)m(ten)m(ts)i(of)e
-(the)g(Readline)g(line)g(bu\013er)f(and)g(the)1110 4902
-y Ft(READLINE_POINT)21 b Fu(and)k Ft(READLINE_MARK)c
-Fu(v)-5 b(ariables)26 b(to)g(the)g(curren)m(t)f(lo)s(ca-)1110
-5011 y(tion)f(of)g(the)g(insertion)g(p)s(oin)m(t)g(and)f(the)h(sa)m(v)m
-(ed)h(insertion)f(p)s(oin)m(t)g(\(the)g Fr(mark)6 b Fu(\),)1110
-5121 y(resp)s(ectiv)m(ely)-8 b(.)43 b(If)30 b(the)h(executed)g(command)
-g(c)m(hanges)g(the)g(v)-5 b(alue)31 b(of)g(an)m(y)g(of)1110
-5230 y Ft(READLINE_LINE)p Fu(,)40 b Ft(READLINE_POINT)p
-Fu(,)f(or)i Ft(READLINE_MARK)p Fu(,)e(those)i(new)1110
-5340 y(v)-5 b(alues)31 b(will)f(b)s(e)g(re\015ected)h(in)f(the)h
-(editing)g(state.)p eop end
-%%Page: 53 59
-TeXDict begin 53 58 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(53)630 299 y Ft(-X)384
+(the)g(Readline)g(line)g(bu\013er)f(and)g(the)1110 891
+y Ft(READLINE_POINT)d Fu(and)j Ft(READLINE_MARK)d Fu(v)-5
+b(ariables)39 b(to)f(the)g(curren)m(t)g(lo-)1110 1000
+y(cation)46 b(of)f(the)g(insertion)g(p)s(oin)m(t)f(and)g(the)h(sa)m(v)m
+(ed)h(insertion)f(p)s(oin)m(t)f(\(the)1110 1110 y Fr(mark)6
+b Fu(\),)38 b(resp)s(ectiv)m(ely)-8 b(.)62 b(The)36 b(shell)h(assigns)g
+(an)m(y)g(n)m(umeric)g(argumen)m(t)g(the)1110 1219 y(user)43
+b(supplied)g(to)h(the)g Ft(READLINE_ARGUMENT)39 b Fu(v)-5
+b(ariable.)82 b(If)44 b(there)g(w)m(as)1110 1329 y(no)39
+b(argumen)m(t,)j(that)d(v)-5 b(ariable)40 b(is)f(not)g(set.)68
+b(If)38 b(the)h(executed)h(command)1110 1439 y(c)m(hanges)e(the)e(v)-5
+b(alue)37 b(of)g(an)m(y)g(of)g Ft(READLINE_LINE)p Fu(,)d
+Ft(READLINE_POINT)p Fu(,)h(or)1110 1548 y Ft(READLINE_MARK)p
+Fu(,)i(those)i(new)f(v)-5 b(alues)38 b(will)h(b)s(e)f(re\015ected)h(in)
+f(the)g(editing)1110 1658 y(state.)630 1811 y Ft(-X)384
b Fu(List)27 b(all)i(k)m(ey)f(sequences)f(b)s(ound)e(to)j(shell)g
-(commands)e(and)h(the)g(asso)s(ciated)1110 408 y(commands)j(in)g(a)h
+(commands)e(and)h(the)g(asso)s(ciated)1110 1921 y(commands)j(in)g(a)h
(format)g(that)f(can)h(b)s(e)f(reused)f(as)i(input.)630
-568 y(The)26 b(return)f(status)i(is)f(zero)i(unless)d(an)i(in)m(v)-5
+2074 y(The)26 b(return)f(status)i(is)f(zero)i(unless)d(an)i(in)m(v)-5
b(alid)27 b(option)g(is)f(supplied)f(or)i(an)f(error)g(o)s(ccurs.)150
-727 y Ft(builtin)870 862 y(builtin)46 b([)p Fj(shell-builtin)e
-Ft([)p Fj(args)p Ft(]])630 996 y Fu(Run)35 b(a)i(shell)f(builtin,)i
+2228 y Ft(builtin)870 2359 y(builtin)46 b([)p Fj(shell-builtin)e
+Ft([)p Fj(args)p Ft(]])630 2491 y Fu(Run)35 b(a)i(shell)f(builtin,)i
(passing)e(it)h Fr(args)p Fu(,)h(and)e(return)f(its)i(exit)g(status.)59
-b(This)35 b(is)i(useful)630 1106 y(when)29 b(de\014ning)h(a)g(shell)h
+b(This)35 b(is)i(useful)630 2600 y(when)29 b(de\014ning)h(a)g(shell)h
(function)f(with)g(the)g(same)h(name)f(as)h(a)g(shell)f(builtin,)g
-(retaining)630 1215 y(the)k(functionalit)m(y)h(of)f(the)f(builtin)g
+(retaining)630 2710 y(the)k(functionalit)m(y)h(of)f(the)f(builtin)g
(within)g(the)h(function.)50 b(The)33 b(return)g(status)h(is)f(non-)630
-1325 y(zero)e(if)g Fr(shell-builtin)f Fu(is)g(not)h(a)g(shell)f
-(builtin)g(command.)150 1484 y Ft(caller)870 1619 y(caller)46
-b([)p Fj(expr)p Ft(])630 1753 y Fu(Returns)34 b(the)g(con)m(text)j(of)e
+2819 y(zero)e(if)g Fr(shell-builtin)f Fu(is)g(not)h(a)g(shell)f
+(builtin)g(command.)150 2973 y Ft(caller)870 3104 y(caller)46
+b([)p Fj(expr)p Ft(])630 3236 y Fu(Returns)34 b(the)g(con)m(text)j(of)e
(an)m(y)g(activ)m(e)i(subroutine)c(call)j(\(a)f(shell)g(function)f(or)h
-(a)g(script)630 1863 y(executed)c(with)f(the)h Ft(.)f
-Fu(or)g Ft(source)f Fu(builtins\).)630 1998 y(Without)45
+(a)g(script)630 3345 y(executed)c(with)f(the)h Ft(.)f
+Fu(or)g Ft(source)f Fu(builtins\).)630 3477 y(Without)45
b Fr(expr)p Fu(,)j Ft(caller)43 b Fu(displa)m(ys)i(the)f(line)h(n)m(um)
-m(b)s(er)f(and)g(source)g(\014lename)h(of)g(the)630 2107
+m(b)s(er)f(and)g(source)g(\014lename)h(of)g(the)630 3587
y(curren)m(t)35 b(subroutine)g(call.)58 b(If)35 b(a)h(non-negativ)m(e)i
(in)m(teger)f(is)f(supplied)e(as)i Fr(expr)p Fu(,)h Ft(caller)630
-2217 y Fu(displa)m(ys)k(the)f(line)h(n)m(um)m(b)s(er,)h(subroutine)d
+3696 y Fu(displa)m(ys)k(the)f(line)h(n)m(um)m(b)s(er,)h(subroutine)d
(name,)44 b(and)c(source)g(\014le)h(corresp)s(onding)e(to)630
-2326 y(that)c(p)s(osition)g(in)f(the)h(curren)m(t)f(execution)i(call)g
+3806 y(that)c(p)s(osition)g(in)f(the)h(curren)m(t)f(execution)i(call)g
(stac)m(k.)54 b(This)34 b(extra)h(information)g(ma)m(y)630
-2436 y(b)s(e)30 b(used,)g(for)g(example,)h(to)g(prin)m(t)f(a)h(stac)m
+3915 y(b)s(e)30 b(used,)g(for)g(example,)h(to)g(prin)m(t)f(a)h(stac)m
(k)h(trace.)42 b(The)29 b(curren)m(t)i(frame)f(is)g(frame)h(0.)630
-2570 y(The)d(return)g(v)-5 b(alue)29 b(is)g(0)g(unless)f(the)h(shell)g
+4047 y(The)d(return)g(v)-5 b(alue)29 b(is)g(0)g(unless)f(the)h(shell)g
(is)g(not)g(executing)h(a)f(subroutine)e(call)j(or)f
-Fr(expr)630 2680 y Fu(do)s(es)h(not)h(corresp)s(ond)e(to)i(a)g(v)-5
+Fr(expr)630 4156 y Fu(do)s(es)h(not)h(corresp)s(ond)e(to)i(a)g(v)-5
b(alid)30 b(p)s(osition)h(in)f(the)g(call)i(stac)m(k.)150
-2839 y Ft(command)870 2974 y(command)46 b([-pVv])g Fj(command)g
-Ft([)p Fj(arguments)f Ft(...)o(])630 3108 y Fu(Runs)32
+4310 y Ft(command)870 4441 y(command)46 b([-pVv])g Fj(command)g
+Ft([)p Fj(arguments)f Ft(...)o(])630 4573 y Fu(Runs)32
b Fr(command)k Fu(with)d Fr(argumen)m(ts)k Fu(ignoring)c(an)m(y)g
-(shell)h(function)e(named)h Fr(command)p Fu(.)630 3218
+(shell)h(function)e(named)h Fr(command)p Fu(.)630 4682
y(Only)39 b(shell)i(builtin)e(commands)h(or)g(commands)f(found)g(b)m(y)
-h(searc)m(hing)h(the)f Ft(PATH)f Fu(are)630 3328 y(executed.)59
+h(searc)m(hing)h(the)f Ft(PATH)f Fu(are)630 4792 y(executed.)59
b(If)36 b(there)h(is)f(a)h(shell)f(function)g(named)g
Ft(ls)p Fu(,)h(running)e(`)p Ft(command)29 b(ls)p Fu(')35
-b(within)630 3437 y(the)c(function)f(will)h(execute)g(the)g(external)g
+b(within)630 4902 y(the)c(function)f(will)h(execute)g(the)g(external)g
(command)g Ft(ls)f Fu(instead)g(of)h(calling)h(the)f(func-)630
-3547 y(tion)36 b(recursiv)m(ely)-8 b(.)56 b(The)34 b
+5011 y(tion)36 b(recursiv)m(ely)-8 b(.)56 b(The)34 b
Ft(-p)h Fu(option)g(means)g(to)h(use)f(a)g(default)h(v)-5
-b(alue)35 b(for)g Ft(PATH)f Fu(that)i(is)630 3656 y(guaran)m(teed)f(to)
+b(alue)35 b(for)g Ft(PATH)f Fu(that)i(is)630 5121 y(guaran)m(teed)f(to)
f(\014nd)e(all)j(of)f(the)g(standard)f(utilities.)52
-b(The)33 b(return)g(status)h(in)f(this)h(case)630 3766
+b(The)33 b(return)g(status)h(in)f(this)h(case)630 5230
y(is)29 b(127)g(if)g Fr(command)j Fu(cannot)d(b)s(e)e(found)h(or)g(an)g
(error)h(o)s(ccurred,)f(and)g(the)h(exit)g(status)g(of)630
-3875 y Fr(command)34 b Fu(otherwise.)630 4010 y(If)e(either)h(the)f
-Ft(-V)g Fu(or)g Ft(-v)g Fu(option)h(is)f(supplied,)g(a)h(description)f
-(of)h Fr(command)j Fu(is)c(prin)m(ted.)630 4120 y(The)f
-Ft(-v)h Fu(option)g(causes)g(a)g(single)h(w)m(ord)f(indicating)g(the)g
-(command)g(or)g(\014le)g(name)g(used)630 4229 y(to)40
-b(in)m(v)m(ok)m(e)h Fr(command)h Fu(to)e(b)s(e)e(displa)m(y)m(ed;)44
-b(the)39 b Ft(-V)f Fu(option)i(pro)s(duces)d(a)j(more)f(v)m(erb)s(ose)
-630 4339 y(description.)61 b(In)36 b(this)h(case,)j(the)e(return)e
-(status)h(is)g(zero)h(if)f Fr(command)k Fu(is)c(found,)h(and)630
-4448 y(non-zero)31 b(if)f(not.)150 4608 y Ft(declare)870
-4742 y(declare)46 b([-aAfFgiIlnrtux])d([-p])k([)p Fj(name)p
-Ft([=)p Fj(value)p Ft(])d(...)o(])630 4877 y Fu(Declare)29
+5340 y Fr(command)34 b Fu(otherwise.)p eop end
+%%Page: 58 64
+TeXDict begin 58 63 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(58)630 299 y(If)32
+b(either)h(the)f Ft(-V)g Fu(or)g Ft(-v)g Fu(option)h(is)f(supplied,)g
+(a)h(description)f(of)h Fr(command)j Fu(is)c(prin)m(ted.)630
+408 y(The)f Ft(-v)h Fu(option)g(causes)g(a)g(single)h(w)m(ord)f
+(indicating)g(the)g(command)g(or)g(\014le)g(name)g(used)630
+518 y(to)40 b(in)m(v)m(ok)m(e)h Fr(command)h Fu(to)e(b)s(e)e(displa)m
+(y)m(ed;)44 b(the)39 b Ft(-V)f Fu(option)i(pro)s(duces)d(a)j(more)f(v)m
+(erb)s(ose)630 628 y(description.)61 b(In)36 b(this)h(case,)j(the)e
+(return)e(status)h(is)g(zero)h(if)f Fr(command)k Fu(is)c(found,)h(and)
+630 737 y(non-zero)31 b(if)f(not.)150 897 y Ft(declare)870
+1031 y(declare)46 b([-aAfFgiIlnrtux])d([-p])k([)p Fj(name)p
+Ft([=)p Fj(value)p Ft(])d(...)o(])630 1166 y Fu(Declare)29
b(v)-5 b(ariables)28 b(and)e(giv)m(e)j(them)e(attributes.)40
b(If)27 b(no)g Fr(name)5 b Fu(s)27 b(are)h(giv)m(en,)h(then)e(displa)m
-(y)630 4986 y(the)k(v)-5 b(alues)30 b(of)h(v)-5 b(ariables)31
-b(instead.)630 5121 y(The)k Ft(-p)f Fu(option)i(will)g(displa)m(y)f
+(y)630 1275 y(the)k(v)-5 b(alues)30 b(of)h(v)-5 b(ariables)31
+b(instead.)630 1410 y(The)k Ft(-p)f Fu(option)i(will)g(displa)m(y)f
(the)h(attributes)g(and)e(v)-5 b(alues)36 b(of)f(eac)m(h)i
-Fr(name)p Fu(.)55 b(When)36 b Ft(-p)630 5230 y Fu(is)i(used)g(with)g
+Fr(name)p Fu(.)55 b(When)36 b Ft(-p)630 1519 y Fu(is)i(used)g(with)g
Fr(name)43 b Fu(argumen)m(ts,)e(additional)e(options,)i(other)d(than)g
-Ft(-f)g Fu(and)g Ft(-F)p Fu(,)i(are)630 5340 y(ignored.)p
-eop end
-%%Page: 54 60
-TeXDict begin 54 59 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(54)630 299 y(When)40
-b Ft(-p)g Fu(is)g(supplied)f(without)i Fr(name)k Fu(argumen)m(ts,)f
-Ft(declare)38 b Fu(will)j(displa)m(y)f(the)h(at-)630
-408 y(tributes)31 b(and)f(v)-5 b(alues)31 b(of)g(all)h(v)-5
+Ft(-f)g Fu(and)g Ft(-F)p Fu(,)i(are)630 1629 y(ignored.)630
+1763 y(When)g Ft(-p)g Fu(is)g(supplied)f(without)i Fr(name)k
+Fu(argumen)m(ts,)f Ft(declare)38 b Fu(will)j(displa)m(y)f(the)h(at-)630
+1873 y(tributes)31 b(and)f(v)-5 b(alues)31 b(of)g(all)h(v)-5
b(ariables)31 b(ha)m(ving)h(the)f(attributes)g(sp)s(eci\014ed)f(b)m(y)h
-(the)g(addi-)630 518 y(tional)k(options.)52 b(If)34 b(no)g(other)g
-(options)g(are)g(supplied)f(with)h Ft(-p)p Fu(,)g Ft(declare)e
-Fu(will)j(displa)m(y)630 628 y(the)e(attributes)h(and)e(v)-5
-b(alues)33 b(of)g(all)h(shell)f(v)-5 b(ariables.)50 b(The)32
-b Ft(-f)g Fu(option)i(will)f(restrict)h(the)630 737 y(displa)m(y)d(to)g
-(shell)f(functions.)630 877 y(The)41 b Ft(-F)f Fu(option)i(inhibits)e
-(the)i(displa)m(y)f(of)g(function)g(de\014nitions;)47
-b(only)41 b(the)g(function)630 986 y(name)30 b(and)f(attributes)i(are)f
-(prin)m(ted.)40 b(If)30 b(the)g Ft(extdebug)e Fu(shell)i(option)g(is)g
-(enabled)g(using)630 1096 y Ft(shopt)24 b Fu(\(see)i(Section)g(4.3.2)i
-([The)d(Shopt)f(Builtin],)k(page)e(66\),)i(the)d(source)h(\014le)f
-(name)h(and)630 1205 y(line)31 b(n)m(um)m(b)s(er)e(where)h(eac)m(h)h
+(the)g(addi-)630 1983 y(tional)k(options.)52 b(If)34
+b(no)g(other)g(options)g(are)g(supplied)f(with)h Ft(-p)p
+Fu(,)g Ft(declare)e Fu(will)j(displa)m(y)630 2092 y(the)e(attributes)h
+(and)e(v)-5 b(alues)33 b(of)g(all)h(shell)f(v)-5 b(ariables.)50
+b(The)32 b Ft(-f)g Fu(option)i(will)f(restrict)h(the)630
+2202 y(displa)m(y)d(to)g(shell)f(functions.)630 2336
+y(The)41 b Ft(-F)f Fu(option)i(inhibits)e(the)i(displa)m(y)f(of)g
+(function)g(de\014nitions;)47 b(only)41 b(the)g(function)630
+2446 y(name)30 b(and)f(attributes)i(are)f(prin)m(ted.)40
+b(If)30 b(the)g Ft(extdebug)e Fu(shell)i(option)g(is)g(enabled)g(using)
+630 2555 y Ft(shopt)24 b Fu(\(see)i(Section)g(4.3.2)i([The)d(Shopt)f
+(Builtin],)k(page)e(71\),)i(the)d(source)h(\014le)f(name)h(and)630
+2665 y(line)31 b(n)m(um)m(b)s(er)e(where)h(eac)m(h)h
Fr(name)36 b Fu(is)30 b(de\014ned)f(are)i(displa)m(y)m(ed)g(as)g(w)m
-(ell.)41 b Ft(-F)30 b Fu(implies)h Ft(-f)p Fu(.)630 1345
+(ell.)41 b Ft(-F)30 b Fu(implies)h Ft(-f)p Fu(.)630 2800
y(The)36 b Ft(-g)g Fu(option)h(forces)g(v)-5 b(ariables)37
b(to)g(b)s(e)f(created)i(or)e(mo)s(di\014ed)g(at)h(the)g(global)h(scop)
-s(e,)630 1455 y(ev)m(en)g(when)e Ft(declare)f Fu(is)j(executed)g(in)f
+s(e,)630 2909 y(ev)m(en)g(when)e Ft(declare)f Fu(is)j(executed)g(in)f
(a)g(shell)h(function.)61 b(It)37 b(is)g(ignored)h(in)f(all)h(other)630
-1564 y(cases.)630 1704 y(The)50 b Ft(-I)h Fu(option)g(causes)h(lo)s
+3019 y(cases.)630 3153 y(The)50 b Ft(-I)h Fu(option)g(causes)h(lo)s
(cal)g(v)-5 b(ariables)51 b(to)h(inherit)f(the)g(attributes)g(\(except)
-i(the)630 1813 y Fr(nameref)63 b Fu(attribute\))46 b(and)f(v)-5
-b(alue)45 b(of)h(an)m(y)f(existing)i(v)-5 b(ariable)46
-b(with)f(the)g(same)h Fr(name)630 1923 y Fu(at)40 b(a)f(surrounding)d
+i(the)630 3263 y Ft(nameref)43 b Fu(attribute\))j(and)f(v)-5
+b(alue)46 b(of)f(an)m(y)h(existing)g(v)-5 b(ariable)46
+b(with)f(the)g(same)h Fr(name)630 3372 y Fu(at)40 b(a)f(surrounding)d
(scop)s(e.)66 b(If)39 b(there)g(is)g(no)f(existing)i(v)-5
b(ariable,)42 b(the)d(lo)s(cal)h(v)-5 b(ariable)40 b(is)630
-2032 y(initially)32 b(unset.)630 2172 y(The)27 b(follo)m(wing)h
+3482 y(initially)32 b(unset.)630 3616 y(The)27 b(follo)m(wing)h
(options)g(can)f(b)s(e)g(used)f(to)i(restrict)g(output)e(to)i(v)-5
-b(ariables)28 b(with)f(the)g(sp)s(ec-)630 2281 y(i\014ed)j(attributes)h
+b(ariables)28 b(with)f(the)g(sp)s(ec-)630 3726 y(i\014ed)j(attributes)h
(or)f(to)h(giv)m(e)h(v)-5 b(ariables)31 b(attributes:)630
-2451 y Ft(-a)384 b Fu(Eac)m(h)36 b Fr(name)k Fu(is)34
+3885 y Ft(-a)384 b Fu(Eac)m(h)36 b Fr(name)k Fu(is)34
b(an)h(indexed)g(arra)m(y)g(v)-5 b(ariable)36 b(\(see)f(Section)h(6.7)g
-([Arra)m(ys],)1110 2560 y(page)31 b(95\).)630 2730 y
+([Arra)m(ys],)1110 3995 y(page)31 b(100\).)630 4154 y
Ft(-A)384 b Fu(Eac)m(h)24 b Fr(name)k Fu(is)23 b(an)g(asso)s(ciativ)m
(e)j(arra)m(y)e(v)-5 b(ariable)24 b(\(see)g(Section)g(6.7)g([Arra)m
-(ys],)1110 2839 y(page)31 b(95\).)630 3009 y Ft(-f)384
-b Fu(Use)31 b(function)f(names)g(only)-8 b(.)630 3178
+(ys],)1110 4264 y(page)31 b(100\).)630 4423 y Ft(-f)384
+b Fu(Use)31 b(function)f(names)g(only)-8 b(.)630 4583
y Ft(-i)384 b Fu(The)36 b(v)-5 b(ariable)37 b(is)f(to)h(b)s(e)f
(treated)h(as)g(an)f(in)m(teger;)41 b(arithmetic)c(ev)-5
-b(aluation)1110 3288 y(\(see)29 b(Section)f(6.5)h([Shell)f
-(Arithmetic],)i(page)e(93\))h(is)f(p)s(erformed)e(when)h(the)1110
-3397 y(v)-5 b(ariable)31 b(is)g(assigned)f(a)h(v)-5 b(alue.)630
-3567 y Ft(-l)384 b Fu(When)26 b(the)g(v)-5 b(ariable)27
+b(aluation)1110 4692 y(\(see)29 b(Section)f(6.5)h([Shell)f
+(Arithmetic],)i(page)e(98\))h(is)f(p)s(erformed)e(when)h(the)1110
+4802 y(v)-5 b(ariable)31 b(is)g(assigned)f(a)h(v)-5 b(alue.)630
+4961 y Ft(-l)384 b Fu(When)26 b(the)g(v)-5 b(ariable)27
b(is)f(assigned)g(a)g(v)-5 b(alue,)28 b(all)f(upp)s(er-case)e(c)m
-(haracters)j(are)1110 3676 y(con)m(v)m(erted)k(to)f(lo)m(w)m(er-case.)
+(haracters)j(are)1110 5071 y(con)m(v)m(erted)k(to)f(lo)m(w)m(er-case.)
43 b(The)30 b(upp)s(er-case)g(attribute)h(is)g(disabled.)630
-3846 y Ft(-n)384 b Fu(Giv)m(e)28 b(eac)m(h)g Fr(name)k
-Fu(the)27 b Fr(nameref)44 b Fu(attribute,)28 b(making)f(it)h(a)f(name)f
-(reference)1110 3955 y(to)32 b(another)g(v)-5 b(ariable.)46
+5230 y Ft(-n)384 b Fu(Giv)m(e)28 b(eac)m(h)g Fr(name)k
+Fu(the)27 b Ft(nameref)d Fu(attribute,)29 b(making)e(it)g(a)g(name)f
+(reference)1110 5340 y(to)32 b(another)g(v)-5 b(ariable.)46
b(That)31 b(other)h(v)-5 b(ariable)33 b(is)f(de\014ned)e(b)m(y)i(the)g
-(v)-5 b(alue)32 b(of)1110 4065 y Fr(name)p Fu(.)54 b(All)35
-b(references,)h(assignmen)m(ts,)h(and)d(attribute)h(mo)s(di\014cations)
-g(to)1110 4174 y Fr(name)p Fu(,)27 b(except)f(for)f(those)h(using)f(or)
-g(c)m(hanging)h(the)f Ft(-n)g Fu(attribute)h(itself,)i(are)1110
-4284 y(p)s(erformed)22 b(on)h(the)g(v)-5 b(ariable)25
-b(referenced)e(b)m(y)g Fr(name)5 b Fu('s)23 b(v)-5 b(alue.)39
-b(The)23 b(nameref)1110 4394 y(attribute)31 b(cannot)g(b)s(e)f(applied)
-g(to)h(arra)m(y)g(v)-5 b(ariables.)630 4563 y Ft(-r)384
-b Fu(Mak)m(e)25 b Fr(name)5 b Fu(s)23 b(readonly)-8 b(.)39
-b(These)24 b(names)f(cannot)h(then)f(b)s(e)g(assigned)h(v)-5
-b(alues)1110 4672 y(b)m(y)30 b(subsequen)m(t)g(assignmen)m(t)h
-(statemen)m(ts)h(or)f(unset.)630 4842 y Ft(-t)384 b Fu(Giv)m(e)33
-b(eac)m(h)h Fr(name)j Fu(the)32 b Ft(trace)f Fu(attribute.)46
-b(T)-8 b(raced)32 b(functions)g(inherit)g(the)1110 4951
-y Ft(DEBUG)26 b Fu(and)h Ft(RETURN)f Fu(traps)h(from)g(the)h(calling)h
-(shell.)40 b(The)27 b(trace)i(attribute)1110 5061 y(has)h(no)g(sp)s
-(ecial)h(meaning)g(for)f(v)-5 b(ariables.)630 5230 y
-Ft(-u)384 b Fu(When)28 b(the)h(v)-5 b(ariable)29 b(is)f(assigned)h(a)f
-(v)-5 b(alue,)30 b(all)f(lo)m(w)m(er-case)i(c)m(haracters)f(are)1110
-5340 y(con)m(v)m(erted)i(to)f(upp)s(er-case.)40 b(The)30
-b(lo)m(w)m(er-case)j(attribute)e(is)g(disabled.)p eop
-end
-%%Page: 55 61
-TeXDict begin 55 60 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(55)630 299 y Ft(-x)384
-b Fu(Mark)30 b(eac)m(h)h Fr(name)k Fu(for)29 b(exp)s(ort)h(to)g
-(subsequen)m(t)f(commands)h(via)g(the)g(en)m(vi-)1110
-408 y(ronmen)m(t.)630 560 y(Using)e(`)p Ft(+)p Fu(')h(instead)f(of)g(`)
-p Ft(-)p Fu(')g(turns)f(o\013)i(the)f(attribute)h(instead,)g(with)f
-(the)g(exceptions)h(that)630 670 y(`)p Ft(+a)p Fu(')23
+(v)-5 b(alue)32 b(of)p eop end
+%%Page: 59 65
+TeXDict begin 59 64 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(59)1110 299 y
+Fr(name)p Fu(.)54 b(All)35 b(references,)h(assignmen)m(ts,)h(and)d
+(attribute)h(mo)s(di\014cations)g(to)1110 408 y Fr(name)p
+Fu(,)27 b(except)f(for)f(those)h(using)f(or)g(c)m(hanging)h(the)f
+Ft(-n)g Fu(attribute)h(itself,)i(are)1110 518 y(p)s(erformed)22
+b(on)h(the)g(v)-5 b(ariable)25 b(referenced)e(b)m(y)g
+Fr(name)5 b Fu('s)23 b(v)-5 b(alue.)39 b(The)23 b(nameref)1110
+628 y(attribute)31 b(cannot)g(b)s(e)f(applied)g(to)h(arra)m(y)g(v)-5
+b(ariables.)630 785 y Ft(-r)384 b Fu(Mak)m(e)25 b Fr(name)5
+b Fu(s)23 b(readonly)-8 b(.)39 b(These)24 b(names)f(cannot)h(then)f(b)s
+(e)g(assigned)h(v)-5 b(alues)1110 894 y(b)m(y)30 b(subsequen)m(t)g
+(assignmen)m(t)h(statemen)m(ts)h(or)f(unset.)630 1052
+y Ft(-t)384 b Fu(Giv)m(e)33 b(eac)m(h)h Fr(name)j Fu(the)32
+b Ft(trace)f Fu(attribute.)46 b(T)-8 b(raced)32 b(functions)g(inherit)g
+(the)1110 1161 y Ft(DEBUG)26 b Fu(and)h Ft(RETURN)f Fu(traps)h(from)g
+(the)h(calling)h(shell.)40 b(The)27 b(trace)i(attribute)1110
+1271 y(has)h(no)g(sp)s(ecial)h(meaning)g(for)f(v)-5 b(ariables.)630
+1428 y Ft(-u)384 b Fu(When)28 b(the)h(v)-5 b(ariable)29
+b(is)f(assigned)h(a)f(v)-5 b(alue,)30 b(all)f(lo)m(w)m(er-case)i(c)m
+(haracters)f(are)1110 1538 y(con)m(v)m(erted)i(to)f(upp)s(er-case.)40
+b(The)30 b(lo)m(w)m(er-case)j(attribute)e(is)g(disabled.)630
+1695 y Ft(-x)384 b Fu(Mark)30 b(eac)m(h)h Fr(name)k Fu(for)29
+b(exp)s(ort)h(to)g(subsequen)m(t)f(commands)h(via)g(the)g(en)m(vi-)1110
+1805 y(ronmen)m(t.)630 1962 y(Using)e(`)p Ft(+)p Fu(')h(instead)f(of)g
+(`)p Ft(-)p Fu(')g(turns)f(o\013)i(the)f(attribute)h(instead,)g(with)f
+(the)g(exceptions)h(that)630 2071 y(`)p Ft(+a)p Fu(')23
b(and)f(`)p Ft(+A)p Fu(')h(ma)m(y)h(not)f(b)s(e)f(used)g(to)i(destro)m
(y)g(arra)m(y)f(v)-5 b(ariables)24 b(and)e(`)p Ft(+r)p
-Fu(')h(will)g(not)g(remo)m(v)m(e)630 780 y(the)36 b(readonly)h
+Fu(')h(will)g(not)g(remo)m(v)m(e)630 2181 y(the)36 b(readonly)h
(attribute.)59 b(When)36 b(used)f(in)h(a)h(function,)g
-Ft(declare)d Fu(mak)m(es)j(eac)m(h)h Fr(name)630 889
+Ft(declare)d Fu(mak)m(es)j(eac)m(h)h Fr(name)630 2291
y Fu(lo)s(cal,)e(as)d(with)h(the)f Ft(local)f Fu(command,)j(unless)d
(the)i Ft(-g)f Fu(option)h(is)f(used.)49 b(If)33 b(a)h(v)-5
-b(ariable)630 999 y(name)30 b(is)h(follo)m(w)m(ed)h(b)m(y)e(=)p
+b(ariable)630 2400 y(name)30 b(is)h(follo)m(w)m(ed)h(b)m(y)e(=)p
Fr(v)-5 b(alue)p Fu(,)31 b(the)f(v)-5 b(alue)31 b(of)g(the)f(v)-5
b(ariable)32 b(is)e(set)h(to)g Fr(v)-5 b(alue)p Fu(.)630
-1130 y(When)41 b(using)g Ft(-a)g Fu(or)h Ft(-A)e Fu(and)h(the)h(comp)s
+2534 y(When)41 b(using)g Ft(-a)g Fu(or)h Ft(-A)e Fu(and)h(the)h(comp)s
(ound)e(assignmen)m(t)i(syn)m(tax)g(to)g(create)h(arra)m(y)630
-1239 y(v)-5 b(ariables,)28 b(additional)f(attributes)g(do)f(not)h(tak)m
+2643 y(v)-5 b(ariables,)28 b(additional)f(attributes)g(do)f(not)h(tak)m
(e)h(e\013ect)g(un)m(til)e(subsequen)m(t)g(assignmen)m(ts.)630
-1370 y(The)35 b(return)f(status)i(is)g(zero)g(unless)f(an)g(in)m(v)-5
+2777 y(The)35 b(return)f(status)i(is)g(zero)g(unless)f(an)g(in)m(v)-5
b(alid)36 b(option)g(is)g(encoun)m(tered,)h(an)f(attempt)630
-1480 y(is)c(made)g(to)g(de\014ne)f(a)h(function)g(using)f(`)p
+2886 y(is)c(made)g(to)g(de\014ne)f(a)h(function)g(using)f(`)p
Ft(-f)f(foo=bar)p Fu(',)h(an)h(attempt)g(is)g(made)g(to)h(assign)630
-1589 y(a)42 b(v)-5 b(alue)43 b(to)g(a)f(readonly)g(v)-5
+2996 y(a)42 b(v)-5 b(alue)43 b(to)g(a)f(readonly)g(v)-5
b(ariable,)47 b(an)42 b(attempt)h(is)f(made)g(to)h(assign)f(a)h(v)-5
-b(alue)42 b(to)h(an)630 1699 y(arra)m(y)30 b(v)-5 b(ariable)30
+b(alue)42 b(to)h(an)630 3105 y(arra)m(y)30 b(v)-5 b(ariable)30
b(without)g(using)e(the)i(comp)s(ound)e(assignmen)m(t)i(syn)m(tax)g
-(\(see)h(Section)f(6.7)630 1808 y([Arra)m(ys],)47 b(page)c(95\),)48
-b(one)43 b(of)g(the)g Fr(names)k Fu(is)c(not)g(a)g(v)-5
-b(alid)43 b(shell)g(v)-5 b(ariable)44 b(name,)i(an)630
-1918 y(attempt)28 b(is)f(made)h(to)f(turn)f(o\013)i(readonly)f(status)g
+(\(see)h(Section)f(6.7)630 3215 y([Arra)m(ys],)43 b(page)d(100\),)k
+(one)c(of)g(the)g Fr(name)5 b Fu(s)40 b(is)f(not)h(a)g(v)-5
+b(alid)40 b(shell)g(v)-5 b(ariable)41 b(name,)h(an)630
+3324 y(attempt)28 b(is)f(made)h(to)f(turn)f(o\013)i(readonly)f(status)g
(for)g(a)h(readonly)f(v)-5 b(ariable,)29 b(an)e(attempt)630
-2028 y(is)h(made)h(to)g(turn)e(o\013)i(arra)m(y)f(status)h(for)f(an)g
+3434 y(is)h(made)h(to)g(turn)e(o\013)i(arra)m(y)f(status)h(for)f(an)g
(arra)m(y)h(v)-5 b(ariable,)30 b(or)e(an)g(attempt)i(is)e(made)g(to)630
-2137 y(displa)m(y)j(a)f(non-existen)m(t)i(function)e(with)g
-Ft(-f)p Fu(.)150 2289 y Ft(echo)870 2420 y(echo)47 b([-neE])f([)p
-Fj(arg)g Ft(...])630 2551 y Fu(Output)31 b(the)i Fr(arg)8
+3544 y(displa)m(y)j(a)f(non-existen)m(t)i(function)e(with)g
+Ft(-f)p Fu(.)150 3701 y Ft(echo)870 3834 y(echo)47 b([-neE])f([)p
+Fj(arg)g Ft(...])630 3968 y Fu(Output)31 b(the)i Fr(arg)8
b Fu(s,)33 b(separated)g(b)m(y)g(spaces,)g(terminated)g(with)f(a)h
-(newline.)47 b(The)32 b(return)630 2660 y(status)f(is)f(0)h(unless)f(a)
+(newline.)47 b(The)32 b(return)630 4077 y(status)f(is)f(0)h(unless)f(a)
h(write)g(error)f(o)s(ccurs.)41 b(If)30 b Ft(-n)g Fu(is)h(sp)s
-(eci\014ed,)f(the)h(trailing)g(newline)g(is)630 2770
+(eci\014ed,)f(the)h(trailing)g(newline)g(is)630 4187
y(suppressed.)38 b(If)29 b(the)h Ft(-e)f Fu(option)h(is)f(giv)m(en,)i
(in)m(terpretation)g(of)e(the)h(follo)m(wing)h(bac)m(kslash-)630
-2880 y(escap)s(ed)43 b(c)m(haracters)h(is)e(enabled.)78
+4296 y(escap)s(ed)43 b(c)m(haracters)h(is)e(enabled.)78
b(The)42 b Ft(-E)g Fu(option)h(disables)g(the)g(in)m(terpretation)h(of)
-630 2989 y(these)27 b(escap)s(e)g(c)m(haracters,)i(ev)m(en)e(on)g
+630 4406 y(these)27 b(escap)s(e)g(c)m(haracters,)i(ev)m(en)e(on)g
(systems)f(where)g(they)h(are)g(in)m(terpreted)g(b)m(y)f(default.)630
-3099 y(The)32 b Ft(xpg_echo)f Fu(shell)i(option)g(ma)m(y)h(b)s(e)e
+4516 y(The)32 b Ft(xpg_echo)f Fu(shell)i(option)g(ma)m(y)h(b)s(e)e
(used)g(to)h(dynamically)h(determine)f(whether)f(or)630
-3208 y(not)h Ft(echo)f Fu(expands)g(these)h(escap)s(e)h(c)m(haracters)g
+4625 y(not)h Ft(echo)f Fu(expands)g(these)h(escap)s(e)h(c)m(haracters)g
(b)m(y)f(default.)48 b Ft(echo)32 b Fu(do)s(es)g(not)i(in)m(terpret)630
-3318 y Ft(--)c Fu(to)h(mean)f(the)h(end)f(of)g(options.)630
-3449 y Ft(echo)f Fu(in)m(terprets)i(the)f(follo)m(wing)i(escap)s(e)f
-(sequences:)630 3601 y Ft(\\a)384 b Fu(alert)31 b(\(b)s(ell\))630
-3753 y Ft(\\b)384 b Fu(bac)m(kspace)630 3905 y Ft(\\c)g
-Fu(suppress)28 b(further)h(output)630 4057 y Ft(\\e)630
-4166 y(\\E)384 b Fu(escap)s(e)630 4318 y Ft(\\f)g Fu(form)30
-b(feed)630 4470 y Ft(\\n)384 b Fu(new)30 b(line)630 4622
-y Ft(\\r)384 b Fu(carriage)32 b(return)630 4774 y Ft(\\t)384
-b Fu(horizon)m(tal)32 b(tab)630 4926 y Ft(\\v)384 b Fu(v)m(ertical)32
-b(tab)630 5078 y Ft(\\\\)384 b Fu(bac)m(kslash)630 5230
+4735 y Ft(--)c Fu(to)h(mean)f(the)h(end)f(of)g(options.)630
+4868 y Ft(echo)f Fu(in)m(terprets)i(the)f(follo)m(wing)i(escap)s(e)f
+(sequences:)630 5026 y Ft(\\a)384 b Fu(alert)31 b(\(b)s(ell\))630
+5183 y Ft(\\b)384 b Fu(bac)m(kspace)630 5340 y Ft(\\c)g
+Fu(suppress)28 b(further)h(output)p eop end
+%%Page: 60 66
+TeXDict begin 60 65 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(60)630 299 y Ft(\\e)630
+408 y(\\E)384 b Fu(escap)s(e)630 556 y Ft(\\f)g Fu(form)30
+b(feed)630 703 y Ft(\\n)384 b Fu(new)30 b(line)630 851
+y Ft(\\r)384 b Fu(carriage)32 b(return)630 998 y Ft(\\t)384
+b Fu(horizon)m(tal)32 b(tab)630 1145 y Ft(\\v)384 b Fu(v)m(ertical)32
+b(tab)630 1293 y Ft(\\\\)384 b Fu(bac)m(kslash)630 1440
y Ft(\\0)p Fj(nnn)240 b Fu(the)32 b(eigh)m(t-bit)i(c)m(haracter)g
(whose)e(v)-5 b(alue)33 b(is)f(the)g(o)s(ctal)i(v)-5
-b(alue)32 b Fr(nnn)f Fu(\(zero)i(to)1110 5340 y(three)e(o)s(ctal)g
-(digits\))p eop end
-%%Page: 56 62
-TeXDict begin 56 61 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(56)630 299 y Ft(\\x)p
-Fj(HH)288 b Fu(the)38 b(eigh)m(t-bit)i(c)m(haracter)g(whose)e(v)-5
-b(alue)39 b(is)f(the)h(hexadecimal)g(v)-5 b(alue)39 b
-Fr(HH)1110 408 y Fu(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630
-563 y Ft(\\u)p Fj(HHHH)192 b Fu(the)41 b(Unico)s(de)g(\(ISO/IEC)f
-(10646\))j(c)m(haracter)g(whose)e(v)-5 b(alue)41 b(is)g(the)g(hex-)1110
-673 y(adecimal)32 b(v)-5 b(alue)31 b Fr(HHHH)41 b Fu(\(one)31
-b(to)g(four)e(hex)h(digits\))630 828 y Ft(\\U)p Fj(HHHHHHHH)1110
-938 y Fu(the)41 b(Unico)s(de)g(\(ISO/IEC)f(10646\))j(c)m(haracter)g
-(whose)e(v)-5 b(alue)41 b(is)g(the)g(hex-)1110 1047 y(adecimal)32
-b(v)-5 b(alue)31 b Fr(HHHHHHHH)41 b Fu(\(one)31 b(to)g(eigh)m(t)h(hex)e
-(digits\))150 1202 y Ft(enable)870 1334 y(enable)46 b([-a])h([-dnps])f
-([-f)g Fj(filename)p Ft(])g([)p Fj(name)g Ft(...)o(])630
-1467 y Fu(Enable)36 b(and)f(disable)h(builtin)g(shell)g(commands.)56
+b(alue)32 b Fr(nnn)f Fu(\(zero)i(to)1110 1550 y(three)e(o)s(ctal)g
+(digits\))630 1697 y Ft(\\x)p Fj(HH)288 b Fu(the)38 b(eigh)m(t-bit)i(c)
+m(haracter)g(whose)e(v)-5 b(alue)39 b(is)f(the)h(hexadecimal)g(v)-5
+b(alue)39 b Fr(HH)1110 1807 y Fu(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
+(digits\))630 1954 y Ft(\\u)p Fj(HHHH)192 b Fu(the)41
+b(Unico)s(de)g(\(ISO/IEC)f(10646\))j(c)m(haracter)g(whose)e(v)-5
+b(alue)41 b(is)g(the)g(hex-)1110 2064 y(adecimal)32 b(v)-5
+b(alue)31 b Fr(HHHH)41 b Fu(\(one)31 b(to)g(four)e(hex)h(digits\))630
+2211 y Ft(\\U)p Fj(HHHHHHHH)1110 2321 y Fu(the)41 b(Unico)s(de)g
+(\(ISO/IEC)f(10646\))j(c)m(haracter)g(whose)e(v)-5 b(alue)41
+b(is)g(the)g(hex-)1110 2430 y(adecimal)32 b(v)-5 b(alue)31
+b Fr(HHHHHHHH)41 b Fu(\(one)31 b(to)g(eigh)m(t)h(hex)e(digits\))150
+2578 y Ft(enable)870 2706 y(enable)46 b([-a])h([-dnps])f([-f)g
+Fj(filename)p Ft(])g([)p Fj(name)g Ft(...)o(])630 2835
+y Fu(Enable)36 b(and)f(disable)h(builtin)g(shell)g(commands.)56
b(Disabling)37 b(a)g(builtin)e(allo)m(ws)i(a)f(disk)630
-1576 y(command)e(whic)m(h)g(has)g(the)g(same)h(name)f(as)h(a)f(shell)h
-(builtin)e(to)i(b)s(e)f(executed)h(without)630 1686 y(sp)s(ecifying)27
+2944 y(command)e(whic)m(h)g(has)g(the)g(same)h(name)f(as)h(a)f(shell)h
+(builtin)e(to)i(b)s(e)f(executed)h(without)630 3054 y(sp)s(ecifying)27
b(a)g(full)g(pathname,)g(ev)m(en)h(though)f(the)g(shell)g(normally)g
-(searc)m(hes)h(for)f(builtins)630 1795 y(b)s(efore)35
+(searc)m(hes)h(for)f(builtins)630 3163 y(b)s(efore)35
b(disk)g(commands.)55 b(If)35 b Ft(-n)g Fu(is)g(used,)h(the)g
Fr(name)5 b Fu(s)35 b(b)s(ecome)h(disabled.)55 b(Otherwise)630
-1905 y Fr(name)5 b Fu(s)44 b(are)h(enabled.)82 b(F)-8
+3273 y Fr(name)5 b Fu(s)44 b(are)h(enabled.)82 b(F)-8
b(or)45 b(example,)k(to)c(use)f(the)g Ft(test)f Fu(binary)h(found)f
-(via)h Ft($PATH)630 2015 y Fu(instead)31 b(of)f(the)h(shell)f(builtin)g
+(via)h Ft($PATH)630 3382 y Fu(instead)31 b(of)f(the)h(shell)f(builtin)g
(v)m(ersion,)h(t)m(yp)s(e)g(`)p Ft(enable)e(-n)h(test)p
-Fu('.)630 2147 y(If)45 b(the)i Ft(-p)e Fu(option)h(is)g(supplied,)j(or)
+Fu('.)630 3511 y(If)45 b(the)i Ft(-p)e Fu(option)h(is)g(supplied,)j(or)
d(no)g Fr(name)51 b Fu(argumen)m(ts)46 b(app)s(ear,)k(a)c(list)h(of)f
-(shell)630 2256 y(builtins)37 b(is)h(prin)m(ted.)63 b(With)38
+(shell)630 3621 y(builtins)37 b(is)h(prin)m(ted.)63 b(With)38
b(no)f(other)h(argumen)m(ts,)j(the)d(list)g(consists)g(of)g(all)h
-(enabled)630 2366 y(shell)d(builtins.)57 b(The)35 b Ft(-a)h
+(enabled)630 3730 y(shell)d(builtins.)57 b(The)35 b Ft(-a)h
Fu(option)g(means)g(to)g(list)h(eac)m(h)g(builtin)f(with)f(an)h
-(indication)h(of)630 2476 y(whether)30 b(or)g(not)h(it)g(is)f(enabled.)
-630 2608 y(The)22 b Ft(-f)f Fu(option)h(means)g(to)h(load)g(the)f(new)g
+(indication)h(of)630 3840 y(whether)30 b(or)g(not)h(it)g(is)f(enabled.)
+630 3968 y(The)22 b Ft(-f)f Fu(option)h(means)g(to)h(load)g(the)f(new)g
(builtin)f(command)h Fr(name)27 b Fu(from)22 b(shared)f(ob)5
-b(ject)630 2717 y Fr(\014lename)p Fu(,)33 b(on)e(systems)h(that)h(supp)
-s(ort)d(dynamic)i(loading.)46 b(The)31 b Ft(-d)g Fu(option)h(will)h
-(delete)630 2827 y(a)e(builtin)f(loaded)h(with)f Ft(-f)p
-Fu(.)630 2959 y(If)j(there)i(are)f(no)g(options,)h(a)f(list)h(of)f(the)
-g(shell)g(builtins)g(is)g(displa)m(y)m(ed.)52 b(The)33
-b Ft(-s)g Fu(option)630 3069 y(restricts)j Ft(enable)d
-Fu(to)j(the)f Fm(posix)f Fu(sp)s(ecial)i(builtins.)54
+b(ject)630 4078 y Fr(\014lename)p Fu(,)31 b(on)f(systems)g(that)h(supp)
+s(ort)e(dynamic)h(loading.)41 b(Bash)31 b(will)f(use)g(the)h(v)-5
+b(alue)31 b(of)630 4187 y(the)39 b Ft(BASH_LOADABLES_PATH)34
+b Fu(v)-5 b(ariable)40 b(as)f(a)h(colon-separated)h(list)f(of)f
+(directories)h(in)630 4297 y(whic)m(h)31 b(to)h(searc)m(h)g(for)f
+Fr(\014lename)p Fu(.)44 b(The)31 b(default)g(is)h(system-dep)s(enden)m
+(t.)43 b(The)31 b Ft(-d)f Fu(option)630 4407 y(will)h(delete)g(a)g
+(builtin)f(loaded)h(with)f Ft(-f)p Fu(.)630 4535 y(If)j(there)i(are)f
+(no)g(options,)h(a)f(list)h(of)f(the)g(shell)g(builtins)g(is)g(displa)m
+(y)m(ed.)52 b(The)33 b Ft(-s)g Fu(option)630 4645 y(restricts)j
+Ft(enable)d Fu(to)j(the)f Fm(posix)f Fu(sp)s(ecial)i(builtins.)54
b(If)34 b Ft(-s)h Fu(is)g(used)f(with)g Ft(-f)p Fu(,)i(the)f(new)630
-3178 y(builtin)30 b(b)s(ecomes)h(a)f(sp)s(ecial)h(builtin)f(\(see)i
-(Section)f(4.4)g([Sp)s(ecial)g(Builtins],)g(page)g(72\).)630
-3311 y(The)26 b(return)f(status)h(is)g(zero)h(unless)e(a)i
-Fr(name)k Fu(is)26 b(not)g(a)h(shell)f(builtin)g(or)g(there)g(is)g(an)g
-(error)630 3420 y(loading)31 b(a)g(new)f(builtin)g(from)g(a)g(shared)g
-(ob)5 b(ject.)150 3575 y Ft(help)870 3707 y(help)47 b([-dms])f([)p
-Fj(pattern)p Ft(])630 3840 y Fu(Displa)m(y)40 b(helpful)e(information)h
-(ab)s(out)g(builtin)f(commands.)66 b(If)38 b Fr(pattern)h
-Fu(is)g(sp)s(eci\014ed,)630 3949 y Ft(help)28 b Fu(giv)m(es)i(detailed)
-g(help)e(on)h(all)h(commands)e(matc)m(hing)i Fr(pattern)p
-Fu(,)g(otherwise)f(a)g(list)h(of)630 4059 y(the)h(builtins)e(is)i(prin)
-m(ted.)630 4191 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)
-m(wing)h(meanings:)630 4346 y Ft(-d)384 b Fu(Displa)m(y)32
-b(a)e(short)g(description)h(of)f(eac)m(h)i Fr(pattern)630
-4501 y Ft(-m)384 b Fu(Displa)m(y)32 b(the)e(description)g(of)h(eac)m(h)
-h Fr(pattern)e Fu(in)g(a)h(manpage-lik)m(e)h(format)630
-4656 y Ft(-s)384 b Fu(Displa)m(y)32 b(only)e(a)h(short)f(usage)h
-(synopsis)e(for)i(eac)m(h)g Fr(pattern)630 4811 y Fu(The)f(return)f
-(status)i(is)f(zero)h(unless)f(no)g(command)h(matc)m(hes)g
-Fr(pattern)p Fu(.)150 4966 y Ft(let)870 5098 y(let)47
-b Fj(expression)e Ft([)p Fj(expression)g Ft(...)o(])630
-5230 y Fu(The)c Ft(let)g Fu(builtin)g(allo)m(ws)i(arithmetic)f(to)h(b)s
-(e)d(p)s(erformed)g(on)i(shell)g(v)-5 b(ariables.)74
-b(Eac)m(h)630 5340 y Fr(expression)31 b Fu(is)g(ev)-5
-b(aluated)32 b(according)f(to)h(the)f(rules)g(giv)m(en)h(b)s(elo)m(w)f
-(in)f(Section)i(6.5)g([Shell)p eop end
-%%Page: 57 63
-TeXDict begin 57 62 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(57)630 299 y(Arithmetic],)51
-b(page)46 b(93.)87 b(If)45 b(the)g(last)h Fr(expression)g
-Fu(ev)-5 b(aluates)47 b(to)f(0,)k Ft(let)44 b Fu(returns)g(1;)630
-408 y(otherwise)31 b(0)g(is)f(returned.)150 568 y Ft(local)870
-702 y(local)46 b([)p Fj(option)p Ft(])g Fj(name)p Ft([=)p
-Fj(value)p Ft(])e(...)630 836 y Fu(F)-8 b(or)27 b(eac)m(h)g(argumen)m
-(t,)g(a)f(lo)s(cal)h(v)-5 b(ariable)27 b(named)e Fr(name)31
-b Fu(is)26 b(created,)i(and)d(assigned)h Fr(v)-5 b(alue)p
-Fu(.)630 946 y(The)37 b Fr(option)h Fu(can)f(b)s(e)g(an)m(y)h(of)f(the)
-h(options)g(accepted)g(b)m(y)g Ft(declare)p Fu(.)59 b
-Ft(local)36 b Fu(can)i(only)630 1055 y(b)s(e)j(used)h(within)f(a)i
-(function;)48 b(it)42 b(mak)m(es)h(the)f(v)-5 b(ariable)43
-b Fr(name)48 b Fu(ha)m(v)m(e)43 b(a)f(visible)h(scop)s(e)630
-1165 y(restricted)h(to)f(that)h(function)e(and)g(its)i(c)m(hildren.)78
-b(If)42 b Fr(name)48 b Fu(is)43 b(`)p Ft(-)p Fu(',)j(the)d(set)h(of)f
-(shell)630 1275 y(options)34 b(is)f(made)g(lo)s(cal)i(to)f(the)f
-(function)g(in)g(whic)m(h)g Ft(local)f Fu(is)h(in)m(v)m(ok)m(ed:)48
-b(shell)34 b(options)630 1384 y(c)m(hanged)e(using)e(the)i
-Ft(set)e Fu(builtin)h(inside)g(the)g(function)g(are)g(restored)h(to)g
-(their)f(original)630 1494 y(v)-5 b(alues)36 b(when)e(the)i(function)f
+4754 y(builtin)30 b(b)s(ecomes)h(a)f(sp)s(ecial)h(builtin)f(\(see)i
+(Section)f(4.4)g([Sp)s(ecial)g(Builtins],)g(page)g(77\).)630
+4883 y(If)24 b(no)g(options)h(are)g(supplied)e(and)h(a)h
+Fr(name)k Fu(is)c(not)f(a)h(shell)g(builtin,)g Ft(enable)e
+Fu(will)i(attempt)630 4992 y(to)c(load)g Fr(name)26 b
+Fu(from)20 b(a)g(shared)g(ob)5 b(ject)21 b(named)f Fr(name)p
+Fu(,)j(as)d(if)h(the)f(command)h(w)m(ere)f(`)p Ft(enable)630
+5102 y(-f)30 b Fj(name)f(name)p Fu('.)630 5230 y(The)d(return)f(status)
+h(is)g(zero)h(unless)e(a)i Fr(name)k Fu(is)26 b(not)g(a)h(shell)f
+(builtin)g(or)g(there)g(is)g(an)g(error)630 5340 y(loading)31
+b(a)g(new)f(builtin)g(from)g(a)g(shared)g(ob)5 b(ject.)p
+eop end
+%%Page: 61 67
+TeXDict begin 61 66 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(61)150 299 y Ft(help)870
+435 y(help)47 b([-dms])f([)p Fj(pattern)p Ft(])630 571
+y Fu(Displa)m(y)40 b(helpful)e(information)h(ab)s(out)g(builtin)f
+(commands.)66 b(If)38 b Fr(pattern)h Fu(is)g(sp)s(eci\014ed,)630
+681 y Ft(help)28 b Fu(giv)m(es)i(detailed)g(help)e(on)h(all)h(commands)
+e(matc)m(hing)i Fr(pattern)p Fu(,)g(otherwise)f(a)g(list)h(of)630
+790 y(the)h(builtins)e(is)i(prin)m(ted.)630 926 y(Options,)f(if)h
+(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h(meanings:)630
+1089 y Ft(-d)384 b Fu(Displa)m(y)32 b(a)e(short)g(description)h(of)f
+(eac)m(h)i Fr(pattern)630 1251 y Ft(-m)384 b Fu(Displa)m(y)32
+b(the)e(description)g(of)h(eac)m(h)h Fr(pattern)e Fu(in)g(a)h
+(manpage-lik)m(e)h(format)630 1414 y Ft(-s)384 b Fu(Displa)m(y)32
+b(only)e(a)h(short)f(usage)h(synopsis)e(for)i(eac)m(h)g
+Fr(pattern)630 1576 y Fu(The)f(return)f(status)i(is)f(zero)h(unless)f
+(no)g(command)h(matc)m(hes)g Fr(pattern)p Fu(.)150 1739
+y Ft(let)870 1875 y(let)47 b Fj(expression)e Ft([)p Fj(expression)g
+Ft(...)o(])630 2011 y Fu(The)c Ft(let)g Fu(builtin)g(allo)m(ws)i
+(arithmetic)f(to)h(b)s(e)d(p)s(erformed)g(on)i(shell)g(v)-5
+b(ariables.)74 b(Eac)m(h)630 2120 y Fr(expression)31
+b Fu(is)g(ev)-5 b(aluated)32 b(according)f(to)h(the)f(rules)g(giv)m(en)
+h(b)s(elo)m(w)f(in)f(Section)i(6.5)g([Shell)630 2230
+y(Arithmetic],)51 b(page)46 b(98.)87 b(If)45 b(the)g(last)h
+Fr(expression)g Fu(ev)-5 b(aluates)47 b(to)f(0,)k Ft(let)44
+b Fu(returns)g(1;)630 2340 y(otherwise)31 b(0)g(is)f(returned.)150
+2502 y Ft(local)870 2638 y(local)46 b([)p Fj(option)p
+Ft(])g Fj(name)p Ft([=)p Fj(value)p Ft(])e(...)630 2774
+y Fu(F)-8 b(or)27 b(eac)m(h)g(argumen)m(t,)g(a)f(lo)s(cal)h(v)-5
+b(ariable)27 b(named)e Fr(name)31 b Fu(is)26 b(created,)i(and)d
+(assigned)h Fr(v)-5 b(alue)p Fu(.)630 2884 y(The)37 b
+Fr(option)h Fu(can)f(b)s(e)g(an)m(y)h(of)f(the)h(options)g(accepted)g
+(b)m(y)g Ft(declare)p Fu(.)59 b Ft(local)36 b Fu(can)i(only)630
+2993 y(b)s(e)j(used)h(within)f(a)i(function;)48 b(it)42
+b(mak)m(es)h(the)f(v)-5 b(ariable)43 b Fr(name)48 b Fu(ha)m(v)m(e)43
+b(a)f(visible)h(scop)s(e)630 3103 y(restricted)h(to)f(that)h(function)e
+(and)g(its)i(c)m(hildren.)78 b(If)42 b Fr(name)48 b Fu(is)43
+b(`)p Ft(-)p Fu(',)j(the)d(set)h(of)f(shell)630 3212
+y(options)34 b(is)f(made)g(lo)s(cal)i(to)f(the)f(function)g(in)g(whic)m
+(h)g Ft(local)f Fu(is)h(in)m(v)m(ok)m(ed:)48 b(shell)34
+b(options)630 3322 y(c)m(hanged)e(using)e(the)i Ft(set)e
+Fu(builtin)h(inside)g(the)g(function)g(are)g(restored)h(to)g(their)f
+(original)630 3432 y(v)-5 b(alues)36 b(when)e(the)i(function)f
(returns.)54 b(The)35 b(restore)h(is)g(e\013ected)h(as)e(if)h(a)g
-(series)f(of)h Ft(set)630 1603 y Fu(commands)j(w)m(ere)g(executed)h(to)
+(series)f(of)h Ft(set)630 3541 y Fu(commands)j(w)m(ere)g(executed)h(to)
f(restore)h(the)f(v)-5 b(alues)39 b(that)h(w)m(ere)f(in)f(place)i(b)s
-(efore)f(the)630 1713 y(function.)j(The)30 b(return)g(status)h(is)g
+(efore)f(the)630 3651 y(function.)j(The)30 b(return)g(status)h(is)g
(zero)h(unless)e Ft(local)g Fu(is)h(used)f(outside)h(a)g(function,)g
-(an)630 1823 y(in)m(v)-5 b(alid)31 b Fr(name)k Fu(is)c(supplied,)e(or)i
+(an)630 3760 y(in)m(v)-5 b(alid)31 b Fr(name)k Fu(is)c(supplied,)e(or)i
Fr(name)k Fu(is)c(a)f(readonly)h(v)-5 b(ariable.)150
-1982 y Ft(logout)870 2116 y(logout)46 b([)p Fj(n)p Ft(])630
-2250 y Fu(Exit)31 b(a)g(login)g(shell,)g(returning)e(a)i(status)g(of)f
-Fr(n)g Fu(to)h(the)g(shell's)f(paren)m(t.)150 2409 y
-Ft(mapfile)870 2544 y(mapfile)46 b([-d)h Fj(delim)p Ft(])f([-n)h
+3923 y Ft(logout)870 4059 y(logout)46 b([)p Fj(n)p Ft(])630
+4195 y Fu(Exit)31 b(a)g(login)g(shell,)g(returning)e(a)i(status)g(of)f
+Fr(n)g Fu(to)h(the)g(shell's)f(paren)m(t.)150 4357 y
+Ft(mapfile)870 4493 y(mapfile)46 b([-d)h Fj(delim)p Ft(])f([-n)h
Fj(count)p Ft(])f([-O)h Fj(origin)p Ft(])f([-s)g Fj(count)p
-Ft(])1061 2653 y([-t])h([-u)f Fj(fd)p Ft(])h([-C)g Fj(callback)p
+Ft(])1061 4603 y([-t])h([-u)f Fj(fd)p Ft(])h([-C)g Fj(callback)p
Ft(])f([-c)g Fj(quantum)p Ft(])g([)p Fj(array)p Ft(])630
-2788 y Fu(Read)38 b(lines)f(from)g(the)h(standard)e(input)g(in)m(to)j
+4739 y Fu(Read)38 b(lines)f(from)g(the)h(standard)e(input)g(in)m(to)j
(the)e(indexed)g(arra)m(y)h(v)-5 b(ariable)38 b Fr(arra)m(y)p
-Fu(,)i(or)630 2897 y(from)28 b(\014le)h(descriptor)f
+Fu(,)i(or)630 4849 y(from)28 b(\014le)h(descriptor)f
Fr(fd)k Fu(if)c(the)h Ft(-u)f Fu(option)h(is)g(supplied.)39
b(The)28 b(v)-5 b(ariable)29 b Ft(MAPFILE)e Fu(is)i(the)630
-3007 y(default)i Fr(arra)m(y)p Fu(.)41 b(Options,)30
+4958 y(default)i Fr(arra)m(y)p Fu(.)41 b(Options,)30
b(if)g(supplied,)g(ha)m(v)m(e)h(the)g(follo)m(wing)h(meanings:)630
-3166 y Ft(-d)384 b Fu(The)37 b(\014rst)g(c)m(haracter)i(of)f
+5121 y Ft(-d)384 b Fu(The)37 b(\014rst)g(c)m(haracter)i(of)f
Fr(delim)g Fu(is)f(used)g(to)h(terminate)h(eac)m(h)g(input)d(line,)1110
-3275 y(rather)41 b(than)h(newline.)74 b(If)41 b Fr(delim)h
+5230 y(rather)41 b(than)h(newline.)74 b(If)41 b Fr(delim)h
Fu(is)g(the)f(empt)m(y)h(string,)j Ft(mapfile)40 b Fu(will)1110
-3385 y(terminate)31 b(a)g(line)g(when)e(it)i(reads)f(a)h(NUL)g(c)m
-(haracter.)630 3544 y Ft(-n)384 b Fu(Cop)m(y)30 b(at)h(most)g
-Fr(coun)m(t)i Fu(lines.)41 b(If)30 b Fr(coun)m(t)j Fu(is)d(0,)h(all)h
-(lines)e(are)h(copied.)630 3703 y Ft(-O)384 b Fu(Begin)31
-b(assigning)g(to)g Fr(arra)m(y)39 b Fu(at)31 b(index)f
-Fr(origin)p Fu(.)41 b(The)30 b(default)h(index)f(is)g(0.)630
-3862 y Ft(-s)384 b Fu(Discard)31 b(the)f(\014rst)g Fr(coun)m(t)j
-Fu(lines)e(read.)630 4021 y Ft(-t)384 b Fu(Remo)m(v)m(e)32
-b(a)f(trailing)g Fr(delim)g Fu(\(default)g(newline\))f(from)g(eac)m(h)i
-(line)f(read.)630 4180 y Ft(-u)384 b Fu(Read)31 b(lines)f(from)g
-(\014le)h(descriptor)f Fr(fd)j Fu(instead)e(of)f(the)h(standard)e
-(input.)630 4340 y Ft(-C)384 b Fu(Ev)-5 b(aluate)26 b
-Fr(callbac)m(k)33 b Fu(eac)m(h)26 b(time)g Fr(quan)m(tum)f
-Fu(lines)g(are)g(read.)39 b(The)25 b Ft(-c)f Fu(option)1110
-4449 y(sp)s(eci\014es)30 b Fr(quan)m(tum)p Fu(.)630 4608
-y Ft(-c)384 b Fu(Sp)s(ecify)30 b(the)g(n)m(um)m(b)s(er)f(of)i(lines)f
-(read)h(b)s(et)m(w)m(een)g(eac)m(h)g(call)h(to)f Fr(callbac)m(k)p
-Fu(.)630 4767 y(If)36 b Ft(-C)g Fu(is)g(sp)s(eci\014ed)g(without)g
-Ft(-c)p Fu(,)h(the)g(default)f(quan)m(tum)g(is)h(5000.)60
-b(When)36 b Fr(callbac)m(k)44 b Fu(is)630 4877 y(ev)-5
-b(aluated,)30 b(it)e(is)g(supplied)f(the)h(index)f(of)i(the)f(next)g
-(arra)m(y)g(elemen)m(t)h(to)g(b)s(e)e(assigned)i(and)630
-4986 y(the)39 b(line)g(to)h(b)s(e)e(assigned)h(to)h(that)f(elemen)m(t)i
-(as)e(additional)h(argumen)m(ts.)66 b Fr(callbac)m(k)47
-b Fu(is)630 5096 y(ev)-5 b(aluated)32 b(after)e(the)h(line)g(is)f(read)
-g(but)g(b)s(efore)g(the)h(arra)m(y)g(elemen)m(t)g(is)g(assigned.)630
-5230 y(If)25 b(not)g(supplied)f(with)h(an)g(explicit)i(origin,)g
+5340 y(terminate)31 b(a)g(line)g(when)e(it)i(reads)f(a)h(NUL)g(c)m
+(haracter.)p eop end
+%%Page: 62 68
+TeXDict begin 62 67 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(62)630 299 y Ft(-n)384
+b Fu(Cop)m(y)30 b(at)h(most)g Fr(coun)m(t)i Fu(lines.)41
+b(If)30 b Fr(coun)m(t)j Fu(is)d(0,)h(all)h(lines)e(are)h(copied.)630
+446 y Ft(-O)384 b Fu(Begin)31 b(assigning)g(to)g Fr(arra)m(y)39
+b Fu(at)31 b(index)f Fr(origin)p Fu(.)41 b(The)30 b(default)h(index)f
+(is)g(0.)630 594 y Ft(-s)384 b Fu(Discard)31 b(the)f(\014rst)g
+Fr(coun)m(t)j Fu(lines)e(read.)630 741 y Ft(-t)384 b
+Fu(Remo)m(v)m(e)32 b(a)f(trailing)g Fr(delim)g Fu(\(default)g
+(newline\))f(from)g(eac)m(h)i(line)f(read.)630 888 y
+Ft(-u)384 b Fu(Read)31 b(lines)f(from)g(\014le)h(descriptor)f
+Fr(fd)j Fu(instead)e(of)f(the)h(standard)e(input.)630
+1036 y Ft(-C)384 b Fu(Ev)-5 b(aluate)26 b Fr(callbac)m(k)33
+b Fu(eac)m(h)26 b(time)g Fr(quan)m(tum)f Fu(lines)g(are)g(read.)39
+b(The)25 b Ft(-c)f Fu(option)1110 1145 y(sp)s(eci\014es)30
+b Fr(quan)m(tum)p Fu(.)630 1293 y Ft(-c)384 b Fu(Sp)s(ecify)30
+b(the)g(n)m(um)m(b)s(er)f(of)i(lines)f(read)h(b)s(et)m(w)m(een)g(eac)m
+(h)g(call)h(to)f Fr(callbac)m(k)p Fu(.)630 1440 y(If)36
+b Ft(-C)g Fu(is)g(sp)s(eci\014ed)g(without)g Ft(-c)p
+Fu(,)h(the)g(default)f(quan)m(tum)g(is)h(5000.)60 b(When)36
+b Fr(callbac)m(k)44 b Fu(is)630 1550 y(ev)-5 b(aluated,)30
+b(it)e(is)g(supplied)f(the)h(index)f(of)i(the)f(next)g(arra)m(y)g
+(elemen)m(t)h(to)g(b)s(e)e(assigned)i(and)630 1659 y(the)39
+b(line)g(to)h(b)s(e)e(assigned)h(to)h(that)f(elemen)m(t)i(as)e
+(additional)h(argumen)m(ts.)66 b Fr(callbac)m(k)47 b
+Fu(is)630 1769 y(ev)-5 b(aluated)32 b(after)e(the)h(line)g(is)f(read)g
+(but)g(b)s(efore)g(the)h(arra)m(y)g(elemen)m(t)g(is)g(assigned.)630
+1897 y(If)25 b(not)g(supplied)f(with)h(an)g(explicit)i(origin,)g
Ft(mapfile)c Fu(will)j(clear)g Fr(arra)m(y)34 b Fu(b)s(efore)24
-b(assigning)630 5340 y(to)31 b(it.)p eop end
-%%Page: 58 64
-TeXDict begin 58 63 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(58)630 299 y Ft(mapfile)41
+b(assigning)630 2007 y(to)31 b(it.)630 2135 y Ft(mapfile)41
b Fu(returns)g(successfully)i(unless)e(an)i(in)m(v)-5
b(alid)43 b(option)g(or)g(option)g(argumen)m(t)g(is)630
-408 y(supplied,)29 b Fr(arra)m(y)39 b Fu(is)30 b(in)m(v)-5
+2245 y(supplied,)29 b Fr(arra)m(y)39 b Fu(is)30 b(in)m(v)-5
b(alid)31 b(or)g(unassignable,)f(or)h Fr(arra)m(y)38
b Fu(is)31 b(not)f(an)h(indexed)e(arra)m(y)-8 b(.)150
-564 y Ft(printf)870 697 y(printf)46 b([-v)h Fj(var)p
-Ft(])g Fj(format)f Ft([)p Fj(arguments)p Ft(])630 830
+2392 y Ft(printf)870 2521 y(printf)46 b([-v)h Fj(var)p
+Ft(])g Fj(format)f Ft([)p Fj(arguments)p Ft(])630 2649
y Fu(W)-8 b(rite)27 b(the)g(formatted)f Fr(argumen)m(ts)k
Fu(to)d(the)f(standard)f(output)h(under)e(the)i(con)m(trol)i(of)e(the)
-630 939 y Fr(format)p Fu(.)66 b(The)39 b Ft(-v)f Fu(option)h(causes)g
+630 2759 y Fr(format)p Fu(.)66 b(The)39 b Ft(-v)f Fu(option)h(causes)g
(the)g(output)g(to)g(b)s(e)f(assigned)h(to)h(the)f(v)-5
-b(ariable)39 b Fr(v)-5 b(ar)630 1049 y Fu(rather)30 b(than)g(b)s(eing)g
-(prin)m(ted)g(to)h(the)g(standard)e(output.)630 1181
+b(ariable)39 b Fr(v)-5 b(ar)630 2869 y Fu(rather)30 b(than)g(b)s(eing)g
+(prin)m(ted)g(to)h(the)g(standard)e(output.)630 2997
y(The)36 b Fr(format)i Fu(is)f(a)f(c)m(haracter)i(string)e(whic)m(h)g
(con)m(tains)i(three)e(t)m(yp)s(es)g(of)h(ob)5 b(jects:)53
-b(plain)630 1291 y(c)m(haracters,)41 b(whic)m(h)c(are)h(simply)e
+b(plain)630 3107 y(c)m(haracters,)41 b(whic)m(h)c(are)h(simply)e
(copied)i(to)g(standard)f(output,)i(c)m(haracter)g(escap)s(e)e(se-)630
-1401 y(quences,)g(whic)m(h)f(are)g(con)m(v)m(erted)h(and)f(copied)g(to)
-g(the)g(standard)f(output,)i(and)f(format)630 1510 y(sp)s
+3216 y(quences,)g(whic)m(h)f(are)g(con)m(v)m(erted)h(and)f(copied)g(to)
+g(the)g(standard)f(output,)i(and)f(format)630 3326 y(sp)s
(eci\014cations,)j(eac)m(h)e(of)g(whic)m(h)f(causes)g(prin)m(ting)g(of)
h(the)f(next)h(successiv)m(e)g Fr(argumen)m(t)p Fu(.)630
-1620 y(In)24 b(addition)h(to)g(the)g(standard)f Ft(printf\(1\))e
+3435 y(In)24 b(addition)h(to)g(the)g(standard)f Ft(printf\(1\))e
Fu(formats,)27 b Ft(printf)c Fu(in)m(terprets)i(the)f(follo)m(wing)630
-1729 y(extensions:)630 1885 y Ft(\045b)384 b Fu(Causes)38
+3545 y(extensions:)630 3692 y Ft(\045b)384 b Fu(Causes)38
b Ft(printf)f Fu(to)j(expand)e(bac)m(kslash)h(escap)s(e)g(sequences)g
-(in)f(the)h(cor-)1110 1995 y(resp)s(onding)31 b Fr(argumen)m(t)j
+(in)f(the)h(cor-)1110 3802 y(resp)s(onding)31 b Fr(argumen)m(t)j
Fu(in)e(the)h(same)f(w)m(a)m(y)h(as)g Ft(echo)c(-e)j
-Fu(\(see)h(Section)g(4.2)1110 2104 y([Bash)e(Builtins],)g(page)g(51\).)
-630 2260 y Ft(\045q)384 b Fu(Causes)32 b Ft(printf)e
+Fu(\(see)h(Section)g(4.2)1110 3912 y([Bash)e(Builtins],)g(page)g(55\).)
+630 4059 y Ft(\045q)384 b Fu(Causes)32 b Ft(printf)e
Fu(to)i(output)g(the)g(corresp)s(onding)f Fr(argumen)m(t)j
-Fu(in)d(a)i(format)1110 2370 y(that)e(can)g(b)s(e)e(reused)h(as)h
-(shell)f(input.)630 2525 y Ft(\045\()p Fj(datefmt)p Ft(\)T)1110
-2635 y Fu(Causes)f Ft(printf)e Fu(to)j(output)f(the)g(date-time)i
-(string)e(resulting)h(from)e(using)1110 2744 y Fr(datefm)m(t)45
-b Fu(as)d(a)g(format)g(string)g(for)g Ft(strftime)p Fu(\(3\).)74
-b(The)41 b(corresp)s(onding)1110 2854 y Fr(argumen)m(t)h
-Fu(is)e(an)g(in)m(teger)i(represen)m(ting)e(the)g(n)m(um)m(b)s(er)f(of)
-h(seconds)g(since)1110 2964 y(the)24 b(ep)s(o)s(c)m(h.)38
-b(Tw)m(o)24 b(sp)s(ecial)h(argumen)m(t)f(v)-5 b(alues)24
-b(ma)m(y)h(b)s(e)e(used:)36 b(-1)25 b(represen)m(ts)1110
-3073 y(the)30 b(curren)m(t)g(time,)h(and)e(-2)i(represen)m(ts)f(the)g
-(time)h(the)f(shell)g(w)m(as)g(in)m(v)m(ok)m(ed.)1110
-3183 y(If)38 b(no)g(argumen)m(t)h(is)f(sp)s(eci\014ed,)i(con)m(v)m
+Fu(in)d(a)i(format)1110 4169 y(that)e(can)g(b)s(e)e(reused)h(as)h
+(shell)f(input.)630 4316 y Ft(\045Q)384 b Fu(lik)m(e)34
+b Ft(\045q)p Fu(,)f(but)f(applies)g(an)m(y)h(supplied)e(precision)i(to)
+h(the)e Fr(argumen)m(t)j Fu(b)s(efore)1110 4425 y(quoting)c(it.)630
+4573 y Ft(\045\()p Fj(datefmt)p Ft(\)T)1110 4682 y Fu(Causes)e
+Ft(printf)e Fu(to)j(output)f(the)g(date-time)i(string)e(resulting)h
+(from)e(using)1110 4792 y Fr(datefm)m(t)45 b Fu(as)d(a)g(format)g
+(string)g(for)g Ft(strftime)p Fu(\(3\).)74 b(The)41 b(corresp)s(onding)
+1110 4902 y Fr(argumen)m(t)h Fu(is)e(an)g(in)m(teger)i(represen)m(ting)
+e(the)g(n)m(um)m(b)s(er)f(of)h(seconds)g(since)1110 5011
+y(the)24 b(ep)s(o)s(c)m(h.)38 b(Tw)m(o)24 b(sp)s(ecial)h(argumen)m(t)f
+(v)-5 b(alues)24 b(ma)m(y)h(b)s(e)e(used:)36 b(-1)25
+b(represen)m(ts)1110 5121 y(the)30 b(curren)m(t)g(time,)h(and)e(-2)i
+(represen)m(ts)f(the)g(time)h(the)f(shell)g(w)m(as)g(in)m(v)m(ok)m(ed.)
+1110 5230 y(If)38 b(no)g(argumen)m(t)h(is)f(sp)s(eci\014ed,)i(con)m(v)m
(ersion)f(b)s(eha)m(v)m(es)g(as)g(if)f(-1)h(had)f(b)s(een)1110
-3292 y(giv)m(en.)k(This)29 b(is)i(an)f(exception)i(to)f(the)f(usual)g
-Ft(printf)f Fu(b)s(eha)m(vior.)630 3448 y(The)d(\045b,)h(\045q,)h(and)e
-(\045T)g(directiv)m(es)j(all)e(use)g(the)g(\014eld)f(width)g(and)h
-(precision)g(argumen)m(ts)630 3558 y(from)f(the)g(format)h(sp)s
-(eci\014cation)g(and)e(write)i(that)f(man)m(y)h(b)m(ytes)f(from)g(\(or)
-h(use)e(that)i(wide)630 3667 y(a)42 b(\014eld)g(for\))g(the)h(expanded)
-e(argumen)m(t,)k(whic)m(h)d(usually)g(con)m(tains)h(more)f(c)m
-(haracters)630 3777 y(than)30 b(the)h(original.)630 3910
-y(Argumen)m(ts)d(to)h(non-string)e(format)i(sp)s(eci\014ers)e(are)h
-(treated)h(as)g(C)e(language)j(constan)m(ts,)630 4019
-y(except)22 b(that)g(a)g(leading)g(plus)e(or)h(min)m(us)f(sign)i(is)f
-(allo)m(w)m(ed,)k(and)c(if)g(the)g(leading)h(c)m(haracter)h(is)630
-4129 y(a)i(single)g(or)f(double)h(quote,)h(the)f(v)-5
-b(alue)25 b(is)f(the)h(ASCI)s(I)e(v)-5 b(alue)25 b(of)f(the)h(follo)m
-(wing)h(c)m(haracter.)630 4261 y(The)31 b Fr(format)i
-Fu(is)f(reused)e(as)i(necessary)f(to)i(consume)e(all)h(of)f(the)h
-Fr(argumen)m(ts)p Fu(.)44 b(If)30 b(the)i Fr(for-)630
-4371 y(mat)c Fu(requires)e(more)g Fr(argumen)m(ts)k Fu(than)25
-b(are)i(supplied,)e(the)h(extra)h(format)f(sp)s(eci\014cations)630
-4481 y(b)s(eha)m(v)m(e)j(as)g(if)f(a)h(zero)g(v)-5 b(alue)29
-b(or)g(n)m(ull)f(string,)h(as)g(appropriate,)g(had)f(b)s(een)g
-(supplied.)38 b(The)630 4590 y(return)29 b(v)-5 b(alue)31
-b(is)g(zero)g(on)f(success,)h(non-zero)g(on)f(failure.)150
-4746 y Ft(read)870 4879 y(read)47 b([-ers])f([-a)h Fj(aname)p
+5340 y(giv)m(en.)k(This)29 b(is)i(an)f(exception)i(to)f(the)f(usual)g
+Ft(printf)f Fu(b)s(eha)m(vior.)p eop end
+%%Page: 63 69
+TeXDict begin 63 68 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(63)630 299 y(The)26
+b(\045b,)h(\045q,)h(and)e(\045T)g(directiv)m(es)j(all)e(use)g(the)g
+(\014eld)f(width)g(and)h(precision)g(argumen)m(ts)630
+408 y(from)f(the)g(format)h(sp)s(eci\014cation)g(and)e(write)i(that)f
+(man)m(y)h(b)m(ytes)f(from)g(\(or)h(use)e(that)i(wide)630
+518 y(a)42 b(\014eld)g(for\))g(the)h(expanded)e(argumen)m(t,)k(whic)m
+(h)d(usually)g(con)m(tains)h(more)f(c)m(haracters)630
+628 y(than)30 b(the)h(original.)630 760 y(Argumen)m(ts)d(to)h
+(non-string)e(format)i(sp)s(eci\014ers)e(are)h(treated)h(as)g(C)e
+(language)j(constan)m(ts,)630 870 y(except)22 b(that)g(a)g(leading)g
+(plus)e(or)h(min)m(us)f(sign)i(is)f(allo)m(w)m(ed,)k(and)c(if)g(the)g
+(leading)h(c)m(haracter)h(is)630 979 y(a)i(single)g(or)f(double)h
+(quote,)h(the)f(v)-5 b(alue)25 b(is)f(the)h(ASCI)s(I)e(v)-5
+b(alue)25 b(of)f(the)h(follo)m(wing)h(c)m(haracter.)630
+1112 y(The)31 b Fr(format)i Fu(is)f(reused)e(as)i(necessary)f(to)i
+(consume)e(all)h(of)f(the)h Fr(argumen)m(ts)p Fu(.)44
+b(If)30 b(the)i Fr(for-)630 1222 y(mat)c Fu(requires)e(more)g
+Fr(argumen)m(ts)k Fu(than)25 b(are)i(supplied,)e(the)h(extra)h(format)f
+(sp)s(eci\014cations)630 1331 y(b)s(eha)m(v)m(e)j(as)g(if)f(a)h(zero)g
+(v)-5 b(alue)29 b(or)g(n)m(ull)f(string,)h(as)g(appropriate,)g(had)f(b)
+s(een)g(supplied.)38 b(The)630 1441 y(return)29 b(v)-5
+b(alue)31 b(is)g(zero)g(on)f(success,)h(non-zero)g(on)f(failure.)150
+1597 y Ft(read)870 1729 y(read)47 b([-ers])f([-a)h Fj(aname)p
Ft(])f([-d)h Fj(delim)p Ft(])f([-i)h Fj(text)p Ft(])f([-n)h
-Fj(nchars)p Ft(])1061 4988 y([-N)g Fj(nchars)p Ft(])f([-p)h
+Fj(nchars)p Ft(])1061 1839 y([-N)g Fj(nchars)p Ft(])f([-p)h
Fj(prompt)p Ft(])e([-t)i Fj(timeout)p Ft(])f([-u)h Fj(fd)p
-Ft(])g([)p Fj(name)f Ft(...)o(])630 5121 y Fu(One)38
+Ft(])g([)p Fj(name)f Ft(...)o(])630 1972 y Fu(One)38
b(line)g(is)g(read)g(from)g(the)g(standard)f(input,)j(or)e(from)f(the)i
-(\014le)f(descriptor)g Fr(fd)j Fu(sup-)630 5230 y(plied)34
+(\014le)f(descriptor)g Fr(fd)j Fu(sup-)630 2081 y(plied)34
b(as)h(an)f(argumen)m(t)h(to)g(the)f Ft(-u)g Fu(option,)i(split)f(in)m
(to)g(w)m(ords)f(as)g(describ)s(ed)g(ab)s(o)m(v)m(e)h(in)630
-5340 y(Section)j(3.5.7)h([W)-8 b(ord)38 b(Splitting],)i(page)e(32,)j
-(and)36 b(the)i(\014rst)f(w)m(ord)g(is)g(assigned)h(to)g(the)p
-eop end
-%%Page: 59 65
-TeXDict begin 59 64 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(59)630 299 y(\014rst)32
-b Fr(name)p Fu(,)h(the)g(second)g(w)m(ord)f(to)h(the)g(second)g
-Fr(name)p Fu(,)g(and)f(so)h(on.)47 b(If)32 b(there)h(are)g(more)630
-408 y(w)m(ords)39 b(than)g(names,)j(the)e(remaining)f(w)m(ords)g(and)g
-(their)h(in)m(terv)m(ening)g(delimiters)h(are)630 518
-y(assigned)29 b(to)h(the)g(last)g Fr(name)p Fu(.)40 b(If)29
-b(there)g(are)h(few)m(er)f(w)m(ords)g(read)g(from)g(the)g(input)g
-(stream)630 628 y(than)35 b(names,)i(the)e(remaining)h(names)f(are)h
-(assigned)f(empt)m(y)h(v)-5 b(alues.)56 b(The)34 b(c)m(haracters)630
-737 y(in)e(the)h(v)-5 b(alue)33 b(of)g(the)g Ft(IFS)f
-Fu(v)-5 b(ariable)33 b(are)h(used)d(to)j(split)f(the)g(line)g(in)m(to)g
-(w)m(ords)g(using)f(the)630 847 y(same)d(rules)f(the)g(shell)h(uses)f
-(for)g(expansion)g(\(describ)s(ed)g(ab)s(o)m(v)m(e)i(in)e(Section)h
-(3.5.7)h([W)-8 b(ord)630 956 y(Splitting],)38 b(page)f(32\).)60
-b(The)35 b(bac)m(kslash)i(c)m(haracter)h(`)p Ft(\\)p
-Fu(')e(ma)m(y)h(b)s(e)f(used)f(to)i(remo)m(v)m(e)h(an)m(y)630
-1066 y(sp)s(ecial)31 b(meaning)g(for)f(the)g(next)h(c)m(haracter)h
-(read)e(and)g(for)g(line)h(con)m(tin)m(uation.)630 1196
-y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h
-(meanings:)630 1348 y Ft(-a)e Fj(aname)114 b Fu(The)34
+2191 y(Section)j(3.5.7)h([W)-8 b(ord)38 b(Splitting],)i(page)e(35,)j
+(and)36 b(the)i(\014rst)f(w)m(ord)g(is)g(assigned)h(to)g(the)630
+2300 y(\014rst)32 b Fr(name)p Fu(,)h(the)g(second)g(w)m(ord)f(to)h(the)
+g(second)g Fr(name)p Fu(,)g(and)f(so)h(on.)47 b(If)32
+b(there)h(are)g(more)630 2410 y(w)m(ords)39 b(than)g(names,)j(the)e
+(remaining)f(w)m(ords)g(and)g(their)h(in)m(terv)m(ening)g(delimiters)h
+(are)630 2519 y(assigned)29 b(to)h(the)g(last)g Fr(name)p
+Fu(.)40 b(If)29 b(there)g(are)h(few)m(er)f(w)m(ords)g(read)g(from)g
+(the)g(input)g(stream)630 2629 y(than)35 b(names,)i(the)e(remaining)h
+(names)f(are)h(assigned)f(empt)m(y)h(v)-5 b(alues.)56
+b(The)34 b(c)m(haracters)630 2739 y(in)e(the)h(v)-5 b(alue)33
+b(of)g(the)g Ft(IFS)f Fu(v)-5 b(ariable)33 b(are)h(used)d(to)j(split)f
+(the)g(line)g(in)m(to)g(w)m(ords)g(using)f(the)630 2848
+y(same)d(rules)f(the)g(shell)h(uses)f(for)g(expansion)g(\(describ)s(ed)
+g(ab)s(o)m(v)m(e)i(in)e(Section)h(3.5.7)h([W)-8 b(ord)630
+2958 y(Splitting],)38 b(page)f(35\).)60 b(The)35 b(bac)m(kslash)i(c)m
+(haracter)h(`)p Ft(\\)p Fu(')e(ma)m(y)h(b)s(e)f(used)f(to)i(remo)m(v)m
+(e)h(an)m(y)630 3067 y(sp)s(ecial)31 b(meaning)g(for)f(the)g(next)h(c)m
+(haracter)h(read)e(and)g(for)g(line)h(con)m(tin)m(uation.)630
+3200 y(Options,)f(if)h(supplied,)e(ha)m(v)m(e)i(the)g(follo)m(wing)h
+(meanings:)630 3356 y Ft(-a)e Fj(aname)114 b Fu(The)34
b(w)m(ords)f(are)i(assigned)f(to)h(sequen)m(tial)h(indices)e(of)g(the)g
-(arra)m(y)h(v)-5 b(ariable)1110 1457 y Fr(aname)p Fu(,)29
+(arra)m(y)h(v)-5 b(ariable)1110 3465 y Fr(aname)p Fu(,)29
b(starting)h(at)f(0.)40 b(All)29 b(elemen)m(ts)h(are)e(remo)m(v)m(ed)i
-(from)d Fr(aname)34 b Fu(b)s(efore)1110 1567 y(the)d(assignmen)m(t.)41
+(from)d Fr(aname)34 b Fu(b)s(efore)1110 3575 y(the)d(assignmen)m(t.)41
b(Other)30 b Fr(name)36 b Fu(argumen)m(ts)30 b(are)h(ignored.)630
-1718 y Ft(-d)f Fj(delim)114 b Fu(The)41 b(\014rst)h(c)m(haracter)h(of)f
+3731 y Ft(-d)f Fj(delim)114 b Fu(The)41 b(\014rst)h(c)m(haracter)h(of)f
Fr(delim)g Fu(is)g(used)g(to)g(terminate)h(the)f(input)f(line,)1110
-1828 y(rather)31 b(than)g(newline.)42 b(If)30 b Fr(delim)h
+3840 y(rather)31 b(than)g(newline.)42 b(If)30 b Fr(delim)h
Fu(is)g(the)h(empt)m(y)f(string,)g Ft(read)f Fu(will)h(termi-)1110
-1937 y(nate)g(a)g(line)f(when)g(it)h(reads)f(a)h(NUL)f(c)m(haracter.)
-630 2089 y Ft(-e)384 b Fu(Readline)46 b(\(see)g(Chapter)e(8)h([Command)
-f(Line)h(Editing],)50 b(page)45 b(111\))i(is)1110 2198
+3950 y(nate)g(a)g(line)f(when)g(it)h(reads)f(a)h(NUL)f(c)m(haracter.)
+630 4106 y Ft(-e)384 b Fu(Readline)46 b(\(see)g(Chapter)e(8)h([Command)
+f(Line)h(Editing],)50 b(page)45 b(117\))i(is)1110 4215
y(used)37 b(to)i(obtain)g(the)f(line.)65 b(Readline)39
b(uses)e(the)i(curren)m(t)f(\(or)g(default,)j(if)1110
-2308 y(line)h(editing)g(w)m(as)g(not)g(previously)f(activ)m(e\))k
-(editing)d(settings,)j(but)c(uses)1110 2418 y(Readline's)31
-b(default)g(\014lename)f(completion.)630 2569 y Ft(-i)g
+4325 y(line)h(editing)g(w)m(as)g(not)g(previously)f(activ)m(e\))k
+(editing)d(settings,)j(but)c(uses)1110 4434 y(Readline's)31
+b(default)g(\014lename)f(completion.)630 4590 y Ft(-i)g
Fj(text)162 b Fu(If)36 b(Readline)i(is)f(b)s(eing)g(used)f(to)h(read)g
(the)g(line,)j Fr(text)f Fu(is)e(placed)h(in)m(to)g(the)1110
-2679 y(editing)31 b(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)630
-2830 y Ft(-n)f Fj(nchars)66 b Ft(read)38 b Fu(returns)f(after)j
+4700 y(editing)31 b(bu\013er)e(b)s(efore)h(editing)h(b)s(egins.)630
+4855 y Ft(-n)f Fj(nchars)66 b Ft(read)38 b Fu(returns)f(after)j
(reading)f Fr(nc)m(hars)j Fu(c)m(haracters)e(rather)f(than)g(w)m
-(aiting)1110 2939 y(for)d(a)h(complete)h(line)f(of)g(input,)g(but)f
-(honors)g(a)h(delimiter)g(if)f(few)m(er)h(than)1110 3049
+(aiting)1110 4965 y(for)d(a)h(complete)h(line)f(of)g(input,)g(but)f
+(honors)g(a)h(delimiter)g(if)f(few)m(er)h(than)1110 5075
y Fr(nc)m(hars)d Fu(c)m(haracters)e(are)e(read)h(b)s(efore)f(the)g
-(delimiter.)630 3200 y Ft(-N)g Fj(nchars)66 b Ft(read)39
+(delimiter.)630 5230 y Ft(-N)g Fj(nchars)66 b Ft(read)39
b Fu(returns)f(after)j(reading)e(exactly)j Fr(nc)m(hars)h
-Fu(c)m(haracters)f(rather)d(than)1110 3310 y(w)m(aiting)32
+Fu(c)m(haracters)f(rather)d(than)1110 5340 y(w)m(aiting)32
b(for)f(a)g(complete)i(line)e(of)g(input,)g(unless)f(EOF)h(is)g(encoun)
-m(tered)g(or)1110 3420 y Ft(read)f Fu(times)i(out.)43
-b(Delimiter)33 b(c)m(haracters)f(encoun)m(tered)g(in)f(the)g(input)g
-(are)1110 3529 y(not)g(treated)h(sp)s(ecially)f(and)f(do)h(not)g(cause)
-g Ft(read)e Fu(to)j(return)d(un)m(til)i Fr(nc)m(hars)1110
-3639 y Fu(c)m(haracters)26 b(are)f(read.)38 b(The)24
-b(result)g(is)h(not)f(split)h(on)f(the)h(c)m(haracters)h(in)e
-Ft(IFS)p Fu(;)1110 3748 y(the)e(in)m(ten)m(t)i(is)e(that)h(the)f(v)-5
+m(tered)g(or)p eop end
+%%Page: 64 70
+TeXDict begin 64 69 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(64)1110 299 y
+Ft(read)30 b Fu(times)i(out.)43 b(Delimiter)33 b(c)m(haracters)f
+(encoun)m(tered)g(in)f(the)g(input)g(are)1110 408 y(not)g(treated)h(sp)
+s(ecially)f(and)f(do)h(not)g(cause)g Ft(read)e Fu(to)j(return)d(un)m
+(til)i Fr(nc)m(hars)1110 518 y Fu(c)m(haracters)26 b(are)f(read.)38
+b(The)24 b(result)g(is)h(not)f(split)h(on)f(the)h(c)m(haracters)h(in)e
+Ft(IFS)p Fu(;)1110 628 y(the)e(in)m(ten)m(t)i(is)e(that)h(the)f(v)-5
b(ariable)23 b(is)f(assigned)g(exactly)i(the)e(c)m(haracters)i(read)
-1110 3858 y(\(with)30 b(the)h(exception)h(of)e(bac)m(kslash;)h(see)g
-(the)g Ft(-r)f Fu(option)h(b)s(elo)m(w\).)630 4009 y
-Ft(-p)f Fj(prompt)66 b Fu(Displa)m(y)38 b Fr(prompt)p
-Fu(,)g(without)e(a)h(trailing)h(newline,)h(b)s(efore)d(attempting)i(to)
-1110 4119 y(read)f(an)m(y)h(input.)60 b(The)37 b(prompt)g(is)g(displa)m
-(y)m(ed)h(only)f(if)g(input)g(is)g(coming)1110 4228 y(from)30
-b(a)h(terminal.)630 4380 y Ft(-r)384 b Fu(If)21 b(this)h(option)g(is)f
+1110 737 y(\(with)30 b(the)h(exception)h(of)e(bac)m(kslash;)h(see)g
+(the)g Ft(-r)f Fu(option)h(b)s(elo)m(w\).)630 894 y Ft(-p)f
+Fj(prompt)66 b Fu(Displa)m(y)38 b Fr(prompt)p Fu(,)g(without)e(a)h
+(trailing)h(newline,)h(b)s(efore)d(attempting)i(to)1110
+1004 y(read)f(an)m(y)h(input.)60 b(The)37 b(prompt)g(is)g(displa)m(y)m
+(ed)h(only)f(if)g(input)g(is)g(coming)1110 1114 y(from)30
+b(a)h(terminal.)630 1271 y Ft(-r)384 b Fu(If)21 b(this)h(option)g(is)f
(giv)m(en,)k(bac)m(kslash)d(do)s(es)f(not)h(act)h(as)f(an)f(escap)s(e)h
-(c)m(haracter.)1110 4489 y(The)30 b(bac)m(kslash)i(is)f(considered)g
+(c)m(haracter.)1110 1380 y(The)30 b(bac)m(kslash)i(is)f(considered)g
(to)h(b)s(e)e(part)h(of)g(the)g(line.)43 b(In)30 b(particular,)i(a)1110
-4599 y(bac)m(kslash-newline)26 b(pair)e(ma)m(y)h(not)g(then)g(b)s(e)f
-(used)g(as)h(a)g(line)g(con)m(tin)m(uation.)630 4750
+1490 y(bac)m(kslash-newline)26 b(pair)e(ma)m(y)h(not)g(then)g(b)s(e)f
+(used)g(as)h(a)g(line)g(con)m(tin)m(uation.)630 1647
y Ft(-s)384 b Fu(Silen)m(t)28 b(mo)s(de.)40 b(If)27 b(input)f(is)i
(coming)g(from)f(a)h(terminal,)h(c)m(haracters)g(are)f(not)1110
-4860 y(ec)m(ho)s(ed.)630 5011 y Ft(-t)i Fj(timeout)1110
-5121 y Fu(Cause)42 b Ft(read)g Fu(to)h(time)h(out)f(and)f(return)f
-(failure)i(if)g(a)g(complete)h(line)f(of)1110 5230 y(input)26
-b(\(or)h(a)g(sp)s(eci\014ed)f(n)m(um)m(b)s(er)g(of)h(c)m(haracters\))h
-(is)f(not)g(read)g(within)f Fr(time-)1110 5340 y(out)37
-b Fu(seconds.)53 b Fr(timeout)38 b Fu(ma)m(y)d(b)s(e)f(a)h(decimal)h(n)
-m(um)m(b)s(er)d(with)h(a)h(fractional)p eop end
-%%Page: 60 66
-TeXDict begin 60 65 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(60)1110 299 y(p)s(ortion)29
-b(follo)m(wing)h(the)f(decimal)h(p)s(oin)m(t.)40 b(This)29
-b(option)g(is)g(only)g(e\013ectiv)m(e)j(if)1110 408 y
-Ft(read)j Fu(is)i(reading)g(input)e(from)h(a)h(terminal,)i(pip)s(e,)e
-(or)g(other)f(sp)s(ecial)i(\014le;)1110 518 y(it)31 b(has)g(no)g
-(e\013ect)h(when)e(reading)h(from)g(regular)g(\014les.)42
-b(If)30 b Ft(read)g Fu(times)h(out,)1110 628 y Ft(read)d
-Fu(sa)m(v)m(es)j(an)m(y)f(partial)h(input)d(read)i(in)m(to)h(the)e(sp)s
-(eci\014ed)g(v)-5 b(ariable)31 b Fr(name)p Fu(.)1110
-737 y(If)k Fr(timeout)j Fu(is)e(0,)h Ft(read)e Fu(returns)f
-(immediately)-8 b(,)39 b(without)c(trying)h(to)g(read)1110
-847 y(an)m(y)c(data.)44 b(The)31 b(exit)h(status)f(is)h(0)f(if)h(input)
-e(is)h(a)m(v)-5 b(ailable)34 b(on)d(the)h(sp)s(eci\014ed)1110
-956 y(\014le)g(descriptor,)g(non-zero)h(otherwise.)46
-b(The)31 b(exit)i(status)f(is)g(greater)h(than)1110 1066
-y(128)f(if)e(the)h(timeout)g(is)f(exceeded.)630 1225
-y Ft(-u)g Fj(fd)258 b Fu(Read)31 b(input)e(from)h(\014le)g(descriptor)h
-Fr(fd)p Fu(.)630 1385 y(If)h(no)g Fr(name)5 b Fu(s)33
-b(are)f(supplied,)g(the)h(line)g(read,)g(without)f(the)h(ending)f
-(delimiter)h(but)e(oth-)630 1494 y(erwise)36 b(unmo)s(di\014ed,)e(is)i
-(assigned)f(to)h(the)g(v)-5 b(ariable)36 b Ft(REPLY)p
-Fu(.)55 b(The)34 b(exit)j(status)e(is)h(zero,)630 1604
-y(unless)i(end-of-\014le)h(is)f(encoun)m(tered,)j Ft(read)d
-Fu(times)h(out)f(\(in)h(whic)m(h)f(case)h(the)g(status)g(is)630
-1714 y(greater)31 b(than)f(128\),)i(a)e(v)-5 b(ariable)30
+1757 y(ec)m(ho)s(ed.)630 1914 y Ft(-t)i Fj(timeout)1110
+2024 y Fu(Cause)23 b Ft(read)f Fu(to)i(time)f(out)h(and)e(return)g
+(failure)h(if)g(a)h(complete)g(line)g(of)f(input)1110
+2133 y(\(or)h(a)f(sp)s(eci\014ed)g(n)m(um)m(b)s(er)f(of)i(c)m
+(haracters\))h(is)e(not)h(read)f(within)g Fr(timeout)j
+Fu(sec-)1110 2243 y(onds.)43 b Fr(timeout)34 b Fu(ma)m(y)e(b)s(e)e(a)i
+(decimal)g(n)m(um)m(b)s(er)e(with)h(a)h(fractional)g(p)s(ortion)1110
+2352 y(follo)m(wing)39 b(the)f(decimal)g(p)s(oin)m(t.)63
+b(This)37 b(option)h(is)g(only)f(e\013ectiv)m(e)k(if)c
+Ft(read)1110 2462 y Fu(is)c(reading)h(input)e(from)h(a)h(terminal,)h
+(pip)s(e,)e(or)h(other)f(sp)s(ecial)h(\014le;)h(it)f(has)1110
+2572 y(no)f(e\013ect)i(when)d(reading)i(from)f(regular)g(\014les.)50
+b(If)33 b Ft(read)f Fu(times)i(out,)g Ft(read)1110 2681
+y Fu(sa)m(v)m(es)41 b(an)m(y)f(partial)h(input)e(read)g(in)m(to)i(the)f
+(sp)s(eci\014ed)f(v)-5 b(ariable)40 b Fr(name)p Fu(.)69
+b(If)1110 2791 y Fr(timeout)31 b Fu(is)c(0,)i Ft(read)d
+Fu(returns)h(immediately)-8 b(,)30 b(without)d(trying)h(to)g(read)g(an)
+m(y)1110 2900 y(data.)49 b(The)33 b(exit)h(status)f(is)g(0)g(if)g
+(input)f(is)h(a)m(v)-5 b(ailable)36 b(on)c(the)i(sp)s(eci\014ed)e
+(\014le)1110 3010 y(descriptor,)37 b(or)e(the)h(read)f(will)h(return)e
+(EOF,)h(non-zero)h(otherwise.)56 b(The)1110 3120 y(exit)31
+b(status)g(is)f(greater)i(than)e(128)i(if)e(the)h(timeout)g(is)f
+(exceeded.)630 3277 y Ft(-u)g Fj(fd)258 b Fu(Read)31
+b(input)e(from)h(\014le)g(descriptor)h Fr(fd)p Fu(.)630
+3434 y(If)h(no)g Fr(name)5 b Fu(s)33 b(are)f(supplied,)g(the)h(line)g
+(read,)g(without)f(the)h(ending)f(delimiter)h(but)e(oth-)630
+3544 y(erwise)36 b(unmo)s(di\014ed,)e(is)i(assigned)f(to)h(the)g(v)-5
+b(ariable)36 b Ft(REPLY)p Fu(.)55 b(The)34 b(exit)j(status)e(is)h
+(zero,)630 3653 y(unless)i(end-of-\014le)h(is)f(encoun)m(tered,)j
+Ft(read)d Fu(times)h(out)f(\(in)h(whic)m(h)f(case)h(the)g(status)g(is)
+630 3763 y(greater)31 b(than)f(128\),)i(a)e(v)-5 b(ariable)30
b(assignmen)m(t)h(error)f(\(suc)m(h)f(as)i(assigning)f(to)h(a)f
-(readonly)630 1823 y(v)-5 b(ariable\))30 b(o)s(ccurs,)f(or)f(an)h(in)m
+(readonly)630 3872 y(v)-5 b(ariable\))30 b(o)s(ccurs,)f(or)f(an)h(in)m
(v)-5 b(alid)29 b(\014le)g(descriptor)f(is)h(supplied)e(as)i(the)g
-(argumen)m(t)g(to)g Ft(-u)p Fu(.)150 1983 y Ft(readarray)870
-2092 y(readarray)45 b([-d)i Fj(delim)p Ft(])f([-n)h Fj(count)p
+(argumen)m(t)g(to)g Ft(-u)p Fu(.)150 4030 y Ft(readarray)870
+4139 y(readarray)45 b([-d)i Fj(delim)p Ft(])f([-n)h Fj(count)p
Ft(])f([-O)h Fj(origin)p Ft(])f([-s)h Fj(count)p Ft(])1061
-2202 y([-t])g([-u)f Fj(fd)p Ft(])h([-C)g Fj(callback)p
+4249 y([-t])g([-u)f Fj(fd)p Ft(])h([-C)g Fj(callback)p
Ft(])f([-c)g Fj(quantum)p Ft(])g([)p Fj(array)p Ft(])630
-2336 y Fu(Read)38 b(lines)f(from)g(the)h(standard)e(input)g(in)m(to)j
+4382 y Fu(Read)38 b(lines)f(from)g(the)h(standard)e(input)g(in)m(to)j
(the)e(indexed)g(arra)m(y)h(v)-5 b(ariable)38 b Fr(arra)m(y)p
-Fu(,)i(or)630 2446 y(from)30 b(\014le)g(descriptor)h
+Fu(,)i(or)630 4492 y(from)30 b(\014le)g(descriptor)h
Fr(fd)i Fu(if)d(the)h Ft(-u)e Fu(option)i(is)g(supplied.)630
-2580 y(A)f(synon)m(ym)g(for)g Ft(mapfile)p Fu(.)150 2740
-y Ft(source)870 2874 y(source)46 b Fj(filename)630 3009
+4625 y(A)f(synon)m(ym)g(for)g Ft(mapfile)p Fu(.)150 4783
+y Ft(source)870 4916 y(source)46 b Fj(filename)630 5049
y Fu(A)30 b(synon)m(ym)g(for)g Ft(.)g Fu(\(see)i(Section)f(4.1)g
-([Bourne)g(Shell)f(Builtins],)h(page)g(44\).)150 3168
-y Ft(type)870 3303 y(type)47 b([-afptP])e([)p Fj(name)i
-Ft(...)o(])630 3437 y Fu(F)-8 b(or)42 b(eac)m(h)g Fr(name)p
-Fu(,)i(indicate)e(ho)m(w)g(it)f(w)m(ould)g(b)s(e)g(in)m(terpreted)g(if)
-g(used)f(as)i(a)f(command)630 3547 y(name.)630 3681 y(If)g(the)g
-Ft(-t)g Fu(option)h(is)f(used,)j Ft(type)c Fu(prin)m(ts)h(a)h(single)g
-(w)m(ord)f(whic)m(h)g(is)g(one)h(of)g(`)p Ft(alias)p
-Fu(',)630 3791 y(`)p Ft(function)p Fu(',)32 b(`)p Ft(builtin)p
-Fu(',)g(`)p Ft(file)p Fu(')g(or)h(`)p Ft(keyword)p Fu(',)f(if)h
-Fr(name)38 b Fu(is)33 b(an)f(alias,)j(shell)e(function,)630
-3900 y(shell)i(builtin,)g(disk)g(\014le,)h(or)e(shell)h(reserv)m(ed)g
-(w)m(ord,)h(resp)s(ectiv)m(ely)-8 b(.)55 b(If)34 b(the)h
-Fr(name)40 b Fu(is)35 b(not)630 4010 y(found,)29 b(then)h(nothing)h(is)
-f(prin)m(ted,)g(and)g Ft(type)f Fu(returns)g(a)i(failure)g(status.)630
-4144 y(If)25 b(the)g Ft(-p)g Fu(option)h(is)f(used,)h
-Ft(type)e Fu(either)h(returns)g(the)g(name)g(of)h(the)f(disk)g(\014le)g
-(that)h(w)m(ould)630 4254 y(b)s(e)k(executed,)h(or)g(nothing)f(if)g
-Ft(-t)g Fu(w)m(ould)g(not)h(return)e(`)p Ft(file)p Fu('.)630
-4389 y(The)h Ft(-P)g Fu(option)h(forces)g(a)g(path)f(searc)m(h)h(for)g
+([Bourne)g(Shell)f(Builtins],)h(page)g(48\).)150 5207
+y Ft(type)870 5340 y(type)47 b([-afptP])e([)p Fj(name)i
+Ft(...)o(])p eop end
+%%Page: 65 71
+TeXDict begin 65 70 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(65)630 299 y(F)-8
+b(or)42 b(eac)m(h)g Fr(name)p Fu(,)i(indicate)e(ho)m(w)g(it)f(w)m(ould)
+g(b)s(e)g(in)m(terpreted)g(if)g(used)f(as)i(a)f(command)630
+408 y(name.)630 543 y(If)g(the)g Ft(-t)g Fu(option)h(is)f(used,)j
+Ft(type)c Fu(prin)m(ts)h(a)h(single)g(w)m(ord)f(whic)m(h)g(is)g(one)h
+(of)g(`)p Ft(alias)p Fu(',)630 653 y(`)p Ft(function)p
+Fu(',)32 b(`)p Ft(builtin)p Fu(',)g(`)p Ft(file)p Fu(')g(or)h(`)p
+Ft(keyword)p Fu(',)f(if)h Fr(name)38 b Fu(is)33 b(an)f(alias,)j(shell)e
+(function,)630 762 y(shell)i(builtin,)g(disk)g(\014le,)h(or)e(shell)h
+(reserv)m(ed)g(w)m(ord,)h(resp)s(ectiv)m(ely)-8 b(.)55
+b(If)34 b(the)h Fr(name)40 b Fu(is)35 b(not)630 872 y(found,)29
+b(then)h(nothing)h(is)f(prin)m(ted,)g(and)g Ft(type)f
+Fu(returns)g(a)i(failure)g(status.)630 1007 y(If)25 b(the)g
+Ft(-p)g Fu(option)h(is)f(used,)h Ft(type)e Fu(either)h(returns)g(the)g
+(name)g(of)h(the)f(disk)g(\014le)g(that)h(w)m(ould)630
+1116 y(b)s(e)k(executed,)h(or)g(nothing)f(if)g Ft(-t)g
+Fu(w)m(ould)g(not)h(return)e(`)p Ft(file)p Fu('.)630
+1251 y(The)h Ft(-P)g Fu(option)h(forces)g(a)g(path)f(searc)m(h)h(for)g
(eac)m(h)g Fr(name)p Fu(,)g(ev)m(en)g(if)g Ft(-t)f Fu(w)m(ould)g(not)h
-(return)630 4498 y(`)p Ft(file)p Fu('.)630 4633 y(If)f(a)g(command)g
+(return)630 1360 y(`)p Ft(file)p Fu('.)630 1495 y(If)f(a)g(command)g
(is)g(hashed,)f Ft(-p)h Fu(and)f Ft(-P)g Fu(prin)m(t)h(the)g(hashed)f
-(v)-5 b(alue,)31 b(whic)m(h)f(is)g(not)g(neces-)630 4742
+(v)-5 b(alue,)31 b(whic)m(h)f(is)g(not)g(neces-)630 1605
y(sarily)h(the)f(\014le)h(that)g(app)s(ears)e(\014rst)h(in)g
-Ft($PATH)p Fu(.)630 4877 y(If)22 b(the)i Ft(-a)e Fu(option)h(is)g
+Ft($PATH)p Fu(.)630 1739 y(If)22 b(the)i Ft(-a)e Fu(option)h(is)g
(used,)h Ft(type)e Fu(returns)f(all)j(of)f(the)g(places)h(that)f(con)m
-(tain)i(an)d(executable)630 4986 y(named)32 b Fr(\014le)p
+(tain)i(an)d(executable)630 1849 y(named)32 b Fr(\014le)p
Fu(.)49 b(This)32 b(includes)h(aliases)h(and)e(functions,)i(if)f(and)f
-(only)h(if)g(the)g Ft(-p)f Fu(option)i(is)630 5096 y(not)d(also)g
-(used.)630 5230 y(If)f(the)g Ft(-f)g Fu(option)g(is)h(used,)e
+(only)h(if)g(the)g Ft(-p)f Fu(option)i(is)630 1958 y(not)d(also)g
+(used.)630 2093 y(If)f(the)g Ft(-f)g Fu(option)g(is)h(used,)e
Ft(type)g Fu(do)s(es)h(not)h(attempt)g(to)g(\014nd)d(shell)j
-(functions,)f(as)g(with)630 5340 y(the)h Ft(command)d
-Fu(builtin.)p eop end
-%%Page: 61 67
-TeXDict begin 61 66 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(61)630 299 y(The)31
-b(return)f(status)h(is)g(zero)h(if)f(all)h(of)f(the)h
-Fr(names)i Fu(are)e(found,)e(non-zero)i(if)f(an)m(y)g(are)h(not)630
-408 y(found.)150 566 y Ft(typeset)870 700 y(typeset)46
-b([-afFgrxilnrtux])d([-p])k([)p Fj(name)p Ft([=)p Fj(value)p
-Ft(])d(...)o(])630 834 y Fu(The)31 b Ft(typeset)e Fu(command)i(is)g
-(supplied)f(for)h(compatibilit)m(y)i(with)e(the)g(Korn)f(shell.)44
-b(It)31 b(is)630 943 y(a)g(synon)m(ym)f(for)g(the)g Ft(declare)f
-Fu(builtin)h(command.)150 1101 y Ft(ulimit)870 1235 y(ulimit)46
-b([-HS])g(-a)870 1344 y(ulimit)g([-HS])g([-bcdefiklmnpqrstuvxPRT])c([)p
-Fj(limit)p Ft(])630 1478 y(ulimit)25 b Fu(pro)m(vides)h(con)m(trol)i(o)
+(functions,)f(as)g(with)630 2203 y(the)h Ft(command)d
+Fu(builtin.)630 2337 y(The)j(return)e(status)j(is)f(zero)h(if)f(all)g
+(of)h(the)f Fr(name)5 b Fu(s)31 b(are)g(found,)f(non-zero)i(if)f(an)m
+(y)g(are)h(not)630 2447 y(found.)150 2607 y Ft(typeset)870
+2741 y(typeset)46 b([-afFgrxilnrtux])d([-p])k([)p Fj(name)p
+Ft([=)p Fj(value)p Ft(])d(...)o(])630 2876 y Fu(The)31
+b Ft(typeset)e Fu(command)i(is)g(supplied)f(for)h(compatibilit)m(y)i
+(with)e(the)g(Korn)f(shell.)44 b(It)31 b(is)630 2985
+y(a)g(synon)m(ym)f(for)g(the)g Ft(declare)f Fu(builtin)h(command.)150
+3145 y Ft(ulimit)870 3280 y(ulimit)46 b([-HS])g(-a)870
+3389 y(ulimit)g([-HS])g([-bcdefiklmnpqrstuvxPRT])c([)p
+Fj(limit)p Ft(])630 3524 y(ulimit)25 b Fu(pro)m(vides)h(con)m(trol)i(o)
m(v)m(er)g(the)f(resources)f(a)m(v)-5 b(ailable)29 b(to)e(pro)s(cesses)
-f(started)h(b)m(y)g(the)630 1588 y(shell,)i(on)f(systems)g(that)h(allo)
+f(started)h(b)m(y)g(the)630 3634 y(shell,)i(on)f(systems)g(that)h(allo)
m(w)h(suc)m(h)e(con)m(trol.)41 b(If)28 b(an)g(option)h(is)f(giv)m(en,)i
-(it)e(is)h(in)m(terpreted)630 1697 y(as)i(follo)m(ws:)630
-1855 y Ft(-S)384 b Fu(Change)30 b(and)g(rep)s(ort)g(the)g(soft)h(limit)
-g(asso)s(ciated)h(with)e(a)h(resource.)630 2013 y Ft(-H)384
+(it)e(is)h(in)m(terpreted)630 3743 y(as)i(follo)m(ws:)630
+3903 y Ft(-S)384 b Fu(Change)30 b(and)g(rep)s(ort)g(the)g(soft)h(limit)
+g(asso)s(ciated)h(with)e(a)h(resource.)630 4062 y Ft(-H)384
b Fu(Change)30 b(and)g(rep)s(ort)g(the)g(hard)g(limit)h(asso)s(ciated)h
-(with)e(a)h(resource.)630 2171 y Ft(-a)384 b Fu(All)31
+(with)e(a)h(resource.)630 4222 y Ft(-a)384 b Fu(All)31
b(curren)m(t)f(limits)h(are)g(rep)s(orted;)f(no)g(limits)h(are)g(set.)
-630 2328 y Ft(-b)384 b Fu(The)30 b(maxim)m(um)g(so)s(c)m(k)m(et)i
-(bu\013er)e(size.)630 2486 y Ft(-c)384 b Fu(The)30 b(maxim)m(um)g(size)
-h(of)g(core)g(\014les)f(created.)630 2644 y Ft(-d)384
+630 4382 y Ft(-b)384 b Fu(The)30 b(maxim)m(um)g(so)s(c)m(k)m(et)i
+(bu\013er)e(size.)630 4542 y Ft(-c)384 b Fu(The)30 b(maxim)m(um)g(size)
+h(of)g(core)g(\014les)f(created.)630 4701 y Ft(-d)384
b Fu(The)30 b(maxim)m(um)g(size)h(of)g(a)g(pro)s(cess's)f(data)h
-(segmen)m(t.)630 2802 y Ft(-e)384 b Fu(The)30 b(maxim)m(um)g(sc)m
+(segmen)m(t.)630 4861 y Ft(-e)384 b Fu(The)30 b(maxim)m(um)g(sc)m
(heduling)h(priorit)m(y)f(\()p Ft(")p Fu(nice)p Ft(")p
-Fu(\).)630 2960 y Ft(-f)384 b Fu(The)30 b(maxim)m(um)g(size)h(of)g
+Fu(\).)630 5021 y Ft(-f)384 b Fu(The)30 b(maxim)m(um)g(size)h(of)g
(\014les)f(written)h(b)m(y)f(the)g(shell)h(and)f(its)h(c)m(hildren.)630
-3118 y Ft(-i)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(p)s
-(ending)e(signals.)630 3275 y Ft(-k)384 b Fu(The)30 b(maxim)m(um)g(n)m
-(um)m(b)s(er)f(of)i(kqueues)f(that)h(ma)m(y)g(b)s(e)e(allo)s(cated.)630
-3433 y Ft(-l)384 b Fu(The)30 b(maxim)m(um)g(size)h(that)g(ma)m(y)g(b)s
-(e)f(lo)s(c)m(k)m(ed)i(in)m(to)f(memory)-8 b(.)630 3591
-y Ft(-m)384 b Fu(The)36 b(maxim)m(um)g(residen)m(t)h(set)g(size)g
-(\(man)m(y)g(systems)f(do)h(not)f(honor)g(this)1110 3701
-y(limit\).)630 3858 y Ft(-n)384 b Fu(The)38 b(maxim)m(um)h(n)m(um)m(b)s
-(er)e(of)i(op)s(en)f(\014le)h(descriptors)g(\(most)g(systems)g(do)1110
-3968 y(not)31 b(allo)m(w)g(this)g(v)-5 b(alue)31 b(to)g(b)s(e)e(set\).)
-630 4126 y Ft(-p)384 b Fu(The)30 b(pip)s(e)f(bu\013er)h(size.)630
-4284 y Ft(-q)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(b)m
-(ytes)g(in)f Fm(posix)f Fu(message)j(queues.)630 4441
+5180 y Ft(-i)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(p)s
+(ending)e(signals.)630 5340 y Ft(-k)384 b Fu(The)30 b(maxim)m(um)g(n)m
+(um)m(b)s(er)f(of)i(kqueues)f(that)h(ma)m(y)g(b)s(e)e(allo)s(cated.)p
+eop end
+%%Page: 66 72
+TeXDict begin 66 71 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(66)630 299 y Ft(-l)384
+b Fu(The)30 b(maxim)m(um)g(size)h(that)g(ma)m(y)g(b)s(e)f(lo)s(c)m(k)m
+(ed)i(in)m(to)f(memory)-8 b(.)630 467 y Ft(-m)384 b Fu(The)36
+b(maxim)m(um)g(residen)m(t)h(set)g(size)g(\(man)m(y)g(systems)f(do)h
+(not)f(honor)g(this)1110 576 y(limit\).)630 744 y Ft(-n)384
+b Fu(The)38 b(maxim)m(um)h(n)m(um)m(b)s(er)e(of)i(op)s(en)f(\014le)h
+(descriptors)g(\(most)g(systems)g(do)1110 854 y(not)31
+b(allo)m(w)g(this)g(v)-5 b(alue)31 b(to)g(b)s(e)e(set\).)630
+1022 y Ft(-p)384 b Fu(The)30 b(pip)s(e)f(bu\013er)h(size.)630
+1190 y Ft(-q)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(b)m
+(ytes)g(in)f Fm(posix)f Fu(message)j(queues.)630 1358
y Ft(-r)384 b Fu(The)30 b(maxim)m(um)g(real-time)i(sc)m(heduling)f
-(priorit)m(y)-8 b(.)630 4599 y Ft(-s)384 b Fu(The)30
-b(maxim)m(um)g(stac)m(k)i(size.)630 4757 y Ft(-t)384
+(priorit)m(y)-8 b(.)630 1526 y Ft(-s)384 b Fu(The)30
+b(maxim)m(um)g(stac)m(k)i(size.)630 1694 y Ft(-t)384
b Fu(The)30 b(maxim)m(um)g(amoun)m(t)h(of)f(cpu)g(time)h(in)f(seconds.)
-630 4915 y Ft(-u)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
+630 1862 y Ft(-u)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
(pro)s(cesses)f(a)m(v)-5 b(ailable)33 b(to)e(a)f(single)i(user.)630
-5073 y Ft(-v)384 b Fu(The)41 b(maxim)m(um)h(amoun)m(t)g(of)h(virtual)f
+2030 y Ft(-v)384 b Fu(The)41 b(maxim)m(um)h(amoun)m(t)g(of)h(virtual)f
(memory)g(a)m(v)-5 b(ailable)44 b(to)e(the)g(shell,)1110
-5182 y(and,)30 b(on)g(some)h(systems,)g(to)g(its)g(c)m(hildren.)630
-5340 y Ft(-x)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
-(\014le)f(lo)s(c)m(ks.)p eop end
-%%Page: 62 68
-TeXDict begin 62 67 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(62)630 299 y Ft(-P)384
-b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(pseudoterminals.)630
-478 y Ft(-R)384 b Fu(The)27 b(maxim)m(um)h(time)h(a)f(real-time)i(pro)s
-(cess)d(can)i(run)d(b)s(efore)i(blo)s(c)m(king,)h(in)1110
-587 y(microseconds.)630 766 y Ft(-T)384 b Fu(The)30 b(maxim)m(um)g(n)m
-(um)m(b)s(er)f(of)i(threads.)630 945 y(If)36 b Fr(limit)k
-Fu(is)c(giv)m(en,)k(and)c(the)h Ft(-a)f Fu(option)h(is)f(not)h(used,)h
-Fr(limit)h Fu(is)e(the)g(new)f(v)-5 b(alue)37 b(of)g(the)630
-1055 y(sp)s(eci\014ed)c(resource.)51 b(The)34 b(sp)s(ecial)g
-Fr(limit)j Fu(v)-5 b(alues)34 b Ft(hard)p Fu(,)g Ft(soft)p
-Fu(,)g(and)f Ft(unlimited)e Fu(stand)630 1164 y(for)h(the)g(curren)m(t)
-g(hard)f(limit,)i(the)g(curren)m(t)f(soft)g(limit,)h(and)f(no)g(limit,)
-h(resp)s(ectiv)m(ely)-8 b(.)48 b(A)630 1274 y(hard)24
-b(limit)i(cannot)g(b)s(e)e(increased)h(b)m(y)g(a)h(non-ro)s(ot)f(user)f
-(once)i(it)g(is)f(set;)j(a)d(soft)g(limit)h(ma)m(y)630
-1384 y(b)s(e)37 b(increased)h(up)e(to)j(the)f(v)-5 b(alue)38
-b(of)f(the)h(hard)f(limit.)63 b(Otherwise,)39 b(the)f(curren)m(t)f(v)-5
-b(alue)630 1493 y(of)39 b(the)g(soft)h(limit)g(for)f(the)g(sp)s
-(eci\014ed)f(resource)h(is)g(prin)m(ted,)i(unless)e(the)g
-Ft(-H)f Fu(option)i(is)630 1603 y(supplied.)47 b(When)33
-b(more)g(than)g(one)g(resource)g(is)g(sp)s(eci\014ed,)g(the)g(limit)h
-(name)f(and)f(unit,)630 1712 y(if)27 b(appropriate,)h(are)f(prin)m(ted)
-g(b)s(efore)g(the)g(v)-5 b(alue.)40 b(When)27 b(setting)h(new)e
-(limits,)j(if)e(neither)630 1822 y Ft(-H)38 b Fu(nor)g
-Ft(-S)g Fu(is)h(supplied,)h(b)s(oth)e(the)h(hard)f(and)g(soft)h(limits)
-g(are)g(set.)67 b(If)38 b(no)h(option)g(is)630 1932 y(giv)m(en,)c(then)
-f Ft(-f)e Fu(is)i(assumed.)49 b(V)-8 b(alues)35 b(are)e(in)h(1024-b)m
-(yte)i(incremen)m(ts,)f(except)f(for)f Ft(-t)p Fu(,)630
-2041 y(whic)m(h)e(is)g(in)g(seconds;)h Ft(-R)p Fu(,)g(whic)m(h)f(is)g
-(in)g(microseconds;)h Ft(-p)p Fu(,)g(whic)m(h)f(is)g(in)g(units)g(of)g
-(512-)630 2151 y(b)m(yte)k(blo)s(c)m(ks;)j Ft(-P)p Fu(,)e
-Ft(-T)p Fu(,)f Ft(-b)p Fu(,)h Ft(-k)p Fu(,)f Ft(-n)g
-Fu(and)f Ft(-u)p Fu(,)h(whic)m(h)g(are)g(unscaled)g(v)-5
-b(alues;)37 b(and,)f(when)630 2260 y(in)g Fm(posix)f
-Fu(Mo)s(de)h(\(see)g(Section)h(6.11)g([Bash)g(POSIX)d(Mo)s(de],)k(page)
-f(101\),)i Ft(-c)c Fu(and)g Ft(-f)p Fu(,)630 2370 y(whic)m(h)30
-b(are)h(in)f(512-b)m(yte)j(incremen)m(ts.)630 2514 y(The)h(return)g
-(status)h(is)f(zero)i(unless)e(an)g(in)m(v)-5 b(alid)36
-b(option)f(or)f(argumen)m(t)i(is)e(supplied,)h(or)630
-2624 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f(limit.)
-150 2803 y Ft(unalias)870 2947 y(unalias)46 b([-a])g([)p
-Fj(name)h Ft(...)g(])630 3091 y Fu(Remo)m(v)m(e)42 b(eac)m(h)f
+2140 y(and,)30 b(on)g(some)h(systems,)g(to)g(its)g(c)m(hildren.)630
+2308 y Ft(-x)384 b Fu(The)30 b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i
+(\014le)f(lo)s(c)m(ks.)630 2476 y Ft(-P)384 b Fu(The)30
+b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(pseudoterminals.)630
+2643 y Ft(-R)384 b Fu(The)27 b(maxim)m(um)h(time)h(a)f(real-time)i(pro)
+s(cess)d(can)i(run)d(b)s(efore)i(blo)s(c)m(king,)h(in)1110
+2753 y(microseconds.)630 2921 y Ft(-T)384 b Fu(The)30
+b(maxim)m(um)g(n)m(um)m(b)s(er)f(of)i(threads.)630 3089
+y(If)36 b Fr(limit)k Fu(is)c(giv)m(en,)k(and)c(the)h
+Ft(-a)f Fu(option)h(is)f(not)h(used,)h Fr(limit)h Fu(is)e(the)g(new)f
+(v)-5 b(alue)37 b(of)g(the)630 3199 y(sp)s(eci\014ed)c(resource.)51
+b(The)34 b(sp)s(ecial)g Fr(limit)j Fu(v)-5 b(alues)34
+b Ft(hard)p Fu(,)g Ft(soft)p Fu(,)g(and)f Ft(unlimited)e
+Fu(stand)630 3308 y(for)h(the)g(curren)m(t)g(hard)f(limit,)i(the)g
+(curren)m(t)f(soft)g(limit,)h(and)f(no)g(limit,)h(resp)s(ectiv)m(ely)-8
+b(.)48 b(A)630 3418 y(hard)24 b(limit)i(cannot)g(b)s(e)e(increased)h(b)
+m(y)g(a)h(non-ro)s(ot)f(user)f(once)i(it)g(is)f(set;)j(a)d(soft)g
+(limit)h(ma)m(y)630 3527 y(b)s(e)37 b(increased)h(up)e(to)j(the)f(v)-5
+b(alue)38 b(of)f(the)h(hard)f(limit.)63 b(Otherwise,)39
+b(the)f(curren)m(t)f(v)-5 b(alue)630 3637 y(of)39 b(the)g(soft)h(limit)
+g(for)f(the)g(sp)s(eci\014ed)f(resource)h(is)g(prin)m(ted,)i(unless)e
+(the)g Ft(-H)f Fu(option)i(is)630 3747 y(supplied.)47
+b(When)33 b(more)g(than)g(one)g(resource)g(is)g(sp)s(eci\014ed,)g(the)g
+(limit)h(name)f(and)f(unit,)630 3856 y(if)27 b(appropriate,)h(are)f
+(prin)m(ted)g(b)s(efore)g(the)g(v)-5 b(alue.)40 b(When)27
+b(setting)h(new)e(limits,)j(if)e(neither)630 3966 y Ft(-H)38
+b Fu(nor)g Ft(-S)g Fu(is)h(supplied,)h(b)s(oth)e(the)h(hard)f(and)g
+(soft)h(limits)g(are)g(set.)67 b(If)38 b(no)h(option)g(is)630
+4075 y(giv)m(en,)c(then)f Ft(-f)e Fu(is)i(assumed.)49
+b(V)-8 b(alues)35 b(are)e(in)h(1024-b)m(yte)i(incremen)m(ts,)f(except)f
+(for)f Ft(-t)p Fu(,)630 4185 y(whic)m(h)e(is)g(in)g(seconds;)h
+Ft(-R)p Fu(,)g(whic)m(h)f(is)g(in)g(microseconds;)h Ft(-p)p
+Fu(,)g(whic)m(h)f(is)g(in)g(units)g(of)g(512-)630 4295
+y(b)m(yte)k(blo)s(c)m(ks;)j Ft(-P)p Fu(,)e Ft(-T)p Fu(,)f
+Ft(-b)p Fu(,)h Ft(-k)p Fu(,)f Ft(-n)g Fu(and)f Ft(-u)p
+Fu(,)h(whic)m(h)g(are)g(unscaled)g(v)-5 b(alues;)37 b(and,)f(when)630
+4404 y(in)g Fm(posix)f Fu(Mo)s(de)h(\(see)g(Section)h(6.11)g([Bash)g
+(POSIX)d(Mo)s(de],)k(page)f(106\),)i Ft(-c)c Fu(and)g
+Ft(-f)p Fu(,)630 4514 y(whic)m(h)30 b(are)h(in)f(512-b)m(yte)j
+(incremen)m(ts.)630 4653 y(The)h(return)g(status)h(is)f(zero)i(unless)e
+(an)g(in)m(v)-5 b(alid)36 b(option)f(or)f(argumen)m(t)i(is)e(supplied,)
+h(or)630 4762 y(an)30 b(error)g(o)s(ccurs)g(while)h(setting)g(a)g(new)f
+(limit.)150 4930 y Ft(unalias)870 5069 y(unalias)46 b([-a])g([)p
+Fj(name)h Ft(...)g(])630 5208 y Fu(Remo)m(v)m(e)42 b(eac)m(h)f
Fr(name)k Fu(from)39 b(the)i(list)f(of)g(aliases.)71
b(If)40 b Ft(-a)f Fu(is)h(supplied,)h(all)g(aliases)h(are)630
-3201 y(remo)m(v)m(ed.)g(Aliases)31 b(are)g(describ)s(ed)e(in)h(Section)
-i(6.6)f([Aliases],)h(page)f(94.)150 3471 y Fs(4.3)68
-b(Mo)t(difying)45 b(Shell)g(Beha)l(vior)150 3695 y Fk(4.3.1)63
-b(The)41 b(Set)g(Builtin)150 3842 y Fu(This)35 b(builtin)h(is)g(so)g
+5317 y(remo)m(v)m(ed.)g(Aliases)31 b(are)g(describ)s(ed)e(in)h(Section)
+i(6.6)f([Aliases],)h(page)f(100.)p eop end
+%%Page: 67 73
+TeXDict begin 67 72 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(67)150 299 y Fs(4.3)68
+b(Mo)t(difying)45 b(Shell)g(Beha)l(vior)150 520 y Fk(4.3.1)63
+b(The)41 b(Set)g(Builtin)150 667 y Fu(This)35 b(builtin)h(is)g(so)g
(complicated)i(that)f(it)f(deserv)m(es)h(its)f(o)m(wn)g(section.)59
b Ft(set)35 b Fu(allo)m(ws)j(y)m(ou)e(to)h(c)m(hange)150
-3951 y(the)c(v)-5 b(alues)34 b(of)f(shell)g(options)h(and)e(set)i(the)f
+777 y(the)c(v)-5 b(alues)34 b(of)f(shell)g(options)h(and)e(set)i(the)f
(p)s(ositional)h(parameters,)h(or)e(to)h(displa)m(y)f(the)g(names)h
-(and)150 4061 y(v)-5 b(alues)31 b(of)f(shell)h(v)-5 b(ariables.)150
-4250 y Ft(set)870 4394 y(set)47 b([--abefhkmnptuvxBCEHPT])41
-b([-o)47 b Fj(option-name)p Ft(])e([)p Fj(argument)g
-Ft(...)o(])870 4504 y(set)i([+abefhkmnptuvxBCEHPT])42
-b([+o)47 b Fj(option-name)p Ft(])d([)p Fj(argument)h
-Ft(...)o(])630 4648 y Fu(If)22 b(no)h(options)g(or)g(argumen)m(ts)g
+(and)150 886 y(v)-5 b(alues)31 b(of)f(shell)h(v)-5 b(ariables.)150
+1041 y Ft(set)870 1172 y(set)47 b([-abefhkmnptuvxBCEHPT])42
+b([-o)47 b Fj(option-name)p Ft(])d([--])j([-])g([)p Fj(argument)e
+Ft(...)o(])870 1282 y(set)i([+abefhkmnptuvxBCEHPT])42
+b([+o)47 b Fj(option-name)p Ft(])d([--])j([-])g([)p Fj(argument)e
+Ft(...)o(])630 1414 y Fu(If)22 b(no)h(options)g(or)g(argumen)m(ts)g
(are)g(supplied,)g Ft(set)f Fu(displa)m(ys)g(the)h(names)g(and)f(v)-5
-b(alues)23 b(of)g(all)630 4757 y(shell)j(v)-5 b(ariables)27
+b(alues)23 b(of)g(all)630 1523 y(shell)j(v)-5 b(ariables)27
b(and)e(functions,)h(sorted)g(according)h(to)g(the)f(curren)m(t)f(lo)s
-(cale,)k(in)c(a)i(format)630 4867 y(that)i(ma)m(y)h(b)s(e)e(reused)g
+(cale,)k(in)c(a)i(format)630 1633 y(that)i(ma)m(y)h(b)s(e)e(reused)g
(as)h(input)f(for)h(setting)h(or)e(resetting)i(the)f(curren)m(tly-set)h
-(v)-5 b(ariables.)630 4977 y(Read-only)37 b(v)-5 b(ariables)37
+(v)-5 b(ariables.)630 1743 y(Read-only)37 b(v)-5 b(ariables)37
b(cannot)h(b)s(e)e(reset.)59 b(In)36 b Fm(posix)g Fu(mo)s(de,)i(only)f
-(shell)f(v)-5 b(ariables)38 b(are)630 5086 y(listed.)630
-5230 y(When)29 b(options)g(are)g(supplied,)f(they)h(set)h(or)f(unset)f
+(shell)f(v)-5 b(ariables)38 b(are)630 1852 y(listed.)630
+1984 y(When)29 b(options)g(are)g(supplied,)f(they)h(set)h(or)f(unset)f
(shell)h(attributes.)41 b(Options,)29 b(if)g(sp)s(ec-)630
-5340 y(i\014ed,)h(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)p
-eop end
-%%Page: 63 69
-TeXDict begin 63 68 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(63)630 299 y Ft(-a)384
-b Fu(Eac)m(h)37 b(v)-5 b(ariable)36 b(or)g(function)g(that)g(is)g
-(created)h(or)f(mo)s(di\014ed)f(is)h(giv)m(en)h(the)1110
-408 y(exp)s(ort)28 b(attribute)h(and)f(mark)m(ed)g(for)g(exp)s(ort)g
-(to)h(the)g(en)m(vironmen)m(t)f(of)h(sub-)1110 518 y(sequen)m(t)i
-(commands.)630 682 y Ft(-b)384 b Fu(Cause)44 b(the)h(status)g(of)f
-(terminated)h(bac)m(kground)g(jobs)f(to)h(b)s(e)f(rep)s(orted)1110
-792 y(immediately)-8 b(,)30 b(rather)d(than)f(b)s(efore)h(prin)m(ting)g
-(the)g(next)g(primary)g(prompt.)630 956 y Ft(-e)384 b
-Fu(Exit)65 b(immediately)g(if)f(a)h(pip)s(eline)e(\(see)i(Section)g
-(3.2.3)h([Pip)s(elines],)1110 1066 y(page)56 b(8\),)62
-b(whic)m(h)55 b(ma)m(y)h(consist)f(of)h(a)f(single)h(simple)f(command)g
-(\(see)1110 1176 y(Section)30 b(3.2.2)i([Simple)d(Commands],)g(page)h
-(8\),)h(a)f(list)g(\(see)h(Section)f(3.2.4)1110 1285
-y([Lists],)66 b(page)59 b(9\),)67 b(or)58 b(a)h(comp)s(ound)e(command)h
-(\(see)h(Section)g(3.2.5)1110 1395 y([Comp)s(ound)h(Commands],)70
-b(page)63 b(10\))g(returns)e(a)i(non-zero)f(status.)1110
-1504 y(The)41 b(shell)g(do)s(es)g(not)g(exit)h(if)f(the)h(command)f
-(that)h(fails)f(is)g(part)g(of)h(the)1110 1614 y(command)g(list)h
+2094 y(i\014ed,)h(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630
+2248 y Ft(-a)384 b Fu(Eac)m(h)37 b(v)-5 b(ariable)36
+b(or)g(function)g(that)g(is)g(created)h(or)f(mo)s(di\014ed)f(is)h(giv)m
+(en)h(the)1110 2357 y(exp)s(ort)28 b(attribute)h(and)f(mark)m(ed)g(for)
+g(exp)s(ort)g(to)h(the)g(en)m(vironmen)m(t)f(of)h(sub-)1110
+2467 y(sequen)m(t)i(commands.)630 2621 y Ft(-b)384 b
+Fu(Cause)44 b(the)h(status)g(of)f(terminated)h(bac)m(kground)g(jobs)f
+(to)h(b)s(e)f(rep)s(orted)1110 2730 y(immediately)-8
+b(,)30 b(rather)d(than)f(b)s(efore)h(prin)m(ting)g(the)g(next)g
+(primary)g(prompt.)630 2885 y Ft(-e)384 b Fu(Exit)65
+b(immediately)g(if)f(a)h(pip)s(eline)e(\(see)i(Section)g(3.2.3)h([Pip)s
+(elines],)1110 2994 y(page)51 b(10\),)58 b(whic)m(h)50
+b(ma)m(y)h(consist)h(of)e(a)i(single)f(simple)g(command)f(\(see)1110
+3104 y(Section)30 b(3.2.2)i([Simple)d(Commands],)g(page)h(9\),)h(a)f
+(list)g(\(see)h(Section)f(3.2.4)1110 3213 y([Lists],)60
+b(page)55 b(10\),)60 b(or)54 b(a)g(comp)s(ound)e(command)h(\(see)i
+(Section)f(3.2.5)1110 3323 y([Comp)s(ound)60 b(Commands],)70
+b(page)63 b(11\))g(returns)e(a)i(non-zero)f(status.)1110
+3432 y(The)41 b(shell)g(do)s(es)g(not)g(exit)h(if)f(the)h(command)f
+(that)h(fails)f(is)g(part)g(of)h(the)1110 3542 y(command)g(list)h
(immediately)g(follo)m(wing)g(a)g Ft(while)e Fu(or)h
-Ft(until)e Fu(k)m(eyw)m(ord,)1110 1724 y(part)61 b(of)g(the)g(test)h
+Ft(until)e Fu(k)m(eyw)m(ord,)1110 3652 y(part)61 b(of)g(the)g(test)h
(in)e(an)h Ft(if)f Fu(statemen)m(t,)71 b(part)61 b(of)g(an)m(y)g
-(command)1110 1833 y(executed)50 b(in)e(a)h Ft(&&)f Fu(or)h
+(command)1110 3761 y(executed)50 b(in)e(a)h Ft(&&)f Fu(or)h
Ft(||)f Fu(list)h(except)g(the)g(command)g(follo)m(wing)h(the)1110
-1943 y(\014nal)37 b Ft(&&)g Fu(or)g Ft(||)p Fu(,)h(an)m(y)g(command)f
+3871 y(\014nal)37 b Ft(&&)g Fu(or)g Ft(||)p Fu(,)h(an)m(y)g(command)f
(in)g(a)g(pip)s(eline)g(but)g(the)g(last,)j(or)e(if)f(the)1110
-2052 y(command's)c(return)f(status)h(is)g(b)s(eing)g(in)m(v)m(erted)h
+3980 y(command's)c(return)f(status)h(is)g(b)s(eing)g(in)m(v)m(erted)h
(with)e Ft(!)p Fu(.)48 b(If)33 b(a)g(comp)s(ound)1110
-2162 y(command)g(other)g(than)f(a)i(subshell)d(returns)h(a)h(non-zero)h
-(status)f(b)s(ecause)1110 2271 y(a)k(command)g(failed)g(while)g
+4090 y(command)g(other)g(than)f(a)i(subshell)d(returns)h(a)h(non-zero)h
+(status)f(b)s(ecause)1110 4200 y(a)k(command)g(failed)g(while)g
Ft(-e)f Fu(w)m(as)i(b)s(eing)e(ignored,)j(the)e(shell)g(do)s(es)g(not)
-1110 2381 y(exit.)42 b(A)30 b(trap)g(on)h Ft(ERR)p Fu(,)e(if)i(set,)g
+1110 4309 y(exit.)42 b(A)30 b(trap)g(on)h Ft(ERR)p Fu(,)e(if)i(set,)g
(is)f(executed)i(b)s(efore)e(the)g(shell)h(exits.)1110
-2518 y(This)f(option)h(applies)f(to)h(the)g(shell)g(en)m(vironmen)m(t)g
-(and)f(eac)m(h)h(subshell)f(en-)1110 2628 y(vironmen)m(t)j(separately)i
+4441 y(This)f(option)h(applies)f(to)h(the)g(shell)g(en)m(vironmen)m(t)g
+(and)f(eac)m(h)h(subshell)f(en-)1110 4551 y(vironmen)m(t)j(separately)i
(\(see)f(Section)g(3.7.3)h([Command)d(Execution)i(En-)1110
-2737 y(vironmen)m(t],)i(page)f(40\),)i(and)d(ma)m(y)h(cause)f
-(subshells)g(to)h(exit)g(b)s(efore)f(exe-)1110 2847 y(cuting)d(all)g
-(the)g(commands)f(in)g(the)g(subshell.)1110 2984 y(If)41
+4660 y(vironmen)m(t],)i(page)f(43\),)i(and)d(ma)m(y)h(cause)f
+(subshells)g(to)h(exit)g(b)s(efore)f(exe-)1110 4770 y(cuting)d(all)g
+(the)g(commands)f(in)g(the)g(subshell.)1110 4902 y(If)41
b(a)g(comp)s(ound)e(command)i(or)g(shell)g(function)g(executes)h(in)f
-(a)g(con)m(text)1110 3093 y(where)31 b Ft(-e)g Fu(is)g(b)s(eing)g
+(a)g(con)m(text)1110 5011 y(where)31 b Ft(-e)g Fu(is)g(b)s(eing)g
(ignored,)h(none)f(of)h(the)f(commands)g(executed)h(within)1110
-3203 y(the)j(comp)s(ound)f(command)h(or)g(function)f(b)s(o)s(dy)g(will)
-h(b)s(e)f(a\013ected)j(b)m(y)e(the)1110 3313 y Ft(-e)25
+5121 y(the)j(comp)s(ound)f(command)h(or)g(function)f(b)s(o)s(dy)g(will)
+h(b)s(e)f(a\013ected)j(b)m(y)e(the)1110 5230 y Ft(-e)25
b Fu(setting,)j(ev)m(en)e(if)g Ft(-e)f Fu(is)h(set)g(and)f(a)h(command)
-g(returns)e(a)i(failure)g(status.)1110 3422 y(If)32 b(a)i(comp)s(ound)d
+g(returns)e(a)i(failure)g(status.)1110 5340 y(If)32 b(a)i(comp)s(ound)d
(command)i(or)g(shell)g(function)f(sets)i Ft(-e)e Fu(while)h(executing)
-1110 3532 y(in)40 b(a)h(con)m(text)i(where)d Ft(-e)g
-Fu(is)h(ignored,)j(that)d(setting)h(will)f(not)g(ha)m(v)m(e)h(an)m(y)
-1110 3641 y(e\013ect)g(un)m(til)e(the)h(comp)s(ound)e(command)h(or)g
-(the)g(command)g(con)m(taining)1110 3751 y(the)31 b(function)f(call)h
-(completes.)630 3915 y Ft(-f)384 b Fu(Disable)31 b(\014lename)g
-(expansion)f(\(globbing\).)630 4080 y Ft(-h)384 b Fu(Lo)s(cate)33
-b(and)e(remem)m(b)s(er)h(\(hash\))g(commands)f(as)h(they)g(are)g(lo)s
-(ok)m(ed)h(up)e(for)1110 4189 y(execution.)42 b(This)29
-b(option)i(is)g(enabled)f(b)m(y)g(default.)630 4354 y
-Ft(-k)384 b Fu(All)34 b(argumen)m(ts)g(in)f(the)h(form)f(of)g
-(assignmen)m(t)h(statemen)m(ts)i(are)d(placed)h(in)1110
-4463 y(the)k(en)m(vironmen)m(t)g(for)g(a)g(command,)h(not)f(just)f
-(those)i(that)f(precede)g(the)1110 4573 y(command)30
-b(name.)630 4737 y Ft(-m)384 b Fu(Job)28 b(con)m(trol)h(is)f(enabled)g
-(\(see)h(Chapter)f(7)g([Job)g(Con)m(trol],)i(page)f(107\).)41
-b(All)1110 4847 y(pro)s(cesses)27 b(run)f(in)i(a)g(separate)g(pro)s
+p eop end
+%%Page: 68 74
+TeXDict begin 68 73 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(68)1110 299 y(in)40
+b(a)h(con)m(text)i(where)d Ft(-e)g Fu(is)h(ignored,)j(that)d(setting)h
+(will)f(not)g(ha)m(v)m(e)h(an)m(y)1110 408 y(e\013ect)g(un)m(til)e(the)
+h(comp)s(ound)e(command)h(or)g(the)g(command)g(con)m(taining)1110
+518 y(the)31 b(function)f(call)h(completes.)630 682 y
+Ft(-f)384 b Fu(Disable)31 b(\014lename)g(expansion)f(\(globbing\).)630
+847 y Ft(-h)384 b Fu(Lo)s(cate)33 b(and)e(remem)m(b)s(er)h(\(hash\))g
+(commands)f(as)h(they)g(are)g(lo)s(ok)m(ed)h(up)e(for)1110
+956 y(execution.)42 b(This)29 b(option)i(is)g(enabled)f(b)m(y)g
+(default.)630 1121 y Ft(-k)384 b Fu(All)34 b(argumen)m(ts)g(in)f(the)h
+(form)f(of)g(assignmen)m(t)h(statemen)m(ts)i(are)d(placed)h(in)1110
+1230 y(the)k(en)m(vironmen)m(t)g(for)g(a)g(command,)h(not)f(just)f
+(those)i(that)f(precede)g(the)1110 1340 y(command)30
+b(name.)630 1504 y Ft(-m)384 b Fu(Job)28 b(con)m(trol)h(is)f(enabled)g
+(\(see)h(Chapter)f(7)g([Job)g(Con)m(trol],)i(page)f(113\).)41
+b(All)1110 1614 y(pro)s(cesses)27 b(run)f(in)i(a)g(separate)g(pro)s
(cess)f(group.)40 b(When)27 b(a)h(bac)m(kground)f(job)1110
-4956 y(completes,)32 b(the)f(shell)f(prin)m(ts)g(a)h(line)f(con)m
-(taining)i(its)f(exit)g(status.)630 5121 y Ft(-n)384
+1724 y(completes,)32 b(the)f(shell)f(prin)m(ts)g(a)h(line)f(con)m
+(taining)i(its)f(exit)g(status.)630 1888 y Ft(-n)384
b Fu(Read)38 b(commands)f(but)f(do)i(not)f(execute)i(them.)62
-b(This)37 b(ma)m(y)h(b)s(e)f(used)f(to)1110 5230 y(c)m(hec)m(k)d(a)e
+b(This)37 b(ma)m(y)h(b)s(e)f(used)f(to)1110 1998 y(c)m(hec)m(k)d(a)e
(script)g(for)g(syn)m(tax)h(errors.)42 b(This)30 b(option)i(is)f
-(ignored)g(b)m(y)g(in)m(terac-)1110 5340 y(tiv)m(e)h(shells.)p
-eop end
-%%Page: 64 70
-TeXDict begin 64 69 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(64)630 299 y Ft(-o)30
-b Fj(option-name)1110 408 y Fu(Set)h(the)f(option)h(corresp)s(onding)e
-(to)i Fr(option-name)5 b Fu(:)1110 575 y Ft(allexport)1590
-685 y Fu(Same)30 b(as)h Ft(-a)p Fu(.)1110 852 y Ft(braceexpand)1590
-962 y Fu(Same)f(as)h Ft(-B)p Fu(.)1110 1129 y Ft(emacs)240
-b Fu(Use)25 b(an)f Ft(emacs)p Fu(-st)m(yle)h(line)f(editing)h(in)m
-(terface)h(\(see)g(Chapter)e(8)1590 1238 y([Command)33
-b(Line)g(Editing],)h(page)h(111\).)51 b(This)32 b(also)i(a\013ects)1590
-1348 y(the)d(editing)g(in)m(terface)h(used)d(for)h Ft(read)f(-e)p
-Fu(.)1110 1515 y Ft(errexit)144 b Fu(Same)30 b(as)h Ft(-e)p
-Fu(.)1110 1682 y Ft(errtrace)96 b Fu(Same)30 b(as)h Ft(-E)p
-Fu(.)1110 1849 y Ft(functrace)1590 1958 y Fu(Same)f(as)h
-Ft(-T)p Fu(.)1110 2125 y Ft(hashall)144 b Fu(Same)30
-b(as)h Ft(-h)p Fu(.)1110 2292 y Ft(histexpand)1590 2402
-y Fu(Same)f(as)h Ft(-H)p Fu(.)1110 2569 y Ft(history)144
-b Fu(Enable)39 b(command)g(history)-8 b(,)42 b(as)d(describ)s(ed)f(in)h
-(Section)h(9.1)1590 2679 y([Bash)d(History)g(F)-8 b(acilities],)41
-b(page)c(146.)60 b(This)36 b(option)h(is)f(on)1590 2788
-y(b)m(y)30 b(default)h(in)f(in)m(teractiv)m(e)j(shells.)1110
-2955 y Ft(ignoreeof)1590 3065 y Fu(An)d(in)m(teractiv)m(e)j(shell)e
-(will)g(not)f(exit)h(up)s(on)e(reading)i(EOF.)1110 3232
-y Ft(keyword)144 b Fu(Same)30 b(as)h Ft(-k)p Fu(.)1110
-3399 y Ft(monitor)144 b Fu(Same)30 b(as)h Ft(-m)p Fu(.)1110
-3566 y Ft(noclobber)1590 3675 y Fu(Same)f(as)h Ft(-C)p
-Fu(.)1110 3842 y Ft(noexec)192 b Fu(Same)30 b(as)h Ft(-n)p
-Fu(.)1110 4009 y Ft(noglob)192 b Fu(Same)30 b(as)h Ft(-f)p
-Fu(.)1110 4176 y Ft(nolog)240 b Fu(Curren)m(tly)30 b(ignored.)1110
-4343 y Ft(notify)192 b Fu(Same)30 b(as)h Ft(-b)p Fu(.)1110
-4510 y Ft(nounset)144 b Fu(Same)30 b(as)h Ft(-u)p Fu(.)1110
-4677 y Ft(onecmd)192 b Fu(Same)30 b(as)h Ft(-t)p Fu(.)1110
-4844 y Ft(physical)96 b Fu(Same)30 b(as)h Ft(-P)p Fu(.)1110
-5011 y Ft(pipefail)96 b Fu(If)44 b(set,)k(the)d(return)e(v)-5
+(ignored)g(b)m(y)g(in)m(terac-)1110 2107 y(tiv)m(e)h(shells.)630
+2271 y Ft(-o)e Fj(option-name)1110 2381 y Fu(Set)h(the)f(option)h
+(corresp)s(onding)e(to)i Fr(option-name)5 b Fu(:)1110
+2545 y Ft(allexport)1590 2655 y Fu(Same)30 b(as)h Ft(-a)p
+Fu(.)1110 2819 y Ft(braceexpand)1590 2929 y Fu(Same)f(as)h
+Ft(-B)p Fu(.)1110 3093 y Ft(emacs)240 b Fu(Use)25 b(an)f
+Ft(emacs)p Fu(-st)m(yle)h(line)f(editing)h(in)m(terface)h(\(see)g
+(Chapter)e(8)1590 3203 y([Command)33 b(Line)g(Editing],)h(page)h
+(117\).)51 b(This)32 b(also)i(a\013ects)1590 3313 y(the)d(editing)g(in)
+m(terface)h(used)d(for)h Ft(read)f(-e)p Fu(.)1110 3477
+y Ft(errexit)144 b Fu(Same)30 b(as)h Ft(-e)p Fu(.)1110
+3641 y Ft(errtrace)96 b Fu(Same)30 b(as)h Ft(-E)p Fu(.)1110
+3806 y Ft(functrace)1590 3915 y Fu(Same)f(as)h Ft(-T)p
+Fu(.)1110 4080 y Ft(hashall)144 b Fu(Same)30 b(as)h Ft(-h)p
+Fu(.)1110 4244 y Ft(histexpand)1590 4354 y Fu(Same)f(as)h
+Ft(-H)p Fu(.)1110 4518 y Ft(history)144 b Fu(Enable)39
+b(command)g(history)-8 b(,)42 b(as)d(describ)s(ed)f(in)h(Section)h(9.1)
+1590 4628 y([Bash)d(History)g(F)-8 b(acilities],)41 b(page)c(152.)60
+b(This)36 b(option)h(is)f(on)1590 4737 y(b)m(y)30 b(default)h(in)f(in)m
+(teractiv)m(e)j(shells.)1110 4902 y Ft(ignoreeof)1590
+5011 y Fu(An)d(in)m(teractiv)m(e)j(shell)e(will)g(not)f(exit)h(up)s(on)
+e(reading)i(EOF.)1110 5176 y Ft(keyword)144 b Fu(Same)30
+b(as)h Ft(-k)p Fu(.)1110 5340 y Ft(monitor)144 b Fu(Same)30
+b(as)h Ft(-m)p Fu(.)p eop end
+%%Page: 69 75
+TeXDict begin 69 74 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(69)1110 299 y
+Ft(noclobber)1590 408 y Fu(Same)30 b(as)h Ft(-C)p Fu(.)1110
+570 y Ft(noexec)192 b Fu(Same)30 b(as)h Ft(-n)p Fu(.)1110
+731 y Ft(noglob)192 b Fu(Same)30 b(as)h Ft(-f)p Fu(.)1110
+892 y Ft(nolog)240 b Fu(Curren)m(tly)30 b(ignored.)1110
+1053 y Ft(notify)192 b Fu(Same)30 b(as)h Ft(-b)p Fu(.)1110
+1214 y Ft(nounset)144 b Fu(Same)30 b(as)h Ft(-u)p Fu(.)1110
+1375 y Ft(onecmd)192 b Fu(Same)30 b(as)h Ft(-t)p Fu(.)1110
+1537 y Ft(physical)96 b Fu(Same)30 b(as)h Ft(-P)p Fu(.)1110
+1698 y Ft(pipefail)96 b Fu(If)44 b(set,)k(the)d(return)e(v)-5
b(alue)45 b(of)f(a)h(pip)s(eline)e(is)i(the)f(v)-5 b(alue)45
-b(of)1590 5121 y(the)33 b(last)h(\(righ)m(tmost\))h(command)e(to)h
-(exit)g(with)f(a)g(non-zero)1590 5230 y(status,)28 b(or)f(zero)g(if)f
+b(of)1590 1807 y(the)33 b(last)h(\(righ)m(tmost\))h(command)e(to)h
+(exit)g(with)f(a)g(non-zero)1590 1917 y(status,)28 b(or)f(zero)g(if)f
(all)i(commands)e(in)g(the)h(pip)s(eline)f(exit)i(suc-)1590
-5340 y(cessfully)-8 b(.)41 b(This)30 b(option)h(is)f(disabled)g(b)m(y)h
-(default.)p eop end
-%%Page: 65 71
-TeXDict begin 65 70 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(65)1110 299 y
-Ft(posix)240 b Fu(Change)30 b(the)g(b)s(eha)m(vior)h(of)f(Bash)g(where)
-g(the)g(default)h(op)s(era-)1590 408 y(tion)25 b(di\013ers)f(from)g
-(the)h Fm(posix)f Fu(standard)f(to)i(matc)m(h)h(the)f(stan-)1590
-518 y(dard)h(\(see)j(Section)f(6.11)h([Bash)f(POSIX)e(Mo)s(de],)j(page)
-f(101\).)1590 628 y(This)37 b(is)g(in)m(tended)g(to)h(mak)m(e)g(Bash)g
-(b)s(eha)m(v)m(e)g(as)g(a)f(strict)h(su-)1590 737 y(p)s(erset)30
-b(of)h(that)f(standard.)1110 911 y Ft(privileged)1590
-1020 y Fu(Same)g(as)h Ft(-p)p Fu(.)1110 1194 y Ft(verbose)144
-b Fu(Same)30 b(as)h Ft(-v)p Fu(.)1110 1367 y Ft(vi)384
-b Fu(Use)36 b(a)g Ft(vi)p Fu(-st)m(yle)g(line)g(editing)g(in)m
-(terface.)58 b(This)35 b(also)h(a\013ects)1590 1477 y(the)31
-b(editing)g(in)m(terface)h(used)d(for)h Ft(read)f(-e)p
-Fu(.)1110 1650 y Ft(xtrace)192 b Fu(Same)30 b(as)h Ft(-x)p
-Fu(.)630 1824 y Ft(-p)384 b Fu(T)-8 b(urn)33 b(on)h(privileged)h(mo)s
-(de.)51 b(In)34 b(this)g(mo)s(de,)h(the)f Ft($BASH_ENV)e
-Fu(and)h Ft($ENV)1110 1934 y Fu(\014les)23 b(are)h(not)f(pro)s(cessed,)
-h(shell)g(functions)e(are)i(not)f(inherited)g(from)f(the)i(en-)1110
-2043 y(vironmen)m(t,)h(and)e(the)g Ft(SHELLOPTS)p Fu(,)f
+2027 y(cessfully)-8 b(.)41 b(This)30 b(option)h(is)f(disabled)g(b)m(y)h
+(default.)1110 2188 y Ft(posix)240 b Fu(Change)30 b(the)g(b)s(eha)m
+(vior)h(of)f(Bash)g(where)g(the)g(default)h(op)s(era-)1590
+2297 y(tion)25 b(di\013ers)f(from)g(the)h Fm(posix)f
+Fu(standard)f(to)i(matc)m(h)h(the)f(stan-)1590 2407 y(dard)h(\(see)j
+(Section)f(6.11)h([Bash)f(POSIX)e(Mo)s(de],)j(page)f(106\).)1590
+2516 y(This)37 b(is)g(in)m(tended)g(to)h(mak)m(e)g(Bash)g(b)s(eha)m(v)m
+(e)g(as)g(a)f(strict)h(su-)1590 2626 y(p)s(erset)30 b(of)h(that)f
+(standard.)1110 2787 y Ft(privileged)1590 2897 y Fu(Same)g(as)h
+Ft(-p)p Fu(.)1110 3058 y Ft(verbose)144 b Fu(Same)30
+b(as)h Ft(-v)p Fu(.)1110 3219 y Ft(vi)384 b Fu(Use)36
+b(a)g Ft(vi)p Fu(-st)m(yle)g(line)g(editing)g(in)m(terface.)58
+b(This)35 b(also)h(a\013ects)1590 3329 y(the)31 b(editing)g(in)m
+(terface)h(used)d(for)h Ft(read)f(-e)p Fu(.)1110 3490
+y Ft(xtrace)192 b Fu(Same)30 b(as)h Ft(-x)p Fu(.)630
+3651 y Ft(-p)384 b Fu(T)-8 b(urn)33 b(on)h(privileged)h(mo)s(de.)51
+b(In)34 b(this)g(mo)s(de,)h(the)f Ft($BASH_ENV)e Fu(and)h
+Ft($ENV)1110 3761 y Fu(\014les)23 b(are)h(not)f(pro)s(cessed,)h(shell)g
+(functions)e(are)i(not)f(inherited)g(from)f(the)i(en-)1110
+3870 y(vironmen)m(t,)h(and)e(the)g Ft(SHELLOPTS)p Fu(,)f
Ft(BASHOPTS)p Fu(,)h Ft(CDPATH)e Fu(and)i Ft(GLOBIGNORE)1110
-2153 y Fu(v)-5 b(ariables,)23 b(if)e(they)g(app)s(ear)f(in)g(the)h(en)m
+3980 y Fu(v)-5 b(ariables,)23 b(if)e(they)g(app)s(ear)f(in)g(the)h(en)m
(vironmen)m(t,)i(are)e(ignored.)38 b(If)20 b(the)h(shell)1110
-2262 y(is)37 b(started)h(with)f(the)g(e\013ectiv)m(e)j(user)d
+4089 y(is)37 b(started)h(with)f(the)g(e\013ectiv)m(e)j(user)d
(\(group\))g(id)g(not)g(equal)h(to)g(the)f(real)1110
-2372 y(user)h(\(group\))h(id,)i(and)d(the)h Ft(-p)f Fu(option)i(is)e
-(not)i(supplied,)f(these)h(actions)1110 2482 y(are)32
+4199 y(user)h(\(group\))h(id,)i(and)d(the)h Ft(-p)f Fu(option)i(is)e
+(not)i(supplied,)f(these)h(actions)1110 4309 y(are)32
b(tak)m(en)i(and)d(the)h(e\013ectiv)m(e)j(user)c(id)h(is)g(set)h(to)f
-(the)h(real)f(user)g(id.)45 b(If)32 b(the)1110 2591 y
+(the)h(real)f(user)g(id.)45 b(If)32 b(the)1110 4418 y
Ft(-p)i Fu(option)h(is)g(supplied)f(at)h(startup,)h(the)f(e\013ectiv)m
-(e)i(user)d(id)g(is)h(not)g(reset.)1110 2701 y(T)-8 b(urning)35
+(e)i(user)d(id)g(is)h(not)g(reset.)1110 4528 y(T)-8 b(urning)35
b(this)i(option)g(o\013)g(causes)g(the)g(e\013ectiv)m(e)i(user)d(and)g
-(group)g(ids)g(to)1110 2810 y(b)s(e)30 b(set)h(to)g(the)f(real)h(user)f
-(and)g(group)g(ids.)630 2984 y Ft(-t)384 b Fu(Exit)31
-b(after)g(reading)f(and)g(executing)h(one)g(command.)630
-3157 y Ft(-u)384 b Fu(T)-8 b(reat)25 b(unset)e(v)-5 b(ariables)25
-b(and)e(parameters)h(other)h(than)e(the)h(sp)s(ecial)h(param-)1110
-3267 y(eters)35 b(`)p Ft(@)p Fu(')f(or)g(`)p Ft(*)p Fu(')h(as)f(an)g
-(error)g(when)f(p)s(erforming)g(parameter)i(expansion.)1110
-3377 y(An)28 b(error)h(message)g(will)g(b)s(e)f(written)h(to)h(the)e
-(standard)g(error,)h(and)f(a)h(non-)1110 3486 y(in)m(teractiv)m(e)k
-(shell)e(will)g(exit.)630 3660 y Ft(-v)384 b Fu(Prin)m(t)30
+(group)g(ids)g(to)1110 4637 y(b)s(e)30 b(set)h(to)g(the)f(real)h(user)f
+(and)g(group)g(ids.)630 4798 y Ft(-r)384 b Fu(Enable)32
+b(restricted)h(shell)f(mo)s(de.)45 b(This)31 b(option)i(cannot)g(b)s(e)
+e(unset)h(once)g(it)1110 4908 y(has)e(b)s(een)g(set.)630
+5069 y Ft(-t)384 b Fu(Exit)31 b(after)g(reading)f(and)g(executing)h
+(one)g(command.)630 5230 y Ft(-u)384 b Fu(T)-8 b(reat)25
+b(unset)e(v)-5 b(ariables)25 b(and)e(parameters)h(other)h(than)e(the)h
+(sp)s(ecial)h(param-)1110 5340 y(eters)32 b(`)p Ft(@)p
+Fu(')f(or)h(`)p Ft(*)p Fu(',)g(or)f(arra)m(y)h(v)-5 b(ariables)32
+b(subscripted)e(with)h(`)p Ft(@)p Fu(')g(or)h(`)p Ft(*)p
+Fu(',)f(as)h(an)p eop end
+%%Page: 70 76
+TeXDict begin 70 75 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(70)1110 299 y(error)24
+b(when)g(p)s(erforming)g(parameter)h(expansion.)39 b(An)24
+b(error)h(message)h(will)1110 408 y(b)s(e)37 b(written)h(to)h(the)f
+(standard)f(error,)i(and)f(a)g(non-in)m(teractiv)m(e)j(shell)d(will)
+1110 518 y(exit.)630 667 y Ft(-v)384 b Fu(Prin)m(t)30
b(shell)h(input)e(lines)i(as)g(they)f(are)h(read.)630
-3833 y Ft(-x)384 b Fu(Prin)m(t)21 b(a)h(trace)h(of)f(simple)f
-(commands,)i Ft(for)e Fu(commands,)i Ft(case)d Fu(commands,)1110
-3943 y Ft(select)29 b Fu(commands,)j(and)e(arithmetic)j
-Ft(for)d Fu(commands)h(and)f(their)i(argu-)1110 4052
+817 y Ft(-x)384 b Fu(Prin)m(t)21 b(a)h(trace)h(of)f(simple)f(commands,)
+i Ft(for)e Fu(commands,)i Ft(case)d Fu(commands,)1110
+927 y Ft(select)29 b Fu(commands,)j(and)e(arithmetic)j
+Ft(for)d Fu(commands)h(and)f(their)i(argu-)1110 1036
y(men)m(ts)h(or)f(asso)s(ciated)i(w)m(ord)e(lists)h(after)g(they)f(are)
-h(expanded)f(and)f(b)s(efore)1110 4162 y(they)i(are)g(executed.)49
+h(expanded)f(and)f(b)s(efore)1110 1146 y(they)i(are)g(executed.)49
b(The)32 b(v)-5 b(alue)33 b(of)g(the)g Ft(PS4)f Fu(v)-5
-b(ariable)34 b(is)f(expanded)f(and)1110 4271 y(the)24
+b(ariable)34 b(is)f(expanded)f(and)1110 1255 y(the)24
b(resultan)m(t)h(v)-5 b(alue)24 b(is)g(prin)m(ted)g(b)s(efore)f(the)h
-(command)g(and)f(its)i(expanded)1110 4381 y(argumen)m(ts.)630
-4555 y Ft(-B)384 b Fu(The)41 b(shell)g(will)g(p)s(erform)f(brace)h
-(expansion)g(\(see)h(Section)g(3.5.1)g([Brace)1110 4664
-y(Expansion],)30 b(page)h(23\).)42 b(This)30 b(option)h(is)f(on)g(b)m
-(y)h(default.)630 4838 y Ft(-C)384 b Fu(Prev)m(en)m(t)25
+(command)g(and)f(its)i(expanded)1110 1365 y(argumen)m(ts.)630
+1514 y Ft(-B)384 b Fu(The)41 b(shell)g(will)g(p)s(erform)f(brace)h
+(expansion)g(\(see)h(Section)g(3.5.1)g([Brace)1110 1624
+y(Expansion],)30 b(page)h(24\).)42 b(This)30 b(option)h(is)f(on)g(b)m
+(y)h(default.)630 1773 y Ft(-C)384 b Fu(Prev)m(en)m(t)25
b(output)e(redirection)h(using)f(`)p Ft(>)p Fu(',)i(`)p
Ft(>&)p Fu(',)g(and)e(`)p Ft(<>)p Fu(')g(from)h(o)m(v)m(erwriting)1110
-4947 y(existing)31 b(\014les.)630 5121 y Ft(-E)384 b
+1883 y(existing)31 b(\014les.)630 2032 y Ft(-E)384 b
Fu(If)39 b(set,)j(an)m(y)e(trap)f(on)g Ft(ERR)g Fu(is)g(inherited)g(b)m
-(y)g(shell)h(functions,)h(command)1110 5230 y(substitutions,)35
+(y)g(shell)h(functions,)h(command)1110 2142 y(substitutions,)35
b(and)e(commands)g(executed)i(in)f(a)g(subshell)f(en)m(vironmen)m(t.)
-1110 5340 y(The)d Ft(ERR)f Fu(trap)i(is)f(normally)h(not)f(inherited)g
-(in)g(suc)m(h)g(cases.)p eop end
-%%Page: 66 72
-TeXDict begin 66 71 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(66)630 299 y Ft(-H)384
-b Fu(Enable)38 b(`)p Ft(!)p Fu(')h(st)m(yle)h(history)e(substitution)g
-(\(see)h(Section)h(9.3)f([History)g(In-)1110 408 y(teraction],)g(page)d
-(148\).)57 b(This)34 b(option)i(is)f(on)g(b)m(y)h(default)f(for)g(in)m
-(teractiv)m(e)1110 518 y(shells.)630 670 y Ft(-P)384
+1110 2252 y(The)d Ft(ERR)f Fu(trap)i(is)f(normally)h(not)f(inherited)g
+(in)g(suc)m(h)g(cases.)630 2401 y Ft(-H)384 b Fu(Enable)38
+b(`)p Ft(!)p Fu(')h(st)m(yle)h(history)e(substitution)g(\(see)h
+(Section)h(9.3)f([History)g(In-)1110 2511 y(teraction],)g(page)d
+(154\).)57 b(This)34 b(option)i(is)f(on)g(b)m(y)h(default)f(for)g(in)m
+(teractiv)m(e)1110 2620 y(shells.)630 2770 y Ft(-P)384
b Fu(If)39 b(set,)j(do)d(not)g(resolv)m(e)i(sym)m(b)s(olic)e(links)g
-(when)f(p)s(erforming)g(commands)1110 780 y(suc)m(h)29
+(when)f(p)s(erforming)g(commands)1110 2879 y(suc)m(h)29
b(as)h Ft(cd)f Fu(whic)m(h)g(c)m(hange)h(the)g(curren)m(t)f(directory)
--8 b(.)42 b(The)28 b(ph)m(ysical)j(direc-)1110 890 y(tory)j(is)g(used)f
-(instead.)52 b(By)34 b(default,)h(Bash)f(follo)m(ws)h(the)f(logical)i
-(c)m(hain)f(of)1110 999 y(directories)j(when)d(p)s(erforming)h
+-8 b(.)42 b(The)28 b(ph)m(ysical)j(direc-)1110 2989 y(tory)j(is)g(used)
+f(instead.)52 b(By)34 b(default,)h(Bash)f(follo)m(ws)h(the)f(logical)i
+(c)m(hain)f(of)1110 3098 y(directories)j(when)d(p)s(erforming)h
(commands)g(whic)m(h)g(c)m(hange)i(the)f(curren)m(t)1110
-1109 y(directory)-8 b(.)1110 1240 y(F)g(or)42 b(example,)i(if)d
+3208 y(directory)-8 b(.)1110 3337 y(F)g(or)42 b(example,)i(if)d
Ft(/usr/sys)e Fu(is)i(a)g(sym)m(b)s(olic)g(link)g(to)h
-Ft(/usr/local/sys)1110 1349 y Fu(then:)1350 1480 y Ft($)47
-b(cd)h(/usr/sys;)d(echo)i($PWD)1350 1590 y(/usr/sys)1350
-1700 y($)g(cd)h(..;)f(pwd)1350 1809 y(/usr)1110 1940
-y Fu(If)30 b Ft(set)f(-P)h Fu(is)h(on,)f(then:)1350 2071
-y Ft($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 2181 y(/usr/local/sys)
-1350 2290 y($)g(cd)h(..;)f(pwd)1350 2400 y(/usr/local)630
-2552 y(-T)384 b Fu(If)34 b(set,)j(an)m(y)e(trap)g(on)g
+Ft(/usr/local/sys)1110 3447 y Fu(then:)1350 3577 y Ft($)47
+b(cd)h(/usr/sys;)d(echo)i($PWD)1350 3686 y(/usr/sys)1350
+3796 y($)g(cd)h(..;)f(pwd)1350 3905 y(/usr)1110 4035
+y Fu(If)30 b Ft(set)f(-P)h Fu(is)h(on,)f(then:)1350 4164
+y Ft($)47 b(cd)h(/usr/sys;)d(echo)i($PWD)1350 4274 y(/usr/local/sys)
+1350 4384 y($)g(cd)h(..;)f(pwd)1350 4493 y(/usr/local)630
+4643 y(-T)384 b Fu(If)34 b(set,)j(an)m(y)e(trap)g(on)g
Ft(DEBUG)e Fu(and)i Ft(RETURN)e Fu(are)i(inherited)g(b)m(y)f(shell)i
-(func-)1110 2662 y(tions,)k(command)d(substitutions,)h(and)f(commands)g
-(executed)h(in)f(a)h(sub-)1110 2771 y(shell)33 b(en)m(vironmen)m(t.)49
+(func-)1110 4752 y(tions,)k(command)d(substitutions,)h(and)f(commands)g
+(executed)h(in)f(a)h(sub-)1110 4862 y(shell)33 b(en)m(vironmen)m(t.)49
b(The)32 b Ft(DEBUG)g Fu(and)g Ft(RETURN)f Fu(traps)h(are)i(normally)f
-(not)1110 2881 y(inherited)d(in)g(suc)m(h)g(cases.)630
-3033 y Ft(--)384 b Fu(If)44 b(no)g(argumen)m(ts)g(follo)m(w)i(this)e
+(not)1110 4971 y(inherited)d(in)g(suc)m(h)g(cases.)630
+5121 y Ft(--)384 b Fu(If)44 b(no)g(argumen)m(ts)g(follo)m(w)i(this)e
(option,)k(then)c(the)h(p)s(ositional)g(parame-)1110
-3143 y(ters)31 b(are)g(unset.)40 b(Otherwise,)31 b(the)f(p)s(ositional)
-i(parameters)f(are)f(set)h(to)h(the)1110 3253 y Fr(argumen)m(ts)p
+5230 y(ters)31 b(are)g(unset.)40 b(Otherwise,)31 b(the)f(p)s(ositional)
+i(parameters)f(are)f(set)h(to)h(the)1110 5340 y Fr(argumen)m(ts)p
Fu(,)f(ev)m(en)g(if)f(some)h(of)g(them)f(b)s(egin)g(with)g(a)h(`)p
-Ft(-)p Fu('.)630 3405 y Ft(-)432 b Fu(Signal)45 b(the)g(end)f(of)h
-(options,)k(cause)c(all)h(remaining)e Fr(argumen)m(ts)49
-b Fu(to)d(b)s(e)1110 3515 y(assigned)33 b(to)h(the)g(p)s(ositional)g
-(parameters.)49 b(The)33 b Ft(-x)g Fu(and)f Ft(-v)h Fu(options)h(are)
-1110 3624 y(turned)k(o\013.)68 b(If)38 b(there)i(are)f(no)g(argumen)m
-(ts,)j(the)e(p)s(ositional)g(parameters)1110 3734 y(remain)30
-b(unc)m(hanged.)630 3886 y(Using)d(`)p Ft(+)p Fu(')h(rather)f(than)g(`)
-p Ft(-)p Fu(')g(causes)h(these)f(options)h(to)g(b)s(e)e(turned)g
-(o\013.)40 b(The)27 b(options)h(can)630 3996 y(also)36
-b(b)s(e)f(used)f(up)s(on)g(in)m(v)m(o)s(cation)j(of)e(the)g(shell.)56
-b(The)34 b(curren)m(t)h(set)h(of)f(options)h(ma)m(y)g(b)s(e)630
-4105 y(found)29 b(in)h Ft($-)p Fu(.)630 4236 y(The)43
+Ft(-)p Fu('.)p eop end
+%%Page: 71 77
+TeXDict begin 71 76 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(71)630 299 y Ft(-)432
+b Fu(Signal)45 b(the)g(end)f(of)h(options,)k(cause)c(all)h(remaining)e
+Fr(argumen)m(ts)49 b Fu(to)d(b)s(e)1110 408 y(assigned)33
+b(to)h(the)g(p)s(ositional)g(parameters.)49 b(The)33
+b Ft(-x)g Fu(and)f Ft(-v)h Fu(options)h(are)1110 518
+y(turned)k(o\013.)68 b(If)38 b(there)i(are)f(no)g(argumen)m(ts,)j(the)e
+(p)s(ositional)g(parameters)1110 628 y(remain)30 b(unc)m(hanged.)630
+775 y(Using)d(`)p Ft(+)p Fu(')h(rather)f(than)g(`)p Ft(-)p
+Fu(')g(causes)h(these)f(options)h(to)g(b)s(e)e(turned)g(o\013.)40
+b(The)27 b(options)h(can)630 884 y(also)36 b(b)s(e)f(used)f(up)s(on)g
+(in)m(v)m(o)s(cation)j(of)e(the)g(shell.)56 b(The)34
+b(curren)m(t)h(set)h(of)f(options)h(ma)m(y)g(b)s(e)630
+994 y(found)29 b(in)h Ft($-)p Fu(.)630 1122 y(The)43
b(remaining)h(N)f Fr(argumen)m(ts)48 b Fu(are)c(p)s(ositional)g
-(parameters)g(and)f(are)h(assigned,)j(in)630 4346 y(order,)30
+(parameters)g(and)f(are)h(assigned,)j(in)630 1232 y(order,)30
b(to)h Ft($1)p Fu(,)f Ft($2)p Fu(,)36 b(.)22 b(.)g(.)42
b Ft($N)p Fu(.)e(The)30 b(sp)s(ecial)h(parameter)g Ft(#)f
-Fu(is)g(set)h(to)g(N.)630 4477 y(The)f(return)f(status)i(is)f(alw)m(a)m
+Fu(is)g(set)h(to)g(N.)630 1360 y(The)f(return)f(status)i(is)f(alw)m(a)m
(ys)i(zero)f(unless)f(an)g(in)m(v)-5 b(alid)31 b(option)g(is)f
-(supplied.)150 4669 y Fk(4.3.2)63 b(The)41 b(Shopt)h(Builtin)150
-4816 y Fu(This)30 b(builtin)g(allo)m(ws)h(y)m(ou)g(to)g(c)m(hange)h
+(supplied.)150 1548 y Fk(4.3.2)63 b(The)41 b(Shopt)h(Builtin)150
+1695 y Fu(This)30 b(builtin)g(allo)m(ws)h(y)m(ou)g(to)g(c)m(hange)h
(additional)f(shell)f(optional)i(b)s(eha)m(vior.)150
-4968 y Ft(shopt)870 5099 y(shopt)46 b([-pqsu])g([-o])h([)p
-Fj(optname)e Ft(...])630 5230 y Fu(T)-8 b(oggle)37 b(the)e(v)-5
+1842 y Ft(shopt)870 1970 y(shopt)46 b([-pqsu])g([-o])h([)p
+Fj(optname)e Ft(...])630 2099 y Fu(T)-8 b(oggle)37 b(the)e(v)-5
b(alues)35 b(of)g(settings)h(con)m(trolling)g(optional)g(shell)f(b)s
-(eha)m(vior.)55 b(The)34 b(settings)630 5340 y(can)24
+(eha)m(vior.)55 b(The)34 b(settings)630 2208 y(can)24
b(b)s(e)g(either)h(those)f(listed)h(b)s(elo)m(w,)h(or,)f(if)g(the)f
Ft(-o)f Fu(option)i(is)f(used,)h(those)g(a)m(v)-5 b(ailable)26
-b(with)p eop end
-%%Page: 67 73
-TeXDict begin 67 72 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(67)630 299 y(the)30
-b Ft(-o)f Fu(option)i(to)f(the)g Ft(set)f Fu(builtin)h(command)f(\(see)
-i(Section)g(4.3.1)g([The)f(Set)g(Builtin],)630 408 y(page)i(62\).)45
-b(With)32 b(no)f(options,)h(or)g(with)f(the)g Ft(-p)g
-Fu(option,)h(a)g(list)g(of)f(all)i(settable)g(options)630
-518 y(is)g(displa)m(y)m(ed,)i(with)e(an)g(indication)h(of)g(whether)e
-(or)h(not)h(eac)m(h)g(is)g(set;)h(if)e Fr(optnames)38
-b Fu(are)630 628 y(supplied,)25 b(the)g(output)g(is)g(restricted)g(to)h
-(those)g(options.)39 b(The)24 b Ft(-p)h Fu(option)g(causes)g(output)630
-737 y(to)30 b(b)s(e)f(displa)m(y)m(ed)g(in)g(a)h(form)f(that)g(ma)m(y)h
-(b)s(e)f(reused)f(as)i(input.)39 b(Other)29 b(options)g(ha)m(v)m(e)i
-(the)630 847 y(follo)m(wing)h(meanings:)630 1004 y Ft(-s)384
+b(with)630 2318 y(the)k Ft(-o)f Fu(option)i(to)f(the)g
+Ft(set)f Fu(builtin)h(command)f(\(see)i(Section)g(4.3.1)g([The)f(Set)g
+(Builtin],)630 2427 y(page)i(67\).)45 b(With)32 b(no)f(options,)h(or)g
+(with)f(the)g Ft(-p)g Fu(option,)h(a)g(list)g(of)f(all)i(settable)g
+(options)630 2537 y(is)g(displa)m(y)m(ed,)i(with)e(an)g(indication)h
+(of)f(whether)g(or)g(not)g(eac)m(h)h(is)g(set;)h(if)e
+Fr(optname)5 b Fu(s)34 b(are)630 2647 y(supplied,)25
+b(the)g(output)g(is)g(restricted)g(to)h(those)g(options.)39
+b(The)24 b Ft(-p)h Fu(option)g(causes)g(output)630 2756
+y(to)30 b(b)s(e)f(displa)m(y)m(ed)g(in)g(a)h(form)f(that)g(ma)m(y)h(b)s
+(e)f(reused)f(as)i(input.)39 b(Other)29 b(options)g(ha)m(v)m(e)i(the)
+630 2866 y(follo)m(wing)h(meanings:)630 3013 y Ft(-s)384
b Fu(Enable)30 b(\(set\))i(eac)m(h)f Fr(optname)p Fu(.)630
-1161 y Ft(-u)384 b Fu(Disable)31 b(\(unset\))g(eac)m(h)h
-Fr(optname)p Fu(.)630 1319 y Ft(-q)384 b Fu(Suppresses)28
+3160 y Ft(-u)384 b Fu(Disable)31 b(\(unset\))g(eac)m(h)h
+Fr(optname)p Fu(.)630 3307 y Ft(-q)384 b Fu(Suppresses)28
b(normal)h(output;)h(the)g(return)e(status)i(indicates)h(whether)e(the)
-1110 1428 y Fr(optname)37 b Fu(is)31 b(set)h(or)f(unset.)43
+1110 3417 y Fr(optname)37 b Fu(is)31 b(set)h(or)f(unset.)43
b(If)31 b(m)m(ultiple)h Fr(optname)37 b Fu(argumen)m(ts)31
-b(are)h(giv)m(en)1110 1538 y(with)d Ft(-q)p Fu(,)g(the)g(return)f
-(status)h(is)g(zero)h(if)f(all)h Fr(optnames)j Fu(are)d(enabled;)f
-(non-)1110 1647 y(zero)i(otherwise.)630 1805 y Ft(-o)384
-b Fu(Restricts)22 b(the)f(v)-5 b(alues)22 b(of)f Fr(optname)27
-b Fu(to)22 b(b)s(e)e(those)i(de\014ned)e(for)h(the)g
-Ft(-o)f Fu(option)1110 1914 y(to)31 b(the)g Ft(set)e
+b(are)h(giv)m(en)1110 3527 y(with)d Ft(-q)p Fu(,)f(the)i(return)d
+(status)j(is)f(zero)g(if)g(all)h Fr(optname)5 b Fu(s)29
+b(are)h(enabled;)f(non-)1110 3636 y(zero)i(otherwise.)630
+3784 y Ft(-o)384 b Fu(Restricts)22 b(the)f(v)-5 b(alues)22
+b(of)f Fr(optname)27 b Fu(to)22 b(b)s(e)e(those)i(de\014ned)e(for)h
+(the)g Ft(-o)f Fu(option)1110 3893 y(to)31 b(the)g Ft(set)e
Fu(builtin)h(\(see)h(Section)h(4.3.1)g([The)e(Set)g(Builtin],)i(page)f
-(62\).)630 2071 y(If)e(either)i Ft(-s)e Fu(or)h Ft(-u)f
+(67\).)630 4040 y(If)e(either)i Ft(-s)e Fu(or)h Ft(-u)f
Fu(is)h(used)f(with)g(no)h Fr(optname)35 b Fu(argumen)m(ts,)c
-Ft(shopt)d Fu(sho)m(ws)h(only)h(those)630 2181 y(options)h(whic)m(h)f
+Ft(shopt)d Fu(sho)m(ws)h(only)h(those)630 4150 y(options)h(whic)m(h)f
(are)h(set)f(or)h(unset,)f(resp)s(ectiv)m(ely)-8 b(.)630
-2314 y(Unless)30 b(otherwise)h(noted,)g(the)g Ft(shopt)d
+4278 y(Unless)30 b(otherwise)h(noted,)g(the)g Ft(shopt)d
Fu(options)j(are)g(disabled)f(\(o\013)7 b(\))32 b(b)m(y)e(default.)630
-2448 y(The)d(return)f(status)i(when)f(listing)h(options)g(is)f(zero)i
-(if)e(all)i Fr(optnames)i Fu(are)d(enabled,)g(non-)630
-2557 y(zero)40 b(otherwise.)66 b(When)39 b(setting)h(or)f(unsetting)g
-(options,)i(the)e(return)f(status)h(is)g(zero)630 2667
+4407 y(The)d(return)f(status)i(when)e(listing)j(options)e(is)h(zero)g
+(if)f(all)i Fr(optname)5 b Fu(s)27 b(are)h(enabled,)g(non-)630
+4516 y(zero)40 b(otherwise.)66 b(When)39 b(setting)h(or)f(unsetting)g
+(options,)i(the)e(return)f(status)h(is)g(zero)630 4626
y(unless)30 b(an)g Fr(optname)36 b Fu(is)30 b(not)h(a)g(v)-5
-b(alid)30 b(shell)h(option.)630 2800 y(The)f(list)h(of)f
-Ft(shopt)f Fu(options)i(is:)630 2958 y Ft(assoc_expand_once)1110
-3067 y Fu(If)h(set,)i(the)e(shell)h(suppresses)e(m)m(ultiple)i(ev)-5
+b(alid)30 b(shell)h(option.)630 4754 y(The)f(list)h(of)f
+Ft(shopt)f Fu(options)i(is:)630 4902 y Ft(assoc_expand_once)1110
+5011 y Fu(If)h(set,)i(the)e(shell)h(suppresses)e(m)m(ultiple)i(ev)-5
b(aluation)34 b(of)e(asso)s(ciativ)m(e)j(arra)m(y)1110
-3177 y(subscripts)24 b(during)h(arithmetic)h(expression)g(ev)-5
-b(aluation,)28 b(while)e(executing)1110 3286 y(builtins)c(that)i(can)f
+5121 y(subscripts)24 b(during)h(arithmetic)h(expression)g(ev)-5
+b(aluation,)28 b(while)e(executing)1110 5230 y(builtins)c(that)i(can)f
(p)s(erform)f(v)-5 b(ariable)24 b(assignmen)m(ts,)h(and)e(while)g
-(executing)1110 3396 y(builtins)30 b(that)h(p)s(erform)e(arra)m(y)i
-(dereferencing.)630 3553 y Ft(autocd)192 b Fu(If)27 b(set,)h(a)g
-(command)f(name)g(that)h(is)f(the)g(name)g(of)h(a)f(directory)h(is)f
-(executed)1110 3663 y(as)j(if)f(it)h(w)m(ere)f(the)h(argumen)m(t)g(to)g
-(the)f Ft(cd)g Fu(command.)40 b(This)29 b(option)g(is)h(only)1110
-3772 y(used)g(b)m(y)g(in)m(teractiv)m(e)j(shells.)630
-3930 y Ft(cdable_vars)1110 4039 y Fu(If)h(this)h(is)g(set,)i(an)e
-(argumen)m(t)g(to)h(the)f Ft(cd)f Fu(builtin)h(command)f(that)i(is)f
-(not)1110 4149 y(a)c(directory)g(is)g(assumed)f(to)h(b)s(e)f(the)h
+(executing)1110 5340 y(builtins)30 b(that)h(p)s(erform)e(arra)m(y)i
+(dereferencing.)p eop end
+%%Page: 72 78
+TeXDict begin 72 77 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(72)630 299 y Ft(autocd)192
+b Fu(If)27 b(set,)h(a)g(command)f(name)g(that)h(is)f(the)g(name)g(of)h
+(a)f(directory)h(is)f(executed)1110 408 y(as)j(if)f(it)h(w)m(ere)f(the)
+h(argumen)m(t)g(to)g(the)f Ft(cd)g Fu(command.)40 b(This)29
+b(option)g(is)h(only)1110 518 y(used)g(b)m(y)g(in)m(teractiv)m(e)j
+(shells.)630 682 y Ft(cdable_vars)1110 792 y Fu(If)h(this)h(is)g(set,)i
+(an)e(argumen)m(t)g(to)h(the)f Ft(cd)f Fu(builtin)h(command)f(that)i
+(is)f(not)1110 902 y(a)c(directory)g(is)g(assumed)f(to)h(b)s(e)f(the)h
(name)f(of)h(a)g(v)-5 b(ariable)31 b(whose)g(v)-5 b(alue)31
-b(is)1110 4258 y(the)g(directory)f(to)i(c)m(hange)f(to.)630
-4416 y Ft(cdspell)144 b Fu(If)27 b(set,)h(minor)f(errors)f(in)h(the)g
+b(is)1110 1011 y(the)g(directory)f(to)i(c)m(hange)f(to.)630
+1176 y Ft(cdspell)144 b Fu(If)27 b(set,)h(minor)f(errors)f(in)h(the)g
(sp)s(elling)h(of)f(a)g(directory)h(comp)s(onen)m(t)f(in)g(a)h
-Ft(cd)1110 4525 y Fu(command)i(will)h(b)s(e)f(corrected.)43
+Ft(cd)1110 1285 y Fu(command)i(will)h(b)s(e)f(corrected.)43
b(The)30 b(errors)g(c)m(hec)m(k)m(ed)j(for)d(are)h(transp)s(osed)1110
-4635 y(c)m(haracters,)46 b(a)c(missing)f(c)m(haracter,)47
+1395 y(c)m(haracters,)46 b(a)c(missing)f(c)m(haracter,)47
b(and)40 b(a)i(c)m(haracter)h(to)s(o)g(man)m(y)-8 b(.)74
-b(If)42 b(a)1110 4744 y(correction)25 b(is)e(found,)g(the)h(corrected)g
-(path)f(is)g(prin)m(ted,)h(and)f(the)g(command)1110 4854
+b(If)42 b(a)1110 1504 y(correction)25 b(is)e(found,)g(the)h(corrected)g
+(path)f(is)g(prin)m(ted,)h(and)f(the)g(command)1110 1614
y(pro)s(ceeds.)40 b(This)30 b(option)h(is)f(only)h(used)e(b)m(y)h(in)m
-(teractiv)m(e)k(shells.)630 5011 y Ft(checkhash)1110
-5121 y Fu(If)29 b(this)h(is)g(set,)g(Bash)g(c)m(hec)m(ks)h(that)g(a)f
-(command)f(found)g(in)g(the)h(hash)f(table)1110 5230
+(teractiv)m(e)k(shells.)630 1778 y Ft(checkhash)1110
+1888 y Fu(If)29 b(this)h(is)g(set,)g(Bash)g(c)m(hec)m(ks)h(that)g(a)f
+(command)f(found)g(in)g(the)h(hash)f(table)1110 1998
y(exists)k(b)s(efore)f(trying)h(to)h(execute)g(it.)48
-b(If)32 b(a)h(hashed)e(command)i(no)f(longer)1110 5340
-y(exists,)f(a)g(normal)f(path)g(searc)m(h)h(is)g(p)s(erformed.)p
-eop end
-%%Page: 68 74
-TeXDict begin 68 73 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(68)630 299 y Ft(checkjobs)1110
-408 y Fu(If)28 b(set,)i(Bash)e(lists)h(the)g(status)g(of)f(an)m(y)h
-(stopp)s(ed)f(and)g(running)e(jobs)i(b)s(efore)1110 518
-y(exiting)42 b(an)f(in)m(teractiv)m(e)j(shell.)72 b(If)41
-b(an)m(y)g(jobs)f(are)i(running,)g(this)f(causes)1110
-628 y(the)30 b(exit)g(to)g(b)s(e)f(deferred)g(un)m(til)h(a)f(second)h
-(exit)g(is)g(attempted)h(without)e(an)1110 737 y(in)m(terv)m(ening)d
-(command)f(\(see)h(Chapter)e(7)h([Job)g(Con)m(trol],)i(page)f(107\).)40
-b(The)1110 847 y(shell)31 b(alw)m(a)m(ys)g(p)s(ostp)s(ones)f(exiting)h
-(if)g(an)m(y)f(jobs)g(are)h(stopp)s(ed.)630 1029 y Ft(checkwinsize)1110
-1139 y Fu(If)23 b(set,)j(Bash)e(c)m(hec)m(ks)h(the)f(windo)m(w)f(size)h
-(after)h(eac)m(h)f(external)h(\(non-builtin\))1110 1249
+b(If)32 b(a)h(hashed)e(command)i(no)f(longer)1110 2107
+y(exists,)f(a)g(normal)f(path)g(searc)m(h)h(is)g(p)s(erformed.)630
+2271 y Ft(checkjobs)1110 2381 y Fu(If)d(set,)i(Bash)e(lists)h(the)g
+(status)g(of)f(an)m(y)h(stopp)s(ed)f(and)g(running)e(jobs)i(b)s(efore)
+1110 2491 y(exiting)42 b(an)f(in)m(teractiv)m(e)j(shell.)72
+b(If)41 b(an)m(y)g(jobs)f(are)i(running,)g(this)f(causes)1110
+2600 y(the)30 b(exit)g(to)g(b)s(e)f(deferred)g(un)m(til)h(a)f(second)h
+(exit)g(is)g(attempted)h(without)e(an)1110 2710 y(in)m(terv)m(ening)d
+(command)f(\(see)h(Chapter)e(7)h([Job)g(Con)m(trol],)i(page)f(113\).)40
+b(The)1110 2819 y(shell)31 b(alw)m(a)m(ys)g(p)s(ostp)s(ones)f(exiting)h
+(if)g(an)m(y)f(jobs)g(are)h(stopp)s(ed.)630 2984 y Ft(checkwinsize)1110
+3093 y Fu(If)23 b(set,)j(Bash)e(c)m(hec)m(ks)h(the)f(windo)m(w)f(size)h
+(after)h(eac)m(h)f(external)h(\(non-builtin\))1110 3203
y(command)55 b(and,)60 b(if)55 b(necessary)-8 b(,)62
b(up)s(dates)54 b(the)h(v)-5 b(alues)55 b(of)g Ft(LINES)f
-Fu(and)1110 1358 y Ft(COLUMNS)p Fu(.)39 b(This)29 b(option)i(is)g
-(enabled)f(b)m(y)g(default.)630 1541 y Ft(cmdhist)144
+Fu(and)1110 3313 y Ft(COLUMNS)p Fu(.)39 b(This)29 b(option)i(is)g
+(enabled)f(b)m(y)g(default.)630 3477 y Ft(cmdhist)144
b Fu(If)33 b(set,)j(Bash)e(attempts)h(to)g(sa)m(v)m(e)g(all)g(lines)f
-(of)g(a)h(m)m(ultiple-line)g(command)1110 1650 y(in)c(the)g(same)g
+(of)g(a)h(m)m(ultiple-line)g(command)1110 3587 y(in)c(the)g(same)g
(history)g(en)m(try)-8 b(.)42 b(This)30 b(allo)m(ws)i(easy)g
-(re-editing)g(of)f(m)m(ulti-line)1110 1760 y(commands.)79
+(re-editing)g(of)f(m)m(ulti-line)1110 3696 y(commands.)79
b(This)43 b(option)g(is)h(enabled)f(b)m(y)g(default,)k(but)c(only)g
-(has)g(an)1110 1870 y(e\013ect)30 b(if)e(command)g(history)g(is)h
+(has)g(an)1110 3806 y(e\013ect)30 b(if)e(command)g(history)g(is)h
(enabled)f(\(see)h(Section)g(9.1)h([Bash)e(History)1110
-1979 y(F)-8 b(acilities],)34 b(page)d(146\).)630 2162
-y Ft(compat31)630 2271 y(compat32)630 2381 y(compat40)630
-2491 y(compat41)630 2600 y(compat42)630 2710 y(compat43)630
-2819 y(compat44)96 b Fu(These)39 b(con)m(trol)i(asp)s(ects)f(of)f(the)h
+3915 y(F)-8 b(acilities],)34 b(page)d(152\).)630 4080
+y Ft(compat31)630 4189 y(compat32)630 4299 y(compat40)630
+4408 y(compat41)630 4518 y(compat42)630 4628 y(compat43)630
+4737 y(compat44)96 b Fu(These)39 b(con)m(trol)i(asp)s(ects)f(of)f(the)h
(shell's)g(compatibilit)m(y)h(mo)s(de)e(\(see)h(Sec-)1110
-2929 y(tion)31 b(6.12)h([Shell)e(Compatibilit)m(y)i(Mo)s(de],)f(page)g
-(104\).)630 3112 y Ft(complete_fullquote)1110 3221 y
+4847 y(tion)31 b(6.12)h([Shell)e(Compatibilit)m(y)i(Mo)s(de],)f(page)g
+(110\).)630 5011 y Ft(complete_fullquote)1110 5121 y
Fu(If)g(set,)g(Bash)h(quotes)f(all)h(shell)f(metac)m(haracters)i(in)e
-(\014lenames)g(and)g(direc-)1110 3331 y(tory)g(names)f(when)g(p)s
+(\014lenames)g(and)g(direc-)1110 5230 y(tory)g(names)f(when)g(p)s
(erforming)f(completion.)43 b(If)30 b(not)h(set,)g(Bash)g(remo)m(v)m
-(es)1110 3440 y(metac)m(haracters)40 b(suc)m(h)d(as)h(the)g(dollar)g
-(sign)g(from)f(the)h(set)g(of)f(c)m(haracters)1110 3550
-y(that)f(will)g(b)s(e)f(quoted)g(in)g(completed)i(\014lenames)e(when)f
-(these)i(metac)m(har-)1110 3660 y(acters)29 b(app)s(ear)e(in)g(shell)h
-(v)-5 b(ariable)28 b(references)g(in)f(w)m(ords)g(to)i(b)s(e)e
-(completed.)1110 3769 y(This)k(means)i(that)g(dollar)f(signs)g(in)g(v)
--5 b(ariable)33 b(names)g(that)f(expand)g(to)h(di-)1110
-3879 y(rectories)28 b(will)g(not)f(b)s(e)f(quoted;)j(ho)m(w)m(ev)m(er,)
-g(an)m(y)e(dollar)h(signs)f(app)s(earing)f(in)1110 3988
+(es)1110 5340 y(metac)m(haracters)40 b(suc)m(h)d(as)h(the)g(dollar)g
+(sign)g(from)f(the)h(set)g(of)f(c)m(haracters)p eop end
+%%Page: 73 79
+TeXDict begin 73 78 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(73)1110 299 y(that)36
+b(will)g(b)s(e)f(quoted)g(in)g(completed)i(\014lenames)e(when)f(these)i
+(metac)m(har-)1110 408 y(acters)29 b(app)s(ear)e(in)g(shell)h(v)-5
+b(ariable)28 b(references)g(in)f(w)m(ords)g(to)i(b)s(e)e(completed.)
+1110 518 y(This)k(means)i(that)g(dollar)f(signs)g(in)g(v)-5
+b(ariable)33 b(names)g(that)f(expand)g(to)h(di-)1110
+628 y(rectories)28 b(will)g(not)f(b)s(e)f(quoted;)j(ho)m(w)m(ev)m(er,)g
+(an)m(y)e(dollar)h(signs)f(app)s(earing)f(in)1110 737
y(\014lenames)j(will)h(not)f(b)s(e)g(quoted,)h(either.)41
b(This)28 b(is)i(activ)m(e)h(only)e(when)g(bash)1110
-4098 y(is)39 b(using)f(bac)m(kslashes)i(to)g(quote)g(completed)f
-(\014lenames.)67 b(This)38 b(v)-5 b(ariable)1110 4208
+847 y(is)39 b(using)f(bac)m(kslashes)i(to)g(quote)g(completed)f
+(\014lenames.)67 b(This)38 b(v)-5 b(ariable)1110 956
y(is)41 b(set)g(b)m(y)g(default,)j(whic)m(h)c(is)h(the)g(default)g
-(Bash)g(b)s(eha)m(vior)g(in)g(v)m(ersions)1110 4317 y(through)30
-b(4.2.)630 4500 y Ft(direxpand)1110 4609 y Fu(If)k(set,)i(Bash)f
+(Bash)g(b)s(eha)m(vior)g(in)g(v)m(ersions)1110 1066 y(through)30
+b(4.2.)630 1244 y Ft(direxpand)1110 1354 y Fu(If)k(set,)i(Bash)f
(replaces)g(directory)g(names)g(with)f(the)g(results)h(of)f(w)m(ord)g
-(ex-)1110 4719 y(pansion)k(when)g(p)s(erforming)f(\014lename)i
-(completion.)67 b(This)38 b(c)m(hanges)i(the)1110 4829
-y(con)m(ten)m(ts)29 b(of)e(the)g(readline)h(editing)g(bu\013er.)38
-b(If)27 b(not)g(set,)i(Bash)e(attempts)h(to)1110 4938
-y(preserv)m(e)j(what)f(the)g(user)g(t)m(yp)s(ed.)630
-5121 y Ft(dirspell)96 b Fu(If)26 b(set,)i(Bash)f(attempts)g(sp)s
-(elling)g(correction)g(on)g(directory)g(names)f(during)1110
-5230 y(w)m(ord)36 b(completion)h(if)f(the)g(directory)g(name)g
-(initially)h(supplied)e(do)s(es)h(not)1110 5340 y(exist.)p
-eop end
-%%Page: 69 75
-TeXDict begin 69 74 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(69)630 299 y Ft(dotglob)144
-b Fu(If)36 b(set,)i(Bash)e(includes)g(\014lenames)g(b)s(eginning)f
-(with)h(a)g(`.')58 b(in)36 b(the)g(results)1110 408 y(of)f(\014lename)f
-(expansion.)53 b(The)33 b(\014lenames)i(`)p Ft(.)p Fu(')f(and)g(`)p
-Ft(..)p Fu(')g(m)m(ust)h(alw)m(a)m(ys)h(b)s(e)1110 518
+(ex-)1110 1463 y(pansion)k(when)g(p)s(erforming)f(\014lename)i
+(completion.)67 b(This)38 b(c)m(hanges)i(the)1110 1573
+y(con)m(ten)m(ts)c(of)e(the)h(Readline)f(editing)h(bu\013er.)52
+b(If)33 b(not)i(set,)h(Bash)e(attempts)1110 1682 y(to)d(preserv)m(e)g
+(what)f(the)g(user)g(t)m(yp)s(ed.)630 1861 y Ft(dirspell)96
+b Fu(If)26 b(set,)i(Bash)f(attempts)g(sp)s(elling)g(correction)g(on)g
+(directory)g(names)f(during)1110 1970 y(w)m(ord)36 b(completion)h(if)f
+(the)g(directory)g(name)g(initially)h(supplied)e(do)s(es)h(not)1110
+2080 y(exist.)630 2258 y Ft(dotglob)144 b Fu(If)36 b(set,)i(Bash)e
+(includes)g(\014lenames)g(b)s(eginning)f(with)h(a)g(`.')58
+b(in)36 b(the)g(results)1110 2367 y(of)f(\014lename)f(expansion.)53
+b(The)33 b(\014lenames)i(`)p Ft(.)p Fu(')f(and)g(`)p
+Ft(..)p Fu(')g(m)m(ust)h(alw)m(a)m(ys)h(b)s(e)1110 2477
y(matc)m(hed)31 b(explicitly)-8 b(,)33 b(ev)m(en)e(if)f
-Ft(dotglob)f Fu(is)h(set.)630 682 y Ft(execfail)96 b
+Ft(dotglob)f Fu(is)h(set.)630 2655 y Ft(execfail)96 b
Fu(If)24 b(this)h(is)f(set,)j(a)e(non-in)m(teractiv)m(e)i(shell)e(will)
-f(not)h(exit)h(if)e(it)h(cannot)h(execute)1110 792 y(the)i(\014le)g(sp)
-s(eci\014ed)g(as)g(an)g(argumen)m(t)g(to)h(the)f Ft(exec)f
-Fu(builtin)h(command.)39 b(An)1110 902 y(in)m(teractiv)m(e)33
-b(shell)e(do)s(es)f(not)g(exit)i(if)e Ft(exec)f Fu(fails.)630
-1066 y Ft(expand_aliases)1110 1176 y Fu(If)j(set,)h(aliases)g(are)g
+f(not)h(exit)h(if)e(it)h(cannot)h(execute)1110 2765 y(the)i(\014le)g
+(sp)s(eci\014ed)g(as)g(an)g(argumen)m(t)g(to)h(the)f
+Ft(exec)f Fu(builtin)h(command.)39 b(An)1110 2874 y(in)m(teractiv)m(e)
+33 b(shell)e(do)s(es)f(not)g(exit)i(if)e Ft(exec)f Fu(fails.)630
+3052 y Ft(expand_aliases)1110 3162 y Fu(If)j(set,)h(aliases)g(are)g
(expanded)e(as)h(describ)s(ed)f(b)s(elo)m(w)h(under)f(Aliases,)i(Sec-)
-1110 1285 y(tion)38 b(6.6)h([Aliases],)j(page)d(94.)64
-b(This)37 b(option)h(is)g(enabled)g(b)m(y)g(default)g(for)1110
-1395 y(in)m(teractiv)m(e)33 b(shells.)630 1559 y Ft(extdebug)96
+1110 3271 y(tion)i(6.6)h([Aliases],)h(page)e(100.)55
+b(This)33 b(option)i(is)g(enabled)f(b)m(y)h(default)f(for)1110
+3381 y(in)m(teractiv)m(e)f(shells.)630 3559 y Ft(extdebug)96
b Fu(If)35 b(set)i(at)f(shell)g(in)m(v)m(o)s(cation,)k(or)c(in)f(a)h
(shell)h(startup)e(\014le,)i(arrange)g(to)f(ex-)1110
-1669 y(ecute)h(the)f(debugger)g(pro\014le)g(b)s(efore)g(the)g(shell)h
-(starts,)h(iden)m(tical)g(to)f(the)1110 1778 y Ft(--debugger)32
+3669 y(ecute)h(the)f(debugger)g(pro\014le)g(b)s(efore)g(the)g(shell)h
+(starts,)h(iden)m(tical)g(to)f(the)1110 3778 y Ft(--debugger)32
b Fu(option.)56 b(If)35 b(set)h(after)g(in)m(v)m(o)s(cation,)j(b)s(eha)
-m(vior)c(in)m(tended)g(for)1110 1888 y(use)30 b(b)m(y)g(debuggers)g(is)
-h(enabled:)1159 2025 y(1.)61 b(The)37 b Ft(-F)g Fu(option)h(to)g(the)g
+m(vior)c(in)m(tended)g(for)1110 3888 y(use)30 b(b)m(y)g(debuggers)g(is)
+h(enabled:)1159 4032 y(1.)61 b(The)37 b Ft(-F)g Fu(option)h(to)g(the)g
Ft(declare)d Fu(builtin)i(\(see)i(Section)f(4.2)h([Bash)1290
-2134 y(Builtins],)29 b(page)g(51\))g(displa)m(ys)f(the)g(source)h
-(\014le)f(name)g(and)f(line)h(n)m(um-)1290 2244 y(b)s(er)h(corresp)s
+4141 y(Builtins],)29 b(page)g(55\))g(displa)m(ys)f(the)g(source)h
+(\014le)f(name)g(and)f(line)h(n)m(um-)1290 4251 y(b)s(er)h(corresp)s
(onding)g(to)i(eac)m(h)g(function)f(name)g(supplied)f(as)i(an)f(argu-)
-1290 2354 y(men)m(t.)1159 2491 y(2.)61 b(If)20 b(the)h(command)g(run)e
+1290 4361 y(men)m(t.)1159 4504 y(2.)61 b(If)20 b(the)h(command)g(run)e
(b)m(y)i(the)f Ft(DEBUG)g Fu(trap)g(returns)g(a)h(non-zero)g(v)-5
-b(alue,)1290 2600 y(the)31 b(next)f(command)g(is)h(skipp)s(ed)e(and)g
-(not)i(executed.)1159 2737 y(3.)61 b(If)37 b(the)g(command)g(run)f(b)m
+b(alue,)1290 4614 y(the)31 b(next)f(command)g(is)h(skipp)s(ed)e(and)g
+(not)i(executed.)1159 4758 y(3.)61 b(If)37 b(the)g(command)g(run)f(b)m
(y)i(the)f Ft(DEBUG)f Fu(trap)h(returns)f(a)i(v)-5 b(alue)38
-b(of)f(2,)1290 2847 y(and)c(the)g(shell)h(is)f(executing)i(in)e(a)h
-(subroutine)e(\(a)i(shell)g(function)f(or)1290 2956 y(a)h(shell)g
+b(of)f(2,)1290 4867 y(and)c(the)g(shell)h(is)f(executing)i(in)e(a)h
+(subroutine)e(\(a)i(shell)g(function)f(or)1290 4977 y(a)h(shell)g
(script)f(executed)h(b)m(y)g(the)f Ft(.)h Fu(or)f Ft(source)f
-Fu(builtins\),)i(the)g(shell)1290 3066 y(sim)m(ulates)d(a)g(call)h(to)f
-Ft(return)p Fu(.)1159 3203 y(4.)61 b Ft(BASH_ARGC)34
+Fu(builtins\),)i(the)g(shell)1290 5087 y(sim)m(ulates)d(a)g(call)h(to)f
+Ft(return)p Fu(.)1159 5230 y(4.)61 b Ft(BASH_ARGC)34
b Fu(and)i Ft(BASH_ARGV)e Fu(are)j(up)s(dated)e(as)h(describ)s(ed)g(in)
-g(their)1290 3313 y(descriptions)30 b(\(see)i(Section)f(5.2)g([Bash)g
-(V)-8 b(ariables],)32 b(page)f(73\).)1159 3450 y(5.)61
+g(their)1290 5340 y(descriptions)30 b(\(see)i(Section)f(5.2)g([Bash)g
+(V)-8 b(ariables],)32 b(page)f(78\).)p eop end
+%%Page: 74 80
+TeXDict begin 74 79 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(74)1159 299 y(5.)61
b(F)-8 b(unction)57 b(tracing)g(is)g(enabled:)93 b(command)56
-b(substitution,)63 b(shell)1290 3559 y(functions,)32
-b(and)e(subshells)h(in)m(v)m(ok)m(ed)i(with)e Ft(\()f
-Fj(command)e Ft(\))j Fu(inherit)h(the)1290 3669 y Ft(DEBUG)d
-Fu(and)h Ft(RETURN)e Fu(traps.)1159 3806 y(6.)61 b(Error)41
-b(tracing)i(is)f(enabled:)63 b(command)42 b(substitution,)i(shell)f
-(func-)1290 3915 y(tions,)32 b(and)e(subshells)g(in)m(v)m(ok)m(ed)i
-(with)e Ft(\()g Fj(command)f Ft(\))h Fu(inherit)h(the)g
-Ft(ERR)1290 4025 y Fu(trap.)630 4189 y Ft(extglob)144
-b Fu(If)26 b(set,)i(the)f(extended)f(pattern)h(matc)m(hing)g(features)g
-(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)1110 4299 y(Section)j(3.5.8.1)i
-([P)m(attern)f(Matc)m(hing],)g(page)f(33\))h(are)f(enabled.)630
-4463 y Ft(extquote)96 b Fu(If)51 b(set,)58 b Ft($')p
-Fj(string)p Ft(')49 b Fu(and)i Ft($")p Fj(string)p Ft(")e
-Fu(quoting)k(is)e(p)s(erformed)f(within)1110 4573 y Ft(${)p
-Fj(parameter)p Ft(})31 b Fu(expansions)k(enclosed)g(in)g(double)f
-(quotes.)55 b(This)33 b(option)1110 4682 y(is)d(enabled)h(b)m(y)f
-(default.)630 4847 y Ft(failglob)96 b Fu(If)36 b(set,)j(patterns)d
-(whic)m(h)g(fail)h(to)h(matc)m(h)f(\014lenames)f(during)g(\014lename)g
-(ex-)1110 4956 y(pansion)30 b(result)g(in)g(an)g(expansion)h(error.)630
-5121 y Ft(force_fignore)1110 5230 y Fu(If)43 b(set,)k(the)d(su\016xes)f
+b(substitution,)63 b(shell)1290 408 y(functions,)32 b(and)e(subshells)h
+(in)m(v)m(ok)m(ed)i(with)e Ft(\()f Fj(command)e Ft(\))j
+Fu(inherit)h(the)1290 518 y Ft(DEBUG)d Fu(and)h Ft(RETURN)e
+Fu(traps.)1159 662 y(6.)61 b(Error)41 b(tracing)i(is)f(enabled:)63
+b(command)42 b(substitution,)i(shell)f(func-)1290 772
+y(tions,)32 b(and)e(subshells)g(in)m(v)m(ok)m(ed)i(with)e
+Ft(\()g Fj(command)f Ft(\))h Fu(inherit)h(the)g Ft(ERR)1290
+881 y Fu(trap.)630 1060 y Ft(extglob)144 b Fu(If)26 b(set,)i(the)f
+(extended)f(pattern)h(matc)m(hing)g(features)g(describ)s(ed)e(ab)s(o)m
+(v)m(e)j(\(see)1110 1170 y(Section)j(3.5.8.1)i([P)m(attern)f(Matc)m
+(hing],)g(page)f(36\))h(are)f(enabled.)630 1349 y Ft(extquote)96
+b Fu(If)51 b(set,)58 b Ft($')p Fj(string)p Ft(')49 b
+Fu(and)i Ft($")p Fj(string)p Ft(")e Fu(quoting)k(is)e(p)s(erformed)f
+(within)1110 1458 y Ft(${)p Fj(parameter)p Ft(})31 b
+Fu(expansions)k(enclosed)g(in)g(double)f(quotes.)55 b(This)33
+b(option)1110 1568 y(is)d(enabled)h(b)m(y)f(default.)630
+1747 y Ft(failglob)96 b Fu(If)36 b(set,)j(patterns)d(whic)m(h)g(fail)h
+(to)h(matc)m(h)f(\014lenames)f(during)g(\014lename)g(ex-)1110
+1856 y(pansion)30 b(result)g(in)g(an)g(expansion)h(error.)630
+2035 y Ft(force_fignore)1110 2145 y Fu(If)43 b(set,)k(the)d(su\016xes)f
(sp)s(eci\014ed)f(b)m(y)i(the)f Ft(FIGNORE)f Fu(shell)h(v)-5
-b(ariable)44 b(cause)1110 5340 y(w)m(ords)31 b(to)h(b)s(e)f(ignored)h
-(when)f(p)s(erforming)f(w)m(ord)h(completion)i(ev)m(en)f(if)g(the)p
-eop end
-%%Page: 70 76
-TeXDict begin 70 75 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(70)1110 299 y(ignored)37
-b(w)m(ords)g(are)g(the)h(only)f(p)s(ossible)g(completions.)62
-b(See)37 b(Section)h(5.2)1110 408 y([Bash)24 b(V)-8 b(ariables],)27
-b(page)e(73,)h(for)d(a)h(description)g(of)g Ft(FIGNORE)p
-Fu(.)37 b(This)22 b(option)1110 518 y(is)30 b(enabled)h(b)m(y)f
-(default.)630 701 y Ft(globasciiranges)1110 810 y Fu(If)j(set,)h(range)
-f(expressions)g(used)f(in)h(pattern)g(matc)m(hing)h(brac)m(k)m(et)h
-(expres-)1110 920 y(sions)28 b(\(see)h(Section)h(3.5.8.1)g([P)m(attern)
-g(Matc)m(hing],)h(page)e(33\))g(b)s(eha)m(v)m(e)g(as)g(if)1110
-1029 y(in)i(the)g(traditional)i(C)d(lo)s(cale)j(when)d(p)s(erforming)g
-(comparisons.)44 b(That)31 b(is,)1110 1139 y(the)d(curren)m(t)g(lo)s
-(cale's)i(collating)h(sequence)d(is)h(not)f(tak)m(en)h(in)m(to)g
-(accoun)m(t,)i(so)1110 1249 y(`)p Ft(b)p Fu(')j(will)g(not)g(collate)i
-(b)s(et)m(w)m(een)e(`)p Ft(A)p Fu(')g(and)f(`)p Ft(B)p
-Fu(',)h(and)f(upp)s(er-case)g(and)g(lo)m(w)m(er-)1110
-1358 y(case)e(ASCI)s(I)e(c)m(haracters)j(will)f(collate)i(together.)630
-1541 y Ft(globstar)96 b Fu(If)38 b(set,)j(the)e(pattern)f(`)p
-Ft(**)p Fu(')h(used)e(in)i(a)f(\014lename)h(expansion)f(con)m(text)j
-(will)1110 1650 y(matc)m(h)36 b(all)g(\014les)f(and)f(zero)i(or)f(more)
-g(directories)h(and)e(sub)s(directories.)54 b(If)1110
-1760 y(the)30 b(pattern)g(is)g(follo)m(w)m(ed)i(b)m(y)d(a)i(`)p
-Ft(/)p Fu(',)f(only)g(directories)h(and)f(sub)s(directories)1110
-1870 y(matc)m(h.)630 2052 y Ft(gnu_errfmt)1110 2162 y
-Fu(If)35 b(set,)j(shell)e(error)g(messages)g(are)h(written)e(in)h(the)g
-(standard)f Fm(gnu)g Fu(error)1110 2271 y(message)c(format.)630
-2454 y Ft(histappend)1110 2564 y Fu(If)c(set,)j(the)e(history)g(list)g
+b(ariable)44 b(cause)1110 2254 y(w)m(ords)31 b(to)h(b)s(e)f(ignored)h
+(when)f(p)s(erforming)f(w)m(ord)h(completion)i(ev)m(en)f(if)g(the)1110
+2364 y(ignored)37 b(w)m(ords)g(are)g(the)h(only)f(p)s(ossible)g
+(completions.)62 b(See)37 b(Section)h(5.2)1110 2473 y([Bash)24
+b(V)-8 b(ariables],)27 b(page)e(78,)h(for)d(a)h(description)g(of)g
+Ft(FIGNORE)p Fu(.)37 b(This)22 b(option)1110 2583 y(is)30
+b(enabled)h(b)m(y)f(default.)630 2762 y Ft(globasciiranges)1110
+2871 y Fu(If)j(set,)h(range)f(expressions)g(used)f(in)h(pattern)g(matc)
+m(hing)h(brac)m(k)m(et)h(expres-)1110 2981 y(sions)28
+b(\(see)h(Section)h(3.5.8.1)g([P)m(attern)g(Matc)m(hing],)h(page)e
+(36\))g(b)s(eha)m(v)m(e)g(as)g(if)1110 3091 y(in)i(the)g(traditional)i
+(C)d(lo)s(cale)j(when)d(p)s(erforming)g(comparisons.)44
+b(That)31 b(is,)1110 3200 y(the)d(curren)m(t)g(lo)s(cale's)i(collating)
+h(sequence)d(is)h(not)f(tak)m(en)h(in)m(to)g(accoun)m(t,)i(so)1110
+3310 y(`)p Ft(b)p Fu(')j(will)g(not)g(collate)i(b)s(et)m(w)m(een)e(`)p
+Ft(A)p Fu(')g(and)f(`)p Ft(B)p Fu(',)h(and)f(upp)s(er-case)g(and)g(lo)m
+(w)m(er-)1110 3419 y(case)e(ASCI)s(I)e(c)m(haracters)j(will)f(collate)i
+(together.)630 3598 y Ft(globskipdots)1110 3708 y Fu(If)38
+b(set,)k(\014lename)d(expansion)f(will)h(nev)m(er)g(matc)m(h)h(the)f
+(\014lenames)g(`)p Ft(.)p Fu(')g(and)1110 3817 y(`)p
+Ft(..)p Fu(',)c(ev)m(en)g(if)g(the)f(pattern)g(b)s(egins)g(with)g(a)h
+(`)p Ft(.)p Fu('.)52 b(This)34 b(option)h(is)f(enabled)1110
+3927 y(b)m(y)c(default.)630 4106 y Ft(globstar)96 b Fu(If)38
+b(set,)j(the)e(pattern)f(`)p Ft(**)p Fu(')h(used)e(in)i(a)f(\014lename)
+h(expansion)f(con)m(text)j(will)1110 4215 y(matc)m(h)36
+b(all)g(\014les)f(and)f(zero)i(or)f(more)g(directories)h(and)e(sub)s
+(directories.)54 b(If)1110 4325 y(the)30 b(pattern)g(is)g(follo)m(w)m
+(ed)i(b)m(y)d(a)i(`)p Ft(/)p Fu(',)f(only)g(directories)h(and)f(sub)s
+(directories)1110 4434 y(matc)m(h.)630 4613 y Ft(gnu_errfmt)1110
+4723 y Fu(If)35 b(set,)j(shell)e(error)g(messages)g(are)h(written)e(in)
+h(the)g(standard)f Fm(gnu)g Fu(error)1110 4832 y(message)c(format.)630
+5011 y Ft(histappend)1110 5121 y Fu(If)c(set,)j(the)e(history)g(list)g
(is)g(app)s(ended)e(to)j(the)f(\014le)g(named)f(b)m(y)h(the)g(v)-5
-b(alue)29 b(of)1110 2673 y(the)d Ft(HISTFILE)d Fu(v)-5
+b(alue)29 b(of)1110 5230 y(the)d Ft(HISTFILE)d Fu(v)-5
b(ariable)26 b(when)e(the)h(shell)h(exits,)h(rather)e(than)h(o)m(v)m
-(erwriting)1110 2783 y(the)31 b(\014le.)630 2966 y Ft(histreedit)1110
-3075 y Fu(If)i(set,)h(and)f(Readline)h(is)f(b)s(eing)g(used,)g(a)g
+(erwriting)1110 5340 y(the)31 b(\014le.)p eop end
+%%Page: 75 81
+TeXDict begin 75 80 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(75)630 299 y Ft(histreedit)1110
+408 y Fu(If)33 b(set,)h(and)f(Readline)h(is)f(b)s(eing)g(used,)g(a)g
(user)g(is)g(giv)m(en)h(the)g(opp)s(ortunit)m(y)1110
-3185 y(to)d(re-edit)g(a)g(failed)g(history)f(substitution.)630
-3367 y Ft(histverify)1110 3477 y Fu(If)35 b(set,)i(and)e(Readline)h(is)
-f(b)s(eing)g(used,)h(the)f(results)g(of)g(history)h(substitu-)1110
-3587 y(tion)h(are)g(not)g(immediately)h(passed)e(to)h(the)g(shell)g
-(parser.)59 b(Instead,)38 b(the)1110 3696 y(resulting)i(line)f(is)h
+518 y(to)d(re-edit)g(a)g(failed)g(history)f(substitution.)630
+682 y Ft(histverify)1110 792 y Fu(If)35 b(set,)i(and)e(Readline)h(is)f
+(b)s(eing)g(used,)h(the)f(results)g(of)g(history)h(substitu-)1110
+902 y(tion)h(are)g(not)g(immediately)h(passed)e(to)h(the)g(shell)g
+(parser.)59 b(Instead,)38 b(the)1110 1011 y(resulting)i(line)f(is)h
(loaded)g(in)m(to)g(the)g(Readline)g(editing)g(bu\013er,)h(allo)m(wing)
-1110 3806 y(further)29 b(mo)s(di\014cation.)630 3988
-y Ft(hostcomplete)1110 4098 y Fu(If)38 b(set,)j(and)c(Readline)i(is)f
+1110 1121 y(further)29 b(mo)s(di\014cation.)630 1285
+y Ft(hostcomplete)1110 1395 y Fu(If)38 b(set,)j(and)c(Readline)i(is)f
(b)s(eing)g(used,)h(Bash)g(will)f(attempt)h(to)g(p)s(erform)1110
-4208 y(hostname)d(completion)h(when)e(a)h(w)m(ord)f(con)m(taining)i(a)f
-(`)p Ft(@)p Fu(')g(is)g(b)s(eing)f(com-)1110 4317 y(pleted)g(\(see)h
+1504 y(hostname)d(completion)h(when)e(a)h(w)m(ord)f(con)m(taining)i(a)f
+(`)p Ft(@)p Fu(')g(is)g(b)s(eing)f(com-)1110 1614 y(pleted)g(\(see)h
(Section)f(8.4.6)i([Commands)d(F)-8 b(or)36 b(Completion],)g(page)g
-(133\).)1110 4427 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)
-630 4609 y Ft(huponexit)1110 4719 y Fu(If)i(set,)i(Bash)f(will)h(send)d
+(139\).)1110 1724 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)
+630 1888 y Ft(huponexit)1110 1998 y Fu(If)i(set,)i(Bash)f(will)h(send)d
Ft(SIGHUP)h Fu(to)h(all)h(jobs)e(when)g(an)g(in)m(teractiv)m(e)k(login)
-1110 4829 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g
-(page)f(42\).)630 5011 y Ft(inherit_errexit)1110 5121
+1110 2107 y(shell)31 b(exits)g(\(see)g(Section)g(3.7.6)h([Signals],)g
+(page)f(45\).)630 2271 y Ft(inherit_errexit)1110 2381
y Fu(If)e(set,)h(command)g(substitution)f(inherits)g(the)g(v)-5
-b(alue)30 b(of)g(the)f Ft(errexit)f Fu(op-)1110 5230
+b(alue)30 b(of)g(the)f Ft(errexit)f Fu(op-)1110 2491
y(tion,)33 b(instead)g(of)f(unsetting)g(it)h(in)f(the)g(subshell)f(en)m
-(vironmen)m(t.)46 b(This)32 b(op-)1110 5340 y(tion)f(is)f(enabled)h
-(when)e Fm(posix)h Fu(mo)s(de)g(is)g(enabled.)p eop end
-%%Page: 71 77
-TeXDict begin 71 76 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(71)630 299 y Ft
-(interactive_comments)1110 408 y Fu(Allo)m(w)27 b(a)g(w)m(ord)e(b)s
+(vironmen)m(t.)46 b(This)32 b(op-)1110 2600 y(tion)f(is)f(enabled)h
+(when)e Fm(posix)h Fu(mo)s(de)g(is)g(enabled.)630 2765
+y Ft(interactive_comments)1110 2874 y Fu(Allo)m(w)d(a)g(w)m(ord)e(b)s
(eginning)g(with)h(`)p Ft(#)p Fu(')g(to)h(cause)f(that)h(w)m(ord)f(and)
-f(all)i(remain-)1110 518 y(ing)41 b(c)m(haracters)i(on)e(that)h(line)g
+f(all)i(remain-)1110 2984 y(ing)41 b(c)m(haracters)i(on)e(that)h(line)g
(to)g(b)s(e)f(ignored)g(in)g(an)g(in)m(teractiv)m(e)j(shell.)1110
-628 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)630
-777 y Ft(lastpipe)96 b Fu(If)24 b(set,)i(and)e(job)g(con)m(trol)i(is)f
+3093 y(This)30 b(option)g(is)h(enabled)f(b)m(y)g(default.)630
+3258 y Ft(lastpipe)96 b Fu(If)24 b(set,)i(and)e(job)g(con)m(trol)i(is)f
(not)f(activ)m(e,)k(the)d(shell)f(runs)f(the)i(last)g(command)1110
-887 y(of)37 b(a)h(pip)s(eline)e(not)h(executed)h(in)f(the)g(bac)m
-(kground)g(in)g(the)g(curren)m(t)g(shell)1110 996 y(en)m(vironmen)m(t.)
-630 1146 y Ft(lithist)144 b Fu(If)22 b(enabled,)i(and)d(the)h
+3367 y(of)37 b(a)h(pip)s(eline)e(not)h(executed)h(in)f(the)g(bac)m
+(kground)g(in)g(the)g(curren)m(t)g(shell)1110 3477 y(en)m(vironmen)m
+(t.)630 3641 y Ft(lithist)144 b Fu(If)22 b(enabled,)i(and)d(the)h
Ft(cmdhist)e Fu(option)j(is)f(enabled,)i(m)m(ulti-line)f(commands)1110
-1255 y(are)28 b(sa)m(v)m(ed)h(to)g(the)f(history)g(with)f(em)m(b)s
-(edded)g(newlines)h(rather)g(than)f(using)1110 1365 y(semicolon)32
-b(separators)f(where)e(p)s(ossible.)630 1514 y Ft(localvar_inherit)1110
-1624 y Fu(If)j(set,)h(lo)s(cal)g(v)-5 b(ariables)33 b(inherit)f(the)g
+3751 y(are)28 b(sa)m(v)m(ed)h(to)g(the)f(history)g(with)f(em)m(b)s
+(edded)g(newlines)h(rather)g(than)f(using)1110 3861 y(semicolon)32
+b(separators)f(where)e(p)s(ossible.)630 4025 y Ft(localvar_inherit)1110
+4134 y Fu(If)j(set,)h(lo)s(cal)g(v)-5 b(ariables)33 b(inherit)f(the)g
(v)-5 b(alue)32 b(and)g(attributes)h(of)f(a)g(v)-5 b(ariable)1110
-1733 y(of)36 b(the)g(same)g(name)g(that)h(exists)f(at)h(a)f(previous)g
-(scop)s(e)g(b)s(efore)f(an)m(y)h(new)1110 1843 y(v)-5
-b(alue)31 b(is)f(assigned.)41 b(The)30 b Fr(nameref)48
-b Fu(attribute)31 b(is)f(not)h(inherited.)630 1993 y
-Ft(localvar_unset)1110 2102 y Fu(If)i(set,)i(calling)g
-Ft(unset)d Fu(on)i(lo)s(cal)g(v)-5 b(ariables)35 b(in)e(previous)g
-(function)g(scop)s(es)1110 2212 y(marks)26 b(them)g(so)g(subsequen)m(t)
-g(lo)s(okups)f(\014nd)g(them)h(unset)f(un)m(til)i(that)g(func-)1110
-2321 y(tion)40 b(returns.)68 b(This)39 b(is)g(iden)m(tical)j(to)e(the)g
-(b)s(eha)m(vior)g(of)g(unsetting)g(lo)s(cal)1110 2431
-y(v)-5 b(ariables)31 b(at)g(the)g(curren)m(t)f(function)g(scop)s(e.)630
-2580 y Ft(login_shell)1110 2690 y Fu(The)35 b(shell)h(sets)g(this)f
-(option)h(if)g(it)g(is)f(started)h(as)g(a)g(login)g(shell)g(\(see)g
-(Sec-)1110 2800 y(tion)29 b(6.1)g([In)m(v)m(oking)h(Bash],)f(page)g
-(86\).)41 b(The)28 b(v)-5 b(alue)29 b(ma)m(y)g(not)f(b)s(e)g(c)m
-(hanged.)630 2949 y Ft(mailwarn)96 b Fu(If)34 b(set,)i(and)e(a)h
-(\014le)g(that)g(Bash)f(is)h(c)m(hec)m(king)h(for)f(mail)g(has)f(b)s
-(een)g(accessed)1110 3059 y(since)24 b(the)h(last)g(time)f(it)h(w)m(as)
-f(c)m(hec)m(k)m(ed,)k(the)c(message)h Ft("The)k(mail)h(in)f
-Fj(mail-)1110 3168 y(file)g Ft(has)h(been)f(read")g Fu(is)h(displa)m(y)
-m(ed.)630 3318 y Ft(no_empty_cmd_completion)1110 3427
-y Fu(If)g(set,)g(and)g(Readline)g(is)h(b)s(eing)e(used,)h(Bash)g(will)g
-(not)g(attempt)i(to)e(searc)m(h)1110 3537 y(the)25 b
-Ft(PATH)f Fu(for)h(p)s(ossible)f(completions)j(when)d(completion)i(is)f
-(attempted)h(on)1110 3646 y(an)k(empt)m(y)h(line.)630
-3796 y Ft(nocaseglob)1110 3905 y Fu(If)38 b(set,)k(Bash)d(matc)m(hes)g
-(\014lenames)g(in)f(a)h(case-insensitiv)m(e)j(fashion)c(when)1110
-4015 y(p)s(erforming)29 b(\014lename)i(expansion.)630
-4164 y Ft(nocasematch)1110 4274 y Fu(If)42 b(set,)k(Bash)d(matc)m(hes)g
-(patterns)g(in)f(a)h(case-insensitiv)m(e)i(fashion)d(when)1110
-4384 y(p)s(erforming)31 b(matc)m(hing)i(while)f(executing)i
-Ft(case)d Fu(or)h Ft([[)g Fu(conditional)h(com-)1110
-4493 y(mands,)d(when)g(p)s(erforming)g(pattern)h(substitution)g(w)m
-(ord)g(expansions,)g(or)1110 4603 y(when)g(\014ltering)i(p)s(ossible)f
-(completions)h(as)g(part)f(of)h(programmable)f(com-)1110
-4712 y(pletion.)630 4862 y Ft(nullglob)96 b Fu(If)23
-b(set,)j(Bash)e(allo)m(ws)g(\014lename)g(patterns)g(whic)m(h)f(matc)m
-(h)h(no)g(\014les)f(to)i(expand)1110 4971 y(to)31 b(a)g(n)m(ull)f
-(string,)h(rather)f(than)g(themselv)m(es.)630 5121 y
-Ft(progcomp)96 b Fu(If)25 b(set,)i(the)f(programmable)g(completion)g
-(facilities)i(\(see)f(Section)f(8.6)h([Pro-)1110 5230
-y(grammable)45 b(Completion],)k(page)c(137\))h(are)f(enabled.)82
-b(This)44 b(option)h(is)1110 5340 y(enabled)30 b(b)m(y)h(default.)p
+4244 y(of)36 b(the)g(same)g(name)g(that)h(exists)f(at)h(a)f(previous)g
+(scop)s(e)g(b)s(efore)f(an)m(y)h(new)1110 4354 y(v)-5
+b(alue)31 b(is)f(assigned.)41 b(The)30 b Ft(nameref)e
+Fu(attribute)k(is)e(not)h(inherited.)630 4518 y Ft(localvar_unset)1110
+4628 y Fu(If)i(set,)i(calling)g Ft(unset)d Fu(on)i(lo)s(cal)g(v)-5
+b(ariables)35 b(in)e(previous)g(function)g(scop)s(es)1110
+4737 y(marks)26 b(them)g(so)g(subsequen)m(t)g(lo)s(okups)f(\014nd)g
+(them)h(unset)f(un)m(til)i(that)g(func-)1110 4847 y(tion)40
+b(returns.)68 b(This)39 b(is)g(iden)m(tical)j(to)e(the)g(b)s(eha)m
+(vior)g(of)g(unsetting)g(lo)s(cal)1110 4956 y(v)-5 b(ariables)31
+b(at)g(the)g(curren)m(t)f(function)g(scop)s(e.)630 5121
+y Ft(login_shell)1110 5230 y Fu(The)35 b(shell)h(sets)g(this)f(option)h
+(if)g(it)g(is)f(started)h(as)g(a)g(login)g(shell)g(\(see)g(Sec-)1110
+5340 y(tion)29 b(6.1)g([In)m(v)m(oking)h(Bash],)f(page)g(91\).)41
+b(The)28 b(v)-5 b(alue)29 b(ma)m(y)g(not)f(b)s(e)g(c)m(hanged.)p
eop end
-%%Page: 72 78
-TeXDict begin 72 77 bop 150 -116 a Fu(Chapter)30 b(4:)41
-b(Shell)30 b(Builtin)h(Commands)2069 b(72)630 299 y Ft(progcomp_alias)
-1110 408 y Fu(If)23 b(set,)j(and)d(programmable)h(completion)h(is)f
-(enabled,)h(Bash)f(treats)h(a)f(com-)1110 518 y(mand)34
+%%Page: 76 82
+TeXDict begin 76 81 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(76)630 299 y Ft(mailwarn)96
+b Fu(If)34 b(set,)i(and)e(a)h(\014le)g(that)g(Bash)f(is)h(c)m(hec)m
+(king)h(for)f(mail)g(has)f(b)s(een)g(accessed)1110 408
+y(since)24 b(the)h(last)g(time)f(it)h(w)m(as)f(c)m(hec)m(k)m(ed,)k(the)
+c(message)h Ft("The)k(mail)h(in)f Fj(mail-)1110 518 y(file)g
+Ft(has)h(been)f(read")g Fu(is)h(displa)m(y)m(ed.)630
+701 y Ft(no_empty_cmd_completion)1110 810 y Fu(If)g(set,)g(and)g
+(Readline)g(is)h(b)s(eing)e(used,)h(Bash)g(will)g(not)g(attempt)i(to)e
+(searc)m(h)1110 920 y(the)25 b Ft(PATH)f Fu(for)h(p)s(ossible)f
+(completions)j(when)d(completion)i(is)f(attempted)h(on)1110
+1029 y(an)k(empt)m(y)h(line.)630 1212 y Ft(nocaseglob)1110
+1322 y Fu(If)38 b(set,)k(Bash)d(matc)m(hes)g(\014lenames)g(in)f(a)h
+(case-insensitiv)m(e)j(fashion)c(when)1110 1431 y(p)s(erforming)29
+b(\014lename)i(expansion.)630 1614 y Ft(nocasematch)1110
+1724 y Fu(If)42 b(set,)k(Bash)d(matc)m(hes)g(patterns)g(in)f(a)h
+(case-insensitiv)m(e)i(fashion)d(when)1110 1833 y(p)s(erforming)31
+b(matc)m(hing)i(while)f(executing)i Ft(case)d Fu(or)h
+Ft([[)g Fu(conditional)h(com-)1110 1943 y(mands)25 b(\(see)i(Section)f
+(3.2.5.2)j([Conditional)e(Constructs],)f(page)h(12,)h(when)1110
+2052 y(p)s(erforming)e(pattern)i(substitution)f(w)m(ord)g(expansions,)h
+(or)f(when)g(\014ltering)1110 2162 y(p)s(ossible)j(completions)h(as)g
+(part)f(of)h(programmable)f(completion.)630 2345 y Ft
+(noexpand_translation)1110 2454 y Fu(If)23 b(set,)j(Bash)d(encloses)i
+(the)e(translated)h(results)g(of)f($)p Ft(")p Fu(...)p
+Ft(")h Fu(quoting)g(in)f(single)1110 2564 y(quotes)k(instead)g(of)g
+(double)f(quotes.)40 b(If)26 b(the)h(string)f(is)h(not)g(translated,)h
+(this)1110 2673 y(has)i(no)g(e\013ect.)630 2856 y Ft(nullglob)96
+b Fu(If)23 b(set,)j(Bash)e(allo)m(ws)g(\014lename)g(patterns)g(whic)m
+(h)f(matc)m(h)h(no)g(\014les)f(to)i(expand)1110 2966
+y(to)31 b(a)g(n)m(ull)f(string,)h(rather)f(than)g(themselv)m(es.)630
+3148 y Ft(patsub_replacement)1110 3258 y Fu(If)38 b(set,)k(Bash)d
+(expands)e(o)s(ccurrences)i(of)g(`)p Ft(&)p Fu(')g(in)f(the)h
+(replacemen)m(t)h(string)1110 3367 y(of)47 b(pattern)g(substitution)g
+(to)h(the)f(text)h(matc)m(hed)g(b)m(y)f(the)g(pattern,)52
+b(as)1110 3477 y(describ)s(ed)45 b(ab)s(o)m(v)m(e)i(\(see)f(Section)h
+(3.5.3)g([Shell)f(P)m(arameter)h(Expansion],)1110 3587
+y(page)31 b(26\).)42 b(This)30 b(option)g(is)h(enabled)f(b)m(y)g
+(default.)630 3769 y Ft(progcomp)96 b Fu(If)25 b(set,)i(the)f
+(programmable)g(completion)g(facilities)i(\(see)f(Section)f(8.6)h
+([Pro-)1110 3879 y(grammable)45 b(Completion],)k(page)c(143\))h(are)f
+(enabled.)82 b(This)44 b(option)h(is)1110 3988 y(enabled)30
+b(b)m(y)h(default.)630 4171 y Ft(progcomp_alias)1110
+4281 y Fu(If)23 b(set,)j(and)d(programmable)h(completion)h(is)f
+(enabled,)h(Bash)f(treats)h(a)f(com-)1110 4390 y(mand)34
b(name)h(that)g(do)s(esn't)f(ha)m(v)m(e)i(an)m(y)g(completions)f(as)g
-(a)g(p)s(ossible)g(alias)1110 628 y(and)40 b(attempts)i(alias)h
+(a)g(p)s(ossible)g(alias)1110 4500 y(and)40 b(attempts)i(alias)h
(expansion.)72 b(If)41 b(it)g(has)g(an)g(alias,)k(Bash)c(attempts)1110
-737 y(programmable)28 b(completion)h(using)e(the)h(command)f(w)m(ord)h
-(resulting)f(from)1110 847 y(the)k(expanded)e(alias.)630
-1006 y Ft(promptvars)1110 1116 y Fu(If)50 b(set,)56 b(prompt)49
+4609 y(programmable)28 b(completion)h(using)e(the)h(command)f(w)m(ord)h
+(resulting)f(from)1110 4719 y(the)k(expanded)e(alias.)630
+4902 y Ft(promptvars)1110 5011 y Fu(If)50 b(set,)56 b(prompt)49
b(strings)h(undergo)g(parameter)h(expansion,)k(command)1110
-1225 y(substitution,)35 b(arithmetic)g(expansion,)g(and)e(quote)i(remo)
-m(v)-5 b(al)35 b(after)f(b)s(eing)1110 1335 y(expanded)53
+5121 y(substitution,)35 b(arithmetic)g(expansion,)g(and)e(quote)i(remo)
+m(v)-5 b(al)35 b(after)f(b)s(eing)1110 5230 y(expanded)53
b(as)h(describ)s(ed)e(b)s(elo)m(w)i(\(see)h(Section)f(6.9)h([Con)m
-(trolling)g(the)1110 1445 y(Prompt],)30 b(page)h(98\).)42
-b(This)30 b(option)h(is)f(enabled)h(b)m(y)f(default.)630
-1604 y Ft(restricted_shell)1110 1714 y Fu(The)40 b(shell)h(sets)g(this)
-g(option)g(if)g(it)h(is)e(started)i(in)e(restricted)i(mo)s(de)e(\(see)
-1110 1823 y(Section)32 b(6.10)h([The)d(Restricted)j(Shell],)e(page)h
-(100\).)45 b(The)30 b(v)-5 b(alue)32 b(ma)m(y)g(not)1110
-1933 y(b)s(e)g(c)m(hanged.)49 b(This)32 b(is)h(not)h(reset)f(when)f
-(the)h(startup)g(\014les)f(are)i(executed,)1110 2042
-y(allo)m(wing)k(the)e(startup)f(\014les)h(to)g(disco)m(v)m(er)h
-(whether)f(or)f(not)i(a)f(shell)g(is)g(re-)1110 2152
-y(stricted.)630 2311 y Ft(shift_verbose)1110 2421 y Fu(If)g(this)g(is)g
-(set,)j(the)d Ft(shift)f Fu(builtin)h(prin)m(ts)f(an)h(error)g(message)
-i(when)d(the)1110 2531 y(shift)30 b(coun)m(t)h(exceeds)g(the)g(n)m(um)m
-(b)s(er)e(of)h(p)s(ositional)i(parameters.)630 2690 y
-Ft(sourcepath)1110 2800 y Fu(If)22 b(set,)j(the)e Ft(source)e
-Fu(builtin)h(uses)g(the)h(v)-5 b(alue)23 b(of)g Ft(PATH)e
-Fu(to)j(\014nd)d(the)h(directory)1110 2909 y(con)m(taining)29
-b(the)e(\014le)h(supplied)e(as)h(an)g(argumen)m(t.)40
-b(This)27 b(option)h(is)f(enabled)1110 3019 y(b)m(y)j(default.)630
-3178 y Ft(xpg_echo)96 b Fu(If)31 b(set,)h(the)g Ft(echo)e
-Fu(builtin)h(expands)f(bac)m(kslash-escap)s(e)j(sequences)f(b)m(y)f
-(de-)1110 3288 y(fault.)150 3528 y Fs(4.4)68 b(Sp)t(ecial)45
-b(Builtins)150 3688 y Fu(F)-8 b(or)35 b(historical)h(reasons,)g(the)e
-Fm(posix)g Fu(standard)f(has)i(classi\014ed)f(sev)m(eral)i(builtin)e
-(commands)g(as)h Fl(sp)-5 b(e-)150 3797 y(cial)p Fu(.)47
-b(When)33 b(Bash)f(is)h(executing)g(in)f Fm(posix)g Fu(mo)s(de,)h(the)g
-(sp)s(ecial)g(builtins)e(di\013er)i(from)f(other)g(builtin)150
-3907 y(commands)e(in)g(three)h(resp)s(ects:)199 4042
-y(1.)61 b(Sp)s(ecial)31 b(builtins)e(are)i(found)e(b)s(efore)h(shell)h
-(functions)f(during)f(command)h(lo)s(okup.)199 4176 y(2.)61
-b(If)30 b(a)h(sp)s(ecial)g(builtin)f(returns)f(an)h(error)g(status,)h
-(a)g(non-in)m(teractiv)m(e)i(shell)d(exits.)199 4311
-y(3.)61 b(Assignmen)m(t)30 b(statemen)m(ts)h(preceding)f(the)f(command)
-g(sta)m(y)i(in)e(e\013ect)i(in)e(the)h(shell)f(en)m(vironmen)m(t)330
-4420 y(after)i(the)f(command)h(completes.)275 4579 y(When)36
-b(Bash)g(is)h(not)f(executing)i(in)e Fm(posix)f Fu(mo)s(de,)j(these)f
-(builtins)f(b)s(eha)m(v)m(e)h(no)f(di\013eren)m(tly)h(than)150
-4689 y(the)31 b(rest)f(of)h(the)f(Bash)h(builtin)e(commands.)41
-b(The)30 b(Bash)g Fm(posix)g Fu(mo)s(de)g(is)g(describ)s(ed)f(in)h
-(Section)h(6.11)150 4799 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g(101.)275
-4933 y(These)f(are)g(the)h Fm(posix)f Fu(sp)s(ecial)h(builtins:)390
-5068 y Ft(break)46 b(:)i(.)f(continue)f(eval)g(exec)h(exit)g(export)f
-(readonly)f(return)h(set)390 5177 y(shift)g(trap)h(unset)p
+(trolling)g(the)1110 5340 y(Prompt],)30 b(page)h(104\).)43
+b(This)29 b(option)i(is)g(enabled)f(b)m(y)g(default.)p
eop end
-%%Page: 73 79
-TeXDict begin 73 78 bop 3659 -116 a Fu(73)150 299 y Fp(5)80
+%%Page: 77 83
+TeXDict begin 77 82 bop 150 -116 a Fu(Chapter)30 b(4:)41
+b(Shell)30 b(Builtin)h(Commands)2069 b(77)630 299 y Ft
+(restricted_shell)1110 408 y Fu(The)40 b(shell)h(sets)g(this)g(option)g
+(if)g(it)h(is)e(started)i(in)e(restricted)i(mo)s(de)e(\(see)1110
+518 y(Section)32 b(6.10)h([The)d(Restricted)j(Shell],)e(page)h(105\).)
+45 b(The)30 b(v)-5 b(alue)32 b(ma)m(y)g(not)1110 628
+y(b)s(e)g(c)m(hanged.)49 b(This)32 b(is)h(not)h(reset)f(when)f(the)h
+(startup)g(\014les)f(are)i(executed,)1110 737 y(allo)m(wing)k(the)e
+(startup)f(\014les)h(to)g(disco)m(v)m(er)h(whether)f(or)f(not)i(a)f
+(shell)g(is)g(re-)1110 847 y(stricted.)630 1006 y Ft(shift_verbose)1110
+1116 y Fu(If)g(this)g(is)g(set,)j(the)d Ft(shift)f Fu(builtin)h(prin)m
+(ts)f(an)h(error)g(message)i(when)d(the)1110 1225 y(shift)30
+b(coun)m(t)h(exceeds)g(the)g(n)m(um)m(b)s(er)e(of)h(p)s(ositional)i
+(parameters.)630 1385 y Ft(sourcepath)1110 1494 y Fu(If)40
+b(set,)45 b(the)c Ft(.)f Fu(\()p Ft(source)p Fu(\))g(builtin)g(uses)h
+(the)g(v)-5 b(alue)41 b(of)g Ft(PATH)f Fu(to)h(\014nd)f(the)1110
+1604 y(directory)32 b(con)m(taining)g(the)g(\014le)f(supplied)f(as)h
+(an)g(argumen)m(t.)44 b(This)30 b(option)1110 1714 y(is)g(enabled)h(b)m
+(y)f(default.)630 1873 y Ft(varredir_close)1110 1983
+y Fu(If)i(set,)h(the)f(shell)h(automatically)i(closes)e(\014le)f
+(descriptors)g(assigned)g(using)1110 2092 y(the)40 b
+Ft({varname})c Fu(redirection)k(syn)m(tax)g(\(see)h(Section)f(3.6)g
+([Redirections],)1110 2202 y(page)h(38\))f(instead)h(of)e(lea)m(ving)j
+(them)e(op)s(en)f(when)g(the)h(command)f(com-)1110 2311
+y(pletes.)630 2471 y Ft(xpg_echo)96 b Fu(If)31 b(set,)h(the)g
+Ft(echo)e Fu(builtin)h(expands)f(bac)m(kslash-escap)s(e)j(sequences)f
+(b)m(y)f(de-)1110 2580 y(fault.)150 2821 y Fs(4.4)68
+b(Sp)t(ecial)45 b(Builtins)150 2980 y Fu(F)-8 b(or)35
+b(historical)h(reasons,)g(the)e Fm(posix)g Fu(standard)f(has)i
+(classi\014ed)f(sev)m(eral)i(builtin)e(commands)g(as)h
+Fl(sp)-5 b(e-)150 3090 y(cial)p Fu(.)47 b(When)33 b(Bash)f(is)h
+(executing)g(in)f Fm(posix)g Fu(mo)s(de,)h(the)g(sp)s(ecial)g(builtins)
+e(di\013er)i(from)f(other)g(builtin)150 3200 y(commands)e(in)g(three)h
+(resp)s(ects:)199 3334 y(1.)61 b(Sp)s(ecial)31 b(builtins)e(are)i
+(found)e(b)s(efore)h(shell)h(functions)f(during)f(command)h(lo)s(okup.)
+199 3469 y(2.)61 b(If)30 b(a)h(sp)s(ecial)g(builtin)f(returns)f(an)h
+(error)g(status,)h(a)g(non-in)m(teractiv)m(e)i(shell)d(exits.)199
+3603 y(3.)61 b(Assignmen)m(t)30 b(statemen)m(ts)h(preceding)f(the)f
+(command)g(sta)m(y)i(in)e(e\013ect)i(in)e(the)h(shell)f(en)m(vironmen)m
+(t)330 3713 y(after)i(the)f(command)h(completes.)275
+3872 y(When)36 b(Bash)g(is)h(not)f(executing)i(in)e Fm(posix)f
+Fu(mo)s(de,)j(these)f(builtins)f(b)s(eha)m(v)m(e)h(no)f(di\013eren)m
+(tly)h(than)150 3982 y(the)31 b(rest)f(of)h(the)f(Bash)h(builtin)e
+(commands.)41 b(The)30 b(Bash)g Fm(posix)g Fu(mo)s(de)g(is)g(describ)s
+(ed)f(in)h(Section)h(6.11)150 4091 y([Bash)g(POSIX)e(Mo)s(de],)i(page)g
+(106.)275 4226 y(These)f(are)g(the)h Fm(posix)f Fu(sp)s(ecial)h
+(builtins:)390 4360 y Ft(break)46 b(:)i(.)f(continue)f(eval)g(exec)h
+(exit)g(export)f(readonly)f(return)h(set)390 4470 y(shift)g(trap)h
+(unset)p eop end
+%%Page: 78 84
+TeXDict begin 78 83 bop 3659 -116 a Fu(78)150 299 y Fp(5)80
b(Shell)53 b(V)-13 b(ariables)150 504 y Fu(This)21 b(c)m(hapter)i
(describ)s(es)e(the)i(shell)f(v)-5 b(ariables)23 b(that)f(Bash)h(uses.)
37 b(Bash)23 b(automatically)h(assigns)f(default)150
@@ -13377,7 +13743,7 @@ b Fu(The)23 b(curren)m(t)h(user's)f(home)g(directory;)k(the)d(default)g
(for)f(the)h Ft(cd)f Fu(builtin)g(command.)38 b(The)630
1628 y(v)-5 b(alue)37 b(of)f(this)g(v)-5 b(ariable)37
b(is)g(also)g(used)e(b)m(y)h(tilde)h(expansion)f(\(see)i(Section)f
-(3.5.2)h([Tilde)630 1737 y(Expansion],)30 b(page)h(24\).)150
+(3.5.2)h([Tilde)630 1737 y(Expansion],)30 b(page)h(25\).)150
1885 y Ft(IFS)336 b Fu(A)25 b(list)i(of)e(c)m(haracters)i(that)f
(separate)g(\014elds;)h(used)e(when)f(the)i(shell)f(splits)h(w)m(ords)e
(as)i(part)630 1995 y(of)31 b(expansion.)150 2143 y Ft(MAIL)288
@@ -13408,10 +13774,10 @@ Fu(builtin.)150 3392 y Ft(PATH)288 b Fu(A)32 b(colon-separated)i(list)f
(colons,)g(or)f(as)g(an)630 3721 y(initial)f(or)e(trailing)h(colon.)150
3869 y Ft(PS1)336 b Fu(The)35 b(primary)f(prompt)h(string.)55
b(The)35 b(default)h(v)-5 b(alue)35 b(is)h(`)p Ft(\\s-\\v\\$)28
-b Fu('.)56 b(See)36 b(Section)g(6.9)630 3979 y([Con)m(trolling)42
-b(the)e(Prompt],)j(page)e(98,)j(for)c(the)g(complete)i(list)f(of)f
-(escap)s(e)h(sequences)630 4088 y(that)31 b(are)g(expanded)e(b)s(efore)
-h Ft(PS1)g Fu(is)g(displa)m(y)m(ed.)150 4236 y Ft(PS2)336
+b Fu('.)56 b(See)36 b(Section)g(6.9)630 3979 y([Con)m(trolling)i(the)e
+(Prompt],)i(page)f(104,)i(for)d(the)h(complete)h(list)e(of)h(escap)s(e)
+g(sequences)630 4088 y(that)31 b(are)g(expanded)e(b)s(efore)h
+Ft(PS1)g Fu(is)g(displa)m(y)m(ed.)150 4236 y Ft(PS2)336
b Fu(The)28 b(secondary)g(prompt)g(string.)40 b(The)28
b(default)g(v)-5 b(alue)29 b(is)g(`)p Ft(>)h Fu('.)40
b Ft(PS2)28 b Fu(is)g(expanded)g(in)g(the)630 4346 y(same)j(w)m(a)m(y)g
@@ -13424,15 +13790,15 @@ b(few)g(v)-5 b(ariables)24 b(used)g(b)m(y)f(Bash)i(are)f(describ)s(ed)f
(in)h(di\013eren)m(t)g(c)m(hapters:)38 b(v)-5 b(ariables)25
b(for)f(con)m(trolling)150 5082 y(the)31 b(job)f(con)m(trol)h
(facilities)i(\(see)e(Section)g(7.3)h([Job)e(Con)m(trol)h(V)-8
-b(ariables],)32 b(page)g(110\).)150 5230 y Ft(_)432 b
+b(ariables],)32 b(page)g(116\).)150 5230 y Ft(_)432 b
Fu(\($)p 716 5230 28 4 v 41 w(,)34 b(an)g(underscore.\))49
b(A)m(t)35 b(shell)f(startup,)g(set)g(to)g(the)g(pathname)f(used)g(to)h
(in)m(v)m(ok)m(e)i(the)630 5340 y(shell)e(or)g(shell)h(script)f(b)s
(eing)f(executed)j(as)e(passed)g(in)f(the)i(en)m(vironmen)m(t)f(or)g
(argumen)m(t)p eop end
-%%Page: 74 80
-TeXDict begin 74 79 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(74)630 299 y(list.)55
+%%Page: 79 85
+TeXDict begin 79 84 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(79)630 299 y(list.)55
b(Subsequen)m(tly)-8 b(,)35 b(expands)f(to)i(the)f(last)g(argumen)m(t)h
(to)f(the)g(previous)f(simple)h(com-)630 408 y(mand)21
b(executed)i(in)e(the)i(foreground,)g(after)f(expansion.)38
@@ -13448,7 +13814,7 @@ b(full)g(pathname)g(used)g(to)h(execute)h(the)e(curren)m(t)g(instance)h
b(w)m(ord)f(in)g(the)h(list)g(is)g(a)g(v)-5 b(alid)630
1212 y(argumen)m(t)37 b(for)g(the)g Ft(-s)f Fu(option)i(to)f(the)g
Ft(shopt)f Fu(builtin)g(command)h(\(see)g(Section)h(4.3.2)630
-1322 y([The)e(Shopt)g(Builtin],)i(page)f(66\).)60 b(The)36
+1322 y([The)e(Shopt)g(Builtin],)i(page)f(71\).)60 b(The)36
b(options)h(app)s(earing)f(in)g Ft(BASHOPTS)e Fu(are)i(those)630
1431 y(rep)s(orted)e(as)h(`)p Ft(on)p Fu(')f(b)m(y)h(`)p
Ft(shopt)p Fu('.)53 b(If)34 b(this)g(v)-5 b(ariable)36
@@ -13469,7 +13835,7 @@ b(its)g(sp)s(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g
b(ariable)41 b(whose)f(mem)m(b)s(ers)f(corresp)s(ond)g(to)i(the)f(in)m
(ternal)h(list)630 2564 y(of)c(aliases)h(as)f(main)m(tained)g(b)m(y)g
(the)g Ft(alias)e Fu(builtin.)59 b(\(see)37 b(Section)h(4.1)f([Bourne)g
-(Shell)630 2673 y(Builtins],)31 b(page)g(44\).)42 b(Elemen)m(ts)31
+(Shell)630 2673 y(Builtins],)31 b(page)g(48\).)42 b(Elemen)m(ts)31
b(added)e(to)i(this)f(arra)m(y)h(app)s(ear)f(in)g(the)g(alias)h(list;)h
(ho)m(w-)630 2783 y(ev)m(er,)k(unsetting)f(arra)m(y)g(elemen)m(ts)g
(curren)m(tly)g(do)s(es)f(not)g(cause)h(aliases)h(to)f(b)s(e)f(remo)m
@@ -13488,7 +13854,7 @@ b(a)g(subroutine)f(is)h(executed,)i(the)e(n)m(um)m(b)s(er)f(of)h
(parameters)630 3733 y(passed)44 b(is)h(pushed)e(on)m(to)j
Ft(BASH_ARGC)p Fu(.)81 b(The)44 b(shell)h(sets)g Ft(BASH_ARGC)e
Fu(only)i(when)e(in)630 3842 y(extended)34 b(debugging)f(mo)s(de)g
-(\(see)i(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)i(page)g(66,)g(for)
+(\(see)i(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)i(page)g(71,)g(for)
630 3952 y(a)e(description)g(of)f(the)h Ft(extdebug)d
Fu(option)j(to)h(the)e Ft(shopt)g Fu(builtin\).)47 b(Setting)33
b Ft(extdebug)630 4061 y Fu(after)c(the)g(shell)g(has)g(started)g(to)g
@@ -13506,20 +13872,20 @@ y(is)40 b(executed,)j(the)d(parameters)h(supplied)d(are)i(pushed)f(on)m
(to)i Ft(BASH_ARGV)p Fu(.)66 b(The)40 b(shell)630 4902
y(sets)28 b Ft(BASH_ARGV)e Fu(only)i(when)f(in)h(extended)g(debugging)g
(mo)s(de)g(\(see)h(Section)f(4.3.2)i([The)630 5011 y(Shopt)g(Builtin],)
-h(page)g(66,)g(for)g(a)f(description)h(of)f(the)h Ft(extdebug)d
+h(page)g(71,)g(for)g(a)f(description)h(of)f(the)h Ft(extdebug)d
Fu(option)j(to)g(the)f Ft(shopt)630 5121 y Fu(builtin\).)64
b(Setting)38 b Ft(extdebug)e Fu(after)j(the)f(shell)g(has)g(started)g
(to)h(execute)g(a)g(script,)h(or)630 5230 y(referencing)35
b(this)f(v)-5 b(ariable)35 b(when)e Ft(extdebug)f Fu(is)j(not)f(set,)j
(ma)m(y)e(result)f(in)g(inconsisten)m(t)630 5340 y(v)-5
b(alues.)p eop end
-%%Page: 75 81
-TeXDict begin 75 80 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(75)150 299 y Ft(BASH_ARGV0)630
+%%Page: 80 86
+TeXDict begin 80 85 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(80)150 299 y Ft(BASH_ARGV0)630
408 y Fu(When)31 b(referenced,)g(this)g(v)-5 b(ariable)32
b(expands)e(to)h(the)h(name)f(of)g(the)g(shell)g(or)g(shell)g(script)
630 518 y(\(iden)m(tical)42 b(to)e Ft($0)p Fu(;)j(See)d(Section)g
-(3.4.2)i([Sp)s(ecial)e(P)m(arameters],)j(page)d(21,)j(for)c(the)h(de-)
+(3.4.2)i([Sp)s(ecial)e(P)m(arameters],)j(page)d(23,)j(for)c(the)h(de-)
630 628 y(scription)32 b(of)g(sp)s(ecial)g(parameter)g(0\).)45
b(Assignmen)m(t)32 b(to)h Ft(BASH_ARGV0)c Fu(causes)j(the)f(v)-5
b(alue)630 737 y(assigned)34 b(to)h(also)g(b)s(e)e(assigned)h(to)g
@@ -13530,7 +13896,7 @@ Ft($0)p Fu(.)51 b(If)33 b Ft(BASH_ARGV0)f Fu(is)h(unset,)i(it)f(loses)h
b(whose)f(mem)m(b)s(ers)f(corresp)s(ond)g(to)i(the)f(in)m(ternal)h
(hash)630 1267 y(table)c(of)g(commands)f(as)g(main)m(tained)h(b)m(y)g
(the)f Ft(hash)f Fu(builtin)h(\(see)h(Section)g(4.1)h([Bourne)630
-1377 y(Shell)42 b(Builtins],)k(page)d(44\).)77 b(Elemen)m(ts)43
+1377 y(Shell)42 b(Builtins],)k(page)d(48\).)77 b(Elemen)m(ts)43
b(added)e(to)i(this)f(arra)m(y)h(app)s(ear)f(in)f(the)i(hash)630
1486 y(table;)k(ho)m(w)m(ev)m(er,)e(unsetting)c(arra)m(y)g(elemen)m(ts)
i(curren)m(tly)d(do)s(es)h(not)g(cause)g(command)630
@@ -13548,7 +13914,7 @@ b(If)30 b Ft(BASH_COMMAND)e Fu(is)i(unset,)h(it)g(loses)630
(subsequen)m(tly)g(reset.)150 2545 y Ft(BASH_COMPAT)630
2655 y Fu(The)i(v)-5 b(alue)33 b(is)g(used)f(to)h(set)g(the)g(shell's)g
(compatibilit)m(y)i(lev)m(el.)49 b(See)33 b(Section)h(6.12)g([Shell)630
-2765 y(Compatibilit)m(y)j(Mo)s(de],)h(page)e(104,)i(for)e(a)g
+2765 y(Compatibilit)m(y)j(Mo)s(de],)h(page)e(110,)i(for)e(a)g
(description)g(of)f(the)h(v)-5 b(arious)36 b(compatibilit)m(y)630
2874 y(lev)m(els)g(and)f(their)g(e\013ects.)55 b(The)34
b(v)-5 b(alue)36 b(ma)m(y)f(b)s(e)f(a)i(decimal)f(n)m(um)m(b)s(er)f
@@ -13565,7 +13931,7 @@ b(alid)31 b(compatibilit)m(y)i(lev)m(els,)f(the)f(shell)f(prin)m(ts)g
47 b(The)31 b(v)-5 b(alid)33 b(v)-5 b(alues)630 3532
y(corresp)s(ond)31 b(to)i(the)g(compatibilit)m(y)i(lev)m(els)f(describ)
s(ed)d(b)s(elo)m(w)i(\(see)g(Section)h(6.12)g([Shell)630
-3641 y(Compatibilit)m(y)d(Mo)s(de],)f(page)g(104\).)42
+3641 y(Compatibilit)m(y)d(Mo)s(de],)f(page)g(110\).)42
b(F)-8 b(or)30 b(example,)h(4.2)f(and)f(42)h(are)g(v)-5
b(alid)30 b(v)-5 b(alues)29 b(that)630 3751 y(corresp)s(ond)d(to)i(the)
f Ft(compat42)e(shopt)g Fu(option)j(and)e(set)i(the)f(compatibilit)m(y)
@@ -13576,24 +13942,23 @@ b(is)e(set)h(when)f(Bash)g(is)h(in)m(v)m(ok)m(ed)h(to)f(execute)h(a)e
(shell)h(script,)g(its)g(v)-5 b(alue)29 b(is)630 4171
y(expanded)k(and)h(used)g(as)g(the)h(name)f(of)g(a)h(startup)f(\014le)g
(to)h(read)f(b)s(efore)g(executing)i(the)630 4281 y(script.)41
-b(See)30 b(Section)h(6.2)h([Bash)f(Startup)e(Files],)j(page)f(88.)150
+b(See)30 b(Section)h(6.2)h([Bash)f(Startup)e(Files],)j(page)f(93.)150
4482 y Ft(BASH_EXECUTION_STRING)630 4591 y Fu(The)f(command)g(argumen)m
(t)h(to)g(the)g Ft(-c)e Fu(in)m(v)m(o)s(cation)k(option.)150
-4792 y Ft(BASH_LINENO)630 4902 y Fu(An)62 b(arra)m(y)i(v)-5
-b(ariable)63 b(whose)g(mem)m(b)s(ers)e(are)j(the)e(line)h(n)m(um)m(b)s
-(ers)f(in)g(source)h(\014les)630 5011 y(where)46 b(eac)m(h)i(corresp)s
-(onding)d(mem)m(b)s(er)h(of)h Fr(FUNCNAME)53 b Fu(w)m(as)47
-b(in)m(v)m(ok)m(ed.)91 b Ft(${BASH_)630 5121 y(LINENO[$i]})39
-b Fu(is)i(the)h(line)g(n)m(um)m(b)s(er)e(in)i(the)f(source)h(\014le)g
-(\()p Ft(${BASH_SOURCE[$i+1]})p Fu(\))630 5230 y(where)d
-Ft(${FUNCNAME[$i]})c Fu(w)m(as)k(called)i(\(or)e Ft
-(${BASH_LINENO[$i-1]})34 b Fu(if)39 b(referenced)630
-5340 y(within)30 b(another)g(shell)h(function\).)41 b(Use)31
-b Ft(LINENO)d Fu(to)j(obtain)g(the)g(curren)m(t)f(line)h(n)m(um)m(b)s
-(er.)p eop end
-%%Page: 76 82
-TeXDict begin 76 81 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(76)150 299 y Ft
+4792 y Ft(BASH_LINENO)630 4902 y Fu(An)38 b(arra)m(y)g(v)-5
+b(ariable)39 b(whose)f(mem)m(b)s(ers)f(are)i(the)f(line)h(n)m(um)m(b)s
+(ers)d(in)i(source)g(\014les)g(where)630 5011 y(eac)m(h)h(corresp)s
+(onding)e(mem)m(b)s(er)g(of)h Ft(FUNCNAME)d Fu(w)m(as)k(in)m(v)m(ok)m
+(ed.)64 b Ft(${BASH_LINENO[$i]})630 5121 y Fu(is)74 b(the)g(line)h(n)m
+(um)m(b)s(er)e(in)g(the)i(source)f(\014le)g(\()p Ft
+(${BASH_SOURCE[$i+1]})p Fu(\))69 b(where)630 5230 y Ft(${FUNCNAME[$i]})
+32 b Fu(w)m(as)37 b(called)g(\(or)g Ft(${BASH_LINENO[$i-1]})31
+b Fu(if)36 b(referenced)g(within)630 5340 y(another)31
+b(shell)f(function\).)41 b(Use)31 b Ft(LINENO)d Fu(to)j(obtain)g(the)g
+(curren)m(t)f(line)h(n)m(um)m(b)s(er.)p eop end
+%%Page: 81 87
+TeXDict begin 81 86 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(81)150 299 y Ft
(BASH_LOADABLES_PATH)630 408 y Fu(A)39 b(colon-separated)i(list)f(of)f
(directories)h(in)f(whic)m(h)g(the)g(shell)h(lo)s(oks)f(for)g
(dynamically)630 518 y(loadable)32 b(builtins)d(sp)s(eci\014ed)h(b)m(y)
@@ -13602,7 +13967,7 @@ g(the)h Ft(enable)e Fu(command.)150 673 y Ft(BASH_REMATCH)630
(are)h(assigned)g(b)m(y)f(the)h(`)p Ft(=~)p Fu(')g(binary)f(op)s
(erator)630 892 y(to)37 b(the)f Ft([[)g Fu(conditional)i(command)e
(\(see)h(Section)g(3.2.5.2)i([Conditional)e(Constructs],)630
-1002 y(page)e(11\).)52 b(The)33 b(elemen)m(t)j(with)d(index)g(0)i(is)f
+1002 y(page)e(12\).)52 b(The)33 b(elemen)m(t)j(with)d(index)g(0)i(is)f
(the)g(p)s(ortion)f(of)h(the)g(string)g(matc)m(hing)h(the)630
1112 y(en)m(tire)29 b(regular)f(expression.)40 b(The)27
b(elemen)m(t)j(with)d(index)h Fr(n)f Fu(is)h(the)g(p)s(ortion)g(of)g
@@ -13622,9 +13987,9 @@ b(b)m(y)f(one)h(within)f(eac)m(h)i(subshell)d(or)i(subshell)e(en)m
b(alue)28 b(is)f(0.)40 b(If)28 b Ft(BASH_SUBSHELL)630
2299 y Fu(is)i(unset,)h(it)g(loses)g(its)f(sp)s(ecial)h(prop)s(erties,)
f(ev)m(en)h(if)g(it)g(is)f(subsequen)m(tly)g(reset.)150
-2454 y Ft(BASH_VERSINFO)630 2564 y Fu(A)36 b(readonly)g(arra)m(y)g(v)-5
-b(ariable)37 b(\(see)f(Section)h(6.7)g([Arra)m(ys],)h(page)e(95\))h
-(whose)f(mem)m(b)s(ers)630 2673 y(hold)c(v)m(ersion)h(information)f
+2454 y Ft(BASH_VERSINFO)630 2564 y Fu(A)i(readonly)g(arra)m(y)g(v)-5
+b(ariable)32 b(\(see)h(Section)g(6.7)f([Arra)m(ys],)h(page)g(100\))g
+(whose)f(mem)m(b)s(ers)630 2673 y(hold)g(v)m(ersion)h(information)f
(for)g(this)g(instance)h(of)g(Bash.)46 b(The)32 b(v)-5
b(alues)32 b(assigned)h(to)g(the)630 2783 y(arra)m(y)e(mem)m(b)s(ers)e
(are)i(as)g(follo)m(ws:)630 2938 y Ft(BASH_VERSINFO[0])1110
@@ -13635,10 +14000,10 @@ Fr(v)m(ersion)p Fu(\).)630 3468 y Ft(BASH_VERSINFO[2])1110
3577 y Fu(The)f(patc)m(h)h(lev)m(el.)630 3733 y Ft(BASH_VERSINFO[3])
1110 3842 y Fu(The)f(build)f(v)m(ersion.)630 3998 y Ft
(BASH_VERSINFO[4])1110 4107 y Fu(The)h(release)i(status)e(\(e.g.,)j
-Fr(b)s(eta1)7 b Fu(\).)630 4262 y Ft(BASH_VERSINFO[5])1110
-4372 y Fu(The)30 b(v)-5 b(alue)31 b(of)f Ft(MACHTYPE)p
-Fu(.)150 4527 y Ft(BASH_VERSION)630 4637 y Fu(The)g(v)m(ersion)h(n)m
-(um)m(b)s(er)e(of)h(the)h(curren)m(t)f(instance)h(of)g(Bash.)150
+Ft(beta1)p Fu(\).)630 4262 y Ft(BASH_VERSINFO[5])1110
+4372 y Fu(The)d(v)-5 b(alue)31 b(of)f Ft(MACHTYPE)p Fu(.)150
+4527 y Ft(BASH_VERSION)630 4637 y Fu(The)g(v)m(ersion)h(n)m(um)m(b)s
+(er)e(of)h(the)h(curren)m(t)f(instance)h(of)g(Bash.)150
4792 y Ft(BASH_XTRACEFD)630 4902 y Fu(If)f(set)h(to)h(an)e(in)m(teger)i
(corresp)s(onding)e(to)h(a)g(v)-5 b(alid)31 b(\014le)g(descriptor,)g
(Bash)g(will)g(write)g(the)630 5011 y(trace)37 b(output)f(generated)h
@@ -13650,9 +14015,9 @@ b(tracing)h(output)d(to)i(b)s(e)f(separated)g(from)g(diagnostic)h(and)f
(new)f(v)-5 b(alue.)630 5340 y(Unsetting)45 b Ft(BASH_XTRACEFD)40
b Fu(or)k(assigning)g(it)g(the)g(empt)m(y)h(string)e(causes)i(the)f
(trace)p eop end
-%%Page: 77 83
-TeXDict begin 77 82 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(77)630 299 y(output)33
+%%Page: 82 88
+TeXDict begin 82 87 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(82)630 299 y(output)33
b(to)i(b)s(e)d(sen)m(t)j(to)f(the)g(standard)e(error.)50
b(Note)35 b(that)g(setting)f Ft(BASH_XTRACEFD)c Fu(to)630
408 y(2)39 b(\(the)h(standard)e(error)g(\014le)h(descriptor\))h(and)e
@@ -13671,7 +14036,7 @@ Ft(select)e Fu(command)h(to)i(determine)f(the)f(terminal)i(width)d
(when)h(prin)m(ting)630 1358 y(selection)39 b(lists.)63
b(Automatically)41 b(set)d(if)f(the)h Ft(checkwinsize)d
Fu(option)j(is)f(enabled)h(\(see)630 1468 y(Section)44
-b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d(66\),)k(or)43
+b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d(71\),)k(or)43
b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630 1577
y(receipt)31 b(of)g(a)g Ft(SIGWINCH)p Fu(.)150 1724 y
Ft(COMP_CWORD)630 1833 y Fu(An)38 b(index)g(in)m(to)h
@@ -13680,13 +14045,13 @@ Ft(${COMP_WORDS})c Fu(of)k(the)g(w)m(ord)f(con)m(taining)i(the)e
b(v)-5 b(ariable)41 b(is)f(a)m(v)-5 b(ailable)43 b(only)e(in)f(shell)h
(functions)f(in)m(v)m(ok)m(ed)i(b)m(y)e(the)h(pro-)630
2052 y(grammable)36 b(completion)g(facilities)i(\(see)e(Section)g(8.6)g
-([Programmable)g(Completion],)630 2162 y(page)31 b(137\).)150
+([Programmable)g(Completion],)630 2162 y(page)31 b(143\).)150
2308 y Ft(COMP_LINE)630 2418 y Fu(The)38 b(curren)m(t)h(command)f
(line.)66 b(This)37 b(v)-5 b(ariable)40 b(is)f(a)m(v)-5
b(ailable)41 b(only)d(in)h(shell)f(functions)630 2527
y(and)25 b(external)h(commands)f(in)m(v)m(ok)m(ed)h(b)m(y)f(the)h
(programmable)f(completion)i(facilities)g(\(see)630 2637
-y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(137\).)150
+y(Section)k(8.6)h([Programmable)f(Completion],)g(page)g(143\).)150
2783 y Ft(COMP_POINT)630 2892 y Fu(The)25 b(index)g(of)h(the)g(curren)m
(t)f(cursor)g(p)s(osition)h(relativ)m(e)i(to)e(the)g(b)s(eginning)f(of)
g(the)h(curren)m(t)630 3002 y(command.)40 b(If)27 b(the)h(curren)m(t)g
@@ -13697,22 +14062,21 @@ b(This)29 b(v)-5 b(ariable)31 b(is)f(a)m(v)-5 b(ailable)630
3221 y(only)36 b(in)f(shell)h(functions)f(and)g(external)h(commands)g
(in)m(v)m(ok)m(ed)h(b)m(y)e(the)h(programmable)630 3331
y(completion)c(facilities)g(\(see)g(Section)f(8.6)g([Programmable)g
-(Completion],)h(page)f(137\).)150 3477 y Ft(COMP_TYPE)630
+(Completion],)h(page)f(143\).)150 3477 y Ft(COMP_TYPE)630
3587 y Fu(Set)c(to)h(an)f(in)m(teger)h(v)-5 b(alue)28
b(corresp)s(onding)e(to)h(the)h(t)m(yp)s(e)f(of)g(completion)h
-(attempted)g(that)630 3696 y(caused)e(a)h(completion)h(function)e(to)h
-(b)s(e)f(called:)40 b Fr(T)-8 b(AB)p Fu(,)27 b(for)g(normal)f
-(completion,)j(`)p Ft(?)p Fu(',)e(for)630 3806 y(listing)35
-b(completions)h(after)f(successiv)m(e)g(tabs,)h(`)p Ft(!)p
-Fu(',)g(for)e(listing)h(alternativ)m(es)i(on)d(partial)630
-3915 y(w)m(ord)22 b(completion,)k(`)p Ft(@)p Fu(',)f(to)e(list)g
-(completions)h(if)f(the)g(w)m(ord)f(is)h(not)g(unmo)s(di\014ed,)f(or)h
-(`)p Ft(\045)p Fu(',)h(for)630 4025 y(men)m(u)i(completion.)41
-b(This)25 b(v)-5 b(ariable)27 b(is)g(a)m(v)-5 b(ailable)28
-b(only)f(in)f(shell)g(functions)g(and)g(external)630
-4134 y(commands)32 b(in)m(v)m(ok)m(ed)i(b)m(y)e(the)g(programmable)h
-(completion)g(facilities)i(\(see)e(Section)g(8.6)630
-4244 y([Programmable)e(Completion],)h(page)f(137\).)150
+(attempted)g(that)630 3696 y(caused)j(a)g(completion)h(function)e(to)h
+(b)s(e)f(called:)43 b Ft(TAB)p Fu(,)30 b(for)g(normal)h(completion,)h
+(`)p Ft(?)p Fu(',)f(for)630 3806 y(listing)k(completions)h(after)f
+(successiv)m(e)g(tabs,)h(`)p Ft(!)p Fu(',)g(for)e(listing)h(alternativ)
+m(es)i(on)d(partial)630 3915 y(w)m(ord)22 b(completion,)k(`)p
+Ft(@)p Fu(',)f(to)e(list)g(completions)h(if)f(the)g(w)m(ord)f(is)h(not)
+g(unmo)s(di\014ed,)f(or)h(`)p Ft(\045)p Fu(',)h(for)630
+4025 y(men)m(u)i(completion.)41 b(This)25 b(v)-5 b(ariable)27
+b(is)g(a)m(v)-5 b(ailable)28 b(only)f(in)f(shell)g(functions)g(and)g
+(external)630 4134 y(commands)32 b(in)m(v)m(ok)m(ed)i(b)m(y)e(the)g
+(programmable)h(completion)g(facilities)i(\(see)e(Section)g(8.6)630
+4244 y([Programmable)e(Completion],)h(page)f(143\).)150
4390 y Ft(COMP_KEY)96 b Fu(The)29 b(k)m(ey)i(\(or)g(\014nal)e(k)m(ey)i
(of)f(a)g(k)m(ey)h(sequence\))g(used)e(to)i(in)m(v)m(ok)m(e)h(the)e
(curren)m(t)g(completion)630 4500 y(function.)150 4646
@@ -13727,25 +14091,25 @@ g(individual)f(w)m(ords)h(in)f(the)h(curren)m(t)g(command)630
5340 y(line.)94 b(The)47 b(line)i(is)f(split)g(in)m(to)h(w)m(ords)e(as)
h(Readline)h(w)m(ould)f(split)g(it,)53 b(using)47 b Ft(COMP_)p
eop end
-%%Page: 78 84
-TeXDict begin 78 83 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(78)630 299 y Ft(WORDBREAKS)34
+%%Page: 83 89
+TeXDict begin 83 88 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(83)630 299 y Ft(WORDBREAKS)34
b Fu(as)i(describ)s(ed)g(ab)s(o)m(v)m(e.)60 b(This)36
b(v)-5 b(ariable)37 b(is)f(a)m(v)-5 b(ailable)39 b(only)e(in)f(shell)h
(func-)630 408 y(tions)32 b(in)m(v)m(ok)m(ed)i(b)m(y)d(the)i
(programmable)f(completion)h(facilities)h(\(see)f(Section)g(8.6)g
-([Pro-)630 518 y(grammable)e(Completion],)g(page)g(137\).)150
+([Pro-)630 518 y(grammable)e(Completion],)g(page)g(143\).)150
676 y Ft(COMPREPLY)630 786 y Fu(An)37 b(arra)m(y)h(v)-5
b(ariable)38 b(from)f(whic)m(h)g(Bash)g(reads)g(the)h(p)s(ossible)e
(completions)j(generated)630 896 y(b)m(y)33 b(a)g(shell)h(function)f
(in)m(v)m(ok)m(ed)h(b)m(y)f(the)g(programmable)h(completion)g(facilit)m
(y)h(\(see)f(Sec-)630 1005 y(tion)g(8.6)g([Programmable)g(Completion],)
-h(page)f(137\).)51 b(Eac)m(h)34 b(arra)m(y)g(elemen)m(t)h(con)m(tains)
+h(page)f(143\).)51 b(Eac)m(h)34 b(arra)m(y)g(elemen)m(t)h(con)m(tains)
630 1115 y(one)c(p)s(ossible)f(completion.)150 1273 y
Ft(COPROC)192 b Fu(An)27 b(arra)m(y)g(v)-5 b(ariable)28
b(created)g(to)f(hold)g(the)g(\014le)g(descriptors)g(for)g(output)f
(from)h(and)f(input)630 1383 y(to)31 b(an)f(unnamed)f(copro)s(cess)i
-(\(see)g(Section)h(3.2.6)g([Copro)s(cesses],)f(page)g(15\).)150
+(\(see)g(Section)h(3.2.6)g([Copro)s(cesses],)f(page)g(18\).)150
1541 y Ft(DIRSTACK)96 b Fu(An)26 b(arra)m(y)h(v)-5 b(ariable)28
b(con)m(taining)g(the)f(curren)m(t)f(con)m(ten)m(ts)j(of)e(the)f
(directory)i(stac)m(k.)41 b(Direc-)630 1650 y(tories)33
@@ -13766,40 +14130,39 @@ b(in)f(the)h(en)m(vironmen)m(t)g(when)e(the)i(shell)f(starts)h(with)f
(v)-5 b(alue)630 2466 y(`)p Ft(t)p Fu(',)36 b(it)f(assumes)f(that)h
(the)g(shell)f(is)h(running)e(in)h(an)g(Emacs)h(shell)g(bu\013er)e(and)
h(disables)630 2576 y(line)d(editing.)150 2734 y Ft(ENV)336
-b Fu(Expanded)30 b(and)h(executed)h(similarlt)m(y)g(to)g
-Ft(BASH_ENV)d Fu(\(see)k(Section)f(6.2)g([Bash)g(Startup)630
-2844 y(Files],)39 b(page)e(88\))h(when)d(an)h(in)m(teractiv)m(e)j
-(shell)d(is)h(in)m(v)m(ok)m(ed)g(in)f Fm(posix)g Fu(Mo)s(de)g(\(see)h
-(Sec-)630 2953 y(tion)31 b(6.11)h([Bash)f(POSIX)e(Mo)s(de],)i(page)g
-(101\).)150 3112 y Ft(EPOCHREALTIME)630 3221 y Fu(Eac)m(h)38
-b(time)f(this)g(parameter)h(is)f(referenced,)i(it)f(expands)e(to)i(the)
-f(n)m(um)m(b)s(er)f(of)h(seconds)630 3331 y(since)f(the)g(Unix)f(Ep)s
-(o)s(c)m(h)g(as)h(a)g(\015oating)h(p)s(oin)m(t)f(v)-5
-b(alue)36 b(with)f(micro-second)i(gran)m(ularit)m(y)630
-3440 y(\(see)42 b(the)g(do)s(cumen)m(tation)g(for)f(the)g(C)g(library)g
-(function)g Fr(time)47 b Fu(for)41 b(the)h(de\014nition)f(of)630
-3550 y(Ep)s(o)s(c)m(h\).)82 b(Assignmen)m(ts)44 b(to)h
-Ft(EPOCHREALTIME)c Fu(are)j(ignored.)83 b(If)43 b Ft(EPOCHREALTIME)e
-Fu(is)630 3660 y(unset,)30 b(it)h(loses)g(its)g(sp)s(ecial)g(prop)s
-(erties,)f(ev)m(en)h(if)f(it)h(is)g(subsequen)m(tly)f(reset.)150
-3818 y Ft(EPOCHSECONDS)630 3927 y Fu(Eac)m(h)38 b(time)f(this)g
+b Fu(Expanded)33 b(and)h(executed)i(similarly)f(to)g
+Ft(BASH_ENV)d Fu(\(see)k(Section)f(6.2)h([Bash)f(Startup)630
+2844 y(Files],)k(page)e(93\))h(when)d(an)h(in)m(teractiv)m(e)j(shell)d
+(is)h(in)m(v)m(ok)m(ed)g(in)f Fm(posix)g Fu(Mo)s(de)g(\(see)h(Sec-)630
+2953 y(tion)31 b(6.11)h([Bash)f(POSIX)e(Mo)s(de],)i(page)g(106\).)150
+3112 y Ft(EPOCHREALTIME)630 3221 y Fu(Eac)m(h)38 b(time)f(this)g
(parameter)h(is)f(referenced,)i(it)f(expands)e(to)i(the)f(n)m(um)m(b)s
-(er)f(of)h(seconds)630 4037 y(since)e(the)g(Unix)f(Ep)s(o)s(c)m(h)g
-(\(see)i(the)f(do)s(cumen)m(tation)g(for)g(the)f(C)h(library)f
-(function)g Fr(time)630 4147 y Fu(for)41 b(the)g(de\014nition)g(of)h
-(Ep)s(o)s(c)m(h\).)73 b(Assignmen)m(ts)41 b(to)h Ft(EPOCHSECONDS)c
-Fu(are)k(ignored.)73 b(If)630 4256 y Ft(EPOCHSECONDS)27
-b Fu(is)j(unset,)g(it)g(loses)h(its)g(sp)s(ecial)f(prop)s(erties,)g(ev)
-m(en)h(if)f(it)g(is)g(subsequen)m(tly)630 4366 y(reset.)150
-4524 y Ft(EUID)288 b Fu(The)30 b(n)m(umeric)g(e\013ectiv)m(e)j(user)d
-(id)g(of)g(the)h(curren)m(t)f(user.)40 b(This)30 b(v)-5
-b(ariable)31 b(is)f(readonly)-8 b(.)150 4682 y Ft(EXECIGNORE)630
-4792 y Fu(A)29 b(colon-separated)h(list)f(of)g(shell)g(patterns)f
-(\(see)i(Section)f(3.5.8.1)i([P)m(attern)f(Matc)m(hing],)630
-4902 y(page)j(33\))g(de\014ning)e(the)h(list)g(of)g(\014lenames)g(to)g
-(b)s(e)g(ignored)g(b)m(y)f(command)h(searc)m(h)g(using)630
-5011 y Ft(PATH)p Fu(.)k(Files)22 b(whose)f(full)g(pathnames)g(matc)m(h)
-h(one)f(of)g(these)h(patterns)e(are)i(not)f(considered)630
+(er)f(of)h(seconds)630 3331 y(since)f(the)g(Unix)f(Ep)s(o)s(c)m(h)g(as)
+h(a)g(\015oating)h(p)s(oin)m(t)f(v)-5 b(alue)36 b(with)f(micro-second)i
+(gran)m(ularit)m(y)630 3440 y(\(see)k(the)g(do)s(cumen)m(tation)h(for)e
+(the)h(C)f(library)g(function)g Ft(time)g Fu(for)g(the)h(de\014nition)f
+(of)630 3550 y(Ep)s(o)s(c)m(h\).)82 b(Assignmen)m(ts)44
+b(to)h Ft(EPOCHREALTIME)c Fu(are)j(ignored.)83 b(If)43
+b Ft(EPOCHREALTIME)e Fu(is)630 3660 y(unset,)30 b(it)h(loses)g(its)g
+(sp)s(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g(subsequen)m
+(tly)f(reset.)150 3818 y Ft(EPOCHSECONDS)630 3927 y Fu(Eac)m(h)38
+b(time)f(this)g(parameter)h(is)f(referenced,)i(it)f(expands)e(to)i(the)
+f(n)m(um)m(b)s(er)f(of)h(seconds)630 4037 y(since)d(the)g(Unix)g(Ep)s
+(o)s(c)m(h)f(\(see)i(the)f(do)s(cumen)m(tation)h(for)e(the)i(C)e
+(library)h(function)f Ft(time)630 4147 y Fu(for)41 b(the)g
+(de\014nition)g(of)h(Ep)s(o)s(c)m(h\).)73 b(Assignmen)m(ts)41
+b(to)h Ft(EPOCHSECONDS)c Fu(are)k(ignored.)73 b(If)630
+4256 y Ft(EPOCHSECONDS)27 b Fu(is)j(unset,)g(it)g(loses)h(its)g(sp)s
+(ecial)f(prop)s(erties,)g(ev)m(en)h(if)f(it)g(is)g(subsequen)m(tly)630
+4366 y(reset.)150 4524 y Ft(EUID)288 b Fu(The)30 b(n)m(umeric)g
+(e\013ectiv)m(e)j(user)d(id)g(of)g(the)h(curren)m(t)f(user.)40
+b(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8 b(.)150
+4682 y Ft(EXECIGNORE)630 4792 y Fu(A)29 b(colon-separated)h(list)f(of)g
+(shell)g(patterns)f(\(see)i(Section)f(3.5.8.1)i([P)m(attern)f(Matc)m
+(hing],)630 4902 y(page)j(36\))g(de\014ning)e(the)h(list)g(of)g
+(\014lenames)g(to)g(b)s(e)g(ignored)g(b)m(y)f(command)h(searc)m(h)g
+(using)630 5011 y Ft(PATH)p Fu(.)k(Files)22 b(whose)f(full)g(pathnames)
+g(matc)m(h)h(one)f(of)g(these)h(patterns)e(are)i(not)f(considered)630
5121 y(executable)j(\014les)e(for)g(the)h(purp)s(oses)d(of)j
(completion)h(and)d(command)i(execution)g(via)g Ft(PATH)630
5230 y Fu(lo)s(okup.)56 b(This)35 b(do)s(es)g(not)h(a\013ect)i(the)d(b)
@@ -13807,9 +14170,9 @@ s(eha)m(vior)h(of)g(the)g Ft([)p Fu(,)h Ft(test)p Fu(,)f(and)f
Ft([[)g Fu(commands.)630 5340 y(F)-8 b(ull)42 b(pathnames)e(in)h(the)g
(command)g(hash)f(table)i(are)g(not)f(sub)5 b(ject)41
b(to)g Ft(EXECIGNORE)p Fu(.)p eop end
-%%Page: 79 85
-TeXDict begin 79 84 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(79)630 299 y(Use)30
+%%Page: 84 90
+TeXDict begin 84 89 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(84)630 299 y(Use)30
b(this)f(v)-5 b(ariable)30 b(to)g(ignore)g(shared)f(library)g(\014les)g
(that)h(ha)m(v)m(e)h(the)f(executable)h(bit)e(set,)630
408 y(but)36 b(are)h(not)g(executable)i(\014les.)60 b(The)36
@@ -13869,7 +14232,7 @@ Fu(is)i(unset,)f(it)h(loses)h(its)630 3703 y(sp)s(ecial)f(prop)s
3864 y Ft(histchars)630 3973 y Fu(Up)c(to)g(three)g(c)m(haracters)i
(whic)m(h)d(con)m(trol)j(history)d(expansion,)i(quic)m(k)g
(substitution,)g(and)630 4083 y(tok)m(enization)k(\(see)f(Section)f
-(9.3)h([History)f(In)m(teraction],)i(page)f(148\).)41
+(9.3)h([History)f(In)m(teraction],)i(page)f(154\).)41
b(The)29 b(\014rst)e(c)m(harac-)630 4193 y(ter)j(is)f(the)g
Fr(history)g(expansion)g Fu(c)m(haracter,)j(that)e(is,)f(the)h(c)m
(haracter)h(whic)m(h)d(signi\014es)i(the)630 4302 y(start)25
@@ -13894,9 +14257,9 @@ Fu(are)j(ignored.)61 b(If)37 b Ft(HISTCMD)e Fu(is)i(unset,)h(it)g
(loses)g(its)f(sp)s(ecial)630 5340 y(prop)s(erties,)30
b(ev)m(en)h(if)f(it)h(is)g(subsequen)m(tly)f(reset.)p
eop end
-%%Page: 80 86
-TeXDict begin 80 85 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(80)150 299 y Ft(HISTCONTROL)630
+%%Page: 85 91
+TeXDict begin 85 90 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(85)150 299 y Ft(HISTCONTROL)630
408 y Fu(A)40 b(colon-separated)i(list)f(of)f(v)-5 b(alues)40
b(con)m(trolling)i(ho)m(w)e(commands)g(are)h(sa)m(v)m(ed)g(on)f(the)630
518 y(history)29 b(list.)41 b(If)28 b(the)h(list)h(of)f(v)-5
@@ -13979,12 +14342,12 @@ b(v)-5 b(alues)26 b(less)g(than)630 4862 y(zero)i(result)e(in)h(ev)m
(startup)f(\014les.)150 5121 y Ft(HISTTIMEFORMAT)630
5230 y Fu(If)44 b(this)g(v)-5 b(ariable)45 b(is)f(set)g(and)g(not)g(n)m
(ull,)k(its)d(v)-5 b(alue)44 b(is)g(used)g(as)g(a)h(format)f(string)g
-(for)630 5340 y Fr(strftime)c Fu(to)35 b(prin)m(t)f(the)h(time)g(stamp)
-f(asso)s(ciated)i(with)f(eac)m(h)g(history)g(en)m(try)f(displa)m(y)m
+(for)630 5340 y Ft(strftime)26 b Fu(to)k(prin)m(t)e(the)g(time)i(stamp)
+e(asso)s(ciated)i(with)e(eac)m(h)i(history)f(en)m(try)f(displa)m(y)m
(ed)p eop end
-%%Page: 81 87
-TeXDict begin 81 86 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(81)630 299 y(b)m(y)34
+%%Page: 86 92
+TeXDict begin 86 91 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(86)630 299 y(b)m(y)34
b(the)f Ft(history)f Fu(builtin.)50 b(If)33 b(this)h(v)-5
b(ariable)34 b(is)g(set,)h(time)f(stamps)g(are)g(written)f(to)i(the)630
408 y(history)26 b(\014le)g(so)g(they)g(ma)m(y)h(b)s(e)e(preserv)m(ed)g
@@ -14044,20 +14407,20 @@ y(a)i(lo)s(cale)h(category)-8 b(.)150 4125 y Ft(LC_COLLATE)630
(vior)f(of)g(range)h(expressions,)h(equiv-)630 4453 y(alence)e
(classes,)h(and)e(collating)i(sequences)e(within)f(\014lename)h
(expansion)g(and)f(pattern)630 4563 y(matc)m(hing)d(\(see)h(Section)f
-(3.5.8)h([Filename)g(Expansion],)e(page)h(33\).)150 4732
+(3.5.8)h([Filename)g(Expansion],)e(page)h(35\).)150 4732
y Ft(LC_CTYPE)96 b Fu(This)36 b(v)-5 b(ariable)37 b(determines)f(the)h
(in)m(terpretation)h(of)f(c)m(haracters)h(and)e(the)g(b)s(eha)m(vior)h
(of)630 4842 y(c)m(haracter)46 b(classes)g(within)e(\014lename)h
(expansion)g(and)f(pattern)h(matc)m(hing)h(\(see)f(Sec-)630
-4951 y(tion)31 b(3.5.8)h([Filename)g(Expansion],)e(page)h(33\).)150
+4951 y(tion)31 b(3.5.8)h([Filename)g(Expansion],)e(page)h(35\).)150
5121 y Ft(LC_MESSAGES)630 5230 y Fu(This)25 b(v)-5 b(ariable)27
b(determines)f(the)g(lo)s(cale)i(used)d(to)i(translate)g(double-quoted)
f(strings)g(pre-)630 5340 y(ceded)31 b(b)m(y)f(a)h(`)p
Ft($)p Fu(')f(\(see)h(Section)h(3.1.2.5)g([Lo)s(cale)g(T)-8
b(ranslation],)32 b(page)f(7\).)p eop end
-%%Page: 82 88
-TeXDict begin 82 87 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(82)150 299 y Ft(LC_NUMERIC)630
+%%Page: 87 93
+TeXDict begin 87 92 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(87)150 299 y Ft(LC_NUMERIC)630
408 y Fu(This)30 b(v)-5 b(ariable)31 b(determines)f(the)h(lo)s(cale)h
(category)g(used)e(for)g(n)m(um)m(b)s(er)f(formatting.)150
573 y Ft(LC_TIME)144 b Fu(This)25 b(v)-5 b(ariable)26
@@ -14072,7 +14435,7 @@ Fu(command)i(to)g(determine)g(the)g(column)g(length)g(for)g(prin)m
(ting)630 1121 y(selection)c(lists.)63 b(Automatically)41
b(set)d(if)f(the)h Ft(checkwinsize)d Fu(option)j(is)f(enabled)h(\(see)
630 1230 y(Section)44 b(4.3.2)h([The)e(Shopt)g(Builtin],)k(page)d
-(66\),)k(or)43 b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630
+(71\),)k(or)43 b(in)g(an)g(in)m(teractiv)m(e)j(shell)e(up)s(on)630
1340 y(receipt)31 b(of)g(a)g Ft(SIGWINCH)p Fu(.)150 1504
y Ft(MACHTYPE)96 b Fu(A)26 b(string)g(that)h(fully)f(describ)s(es)f
(the)h(system)g(t)m(yp)s(e)h(on)f(whic)m(h)f(Bash)i(is)f(executing,)i
@@ -14099,16 +14462,16 @@ Fu(If)35 b(set)i(to)f(the)h(v)-5 b(alue)36 b(1,)i(Bash)e(displa)m(ys)g
3039 y Fu(builtin)30 b(command.)150 3203 y Ft(OSTYPE)192
b Fu(A)30 b(string)h(describing)f(the)g(op)s(erating)h(system)g(Bash)f
(is)h(running)d(on.)150 3367 y Ft(PIPESTATUS)630 3477
-y Fu(An)23 b(arra)m(y)h(v)-5 b(ariable)24 b(\(see)h(Section)f(6.7)h
-([Arra)m(ys],)g(page)f(95\))h(con)m(taining)g(a)f(list)g(of)g(exit)g
-(sta-)630 3587 y(tus)h(v)-5 b(alues)27 b(from)e(the)h(pro)s(cesses)g
-(in)f(the)h(most-recen)m(tly-executed)j(foreground)c(pip)s(eline)630
-3696 y(\(whic)m(h)30 b(ma)m(y)h(con)m(tain)h(only)f(a)f(single)h
-(command\).)150 3861 y Ft(POSIXLY_CORRECT)630 3970 y
-Fu(If)h(this)g(v)-5 b(ariable)34 b(is)e(in)g(the)h(en)m(vironmen)m(t)g
-(when)e(Bash)i(starts,)g(the)g(shell)g(en)m(ters)g Fm(posix)630
-4080 y Fu(mo)s(de)46 b(\(see)h(Section)g(6.11)g([Bash)g(POSIX)e(Mo)s
-(de],)50 b(page)d(101\))h(b)s(efore)e(reading)g(the)630
+y Fu(An)48 b(arra)m(y)g(v)-5 b(ariable)49 b(\(see)g(Section)g(6.7)g
+([Arra)m(ys],)k(page)c(100\))g(con)m(taining)h(a)e(list)h(of)630
+3587 y(exit)32 b(status)f(v)-5 b(alues)31 b(from)f(the)h(pro)s(cesses)g
+(in)g(the)g(most-recen)m(tly-executed)j(foreground)630
+3696 y(pip)s(eline)c(\(whic)m(h)g(ma)m(y)h(con)m(tain)h(only)f(a)f
+(single)h(command\).)150 3861 y Ft(POSIXLY_CORRECT)630
+3970 y Fu(If)h(this)g(v)-5 b(ariable)34 b(is)e(in)g(the)h(en)m
+(vironmen)m(t)g(when)e(Bash)i(starts,)g(the)g(shell)g(en)m(ters)g
+Fm(posix)630 4080 y Fu(mo)s(de)46 b(\(see)h(Section)g(6.11)g([Bash)g
+(POSIX)e(Mo)s(de],)50 b(page)d(106\))h(b)s(efore)e(reading)g(the)630
4189 y(startup)38 b(\014les,)j(as)e(if)g(the)g Ft(--posix)d
Fu(in)m(v)m(o)s(cation)41 b(option)e(had)f(b)s(een)g(supplied.)64
b(If)39 b(it)g(is)630 4299 y(set)31 b(while)f(the)h(shell)f(is)h
@@ -14128,16 +14491,16 @@ b(alue)24 b(of)g(eac)m(h)g(set)h(elemen)m(t)g(is)f(in)m(terpreted)630
b(this)h(is)630 5340 y(set)c(but)f(not)g(an)h(arra)m(y)g(v)-5
b(ariable,)26 b(its)f(v)-5 b(alue)25 b(is)f(used)g(as)h(a)f(command)g
(to)i(execute)f(instead.)p eop end
-%%Page: 83 89
-TeXDict begin 83 88 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(83)150 299 y Ft(PROMPT_DIRTRIM)630
+%%Page: 88 94
+TeXDict begin 88 93 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(88)150 299 y Ft(PROMPT_DIRTRIM)630
408 y Fu(If)27 b(set)g(to)h(a)g(n)m(um)m(b)s(er)e(greater)i(than)f
(zero,)i(the)e(v)-5 b(alue)28 b(is)f(used)g(as)g(the)h(n)m(um)m(b)s(er)
-e(of)h(trailing)630 518 y(directory)35 b(comp)s(onen)m(ts)g(to)h
-(retain)f(when)f(expanding)g(the)h Ft(\\w)f Fu(and)g
-Ft(\\W)g Fu(prompt)g(string)630 628 y(escap)s(es)21 b(\(see)h(Section)f
-(6.9)h([Con)m(trolling)g(the)f(Prompt],)h(page)f(98\).)39
-b(Characters)21 b(remo)m(v)m(ed)630 737 y(are)31 b(replaced)g(with)f
+e(of)h(trailing)630 518 y(directory)c(comp)s(onen)m(ts)h(to)f(retain)h
+(when)e(expanding)g(the)h Ft(\\w)g Fu(and)f Ft(\\W)g
+Fu(prompt)h(string)f(es-)630 628 y(cap)s(es)i(\(see)h(Section)g(6.9)g
+([Con)m(trolling)g(the)f(Prompt],)i(page)e(104\).)41
+b(Characters)24 b(remo)m(v)m(ed)630 737 y(are)31 b(replaced)g(with)f
(an)g(ellipsis.)150 892 y Ft(PS0)336 b Fu(The)32 b(v)-5
b(alue)33 b(of)g(this)g(parameter)g(is)g(expanded)e(lik)m(e)j
Ft(PS1)e Fu(and)g(displa)m(y)m(ed)i(b)m(y)e(in)m(teractiv)m(e)630
@@ -14147,13 +14510,13 @@ b(v)-5 b(alue)35 b(of)f(this)g(v)-5 b(ariable)35 b(is)g(used)e(as)i
(the)f(prompt)g(for)g(the)g Ft(select)f Fu(command.)52
b(If)630 1267 y(this)30 b(v)-5 b(ariable)31 b(is)g(not)f(set,)i(the)e
Ft(select)f Fu(command)h(prompts)f(with)h(`)p Ft(#?)g
-Fu(')150 1422 y Ft(PS4)336 b Fu(The)37 b(v)-5 b(alue)37
-b(of)g(this)g(parameter)h(is)f(expanded)f(lik)m(e)i Fr(PS1)44
-b Fu(and)37 b(the)g(expanded)f(v)-5 b(alue)38 b(is)630
-1532 y(the)d(prompt)f(prin)m(ted)g(b)s(efore)g(the)h(command)f(line)h
-(is)g(ec)m(ho)s(ed)g(when)f(the)h Ft(-x)f Fu(option)h(is)630
+Fu(')150 1422 y Ft(PS4)336 b Fu(The)38 b(v)-5 b(alue)39
+b(of)g(this)g(parameter)g(is)g(expanded)f(lik)m(e)i Ft(PS1)e
+Fu(and)g(the)h(expanded)f(v)-5 b(alue)39 b(is)630 1532
+y(the)c(prompt)f(prin)m(ted)g(b)s(efore)g(the)h(command)f(line)h(is)g
+(ec)m(ho)s(ed)g(when)f(the)h Ft(-x)f Fu(option)h(is)630
1641 y(set)k(\(see)h(Section)g(4.3.1)g([The)f(Set)g(Builtin],)j(page)e
-(62\).)67 b(The)38 b(\014rst)g(c)m(haracter)j(of)e(the)630
+(67\).)67 b(The)38 b(\014rst)g(c)m(haracter)j(of)e(the)630
1751 y(expanded)33 b(v)-5 b(alue)33 b(is)h(replicated)g(m)m(ultiple)g
(times,)h(as)f(necessary)-8 b(,)35 b(to)f(indicate)g(m)m(ultiple)630
1861 y(lev)m(els)e(of)e(indirection.)42 b(The)29 b(default)i(is)f(`)p
@@ -14166,141 +14529,145 @@ b(Assigning)25 b(a)f(v)-5 b(alue)25 b(to)g(this)f(v)-5
b(ariable)25 b(seeds)f(the)h(random)e(n)m(um)m(b)s(er)g(gener-)630
2390 y(ator.)41 b(If)27 b Ft(RANDOM)f Fu(is)h(unset,)h(it)g(loses)h
(its)f(sp)s(ecial)g(prop)s(erties,)g(ev)m(en)g(if)g(it)g(is)f
-(subsequen)m(tly)630 2500 y(reset.)150 2655 y Ft(READLINE_LINE)630
-2765 y Fu(The)g(con)m(ten)m(ts)i(of)f(the)g(Readline)g(line)g
-(bu\013er,)f(for)h(use)f(with)g(`)p Ft(bind)j(-x)p Fu(')d(\(see)h
-(Section)h(4.2)630 2874 y([Bash)i(Builtins],)g(page)g(51\).)150
-3029 y Ft(READLINE_MARK)630 3139 y Fu(The)26 b(p)s(osition)h(of)g(the)g
-Fr(mark)32 b Fu(\(sa)m(v)m(ed)c(insertion)f(p)s(oin)m(t\))g(in)g(the)g
-(Readline)g(line)g(bu\013er,)g(for)630 3249 y(use)36
-b(with)f(`)p Ft(bind)30 b(-x)p Fu(')35 b(\(see)i(Section)g(4.2)g([Bash)
-f(Builtins],)i(page)f(51\).)58 b(The)35 b(c)m(haracters)630
-3358 y(b)s(et)m(w)m(een)c(the)g(insertion)f(p)s(oin)m(t)g(and)g(the)h
-(mark)f(are)h(often)f(called)i(the)f Fr(region)p Fu(.)150
-3513 y Ft(READLINE_POINT)630 3623 y Fu(The)23 b(p)s(osition)g(of)g(the)
-h(insertion)f(p)s(oin)m(t)g(in)g(the)g(Readline)h(line)f(bu\013er,)h
-(for)f(use)g(with)g(`)p Ft(bind)630 3733 y(-x)p Fu(')30
-b(\(see)h(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(51\).)150
-3888 y Ft(REPLY)240 b Fu(The)30 b(default)g(v)-5 b(ariable)32
-b(for)e(the)g Ft(read)g Fu(builtin.)150 4043 y Ft(SECONDS)144
-b Fu(This)40 b(v)-5 b(ariable)41 b(expands)f(to)h(the)g(n)m(um)m(b)s
-(er)e(of)i(seconds)g(since)g(the)f(shell)h(w)m(as)g(started.)630
-4153 y(Assignmen)m(t)i(to)g(this)g(v)-5 b(ariable)43
+(subsequen)m(tly)630 2500 y(reset.)150 2655 y Ft(READLINE_ARGUMENT)630
+2765 y Fu(An)m(y)37 b(n)m(umeric)f(argumen)m(t)h(giv)m(en)g(to)g(a)g
+(Readline)g(command)f(that)h(w)m(as)g(de\014ned)e(using)630
+2874 y(`)p Ft(bind)29 b(-x)p Fu(')h(\(see)i(Section)f(4.2)g([Bash)g
+(Builtins],)g(page)h(55,)f(when)e(it)i(w)m(as)g(in)m(v)m(ok)m(ed.)150
+3029 y Ft(READLINE_LINE)630 3139 y Fu(The)c(con)m(ten)m(ts)i(of)f(the)g
+(Readline)g(line)g(bu\013er,)f(for)h(use)f(with)g(`)p
+Ft(bind)j(-x)p Fu(')d(\(see)h(Section)h(4.2)630 3249
+y([Bash)i(Builtins],)g(page)g(55\).)150 3404 y Ft(READLINE_MARK)630
+3513 y Fu(The)26 b(p)s(osition)h(of)g(the)g Fr(mark)32
+b Fu(\(sa)m(v)m(ed)c(insertion)f(p)s(oin)m(t\))g(in)g(the)g(Readline)g
+(line)g(bu\013er,)g(for)630 3623 y(use)36 b(with)f(`)p
+Ft(bind)30 b(-x)p Fu(')35 b(\(see)i(Section)g(4.2)g([Bash)f(Builtins],)
+i(page)f(55\).)58 b(The)35 b(c)m(haracters)630 3733 y(b)s(et)m(w)m(een)
+c(the)g(insertion)f(p)s(oin)m(t)g(and)g(the)h(mark)f(are)h(often)f
+(called)i(the)f Fr(region)p Fu(.)150 3888 y Ft(READLINE_POINT)630
+3998 y Fu(The)23 b(p)s(osition)g(of)g(the)h(insertion)f(p)s(oin)m(t)g
+(in)g(the)g(Readline)h(line)f(bu\013er,)h(for)f(use)g(with)g(`)p
+Ft(bind)630 4107 y(-x)p Fu(')30 b(\(see)h(Section)h(4.2)f([Bash)g
+(Builtins],)g(page)g(55\).)150 4262 y Ft(REPLY)240 b
+Fu(The)30 b(default)g(v)-5 b(ariable)32 b(for)e(the)g
+Ft(read)g Fu(builtin.)150 4418 y Ft(SECONDS)144 b Fu(This)40
+b(v)-5 b(ariable)41 b(expands)f(to)h(the)g(n)m(um)m(b)s(er)e(of)i
+(seconds)g(since)g(the)f(shell)h(w)m(as)g(started.)630
+4527 y(Assignmen)m(t)i(to)g(this)g(v)-5 b(ariable)43
b(resets)g(the)g(coun)m(t)g(to)g(the)g(v)-5 b(alue)43
-b(assigned,)j(and)c(the)630 4262 y(expanded)35 b(v)-5
+b(assigned,)j(and)c(the)630 4637 y(expanded)35 b(v)-5
b(alue)36 b(b)s(ecomes)h(the)f(v)-5 b(alue)36 b(assigned)g(plus)f(the)h
-(n)m(um)m(b)s(er)f(of)h(seconds)g(since)630 4372 y(the)24
-b(assignmen)m(t.)39 b(The)23 b(n)m(um)m(b)s(er)g(of)h(seconds)f(at)i
-(shell)f(in)m(v)m(o)s(cation)i(and)d(the)h(curren)m(t)f(time)630
-4482 y(is)j(alw)m(a)m(ys)i(determined)e(b)m(y)g(querying)g(the)h
-(system)f(clo)s(c)m(k.)41 b(If)26 b Ft(SECONDS)e Fu(is)i(unset,)h(it)g
-(loses)630 4591 y(its)k(sp)s(ecial)g(prop)s(erties,)f(ev)m(en)h(if)f
-(it)h(is)f(subsequen)m(tly)g(reset.)150 4746 y Ft(SHELL)240
-b Fu(This)24 b(en)m(vironmen)m(t)i(v)-5 b(ariable)26
-b(expands)e(to)i(the)g(full)f(pathname)g(to)h(the)f(shell.)39
-b(If)25 b(it)g(is)h(not)630 4856 y(set)36 b(when)f(the)h(shell)g
-(starts,)i(Bash)e(assigns)h(to)f(it)h(the)f(full)f(pathname)h(of)g(the)
-g(curren)m(t)630 4966 y(user's)30 b(login)h(shell.)150
-5121 y Ft(SHELLOPTS)630 5230 y Fu(A)g(colon-separated)h(list)f(of)g
-(enabled)f(shell)h(options.)41 b(Eac)m(h)31 b(w)m(ord)f(in)g(the)h
-(list)g(is)g(a)g(v)-5 b(alid)630 5340 y(argumen)m(t)28
-b(for)f(the)h Ft(-o)e Fu(option)i(to)g(the)g Ft(set)e
-Fu(builtin)h(command)g(\(see)i(Section)f(4.3.1)h([The)p
-eop end
-%%Page: 84 90
-TeXDict begin 84 89 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(84)630 299 y(Set)29
-b(Builtin],)h(page)f(62\).)42 b(The)28 b(options)h(app)s(earing)f(in)g
-Ft(SHELLOPTS)e Fu(are)j(those)h(rep)s(orted)630 408 y(as)g(`)p
-Ft(on)p Fu(')f(b)m(y)h(`)p Ft(set)g(-o)p Fu('.)40 b(If)29
-b(this)h(v)-5 b(ariable)30 b(is)g(in)f(the)h(en)m(vironmen)m(t)g(when)f
-(Bash)h(starts)g(up,)630 518 y(eac)m(h)41 b(shell)e(option)h(in)f(the)h
-(list)g(will)f(b)s(e)g(enabled)h(b)s(efore)f(reading)g(an)m(y)h
-(startup)f(\014les.)630 628 y(This)30 b(v)-5 b(ariable)31
-b(is)f(readonly)-8 b(.)150 790 y Ft(SHLVL)240 b Fu(Incremen)m(ted)21
-b(b)m(y)g(one)g(eac)m(h)h(time)f(a)h(new)e(instance)h(of)g(Bash)g(is)g
-(started.)38 b(This)20 b(is)h(in)m(tended)630 899 y(to)31
-b(b)s(e)f(a)h(coun)m(t)g(of)f(ho)m(w)h(deeply)f(y)m(our)g(Bash)h
-(shells)f(are)h(nested.)150 1062 y Ft(SRANDOM)144 b Fu(This)36
-b(v)-5 b(ariable)37 b(expands)f(to)h(a)g(32-bit)h(pseudo-random)d(n)m
-(um)m(b)s(er)g(eac)m(h)j(time)f(it)g(is)g(ref-)630 1171
-y(erenced.)47 b(The)32 b(random)g(n)m(um)m(b)s(er)f(generator)j(is)e
-(not)h(linear)g(on)f(systems)h(that)g(supp)s(ort)630
-1281 y Ft(/dev/urandom)26 b Fu(or)k Ft(arc4random)p Fu(,)d(so)j(eac)m
-(h)g(returned)f(n)m(um)m(b)s(er)f(has)h(no)g(relationship)h(to)630
-1390 y(the)39 b(n)m(um)m(b)s(ers)e(preceding)i(it.)66
-b(The)38 b(random)g(n)m(um)m(b)s(er)f(generator)j(cannot)g(b)s(e)e
-(seeded,)630 1500 y(so)c(assignmen)m(ts)g(to)g(this)f(v)-5
-b(ariable)34 b(ha)m(v)m(e)h(no)e(e\013ect.)51 b(If)33
-b Ft(SRANDOM)e Fu(is)j(unset,)g(it)f(loses)i(its)630
-1610 y(sp)s(ecial)c(prop)s(erties,)f(ev)m(en)h(if)f(it)h(is)g
-(subsequen)m(tly)f(reset.)150 1772 y Ft(TIMEFORMAT)630
-1881 y Fu(The)g(v)-5 b(alue)32 b(of)f(this)g(parameter)g(is)g(used)f
-(as)h(a)g(format)h(string)f(sp)s(ecifying)f(ho)m(w)h(the)g(tim-)630
-1991 y(ing)37 b(information)f(for)h(pip)s(elines)f(pre\014xed)f(with)h
-(the)h Ft(time)e Fu(reserv)m(ed)i(w)m(ord)f(should)g(b)s(e)630
-2101 y(displa)m(y)m(ed.)k(The)27 b(`)p Ft(\045)p Fu(')h(c)m(haracter)h
-(in)m(tro)s(duces)e(an)h(escap)s(e)g(sequence)g(that)g(is)f(expanded)g
-(to)630 2210 y(a)37 b(time)g(v)-5 b(alue)36 b(or)h(other)f
-(information.)59 b(The)36 b(escap)s(e)g(sequences)h(and)e(their)i
-(meanings)630 2320 y(are)31 b(as)f(follo)m(ws;)i(the)f(braces)f(denote)
-h(optional)h(p)s(ortions.)630 2482 y Ft(\045\045)384
-b Fu(A)30 b(literal)i(`)p Ft(\045)p Fu('.)630 2644 y
-Ft(\045[)p Fj(p)p Ft(][l]R)96 b Fu(The)30 b(elapsed)h(time)g(in)f
-(seconds.)630 2806 y Ft(\045[)p Fj(p)p Ft(][l]U)96 b
-Fu(The)30 b(n)m(um)m(b)s(er)f(of)h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g
-(user)f(mo)s(de.)630 2968 y Ft(\045[)p Fj(p)p Ft(][l]S)96
-b Fu(The)30 b(n)m(um)m(b)s(er)f(of)h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g
-(system)g(mo)s(de.)630 3131 y Ft(\045P)384 b Fu(The)30
-b(CPU)g(p)s(ercen)m(tage,)i(computed)e(as)h(\(\045U)f
-Ft(+)g Fu(\045S\))g(/)h(\045R.)630 3293 y(The)23 b(optional)j
-Fr(p)g Fu(is)e(a)g(digit)h(sp)s(ecifying)e(the)h(precision,)i(the)e(n)m
-(um)m(b)s(er)f(of)h(fractional)h(digits)630 3402 y(after)36
-b(a)f(decimal)i(p)s(oin)m(t.)55 b(A)35 b(v)-5 b(alue)36
-b(of)f(0)h(causes)g(no)f(decimal)h(p)s(oin)m(t)f(or)h(fraction)g(to)g
-(b)s(e)630 3512 y(output.)48 b(A)m(t)34 b(most)f(three)g(places)h
-(after)f(the)g(decimal)h(p)s(oin)m(t)f(ma)m(y)h(b)s(e)e(sp)s
-(eci\014ed;)i(v)-5 b(alues)630 3622 y(of)31 b Fr(p)h
-Fu(greater)g(than)e(3)h(are)f(c)m(hanged)h(to)g(3.)42
+(n)m(um)m(b)s(er)f(of)h(seconds)g(since)630 4746 y(the)41
+b(assignmen)m(t.)72 b(The)40 b(n)m(um)m(b)s(er)f(of)i(seconds)f(at)h
+(shell)g(in)m(v)m(o)s(cation)i(and)c(the)i(curren)m(t)630
+4856 y(time)30 b(are)g(alw)m(a)m(ys)g(determined)f(b)m(y)g(querying)g
+(the)h(system)f(clo)s(c)m(k.)42 b(If)29 b Ft(SECONDS)e
+Fu(is)i(unset,)630 4966 y(it)i(loses)g(its)g(sp)s(ecial)g(prop)s
+(erties,)f(ev)m(en)h(if)f(it)h(is)g(subsequen)m(tly)e(reset.)150
+5121 y Ft(SHELL)240 b Fu(This)24 b(en)m(vironmen)m(t)i(v)-5
+b(ariable)26 b(expands)e(to)i(the)g(full)f(pathname)g(to)h(the)f
+(shell.)39 b(If)25 b(it)g(is)h(not)630 5230 y(set)36
+b(when)f(the)h(shell)g(starts,)i(Bash)e(assigns)h(to)f(it)h(the)f(full)
+f(pathname)h(of)g(the)g(curren)m(t)630 5340 y(user's)30
+b(login)h(shell.)p eop end
+%%Page: 89 95
+TeXDict begin 89 94 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(89)150 299 y Ft(SHELLOPTS)630
+408 y Fu(A)31 b(colon-separated)h(list)f(of)g(enabled)f(shell)h
+(options.)41 b(Eac)m(h)31 b(w)m(ord)f(in)g(the)h(list)g(is)g(a)g(v)-5
+b(alid)630 518 y(argumen)m(t)28 b(for)f(the)h Ft(-o)e
+Fu(option)i(to)g(the)g Ft(set)e Fu(builtin)h(command)g(\(see)i(Section)
+f(4.3.1)h([The)630 628 y(Set)g(Builtin],)h(page)f(67\).)42
+b(The)28 b(options)h(app)s(earing)f(in)g Ft(SHELLOPTS)e
+Fu(are)j(those)h(rep)s(orted)630 737 y(as)g(`)p Ft(on)p
+Fu(')f(b)m(y)h(`)p Ft(set)g(-o)p Fu('.)40 b(If)29 b(this)h(v)-5
+b(ariable)30 b(is)g(in)f(the)h(en)m(vironmen)m(t)g(when)f(Bash)h
+(starts)g(up,)630 847 y(eac)m(h)41 b(shell)e(option)h(in)f(the)h(list)g
+(will)f(b)s(e)g(enabled)h(b)s(efore)f(reading)g(an)m(y)h(startup)f
+(\014les.)630 956 y(This)30 b(v)-5 b(ariable)31 b(is)f(readonly)-8
+b(.)150 1121 y Ft(SHLVL)240 b Fu(Incremen)m(ted)21 b(b)m(y)g(one)g(eac)
+m(h)h(time)f(a)h(new)e(instance)h(of)g(Bash)g(is)g(started.)38
+b(This)20 b(is)h(in)m(tended)630 1230 y(to)31 b(b)s(e)f(a)h(coun)m(t)g
+(of)f(ho)m(w)h(deeply)f(y)m(our)g(Bash)h(shells)f(are)h(nested.)150
+1395 y Ft(SRANDOM)144 b Fu(This)36 b(v)-5 b(ariable)37
+b(expands)f(to)h(a)g(32-bit)h(pseudo-random)d(n)m(um)m(b)s(er)g(eac)m
+(h)j(time)f(it)g(is)g(ref-)630 1504 y(erenced.)47 b(The)32
+b(random)g(n)m(um)m(b)s(er)f(generator)j(is)e(not)h(linear)g(on)f
+(systems)h(that)g(supp)s(ort)630 1614 y Ft(/dev/urandom)26
+b Fu(or)k Ft(arc4random)p Fu(,)d(so)j(eac)m(h)g(returned)f(n)m(um)m(b)s
+(er)f(has)h(no)g(relationship)h(to)630 1724 y(the)39
+b(n)m(um)m(b)s(ers)e(preceding)i(it.)66 b(The)38 b(random)g(n)m(um)m(b)
+s(er)f(generator)j(cannot)g(b)s(e)e(seeded,)630 1833
+y(so)c(assignmen)m(ts)g(to)g(this)f(v)-5 b(ariable)34
+b(ha)m(v)m(e)h(no)e(e\013ect.)51 b(If)33 b Ft(SRANDOM)e
+Fu(is)j(unset,)g(it)f(loses)i(its)630 1943 y(sp)s(ecial)c(prop)s
+(erties,)f(ev)m(en)h(if)f(it)h(is)g(subsequen)m(tly)f(reset.)150
+2107 y Ft(TIMEFORMAT)630 2217 y Fu(The)g(v)-5 b(alue)32
+b(of)f(this)g(parameter)g(is)g(used)f(as)h(a)g(format)h(string)f(sp)s
+(ecifying)f(ho)m(w)h(the)g(tim-)630 2326 y(ing)37 b(information)f(for)h
+(pip)s(elines)f(pre\014xed)f(with)h(the)h Ft(time)e Fu(reserv)m(ed)i(w)
+m(ord)f(should)g(b)s(e)630 2436 y(displa)m(y)m(ed.)k(The)27
+b(`)p Ft(\045)p Fu(')h(c)m(haracter)h(in)m(tro)s(duces)e(an)h(escap)s
+(e)g(sequence)g(that)g(is)f(expanded)g(to)630 2545 y(a)37
+b(time)g(v)-5 b(alue)36 b(or)h(other)f(information.)59
+b(The)36 b(escap)s(e)g(sequences)h(and)e(their)i(meanings)630
+2655 y(are)31 b(as)f(follo)m(ws;)i(the)f(braces)f(denote)h(optional)h
+(p)s(ortions.)630 2819 y Ft(\045\045)384 b Fu(A)30 b(literal)i(`)p
+Ft(\045)p Fu('.)630 2984 y Ft(\045[)p Fj(p)p Ft(][l]R)96
+b Fu(The)30 b(elapsed)h(time)g(in)f(seconds.)630 3148
+y Ft(\045[)p Fj(p)p Ft(][l]U)96 b Fu(The)30 b(n)m(um)m(b)s(er)f(of)h
+(CPU)g(seconds)h(sp)s(en)m(t)f(in)g(user)f(mo)s(de.)630
+3313 y Ft(\045[)p Fj(p)p Ft(][l]S)96 b Fu(The)30 b(n)m(um)m(b)s(er)f
+(of)h(CPU)g(seconds)h(sp)s(en)m(t)f(in)g(system)g(mo)s(de.)630
+3477 y Ft(\045P)384 b Fu(The)30 b(CPU)g(p)s(ercen)m(tage,)i(computed)e
+(as)h(\(\045U)f Ft(+)g Fu(\045S\))g(/)h(\045R.)630 3641
+y(The)23 b(optional)j Fr(p)g Fu(is)e(a)g(digit)h(sp)s(ecifying)e(the)h
+(precision,)i(the)e(n)m(um)m(b)s(er)f(of)h(fractional)h(digits)630
+3751 y(after)36 b(a)f(decimal)i(p)s(oin)m(t.)55 b(A)35
+b(v)-5 b(alue)36 b(of)f(0)h(causes)g(no)f(decimal)h(p)s(oin)m(t)f(or)h
+(fraction)g(to)g(b)s(e)630 3861 y(output.)48 b(A)m(t)34
+b(most)f(three)g(places)h(after)f(the)g(decimal)h(p)s(oin)m(t)f(ma)m(y)
+h(b)s(e)e(sp)s(eci\014ed;)i(v)-5 b(alues)630 3970 y(of)31
+b Fr(p)h Fu(greater)g(than)e(3)h(are)f(c)m(hanged)h(to)g(3.)42
b(If)29 b Fr(p)k Fu(is)d(not)h(sp)s(eci\014ed,)f(the)h(v)-5
-b(alue)30 b(3)h(is)g(used.)630 3758 y(The)54 b(optional)h
+b(alue)30 b(3)h(is)g(used.)630 4107 y(The)54 b(optional)h
Ft(l)f Fu(sp)s(eci\014es)g(a)h(longer)f(format,)61 b(including)54
-b(min)m(utes,)61 b(of)54 b(the)g(form)630 3867 y Fr(MM)10
+b(min)m(utes,)61 b(of)54 b(the)g(form)630 4217 y Fr(MM)10
b Fu(m)p Fr(SS)p Fu(.)p Fr(FF)d Fu(s.)103 b(The)50 b(v)-5
b(alue)52 b(of)f Fr(p)j Fu(determines)d(whether)f(or)h(not)h(the)f
-(fraction)h(is)630 3977 y(included.)630 4113 y(If)30
+(fraction)h(is)630 4326 y(included.)630 4463 y(If)30
b(this)g(v)-5 b(ariable)31 b(is)g(not)f(set,)i(Bash)e(acts)h(as)g(if)f
-(it)h(had)f(the)h(v)-5 b(alue)870 4248 y Ft
+(it)h(had)f(the)h(v)-5 b(alue)870 4600 y Ft
($'\\nreal\\t\0453lR\\nuser\\t\0453)o(lU\\n)o(sys\\)o(t\0453)o(lS')630
-4384 y Fu(If)37 b(the)g(v)-5 b(alue)38 b(is)f(n)m(ull,)i(no)f(timing)f
+4737 y Fu(If)37 b(the)g(v)-5 b(alue)38 b(is)f(n)m(ull,)i(no)f(timing)f
(information)h(is)f(displa)m(y)m(ed.)62 b(A)37 b(trailing)i(newline)e
-(is)630 4494 y(added)30 b(when)f(the)i(format)f(string)h(is)f(displa)m
-(y)m(ed.)150 4656 y Ft(TMOUT)240 b Fu(If)22 b(set)h(to)g(a)g(v)-5
+(is)630 4847 y(added)30 b(when)f(the)i(format)f(string)h(is)f(displa)m
+(y)m(ed.)150 5011 y Ft(TMOUT)240 b Fu(If)22 b(set)h(to)g(a)g(v)-5
b(alue)23 b(greater)h(than)e(zero,)j Ft(TMOUT)d Fu(is)g(treated)i(as)e
-(the)h(default)g(timeout)g(for)g(the)630 4766 y Ft(read)31
+(the)h(default)g(timeout)g(for)g(the)630 5121 y Ft(read)31
b Fu(builtin)h(\(see)h(Section)f(4.2)i([Bash)e(Builtins],)h(page)g
-(51\).)47 b(The)32 b Ft(select)e Fu(command)630 4875
+(55\).)47 b(The)32 b Ft(select)e Fu(command)630 5230
y(\(see)f(Section)h(3.2.5.2)g([Conditional)g(Constructs],)e(page)i
-(11\))f(terminates)g(if)g(input)e(do)s(es)630 4985 y(not)k(arriv)m(e)g
+(12\))f(terminates)g(if)g(input)e(do)s(es)630 5340 y(not)k(arriv)m(e)g
(after)g Ft(TMOUT)e Fu(seconds)h(when)f(input)h(is)g(coming)h(from)f(a)
-h(terminal.)630 5121 y(In)40 b(an)h(in)m(teractiv)m(e)i(shell,)h(the)d
-(v)-5 b(alue)41 b(is)g(in)m(terpreted)g(as)f(the)h(n)m(um)m(b)s(er)f
-(of)h(seconds)f(to)630 5230 y(w)m(ait)28 b(for)e(a)g(line)h(of)g(input)
-e(after)i(issuing)f(the)h(primary)e(prompt.)39 b(Bash)26
-b(terminates)h(after)630 5340 y(w)m(aiting)32 b(for)e(that)h(n)m(um)m
-(b)s(er)e(of)h(seconds)h(if)f(a)h(complete)h(line)e(of)h(input)e(do)s
-(es)h(not)h(arriv)m(e.)p eop end
-%%Page: 85 91
-TeXDict begin 85 90 bop 150 -116 a Fu(Chapter)30 b(5:)41
-b(Shell)30 b(V)-8 b(ariables)2459 b(85)150 299 y Ft(TMPDIR)192
-b Fu(If)39 b(set,)j(Bash)e(uses)f(its)h(v)-5 b(alue)40
-b(as)f(the)h(name)f(of)h(a)g(directory)g(in)f(whic)m(h)g(Bash)h
-(creates)630 408 y(temp)s(orary)30 b(\014les)g(for)g(the)h(shell's)g
-(use.)150 568 y Ft(UID)336 b Fu(The)30 b(n)m(umeric)g(real)h(user)f(id)
-g(of)g(the)h(curren)m(t)f(user.)40 b(This)30 b(v)-5 b(ariable)31
-b(is)f(readonly)-8 b(.)p eop end
-%%Page: 86 92
-TeXDict begin 86 91 bop 3659 -116 a Fu(86)150 299 y Fp(6)80
+h(terminal.)p eop end
+%%Page: 90 96
+TeXDict begin 90 95 bop 150 -116 a Fu(Chapter)30 b(5:)41
+b(Shell)30 b(V)-8 b(ariables)2459 b(90)630 299 y(In)40
+b(an)h(in)m(teractiv)m(e)i(shell,)h(the)d(v)-5 b(alue)41
+b(is)g(in)m(terpreted)g(as)f(the)h(n)m(um)m(b)s(er)f(of)h(seconds)f(to)
+630 408 y(w)m(ait)28 b(for)e(a)g(line)h(of)g(input)e(after)i(issuing)f
+(the)h(primary)e(prompt.)39 b(Bash)26 b(terminates)h(after)630
+518 y(w)m(aiting)32 b(for)e(that)h(n)m(um)m(b)s(er)e(of)h(seconds)h(if)
+f(a)h(complete)h(line)e(of)h(input)e(do)s(es)h(not)h(arriv)m(e.)150
+677 y Ft(TMPDIR)192 b Fu(If)39 b(set,)j(Bash)e(uses)f(its)h(v)-5
+b(alue)40 b(as)f(the)h(name)f(of)h(a)g(directory)g(in)f(whic)m(h)g
+(Bash)h(creates)630 787 y(temp)s(orary)30 b(\014les)g(for)g(the)h
+(shell's)g(use.)150 946 y Ft(UID)336 b Fu(The)30 b(n)m(umeric)g(real)h
+(user)f(id)g(of)g(the)h(curren)m(t)f(user.)40 b(This)30
+b(v)-5 b(ariable)31 b(is)f(readonly)-8 b(.)p eop end
+%%Page: 91 97
+TeXDict begin 91 96 bop 3659 -116 a Fu(91)150 299 y Fp(6)80
b(Bash)54 b(F)-13 b(eatures)150 502 y Fu(This)30 b(c)m(hapter)h
(describ)s(es)e(features)i(unique)e(to)i(Bash.)150 731
y Fs(6.1)68 b(In)l(v)l(oking)46 b(Bash)390 890 y Ft(bash)h([long-opt])e
@@ -14314,7 +14681,7 @@ b([-o)k Fj(option)p Ft(])581 1438 y([-O)h Fj(shopt_option)p
Ft(])d([)p Fj(argument)h Ft(...)o(])275 1567 y Fu(All)31
b(of)g(the)f(single-c)m(haracter)k(options)d(used)f(with)g(the)h
Ft(set)f Fu(builtin)g(\(see)h(Section)h(4.3.1)g([The)f(Set)150
-1676 y(Builtin],)45 b(page)c(62\))i(can)e(b)s(e)f(used)h(as)g(options)g
+1676 y(Builtin],)45 b(page)c(67\))i(can)e(b)s(e)f(used)h(as)g(options)g
(when)f(the)i(shell)f(is)g(in)m(v)m(ok)m(ed.)74 b(In)41
b(addition,)j(there)150 1786 y(are)38 b(sev)m(eral)h(m)m(ulti-c)m
(haracter)h(options)d(that)h(y)m(ou)g(can)g(use.)61 b(These)38
@@ -14324,7 +14691,7 @@ b(line)h(b)s(efore)f(the)g(single-c)m(haracter)j(options)e(to)g(b)s(e)f
(the)g(debugger)g(pro\014le)g(to)h(b)s(e)e(executed)i(b)s(efore)f(the)g
(shell)g(starts.)49 b(T)-8 b(urns)630 2262 y(on)35 b(extended)g
(debugging)f(mo)s(de)h(\(see)g(Section)h(4.3.2)h([The)d(Shopt)g
-(Builtin],)j(page)f(66,)630 2371 y(for)30 b(a)h(description)f(of)h(the)
+(Builtin],)j(page)f(71,)630 2371 y(for)30 b(a)h(description)f(of)h(the)
f Ft(extdebug)f Fu(option)h(to)h(the)g Ft(shopt)e Fu(builtin\).)150
2519 y Ft(--dump-po-strings)630 2628 y Fu(A)37 b(list)g(of)f(all)i
(double-quoted)e(strings)g(preceded)g(b)m(y)h(`)p Ft($)p
@@ -14342,7 +14709,7 @@ b(of)g Ft(~/.bashrc)p Fu(\))e(in)h(an)h(in)m(teractiv)m(e)i(shell.)150
3765 y Ft(--login)144 b Fu(Equiv)-5 b(alen)m(t)31 b(to)g
Ft(-l)p Fu(.)150 3912 y Ft(--noediting)630 4022 y Fu(Do)h(not)e(use)h
(the)g Fm(gnu)f Fu(Readline)i(library)e(\(see)h(Chapter)g(8)g([Command)
-f(Line)g(Editing],)630 4131 y(page)h(111\))h(to)f(read)g(command)f
+f(Line)g(Editing],)630 4131 y(page)h(117\))h(to)f(read)g(command)f
(lines)g(when)g(the)g(shell)h(is)f(in)m(teractiv)m(e.)150
4278 y Ft(--noprofile)630 4388 y Fu(Don't)22 b(load)g(the)g
(system-wide)f(startup)g(\014le)h Ft(/etc/profile)c Fu(or)j(an)m(y)h
@@ -14359,15 +14726,15 @@ b(the)h(b)s(eha)m(vior)f(of)g(Bash)h(where)e(the)i(default)f(op)s
y Fu(standard)35 b(to)h(matc)m(h)g(the)g(standard.)55
b(This)35 b(is)h(in)m(tended)f(to)h(mak)m(e)h(Bash)f(b)s(eha)m(v)m(e)g
(as)g(a)630 5230 y(strict)22 b(sup)s(erset)e(of)h(that)g(standard.)37
-b(See)21 b(Section)h(6.11)g([Bash)f(POSIX)f(Mo)s(de],)k(page)d(101,)630
+b(See)21 b(Section)h(6.11)g([Bash)f(POSIX)f(Mo)s(de],)k(page)d(106,)630
5340 y(for)30 b(a)h(description)f(of)h(the)f(Bash)h Fm(posix)f
Fu(mo)s(de.)p eop end
-%%Page: 87 93
-TeXDict begin 87 92 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(87)150 299 y Ft(--restricted)630
+%%Page: 92 98
+TeXDict begin 92 97 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(92)150 299 y Ft(--restricted)630
408 y Fu(Mak)m(e)54 b(the)e(shell)g(a)h(restricted)g(shell)f(\(see)h
(Section)g(6.10)h([The)d(Restricted)j(Shell],)630 518
-y(page)31 b(100\).)150 677 y Ft(--verbose)630 787 y Fu(Equiv)-5
+y(page)31 b(105\).)150 677 y Ft(--verbose)630 787 y Fu(Equiv)-5
b(alen)m(t)31 b(to)g Ft(-v)p Fu(.)41 b(Prin)m(t)30 b(shell)g(input)g
(lines)g(as)h(they're)g(read.)150 946 y Ft(--version)630
1056 y Fu(Sho)m(w)d(v)m(ersion)g(information)g(for)g(this)g(instance)h
@@ -14389,7 +14756,7 @@ b(assignmen)m(t)i(to)g Ft($0)f Fu(sets)g(the)h(name)f(of)g(the)g
(error)g(messages.)150 2192 y Ft(-i)384 b Fu(F)-8 b(orce)22
b(the)g(shell)f(to)g(run)f(in)m(teractiv)m(ely)-8 b(.)41
b(In)m(teractiv)m(e)23 b(shells)e(are)h(describ)s(ed)d(in)i(Section)h
-(6.3)630 2301 y([In)m(teractiv)m(e)33 b(Shells],)e(page)g(89.)150
+(6.3)630 2301 y([In)m(teractiv)m(e)33 b(Shells],)e(page)g(94.)150
2461 y Ft(-l)384 b Fu(Mak)m(e)33 b(this)e(shell)h(act)g(as)g(if)f(it)h
(had)f(b)s(een)f(directly)i(in)m(v)m(ok)m(ed)h(b)m(y)f(login.)44
b(When)31 b(the)h(shell)630 2570 y(is)37 b(in)m(teractiv)m(e,)43
@@ -14400,11 +14767,11 @@ b(this)37 b(is)g(equiv)-5 b(alen)m(t)39 b(to)f(starting)h(a)e(login)i
2790 y(`)p Ft(exec)e(bash)h(-l)p Fu(')43 b(or)h(`)p Ft(exec)29
b(bash)g(--login)p Fu(')42 b(will)i(replace)h(the)f(curren)m(t)f(shell)
h(with)g(a)630 2899 y(Bash)26 b(login)g(shell.)39 b(See)26
-b(Section)g(6.2)h([Bash)e(Startup)g(Files],)j(page)e(88,)i(for)d(a)h
+b(Section)g(6.2)h([Bash)e(Startup)g(Files],)j(page)e(93,)i(for)d(a)h
(description)630 3009 y(of)31 b(the)f(sp)s(ecial)h(b)s(eha)m(vior)g(of)
f(a)h(login)g(shell.)150 3168 y Ft(-r)384 b Fu(Mak)m(e)54
b(the)e(shell)g(a)h(restricted)g(shell)f(\(see)h(Section)g(6.10)h([The)
-d(Restricted)j(Shell],)630 3278 y(page)31 b(100\).)150
+d(Restricted)j(Shell],)630 3278 y(page)31 b(105\).)150
3437 y Ft(-s)384 b Fu(If)24 b(this)h(option)h(is)f(presen)m(t,)h(or)f
(if)g(no)f(argumen)m(ts)i(remain)e(after)i(option)f(pro)s(cessing,)h
(then)630 3547 y(commands)i(are)h(read)g(from)f(the)h(standard)f
@@ -14424,7 +14791,7 @@ b(implies)i(the)f Ft(-n)g Fu(option;)h(no)f(commands)g(will)h(b)s(e)f
Ft(])630 4523 y Fr(shopt)p 854 4523 V 40 w(option)44
b Fu(is)g(one)h(of)f(the)g(shell)h(options)f(accepted)h(b)m(y)f(the)h
Ft(shopt)d Fu(builtin)i(\(see)630 4633 y(Section)32 b(4.3.2)h([The)e
-(Shopt)f(Builtin],)i(page)g(66\).)44 b(If)31 b Fr(shopt)p
+(Shopt)f(Builtin],)i(page)g(71\).)44 b(If)31 b Fr(shopt)p
2724 4633 V 40 w(option)g Fu(is)g(presen)m(t,)h Ft(-O)f
Fu(sets)630 4742 y(the)24 b(v)-5 b(alue)24 b(of)g(that)h(option;)h
Ft(+O)e Fu(unsets)f(it.)39 b(If)23 b Fr(shopt)p 2423
@@ -14439,9 +14806,9 @@ f(a)h(format)f(that)630 5071 y(ma)m(y)i(b)s(e)f(reused)f(as)i(input.)
b(An)m(y)630 5340 y(argumen)m(ts)31 b(after)g(the)f Ft(--)g
Fu(are)h(treated)g(as)g(\014lenames)f(and)g(argumen)m(ts.)p
eop end
-%%Page: 88 94
-TeXDict begin 88 93 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(88)275 299 y(A)27 b
+%%Page: 93 99
+TeXDict begin 93 98 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(93)275 299 y(A)27 b
Fl(lo)-5 b(gin)35 b Fu(shell)27 b(is)g(one)h(whose)f(\014rst)f(c)m
(haracter)j(of)e(argumen)m(t)h(zero)f(is)h(`)p Ft(-)p
Fu(',)g(or)f(one)g(in)m(v)m(ok)m(ed)i(with)e(the)150
@@ -14453,13 +14820,13 @@ g(input)g(and)f(output)h(are)h(b)s(oth)f(connected)h(to)g(ter-)150
774 y(minals)g(\(as)g(determined)f(b)m(y)h Ft(isatty\(3\))p
Fu(\),)e(or)i(one)g(started)g(with)f(the)h Ft(-i)f Fu(option.)51
b(See)33 b(Section)i(6.3)150 884 y([In)m(teractiv)m(e)e(Shells],)e
-(page)g(89,)g(for)f(more)h(information.)275 1031 y(If)i(argumen)m(ts)h
+(page)g(94,)g(for)f(more)h(information.)275 1031 y(If)i(argumen)m(ts)h
(remain)g(after)h(option)f(pro)s(cessing,)h(and)e(neither)h(the)g
Ft(-c)g Fu(nor)f(the)h Ft(-s)g Fu(option)g(has)150 1140
y(b)s(een)44 b(supplied,)j(the)d(\014rst)g(argumen)m(t)h(is)g(assumed)e
(to)j(b)s(e)d(the)i(name)g(of)f(a)h(\014le)g(con)m(taining)h(shell)150
1250 y(commands)30 b(\(see)g(Section)h(3.8)g([Shell)f(Scripts],)g(page)
-h(42\).)41 b(When)30 b(Bash)g(is)g(in)m(v)m(ok)m(ed)i(in)d(this)h
+h(46\).)41 b(When)30 b(Bash)g(is)g(in)m(v)m(ok)m(ed)i(in)d(this)h
(fashion,)150 1359 y Ft($0)37 b Fu(is)g(set)h(to)h(the)e(name)h(of)f
(the)h(\014le,)i(and)c(the)i(p)s(ositional)g(parameters)g(are)g(set)g
(to)g(the)g(remaining)150 1469 y(argumen)m(ts.)h(Bash)26
@@ -14473,9 +14840,9 @@ b(If)26 b(no)g(commands)g(are)h(executed,)150 1688 y(the)k(exit)g
(exist)h(but)e(cannot)150 2216 y(b)s(e)29 b(read,)i(Bash)f(rep)s(orts)f
(an)h(error.)40 b(Tildes)30 b(are)g(expanded)f(in)h(\014lenames)g(as)g
(describ)s(ed)f(ab)s(o)m(v)m(e)i(under)150 2326 y(Tilde)f(Expansion)g
-(\(see)h(Section)h(3.5.2)g([Tilde)e(Expansion],)h(page)g(24\).)275
+(\(see)h(Section)h(3.5.2)g([Tilde)e(Expansion],)h(page)g(25\).)275
2473 y(In)m(teractiv)m(e)h(shells)f(are)g(describ)s(ed)e(in)h(Section)h
-(6.3)h([In)m(teractiv)m(e)h(Shells],)d(page)h(89.)150
+(6.3)h([In)m(teractiv)m(e)h(Shells],)d(page)h(94.)150
2684 y Fk(In)m(v)m(ok)m(ed)40 b(as)h(an)f(in)m(teractiv)m(e)f(login)j
(shell,)g(or)g(with)e Fh(--login)150 2831 y Fu(When)c(Bash)f(is)h(in)m
(v)m(ok)m(ed)h(as)f(an)g(in)m(teractiv)m(e)j(login)d(shell,)i(or)e(as)g
@@ -14514,9 +14881,9 @@ b(the)f(line)390 4725 y Ft(if)47 b([)h(-f)f(~/.bashrc)e(];)i(then)g(.)g
5340 y(v)-5 b(ariable)35 b Ft(BASH_ENV)d Fu(in)i(the)h(en)m(vironmen)m
(t,)h(expands)e(its)g(v)-5 b(alue)35 b(if)g(it)g(app)s(ears)e(there,)j
(and)e(uses)g(the)p eop end
-%%Page: 89 95
-TeXDict begin 89 94 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(89)150 299 y(expanded)30
+%%Page: 94 100
+TeXDict begin 94 99 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(94)150 299 y(expanded)30
b(v)-5 b(alue)30 b(as)h(the)g(name)f(of)h(a)f(\014le)h(to)g(read)f(and)
g(execute.)42 b(Bash)31 b(b)s(eha)m(v)m(es)g(as)g(if)f(the)g(follo)m
(wing)150 408 y(command)g(w)m(ere)h(executed:)390 552
@@ -14566,47 +14933,47 @@ Fu(v)-5 b(ariable)150 3044 y(and)30 b(commands)g(are)g(read)h(and)e
(read.)150 3362 y Fk(In)m(v)m(ok)m(ed)40 b(b)m(y)g(remote)h(shell)h
(daemon)150 3509 y Fu(Bash)36 b(attempts)h(to)g(determine)f(when)f(it)i
(is)f(b)s(eing)g(run)e(with)i(its)g(standard)g(input)f(connected)i(to)g
-(a)150 3618 y(net)m(w)m(ork)h(connection,)j(as)c(when)g(executed)h(b)m
-(y)f(the)h(remote)g(shell)g(daemon,)h(usually)e Ft(rshd)p
-Fu(,)h(or)g(the)150 3728 y(secure)c(shell)f(daemon)h
-Ft(sshd)p Fu(.)49 b(If)33 b(Bash)g(determines)h(it)g(is)f(b)s(eing)g
-(run)f(in)i(this)f(fashion,)h(it)g(reads)g(and)150 3837
-y(executes)29 b(commands)e(from)g Ft(~/.bashrc)p Fu(,)e(if)j(that)g
-(\014le)f(exists)h(and)f(is)g(readable.)41 b(It)27 b(will)h(not)f(do)h
-(this)f(if)150 3947 y(in)m(v)m(ok)m(ed)k(as)f Ft(sh)p
-Fu(.)40 b(The)29 b Ft(--norc)f Fu(option)i(ma)m(y)g(b)s(e)f(used)f(to)j
-(inhibit)e(this)g(b)s(eha)m(vior,)h(and)f(the)h Ft(--rcfile)150
-4057 y Fu(option)36 b(ma)m(y)g(b)s(e)e(used)h(to)h(force)g(another)f
-(\014le)h(to)g(b)s(e)e(read,)j(but)d(neither)i Ft(rshd)e
-Fu(nor)h Ft(sshd)f Fu(generally)150 4166 y(in)m(v)m(ok)m(e)e(the)f
-(shell)f(with)h(those)f(options)h(or)f(allo)m(w)i(them)f(to)g(b)s(e)e
-(sp)s(eci\014ed.)150 4375 y Fk(In)m(v)m(ok)m(ed)40 b(with)g(unequal)h
-(e\013ectiv)m(e)e(and)i(real)g Fg(uid/gid)p Fk(s)150
-4522 y Fu(If)34 b(Bash)h(is)g(started)g(with)f(the)h(e\013ectiv)m(e)i
-(user)d(\(group\))h(id)f(not)h(equal)g(to)g(the)g(real)g(user)f
-(\(group\))h(id,)150 4631 y(and)26 b(the)i Ft(-p)e Fu(option)h(is)g
-(not)h(supplied,)e(no)h(startup)g(\014les)g(are)g(read,)h(shell)f
-(functions)g(are)g(not)g(inherited)150 4741 y(from)41
-b(the)g(en)m(vironmen)m(t,)j(the)d Ft(SHELLOPTS)p Fu(,)h
-Ft(BASHOPTS)p Fu(,)g Ft(CDPATH)p Fu(,)g(and)e Ft(GLOBIGNORE)e
-Fu(v)-5 b(ariables,)45 b(if)150 4850 y(they)28 b(app)s(ear)f(in)h(the)g
-(en)m(vironmen)m(t,)i(are)e(ignored,)h(and)e(the)h(e\013ectiv)m(e)j
-(user)c(id)h(is)g(set)g(to)h(the)f(real)h(user)150 4960
-y(id.)62 b(If)38 b(the)f Ft(-p)h Fu(option)g(is)f(supplied)g(at)h(in)m
-(v)m(o)s(cation,)k(the)c(startup)f(b)s(eha)m(vior)h(is)g(the)g(same,)i
-(but)d(the)150 5070 y(e\013ectiv)m(e)c(user)d(id)g(is)g(not)h(reset.)
-150 5324 y Fs(6.3)68 b(In)l(teractiv)l(e)47 b(Shells)p
-eop end
-%%Page: 90 96
-TeXDict begin 90 95 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(90)150 299 y Fk(6.3.1)63
+(a)150 3618 y(net)m(w)m(ork)29 b(connection,)g(as)f(when)f(executed)i
+(b)m(y)e(the)h(historical)h(remote)g(shell)f(daemon,)g(usually)g
+Ft(rshd)p Fu(,)150 3728 y(or)e(the)g(secure)g(shell)g(daemon)f
+Ft(sshd)p Fu(.)38 b(If)26 b(Bash)g(determines)f(it)i(is)e(b)s(eing)h
+(run)e(non-in)m(teractiv)m(ely)29 b(in)c(this)150 3837
+y(fashion,)i(it)g(reads)e(and)h(executes)h(commands)f(from)f
+Ft(~/.bashrc)p Fu(,)g(if)h(that)h(\014le)f(exists)h(and)e(is)h
+(readable.)150 3947 y(It)g(will)f(not)h(do)g(this)f(if)g(in)m(v)m(ok)m
+(ed)i(as)f Ft(sh)p Fu(.)39 b(The)25 b Ft(--norc)e Fu(option)j(ma)m(y)g
+(b)s(e)f(used)g(to)h(inhibit)f(this)h(b)s(eha)m(vior,)150
+4057 y(and)g(the)h Ft(--rcfile)e Fu(option)j(ma)m(y)f(b)s(e)f(used)g
+(to)i(force)g(another)f(\014le)g(to)g(b)s(e)g(read,)h(but)e(neither)h
+Ft(rshd)e Fu(nor)150 4166 y Ft(sshd)k Fu(generally)j(in)m(v)m(ok)m(e)g
+(the)f(shell)f(with)g(those)h(options)g(or)f(allo)m(w)i(them)e(to)i(b)s
+(e)d(sp)s(eci\014ed.)150 4375 y Fk(In)m(v)m(ok)m(ed)40
+b(with)g(unequal)h(e\013ectiv)m(e)e(and)i(real)g Fg(uid/gid)p
+Fk(s)150 4522 y Fu(If)34 b(Bash)h(is)g(started)g(with)f(the)h
+(e\013ectiv)m(e)i(user)d(\(group\))h(id)f(not)h(equal)g(to)g(the)g
+(real)g(user)f(\(group\))h(id,)150 4631 y(and)26 b(the)i
+Ft(-p)e Fu(option)h(is)g(not)h(supplied,)e(no)h(startup)g(\014les)g
+(are)g(read,)h(shell)f(functions)g(are)g(not)g(inherited)150
+4741 y(from)41 b(the)g(en)m(vironmen)m(t,)j(the)d Ft(SHELLOPTS)p
+Fu(,)h Ft(BASHOPTS)p Fu(,)g Ft(CDPATH)p Fu(,)g(and)e
+Ft(GLOBIGNORE)e Fu(v)-5 b(ariables,)45 b(if)150 4850
+y(they)28 b(app)s(ear)f(in)h(the)g(en)m(vironmen)m(t,)i(are)e(ignored,)
+h(and)e(the)h(e\013ectiv)m(e)j(user)c(id)h(is)g(set)g(to)h(the)f(real)h
+(user)150 4960 y(id.)62 b(If)38 b(the)f Ft(-p)h Fu(option)g(is)f
+(supplied)g(at)h(in)m(v)m(o)s(cation,)k(the)c(startup)f(b)s(eha)m(vior)
+h(is)g(the)g(same,)i(but)d(the)150 5070 y(e\013ectiv)m(e)c(user)d(id)g
+(is)g(not)h(reset.)150 5324 y Fs(6.3)68 b(In)l(teractiv)l(e)47
+b(Shells)p eop end
+%%Page: 95 101
+TeXDict begin 95 100 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(95)150 299 y Fk(6.3.1)63
b(What)40 b(is)h(an)g(In)m(teractiv)m(e)e(Shell?)150
-446 y Fu(An)g(in)m(teractiv)m(e)k(shell)d(is)g(one)g(started)g(without)
-g(non-option)g(argumen)m(ts,)j(unless)c Ft(-s)h Fu(is)f(sp)s
-(eci\014ed,)150 555 y(without)30 b(sp)s(ecifying)g(the)g
-Ft(-c)f Fu(option,)h(and)g(whose)f(input)g(and)g(error)h(output)f(are)h
-(b)s(oth)f(connected)i(to)150 665 y(terminals)g(\(as)g(determined)f(b)m
-(y)g Ft(isatty\(3\))p Fu(\),)e(or)j(one)f(started)h(with)f(the)h
+446 y Fu(An)f(in)m(teractiv)m(e)j(shell)e(is)f(one)h(started)g(without)
+f(non-option)g(argumen)m(ts)h(\(unless)f Ft(-s)g Fu(is)g(sp)s
+(eci\014ed\))150 555 y(and)29 b(without)h(sp)s(ecifying)g(the)g
+Ft(-c)f Fu(option,)i(whose)e(input)g(and)g(error)h(output)f(are)h(b)s
+(oth)f(connected)i(to)150 665 y(terminals)g(\(as)g(determined)f(b)m(y)g
+Ft(isatty\(3\))p Fu(\),)e(or)j(one)f(started)h(with)f(the)h
Ft(-i)f Fu(option.)275 808 y(An)g(in)m(teractiv)m(e)j(shell)d
(generally)i(reads)e(from)g(and)g(writes)g(to)h(a)g(user's)f(terminal.)
275 952 y(The)i Ft(-s)g Fu(in)m(v)m(o)s(cation)j(option)f(ma)m(y)f(b)s
@@ -14634,8 +15001,8 @@ b(Shell)k(Beha)m(vior)150 3187 y Fu(When)30 b(the)h(shell)f(is)h
(eha)m(vior)f(in)g(sev)m(eral)i(w)m(a)m(ys.)199 3330
y(1.)61 b(Startup)37 b(\014les)g(are)h(read)f(and)g(executed)h(as)f
(describ)s(ed)g(in)g(Section)h(6.2)g([Bash)g(Startup)e(Files],)330
-3440 y(page)31 b(88.)199 3579 y(2.)61 b(Job)32 b(Con)m(trol)h(\(see)g
-(Chapter)e(7)i([Job)f(Con)m(trol],)i(page)f(107\))h(is)e(enabled)g(b)m
+3440 y(page)31 b(93.)199 3579 y(2.)61 b(Job)32 b(Con)m(trol)h(\(see)g
+(Chapter)e(7)i([Job)f(Con)m(trol],)i(page)f(113\))h(is)e(enabled)g(b)m
(y)g(default.)46 b(When)32 b(job)330 3689 y(con)m(trol)j(is)f(in)f
(e\013ect,)k(Bash)d(ignores)g(the)g(k)m(eyb)s(oard-generated)h(job)e
(con)m(trol)i(signals)g Ft(SIGTTIN)p Fu(,)330 3798 y
@@ -14646,1260 +15013,1377 @@ Fu(b)s(efore)h(reading)h(the)f(\014rst)g(line)h(of)f(a)h(command,)h
Fu(b)s(efore)h(reading)g(the)g(second)g(and)f(subsequen)m(t)g(lines)i
(of)f(a)g(m)m(ulti-line)h(com-)330 4156 y(mand.)42 b(Bash)31
b(expands)f(and)h(displa)m(ys)g Ft(PS0)f Fu(after)h(it)h(reads)f(a)g
-(command)g(but)f(b)s(efore)h(executing)330 4266 y(it.)62
-b(See)38 b(Section)g(6.9)h([Con)m(trolling)g(the)e(Prompt],)j(page)e
-(98,)i(for)d(a)h(complete)h(list)f(of)g(prompt)330 4375
+(command)g(but)f(b)s(efore)h(executing)330 4266 y(it.)54
+b(See)35 b(Section)h(6.9)f([Con)m(trolling)i(the)d(Prompt],)i(page)g
+(104,)h(for)d(a)h(complete)i(list)e(of)g(prompt)330 4375
y(string)30 b(escap)s(e)h(sequences.)199 4514 y(4.)61
-b(Bash)28 b(executes)h(the)e(v)-5 b(alues)28 b(of)g(the)g(set)g(elemen)
-m(ts)h(of)f(the)g Ft(PROMPT_COMMANDS)23 b Fu(arra)m(y)28
-b(v)-5 b(ariable)29 b(as)330 4624 y(commands)e(b)s(efore)f(prin)m(ting)
-h(the)g(primary)g(prompt,)g Ft($PS1)f Fu(\(see)i(Section)f(5.2)i([Bash)
-e(V)-8 b(ariables],)330 4733 y(page)31 b(73\).)199 4872
+b(Bash)31 b(executes)i(the)e(v)-5 b(alues)32 b(of)g(the)f(set)h(elemen)
+m(ts)g(of)g(the)f Ft(PROMPT_COMMAND)d Fu(arra)m(y)k(v)-5
+b(ariable)32 b(as)330 4624 y(commands)27 b(b)s(efore)f(prin)m(ting)h
+(the)g(primary)g(prompt,)g Ft($PS1)f Fu(\(see)i(Section)f(5.2)i([Bash)e
+(V)-8 b(ariables],)330 4733 y(page)31 b(78\).)199 4872
y(5.)61 b(Readline)27 b(\(see)g(Chapter)e(8)h([Command)g(Line)g
-(Editing],)h(page)g(111\))g(is)f(used)g(to)g(read)g(commands)330
+(Editing],)h(page)g(117\))g(is)f(used)g(to)g(read)g(commands)330
4982 y(from)k(the)g(user's)g(terminal.)199 5121 y(6.)61
b(Bash)36 b(insp)s(ects)g(the)h(v)-5 b(alue)37 b(of)f(the)g
Ft(ignoreeof)e Fu(option)j(to)g Ft(set)29 b(-o)36 b Fu(instead)h(of)f
(exiting)i(imme-)330 5230 y(diately)f(when)e(it)i(receiv)m(es)h(an)e
Ft(EOF)f Fu(on)h(its)g(standard)f(input)g(when)h(reading)g(a)g(command)
g(\(see)330 5340 y(Section)31 b(4.3.1)h([The)e(Set)h(Builtin],)g(page)g
-(62\).)p eop end
-%%Page: 91 97
-TeXDict begin 91 96 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(91)199 299 y(7.)61
+(67\).)p eop end
+%%Page: 96 102
+TeXDict begin 96 101 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(96)199 299 y(7.)61
b(Command)43 b(history)h(\(see)h(Section)g(9.1)g([Bash)f(History)h(F)-8
-b(acilities],)51 b(page)45 b(146\))h(and)d(history)330
+b(acilities],)51 b(page)45 b(152\))h(and)d(history)330
408 y(expansion)h(\(see)i(Section)f(9.3)h([History)g(In)m(teraction],)k
-(page)45 b(148\))h(are)f(enabled)g(b)m(y)f(default.)330
+(page)45 b(154\))h(are)f(enabled)g(b)m(y)f(default.)330
518 y(Bash)28 b(will)g(sa)m(v)m(e)h(the)f(command)f(history)h(to)g(the)
g(\014le)g(named)f(b)m(y)h Ft($HISTFILE)d Fu(when)h(a)i(shell)g(with)
330 628 y(history)i(enabled)h(exits.)199 762 y(8.)61
b(Alias)31 b(expansion)g(\(see)g(Section)g(6.6)g([Aliases],)i(page)e
-(94\))h(is)e(p)s(erformed)f(b)m(y)h(default.)199 896
+(100\))h(is)e(p)s(erformed)f(b)m(y)h(default.)199 896
y(9.)61 b(In)24 b(the)g(absence)h(of)f(an)m(y)h(traps,)g(Bash)g
(ignores)f Ft(SIGTERM)f Fu(\(see)i(Section)g(3.7.6)h([Signals],)g(page)
-f(42\).)154 1030 y(10.)61 b(In)29 b(the)g(absence)h(of)g(an)m(y)g
+f(45\).)154 1030 y(10.)61 b(In)29 b(the)g(absence)h(of)g(an)m(y)g
(traps,)f Ft(SIGINT)f Fu(is)h(caugh)m(t)i(and)e(handled)f(\(see)j
-(Section)f(3.7.6)h([Signals],)330 1140 y(page)g(42\).)42
+(Section)f(3.7.6)h([Signals],)330 1140 y(page)g(45\).)42
b Ft(SIGINT)29 b Fu(will)h(in)m(terrupt)g(some)h(shell)g(builtins.)154
1274 y(11.)61 b(An)40 b(in)m(teractiv)m(e)j(login)e(shell)g(sends)e(a)i
Ft(SIGHUP)d Fu(to)j(all)g(jobs)f(on)g(exit)h(if)g(the)f
Ft(huponexit)e Fu(shell)330 1383 y(option)31 b(has)f(b)s(een)g(enabled)
-g(\(see)h(Section)g(3.7.6)i([Signals],)e(page)g(42\).)154
+g(\(see)h(Section)g(3.7.6)i([Signals],)e(page)g(45\).)154
1517 y(12.)61 b(The)29 b Ft(-n)g Fu(in)m(v)m(o)s(cation)j(option)e(is)g
(ignored,)g(and)f(`)p Ft(set)h(-n)p Fu(')f(has)h(no)f(e\013ect)j(\(see)
-e(Section)h(4.3.1)g([The)330 1627 y(Set)g(Builtin],)g(page)g(62\).)154
+e(Section)h(4.3.1)g([The)330 1627 y(Set)g(Builtin],)g(page)g(67\).)154
1761 y(13.)61 b(Bash)32 b(will)g(c)m(hec)m(k)i(for)e(mail)g(p)s(erio)s
(dically)-8 b(,)34 b(dep)s(ending)c(on)i(the)g(v)-5 b(alues)32
b(of)g(the)h Ft(MAIL)p Fu(,)e Ft(MAILPATH)p Fu(,)330
1871 y(and)f Ft(MAILCHECK)e Fu(shell)i(v)-5 b(ariables)31
b(\(see)h(Section)f(5.2)g([Bash)g(V)-8 b(ariables],)32
-b(page)f(73\).)154 2005 y(14.)61 b(Expansion)32 b(errors)h(due)f(to)i
+b(page)f(78\).)154 2005 y(14.)61 b(Expansion)32 b(errors)h(due)f(to)i
(references)f(to)h(un)m(b)s(ound)c(shell)j(v)-5 b(ariables)34
b(after)g(`)p Ft(set)29 b(-u)p Fu(')k(has)g(b)s(een)330
2114 y(enabled)d(will)h(not)g(cause)g(the)f(shell)h(to)g(exit)g(\(see)g
-(Section)h(4.3.1)g([The)e(Set)h(Builtin],)g(page)g(62\).)154
+(Section)h(4.3.1)g([The)e(Set)h(Builtin],)g(page)g(67\).)154
2248 y(15.)61 b(The)48 b(shell)h(will)f(not)h(exit)g(on)g(expansion)f
(errors)g(caused)g(b)m(y)h Fr(v)-5 b(ar)54 b Fu(b)s(eing)48
b(unset)g(or)h(n)m(ull)f(in)330 2358 y Ft(${)p Fj(var)p
Ft(:?)p Fj(word)p Ft(})27 b Fu(expansions)j(\(see)h(Section)h(3.5.3)g
-([Shell)e(P)m(arameter)i(Expansion],)e(page)h(25\).)154
+([Shell)e(P)m(arameter)i(Expansion],)e(page)h(26\).)154
2492 y(16.)61 b(Redirection)31 b(errors)f(encoun)m(tered)h(b)m(y)f
(shell)h(builtins)f(will)g(not)h(cause)g(the)f(shell)h(to)g(exit.)154
2626 y(17.)61 b(When)26 b(running)f(in)i Fm(posix)e Fu(mo)s(de,)j(a)f
(sp)s(ecial)g(builtin)f(returning)g(an)g(error)h(status)g(will)g(not)f
(cause)330 2736 y(the)31 b(shell)f(to)h(exit)h(\(see)f(Section)g(6.11)h
-([Bash)f(POSIX)e(Mo)s(de],)i(page)g(101\).)154 2870 y(18.)61
+([Bash)f(POSIX)e(Mo)s(de],)i(page)g(106\).)154 2870 y(18.)61
b(A)34 b(failed)g Ft(exec)f Fu(will)h(not)g(cause)g(the)g(shell)g(to)g
(exit)h(\(see)f(Section)h(4.1)g([Bourne)f(Shell)f(Builtins],)330
-2980 y(page)e(44\).)154 3114 y(19.)61 b(P)m(arser)31
+2980 y(page)e(48\).)154 3114 y(19.)61 b(P)m(arser)31
b(syn)m(tax)f(errors)g(will)h(not)g(cause)g(the)f(shell)h(to)g(exit.)
-154 3248 y(20.)61 b(Simple)21 b(sp)s(elling)h(correction)g(for)g
-(directory)g(argumen)m(ts)f(to)i(the)e Ft(cd)g Fu(builtin)g(is)h
-(enabled)f(b)m(y)h(default)330 3357 y(\(see)35 b(the)g(description)f
-(of)h(the)f Ft(cdspell)f Fu(option)h(to)i(the)e Ft(shopt)f
-Fu(builtin)h(in)g(Section)h(4.3.2)h([The)330 3467 y(Shopt)30
-b(Builtin],)h(page)g(66\).)154 3601 y(21.)61 b(The)42
-b(shell)h(will)g(c)m(hec)m(k)h(the)f(v)-5 b(alue)43 b(of)f(the)h
-Ft(TMOUT)e Fu(v)-5 b(ariable)44 b(and)e(exit)h(if)g(a)g(command)f(is)h
-(not)330 3711 y(read)30 b(within)g(the)g(sp)s(eci\014ed)f(n)m(um)m(b)s
-(er)g(of)i(seconds)f(after)g(prin)m(ting)g Ft($PS1)f
-Fu(\(see)i(Section)g(5.2)h([Bash)330 3820 y(V)-8 b(ariables],)32
-b(page)f(73\).)150 4060 y Fs(6.4)68 b(Bash)45 b(Conditional)h
-(Expressions)150 4220 y Fu(Conditional)26 b(expressions)g(are)g(used)f
-(b)m(y)g(the)h Ft([[)f Fu(comp)s(ound)g(command)g(and)g(the)h
-Ft(test)f Fu(and)g Ft([)g Fu(builtin)150 4329 y(commands.)50
-b(The)33 b Ft(test)g Fu(and)f Ft([)i Fu(commands)f(determine)h(their)f
-(b)s(eha)m(vior)h(based)f(on)h(the)f(n)m(um)m(b)s(er)g(of)150
-4439 y(argumen)m(ts;)28 b(see)f(the)f(descriptions)g(of)g(those)g
-(commands)g(for)g(an)m(y)g(other)h(command-sp)s(eci\014c)e(actions.)275
-4573 y(Expressions)d(ma)m(y)h(b)s(e)g(unary)f(or)h(binary)-8
+154 3248 y(20.)61 b(If)28 b(the)g Ft(cdspell)f Fu(shell)h(option)h(is)g
+(enabled,)g(the)f(shell)h(will)f(attempt)i(simple)e(sp)s(elling)h
+(correction)330 3357 y(for)f(directory)h(argumen)m(ts)g(to)g(the)g
+Ft(cd)e Fu(builtin)h(\(see)i(the)e(description)h(of)f(the)h
+Ft(cdspell)d Fu(option)j(to)330 3467 y(the)j Ft(shopt)e
+Fu(builtin)h(in)h(Section)g(4.3.2)i([The)d(Shopt)g(Builtin],)i(page)g
+(71\).)46 b(The)31 b Ft(cdspell)e Fu(option)330 3576
+y(is)h(only)h(e\013ectiv)m(e)i(in)d(in)m(teractiv)m(e)j(shells.)154
+3711 y(21.)61 b(The)42 b(shell)h(will)g(c)m(hec)m(k)h(the)f(v)-5
+b(alue)43 b(of)f(the)h Ft(TMOUT)e Fu(v)-5 b(ariable)44
+b(and)e(exit)h(if)g(a)g(command)f(is)h(not)330 3820 y(read)30
+b(within)g(the)g(sp)s(eci\014ed)f(n)m(um)m(b)s(er)g(of)i(seconds)f
+(after)g(prin)m(ting)g Ft($PS1)f Fu(\(see)i(Section)g(5.2)h([Bash)330
+3930 y(V)-8 b(ariables],)32 b(page)f(78\).)150 4170 y
+Fs(6.4)68 b(Bash)45 b(Conditional)h(Expressions)150 4329
+y Fu(Conditional)25 b(expressions)f(are)g(used)g(b)m(y)g(the)g
+Ft([[)g Fu(comp)s(ound)e(command)i(\(see)h(Section)g(3.2.5.2)i([Condi-)
+150 4439 y(tional)h(Constructs],)g(page)f(12\))h(and)e(the)h
+Ft(test)f Fu(and)g Ft([)h Fu(builtin)f(commands)h(\(see)g(Section)h
+(4.1)g([Bourne)150 4548 y(Shell)37 b(Builtins],)j(page)e(48\).)63
+b(The)36 b Ft(test)g Fu(and)h Ft([)g Fu(commands)g(determine)g(their)h
+(b)s(eha)m(vior)f(based)g(on)150 4658 y(the)29 b(n)m(um)m(b)s(er)f(of)h
+(argumen)m(ts;)h(see)f(the)h(descriptions)e(of)i(those)f(commands)g
+(for)f(an)m(y)i(other)f(command-)150 4768 y(sp)s(eci\014c)h(actions.)
+275 4902 y(Expressions)22 b(ma)m(y)h(b)s(e)g(unary)f(or)h(binary)-8
b(,)24 b(and)f(are)g(formed)g(from)g(the)g(follo)m(wing)h(primaries.)38
-b(Unary)150 4682 y(expressions)c(are)g(often)g(used)g(to)g(examine)h
+b(Unary)150 5011 y(expressions)c(are)g(often)g(used)g(to)g(examine)h
(the)f(status)g(of)h(a)f(\014le.)52 b(There)33 b(are)h(string)g(op)s
-(erators)h(and)150 4792 y(n)m(umeric)c(comparison)g(op)s(erators)h(as)f
+(erators)h(and)150 5121 y(n)m(umeric)c(comparison)g(op)s(erators)h(as)f
(w)m(ell.)44 b(Bash)31 b(handles)g(sev)m(eral)h(\014lenames)g(sp)s
-(ecially)g(when)e(they)150 4902 y(are)35 b(used)e(in)i(expressions.)52
+(ecially)g(when)e(they)150 5230 y(are)35 b(used)e(in)i(expressions.)52
b(If)34 b(the)h(op)s(erating)f(system)h(on)f(whic)m(h)g(Bash)h(is)f
-(running)f(pro)m(vides)h(these)150 5011 y(sp)s(ecial)22
+(running)f(pro)m(vides)h(these)150 5340 y(sp)s(ecial)22
b(\014les,)i(Bash)e(will)g(use)f(them;)k(otherwise)d(it)g(will)g(em)m
-(ulate)h(them)f(in)m(ternally)h(with)e(this)h(b)s(eha)m(vior:)150
-5121 y(If)27 b(the)g Fr(\014le)33 b Fu(argumen)m(t)27
-b(to)h(one)g(of)f(the)h(primaries)f(is)g(of)h(the)f(form)g
-Ft(/dev/fd/)p Fj(N)p Fu(,)e(then)i(\014le)h(descriptor)f
-Fr(N)150 5230 y Fu(is)g(c)m(hec)m(k)m(ed.)42 b(If)26
-b(the)h Fr(\014le)32 b Fu(argumen)m(t)c(to)f(one)h(of)f(the)g
-(primaries)f(is)h(one)h(of)f Ft(/dev/stdin)p Fu(,)e Ft(/dev/stdout)p
-Fu(,)150 5340 y(or)30 b Ft(/dev/stderr)p Fu(,)e(\014le)i(descriptor)h
-(0,)g(1,)g(or)f(2,)h(resp)s(ectiv)m(ely)-8 b(,)32 b(is)f(c)m(hec)m(k)m
-(ed.)p eop end
-%%Page: 92 98
-TeXDict begin 92 97 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(92)275 299 y(When)37
-b(used)g(with)g Ft([[)p Fu(,)i(the)f(`)p Ft(<)p Fu(')g(and)f(`)p
-Ft(>)p Fu(')h(op)s(erators)g(sort)g(lexicographically)i(using)d(the)h
-(curren)m(t)150 408 y(lo)s(cale.)k(The)30 b Ft(test)f
-Fu(command)i(uses)f(ASCI)s(I)e(ordering.)275 542 y(Unless)44
-b(otherwise)h(sp)s(eci\014ed,)j(primaries)c(that)h(op)s(erate)g(on)g
-(\014les)f(follo)m(w)i(sym)m(b)s(olic)f(links)g(and)150
-651 y(op)s(erate)31 b(on)f(the)h(target)h(of)e(the)h(link,)f(rather)h
-(than)f(the)g(link)h(itself.)150 808 y Ft(-a)f Fj(file)162
-b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36 b Fu(exists.)150
-965 y Ft(-b)30 b Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
-Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(a)h(blo)s(c)m(k)g(sp)s(ecial)g
-(\014le.)150 1122 y Ft(-c)f Fj(file)162 b Fu(T)-8 b(rue)30
-b(if)g Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(a)h(c)m(haracter)h(sp)s
-(ecial)f(\014le.)150 1279 y Ft(-d)f Fj(file)162 b Fu(T)-8
-b(rue)30 b(if)g Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(a)h(directory)
--8 b(.)150 1436 y Ft(-e)30 b Fj(file)162 b Fu(T)-8 b(rue)30
-b(if)g Fr(\014le)36 b Fu(exists.)150 1592 y Ft(-f)30
+(ulate)h(them)f(in)m(ternally)h(with)e(this)h(b)s(eha)m(vior:)p
+eop end
+%%Page: 97 103
+TeXDict begin 97 102 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(97)150 299 y(If)27
+b(the)g Fr(\014le)33 b Fu(argumen)m(t)27 b(to)h(one)g(of)f(the)h
+(primaries)f(is)g(of)h(the)f(form)g Ft(/dev/fd/)p Fj(N)p
+Fu(,)e(then)i(\014le)h(descriptor)f Fr(N)150 408 y Fu(is)g(c)m(hec)m(k)
+m(ed.)42 b(If)26 b(the)h Fr(\014le)32 b Fu(argumen)m(t)c(to)f(one)h(of)
+f(the)g(primaries)f(is)h(one)h(of)f Ft(/dev/stdin)p Fu(,)e
+Ft(/dev/stdout)p Fu(,)150 518 y(or)30 b Ft(/dev/stderr)p
+Fu(,)e(\014le)i(descriptor)h(0,)g(1,)g(or)f(2,)h(resp)s(ectiv)m(ely)-8
+b(,)32 b(is)f(c)m(hec)m(k)m(ed.)275 655 y(When)37 b(used)g(with)g
+Ft([[)p Fu(,)i(the)f(`)p Ft(<)p Fu(')g(and)f(`)p Ft(>)p
+Fu(')h(op)s(erators)g(sort)g(lexicographically)i(using)d(the)h(curren)m
+(t)150 765 y(lo)s(cale.)k(The)30 b Ft(test)f Fu(command)i(uses)f(ASCI)s
+(I)e(ordering.)275 902 y(Unless)44 b(otherwise)h(sp)s(eci\014ed,)j
+(primaries)c(that)h(op)s(erate)g(on)g(\014les)f(follo)m(w)i(sym)m(b)s
+(olic)f(links)g(and)150 1011 y(op)s(erate)31 b(on)f(the)h(target)h(of)e
+(the)h(link,)f(rather)h(than)f(the)g(link)h(itself.)150
+1175 y Ft(-a)f Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
+Fr(\014le)36 b Fu(exists.)150 1337 y Ft(-b)30 b Fj(file)162
+b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36 b Fu(exists)31
+b(and)f(is)g(a)h(blo)s(c)m(k)g(sp)s(ecial)g(\014le.)150
+1499 y Ft(-c)f Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
+Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(a)h(c)m(haracter)h(sp)s(ecial)
+f(\014le.)150 1661 y Ft(-d)f Fj(file)162 b Fu(T)-8 b(rue)30
+b(if)g Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(a)h(directory)-8
+b(.)150 1823 y Ft(-e)30 b Fj(file)162 b Fu(T)-8 b(rue)30
+b(if)g Fr(\014le)36 b Fu(exists.)150 1985 y Ft(-f)30
b Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36
b Fu(exists)31 b(and)f(is)g(a)h(regular)f(\014le.)150
-1749 y Ft(-g)g Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
+2147 y Ft(-g)g Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
Fr(\014le)36 b Fu(exists)31 b(and)f(its)g(set-group-id)h(bit)g(is)f
-(set.)150 1906 y Ft(-h)g Fj(file)162 b Fu(T)-8 b(rue)30
+(set.)150 2309 y Ft(-h)g Fj(file)162 b Fu(T)-8 b(rue)30
b(if)g Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(a)h(sym)m(b)s(olic)g
-(link.)150 2063 y Ft(-k)f Fj(file)162 b Fu(T)-8 b(rue)30
+(link.)150 2471 y Ft(-k)f Fj(file)162 b Fu(T)-8 b(rue)30
b(if)g Fr(\014le)36 b Fu(exists)31 b(and)f(its)g Ft(")p
-Fu(stic)m(ky)p Ft(")h Fu(bit)g(is)f(set.)150 2220 y Ft(-p)g
+Fu(stic)m(ky)p Ft(")h Fu(bit)g(is)f(set.)150 2633 y Ft(-p)g
Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36 b
Fu(exists)31 b(and)f(is)g(a)h(named)f(pip)s(e)f(\(FIF)m(O\).)150
-2377 y Ft(-r)h Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
+2795 y Ft(-r)h Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(readable.)150
-2534 y Ft(-s)g Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
+2957 y Ft(-s)g Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
Fr(\014le)36 b Fu(exists)31 b(and)f(has)g(a)g(size)i(greater)f(than)f
-(zero.)150 2690 y Ft(-t)g Fj(fd)258 b Fu(T)-8 b(rue)30
+(zero.)150 3119 y Ft(-t)g Fj(fd)258 b Fu(T)-8 b(rue)30
b(if)g(\014le)h(descriptor)f Fr(fd)j Fu(is)e(op)s(en)e(and)h(refers)g
-(to)h(a)g(terminal.)150 2847 y Ft(-u)f Fj(file)162 b
+(to)h(a)g(terminal.)150 3281 y Ft(-u)f Fj(file)162 b
Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36 b Fu(exists)31 b(and)f(its)g
-(set-user-id)h(bit)f(is)h(set.)150 3004 y Ft(-w)f Fj(file)162
+(set-user-id)h(bit)f(is)h(set.)150 3443 y Ft(-w)f Fj(file)162
b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36 b Fu(exists)31
-b(and)f(is)g(writable.)150 3161 y Ft(-x)g Fj(file)162
+b(and)f(is)g(writable.)150 3605 y Ft(-x)g Fj(file)162
b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36 b Fu(exists)31
-b(and)f(is)g(executable.)150 3318 y Ft(-G)g Fj(file)162
+b(and)f(is)g(executable.)150 3767 y Ft(-G)g Fj(file)162
b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36 b Fu(exists)31
b(and)f(is)g(o)m(wned)g(b)m(y)h(the)f(e\013ectiv)m(e)j(group)d(id.)150
-3475 y Ft(-L)g Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
+3929 y Ft(-L)g Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(a)h(sym)m(b)s(olic)g(link.)150
-3632 y Ft(-N)f Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
+4091 y Ft(-N)f Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g
Fr(\014le)36 b Fu(exists)31 b(and)f(has)g(b)s(een)f(mo)s(di\014ed)h
-(since)g(it)h(w)m(as)g(last)g(read.)150 3789 y Ft(-O)f
+(since)g(it)h(w)m(as)g(last)g(read.)150 4253 y Ft(-O)f
Fj(file)162 b Fu(T)-8 b(rue)30 b(if)g Fr(\014le)36 b
Fu(exists)31 b(and)f(is)g(o)m(wned)g(b)m(y)h(the)f(e\013ectiv)m(e)j
-(user)d(id.)150 3945 y Ft(-S)g Fj(file)162 b Fu(T)-8
+(user)d(id.)150 4416 y Ft(-S)g Fj(file)162 b Fu(T)-8
b(rue)30 b(if)g Fr(\014le)36 b Fu(exists)31 b(and)f(is)g(a)h(so)s(c)m
-(k)m(et.)150 4102 y Fj(file1)e Ft(-ef)g Fj(file2)630
-4212 y Fu(T)-8 b(rue)30 b(if)g Fr(\014le1)38 b Fu(and)30
+(k)m(et.)150 4578 y Fj(file1)e Ft(-ef)g Fj(file2)630
+4687 y Fu(T)-8 b(rue)30 b(if)g Fr(\014le1)38 b Fu(and)30
b Fr(\014le2)38 b Fu(refer)30 b(to)i(the)e(same)h(device)g(and)f(ino)s
-(de)g(n)m(um)m(b)s(ers.)150 4369 y Fj(file1)f Ft(-nt)g
-Fj(file2)630 4478 y Fu(T)-8 b(rue)23 b(if)h Fr(\014le1)32
+(de)g(n)m(um)m(b)s(ers.)150 4849 y Fj(file1)f Ft(-nt)g
+Fj(file2)630 4959 y Fu(T)-8 b(rue)23 b(if)h Fr(\014le1)32
b Fu(is)24 b(new)m(er)g(\(according)h(to)g(mo)s(di\014cation)f(date\))h
(than)f Fr(\014le2)p Fu(,)i(or)e(if)g Fr(\014le1)31 b
-Fu(exists)630 4588 y(and)f Fr(\014le2)38 b Fu(do)s(es)30
-b(not.)150 4745 y Fj(file1)f Ft(-ot)g Fj(file2)630 4854
+Fu(exists)630 5068 y(and)f Fr(\014le2)38 b Fu(do)s(es)30
+b(not.)150 5230 y Fj(file1)f Ft(-ot)g Fj(file2)630 5340
y Fu(T)-8 b(rue)30 b(if)g Fr(\014le1)38 b Fu(is)31 b(older)f(than)g
Fr(\014le2)p Fu(,)i(or)e(if)g Fr(\014le2)38 b Fu(exists)31
-b(and)f Fr(\014le1)38 b Fu(do)s(es)30 b(not.)150 5011
-y Ft(-o)g Fj(optname)630 5121 y Fu(T)-8 b(rue)41 b(if)g(the)g(shell)h
-(option)f Fr(optname)47 b Fu(is)41 b(enabled.)73 b(The)41
-b(list)h(of)f(options)h(app)s(ears)e(in)630 5230 y(the)33
-b(description)h(of)f(the)g Ft(-o)g Fu(option)g(to)h(the)g
-Ft(set)e Fu(builtin)h(\(see)h(Section)g(4.3.1)h([The)e(Set)630
-5340 y(Builtin],)e(page)g(62\).)p eop end
-%%Page: 93 99
-TeXDict begin 93 98 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(93)150 299 y Ft(-v)30
-b Fj(varname)630 408 y Fu(T)-8 b(rue)30 b(if)g(the)h(shell)f(v)-5
-b(ariable)32 b Fr(v)-5 b(arname)35 b Fu(is)30 b(set)h(\(has)g(b)s(een)e
-(assigned)i(a)g(v)-5 b(alue\).)150 565 y Ft(-R)30 b Fj(varname)630
-674 y Fu(T)-8 b(rue)30 b(if)g(the)h(shell)f(v)-5 b(ariable)32
-b Fr(v)-5 b(arname)35 b Fu(is)30 b(set)h(and)f(is)h(a)f(name)h
-(reference.)150 830 y Ft(-z)f Fj(string)66 b Fu(T)-8
-b(rue)30 b(if)g(the)h(length)g(of)f Fr(string)38 b Fu(is)31
-b(zero.)150 987 y Ft(-n)f Fj(string)150 1096 y(string)192
-b Fu(T)-8 b(rue)30 b(if)g(the)h(length)g(of)f Fr(string)38
-b Fu(is)31 b(non-zero.)150 1252 y Fj(string1)d Ft(==)i
-Fj(string2)150 1362 y(string1)e Ft(=)i Fj(string2)630
-1472 y Fu(T)-8 b(rue)43 b(if)h(the)g(strings)g(are)g(equal.)82
-b(When)44 b(used)f(with)g(the)h Ft([[)g Fu(command,)j(this)d(p)s(er-)
-630 1581 y(forms)d(pattern)g(matc)m(hing)i(as)f(describ)s(ed)e(ab)s(o)m
-(v)m(e)j(\(see)f(Section)g(3.2.5.2)i([Conditional)630
-1691 y(Constructs],)30 b(page)h(11\).)630 1824 y(`)p
-Ft(=)p Fu(')g(should)e(b)s(e)h(used)f(with)h(the)h Ft(test)e
-Fu(command)h(for)g Fm(posix)g Fu(conformance.)150 1980
-y Fj(string1)e Ft(!=)i Fj(string2)630 2089 y Fu(T)-8
+b(and)f Fr(\014le1)38 b Fu(do)s(es)30 b(not.)p eop end
+%%Page: 98 104
+TeXDict begin 98 103 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(98)150 299 y Ft(-o)30
+b Fj(optname)630 408 y Fu(T)-8 b(rue)41 b(if)g(the)g(shell)h(option)f
+Fr(optname)47 b Fu(is)41 b(enabled.)73 b(The)41 b(list)h(of)f(options)h
+(app)s(ears)e(in)630 518 y(the)33 b(description)h(of)f(the)g
+Ft(-o)g Fu(option)g(to)h(the)g Ft(set)e Fu(builtin)h(\(see)h(Section)g
+(4.3.1)h([The)e(Set)630 628 y(Builtin],)e(page)g(67\).)150
+783 y Ft(-v)f Fj(varname)630 892 y Fu(T)-8 b(rue)30 b(if)g(the)h(shell)
+f(v)-5 b(ariable)32 b Fr(v)-5 b(arname)35 b Fu(is)30
+b(set)h(\(has)g(b)s(een)e(assigned)i(a)g(v)-5 b(alue\).)150
+1047 y Ft(-R)30 b Fj(varname)630 1157 y Fu(T)-8 b(rue)30
+b(if)g(the)h(shell)f(v)-5 b(ariable)32 b Fr(v)-5 b(arname)35
+b Fu(is)30 b(set)h(and)f(is)h(a)f(name)h(reference.)150
+1312 y Ft(-z)f Fj(string)66 b Fu(T)-8 b(rue)30 b(if)g(the)h(length)g
+(of)f Fr(string)38 b Fu(is)31 b(zero.)150 1467 y Ft(-n)f
+Fj(string)150 1576 y(string)192 b Fu(T)-8 b(rue)30 b(if)g(the)h(length)
+g(of)f Fr(string)38 b Fu(is)31 b(non-zero.)150 1731 y
+Fj(string1)d Ft(==)i Fj(string2)150 1841 y(string1)e
+Ft(=)i Fj(string2)630 1951 y Fu(T)-8 b(rue)43 b(if)h(the)g(strings)g
+(are)g(equal.)82 b(When)44 b(used)f(with)g(the)h Ft([[)g
+Fu(command,)j(this)d(p)s(er-)630 2060 y(forms)d(pattern)g(matc)m(hing)i
+(as)f(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)g(3.2.5.2)i
+([Conditional)630 2170 y(Constructs],)30 b(page)h(12\).)630
+2302 y(`)p Ft(=)p Fu(')g(should)e(b)s(e)h(used)f(with)h(the)h
+Ft(test)e Fu(command)h(for)g Fm(posix)g Fu(conformance.)150
+2457 y Fj(string1)e Ft(!=)i Fj(string2)630 2567 y Fu(T)-8
b(rue)30 b(if)g(the)h(strings)f(are)h(not)f(equal.)150
-2246 y Fj(string1)e Ft(<)i Fj(string2)630 2355 y Fu(T)-8
+2722 y Fj(string1)e Ft(<)i Fj(string2)630 2831 y Fu(T)-8
b(rue)30 b(if)g Fr(string1)38 b Fu(sorts)31 b(b)s(efore)f
-Fr(string2)38 b Fu(lexicographically)-8 b(.)150 2511
-y Fj(string1)28 b Ft(>)i Fj(string2)630 2621 y Fu(T)-8
+Fr(string2)38 b Fu(lexicographically)-8 b(.)150 2986
+y Fj(string1)28 b Ft(>)i Fj(string2)630 3096 y Fu(T)-8
b(rue)30 b(if)g Fr(string1)38 b Fu(sorts)31 b(after)g
-Fr(string2)38 b Fu(lexicographically)-8 b(.)150 2777
-y Fj(arg1)29 b Ft(OP)h Fj(arg2)630 2887 y Ft(OP)j Fu(is)h(one)g(of)h(`)
+Fr(string2)38 b Fu(lexicographically)-8 b(.)150 3251
+y Fj(arg1)29 b Ft(OP)h Fj(arg2)630 3361 y Ft(OP)j Fu(is)h(one)g(of)h(`)
p Ft(-eq)p Fu(',)f(`)p Ft(-ne)p Fu(',)h(`)p Ft(-lt)p
Fu(',)g(`)p Ft(-le)p Fu(',)f(`)p Ft(-gt)p Fu(',)h(or)f(`)p
Ft(-ge)p Fu('.)51 b(These)34 b(arithmetic)h(binary)630
-2996 y(op)s(erators)h(return)e(true)i(if)f Fr(arg1)44
+3470 y(op)s(erators)h(return)e(true)i(if)f Fr(arg1)44
b Fu(is)36 b(equal)g(to,)i(not)e(equal)g(to,)i(less)e(than,)h(less)f
-(than)f(or)630 3106 y(equal)29 b(to,)g(greater)h(than,)e(or)g(greater)i
+(than)f(or)630 3580 y(equal)29 b(to,)g(greater)h(than,)e(or)g(greater)i
(than)d(or)i(equal)f(to)h Fr(arg2)p Fu(,)h(resp)s(ectiv)m(ely)-8
-b(.)42 b Fr(Arg1)36 b Fu(and)630 3215 y Fr(arg2)41 b
+b(.)42 b Fr(Arg1)36 b Fu(and)630 3689 y Fr(arg2)41 b
Fu(ma)m(y)34 b(b)s(e)f(p)s(ositiv)m(e)h(or)f(negativ)m(e)j(in)m
(tegers.)50 b(When)33 b(used)g(with)g(the)g Ft([[)g Fu(command,)630
-3325 y Fr(Arg1)41 b Fu(and)33 b Fr(Arg2)41 b Fu(are)33
+3799 y Fr(Arg1)41 b Fu(and)33 b Fr(Arg2)41 b Fu(are)33
b(ev)-5 b(aluated)35 b(as)e(arithmetic)i(expressions)d(\(see)j(Section)
-f(6.5)g([Shell)630 3435 y(Arithmetic],)e(page)f(93\).)150
-3672 y Fs(6.5)68 b(Shell)45 b(Arithmetic)150 3832 y Fu(The)26
+f(6.5)g([Shell)630 3908 y(Arithmetic],)e(page)f(98\).)150
+4145 y Fs(6.5)68 b(Shell)45 b(Arithmetic)150 4304 y Fu(The)26
b(shell)h(allo)m(ws)h(arithmetic)f(expressions)g(to)g(b)s(e)f(ev)-5
b(aluated,)29 b(as)d(one)h(of)g(the)g(shell)f(expansions)h(or)f(b)m(y)
-150 3941 y(using)h(the)g Ft(\(\()g Fu(comp)s(ound)e(command,)j(the)g
+150 4414 y(using)h(the)g Ft(\(\()g Fu(comp)s(ound)e(command,)j(the)g
Ft(let)e Fu(builtin,)i(or)f(the)g Ft(-i)g Fu(option)h(to)f(the)h
-Ft(declare)d Fu(builtin.)275 4074 y(Ev)-5 b(aluation)27
+Ft(declare)d Fu(builtin.)275 4546 y(Ev)-5 b(aluation)27
b(is)g(done)f(in)g(\014xed-width)g(in)m(tegers)i(with)e(no)h(c)m(hec)m
(k)h(for)e(o)m(v)m(er\015o)m(w,)j(though)d(division)h(b)m(y)150
-4184 y(0)g(is)g(trapp)s(ed)f(and)h(\015agged)g(as)h(an)f(error.)39
+4656 y(0)g(is)g(trapp)s(ed)f(and)h(\015agged)g(as)h(an)f(error.)39
b(The)26 b(op)s(erators)h(and)g(their)g(precedence,)h(asso)s(ciativit)m
-(y)-8 b(,)32 b(and)150 4293 y(v)-5 b(alues)35 b(are)h(the)f(same)g(as)h
+(y)-8 b(,)32 b(and)150 4765 y(v)-5 b(alues)35 b(are)h(the)f(same)g(as)h
(in)e(the)h(C)g(language.)56 b(The)35 b(follo)m(wing)h(list)g(of)f(op)s
-(erators)g(is)g(group)s(ed)f(in)m(to)150 4403 y(lev)m(els)27
+(erators)g(is)g(group)s(ed)f(in)m(to)150 4875 y(lev)m(els)27
b(of)f(equal-precedence)i(op)s(erators.)39 b(The)25 b(lev)m(els)j(are)e
(listed)h(in)e(order)h(of)g(decreasing)g(precedence.)150
-4559 y Fj(id)p Ft(++)j Fj(id)p Ft(--)67 b Fu(v)-5 b(ariable)31
+5030 y Fj(id)p Ft(++)j Fj(id)p Ft(--)67 b Fu(v)-5 b(ariable)31
b(p)s(ost-incremen)m(t)g(and)f(p)s(ost-decremen)m(t)150
-4715 y Ft(++)p Fj(id)f Ft(--)p Fj(id)67 b Fu(v)-5 b(ariable)31
-b(pre-incremen)m(t)g(and)f(pre-decremen)m(t)150 4871
-y Ft(-)g(+)354 b Fu(unary)29 b(min)m(us)h(and)g(plus)150
-5028 y Ft(!)g(~)354 b Fu(logical)33 b(and)d(bit)m(wise)h(negation)150
-5184 y Ft(**)384 b Fu(exp)s(onen)m(tiation)150 5340 y
-Ft(*)30 b(/)g(\045)276 b Fu(m)m(ultiplication,)33 b(division,)d
-(remainder)p eop end
-%%Page: 94 100
-TeXDict begin 94 99 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(94)150 299 y Ft(+)30
-b(-)354 b Fu(addition,)31 b(subtraction)150 460 y Ft(<<)f(>>)258
-b Fu(left)31 b(and)f(righ)m(t)h(bit)m(wise)g(shifts)150
-620 y Ft(<=)f(>=)g(<)g(>)102 b Fu(comparison)150 781
-y Ft(==)30 b(!=)258 b Fu(equalit)m(y)32 b(and)e(inequalit)m(y)150
-942 y Ft(&)432 b Fu(bit)m(wise)31 b(AND)150 1103 y Ft(^)432
-b Fu(bit)m(wise)31 b(exclusiv)m(e)h(OR)150 1263 y Ft(|)432
-b Fu(bit)m(wise)31 b(OR)150 1424 y Ft(&&)384 b Fu(logical)33
-b(AND)150 1585 y Ft(||)384 b Fu(logical)33 b(OR)150 1746
-y Ft(expr)c(?)h(expr)f(:)h(expr)630 1855 y Fu(conditional)i(op)s
-(erator)150 2016 y Ft(=)e(*=)g(/=)g(\045=)f(+=)h(-=)g(<<=)f(>>=)h(&=)g
-(^=)f(|=)630 2126 y Fu(assignmen)m(t)150 2287 y Ft(expr1)g(,)h(expr2)
-630 2396 y Fu(comma)275 2558 y(Shell)38 b(v)-5 b(ariables)39
+5185 y Ft(++)p Fj(id)f Ft(--)p Fj(id)67 b Fu(v)-5 b(ariable)31
+b(pre-incremen)m(t)g(and)f(pre-decremen)m(t)150 5340
+y Ft(-)g(+)354 b Fu(unary)29 b(min)m(us)h(and)g(plus)p
+eop end
+%%Page: 99 105
+TeXDict begin 99 104 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2484 b(99)150 299 y Ft(!)30
+b(~)354 b Fu(logical)33 b(and)d(bit)m(wise)h(negation)150
+482 y Ft(**)384 b Fu(exp)s(onen)m(tiation)150 664 y Ft(*)30
+b(/)g(\045)276 b Fu(m)m(ultiplication,)33 b(division,)d(remainder)150
+847 y Ft(+)g(-)354 b Fu(addition,)31 b(subtraction)150
+1030 y Ft(<<)f(>>)258 b Fu(left)31 b(and)f(righ)m(t)h(bit)m(wise)g
+(shifts)150 1213 y Ft(<=)f(>=)g(<)g(>)102 b Fu(comparison)150
+1395 y Ft(==)30 b(!=)258 b Fu(equalit)m(y)32 b(and)e(inequalit)m(y)150
+1578 y Ft(&)432 b Fu(bit)m(wise)31 b(AND)150 1761 y Ft(^)432
+b Fu(bit)m(wise)31 b(exclusiv)m(e)h(OR)150 1944 y Ft(|)432
+b Fu(bit)m(wise)31 b(OR)150 2126 y Ft(&&)384 b Fu(logical)33
+b(AND)150 2309 y Ft(||)384 b Fu(logical)33 b(OR)150 2492
+y Ft(expr)c(?)h(expr)f(:)h(expr)630 2601 y Fu(conditional)i(op)s
+(erator)150 2784 y Ft(=)e(*=)g(/=)g(\045=)f(+=)h(-=)g(<<=)f(>>=)h(&=)g
+(^=)f(|=)630 2894 y Fu(assignmen)m(t)150 3076 y Ft(expr1)g(,)h(expr2)
+630 3186 y Fu(comma)275 3380 y(Shell)38 b(v)-5 b(ariables)39
b(are)g(allo)m(w)m(ed)i(as)e(op)s(erands;)i(parameter)e(expansion)g(is)
-f(p)s(erformed)g(b)s(efore)g(the)150 2667 y(expression)g(is)g(ev)-5
+f(p)s(erformed)g(b)s(efore)g(the)150 3490 y(expression)g(is)g(ev)-5
b(aluated.)66 b(Within)38 b(an)h(expression,)h(shell)e(v)-5
b(ariables)39 b(ma)m(y)g(also)g(b)s(e)f(referenced)g(b)m(y)150
-2777 y(name)31 b(without)f(using)g(the)h(parameter)g(expansion)f(syn)m
+3600 y(name)31 b(without)f(using)g(the)h(parameter)g(expansion)f(syn)m
(tax.)42 b(A)31 b(shell)f(v)-5 b(ariable)32 b(that)f(is)f(n)m(ull)h(or)
-f(unset)150 2886 y(ev)-5 b(aluates)41 b(to)f(0)g(when)e(referenced)h(b)
+f(unset)150 3709 y(ev)-5 b(aluates)41 b(to)f(0)g(when)e(referenced)h(b)
m(y)g(name)h(without)f(using)g(the)g(parameter)h(expansion)f(syn)m
-(tax.)150 2996 y(The)c(v)-5 b(alue)37 b(of)f(a)h(v)-5
+(tax.)150 3819 y(The)c(v)-5 b(alue)37 b(of)f(a)h(v)-5
b(ariable)36 b(is)g(ev)-5 b(aluated)38 b(as)e(an)g(arithmetic)h
-(expression)f(when)f(it)h(is)g(referenced,)i(or)150 3106
-y(when)31 b(a)i(v)-5 b(ariable)33 b(whic)m(h)f(has)g(b)s(een)f(giv)m
-(en)j(the)e Fr(in)m(teger)40 b Fu(attribute)33 b(using)f(`)p
-Ft(declare)d(-i)p Fu(')i(is)i(assigned)150 3215 y(a)j(v)-5
-b(alue.)58 b(A)36 b(n)m(ull)f(v)-5 b(alue)37 b(ev)-5
-b(aluates)37 b(to)g(0.)57 b(A)36 b(shell)g(v)-5 b(ariable)37
-b(need)e(not)h(ha)m(v)m(e)h(its)f Fr(in)m(teger)44 b
-Fu(attribute)150 3325 y(turned)29 b(on)h(to)i(b)s(e)d(used)h(in)g(an)g
-(expression.)275 3461 y(In)m(teger)41 b(constan)m(ts)g(follo)m(w)h(the)
-e(C)g(language)i(de\014nition,)g(without)f(su\016xes)e(or)h(c)m
-(haracter)i(con-)150 3570 y(stan)m(ts.)f(Constan)m(ts)31
-b(with)f(a)g(leading)h(0)f(are)h(in)m(terpreted)f(as)g(o)s(ctal)i(n)m
-(um)m(b)s(ers.)39 b(A)30 b(leading)h(`)p Ft(0x)p Fu(')f(or)g(`)p
-Ft(0X)p Fu(')150 3680 y(denotes)g(hexadecimal.)42 b(Otherwise,)30
-b(n)m(um)m(b)s(ers)f(tak)m(e)i(the)f(form)g([)p Fr(base)5
-b Ft(#)p Fu(])p Fr(n)p Fu(,)30 b(where)f(the)i(optional)g
-Fr(base)150 3789 y Fu(is)e(a)h(decimal)g(n)m(um)m(b)s(er)e(b)s(et)m(w)m
-(een)h(2)h(and)e(64)i(represen)m(ting)g(the)f(arithmetic)i(base,)e(and)
-g Fr(n)g Fu(is)g(a)g(n)m(um)m(b)s(er)150 3899 y(in)g(that)i(base.)40
+(expression)f(when)f(it)h(is)g(referenced,)i(or)150 3928
+y(when)27 b(a)h(v)-5 b(ariable)29 b(whic)m(h)e(has)h(b)s(een)f(giv)m
+(en)i(the)f Ft(integer)e Fu(attribute)i(using)g(`)p Ft(declare)g(-i)p
+Fu(')g(is)g(assigned)150 4038 y(a)33 b(v)-5 b(alue.)49
+b(A)33 b(n)m(ull)g(v)-5 b(alue)34 b(ev)-5 b(aluates)34
+b(to)g(0.)49 b(A)33 b(shell)g(v)-5 b(ariable)34 b(need)e(not)i(ha)m(v)m
+(e)g(its)f Ft(integer)e Fu(attribute)150 4148 y(turned)e(on)h(to)i(b)s
+(e)d(used)h(in)g(an)g(expression.)275 4305 y(In)m(teger)41
+b(constan)m(ts)g(follo)m(w)h(the)e(C)g(language)i(de\014nition,)g
+(without)f(su\016xes)e(or)h(c)m(haracter)i(con-)150 4415
+y(stan)m(ts.)f(Constan)m(ts)31 b(with)f(a)g(leading)h(0)f(are)h(in)m
+(terpreted)f(as)g(o)s(ctal)i(n)m(um)m(b)s(ers.)39 b(A)30
+b(leading)h(`)p Ft(0x)p Fu(')f(or)g(`)p Ft(0X)p Fu(')150
+4525 y(denotes)g(hexadecimal.)42 b(Otherwise,)30 b(n)m(um)m(b)s(ers)f
+(tak)m(e)i(the)f(form)g([)p Fr(base)5 b Ft(#)p Fu(])p
+Fr(n)p Fu(,)30 b(where)f(the)i(optional)g Fr(base)150
+4634 y Fu(is)e(a)h(decimal)g(n)m(um)m(b)s(er)e(b)s(et)m(w)m(een)h(2)h
+(and)e(64)i(represen)m(ting)g(the)f(arithmetic)i(base,)e(and)g
+Fr(n)g Fu(is)g(a)g(n)m(um)m(b)s(er)150 4744 y(in)g(that)i(base.)40
b(If)30 b Fr(base)5 b Ft(#)30 b Fu(is)f(omitted,)i(then)f(base)g(10)g
(is)g(used.)40 b(When)30 b(sp)s(ecifying)f Fr(n)p Fu(,)h(if)f(a)i
-(non-digit)f(is)150 4008 y(required,)k(the)g(digits)h(greater)g(than)e
+(non-digit)f(is)150 4853 y(required,)k(the)g(digits)h(greater)g(than)e
(9)i(are)f(represen)m(ted)g(b)m(y)f(the)h(lo)m(w)m(ercase)j(letters,)f
-(the)e(upp)s(ercase)150 4118 y(letters,)26 b(`)p Ft(@)p
+(the)e(upp)s(ercase)150 4963 y(letters,)26 b(`)p Ft(@)p
Fu(',)g(and)d(`)p Ft(_)p Fu(',)i(in)e(that)i(order.)38
b(If)23 b Fr(base)29 b Fu(is)23 b(less)h(than)g(or)f(equal)h(to)h(36,)h
-(lo)m(w)m(ercase)g(and)d(upp)s(ercase)150 4228 y(letters)32
+(lo)m(w)m(ercase)g(and)d(upp)s(ercase)150 5073 y(letters)32
b(ma)m(y)f(b)s(e)e(used)h(in)m(terc)m(hangeably)i(to)f(represen)m(t)g
(n)m(um)m(b)s(ers)e(b)s(et)m(w)m(een)i(10)g(and)f(35.)275
-4364 y(Op)s(erators)44 b(are)h(ev)-5 b(aluated)46 b(in)f(order)f(of)h
+5230 y(Op)s(erators)44 b(are)h(ev)-5 b(aluated)46 b(in)f(order)f(of)h
(precedence.)85 b(Sub-expressions)44 b(in)g(paren)m(theses)i(are)150
-4473 y(ev)-5 b(aluated)32 b(\014rst)d(and)h(ma)m(y)h(o)m(v)m(erride)g
-(the)g(precedence)g(rules)f(ab)s(o)m(v)m(e.)150 4716
-y Fs(6.6)68 b(Aliases)150 4875 y Fr(Aliases)41 b Fu(allo)m(w)d(a)f
-(string)f(to)h(b)s(e)f(substituted)g(for)g(a)g(w)m(ord)g(when)g(it)h
-(is)f(used)f(as)i(the)g(\014rst)e(w)m(ord)h(of)h(a)150
-4985 y(simple)32 b(command.)45 b(The)31 b(shell)i(main)m(tains)f(a)h
-(list)f(of)g(aliases)i(that)e(ma)m(y)h(b)s(e)e(set)h(and)g(unset)f
-(with)h(the)150 5095 y Ft(alias)d Fu(and)h Ft(unalias)e
-Fu(builtin)i(commands.)275 5230 y(The)f(\014rst)f(w)m(ord)i(of)f(eac)m
-(h)i(simple)f(command,)g(if)f(unquoted,)g(is)h(c)m(hec)m(k)m(ed)h(to)g
-(see)f(if)g(it)g(has)f(an)g(alias.)150 5340 y(If)24 b(so,)i(that)g(w)m
-(ord)e(is)h(replaced)g(b)m(y)f(the)h(text)h(of)e(the)h(alias.)40
-b(The)24 b(c)m(haracters)i(`)p Ft(/)p Fu(',)h(`)p Ft($)p
-Fu(',)f(`)p Ft(`)p Fu(',)g(`)p Ft(=)p Fu(')f(and)f(an)m(y)h(of)p
-eop end
-%%Page: 95 101
-TeXDict begin 95 100 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(95)150 299 y(the)23
-b(shell)g(metac)m(haracters)i(or)e(quoting)g(c)m(haracters)h(listed)g
-(ab)s(o)m(v)m(e)g(ma)m(y)f(not)g(app)s(ear)f(in)h(an)g(alias)h(name.)
-150 408 y(The)e(replacemen)m(t)h(text)g(ma)m(y)g(con)m(tain)h(an)m(y)e
-(v)-5 b(alid)23 b(shell)f(input,)h(including)f(shell)g(metac)m
-(haracters.)40 b(The)150 518 y(\014rst)35 b(w)m(ord)g(of)h(the)g
-(replacemen)m(t)i(text)e(is)g(tested)h(for)e(aliases,)k(but)c(a)h(w)m
-(ord)g(that)g(is)g(iden)m(tical)i(to)e(an)150 628 y(alias)c(b)s(eing)f
-(expanded)f(is)h(not)g(expanded)f(a)h(second)g(time.)43
-b(This)30 b(means)h(that)g(one)g(ma)m(y)h(alias)g Ft(ls)e
-Fu(to)150 737 y Ft("ls)f(-F")p Fu(,)f(for)f(instance,)i(and)d(Bash)i
-(do)s(es)f(not)h(try)f(to)h(recursiv)m(ely)g(expand)e(the)i(replacemen)
-m(t)h(text.)40 b(If)150 847 y(the)31 b(last)h(c)m(haracter)h(of)e(the)h
-(alias)g(v)-5 b(alue)31 b(is)h(a)f Fr(blank)p Fu(,)g(then)g(the)g(next)
-h(command)e(w)m(ord)h(follo)m(wing)i(the)150 956 y(alias)f(is)e(also)h
-(c)m(hec)m(k)m(ed)i(for)d(alias)h(expansion.)275 1096
-y(Aliases)e(are)f(created)i(and)d(listed)i(with)f(the)g
-Ft(alias)f Fu(command,)h(and)g(remo)m(v)m(ed)h(with)f(the)g
-Ft(unalias)150 1206 y Fu(command.)275 1345 y(There)44
-b(is)h(no)g(mec)m(hanism)g(for)f(using)h(argumen)m(ts)g(in)f(the)h
-(replacemen)m(t)i(text,)i(as)d(in)e Ft(csh)p Fu(.)83
-b(If)150 1455 y(argumen)m(ts)37 b(are)h(needed,)g(a)g(shell)f(function)
-f(should)g(b)s(e)h(used)f(\(see)i(Section)g(3.3)g([Shell)f(F)-8
-b(unctions],)150 1564 y(page)31 b(18\).)275 1704 y(Aliases)i(are)h(not)
-e(expanded)g(when)g(the)h(shell)g(is)g(not)g(in)m(teractiv)m(e,)j
-(unless)c(the)h Ft(expand_aliases)150 1813 y Fu(shell)e(option)f(is)h
+5340 y(ev)-5 b(aluated)32 b(\014rst)d(and)h(ma)m(y)h(o)m(v)m(erride)g
+(the)g(precedence)g(rules)f(ab)s(o)m(v)m(e.)p eop end
+%%Page: 100 106
+TeXDict begin 100 105 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(100)150 299 y Fs(6.6)68
+b(Aliases)150 458 y Fr(Aliases)41 b Fu(allo)m(w)d(a)f(string)f(to)h(b)s
+(e)f(substituted)g(for)g(a)g(w)m(ord)g(when)g(it)h(is)f(used)f(as)i
+(the)g(\014rst)e(w)m(ord)h(of)h(a)150 568 y(simple)32
+b(command.)45 b(The)31 b(shell)i(main)m(tains)f(a)h(list)f(of)g
+(aliases)i(that)e(ma)m(y)h(b)s(e)e(set)h(and)g(unset)f(with)h(the)150
+677 y Ft(alias)d Fu(and)h Ft(unalias)e Fu(builtin)i(commands.)275
+810 y(The)f(\014rst)f(w)m(ord)i(of)f(eac)m(h)i(simple)f(command,)g(if)f
+(unquoted,)g(is)h(c)m(hec)m(k)m(ed)h(to)g(see)f(if)g(it)g(has)f(an)g
+(alias.)150 920 y(If)24 b(so,)i(that)g(w)m(ord)e(is)h(replaced)g(b)m(y)
+f(the)h(text)h(of)e(the)h(alias.)40 b(The)24 b(c)m(haracters)i(`)p
+Ft(/)p Fu(',)h(`)p Ft($)p Fu(',)f(`)p Ft(`)p Fu(',)g(`)p
+Ft(=)p Fu(')f(and)f(an)m(y)h(of)150 1030 y(the)e(shell)g(metac)m
+(haracters)i(or)e(quoting)g(c)m(haracters)h(listed)g(ab)s(o)m(v)m(e)g
+(ma)m(y)f(not)g(app)s(ear)f(in)h(an)g(alias)h(name.)150
+1139 y(The)e(replacemen)m(t)h(text)g(ma)m(y)g(con)m(tain)h(an)m(y)e(v)
+-5 b(alid)23 b(shell)f(input,)h(including)f(shell)g(metac)m(haracters.)
+40 b(The)150 1249 y(\014rst)35 b(w)m(ord)g(of)h(the)g(replacemen)m(t)i
+(text)e(is)g(tested)h(for)e(aliases,)k(but)c(a)h(w)m(ord)g(that)g(is)g
+(iden)m(tical)i(to)e(an)150 1358 y(alias)c(b)s(eing)f(expanded)f(is)h
+(not)g(expanded)f(a)h(second)g(time.)43 b(This)30 b(means)h(that)g(one)
+g(ma)m(y)h(alias)g Ft(ls)e Fu(to)150 1468 y Ft("ls)f(-F")p
+Fu(,)f(for)f(instance,)i(and)d(Bash)i(do)s(es)f(not)h(try)f(to)h
+(recursiv)m(ely)g(expand)e(the)i(replacemen)m(t)h(text.)40
+b(If)150 1578 y(the)30 b(last)h(c)m(haracter)g(of)g(the)f(alias)h(v)-5
+b(alue)30 b(is)g(a)g Ft(blank)p Fu(,)f(then)h(the)g(next)g(command)g(w)
+m(ord)f(follo)m(wing)j(the)150 1687 y(alias)g(is)e(also)h(c)m(hec)m(k)m
+(ed)i(for)d(alias)h(expansion.)275 1820 y(Aliases)e(are)f(created)i
+(and)d(listed)i(with)f(the)g Ft(alias)f Fu(command,)h(and)g(remo)m(v)m
+(ed)h(with)f(the)g Ft(unalias)150 1930 y Fu(command.)275
+2063 y(There)44 b(is)h(no)g(mec)m(hanism)g(for)f(using)h(argumen)m(ts)g
+(in)f(the)h(replacemen)m(t)i(text,)i(as)d(in)e Ft(csh)p
+Fu(.)83 b(If)150 2172 y(argumen)m(ts)31 b(are)f(needed,)h(use)f(a)h
+(shell)f(function)g(\(see)i(Section)f(3.3)g([Shell)g(F)-8
+b(unctions],)31 b(page)g(19\).)275 2305 y(Aliases)i(are)h(not)e
+(expanded)g(when)g(the)h(shell)g(is)g(not)g(in)m(teractiv)m(e,)j
+(unless)c(the)h Ft(expand_aliases)150 2415 y Fu(shell)e(option)f(is)h
(set)g(using)f Ft(shopt)f Fu(\(see)i(Section)g(4.3.2)h([The)e(Shopt)g
-(Builtin],)h(page)g(66\).)275 1953 y(The)38 b(rules)h(concerning)h(the)
+(Builtin],)h(page)g(71\).)275 2548 y(The)38 b(rules)h(concerning)h(the)
f(de\014nition)g(and)g(use)g(of)g(aliases)i(are)e(somewhat)h
-(confusing.)67 b(Bash)150 2063 y(alw)m(a)m(ys)37 b(reads)f(at)h(least)g
+(confusing.)67 b(Bash)150 2657 y(alw)m(a)m(ys)37 b(reads)f(at)h(least)g
(one)f(complete)i(line)e(of)g(input,)h(and)e(all)i(lines)f(that)g(mak)m
-(e)h(up)e(a)h(comp)s(ound)150 2172 y(command,)29 b(b)s(efore)g
+(e)h(up)e(a)h(comp)s(ound)150 2767 y(command,)29 b(b)s(efore)g
(executing)i(an)m(y)e(of)h(the)f(commands)g(on)g(that)h(line)f(or)h
-(the)f(comp)s(ound)f(command.)150 2282 y(Aliases)g(are)g(expanded)e
+(the)f(comp)s(ound)f(command.)150 2877 y(Aliases)g(are)g(expanded)e
(when)g(a)i(command)f(is)g(read,)h(not)f(when)f(it)i(is)f(executed.)41
-b(Therefore,)28 b(an)f(alias)150 2391 y(de\014nition)36
+b(Therefore,)28 b(an)f(alias)150 2986 y(de\014nition)36
b(app)s(earing)h(on)f(the)h(same)g(line)g(as)g(another)g(command)f(do)s
-(es)g(not)h(tak)m(e)i(e\013ect)f(un)m(til)f(the)150 2501
+(es)g(not)h(tak)m(e)i(e\013ect)f(un)m(til)f(the)150 3096
y(next)i(line)g(of)g(input)f(is)h(read.)66 b(The)38 b(commands)h(follo)
m(wing)h(the)f(alias)h(de\014nition)e(on)h(that)g(line)h(are)150
-2610 y(not)33 b(a\013ected)h(b)m(y)f(the)g(new)f(alias.)49
+3205 y(not)33 b(a\013ected)h(b)m(y)f(the)g(new)f(alias.)49
b(This)32 b(b)s(eha)m(vior)h(is)g(also)g(an)g(issue)g(when)e(functions)
-i(are)g(executed.)150 2720 y(Aliases)c(are)g(expanded)e(when)g(a)i
+i(are)g(executed.)150 3315 y(Aliases)c(are)g(expanded)e(when)g(a)i
(function)e(de\014nition)h(is)g(read,)h(not)f(when)g(the)g(function)g
-(is)g(executed,)150 2830 y(b)s(ecause)36 b(a)h(function)f(de\014nition)
+(is)g(executed,)150 3425 y(b)s(ecause)36 b(a)h(function)f(de\014nition)
f(is)i(itself)g(a)f(command.)58 b(As)36 b(a)h(consequence,)h(aliases)g
-(de\014ned)d(in)h(a)150 2939 y(function)28 b(are)h(not)g(a)m(v)-5
+(de\014ned)d(in)h(a)150 3534 y(function)28 b(are)h(not)g(a)m(v)-5
b(ailable)31 b(un)m(til)e(after)g(that)g(function)f(is)g(executed.)41
b(T)-8 b(o)29 b(b)s(e)f(safe,)i(alw)m(a)m(ys)g(put)e(alias)150
-3049 y(de\014nitions)i(on)g(a)h(separate)g(line,)g(and)f(do)g(not)h
+3644 y(de\014nitions)i(on)g(a)h(separate)g(line,)g(and)f(do)g(not)h
(use)f Ft(alias)f Fu(in)h(comp)s(ound)f(commands.)275
-3188 y(F)-8 b(or)31 b(almost)g(ev)m(ery)g(purp)s(ose,)e(shell)i
+3777 y(F)-8 b(or)31 b(almost)g(ev)m(ery)g(purp)s(ose,)e(shell)i
(functions)f(are)g(preferred)g(o)m(v)m(er)h(aliases.)150
-3437 y Fs(6.7)68 b(Arra)l(ys)150 3596 y Fu(Bash)33 b(pro)m(vides)g
+4014 y Fs(6.7)68 b(Arra)l(ys)150 4174 y Fu(Bash)33 b(pro)m(vides)g
(one-dimensional)g(indexed)f(and)h(asso)s(ciativ)m(e)i(arra)m(y)e(v)-5
b(ariables.)49 b(An)m(y)33 b(v)-5 b(ariable)33 b(ma)m(y)150
-3706 y(b)s(e)e(used)h(as)g(an)g(indexed)f(arra)m(y;)j(the)e
+4283 y(b)s(e)e(used)h(as)g(an)g(indexed)f(arra)m(y;)j(the)e
Ft(declare)e Fu(builtin)h(will)i(explicitly)g(declare)g(an)f(arra)m(y)
--8 b(.)46 b(There)32 b(is)150 3815 y(no)h(maxim)m(um)g(limit)h(on)f
+-8 b(.)46 b(There)32 b(is)150 4393 y(no)h(maxim)m(um)g(limit)h(on)f
(the)g(size)h(of)g(an)f(arra)m(y)-8 b(,)35 b(nor)d(an)m(y)i(requiremen)
-m(t)f(that)h(mem)m(b)s(ers)e(b)s(e)g(indexed)150 3925
+m(t)f(that)h(mem)m(b)s(ers)e(b)s(e)g(indexed)150 4503
y(or)26 b(assigned)h(con)m(tiguously)-8 b(.)41 b(Indexed)25
b(arra)m(ys)i(are)f(referenced)g(using)g(in)m(tegers)i(\(including)e
-(arithmetic)150 4034 y(expressions)38 b(\(see)h(Section)g(6.5)h([Shell)
-e(Arithmetic],)k(page)d(93\)\))h(and)d(are)i(zero-based;)k(asso)s
-(ciativ)m(e)150 4144 y(arra)m(ys)37 b(use)f(arbitrary)g(strings.)59
+(arithmetic)150 4612 y(expressions)38 b(\(see)h(Section)g(6.5)h([Shell)
+e(Arithmetic],)k(page)d(98\)\))h(and)d(are)i(zero-based;)k(asso)s
+(ciativ)m(e)150 4722 y(arra)m(ys)37 b(use)f(arbitrary)g(strings.)59
b(Unless)36 b(otherwise)h(noted,)h(indexed)e(arra)m(y)h(indices)f(m)m
-(ust)g(b)s(e)g(non-)150 4254 y(negativ)m(e)d(in)m(tegers.)275
-4393 y(An)26 b(indexed)h(arra)m(y)h(is)f(created)h(automatically)j(if)c
+(ust)g(b)s(e)g(non-)150 4831 y(negativ)m(e)d(in)m(tegers.)275
+4964 y(An)26 b(indexed)h(arra)m(y)h(is)f(created)h(automatically)j(if)c
(an)m(y)g(v)-5 b(ariable)28 b(is)g(assigned)f(to)h(using)f(the)g(syn)m
-(tax)390 4533 y Fj(name)p Ft([)p Fj(subscript)p Ft(]=)p
-Fj(value)150 4672 y Fu(The)34 b Fr(subscript)h Fu(is)g(treated)g(as)g
+(tax)390 5097 y Fj(name)p Ft([)p Fj(subscript)p Ft(]=)p
+Fj(value)150 5230 y Fu(The)34 b Fr(subscript)h Fu(is)g(treated)g(as)g
(an)f(arithmetic)i(expression)e(that)h(m)m(ust)g(ev)-5
b(aluate)36 b(to)f(a)g(n)m(um)m(b)s(er.)51 b(T)-8 b(o)150
-4782 y(explicitly)32 b(declare)f(an)g(arra)m(y)-8 b(,)31
-b(use)390 4921 y Ft(declare)46 b(-a)h Fj(name)150 5061
-y Fu(The)30 b(syn)m(tax)390 5200 y Ft(declare)46 b(-a)h
-Fj(name)p Ft([)p Fj(subscript)p Ft(])150 5340 y Fu(is)30
-b(also)i(accepted;)g(the)e Fr(subscript)h Fu(is)g(ignored.)p
-eop end
-%%Page: 96 102
-TeXDict begin 96 101 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(96)150 299 y(Asso)s(ciativ)m(e)33
-b(arra)m(ys)d(are)h(created)h(using)390 427 y Ft(declare)46
-b(-A)h Fj(name)275 555 y Fu(A)m(ttributes)f(ma)m(y)h(b)s(e)e(sp)s
-(eci\014ed)g(for)h(an)g(arra)m(y)g(v)-5 b(ariable)47
-b(using)e(the)h Ft(declare)e Fu(and)h Ft(readonly)150
-664 y Fu(builtins.)40 b(Eac)m(h)31 b(attribute)g(applies)g(to)g(all)g
-(mem)m(b)s(ers)f(of)g(an)h(arra)m(y)-8 b(.)275 792 y(Arra)m(ys)30
-b(are)h(assigned)f(to)h(using)f(comp)s(ound)f(assignmen)m(ts)i(of)g
-(the)f(form)390 920 y Fj(name)p Ft(=\()p Fj(value1)44
-b(value2)j Ft(...)f(\))150 1048 y Fu(where)33 b(eac)m(h)i
-Fr(v)-5 b(alue)40 b Fu(ma)m(y)34 b(b)s(e)g(of)g(the)g(form)f
-Ft([)p Fj(subscript)p Ft(]=)p Fr(string)p Fu(.)48 b(Indexed)33
-b(arra)m(y)h(assignmen)m(ts)h(do)150 1157 y(not)26 b(require)f(an)m
-(ything)g(but)g Fr(string)p Fu(.)39 b(When)25 b(assigning)h(to)g
-(indexed)f(arra)m(ys,)i(if)e(the)h(optional)g(subscript)150
-1267 y(is)h(supplied,)f(that)h(index)g(is)f(assigned)h(to;)i(otherwise)
-e(the)g(index)g(of)f(the)h(elemen)m(t)i(assigned)d(is)h(the)g(last)150
-1377 y(index)j(assigned)h(to)g(b)m(y)f(the)g(statemen)m(t)j(plus)c
-(one.)41 b(Indexing)30 b(starts)h(at)g(zero.)275 1504
-y(Eac)m(h)26 b Fr(v)-5 b(alue)32 b Fu(in)26 b(the)h(list)g(undergo)s
-(es)e(all)i(the)g(shell)f(expansions)g(describ)s(ed)f(ab)s(o)m(v)m(e)j
-(\(see)f(Section)g(3.5)150 1614 y([Shell)j(Expansions],)h(page)g(22\).)
-275 1742 y(When)k(assigning)i(to)g(an)f(asso)s(ciativ)m(e)i(arra)m(y)-8
-b(,)39 b(the)d(w)m(ords)f(in)h(a)h(comp)s(ound)d(assignmen)m(t)j(ma)m
-(y)g(b)s(e)150 1851 y(either)31 b(assignmen)m(t)h(statemen)m(ts,)h(for)
-e(whic)m(h)g(the)g(subscript)f(is)h(required,)g(or)g(a)g(list)h(of)f(w)
-m(ords)f(that)i(is)150 1961 y(in)m(terpreted)g(as)g(a)g(sequence)f(of)h
+5340 y(explicitly)32 b(declare)f(an)g(arra)m(y)-8 b(,)31
+b(use)p eop end
+%%Page: 101 107
+TeXDict begin 101 106 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(101)390 299 y Ft(declare)46
+b(-a)h Fj(name)150 438 y Fu(The)30 b(syn)m(tax)390 577
+y Ft(declare)46 b(-a)h Fj(name)p Ft([)p Fj(subscript)p
+Ft(])150 715 y Fu(is)30 b(also)i(accepted;)g(the)e Fr(subscript)h
+Fu(is)g(ignored.)150 854 y(Asso)s(ciativ)m(e)i(arra)m(ys)d(are)h
+(created)h(using)390 993 y Ft(declare)46 b(-A)h Fj(name)275
+1132 y Fu(A)m(ttributes)f(ma)m(y)h(b)s(e)e(sp)s(eci\014ed)g(for)h(an)g
+(arra)m(y)g(v)-5 b(ariable)47 b(using)e(the)h Ft(declare)e
+Fu(and)h Ft(readonly)150 1241 y Fu(builtins.)40 b(Eac)m(h)31
+b(attribute)g(applies)g(to)g(all)g(mem)m(b)s(ers)f(of)g(an)h(arra)m(y)
+-8 b(.)275 1380 y(Arra)m(ys)30 b(are)h(assigned)f(to)h(using)f(comp)s
+(ound)f(assignmen)m(ts)i(of)g(the)f(form)390 1519 y Fj(name)p
+Ft(=\()p Fj(value1)44 b(value2)j Ft(...)f(\))150 1658
+y Fu(where)33 b(eac)m(h)i Fr(v)-5 b(alue)40 b Fu(ma)m(y)34
+b(b)s(e)g(of)g(the)g(form)f Ft([)p Fj(subscript)p Ft(]=)p
+Fr(string)p Fu(.)48 b(Indexed)33 b(arra)m(y)h(assignmen)m(ts)h(do)150
+1767 y(not)26 b(require)f(an)m(ything)g(but)g Fr(string)p
+Fu(.)39 b(When)25 b(assigning)h(to)g(indexed)f(arra)m(ys,)i(if)e(the)h
+(optional)g(subscript)150 1877 y(is)h(supplied,)f(that)h(index)g(is)f
+(assigned)h(to;)i(otherwise)e(the)g(index)g(of)f(the)h(elemen)m(t)i
+(assigned)d(is)h(the)g(last)150 1987 y(index)j(assigned)h(to)g(b)m(y)f
+(the)g(statemen)m(t)j(plus)c(one.)41 b(Indexing)30 b(starts)h(at)g
+(zero.)275 2125 y(Eac)m(h)26 b Fr(v)-5 b(alue)32 b Fu(in)26
+b(the)h(list)g(undergo)s(es)e(all)i(the)g(shell)f(expansions)g(describ)
+s(ed)f(ab)s(o)m(v)m(e)j(\(see)f(Section)g(3.5)150 2235
+y([Shell)j(Expansions],)h(page)g(24\).)275 2374 y(When)k(assigning)i
+(to)g(an)f(asso)s(ciativ)m(e)i(arra)m(y)-8 b(,)39 b(the)d(w)m(ords)f
+(in)h(a)h(comp)s(ound)d(assignmen)m(t)j(ma)m(y)g(b)s(e)150
+2483 y(either)31 b(assignmen)m(t)h(statemen)m(ts,)h(for)e(whic)m(h)g
+(the)g(subscript)f(is)h(required,)g(or)g(a)g(list)h(of)f(w)m(ords)f
+(that)i(is)150 2593 y(in)m(terpreted)g(as)g(a)g(sequence)f(of)h
(alternating)h(k)m(eys)f(and)f(v)-5 b(alues:)44 b Fr(name)5
b Fu(=\()p Fr(k)m(ey1)40 b(v)-5 b(alue1)40 b(k)m(ey2)g(v)-5
-b(alue2)156 2071 y Fu(.)22 b(.)g(.)47 b(\).)57 b(These)35
+b(alue2)156 2703 y Fu(.)22 b(.)g(.)47 b(\).)57 b(These)35
b(are)i(treated)f(iden)m(tically)i(to)e Fr(name)5 b Fu(=\()36
b([)p Fr(k)m(ey1)7 b Fu(]=)p Fr(v)-5 b(alue1)46 b Fu([)p
Fr(k)m(ey2)7 b Fu(]=)p Fr(v)-5 b(alue2)51 b Fu(.)22 b(.)h(.)46
-b(\).)57 b(The)150 2180 y(\014rst)25 b(w)m(ord)f(in)h(the)h(list)g
+b(\).)57 b(The)150 2812 y(\014rst)25 b(w)m(ord)f(in)h(the)h(list)g
(determines)f(ho)m(w)g(the)h(remaining)f(w)m(ords)g(are)h(in)m
-(terpreted;)h(all)f(assignmen)m(ts)g(in)150 2290 y(a)31
+(terpreted;)h(all)f(assignmen)m(ts)g(in)150 2922 y(a)31
b(list)f(m)m(ust)h(b)s(e)e(of)h(the)h(same)f(t)m(yp)s(e.)41
b(When)30 b(using)g(k)m(ey/v)-5 b(alue)32 b(pairs,)e(the)g(k)m(eys)h
-(ma)m(y)g(not)f(b)s(e)g(missing)150 2399 y(or)g(empt)m(y;)h(a)g
+(ma)m(y)g(not)f(b)s(e)g(missing)150 3031 y(or)g(empt)m(y;)h(a)g
(\014nal)f(missing)g(v)-5 b(alue)31 b(is)g(treated)g(lik)m(e)h(the)e
-(empt)m(y)h(string.)275 2527 y(This)f(syn)m(tax)j(is)e(also)i(accepted)
+(empt)m(y)h(string.)275 3170 y(This)f(syn)m(tax)j(is)e(also)i(accepted)
g(b)m(y)f(the)f Ft(declare)f Fu(builtin.)44 b(Individual)31
-b(arra)m(y)h(elemen)m(ts)h(ma)m(y)g(b)s(e)150 2637 y(assigned)e(to)g
+b(arra)m(y)h(elemen)m(ts)h(ma)m(y)g(b)s(e)150 3280 y(assigned)e(to)g
(using)f(the)g Fj(name)p Ft([)p Fj(subscript)p Ft(]=)p
Fj(value)25 b Fu(syn)m(tax)31 b(in)m(tro)s(duced)e(ab)s(o)m(v)m(e.)275
-2765 y(When)h(assigning)h(to)h(an)e(indexed)g(arra)m(y)-8
+3419 y(When)h(assigning)h(to)h(an)e(indexed)g(arra)m(y)-8
b(,)32 b(if)f Fr(name)36 b Fu(is)31 b(subscripted)e(b)m(y)i(a)g
-(negativ)m(e)i(n)m(um)m(b)s(er,)c(that)150 2874 y(n)m(um)m(b)s(er)43
+(negativ)m(e)i(n)m(um)m(b)s(er,)c(that)150 3528 y(n)m(um)m(b)s(er)43
b(is)h(in)m(terpreted)h(as)f(relativ)m(e)j(to)e(one)f(greater)i(than)e
(the)g(maxim)m(um)g(index)g(of)h Fr(name)p Fu(,)j(so)150
-2984 y(negativ)m(e)30 b(indices)d(coun)m(t)h(bac)m(k)g(from)f(the)g
+3638 y(negativ)m(e)30 b(indices)d(coun)m(t)h(bac)m(k)g(from)f(the)g
(end)g(of)g(the)h(arra)m(y)-8 b(,)29 b(and)e(an)g(index)g(of)g(-1)h
-(references)g(the)f(last)150 3093 y(elemen)m(t.)275 3221
-y(An)m(y)h(elemen)m(t)h(of)g(an)f(arra)m(y)g(ma)m(y)h(b)s(e)f
+(references)g(the)f(last)150 3747 y(elemen)m(t.)275 3886
+y(The)j(`)p Ft(+=)p Fu(')g(op)s(erator)h(will)g(app)s(end)e(to)i(an)g
+(arra)m(y)g(v)-5 b(ariable)32 b(when)d(assigning)i(using)g(the)f(comp)s
+(ound)150 3996 y(assignmen)m(t)h(syn)m(tax;)g(see)g(Section)g(3.4)h
+([Shell)e(P)m(arameters],)i(page)g(21,)f(ab)s(o)m(v)m(e.)275
+4134 y(An)m(y)d(elemen)m(t)h(of)g(an)f(arra)m(y)g(ma)m(y)h(b)s(e)f
(referenced)g(using)g Ft(${)p Fj(name)p Ft([)p Fj(subscript)p
-Ft(]})p Fu(.)35 b(The)27 b(braces)i(are)150 3331 y(required)f(to)j(a)m
+Ft(]})p Fu(.)35 b(The)27 b(braces)i(are)150 4244 y(required)f(to)j(a)m
(v)m(oid)f(con\015icts)g(with)f(the)h(shell's)f(\014lename)h(expansion)
f(op)s(erators.)41 b(If)28 b(the)i Fr(subscript)g Fu(is)150
-3440 y(`)p Ft(@)p Fu(')f(or)h(`)p Ft(*)p Fu(',)f(the)h(w)m(ord)f
+4354 y(`)p Ft(@)p Fu(')f(or)h(`)p Ft(*)p Fu(',)f(the)h(w)m(ord)f
(expands)f(to)i(all)g(mem)m(b)s(ers)e(of)i(the)f(arra)m(y)h
Fr(name)p Fu(.)40 b(These)29 b(subscripts)f(di\013er)h(only)150
-3550 y(when)36 b(the)g(w)m(ord)g(app)s(ears)g(within)g(double)g
+4463 y(when)36 b(the)g(w)m(ord)g(app)s(ears)g(within)g(double)g
(quotes.)60 b(If)36 b(the)h(w)m(ord)f(is)g(double-quoted,)j
-Ft(${)p Fj(name)p Ft([*]})150 3660 y Fu(expands)25 b(to)h(a)g(single)h
+Ft(${)p Fj(name)p Ft([*]})150 4573 y Fu(expands)25 b(to)h(a)g(single)h
(w)m(ord)e(with)g(the)h(v)-5 b(alue)26 b(of)g(eac)m(h)h(arra)m(y)f(mem)
m(b)s(er)f(separated)h(b)m(y)g(the)f(\014rst)g(c)m(harac-)150
-3769 y(ter)j(of)g(the)h Ft(IFS)e Fu(v)-5 b(ariable,)29
+4682 y(ter)j(of)g(the)h Ft(IFS)e Fu(v)-5 b(ariable,)29
b(and)f Ft(${)p Fj(name)p Ft([@]})d Fu(expands)i(eac)m(h)i(elemen)m(t)h
(of)e Fr(name)33 b Fu(to)c(a)f(separate)h(w)m(ord.)150
-3879 y(When)j(there)h(are)f(no)g(arra)m(y)h(mem)m(b)s(ers,)f
+4792 y(When)j(there)h(are)f(no)g(arra)m(y)h(mem)m(b)s(ers,)f
Ft(${)p Fj(name)p Ft([@]})e Fu(expands)h(to)i(nothing.)47
-b(If)31 b(the)i(double-quoted)150 3988 y(expansion)39
+b(If)31 b(the)i(double-quoted)150 4902 y(expansion)39
b(o)s(ccurs)h(within)f(a)h(w)m(ord,)i(the)d(expansion)h(of)g(the)f
-(\014rst)g(parameter)h(is)g(joined)f(with)h(the)150 4098
+(\014rst)g(parameter)h(is)g(joined)f(with)h(the)150 5011
y(b)s(eginning)29 b(part)g(of)h(the)f(original)i(w)m(ord,)e(and)g(the)h
(expansion)f(of)h(the)f(last)i(parameter)e(is)h(joined)f(with)150
-4208 y(the)g(last)h(part)f(of)g(the)g(original)h(w)m(ord.)40
+5121 y(the)g(last)h(part)f(of)g(the)g(original)h(w)m(ord.)40
b(This)28 b(is)h(analogous)h(to)f(the)h(expansion)e(of)h(the)g(sp)s
-(ecial)h(param-)150 4317 y(eters)g(`)p Ft(@)p Fu(')f(and)g(`)p
+(ecial)h(param-)150 5230 y(eters)g(`)p Ft(@)p Fu(')f(and)g(`)p
Ft(*)p Fu('.)41 b Ft(${#)p Fj(name)p Ft([)p Fj(subscript)p
Ft(]})24 b Fu(expands)k(to)i(the)g(length)g(of)f Ft(${)p
Fj(name)p Ft([)p Fj(subscript)p Ft(]})p Fu(.)35 b(If)150
-4427 y Fr(subscript)28 b Fu(is)g(`)p Ft(@)p Fu(')f(or)h(`)p
+5340 y Fr(subscript)28 b Fu(is)g(`)p Ft(@)p Fu(')f(or)h(`)p
Ft(*)p Fu(',)g(the)g(expansion)f(is)g(the)h(n)m(um)m(b)s(er)e(of)i
(elemen)m(ts)g(in)f(the)h(arra)m(y)-8 b(.)41 b(If)27
-b(the)g Fr(subscript)150 4536 y Fu(used)34 b(to)h(reference)g(an)f
-(elemen)m(t)i(of)f(an)f(indexed)g(arra)m(y)h(ev)-5 b(aluates)36
-b(to)f(a)g(n)m(um)m(b)s(er)e(less)i(than)f(zero,)i(it)150
-4646 y(is)c(in)m(terpreted)h(as)f(relativ)m(e)i(to)f(one)f(greater)h
+b(the)g Fr(subscript)p eop end
+%%Page: 102 108
+TeXDict begin 102 107 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(102)150 299 y(used)34
+b(to)h(reference)g(an)f(elemen)m(t)i(of)f(an)f(indexed)g(arra)m(y)h(ev)
+-5 b(aluates)36 b(to)f(a)g(n)m(um)m(b)s(er)e(less)i(than)f(zero,)i(it)
+150 408 y(is)c(in)m(terpreted)h(as)f(relativ)m(e)i(to)f(one)f(greater)h
(than)f(the)h(maxim)m(um)f(index)f(of)h(the)h(arra)m(y)-8
-b(,)33 b(so)g(negativ)m(e)150 4756 y(indices)d(coun)m(t)h(bac)m(k)h
+b(,)33 b(so)g(negativ)m(e)150 518 y(indices)d(coun)m(t)h(bac)m(k)h
(from)e(the)g(end)g(of)g(the)h(arra)m(y)-8 b(,)31 b(and)f(an)g(index)g
(of)h(-1)g(refers)f(to)h(the)g(last)g(elemen)m(t.)275
-4883 y(Referencing)41 b(an)f(arra)m(y)h(v)-5 b(ariable)42
+675 y(Referencing)41 b(an)f(arra)m(y)h(v)-5 b(ariable)42
b(without)e(a)h(subscript)e(is)i(equiv)-5 b(alen)m(t)42
-b(to)f(referencing)g(with)g(a)150 4993 y(subscript)35
+b(to)f(referencing)g(with)g(a)150 785 y(subscript)35
b(of)h(0.)57 b(An)m(y)36 b(reference)g(to)h(a)f(v)-5
b(ariable)36 b(using)g(a)g(v)-5 b(alid)36 b(subscript)f(is)h(legal,)j
-(and)c Ft(bash)g Fu(will)150 5103 y(create)d(an)e(arra)m(y)h(if)f
-(necessary)-8 b(.)275 5230 y(An)35 b(arra)m(y)i(v)-5
+(and)c Ft(bash)g Fu(will)150 894 y(create)d(an)e(arra)m(y)h(if)f
+(necessary)-8 b(.)275 1051 y(An)35 b(arra)m(y)i(v)-5
b(ariable)37 b(is)g(considered)f(set)h(if)f(a)h(subscript)e(has)h(b)s
(een)g(assigned)g(a)h(v)-5 b(alue.)59 b(The)36 b(n)m(ull)150
-5340 y(string)30 b(is)h(a)g(v)-5 b(alid)30 b(v)-5 b(alue.)p
-eop end
-%%Page: 97 103
-TeXDict begin 97 102 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(97)275 299 y(It)29
-b(is)h(p)s(ossible)f(to)h(obtain)g(the)f(k)m(eys)i(\(indices\))f(of)f
-(an)h(arra)m(y)g(as)f(w)m(ell)i(as)f(the)f(v)-5 b(alues.)41
-b($)p Fi({)p Fu(!)p Fr(name)5 b Fu([@])p Fi(})150 408
-y Fu(and)39 b($)p Fi({)p Fu(!)p Fr(name)5 b Fu([*])p
-Fi(})43 b Fu(expand)c(to)i(the)f(indices)h(assigned)f(in)g(arra)m(y)g
-(v)-5 b(ariable)41 b Fr(name)p Fu(.)70 b(The)39 b(treatmen)m(t)150
-518 y(when)i(in)g(double)g(quotes)h(is)f(similar)h(to)h(the)e
-(expansion)h(of)f(the)h(sp)s(ecial)g(parameters)g(`)p
-Ft(@)p Fu(')g(and)f(`)p Ft(*)p Fu(')150 628 y(within)30
-b(double)g(quotes.)275 759 y(The)25 b Ft(unset)g Fu(builtin)g(is)h
+1161 y(string)30 b(is)h(a)g(v)-5 b(alid)30 b(v)-5 b(alue.)275
+1317 y(It)29 b(is)h(p)s(ossible)f(to)h(obtain)g(the)f(k)m(eys)i
+(\(indices\))f(of)f(an)h(arra)m(y)g(as)f(w)m(ell)i(as)f(the)f(v)-5
+b(alues.)41 b($)p Fi({)p Fu(!)p Fr(name)5 b Fu([@])p
+Fi(})150 1427 y Fu(and)39 b($)p Fi({)p Fu(!)p Fr(name)5
+b Fu([*])p Fi(})43 b Fu(expand)c(to)i(the)f(indices)h(assigned)f(in)g
+(arra)m(y)g(v)-5 b(ariable)41 b Fr(name)p Fu(.)70 b(The)39
+b(treatmen)m(t)150 1537 y(when)i(in)g(double)g(quotes)h(is)f(similar)h
+(to)h(the)e(expansion)h(of)f(the)h(sp)s(ecial)g(parameters)g(`)p
+Ft(@)p Fu(')g(and)f(`)p Ft(*)p Fu(')150 1646 y(within)30
+b(double)g(quotes.)275 1803 y(The)25 b Ft(unset)g Fu(builtin)g(is)h
(used)f(to)i(destro)m(y)f(arra)m(ys.)40 b Ft(unset)29
b Fj(name)p Ft([)p Fj(subscript)p Ft(])22 b Fu(destro)m(ys)k(the)g
-(arra)m(y)150 868 y(elemen)m(t)40 b(at)e(index)g Fr(subscript)p
+(arra)m(y)150 1913 y(elemen)m(t)40 b(at)e(index)g Fr(subscript)p
Fu(.)62 b(Negativ)m(e)41 b(subscripts)c(to)i(indexed)e(arra)m(ys)i(are)
-f(in)m(terpreted)h(as)f(de-)150 978 y(scrib)s(ed)30 b(ab)s(o)m(v)m(e.)
-42 b(Unsetting)31 b(the)g(last)g(elemen)m(t)h(of)f(an)g(arra)m(y)g(v)-5
-b(ariable)31 b(do)s(es)f(not)h(unset)f(the)h(v)-5 b(ariable.)150
-1087 y Ft(unset)29 b Fj(name)p Fu(,)e(where)h Fr(name)33
-b Fu(is)28 b(an)g(arra)m(y)-8 b(,)30 b(remo)m(v)m(es)f(the)f(en)m(tire)
-h(arra)m(y)-8 b(.)41 b(A)28 b(subscript)f(of)h(`)p Ft(*)p
-Fu(')g(or)g(`)p Ft(@)p Fu(')g(also)150 1197 y(remo)m(v)m(es)k(the)e(en)
-m(tire)i(arra)m(y)-8 b(.)275 1328 y(When)35 b(using)g(a)i(v)-5
-b(ariable)36 b(name)g(with)g(a)g(subscript)e(as)i(an)g(argumen)m(t)g
-(to)h(a)f(command,)h(suc)m(h)f(as)150 1438 y(with)k Ft(unset)p
-Fu(,)h(without)e(using)h(the)g(w)m(ord)f(expansion)h(syn)m(tax)g
-(describ)s(ed)f(ab)s(o)m(v)m(e,)44 b(the)c(argumen)m(t)g(is)150
-1547 y(sub)5 b(ject)25 b(to)h(the)g(shell's)g(\014lename)f(expansion.)
-39 b(If)25 b(\014lename)h(expansion)f(is)g(not)h(desired,)g(the)f
-(argumen)m(t)150 1657 y(should)k(b)s(e)h(quoted.)275
-1788 y(The)20 b Ft(declare)p Fu(,)h Ft(local)p Fu(,)h(and)e
-Ft(readonly)f Fu(builtins)h(eac)m(h)i(accept)g(a)g Ft(-a)e
-Fu(option)h(to)h(sp)s(ecify)f(an)f(indexed)150 1897 y(arra)m(y)28
-b(and)f(a)h Ft(-A)e Fu(option)i(to)g(sp)s(ecify)f(an)h(asso)s(ciativ)m
-(e)i(arra)m(y)-8 b(.)40 b(If)27 b(b)s(oth)g(options)h(are)g(supplied,)f
-Ft(-A)f Fu(tak)m(es)150 2007 y(precedence.)55 b(The)35
-b Ft(read)f Fu(builtin)h(accepts)h(a)g Ft(-a)e Fu(option)i(to)g(assign)
-f(a)g(list)h(of)f(w)m(ords)g(read)g(from)g(the)150 2116
-y(standard)h(input)g(to)i(an)f(arra)m(y)-8 b(,)40 b(and)c(can)h(read)g
-(v)-5 b(alues)38 b(from)e(the)h(standard)g(input)f(in)m(to)i
-(individual)150 2226 y(arra)m(y)f(elemen)m(ts.)62 b(The)36
-b Ft(set)g Fu(and)h Ft(declare)d Fu(builtins)j(displa)m(y)g(arra)m(y)g
-(v)-5 b(alues)37 b(in)g(a)g(w)m(a)m(y)h(that)g(allo)m(ws)150
-2336 y(them)30 b(to)h(b)s(e)f(reused)g(as)g(input.)150
-2569 y Fs(6.8)68 b(The)45 b(Directory)g(Stac)l(k)150
-2729 y Fu(The)21 b(directory)h(stac)m(k)h(is)e(a)h(list)g(of)f(recen)m
+f(in)m(terpreted)h(as)f(de-)150 2022 y(scrib)s(ed)30
+b(ab)s(o)m(v)m(e.)42 b(Unsetting)31 b(the)g(last)g(elemen)m(t)h(of)f
+(an)g(arra)m(y)g(v)-5 b(ariable)31 b(do)s(es)f(not)h(unset)f(the)h(v)-5
+b(ariable.)150 2132 y Ft(unset)29 b Fj(name)p Fu(,)39
+b(where)e Fr(name)43 b Fu(is)37 b(an)h(arra)m(y)-8 b(,)41
+b(remo)m(v)m(es)e(the)f(en)m(tire)g(arra)m(y)-8 b(.)64
+b Ft(unset)29 b Fj(name)p Ft([)p Fj(subscript)p Ft(])150
+2241 y Fu(b)s(eha)m(v)m(es)h(di\013eren)m(tly)g(dep)s(ending)d(on)j
+(the)f(arra)m(y)h(t)m(yp)s(e)f(when)g(giv)m(en)h(a)f(subscript)g(of)g
+(`)p Ft(*)p Fu(')g(or)h(`)p Ft(@)p Fu('.)40 b(When)150
+2351 y Fr(name)46 b Fu(is)40 b(an)h(asso)s(ciativ)m(e)i(arra)m(y)-8
+b(,)44 b(it)d(remo)m(v)m(es)h(the)f(elemen)m(t)h(with)e(k)m(ey)h(`)p
+Ft(*)p Fu(')g(or)f(`)p Ft(@)p Fu('.)72 b(If)40 b Fr(name)45
+b Fu(is)c(an)150 2461 y(indexed)30 b(arra)m(y)-8 b(,)31
+b Ft(unset)e Fu(remo)m(v)m(es)j(all)f(of)g(the)f(elemen)m(ts,)i(but)e
+(do)s(es)g(not)h(remo)m(v)m(e)h(the)e(arra)m(y)h(itself.)275
+2617 y(When)k(using)g(a)i(v)-5 b(ariable)36 b(name)g(with)g(a)g
+(subscript)e(as)i(an)g(argumen)m(t)g(to)h(a)f(command,)h(suc)m(h)f(as)
+150 2727 y(with)k Ft(unset)p Fu(,)h(without)e(using)h(the)g(w)m(ord)f
+(expansion)h(syn)m(tax)g(describ)s(ed)f(ab)s(o)m(v)m(e,)44
+b(the)c(argumen)m(t)g(is)150 2837 y(sub)5 b(ject)25 b(to)h(the)g
+(shell's)g(\014lename)f(expansion.)39 b(If)25 b(\014lename)h(expansion)
+f(is)g(not)h(desired,)g(the)f(argumen)m(t)150 2946 y(should)k(b)s(e)h
+(quoted.)275 3103 y(The)20 b Ft(declare)p Fu(,)h Ft(local)p
+Fu(,)h(and)e Ft(readonly)f Fu(builtins)h(eac)m(h)i(accept)g(a)g
+Ft(-a)e Fu(option)h(to)h(sp)s(ecify)f(an)f(indexed)150
+3213 y(arra)m(y)28 b(and)f(a)h Ft(-A)e Fu(option)i(to)g(sp)s(ecify)f
+(an)h(asso)s(ciativ)m(e)i(arra)m(y)-8 b(.)40 b(If)27
+b(b)s(oth)g(options)h(are)g(supplied,)f Ft(-A)f Fu(tak)m(es)150
+3322 y(precedence.)55 b(The)35 b Ft(read)f Fu(builtin)h(accepts)h(a)g
+Ft(-a)e Fu(option)i(to)g(assign)f(a)g(list)h(of)f(w)m(ords)g(read)g
+(from)g(the)150 3432 y(standard)h(input)g(to)i(an)f(arra)m(y)-8
+b(,)40 b(and)c(can)h(read)g(v)-5 b(alues)38 b(from)e(the)h(standard)g
+(input)f(in)m(to)i(individual)150 3541 y(arra)m(y)f(elemen)m(ts.)62
+b(The)36 b Ft(set)g Fu(and)h Ft(declare)d Fu(builtins)j(displa)m(y)g
+(arra)m(y)g(v)-5 b(alues)37 b(in)g(a)g(w)m(a)m(y)h(that)g(allo)m(ws)150
+3651 y(them)30 b(to)h(b)s(e)f(reused)g(as)g(input.)150
+3925 y Fs(6.8)68 b(The)45 b(Directory)g(Stac)l(k)150
+4085 y Fu(The)21 b(directory)h(stac)m(k)h(is)e(a)h(list)g(of)f(recen)m
(tly-visited)j(directories.)39 b(The)20 b Ft(pushd)g
-Fu(builtin)h(adds)g(directories)150 2838 y(to)42 b(the)f(stac)m(k)i(as)
+Fu(builtin)h(adds)g(directories)150 4194 y(to)42 b(the)f(stac)m(k)i(as)
e(it)h(c)m(hanges)g(the)f(curren)m(t)g(directory)-8 b(,)45
b(and)40 b(the)i Ft(popd)e Fu(builtin)g(remo)m(v)m(es)j(sp)s(eci\014ed)
-150 2948 y(directories)29 b(from)f(the)h(stac)m(k)h(and)d(c)m(hanges)j
+150 4304 y(directories)29 b(from)f(the)h(stac)m(k)h(and)d(c)m(hanges)j
(the)e(curren)m(t)g(directory)h(to)g(the)g(directory)f(remo)m(v)m(ed.)
-41 b(The)150 3058 y Ft(dirs)34 b Fu(builtin)g(displa)m(ys)h(the)g(con)m
+41 b(The)150 4414 y Ft(dirs)34 b Fu(builtin)g(displa)m(ys)h(the)g(con)m
(ten)m(ts)i(of)e(the)g(directory)h(stac)m(k.)56 b(The)34
-b(curren)m(t)h(directory)g(is)g(alw)m(a)m(ys)150 3167
+b(curren)m(t)h(directory)g(is)g(alw)m(a)m(ys)150 4523
y(the)c Ft(")p Fu(top)p Ft(")f Fu(of)g(the)h(directory)g(stac)m(k.)275
-3298 y(The)k(con)m(ten)m(ts)i(of)f(the)h(directory)f(stac)m(k)h(are)f
+4680 y(The)k(con)m(ten)m(ts)i(of)f(the)h(directory)f(stac)m(k)h(are)f
(also)h(visible)g(as)f(the)g(v)-5 b(alue)36 b(of)g(the)g
-Ft(DIRSTACK)e Fu(shell)150 3408 y(v)-5 b(ariable.)150
-3600 y Fk(6.8.1)63 b(Directory)40 b(Stac)m(k)g(Builtins)150
-3768 y Ft(dirs)870 3899 y(dirs)47 b([-clpv])e([+)p Fj(N)i
-Ft(|)h(-)p Fj(N)p Ft(])630 4030 y Fu(Displa)m(y)35 b(the)f(list)g(of)g
-(curren)m(tly)g(remem)m(b)s(ered)f(directories.)51 b(Directories)36
-b(are)e(added)f(to)630 4140 y(the)28 b(list)h(with)f(the)g
-Ft(pushd)f Fu(command;)i(the)f Ft(popd)f Fu(command)h(remo)m(v)m(es)h
-(directories)g(from)630 4249 y(the)i(list.)41 b(The)30
-b(curren)m(t)g(directory)h(is)f(alw)m(a)m(ys)i(the)f(\014rst)e
-(directory)i(in)f(the)h(stac)m(k.)630 4402 y Ft(-c)384
-b Fu(Clears)31 b(the)f(directory)h(stac)m(k)h(b)m(y)e(deleting)h(all)h
-(of)e(the)h(elemen)m(ts.)630 4554 y Ft(-l)384 b Fu(Pro)s(duces)31
-b(a)h(listing)h(using)e(full)h(pathnames;)h(the)f(default)g(listing)h
-(format)1110 4664 y(uses)d(a)h(tilde)g(to)g(denote)g(the)f(home)h
-(directory)-8 b(.)630 4816 y Ft(-p)384 b Fu(Causes)30
-b Ft(dirs)f Fu(to)i(prin)m(t)f(the)h(directory)g(stac)m(k)h(with)e(one)
-g(en)m(try)h(p)s(er)e(line.)630 4968 y Ft(-v)384 b Fu(Causes)36
-b Ft(dirs)f Fu(to)i(prin)m(t)f(the)g(directory)h(stac)m(k)h(with)e(one)
-h(en)m(try)f(p)s(er)f(line,)1110 5078 y(pre\014xing)30
-b(eac)m(h)h(en)m(try)g(with)f(its)h(index)e(in)i(the)f(stac)m(k.)630
-5230 y Ft(+)p Fj(N)384 b Fu(Displa)m(ys)23 b(the)f Fr(N)10
-b Fu(th)21 b(directory)h(\(coun)m(ting)h(from)e(the)h(left)g(of)g(the)g
-(list)g(prin)m(ted)1110 5340 y(b)m(y)30 b Ft(dirs)f Fu(when)h(in)m(v)m
-(ok)m(ed)i(without)e(options\),)h(starting)g(with)g(zero.)p
-eop end
-%%Page: 98 104
-TeXDict begin 98 103 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(98)630 299 y Ft(-)p
-Fj(N)384 b Fu(Displa)m(ys)47 b(the)g Fr(N)10 b Fu(th)46
-b(directory)h(\(coun)m(ting)g(from)f(the)g(righ)m(t)h(of)g(the)f(list)
-1110 408 y(prin)m(ted)25 b(b)m(y)g Ft(dirs)g Fu(when)f(in)m(v)m(ok)m
-(ed)j(without)f(options\),)h(starting)g(with)e(zero.)150
-583 y Ft(popd)870 725 y(popd)47 b([-n])f([+)p Fj(N)h
-Ft(|)h(-)p Fj(N)p Ft(])630 867 y Fu(When)32 b(no)g(argumen)m(ts)h(are)g
+Ft(DIRSTACK)e Fu(shell)150 4790 y(v)-5 b(ariable.)150
+5011 y Fk(6.8.1)63 b(Directory)40 b(Stac)m(k)g(Builtins)150
+5194 y Ft(dirs)870 5340 y(dirs)47 b([-clpv])e([+)p Fj(N)i
+Ft(|)h(-)p Fj(N)p Ft(])p eop end
+%%Page: 103 109
+TeXDict begin 103 108 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(103)630 299 y(Displa)m(y)35
+b(the)f(list)g(of)g(curren)m(tly)g(remem)m(b)s(ered)f(directories.)51
+b(Directories)36 b(are)e(added)f(to)630 408 y(the)28
+b(list)h(with)f(the)g Ft(pushd)f Fu(command;)i(the)f
+Ft(popd)f Fu(command)h(remo)m(v)m(es)h(directories)g(from)630
+518 y(the)i(list.)41 b(The)30 b(curren)m(t)g(directory)h(is)f(alw)m(a)m
+(ys)i(the)f(\014rst)e(directory)i(in)f(the)h(stac)m(k.)630
+676 y Ft(-c)384 b Fu(Clears)31 b(the)f(directory)h(stac)m(k)h(b)m(y)e
+(deleting)h(all)h(of)e(the)h(elemen)m(ts.)630 833 y Ft(-l)384
+b Fu(Pro)s(duces)31 b(a)h(listing)h(using)e(full)h(pathnames;)h(the)f
+(default)g(listing)h(format)1110 943 y(uses)d(a)h(tilde)g(to)g(denote)g
+(the)f(home)h(directory)-8 b(.)630 1100 y Ft(-p)384 b
+Fu(Causes)30 b Ft(dirs)f Fu(to)i(prin)m(t)f(the)h(directory)g(stac)m(k)
+h(with)e(one)g(en)m(try)h(p)s(er)e(line.)630 1258 y Ft(-v)384
+b Fu(Causes)36 b Ft(dirs)f Fu(to)i(prin)m(t)f(the)g(directory)h(stac)m
+(k)h(with)e(one)h(en)m(try)f(p)s(er)f(line,)1110 1367
+y(pre\014xing)30 b(eac)m(h)h(en)m(try)g(with)f(its)h(index)e(in)i(the)f
+(stac)m(k.)630 1525 y Ft(+)p Fj(N)384 b Fu(Displa)m(ys)23
+b(the)f Fr(N)10 b Fu(th)21 b(directory)h(\(coun)m(ting)h(from)e(the)h
+(left)g(of)g(the)g(list)g(prin)m(ted)1110 1634 y(b)m(y)30
+b Ft(dirs)f Fu(when)h(in)m(v)m(ok)m(ed)i(without)e(options\),)h
+(starting)g(with)g(zero.)630 1792 y Ft(-)p Fj(N)384 b
+Fu(Displa)m(ys)47 b(the)g Fr(N)10 b Fu(th)46 b(directory)h(\(coun)m
+(ting)g(from)f(the)g(righ)m(t)h(of)g(the)f(list)1110
+1902 y(prin)m(ted)25 b(b)m(y)g Ft(dirs)g Fu(when)f(in)m(v)m(ok)m(ed)j
+(without)f(options\),)h(starting)g(with)e(zero.)150 2059
+y Ft(popd)870 2193 y(popd)47 b([-n])f([+)p Fj(N)h Ft(|)h(-)p
+Fj(N)p Ft(])630 2326 y Fu(Remo)m(v)m(es)34 b(elemen)m(ts)g(from)e(the)h
+(directory)g(stac)m(k.)49 b(The)32 b(elemen)m(ts)i(are)f(n)m(um)m(b)s
+(ered)e(from)630 2436 y(0)38 b(starting)h(at)f(the)g(\014rst)f
+(directory)h(listed)g(b)m(y)g Ft(dirs)p Fu(;)j(that)d(is,)i
+Ft(popd)c Fu(is)i(equiv)-5 b(alen)m(t)39 b(to)630 2545
+y Ft(popd)29 b(+0)p Fu(.)630 2679 y(When)j(no)g(argumen)m(ts)h(are)g
(giv)m(en,)h Ft(popd)d Fu(remo)m(v)m(es)j(the)f(top)f(directory)h(from)
-f(the)g(stac)m(k)630 977 y(and)f(p)s(erforms)e(a)j Ft(cd)f
-Fu(to)h(the)f(new)g(top)h(directory)-8 b(.)44 b(The)31
-b(elemen)m(ts)i(are)e(n)m(um)m(b)s(ered)f(from)630 1086
-y(0)j(starting)g(at)g(the)f(\014rst)g(directory)g(listed)h(with)f
-Ft(dirs)p Fu(;)g(that)h(is,)g Ft(popd)e Fu(is)i(equiv)-5
-b(alen)m(t)33 b(to)630 1196 y Ft(popd)c(+0)p Fu(.)630
-1370 y Ft(-n)384 b Fu(Suppresses)27 b(the)j(normal)g(c)m(hange)g(of)g
-(directory)g(when)e(remo)m(ving)j(directo-)1110 1480
-y(ries)f(from)g(the)h(stac)m(k,)h(so)f(that)g(only)f(the)h(stac)m(k)g
-(is)g(manipulated.)630 1655 y Ft(+)p Fj(N)384 b Fu(Remo)m(v)m(es)22
-b(the)f Fr(N)10 b Fu(th)20 b(directory)g(\(coun)m(ting)i(from)e(the)g
-(left)h(of)g(the)f(list)h(prin)m(ted)1110 1764 y(b)m(y)30
-b Ft(dirs)p Fu(\),)g(starting)h(with)f(zero.)630 1939
-y Ft(-)p Fj(N)384 b Fu(Remo)m(v)m(es)46 b(the)g Fr(N)10
-b Fu(th)44 b(directory)h(\(coun)m(ting)h(from)f(the)g(righ)m(t)g(of)g
-(the)g(list)1110 2048 y(prin)m(ted)30 b(b)m(y)g Ft(dirs)p
-Fu(\),)g(starting)h(with)f(zero.)150 2223 y Ft(pushd)870
-2365 y(pushd)46 b([-n])h([+)p Fj(N)g Ft(|)g Fj(-N)h Ft(|)f
-Fj(dir)p Ft(])630 2507 y Fu(Sa)m(v)m(e)30 b(the)e(curren)m(t)g
-(directory)h(on)f(the)h(top)f(of)h(the)f(directory)h(stac)m(k)h(and)e
-(then)g Ft(cd)f Fu(to)i Fr(dir)p Fu(.)630 2617 y(With)39
-b(no)f(argumen)m(ts,)j Ft(pushd)c Fu(exc)m(hanges)j(the)f(top)f(t)m(w)m
-(o)i(directories)g(and)d(mak)m(es)j(the)630 2726 y(new)30
-b(top)g(the)h(curren)m(t)f(directory)-8 b(.)630 2901
-y Ft(-n)384 b Fu(Suppresses)24 b(the)j(normal)f(c)m(hange)h(of)g
-(directory)f(when)g(rotating)h(or)f(adding)1110 3010
-y(directories)31 b(to)h(the)e(stac)m(k,)i(so)f(that)g(only)f(the)h
-(stac)m(k)h(is)e(manipulated.)630 3185 y Ft(+)p Fj(N)384
-b Fu(Brings)29 b(the)f Fr(N)10 b Fu(th)29 b(directory)g(\(coun)m(ting)h
-(from)e(the)g(left)i(of)e(the)h(list)g(prin)m(ted)1110
-3295 y(b)m(y)34 b Ft(dirs)p Fu(,)g(starting)h(with)f(zero\))i(to)f(the)
-f(top)g(of)h(the)f(list)h(b)m(y)f(rotating)i(the)1110
-3404 y(stac)m(k.)630 3579 y Ft(-)p Fj(N)384 b Fu(Brings)23
-b(the)g Fr(N)10 b Fu(th)23 b(directory)h(\(coun)m(ting)g(from)e(the)i
-(righ)m(t)f(of)g(the)h(list)f(prin)m(ted)1110 3688 y(b)m(y)34
+f(the)g(stac)m(k)630 2789 y(and)e(c)m(hanges)h(to)g(the)g(new)f(top)g
+(directory)-8 b(.)630 2922 y(Argumen)m(ts,)31 b(if)f(supplied,)f(ha)m
+(v)m(e)j(the)e(follo)m(wing)i(meanings:)630 3080 y Ft(-n)384
+b Fu(Suppresses)27 b(the)j(normal)g(c)m(hange)g(of)g(directory)g(when)e
+(remo)m(ving)j(directo-)1110 3189 y(ries)f(from)g(the)h(stac)m(k,)h(so)
+f(that)g(only)f(the)h(stac)m(k)g(is)g(manipulated.)630
+3347 y Ft(+)p Fj(N)384 b Fu(Remo)m(v)m(es)22 b(the)f
+Fr(N)10 b Fu(th)20 b(directory)g(\(coun)m(ting)i(from)e(the)g(left)h
+(of)g(the)f(list)h(prin)m(ted)1110 3456 y(b)m(y)30 b
+Ft(dirs)p Fu(\),)g(starting)h(with)f(zero,)i(from)e(the)g(stac)m(k.)630
+3614 y Ft(-)p Fj(N)384 b Fu(Remo)m(v)m(es)46 b(the)g
+Fr(N)10 b Fu(th)44 b(directory)h(\(coun)m(ting)h(from)f(the)g(righ)m(t)
+g(of)g(the)g(list)1110 3724 y(prin)m(ted)30 b(b)m(y)g
+Ft(dirs)p Fu(\),)g(starting)h(with)f(zero,)i(from)e(the)g(stac)m(k.)630
+3881 y(If)d(the)h(top)g(elemen)m(t)h(of)f(the)g(directory)g(stac)m(k)h
+(is)e(mo)s(di\014ed,)h(and)f(the)h Ft(-n)f Fu(option)h(w)m(as)g(not)630
+3991 y(supplied,)j Ft(popd)g Fu(uses)g(the)h Ft(cd)f
+Fu(builtin)g(to)i(c)m(hange)g(to)f(the)g(directory)g(at)h(the)f(top)g
+(of)g(the)630 4100 y(stac)m(k.)42 b(If)30 b(the)h Ft(cd)e
+Fu(fails,)j Ft(popd)d Fu(returns)g(a)i(non-zero)g(v)-5
+b(alue.)630 4234 y(Otherwise,)34 b Ft(popd)f Fu(returns)f(an)h
+(unsuccessful)g(status)g(if)h(an)f(in)m(v)-5 b(alid)34
+b(option)g(is)g(encoun-)630 4343 y(tered,)39 b(the)d(directory)h(stac)m
+(k)i(is)d(empt)m(y)-8 b(,)39 b(or)e(a)g(non-existen)m(t)h(directory)f
+(stac)m(k)h(en)m(try)f(is)630 4453 y(sp)s(eci\014ed.)630
+4587 y(If)32 b(the)h Ft(popd)f Fu(command)h(is)g(successful,)g(Bash)g
+(runs)f Ft(dirs)f Fu(to)j(sho)m(w)f(the)g(\014nal)f(con)m(ten)m(ts)630
+4696 y(of)f(the)f(directory)h(stac)m(k,)h(and)e(the)g(return)g(status)g
+(is)h(0.)150 4854 y Ft(pushd)870 4987 y(pushd)46 b([-n])h([+)p
+Fj(N)g Ft(|)g Fj(-N)h Ft(|)f Fj(dir)p Ft(])630 5121 y
+Fu(Adds)27 b(a)h(directory)h(to)g(the)f(top)g(of)g(the)g(directory)h
+(stac)m(k,)h(or)e(rotates)h(the)f(stac)m(k,)j(making)630
+5230 y(the)37 b(new)g(top)g(of)g(the)g(stac)m(k)i(the)e(curren)m(t)f(w)
+m(orking)i(directory)-8 b(.)61 b(With)38 b(no)e(argumen)m(ts,)630
+5340 y Ft(pushd)29 b Fu(exc)m(hanges)j(the)e(top)h(t)m(w)m(o)h(elemen)m
+(ts)f(of)g(the)f(directory)h(stac)m(k.)p eop end
+%%Page: 104 110
+TeXDict begin 104 109 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(104)630 299 y(Argumen)m(ts,)31
+b(if)f(supplied,)f(ha)m(v)m(e)j(the)e(follo)m(wing)i(meanings:)630
+455 y Ft(-n)384 b Fu(Suppresses)24 b(the)j(normal)f(c)m(hange)h(of)g
+(directory)f(when)g(rotating)h(or)f(adding)1110 564 y(directories)31
+b(to)h(the)e(stac)m(k,)i(so)f(that)g(only)f(the)h(stac)m(k)h(is)e
+(manipulated.)630 720 y Ft(+)p Fj(N)384 b Fu(Brings)29
+b(the)f Fr(N)10 b Fu(th)29 b(directory)g(\(coun)m(ting)h(from)e(the)g
+(left)i(of)e(the)h(list)g(prin)m(ted)1110 830 y(b)m(y)34
b Ft(dirs)p Fu(,)g(starting)h(with)f(zero\))i(to)f(the)f(top)g(of)h
-(the)f(list)h(b)m(y)f(rotating)i(the)1110 3798 y(stac)m(k.)630
-3972 y Fj(dir)336 b Fu(Mak)m(es)28 b Fr(dir)33 b Fu(b)s(e)27
-b(the)g(top)g(of)g(the)h(stac)m(k,)h(making)e(it)h(the)f(new)g(curren)m
-(t)g(direc-)1110 4082 y(tory)k(as)f(if)h(it)g(had)e(b)s(een)h(supplied)
-f(as)i(an)f(argumen)m(t)h(to)g(the)f Ft(cd)g Fu(builtin.)150
-4345 y Fs(6.9)68 b(Con)l(trolling)47 b(the)e(Prompt)150
-4505 y Fu(Bash)33 b(examines)h(the)f(v)-5 b(alue)33 b(of)h(the)f(arra)m
-(y)g(v)-5 b(ariable)34 b Ft(PROMPT_COMMANDS)29 b Fu(just)j(b)s(efore)h
-(prin)m(ting)g(eac)m(h)150 4614 y(primary)c(prompt.)40
-b(If)30 b(an)m(y)g(elemen)m(ts)i(in)e Ft(PROMPT_COMMANDS)c
-Fu(are)31 b(set)f(and)g(non-n)m(ull,)g(Bash)h(executes)150
-4724 y(eac)m(h)h(v)-5 b(alue,)31 b(in)f(n)m(umeric)g(order,)g(just)g
+(the)f(list)h(b)m(y)f(rotating)i(the)1110 939 y(stac)m(k.)630
+1095 y Ft(-)p Fj(N)384 b Fu(Brings)23 b(the)g Fr(N)10
+b Fu(th)23 b(directory)h(\(coun)m(ting)g(from)e(the)i(righ)m(t)f(of)g
+(the)h(list)f(prin)m(ted)1110 1205 y(b)m(y)34 b Ft(dirs)p
+Fu(,)g(starting)h(with)f(zero\))i(to)f(the)f(top)g(of)h(the)f(list)h(b)
+m(y)f(rotating)i(the)1110 1314 y(stac)m(k.)630 1470 y
+Fj(dir)336 b Fu(Mak)m(es)32 b Fr(dir)k Fu(b)s(e)30 b(the)g(top)h(of)f
+(the)h(stac)m(k.)630 1626 y(After)39 b(the)g(stac)m(k)h(has)e(b)s(een)g
+(mo)s(di\014ed,)i(if)f(the)g Ft(-n)f Fu(option)h(w)m(as)g(not)g
+(supplied,)g Ft(pushd)630 1735 y Fu(uses)29 b(the)h Ft(cd)f
+Fu(builtin)g(to)h(c)m(hange)g(to)h(the)e(directory)h(at)g(the)g(top)g
+(of)f(the)h(stac)m(k.)42 b(If)29 b(the)h Ft(cd)630 1845
+y Fu(fails,)h Ft(pushd)e Fu(returns)g(a)i(non-zero)g(v)-5
+b(alue.)630 1978 y(Otherwise,)34 b(if)g(no)f(argumen)m(ts)h(are)g
+(supplied,)f Ft(pushd)f Fu(returns)g(0)i(unless)f(the)g(directory)630
+2087 y(stac)m(k)g(is)f(empt)m(y)-8 b(.)46 b(When)32 b(rotating)h(the)f
+(directory)g(stac)m(k,)i Ft(pushd)d Fu(returns)f(0)j(unless)e(the)630
+2197 y(directory)g(stac)m(k)h(is)e(empt)m(y)h(or)f(a)h(non-existen)m(t)
+h(directory)f(stac)m(k)g(elemen)m(t)h(is)f(sp)s(eci\014ed.)630
+2330 y(If)e(the)g Ft(pushd)f Fu(command)h(is)g(successful,)h(Bash)f
+(runs)f Ft(dirs)g Fu(to)i(sho)m(w)f(the)g(\014nal)g(con)m(ten)m(ts)630
+2439 y(of)i(the)f(directory)h(stac)m(k.)150 2676 y Fs(6.9)68
+b(Con)l(trolling)47 b(the)e(Prompt)150 2836 y Fu(Bash)37
+b(examines)h(the)f(v)-5 b(alue)37 b(of)g(the)h(arra)m(y)f(v)-5
+b(ariable)38 b Ft(PROMPT_COMMAND)33 b Fu(just)j(b)s(efore)h(prin)m
+(ting)g(eac)m(h)150 2945 y(primary)c(prompt.)49 b(If)33
+b(an)m(y)h(elemen)m(ts)h(in)f Ft(PROMPT_COMMAND)29 b
+Fu(are)34 b(set)h(and)e(non-n)m(ull,)h(Bash)g(executes)150
+3055 y(eac)m(h)e(v)-5 b(alue,)31 b(in)f(n)m(umeric)g(order,)g(just)g
(as)g(if)h(it)g(had)e(b)s(een)h(t)m(yp)s(ed)g(on)g(the)h(command)f
-(line.)275 4874 y(In)d(addition,)j(the)f(follo)m(wing)h(table)f
+(line.)275 3188 y(In)d(addition,)j(the)f(follo)m(wing)h(table)f
(describ)s(es)f(the)h(sp)s(ecial)g(c)m(haracters)h(whic)m(h)f(can)f
-(app)s(ear)g(in)h(the)150 4983 y(prompt)g(v)-5 b(ariables)32
+(app)s(ear)g(in)h(the)150 3297 y(prompt)g(v)-5 b(ariables)32
b Ft(PS0)p Fu(,)d Ft(PS1)p Fu(,)h Ft(PS2)p Fu(,)g(and)f
-Ft(PS4)p Fu(:)150 5165 y Ft(\\a)384 b Fu(A)30 b(b)s(ell)h(c)m
-(haracter.)150 5340 y Ft(\\d)384 b Fu(The)30 b(date,)h(in)f
+Ft(PS4)p Fu(:)150 3453 y Ft(\\a)384 b Fu(A)30 b(b)s(ell)h(c)m
+(haracter.)150 3609 y Ft(\\d)384 b Fu(The)30 b(date,)h(in)f
Ft(")p Fu(W)-8 b(eekda)m(y)32 b(Mon)m(th)f(Date)p Ft(")h
Fu(format)f(\(e.g.,)h Ft(")p Fu(T)-8 b(ue)30 b(Ma)m(y)h(26)p
-Ft(")p Fu(\).)p eop end
-%%Page: 99 105
-TeXDict begin 99 104 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2484 b(99)150 299 y Ft(\\D{)p
-Fj(format)p Ft(})630 408 y Fu(The)27 b Fr(format)i Fu(is)f(passed)e(to)
-i Ft(strftime)p Fu(\(3\))f(and)f(the)i(result)f(is)g(inserted)g(in)m
-(to)h(the)g(prompt)630 518 y(string;)42 b(an)d(empt)m(y)f
-Fr(format)j Fu(results)d(in)g(a)h(lo)s(cale-sp)s(eci\014c)h(time)f
-(represen)m(tation.)65 b(The)630 628 y(braces)31 b(are)f(required.)150
-790 y Ft(\\e)384 b Fu(An)30 b(escap)s(e)h(c)m(haracter.)150
-952 y Ft(\\h)384 b Fu(The)30 b(hostname,)h(up)e(to)i(the)g(\014rst)e
-(`.'.)150 1114 y Ft(\\H)384 b Fu(The)30 b(hostname.)150
-1276 y Ft(\\j)384 b Fu(The)30 b(n)m(um)m(b)s(er)f(of)h(jobs)g(curren)m
-(tly)h(managed)g(b)m(y)f(the)g(shell.)150 1438 y Ft(\\l)384
+Ft(")p Fu(\).)150 3765 y Ft(\\D{)p Fj(format)p Ft(})630
+3874 y Fu(The)c Fr(format)i Fu(is)f(passed)e(to)i Ft(strftime)p
+Fu(\(3\))f(and)f(the)i(result)f(is)g(inserted)g(in)m(to)h(the)g(prompt)
+630 3984 y(string;)42 b(an)d(empt)m(y)f Fr(format)j Fu(results)d(in)g
+(a)h(lo)s(cale-sp)s(eci\014c)h(time)f(represen)m(tation.)65
+b(The)630 4093 y(braces)31 b(are)f(required.)150 4249
+y Ft(\\e)384 b Fu(An)30 b(escap)s(e)h(c)m(haracter.)150
+4405 y Ft(\\h)384 b Fu(The)30 b(hostname,)h(up)e(to)i(the)g(\014rst)e
+(`.'.)150 4561 y Ft(\\H)384 b Fu(The)30 b(hostname.)150
+4717 y Ft(\\j)384 b Fu(The)30 b(n)m(um)m(b)s(er)f(of)h(jobs)g(curren)m
+(tly)h(managed)g(b)m(y)f(the)g(shell.)150 4873 y Ft(\\l)384
b Fu(The)30 b(basename)h(of)f(the)h(shell's)f(terminal)h(device)g
-(name.)150 1600 y Ft(\\n)384 b Fu(A)30 b(newline.)150
-1763 y Ft(\\r)384 b Fu(A)30 b(carriage)i(return.)150
-1925 y Ft(\\s)384 b Fu(The)22 b(name)g(of)h(the)f(shell,)i(the)f
+(name.)150 5028 y Ft(\\n)384 b Fu(A)30 b(newline.)150
+5184 y Ft(\\r)384 b Fu(A)30 b(carriage)i(return.)150
+5340 y Ft(\\s)384 b Fu(The)22 b(name)g(of)h(the)f(shell,)i(the)f
(basename)f(of)h Ft($0)f Fu(\(the)g(p)s(ortion)g(follo)m(wing)i(the)f
-(\014nal)e(slash\).)150 2087 y Ft(\\t)384 b Fu(The)30
-b(time,)h(in)f(24-hour)h(HH:MM:SS)g(format.)150 2249
-y Ft(\\T)384 b Fu(The)30 b(time,)h(in)f(12-hour)h(HH:MM:SS)g(format.)
-150 2411 y Ft(\\@)384 b Fu(The)30 b(time,)h(in)f(12-hour)h(am/pm)f
-(format.)150 2573 y Ft(\\A)384 b Fu(The)30 b(time,)h(in)f(24-hour)h
-(HH:MM)g(format.)150 2735 y Ft(\\u)384 b Fu(The)30 b(username)g(of)g
-(the)h(curren)m(t)f(user.)150 2898 y Ft(\\v)384 b Fu(The)30
-b(v)m(ersion)h(of)f(Bash)h(\(e.g.,)h(2.00\))150 3060
-y Ft(\\V)384 b Fu(The)30 b(release)i(of)e(Bash,)h(v)m(ersion)g
-Ft(+)f Fu(patc)m(hlev)m(el)i(\(e.g.,)h(2.00.0\))150 3222
-y Ft(\\w)384 b Fu(The)34 b(curren)m(t)h(w)m(orking)g(directory)-8
-b(,)37 b(with)e Ft($HOME)e Fu(abbreviated)j(with)e(a)h(tilde)h(\(uses)f
-(the)630 3331 y Ft($PROMPT_DIRTRIM)26 b Fu(v)-5 b(ariable\).)150
-3494 y Ft(\\W)384 b Fu(The)30 b(basename)h(of)f Ft($PWD)p
-Fu(,)g(with)g Ft($HOME)f Fu(abbreviated)h(with)g(a)h(tilde.)150
-3656 y Ft(\\!)384 b Fu(The)30 b(history)g(n)m(um)m(b)s(er)f(of)i(this)f
-(command.)150 3818 y Ft(\\#)384 b Fu(The)30 b(command)g(n)m(um)m(b)s
-(er)f(of)i(this)f(command.)150 3980 y Ft(\\$)384 b Fu(If)30
-b(the)g(e\013ectiv)m(e)j(uid)d(is)g(0,)h Ft(#)p Fu(,)g(otherwise)g
-Ft($)p Fu(.)150 4142 y Ft(\\)p Fj(nnn)288 b Fu(The)30
-b(c)m(haracter)i(whose)e(ASCI)s(I)f(co)s(de)h(is)h(the)f(o)s(ctal)i(v)
--5 b(alue)31 b Fr(nnn)p Fu(.)150 4304 y Ft(\\\\)384 b
-Fu(A)30 b(bac)m(kslash.)150 4466 y Ft(\\[)384 b Fu(Begin)38
+(\014nal)e(slash\).)p eop end
+%%Page: 105 111
+TeXDict begin 105 110 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(105)150 299 y Ft(\\t)384
+b Fu(The)30 b(time,)h(in)f(24-hour)h(HH:MM:SS)g(format.)150
+459 y Ft(\\T)384 b Fu(The)30 b(time,)h(in)f(12-hour)h(HH:MM:SS)g
+(format.)150 619 y Ft(\\@)384 b Fu(The)30 b(time,)h(in)f(12-hour)h
+(am/pm)f(format.)150 780 y Ft(\\A)384 b Fu(The)30 b(time,)h(in)f
+(24-hour)h(HH:MM)g(format.)150 940 y Ft(\\u)384 b Fu(The)30
+b(username)g(of)g(the)h(curren)m(t)f(user.)150 1100 y
+Ft(\\v)384 b Fu(The)30 b(v)m(ersion)h(of)f(Bash)h(\(e.g.,)h(2.00\))150
+1261 y Ft(\\V)384 b Fu(The)30 b(release)i(of)e(Bash,)h(v)m(ersion)g
+Ft(+)f Fu(patc)m(hlev)m(el)i(\(e.g.,)h(2.00.0\))150 1421
+y Ft(\\w)384 b Fu(The)27 b(v)-5 b(alue)28 b(of)g(the)g
+Ft(PWD)f Fu(shell)h(v)-5 b(ariable)28 b(\()p Ft($PWD)p
+Fu(\),)g(with)g Ft($HOME)e Fu(abbreviated)i(with)f(a)h(tilde)630
+1530 y(\(uses)i(the)h Ft($PROMPT_DIRTRIM)26 b Fu(v)-5
+b(ariable\).)150 1691 y Ft(\\W)384 b Fu(The)30 b(basename)h(of)f
+Ft($PWD)p Fu(,)g(with)g Ft($HOME)f Fu(abbreviated)h(with)g(a)h(tilde.)
+150 1851 y Ft(\\!)384 b Fu(The)30 b(history)g(n)m(um)m(b)s(er)f(of)i
+(this)f(command.)150 2011 y Ft(\\#)384 b Fu(The)30 b(command)g(n)m(um)m
+(b)s(er)f(of)i(this)f(command.)150 2171 y Ft(\\$)384
+b Fu(If)30 b(the)g(e\013ectiv)m(e)j(uid)d(is)g(0,)h Ft(#)p
+Fu(,)g(otherwise)g Ft($)p Fu(.)150 2332 y Ft(\\)p Fj(nnn)288
+b Fu(The)30 b(c)m(haracter)i(whose)e(ASCI)s(I)f(co)s(de)h(is)h(the)f(o)
+s(ctal)i(v)-5 b(alue)31 b Fr(nnn)p Fu(.)150 2492 y Ft(\\\\)384
+b Fu(A)30 b(bac)m(kslash.)150 2652 y Ft(\\[)384 b Fu(Begin)38
b(a)f(sequence)g(of)g(non-prin)m(ting)g(c)m(haracters.)61
b(This)36 b(could)h(b)s(e)g(used)f(to)h(em)m(b)s(ed)g(a)630
-4576 y(terminal)31 b(con)m(trol)h(sequence)e(in)m(to)i(the)e(prompt.)
-150 4738 y Ft(\\])384 b Fu(End)29 b(a)i(sequence)g(of)f(non-prin)m
-(ting)g(c)m(haracters.)275 4902 y(The)25 b(command)h(n)m(um)m(b)s(er)f
+2762 y(terminal)31 b(con)m(trol)h(sequence)e(in)m(to)i(the)e(prompt.)
+150 2922 y Ft(\\])384 b Fu(End)29 b(a)i(sequence)g(of)f(non-prin)m
+(ting)g(c)m(haracters.)275 3083 y(The)25 b(command)h(n)m(um)m(b)s(er)f
(and)h(the)g(history)g(n)m(um)m(b)s(er)f(are)i(usually)f(di\013eren)m
-(t:)39 b(the)26 b(history)g(n)m(um)m(b)s(er)150 5011
+(t:)39 b(the)26 b(history)g(n)m(um)m(b)s(er)150 3192
y(of)h(a)f(command)h(is)f(its)h(p)s(osition)f(in)g(the)h(history)f
(list,)i(whic)m(h)f(ma)m(y)g(include)f(commands)g(restored)g(from)150
-5121 y(the)39 b(history)h(\014le)f(\(see)h(Section)g(9.1)h([Bash)e
-(History)h(F)-8 b(acilities],)45 b(page)40 b(146\),)j(while)d(the)f
-(command)150 5230 y(n)m(um)m(b)s(er)j(is)h(the)h(p)s(osition)f(in)g
+3302 y(the)39 b(history)h(\014le)f(\(see)h(Section)g(9.1)h([Bash)e
+(History)h(F)-8 b(acilities],)45 b(page)40 b(152\),)j(while)d(the)f
+(command)150 3412 y(n)m(um)m(b)s(er)j(is)h(the)h(p)s(osition)f(in)g
(the)g(sequence)h(of)f(commands)g(executed)h(during)e(the)i(curren)m(t)
-f(shell)150 5340 y(session.)p eop end
-%%Page: 100 106
-TeXDict begin 100 105 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(100)275 299 y(After)28
-b(the)g(string)g(is)g(deco)s(ded,)g(it)g(is)g(expanded)f(via)i
-(parameter)f(expansion,)h(command)f(substitu-)150 408
-y(tion,)g(arithmetic)f(expansion,)g(and)e(quote)i(remo)m(v)-5
-b(al,)29 b(sub)5 b(ject)25 b(to)i(the)f(v)-5 b(alue)27
-b(of)f(the)g Ft(promptvars)e Fu(shell)150 518 y(option)i(\(see)h
-(Section)g(4.3.2)g([The)f(Shopt)f(Builtin],)j(page)e(66\).)41
-b(This)25 b(can)h(ha)m(v)m(e)h(un)m(w)m(an)m(ted)f(side)g(e\013ects)150
-628 y(if)i(escap)s(ed)f(p)s(ortions)g(of)h(the)g(string)f(app)s(ear)g
-(within)g(command)h(substitution)f(or)h(con)m(tain)g(c)m(haracters)150
-737 y(sp)s(ecial)j(to)g(w)m(ord)f(expansion.)150 1015
-y Fs(6.10)68 b(The)45 b(Restricted)h(Shell)150 1174 y
-Fu(If)34 b(Bash)g(is)g(started)g(with)g(the)g(name)h
+f(shell)150 3521 y(session.)275 3657 y(After)28 b(the)g(string)g(is)g
+(deco)s(ded,)g(it)g(is)g(expanded)f(via)i(parameter)f(expansion,)h
+(command)f(substitu-)150 3766 y(tion,)g(arithmetic)f(expansion,)g(and)e
+(quote)i(remo)m(v)-5 b(al,)29 b(sub)5 b(ject)25 b(to)i(the)f(v)-5
+b(alue)27 b(of)f(the)g Ft(promptvars)e Fu(shell)150 3876
+y(option)i(\(see)h(Section)g(4.3.2)g([The)f(Shopt)f(Builtin],)j(page)e
+(71\).)41 b(This)25 b(can)h(ha)m(v)m(e)h(un)m(w)m(an)m(ted)f(side)g
+(e\013ects)150 3985 y(if)i(escap)s(ed)f(p)s(ortions)g(of)h(the)g
+(string)f(app)s(ear)g(within)g(command)h(substitution)f(or)h(con)m
+(tain)g(c)m(haracters)150 4095 y(sp)s(ecial)j(to)g(w)m(ord)f
+(expansion.)150 4337 y Fs(6.10)68 b(The)45 b(Restricted)h(Shell)150
+4496 y Fu(If)34 b(Bash)g(is)g(started)g(with)g(the)g(name)h
Ft(rbash)p Fu(,)e(or)h(the)h Ft(--restricted)30 b Fu(or)k
-Ft(-r)g Fu(option)g(is)g(supplied)f(at)150 1284 y(in)m(v)m(o)s(cation,)
+Ft(-r)g Fu(option)g(is)g(supplied)f(at)150 4606 y(in)m(v)m(o)s(cation,)
d(the)d(shell)g(b)s(ecomes)h(restricted.)40 b(A)27 b(restricted)h
(shell)f(is)g(used)f(to)i(set)f(up)f(an)h(en)m(vironmen)m(t)150
-1393 y(more)g(con)m(trolled)i(than)e(the)g(standard)g(shell.)40
+4716 y(more)g(con)m(trolled)i(than)e(the)g(standard)g(shell.)40
b(A)27 b(restricted)h(shell)f(b)s(eha)m(v)m(es)h(iden)m(tically)h(to)f
-Ft(bash)e Fu(with)150 1503 y(the)31 b(exception)g(that)g(the)g(follo)m
+Ft(bash)e Fu(with)150 4825 y(the)31 b(exception)g(that)g(the)g(follo)m
(wing)h(are)e(disallo)m(w)m(ed)i(or)e(not)h(p)s(erformed:)225
-1662 y Fq(\017)60 b Fu(Changing)30 b(directories)h(with)g(the)f
-Ft(cd)g Fu(builtin.)225 1809 y Fq(\017)60 b Fu(Setting)33
+4961 y Fq(\017)60 b Fu(Changing)30 b(directories)h(with)g(the)f
+Ft(cd)g Fu(builtin.)225 5095 y Fq(\017)60 b Fu(Setting)33
b(or)g(unsetting)f(the)h(v)-5 b(alues)33 b(of)f(the)h
Ft(SHELL)p Fu(,)f Ft(PATH)p Fu(,)g Ft(HISTFILE)p Fu(,)f
Ft(ENV)p Fu(,)h(or)g Ft(BASH_ENV)e Fu(v)-5 b(ari-)330
-1919 y(ables.)225 2065 y Fq(\017)60 b Fu(Sp)s(ecifying)30
-b(command)g(names)g(con)m(taining)i(slashes.)225 2212
-y Fq(\017)60 b Fu(Sp)s(ecifying)30 b(a)h(\014lename)f(con)m(taining)i
-(a)f(slash)f(as)h(an)f(argumen)m(t)h(to)g(the)f Ft(.)h
-Fu(builtin)e(command.)225 2359 y Fq(\017)60 b Fu(Sp)s(ecifying)33
-b(a)i(\014lename)f(con)m(taining)h(a)g(slash)e(as)i(an)e(argumen)m(t)i
-(to)g(the)f Ft(history)e Fu(builtin)h(com-)330 2469 y(mand.)225
-2615 y Fq(\017)60 b Fu(Sp)s(ecifying)32 b(a)g(\014lename)h(con)m
-(taining)h(a)e(slash)g(as)h(an)f(argumen)m(t)h(to)g(the)f
-Ft(-p)g Fu(option)h(to)g(the)f Ft(hash)330 2725 y Fu(builtin)e
-(command.)225 2872 y Fq(\017)60 b Fu(Imp)s(orting)30
-b(function)g(de\014nitions)g(from)f(the)i(shell)g(en)m(vironmen)m(t)g
-(at)g(startup.)225 3018 y Fq(\017)60 b Fu(P)m(arsing)31
-b(the)f(v)-5 b(alue)31 b(of)g Ft(SHELLOPTS)d Fu(from)h(the)i(shell)g
-(en)m(vironmen)m(t)g(at)g(startup.)225 3165 y Fq(\017)60
-b Fu(Redirecting)31 b(output)f(using)g(the)h(`)p Ft(>)p
-Fu(',)g(`)p Ft(>|)p Fu(',)f(`)p Ft(<>)p Fu(',)h(`)p Ft(>&)p
-Fu(',)f(`)p Ft(&>)p Fu(',)h(and)e(`)p Ft(>>)p Fu(')i(redirection)g(op)s
-(erators.)225 3312 y Fq(\017)60 b Fu(Using)31 b(the)f
-Ft(exec)f Fu(builtin)h(to)h(replace)h(the)e(shell)h(with)f(another)h
-(command.)225 3459 y Fq(\017)60 b Fu(Adding)24 b(or)g(deleting)i
-(builtin)e(commands)g(with)h(the)f Ft(-f)g Fu(and)g Ft(-d)g
-Fu(options)h(to)h(the)e Ft(enable)f Fu(builtin.)225 3606
-y Fq(\017)60 b Fu(Using)31 b(the)f Ft(enable)f Fu(builtin)h(command)g
-(to)h(enable)g(disabled)f(shell)g(builtins.)225 3752
-y Fq(\017)60 b Fu(Sp)s(ecifying)30 b(the)g Ft(-p)g Fu(option)h(to)g
-(the)g Ft(command)d Fu(builtin.)225 3899 y Fq(\017)60
-b Fu(T)-8 b(urning)29 b(o\013)i(restricted)g(mo)s(de)f(with)g(`)p
-Ft(set)g(+r)p Fu(')g(or)g(`)p Ft(set)g(+o)g(restricted)p
-Fu('.)275 4096 y(These)g(restrictions)h(are)g(enforced)f(after)h(an)m
-(y)g(startup)f(\014les)g(are)h(read.)275 4255 y(When)j(a)i(command)e
-(that)i(is)f(found)f(to)h(b)s(e)g(a)g(shell)g(script)g(is)g(executed)h
-(\(see)g(Section)g(3.8)g([Shell)150 4364 y(Scripts],)25
-b(page)e(42\),)j Ft(rbash)c Fu(turns)g(o\013)i(an)m(y)f(restrictions)h
-(in)f(the)g(shell)h(spa)m(wned)e(to)i(execute)g(the)g(script.)275
-4523 y(The)42 b(restricted)h(shell)g(mo)s(de)f(is)g(only)h(one)g(comp)s
-(onen)m(t)f(of)h(a)g(useful)f(restricted)h(en)m(vironmen)m(t.)150
-4633 y(It)36 b(should)g(b)s(e)f(accompanied)j(b)m(y)e(setting)h
-Ft(PATH)e Fu(to)i(a)g(v)-5 b(alue)37 b(that)g(allo)m(ws)g(execution)h
-(of)e(only)h(a)f(few)150 4743 y(v)m(eri\014ed)26 b(commands)g
-(\(commands)g(that)h(allo)m(w)h(shell)f(escap)s(es)f(are)h
-(particularly)g(vulnerable\),)g(lea)m(ving)150 4852 y(the)i(user)f(in)h
-(a)g(non-writable)h(directory)f(other)g(than)g(his)g(home)g(directory)g
-(after)h(login,)g(not)f(allo)m(wing)150 4962 y(the)j(restricted)g
-(shell)g(to)g(execute)h(shell)e(scripts,)h(and)f(cleaning)i(the)e(en)m
-(vironmen)m(t)i(of)e(v)-5 b(ariables)32 b(that)150 5071
-y(cause)f(some)g(commands)f(to)h(mo)s(dify)e(their)i(b)s(eha)m(vior)f
-(\(e.g.,)j Ft(VISUAL)28 b Fu(or)j Ft(PAGER)p Fu(\).)275
-5230 y(Mo)s(dern)e(systems)g(pro)m(vide)h(more)g(secure)g(w)m(a)m(ys)g
-(to)h(implemen)m(t)f(a)g(restricted)h(en)m(vironmen)m(t,)f(suc)m(h)150
-5340 y(as)h Ft(jails)p Fu(,)e Ft(zones)p Fu(,)g(or)h
-Ft(containers)p Fu(.)p eop end
-%%Page: 101 107
-TeXDict begin 101 106 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(101)150 299 y Fs(6.11)68
-b(Bash)45 b(POSIX)f(Mo)t(de)150 458 y Fu(Starting)39
-b(Bash)f(with)g(the)h Ft(--posix)d Fu(command-line)j(option)g(or)f
-(executing)h(`)p Ft(set)30 b(-o)g(posix)p Fu(')37 b(while)150
-568 y(Bash)26 b(is)g(running)e(will)j(cause)f(Bash)g(to)h(conform)f
-(more)g(closely)h(to)g(the)f Fm(posix)f Fu(standard)g(b)m(y)h(c)m
-(hanging)150 677 y(the)31 b(b)s(eha)m(vior)f(to)h(matc)m(h)g(that)g(sp)
-s(eci\014ed)f(b)m(y)g Fm(posix)g Fu(in)g(areas)h(where)f(the)h(Bash)f
-(default)h(di\013ers.)275 810 y(When)f(in)m(v)m(ok)m(ed)h(as)g
+5205 y(ables.)225 5340 y Fq(\017)60 b Fu(Sp)s(ecifying)30
+b(command)g(names)g(con)m(taining)i(slashes.)p eop end
+%%Page: 106 112
+TeXDict begin 106 111 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(106)225 299 y Fq(\017)60
+b Fu(Sp)s(ecifying)30 b(a)h(\014lename)f(con)m(taining)i(a)f(slash)f
+(as)h(an)f(argumen)m(t)h(to)g(the)f Ft(.)h Fu(builtin)e(command.)225
+434 y Fq(\017)60 b Fu(Sp)s(ecifying)33 b(a)i(\014lename)f(con)m
+(taining)h(a)g(slash)e(as)i(an)e(argumen)m(t)i(to)g(the)f
+Ft(history)e Fu(builtin)h(com-)330 543 y(mand.)225 678
+y Fq(\017)60 b Fu(Sp)s(ecifying)32 b(a)g(\014lename)h(con)m(taining)h
+(a)e(slash)g(as)h(an)f(argumen)m(t)h(to)g(the)f Ft(-p)g
+Fu(option)h(to)g(the)f Ft(hash)330 788 y Fu(builtin)e(command.)225
+923 y Fq(\017)60 b Fu(Imp)s(orting)30 b(function)g(de\014nitions)g
+(from)f(the)i(shell)g(en)m(vironmen)m(t)g(at)g(startup.)225
+1058 y Fq(\017)60 b Fu(P)m(arsing)31 b(the)f(v)-5 b(alue)31
+b(of)g Ft(SHELLOPTS)d Fu(from)h(the)i(shell)g(en)m(vironmen)m(t)g(at)g
+(startup.)225 1193 y Fq(\017)60 b Fu(Redirecting)31 b(output)f(using)g
+(the)h(`)p Ft(>)p Fu(',)g(`)p Ft(>|)p Fu(',)f(`)p Ft(<>)p
+Fu(',)h(`)p Ft(>&)p Fu(',)f(`)p Ft(&>)p Fu(',)h(and)e(`)p
+Ft(>>)p Fu(')i(redirection)g(op)s(erators.)225 1327 y
+Fq(\017)60 b Fu(Using)31 b(the)f Ft(exec)f Fu(builtin)h(to)h(replace)h
+(the)e(shell)h(with)f(another)h(command.)225 1462 y Fq(\017)60
+b Fu(Adding)24 b(or)g(deleting)i(builtin)e(commands)g(with)h(the)f
+Ft(-f)g Fu(and)g Ft(-d)g Fu(options)h(to)h(the)e Ft(enable)f
+Fu(builtin.)225 1597 y Fq(\017)60 b Fu(Using)31 b(the)f
+Ft(enable)f Fu(builtin)h(command)g(to)h(enable)g(disabled)f(shell)g
+(builtins.)225 1732 y Fq(\017)60 b Fu(Sp)s(ecifying)30
+b(the)g Ft(-p)g Fu(option)h(to)g(the)g Ft(command)d Fu(builtin.)225
+1867 y Fq(\017)60 b Fu(T)-8 b(urning)29 b(o\013)i(restricted)g(mo)s(de)
+f(with)g(`)p Ft(set)g(+r)p Fu(')g(or)g(`)p Ft(shopt)f(-u)h
+(restricted_shell)p Fu('.)275 2028 y(These)g(restrictions)h(are)g
+(enforced)f(after)h(an)m(y)g(startup)f(\014les)g(are)h(read.)275
+2163 y(When)j(a)i(command)e(that)i(is)f(found)f(to)h(b)s(e)g(a)g(shell)
+g(script)g(is)g(executed)h(\(see)g(Section)g(3.8)g([Shell)150
+2273 y(Scripts],)25 b(page)e(46\),)j Ft(rbash)c Fu(turns)g(o\013)i(an)m
+(y)f(restrictions)h(in)f(the)g(shell)h(spa)m(wned)e(to)i(execute)g(the)
+g(script.)275 2408 y(The)32 b(restricted)h(shell)g(mo)s(de)g(is)g(only)
+g(one)g(comp)s(onen)m(t)g(of)g(a)g(useful)f(restricted)i(en)m(vironmen)
+m(t.)49 b(It)150 2517 y(should)22 b(b)s(e)f(accompanied)j(b)m(y)e
+(setting)i Ft(PATH)d Fu(to)j(a)f(v)-5 b(alue)23 b(that)g(allo)m(ws)h
+(execution)f(of)g(only)g(a)g(few)f(v)m(eri\014ed)150
+2627 y(commands)35 b(\(commands)g(that)h(allo)m(w)g(shell)f(escap)s(es)
+h(are)f(particularly)h(vulnerable\),)h(c)m(hanging)f(the)150
+2737 y(curren)m(t)28 b(directory)g(to)h(a)f(non-writable)g(directory)g
+(other)g(than)g Ft($HOME)e Fu(after)j(login,)g(not)f(allo)m(wing)i(the)
+150 2846 y(restricted)25 b(shell)g(to)h(execute)g(shell)f(scripts,)h
+(and)e(cleaning)i(the)f(en)m(vironmen)m(t)h(of)f(v)-5
+b(ariables)25 b(that)g(cause)150 2956 y(some)31 b(commands)f(to)h(mo)s
+(dify)e(their)i(b)s(eha)m(vior)f(\(e.g.,)j Ft(VISUAL)28
+b Fu(or)j Ft(PAGER)p Fu(\).)275 3091 y(Mo)s(dern)e(systems)g(pro)m
+(vide)h(more)g(secure)g(w)m(a)m(ys)g(to)h(implemen)m(t)f(a)g
+(restricted)h(en)m(vironmen)m(t,)f(suc)m(h)150 3201 y(as)h
+Ft(jails)p Fu(,)e Ft(zones)p Fu(,)g(or)h Ft(containers)p
+Fu(.)150 3443 y Fs(6.11)68 b(Bash)45 b(POSIX)f(Mo)t(de)150
+3602 y Fu(Starting)39 b(Bash)f(with)g(the)h Ft(--posix)d
+Fu(command-line)j(option)g(or)f(executing)h(`)p Ft(set)30
+b(-o)g(posix)p Fu(')37 b(while)150 3712 y(Bash)26 b(is)g(running)e
+(will)j(cause)f(Bash)g(to)h(conform)f(more)g(closely)h(to)g(the)f
+Fm(posix)f Fu(standard)g(b)m(y)h(c)m(hanging)150 3821
+y(the)31 b(b)s(eha)m(vior)f(to)h(matc)m(h)g(that)g(sp)s(eci\014ed)f(b)m
+(y)g Fm(posix)g Fu(in)g(areas)h(where)f(the)h(Bash)f(default)h
+(di\013ers.)275 3957 y(When)f(in)m(v)m(ok)m(ed)h(as)g
Ft(sh)p Fu(,)f(Bash)h(en)m(ters)g Fm(posix)e Fu(mo)s(de)h(after)h
-(reading)g(the)f(startup)g(\014les.)275 942 y(The)f(follo)m(wing)j
+(reading)g(the)f(startup)g(\014les.)275 4092 y(The)f(follo)m(wing)j
(list)f(is)g(what's)f(c)m(hanged)h(when)e(`)p Fm(posix)h
-Fu(mo)s(de')h(is)f(in)g(e\013ect:)199 1074 y(1.)61 b(Bash)31
+Fu(mo)s(de')h(is)f(in)g(e\013ect:)199 4227 y(1.)61 b(Bash)31
b(ensures)e(that)i(the)f Ft(POSIXLY_CORRECT)d Fu(v)-5
-b(ariable)31 b(is)f(set.)199 1206 y(2.)61 b(When)28 b(a)i(command)e(in)
+b(ariable)31 b(is)f(set.)199 4362 y(2.)61 b(When)28 b(a)i(command)e(in)
g(the)h(hash)f(table)i(no)e(longer)h(exists,)h(Bash)f(will)g(re-searc)m
-(h)h Ft($PATH)d Fu(to)i(\014nd)330 1316 y(the)i(new)e(lo)s(cation.)43
+(h)h Ft($PATH)d Fu(to)i(\014nd)330 4472 y(the)i(new)e(lo)s(cation.)43
b(This)29 b(is)i(also)g(a)m(v)-5 b(ailable)33 b(with)d(`)p
-Ft(shopt)f(-s)h(checkhash)p Fu('.)199 1448 y(3.)61 b(Bash)36
+Ft(shopt)f(-s)h(checkhash)p Fu('.)199 4607 y(3.)61 b(Bash)36
b(will)g(not)g(insert)g(a)g(command)f(without)h(the)g(execute)h(bit)f
-(set)g(in)m(to)h(the)f(command)g(hash)330 1558 y(table,)c(ev)m(en)f(if)
+(set)g(in)m(to)h(the)f(command)g(hash)330 4716 y(table,)c(ev)m(en)f(if)
f(it)h(returns)e(it)i(as)g(a)f(\(last-ditc)m(h\))j(result)d(from)g(a)h
-Ft($PATH)e Fu(searc)m(h.)199 1690 y(4.)61 b(The)42 b(message)h(prin)m
+Ft($PATH)e Fu(searc)m(h.)199 4851 y(4.)61 b(The)42 b(message)h(prin)m
(ted)e(b)m(y)h(the)g(job)g(con)m(trol)i(co)s(de)e(and)f(builtins)h
-(when)f(a)h(job)g(exits)h(with)f(a)330 1800 y(non-zero)31
-b(status)g(is)f(`Done\(status\)'.)199 1932 y(5.)61 b(The)40
+(when)f(a)h(job)g(exits)h(with)f(a)330 4961 y(non-zero)31
+b(status)g(is)f(`Done\(status\)'.)199 5095 y(5.)61 b(The)40
b(message)h(prin)m(ted)f(b)m(y)g(the)h(job)f(con)m(trol)h(co)s(de)g
(and)f(builtins)f(when)h(a)g(job)g(is)h(stopp)s(ed)e(is)330
-2041 y(`Stopp)s(ed\()p Fr(signame)5 b Fu(\)',)31 b(where)f
+5205 y(`Stopp)s(ed\()p Fr(signame)5 b Fu(\)',)31 b(where)f
Fr(signame)36 b Fu(is,)31 b(for)f(example,)h Ft(SIGTSTP)p
-Fu(.)199 2174 y(6.)61 b(Alias)31 b(expansion)g(is)f(alw)m(a)m(ys)i
-(enabled,)e(ev)m(en)i(in)e(non-in)m(teractiv)m(e)j(shells.)199
-2306 y(7.)61 b(Reserv)m(ed)40 b(w)m(ords)g(app)s(earing)f(in)h(a)g(con)
-m(text)i(where)d(reserv)m(ed)h(w)m(ords)f(are)i(recognized)g(do)f(not)
-330 2415 y(undergo)30 b(alias)h(expansion.)199 2548 y(8.)61
-b(The)38 b Fm(posix)h Ft(PS1)f Fu(and)g Ft(PS2)g Fu(expansions)g(of)i
-(`)p Ft(!)p Fu(')f(to)g(the)g(history)g(n)m(um)m(b)s(er)f(and)g(`)p
-Ft(!!)p Fu(')h(to)g(`)p Ft(!)p Fu(')h(are)330 2657 y(enabled,)26
-b(and)f(parameter)g(expansion)g(is)g(p)s(erformed)e(on)i(the)g(v)-5
-b(alues)25 b(of)g Ft(PS1)f Fu(and)h Ft(PS2)f Fu(regardless)330
-2767 y(of)31 b(the)f(setting)i(of)e(the)h Ft(promptvars)c
-Fu(option.)199 2899 y(9.)61 b(The)30 b Fm(posix)g Fu(startup)f(\014les)
-i(are)g(executed)g(\()p Ft($ENV)p Fu(\))f(rather)g(than)g(the)h(normal)
-f(Bash)g(\014les.)154 3031 y(10.)61 b(Tilde)30 b(expansion)g(is)f(only)
-h(p)s(erformed)f(on)h(assignmen)m(ts)g(preceding)g(a)g(command)g(name,)
-g(rather)330 3141 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h
-(on)e(the)h(line.)154 3273 y(11.)61 b(The)30 b(default)g(history)h
-(\014le)f(is)h Ft(~/.sh_history)26 b Fu(\(this)31 b(is)f(the)h(default)
-g(v)-5 b(alue)30 b(of)h Ft($HISTFILE)p Fu(\).)154 3405
-y(12.)61 b(Redirection)25 b(op)s(erators)f(do)g(not)g(p)s(erform)f
-(\014lename)h(expansion)g(on)g(the)g(w)m(ord)f(in)h(the)g(redirection)
-330 3515 y(unless)30 b(the)g(shell)h(is)f(in)m(teractiv)m(e.)154
-3647 y(13.)61 b(Redirection)31 b(op)s(erators)g(do)f(not)h(p)s(erform)e
+Fu(.)199 5340 y(6.)61 b(Alias)31 b(expansion)g(is)f(alw)m(a)m(ys)i
+(enabled,)e(ev)m(en)i(in)e(non-in)m(teractiv)m(e)j(shells.)p
+eop end
+%%Page: 107 113
+TeXDict begin 107 112 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(107)199 299 y(7.)61
+b(Reserv)m(ed)40 b(w)m(ords)g(app)s(earing)f(in)h(a)g(con)m(text)i
+(where)d(reserv)m(ed)h(w)m(ords)f(are)i(recognized)g(do)f(not)330
+408 y(undergo)30 b(alias)h(expansion.)199 536 y(8.)61
+b(Alias)45 b(expansion)e(is)h(p)s(erformed)f(when)f(initially)k
+(parsing)d(a)h(command)g(substitution.)80 b(The)330 646
+y(default)44 b(mo)s(de)g(generally)h(defers)f(it,)k(when)43
+b(enabled,)48 b(un)m(til)c(the)g(command)g(substitution)g(is)330
+756 y(executed.)77 b(This)42 b(means)g(that)h(command)f(substitution)f
+(will)i(not)g(expand)e(aliases)j(that)f(are)330 865 y(de\014ned)34
+b(after)h(the)g(command)f(substitution)h(is)g(initially)h(parsed)e
+(\(e.g.,)k(as)d(part)f(of)h(a)g(function)330 975 y(de\014nition\).)199
+1103 y(9.)61 b(The)38 b Fm(posix)h Ft(PS1)f Fu(and)g
+Ft(PS2)g Fu(expansions)g(of)i(`)p Ft(!)p Fu(')f(to)g(the)g(history)g(n)
+m(um)m(b)s(er)f(and)g(`)p Ft(!!)p Fu(')h(to)g(`)p Ft(!)p
+Fu(')h(are)330 1212 y(enabled,)26 b(and)f(parameter)g(expansion)g(is)g
+(p)s(erformed)e(on)i(the)g(v)-5 b(alues)25 b(of)g Ft(PS1)f
+Fu(and)h Ft(PS2)f Fu(regardless)330 1322 y(of)31 b(the)f(setting)i(of)e
+(the)h Ft(promptvars)c Fu(option.)154 1450 y(10.)61 b(The)30
+b Fm(posix)g Fu(startup)f(\014les)i(are)g(executed)g(\()p
+Ft($ENV)p Fu(\))f(rather)g(than)g(the)h(normal)f(Bash)g(\014les.)154
+1577 y(11.)61 b(Tilde)30 b(expansion)g(is)f(only)h(p)s(erformed)f(on)h
+(assignmen)m(ts)g(preceding)g(a)g(command)g(name,)g(rather)330
+1687 y(than)g(on)g(all)i(assignmen)m(t)f(statemen)m(ts)h(on)e(the)h
+(line.)154 1815 y(12.)61 b(The)30 b(default)g(history)h(\014le)f(is)h
+Ft(~/.sh_history)26 b Fu(\(this)31 b(is)f(the)h(default)g(v)-5
+b(alue)30 b(of)h Ft($HISTFILE)p Fu(\).)154 1943 y(13.)61
+b(Redirection)25 b(op)s(erators)f(do)g(not)g(p)s(erform)f(\014lename)h
+(expansion)g(on)g(the)g(w)m(ord)f(in)h(the)g(redirection)330
+2052 y(unless)30 b(the)g(shell)h(is)f(in)m(teractiv)m(e.)154
+2180 y(14.)61 b(Redirection)31 b(op)s(erators)g(do)f(not)h(p)s(erform)e
(w)m(ord)h(splitting)h(on)f(the)h(w)m(ord)f(in)g(the)g(redirection.)154
-3779 y(14.)61 b(F)-8 b(unction)35 b(names)g(m)m(ust)f(b)s(e)g(v)-5
+2308 y(15.)61 b(F)-8 b(unction)35 b(names)g(m)m(ust)f(b)s(e)g(v)-5
b(alid)35 b(shell)f Ft(name)p Fu(s.)52 b(That)34 b(is,)i(they)f(ma)m(y)
-g(not)g(con)m(tain)g(c)m(haracters)330 3889 y(other)e(than)g(letters,)h
+g(not)g(con)m(tain)g(c)m(haracters)330 2418 y(other)e(than)g(letters,)h
(digits,)h(and)d(underscores,)h(and)f(ma)m(y)h(not)g(start)h(with)e(a)h
-(digit.)49 b(Declaring)330 3999 y(a)31 b(function)f(with)g(an)g(in)m(v)
+(digit.)49 b(Declaring)330 2527 y(a)31 b(function)f(with)g(an)g(in)m(v)
-5 b(alid)31 b(name)g(causes)f(a)h(fatal)h(syn)m(tax)f(error)f(in)g
-(non-in)m(teractiv)m(e)j(shells.)154 4131 y(15.)61 b(F)-8
+(non-in)m(teractiv)m(e)j(shells.)154 2655 y(16.)61 b(F)-8
b(unction)31 b(names)f(ma)m(y)h(not)g(b)s(e)f(the)g(same)h(as)g(one)f
(of)h(the)f Fm(posix)g Fu(sp)s(ecial)h(builtins.)154
-4263 y(16.)61 b Fm(posix)30 b Fu(sp)s(ecial)h(builtins)e(are)i(found)e
+2783 y(17.)61 b Fm(posix)30 b Fu(sp)s(ecial)h(builtins)e(are)i(found)e
(b)s(efore)h(shell)h(functions)f(during)f(command)h(lo)s(okup.)154
-4395 y(17.)61 b(When)48 b(prin)m(ting)g(shell)h(function)f
+2911 y(18.)61 b(When)48 b(prin)m(ting)g(shell)h(function)f
(de\014nitions)g(\(e.g.,)55 b(b)m(y)48 b Ft(type)p Fu(\),)k(Bash)d(do)s
-(es)f(not)h(prin)m(t)f(the)330 4505 y Ft(function)28
-b Fu(k)m(eyw)m(ord.)154 4637 y(18.)61 b(Literal)28 b(tildes)g(that)f
+(es)f(not)h(prin)m(t)f(the)330 3020 y Ft(function)28
+b Fu(k)m(eyw)m(ord.)154 3148 y(19.)61 b(Literal)28 b(tildes)g(that)f
(app)s(ear)f(as)i(the)f(\014rst)f(c)m(haracter)j(in)d(elemen)m(ts)j(of)
e(the)g Ft(PATH)f Fu(v)-5 b(ariable)27 b(are)h(not)330
-4747 y(expanded)i(as)g(describ)s(ed)f(ab)s(o)m(v)m(e)j(under)d(Section)
-i(3.5.2)h([Tilde)f(Expansion],)f(page)h(24.)154 4879
-y(19.)61 b(The)29 b Ft(time)g Fu(reserv)m(ed)h(w)m(ord)g(ma)m(y)g(b)s
+3258 y(expanded)i(as)g(describ)s(ed)f(ab)s(o)m(v)m(e)j(under)d(Section)
+i(3.5.2)h([Tilde)f(Expansion],)f(page)h(25.)154 3386
+y(20.)61 b(The)29 b Ft(time)g Fu(reserv)m(ed)h(w)m(ord)g(ma)m(y)g(b)s
(e)g(used)f(b)m(y)h(itself)g(as)g(a)h(command.)40 b(When)30
-b(used)f(in)g(this)h(w)m(a)m(y)-8 b(,)330 4989 y(it)33
+b(used)f(in)g(this)h(w)m(a)m(y)-8 b(,)330 3495 y(it)33
b(displa)m(ys)g(timing)g(statistics)h(for)e(the)h(shell)g(and)f(its)g
(completed)i(c)m(hildren.)47 b(The)32 b Ft(TIMEFORMAT)330
-5098 y Fu(v)-5 b(ariable)31 b(con)m(trols)h(the)e(format)h(of)g(the)f
-(timing)h(information.)154 5230 y(20.)61 b(When)33 b(parsing)g(and)f
+3605 y Fu(v)-5 b(ariable)31 b(con)m(trols)h(the)e(format)h(of)g(the)f
+(timing)h(information.)154 3733 y(21.)61 b(When)33 b(parsing)g(and)f
(expanding)h(a)h($)p Fi({)6 b Fu(.)22 b(.)h(.)11 b Fi(})33
b Fu(expansion)g(that)h(app)s(ears)f(within)f(double)h(quotes,)330
-5340 y(single)42 b(quotes)g(are)g(no)g(longer)g(sp)s(ecial)g(and)f
-(cannot)i(b)s(e)e(used)g(to)h(quote)g(a)g(closing)h(brace)f(or)p
-eop end
-%%Page: 102 108
-TeXDict begin 102 107 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(102)330 299 y(other)31
-b(sp)s(ecial)h(c)m(haracter,)i(unless)c(the)i(op)s(erator)f(is)g(one)h
-(of)f(those)h(de\014ned)e(to)i(p)s(erform)e(pattern)330
-408 y(remo)m(v)-5 b(al.)42 b(In)30 b(this)g(case,)i(they)e(do)g(not)h
-(ha)m(v)m(e)h(to)f(app)s(ear)e(as)i(matc)m(hed)g(pairs.)154
-547 y(21.)61 b(The)29 b(parser)g(do)s(es)g(not)h(recognize)h
+3842 y(single)42 b(quotes)g(are)g(no)g(longer)g(sp)s(ecial)g(and)f
+(cannot)i(b)s(e)e(used)g(to)h(quote)g(a)g(closing)h(brace)f(or)330
+3952 y(other)31 b(sp)s(ecial)h(c)m(haracter,)i(unless)c(the)i(op)s
+(erator)f(is)g(one)h(of)f(those)h(de\014ned)e(to)i(p)s(erform)e
+(pattern)330 4061 y(remo)m(v)-5 b(al.)42 b(In)30 b(this)g(case,)i(they)
+e(do)g(not)h(ha)m(v)m(e)h(to)f(app)s(ear)e(as)i(matc)m(hed)g(pairs.)154
+4189 y(22.)61 b(The)29 b(parser)g(do)s(es)g(not)h(recognize)h
Ft(time)d Fu(as)i(a)g(reserv)m(ed)f(w)m(ord)g(if)h(the)f(next)h(tok)m
-(en)h(b)s(egins)d(with)i(a)330 656 y(`)p Ft(-)p Fu('.)154
-795 y(22.)61 b(The)30 b(`)p Ft(!)p Fu(')h(c)m(haracter)h(do)s(es)e(not)
-h(in)m(tro)s(duce)g(history)f(expansion)h(within)f(a)h(double-quoted)g
-(string,)330 905 y(ev)m(en)g(if)f(the)h Ft(histexpand)d
-Fu(option)i(is)h(enabled.)154 1043 y(23.)61 b(If)24 b(a)g
-Fm(posix)g Fu(sp)s(ecial)h(builtin)f(returns)f(an)h(error)g(status,)i
-(a)e(non-in)m(teractiv)m(e)j(shell)e(exits.)39 b(The)24
-b(fatal)330 1153 y(errors)30 b(are)h(those)f(listed)h(in)f(the)h
-Fm(posix)e Fu(standard,)h(and)g(include)g(things)g(lik)m(e)i(passing)e
-(incorrect)330 1262 y(options,)43 b(redirection)d(errors,)i(v)-5
-b(ariable)41 b(assignmen)m(t)g(errors)e(for)g(assignmen)m(ts)i
-(preceding)f(the)330 1372 y(command)30 b(name,)h(and)f(so)g(on.)154
-1510 y(24.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h(with)e
+(en)h(b)s(egins)d(with)i(a)330 4299 y(`)p Ft(-)p Fu('.)154
+4427 y(23.)61 b(The)30 b(`)p Ft(!)p Fu(')h(c)m(haracter)h(do)s(es)e
+(not)h(in)m(tro)s(duce)g(history)f(expansion)h(within)f(a)h
+(double-quoted)g(string,)330 4536 y(ev)m(en)g(if)f(the)h
+Ft(histexpand)d Fu(option)i(is)h(enabled.)154 4664 y(24.)61
+b(If)24 b(a)g Fm(posix)g Fu(sp)s(ecial)h(builtin)f(returns)f(an)h
+(error)g(status,)i(a)e(non-in)m(teractiv)m(e)j(shell)e(exits.)39
+b(The)24 b(fatal)330 4774 y(errors)30 b(are)h(those)f(listed)h(in)f
+(the)h Fm(posix)e Fu(standard,)h(and)g(include)g(things)g(lik)m(e)i
+(passing)e(incorrect)330 4883 y(options,)43 b(redirection)d(errors,)i
+(v)-5 b(ariable)41 b(assignmen)m(t)g(errors)e(for)g(assignmen)m(ts)i
+(preceding)f(the)330 4993 y(command)30 b(name,)h(and)f(so)g(on.)154
+5121 y(25.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h(with)e
(an)h(error)g(status)g(if)g(a)g(v)-5 b(ariable)32 b(assignmen)m(t)g
-(error)e(o)s(ccurs)330 1620 y(when)38 b(no)h(command)g(name)g(follo)m
+(error)e(o)s(ccurs)330 5230 y(when)38 b(no)h(command)g(name)g(follo)m
(ws)i(the)e(assignmen)m(t)h(statemen)m(ts.)69 b(A)39
-b(v)-5 b(ariable)40 b(assignmen)m(t)330 1729 y(error)30
+b(v)-5 b(ariable)40 b(assignmen)m(t)330 5340 y(error)30
b(o)s(ccurs,)g(for)g(example,)i(when)d(trying)i(to)g(assign)f(a)h(v)-5
-b(alue)31 b(to)g(a)g(readonly)f(v)-5 b(ariable.)154 1868
-y(25.)61 b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h(with)e(an)h
-(error)g(status)g(if)g(a)g(v)-5 b(ariable)32 b(assignmen)m(t)g(error)e
-(o)s(ccurs)330 1977 y(in)g(an)g(assignmen)m(t)i(statemen)m(t)g
-(preceding)e(a)h(sp)s(ecial)g(builtin,)f(but)g(not)g(with)h(an)m(y)f
-(other)h(simple)330 2087 y(command.)154 2225 y(26.)61
-b(A)43 b(non-in)m(teractiv)m(e)i(shell)e(exits)h(with)f(an)f(error)h
-(status)g(if)g(the)g(iteration)h(v)-5 b(ariable)44 b(in)f(a)g
-Ft(for)330 2335 y Fu(statemen)m(t)32 b(or)f(the)f(selection)i(v)-5
-b(ariable)32 b(in)e(a)g Ft(select)f Fu(statemen)m(t)j(is)f(a)f
-(readonly)h(v)-5 b(ariable.)154 2473 y(27.)61 b(Non-in)m(teractiv)m(e)
-34 b(shells)c(exit)h(if)g Fr(\014lename)k Fu(in)30 b
-Ft(.)g Fr(\014lename)36 b Fu(is)31 b(not)f(found.)154
-2612 y(28.)61 b(Non-in)m(teractiv)m(e)41 b(shells)d(exit)h(if)f(a)g
-(syn)m(tax)g(error)g(in)f(an)h(arithmetic)h(expansion)f(results)f(in)h
-(an)330 2721 y(in)m(v)-5 b(alid)31 b(expression.)154
-2860 y(29.)61 b(Non-in)m(teractiv)m(e)34 b(shells)c(exit)h(if)g(a)f
-(parameter)h(expansion)g(error)f(o)s(ccurs.)154 2998
-y(30.)61 b(Non-in)m(teractiv)m(e)27 b(shells)c(exit)i(if)e(there)h(is)f
-(a)h(syn)m(tax)g(error)f(in)g(a)h(script)f(read)g(with)h(the)f
-Ft(.)g Fu(or)h Ft(source)330 3108 y Fu(builtins,)30 b(or)g(in)g(a)h
-(string)g(pro)s(cessed)e(b)m(y)i(the)f Ft(eval)f Fu(builtin.)154
-3246 y(31.)61 b(While)32 b(v)-5 b(ariable)32 b(indirection)f(is)g(a)m
-(v)-5 b(ailable,)34 b(it)d(ma)m(y)h(not)f(b)s(e)g(applied)g(to)g(the)h
-(`)p Ft(#)p Fu(')f(and)f(`)p Ft(?)p Fu(')h(sp)s(ecial)330
-3356 y(parameters.)154 3494 y(32.)61 b(When)28 b(expanding)g(the)g(`)p
-Ft(*)p Fu(')g(sp)s(ecial)h(parameter)f(in)g(a)h(pattern)f(con)m(text)i
-(where)e(the)g(expansion)g(is)330 3604 y(double-quoted)i(do)s(es)g(not)
-h(treat)h(the)e Ft($*)g Fu(as)h(if)f(it)h(w)m(ere)g(double-quoted.)154
-3742 y(33.)61 b(Assignmen)m(t)23 b(statemen)m(ts)h(preceding)e
-Fm(posix)f Fu(sp)s(ecial)i(builtins)f(p)s(ersist)g(in)f(the)i(shell)f
-(en)m(vironmen)m(t)330 3852 y(after)31 b(the)f(builtin)g(completes.)154
-3990 y(34.)61 b(The)31 b Ft(command)e Fu(builtin)i(do)s(es)g(not)h
-(prev)m(en)m(t)f(builtins)g(that)h(tak)m(e)h(assignmen)m(t)f(statemen)m
-(ts)h(as)f(ar-)330 4100 y(gumen)m(ts)40 b(from)e(expanding)h(them)g(as)
-h(assignmen)m(t)g(statemen)m(ts;)46 b(when)38 b(not)i(in)f
-Fm(posix)f Fu(mo)s(de,)330 4209 y(assignmen)m(t)k(builtins)e(lose)h
-(their)g(assignmen)m(t)h(statemen)m(t)h(expansion)d(prop)s(erties)g
-(when)g(pre-)330 4319 y(ceded)31 b(b)m(y)f Ft(command)p
-Fu(.)154 4457 y(35.)61 b(The)27 b Ft(bg)g Fu(builtin)g(uses)g(the)h
-(required)f(format)h(to)g(describ)s(e)f(eac)m(h)i(job)e(placed)h(in)f
-(the)h(bac)m(kground,)330 4567 y(whic)m(h)h(do)s(es)g(not)g(include)g
-(an)g(indication)h(of)f(whether)f(the)h(job)g(is)g(the)h(curren)m(t)e
-(or)h(previous)g(job.)154 4706 y(36.)61 b(The)23 b(output)f(of)i(`)p
+b(alue)31 b(to)g(a)g(readonly)f(v)-5 b(ariable.)p eop
+end
+%%Page: 108 114
+TeXDict begin 108 113 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(108)154 299 y(26.)61
+b(A)31 b(non-in)m(teractiv)m(e)j(shell)d(exits)h(with)e(an)h(error)g
+(status)g(if)g(a)g(v)-5 b(ariable)32 b(assignmen)m(t)g(error)e(o)s
+(ccurs)330 408 y(in)g(an)g(assignmen)m(t)i(statemen)m(t)g(preceding)e
+(a)h(sp)s(ecial)g(builtin,)f(but)g(not)g(with)h(an)m(y)f(other)h
+(simple)330 518 y(command.)38 b(F)-8 b(or)23 b(an)m(y)g(other)g(simple)
+g(command,)h(the)f(shell)g(ab)s(orts)f(execution)i(of)f(that)g
+(command,)330 628 y(and)44 b(execution)i(con)m(tin)m(ues)g(at)g(the)f
+(top)g(lev)m(el)h(\()p Ft(")p Fu(the)f(shell)h(shall)f(not)g(p)s
+(erform)e(an)m(y)i(further)330 737 y(pro)s(cessing)30
+b(of)h(the)f(command)g(in)g(whic)m(h)h(the)f(error)g(o)s(ccurred)p
+Ft(")p Fu(\).)154 871 y(27.)61 b(A)43 b(non-in)m(teractiv)m(e)i(shell)e
+(exits)h(with)f(an)f(error)h(status)g(if)g(the)g(iteration)h(v)-5
+b(ariable)44 b(in)f(a)g Ft(for)330 981 y Fu(statemen)m(t)32
+b(or)f(the)f(selection)i(v)-5 b(ariable)32 b(in)e(a)g
+Ft(select)f Fu(statemen)m(t)j(is)f(a)f(readonly)h(v)-5
+b(ariable.)154 1115 y(28.)61 b(Non-in)m(teractiv)m(e)34
+b(shells)c(exit)h(if)g Fr(\014lename)k Fu(in)30 b Ft(.)g
+Fr(\014lename)36 b Fu(is)31 b(not)f(found.)154 1249 y(29.)61
+b(Non-in)m(teractiv)m(e)41 b(shells)d(exit)h(if)f(a)g(syn)m(tax)g
+(error)g(in)f(an)h(arithmetic)h(expansion)f(results)f(in)h(an)330
+1358 y(in)m(v)-5 b(alid)31 b(expression.)154 1492 y(30.)61
+b(Non-in)m(teractiv)m(e)34 b(shells)c(exit)h(if)g(a)f(parameter)h
+(expansion)g(error)f(o)s(ccurs.)154 1626 y(31.)61 b(Non-in)m(teractiv)m
+(e)27 b(shells)c(exit)i(if)e(there)h(is)f(a)h(syn)m(tax)g(error)f(in)g
+(a)h(script)f(read)g(with)h(the)f Ft(.)g Fu(or)h Ft(source)330
+1736 y Fu(builtins,)30 b(or)g(in)g(a)h(string)g(pro)s(cessed)e(b)m(y)i
+(the)f Ft(eval)f Fu(builtin.)154 1870 y(32.)61 b(While)32
+b(v)-5 b(ariable)32 b(indirection)f(is)g(a)m(v)-5 b(ailable,)34
+b(it)d(ma)m(y)h(not)f(b)s(e)g(applied)g(to)g(the)h(`)p
+Ft(#)p Fu(')f(and)f(`)p Ft(?)p Fu(')h(sp)s(ecial)330
+1979 y(parameters.)154 2113 y(33.)61 b(Expanding)21 b(the)h(`)p
+Ft(*)p Fu(')g(sp)s(ecial)h(parameter)f(in)g(a)g(pattern)h(con)m(text)g
+(where)f(the)g(expansion)g(is)g(double-)330 2223 y(quoted)31
+b(do)s(es)f(not)g(treat)i(the)e Ft($*)g Fu(as)h(if)f(it)h(w)m(ere)g
+(double-quoted.)154 2357 y(34.)61 b(Assignmen)m(t)23
+b(statemen)m(ts)h(preceding)e Fm(posix)f Fu(sp)s(ecial)i(builtins)f(p)s
+(ersist)g(in)f(the)i(shell)f(en)m(vironmen)m(t)330 2466
+y(after)31 b(the)f(builtin)g(completes.)154 2600 y(35.)61
+b(The)31 b Ft(command)e Fu(builtin)i(do)s(es)g(not)h(prev)m(en)m(t)f
+(builtins)g(that)h(tak)m(e)h(assignmen)m(t)f(statemen)m(ts)h(as)f(ar-)
+330 2710 y(gumen)m(ts)40 b(from)e(expanding)h(them)g(as)h(assignmen)m
+(t)g(statemen)m(ts;)46 b(when)38 b(not)i(in)f Fm(posix)f
+Fu(mo)s(de,)330 2819 y(assignmen)m(t)k(builtins)e(lose)h(their)g
+(assignmen)m(t)h(statemen)m(t)h(expansion)d(prop)s(erties)g(when)g
+(pre-)330 2929 y(ceded)31 b(b)m(y)f Ft(command)p Fu(.)154
+3063 y(36.)61 b(The)27 b Ft(bg)g Fu(builtin)g(uses)g(the)h(required)f
+(format)h(to)g(describ)s(e)f(eac)m(h)i(job)e(placed)h(in)f(the)h(bac)m
+(kground,)330 3173 y(whic)m(h)h(do)s(es)g(not)g(include)g(an)g
+(indication)h(of)f(whether)f(the)h(job)g(is)g(the)h(curren)m(t)e(or)h
+(previous)g(job.)154 3306 y(37.)61 b(The)23 b(output)f(of)i(`)p
Ft(kill)29 b(-l)p Fu(')23 b(prin)m(ts)f(all)i(the)g(signal)f(names)g
(on)g(a)h(single)g(line,)h(separated)e(b)m(y)g(spaces,)330
-4815 y(without)30 b(the)h(`)p Ft(SIG)p Fu(')f(pre\014x.)154
-4954 y(37.)61 b(The)30 b Ft(kill)f Fu(builtin)h(do)s(es)g(not)h(accept)
+3416 y(without)30 b(the)h(`)p Ft(SIG)p Fu(')f(pre\014x.)154
+3550 y(38.)61 b(The)30 b Ft(kill)f Fu(builtin)h(do)s(es)g(not)h(accept)
h(signal)f(names)f(with)g(a)h(`)p Ft(SIG)p Fu(')f(pre\014x.)154
-5092 y(38.)61 b(The)38 b Ft(export)f Fu(and)g Ft(readonly)f
+3684 y(39.)61 b(The)38 b Ft(export)f Fu(and)g Ft(readonly)f
Fu(builtin)i(commands)g(displa)m(y)h(their)f(output)g(in)g(the)h
-(format)g(re-)330 5202 y(quired)30 b(b)m(y)g Fm(posix)p
-Fu(.)154 5340 y(39.)61 b(The)30 b Ft(trap)f Fu(builtin)h(displa)m(ys)g
+(format)g(re-)330 3794 y(quired)30 b(b)m(y)g Fm(posix)p
+Fu(.)154 3927 y(40.)61 b(The)30 b Ft(trap)f Fu(builtin)h(displa)m(ys)g
(signal)i(names)e(without)g(the)h(leading)g Ft(SIG)p
-Fu(.)p eop end
-%%Page: 103 109
-TeXDict begin 103 108 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(103)154 299 y(40.)61
-b(The)39 b Ft(trap)e Fu(builtin)i(do)s(esn't)g(c)m(hec)m(k)h(the)g
-(\014rst)e(argumen)m(t)i(for)e(a)i(p)s(ossible)e(signal)i(sp)s
-(eci\014cation)330 408 y(and)30 b(rev)m(ert)i(the)e(signal)i(handling)e
-(to)h(the)g(original)h(disp)s(osition)e(if)h(it)g(is,)g(unless)f(that)h
-(argumen)m(t)330 518 y(consists)e(solely)g(of)g(digits)g(and)f(is)g(a)h
-(v)-5 b(alid)29 b(signal)g(n)m(um)m(b)s(er.)38 b(If)28
-b(users)g(w)m(an)m(t)h(to)g(reset)g(the)g(handler)330
-628 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s
+Fu(.)154 4061 y(41.)61 b(The)39 b Ft(trap)e Fu(builtin)i(do)s(esn't)g
+(c)m(hec)m(k)h(the)g(\014rst)e(argumen)m(t)i(for)e(a)i(p)s(ossible)e
+(signal)i(sp)s(eci\014cation)330 4171 y(and)30 b(rev)m(ert)i(the)e
+(signal)i(handling)e(to)h(the)g(original)h(disp)s(osition)e(if)h(it)g
+(is,)g(unless)f(that)h(argumen)m(t)330 4281 y(consists)e(solely)g(of)g
+(digits)g(and)f(is)g(a)h(v)-5 b(alid)29 b(signal)g(n)m(um)m(b)s(er.)38
+b(If)28 b(users)g(w)m(an)m(t)h(to)g(reset)g(the)g(handler)330
+4390 y(for)h(a)g(giv)m(en)h(signal)g(to)f(the)h(original)g(disp)s
(osition,)f(they)g(should)f(use)h(`)p Ft(-)p Fu(')g(as)g(the)g(\014rst)
-f(argumen)m(t.)154 765 y(41.)61 b Ft(trap)29 b(-p)35
+f(argumen)m(t.)154 4524 y(42.)61 b Ft(trap)29 b(-p)35
b Fu(displa)m(ys)h(signals)h(whose)f(disp)s(ositions)f(are)h(set)h(to)f
-(SIG)p 2687 765 28 4 v 40 w(DFL)g(and)g(those)g(that)g(w)m(ere)330
-874 y(ignored)30 b(when)g(the)g(shell)h(started.)154
-1011 y(42.)61 b(The)21 b Ft(.)h Fu(and)f Ft(source)f
+(SIG)p 2687 4524 28 4 v 40 w(DFL)g(and)g(those)g(that)g(w)m(ere)330
+4634 y(ignored)30 b(when)g(the)g(shell)h(started.)154
+4768 y(43.)61 b(The)21 b Ft(.)h Fu(and)f Ft(source)f
Fu(builtins)h(do)g(not)h(searc)m(h)h(the)f(curren)m(t)f(directory)h
-(for)g(the)g(\014lename)f(argumen)m(t)330 1121 y(if)30
+(for)g(the)g(\014lename)f(argumen)m(t)330 4877 y(if)30
b(it)h(is)g(not)f(found)f(b)m(y)i(searc)m(hing)g Ft(PATH)p
-Fu(.)154 1258 y(43.)61 b(Enabling)21 b Fm(posix)g Fu(mo)s(de)g(has)g
+Fu(.)154 5011 y(44.)61 b(Enabling)21 b Fm(posix)g Fu(mo)s(de)g(has)g
(the)g(e\013ect)i(of)e(setting)i(the)e Ft(inherit_errexit)d
-Fu(option,)23 b(so)f(subshells)330 1367 y(spa)m(wned)27
+Fu(option,)23 b(so)f(subshells)330 5121 y(spa)m(wned)27
b(to)i(execute)g(command)e(substitutions)h(inherit)f(the)h(v)-5
b(alue)28 b(of)g(the)g Ft(-e)f Fu(option)h(from)g(the)330
-1477 y(paren)m(t)37 b(shell.)62 b(When)37 b(the)g Ft(inherit_errexit)c
+5230 y(paren)m(t)37 b(shell.)62 b(When)37 b(the)g Ft(inherit_errexit)c
Fu(option)38 b(is)f(not)h(enabled,)h(Bash)e(clears)h(the)g
-Ft(-e)330 1587 y Fu(option)31 b(in)f(suc)m(h)g(subshells.)154
-1724 y(44.)61 b(Enabling)32 b Fm(posix)f Fu(mo)s(de)h(has)g(the)h
-(e\013ect)g(of)g(setting)g(the)g Ft(shift_verbose)28
-b Fu(option,)34 b(so)e(n)m(umeric)330 1833 y(argumen)m(ts)f(to)g
-Ft(shift)f Fu(that)h(exceed)h(the)e(n)m(um)m(b)s(er)g(of)h(p)s
-(ositional)g(parameters)g(will)g(result)g(in)f(an)330
-1943 y(error)g(message.)154 2080 y(45.)61 b(When)43 b(the)g
-Ft(alias)f Fu(builtin)g(displa)m(ys)i(alias)g(de\014nitions,)i(it)d(do)
-s(es)g(not)g(displa)m(y)h(them)f(with)g(a)330 2189 y(leading)31
-b(`)p Ft(alias)e Fu(')i(unless)f(the)g Ft(-p)g Fu(option)h(is)f
-(supplied.)154 2326 y(46.)61 b(When)40 b(the)g Ft(set)f
-Fu(builtin)h(is)g(in)m(v)m(ok)m(ed)h(without)f(options,)j(it)e(do)s(es)
-f(not)g(displa)m(y)g(shell)g(function)330 2436 y(names)30
-b(and)g(de\014nitions.)154 2573 y(47.)61 b(When)36 b(the)g
-Ft(set)g Fu(builtin)g(is)g(in)m(v)m(ok)m(ed)i(without)e(options,)i(it)f
-(displa)m(ys)f(v)-5 b(ariable)37 b(v)-5 b(alues)37 b(without)330
-2682 y(quotes,)26 b(unless)d(they)i(con)m(tain)g(shell)f(metac)m
-(haracters,)k(ev)m(en)d(if)f(the)g(result)g(con)m(tains)i(nonprin)m
-(ting)330 2792 y(c)m(haracters.)154 2929 y(48.)61 b(When)35
-b(the)g Ft(cd)f Fu(builtin)h(is)g(in)m(v)m(ok)m(ed)i(in)d
-Fr(logical)41 b Fu(mo)s(de,)36 b(and)f(the)g(pathname)g(constructed)g
-(from)330 3039 y Ft($PWD)i Fu(and)h(the)h(directory)f(name)h(supplied)e
+Ft(-e)330 5340 y Fu(option)31 b(in)f(suc)m(h)g(subshells.)p
+eop end
+%%Page: 109 115
+TeXDict begin 109 114 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(109)154 299 y(45.)61
+b(Enabling)32 b Fm(posix)f Fu(mo)s(de)h(has)g(the)h(e\013ect)g(of)g
+(setting)g(the)g Ft(shift_verbose)28 b Fu(option,)34
+b(so)e(n)m(umeric)330 408 y(argumen)m(ts)f(to)g Ft(shift)f
+Fu(that)h(exceed)h(the)e(n)m(um)m(b)s(er)g(of)h(p)s(ositional)g
+(parameters)g(will)g(result)g(in)f(an)330 518 y(error)g(message.)154
+662 y(46.)61 b(When)43 b(the)g Ft(alias)f Fu(builtin)g(displa)m(ys)i
+(alias)g(de\014nitions,)i(it)d(do)s(es)g(not)g(displa)m(y)h(them)f
+(with)g(a)330 771 y(leading)31 b(`)p Ft(alias)e Fu(')i(unless)f(the)g
+Ft(-p)g Fu(option)h(is)f(supplied.)154 915 y(47.)61 b(When)40
+b(the)g Ft(set)f Fu(builtin)h(is)g(in)m(v)m(ok)m(ed)h(without)f
+(options,)j(it)e(do)s(es)f(not)g(displa)m(y)g(shell)g(function)330
+1025 y(names)30 b(and)g(de\014nitions.)154 1169 y(48.)61
+b(When)36 b(the)g Ft(set)g Fu(builtin)g(is)g(in)m(v)m(ok)m(ed)i
+(without)e(options,)i(it)f(displa)m(ys)f(v)-5 b(ariable)37
+b(v)-5 b(alues)37 b(without)330 1278 y(quotes,)26 b(unless)d(they)i
+(con)m(tain)g(shell)f(metac)m(haracters,)k(ev)m(en)d(if)f(the)g(result)
+g(con)m(tains)i(nonprin)m(ting)330 1388 y(c)m(haracters.)154
+1532 y(49.)61 b(When)35 b(the)h Ft(cd)e Fu(builtin)h(is)h(in)m(v)m(ok)m
+(ed)g(in)f(logical)j(mo)s(de,)e(and)f(the)h(pathname)f(constructed)g
+(from)330 1641 y Ft($PWD)i Fu(and)h(the)h(directory)f(name)h(supplied)e
(as)i(an)f(argumen)m(t)h(do)s(es)f(not)g(refer)h(to)g(an)f(existing)330
-3148 y(directory)-8 b(,)32 b Ft(cd)d Fu(will)i(fail)g(instead)g(of)f
-(falling)h(bac)m(k)h(to)f Fr(ph)m(ysical)j Fu(mo)s(de.)154
-3285 y(49.)61 b(When)37 b(the)h Ft(cd)f Fu(builtin)g(cannot)h(c)m
+1751 y(directory)-8 b(,)32 b Ft(cd)d Fu(will)i(fail)g(instead)g(of)f
+(falling)h(bac)m(k)h(to)f(ph)m(ysical)g(mo)s(de.)154
+1895 y(50.)61 b(When)37 b(the)h Ft(cd)f Fu(builtin)g(cannot)h(c)m
(hange)h(a)f(directory)g(b)s(ecause)g(the)g(length)g(of)f(the)h
-(pathname)330 3395 y(constructed)52 b(from)f Ft($PWD)f
-Fu(and)g(the)i(directory)g(name)f(supplied)f(as)i(an)f(argumen)m(t)h
-(exceeds)330 3504 y Fr(P)-8 b(A)g(TH)p 584 3504 V 41
-w(MAX)42 b Fu(when)31 b(all)j(sym)m(b)s(olic)e(links)h(are)f(expanded,)
-h Ft(cd)f Fu(will)g(fail)h(instead)g(of)g(attempting)330
-3614 y(to)e(use)f(only)h(the)f(supplied)f(directory)i(name.)154
-3751 y(50.)61 b(The)36 b Ft(pwd)f Fu(builtin)h(v)m(eri\014es)h(that)g
-(the)f(v)-5 b(alue)37 b(it)g(prin)m(ts)e(is)i(the)f(same)h(as)f(the)h
-(curren)m(t)f(directory)-8 b(,)330 3861 y(ev)m(en)31
-b(if)f(it)h(is)g(not)f(ask)m(ed)h(to)g(c)m(hec)m(k)h(the)f(\014le)f
-(system)h(with)f(the)h Ft(-P)e Fu(option.)154 3998 y(51.)61
-b(When)35 b(listing)g(the)g(history)-8 b(,)36 b(the)f
-Ft(fc)g Fu(builtin)f(do)s(es)g(not)h(include)g(an)f(indication)i(of)f
-(whether)f(or)330 4107 y(not)d(a)f(history)h(en)m(try)f(has)g(b)s(een)g
-(mo)s(di\014ed.)154 4244 y(52.)61 b(The)30 b(default)g(editor)h(used)f
-(b)m(y)g Ft(fc)g Fu(is)g Ft(ed)p Fu(.)154 4381 y(53.)61
-b(The)37 b Ft(type)g Fu(and)g Ft(command)f Fu(builtins)i(will)g(not)g
-(rep)s(ort)f(a)i(non-executable)g(\014le)f(as)g(ha)m(ving)h(b)s(een)330
-4491 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g
+(pathname)330 2004 y(constructed)27 b(from)g Ft($PWD)f
+Fu(and)h(the)g(directory)h(name)f(supplied)f(as)i(an)f(argumen)m(t)g
+(exceeds)h Ft(PATH_)330 2114 y(MAX)d Fu(when)g(all)h(sym)m(b)s(olic)g
+(links)g(are)g(expanded,)g Ft(cd)f Fu(will)h(fail)h(instead)f(of)g
+(attempting)h(to)f(use)g(only)330 2224 y(the)31 b(supplied)e(directory)
+i(name.)154 2367 y(51.)61 b(The)36 b Ft(pwd)f Fu(builtin)h(v)m
+(eri\014es)h(that)g(the)f(v)-5 b(alue)37 b(it)g(prin)m(ts)e(is)i(the)f
+(same)h(as)f(the)h(curren)m(t)f(directory)-8 b(,)330
+2477 y(ev)m(en)31 b(if)f(it)h(is)g(not)f(ask)m(ed)h(to)g(c)m(hec)m(k)h
+(the)f(\014le)f(system)h(with)f(the)h Ft(-P)e Fu(option.)154
+2621 y(52.)61 b(When)35 b(listing)g(the)g(history)-8
+b(,)36 b(the)f Ft(fc)g Fu(builtin)f(do)s(es)g(not)h(include)g(an)f
+(indication)i(of)f(whether)f(or)330 2730 y(not)d(a)f(history)h(en)m
+(try)f(has)g(b)s(een)g(mo)s(di\014ed.)154 2874 y(53.)61
+b(The)30 b(default)g(editor)h(used)f(b)m(y)g Ft(fc)g
+Fu(is)g Ft(ed)p Fu(.)154 3018 y(54.)61 b(The)37 b Ft(type)g
+Fu(and)g Ft(command)f Fu(builtins)i(will)g(not)g(rep)s(ort)f(a)i
+(non-executable)g(\014le)f(as)g(ha)m(ving)h(b)s(een)330
+3128 y(found,)26 b(though)h(the)g(shell)g(will)g(attempt)h(to)g
(execute)g(suc)m(h)f(a)g(\014le)g(if)g(it)g(is)g(the)g(only)g(so-named)
-g(\014le)330 4600 y(found)i(in)h Ft($PATH)p Fu(.)154
-4737 y(54.)61 b(The)33 b Ft(vi)f Fu(editing)i(mo)s(de)f(will)g(in)m(v)m
+g(\014le)330 3237 y(found)i(in)h Ft($PATH)p Fu(.)154
+3381 y(55.)61 b(The)33 b Ft(vi)f Fu(editing)i(mo)s(de)f(will)g(in)m(v)m
(ok)m(e)i(the)e Ft(vi)g Fu(editor)h(directly)f(when)f(the)i(`)p
-Ft(v)p Fu(')f(command)g(is)g(run,)330 4847 y(instead)e(of)f(c)m(hec)m
-(king)i Ft($VISUAL)d Fu(and)g Ft($EDITOR)p Fu(.)154 4984
-y(55.)61 b(When)41 b(the)g Ft(xpg_echo)e Fu(option)i(is)g(enabled,)j
+Ft(v)p Fu(')f(command)g(is)g(run,)330 3491 y(instead)e(of)f(c)m(hec)m
+(king)i Ft($VISUAL)d Fu(and)g Ft($EDITOR)p Fu(.)154 3634
+y(56.)61 b(When)41 b(the)g Ft(xpg_echo)e Fu(option)i(is)g(enabled,)j
(Bash)d(do)s(es)g(not)g(attempt)h(to)g(in)m(terpret)f(an)m(y)h(ar-)330
-5093 y(gumen)m(ts)35 b(to)g Ft(echo)e Fu(as)i(options.)54
+3744 y(gumen)m(ts)35 b(to)g Ft(echo)e Fu(as)i(options.)54
b(Eac)m(h)35 b(argumen)m(t)g(is)f(displa)m(y)m(ed,)j(after)e(escap)s(e)
-g(c)m(haracters)h(are)330 5203 y(con)m(v)m(erted.)154
-5340 y(56.)61 b(The)30 b Ft(ulimit)f Fu(builtin)g(uses)h(a)h(blo)s(c)m
+g(c)m(haracters)h(are)330 3854 y(con)m(v)m(erted.)154
+3998 y(57.)61 b(The)30 b Ft(ulimit)f Fu(builtin)g(uses)h(a)h(blo)s(c)m
(k)g(size)g(of)g(512)g(b)m(ytes)g(for)f(the)h Ft(-c)f
-Fu(and)g Ft(-f)f Fu(options.)p eop end
-%%Page: 104 110
-TeXDict begin 104 109 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(104)154 299 y(57.)61
-b(The)39 b(arriv)-5 b(al)41 b(of)f Ft(SIGCHLD)e Fu(when)h(a)h(trap)g
-(is)g(set)h(on)f Ft(SIGCHLD)e Fu(do)s(es)h(not)h(in)m(terrupt)g(the)g
-Ft(wait)330 408 y Fu(builtin)c(and)h(cause)g(it)h(to)f(return)f
+Fu(and)g Ft(-f)f Fu(options.)154 4141 y(58.)61 b(The)39
+b(arriv)-5 b(al)41 b(of)f Ft(SIGCHLD)e Fu(when)h(a)h(trap)g(is)g(set)h
+(on)f Ft(SIGCHLD)e Fu(do)s(es)h(not)h(in)m(terrupt)g(the)g
+Ft(wait)330 4251 y Fu(builtin)c(and)h(cause)g(it)h(to)f(return)f
(immediately)-8 b(.)62 b(The)37 b(trap)f(command)h(is)g(run)e(once)j
-(for)f(eac)m(h)330 518 y(c)m(hild)31 b(that)g(exits.)154
-654 y(58.)61 b(The)27 b Ft(read)f Fu(builtin)g(ma)m(y)i(b)s(e)e(in)m
+(for)f(eac)m(h)330 4361 y(c)m(hild)31 b(that)g(exits.)154
+4504 y(59.)61 b(The)27 b Ft(read)f Fu(builtin)g(ma)m(y)i(b)s(e)e(in)m
(terrupted)h(b)m(y)g(a)h(signal)f(for)g(whic)m(h)g(a)h(trap)f(has)g(b)s
-(een)f(set.)40 b(If)27 b(Bash)330 764 y(receiv)m(es)41
+(een)f(set.)40 b(If)27 b(Bash)330 4614 y(receiv)m(es)41
b(a)f(trapp)s(ed)e(signal)i(while)f(executing)h Ft(read)p
Fu(,)h(the)e(trap)h(handler)e(executes)i(and)f Ft(read)330
-874 y Fu(returns)29 b(an)h(exit)i(status)e(greater)i(than)e(128.)154
-1010 y(59.)61 b(Bash)27 b(remo)m(v)m(es)h(an)e(exited)i(bac)m(kground)e
-(pro)s(cess's)h(status)g(from)f(the)h(list)g(of)g(suc)m(h)f(statuses)h
-(after)330 1119 y(the)k Ft(wait)e Fu(builtin)h(is)g(used)g(to)h(obtain)
-g(it.)275 1284 y(There)j(is)g(other)h Fm(posix)f Fu(b)s(eha)m(vior)h
-(that)g(Bash)g(do)s(es)f(not)h(implemen)m(t)g(b)m(y)g(default)f(ev)m
-(en)i(when)d(in)150 1394 y Fm(posix)d Fu(mo)s(de.)40
-b(Sp)s(eci\014cally:)199 1532 y(1.)61 b(The)30 b Ft(fc)f
-Fu(builtin)h(c)m(hec)m(ks)i Ft($EDITOR)c Fu(as)j(a)f(program)g(to)h
-(edit)g(history)f(en)m(tries)h(if)f Ft(FCEDIT)f Fu(is)h(unset,)330
-1641 y(rather)g(than)g(defaulting)h(directly)g(to)g Ft(ed)p
-Fu(.)40 b Ft(fc)30 b Fu(uses)g Ft(ed)g Fu(if)g Ft(EDITOR)f
-Fu(is)h(unset.)199 1778 y(2.)61 b(As)29 b(noted)g(ab)s(o)m(v)m(e,)i
-(Bash)e(requires)g(the)g Ft(xpg_echo)e Fu(option)j(to)g(b)s(e)e
-(enabled)h(for)g(the)g Ft(echo)f Fu(builtin)330 1887
-y(to)j(b)s(e)f(fully)g(conforman)m(t.)275 2052 y(Bash)c(can)g(b)s(e)f
-(con\014gured)h(to)g(b)s(e)g Fm(posix)p Fu(-conforman)m(t)g(b)m(y)g
-(default,)h(b)m(y)f(sp)s(ecifying)g(the)g Ft(--enable-)150
-2162 y(strict-posix-default)c Fu(to)27 b Ft(configure)e
-Fu(when)h(building)h(\(see)h(Section)g(10.8)g([Optional)g(F)-8
-b(eatures],)150 2271 y(page)31 b(155\).)150 2518 y Fs(6.12)68
-b(Shell)46 b(Compatibilit)l(y)h(Mo)t(de)150 2677 y Fu(Bash-4.0)30
-b(in)m(tro)s(duced)d(the)i(concept)g(of)f(a)h(`shell)f(compatibilit)m
-(y)i(lev)m(el',)h(sp)s(eci\014ed)d(as)g(a)h(set)f(of)h(options)150
-2786 y(to)i(the)f(shopt)g(builtin)g(\()p Ft(compat31)p
-Fu(,)e Ft(compat32)p Fu(,)h Ft(compat40)p Fu(,)f Ft(compat41)p
-Fu(,)g(and)i(so)g(on\).)41 b(There)30 b(is)g(only)150
-2896 y(one)f(curren)m(t)f(compatibilit)m(y)j(lev)m(el)f({)f(eac)m(h)h
-(option)f(is)g(m)m(utually)g(exclusiv)m(e.)41 b(The)28
-b(compatibilit)m(y)j(lev)m(el)150 3006 y(is)39 b(in)m(tended)g(to)h
-(allo)m(w)g(users)e(to)i(select)h(b)s(eha)m(vior)e(from)f(previous)h(v)
-m(ersions)g(that)h(is)f(incompatible)150 3115 y(with)d(new)m(er)g(v)m
-(ersions)g(while)g(they)g(migrate)h(scripts)f(to)h(use)f(curren)m(t)f
-(features)i(and)e(b)s(eha)m(vior.)58 b(It's)150 3225
-y(in)m(tended)30 b(to)h(b)s(e)f(a)h(temp)s(orary)f(solution.)275
-3363 y(This)k(section)j(do)s(es)e(not)h(men)m(tion)g(b)s(eha)m(vior)g
-(that)g(is)f(standard)g(for)g(a)h(particular)g(v)m(ersion)g(\(e.g.,)150
-3473 y(setting)24 b Ft(compat32)e Fu(means)h(that)h(quoting)g(the)f
-(rhs)g(of)g(the)h(regexp)f(matc)m(hing)i(op)s(erator)e(quotes)h(sp)s
-(ecial)150 3582 y(regexp)31 b(c)m(haracters)g(in)g(the)f(w)m(ord,)g
-(whic)m(h)g(is)h(default)f(b)s(eha)m(vior)h(in)f(bash-3.2)h(and)f(ab)s
-(o)m(v)m(e\).)275 3720 y(If)f(a)h(user)f(enables,)h(sa)m(y)-8
-b(,)31 b Ft(compat32)p Fu(,)d(it)i(ma)m(y)g(a\013ect)h(the)f(b)s(eha)m
-(vior)g(of)g(other)g(compatibilit)m(y)h(lev)m(els)150
-3830 y(up)23 b(to)h(and)f(including)h(the)g(curren)m(t)f(compatibilit)m
-(y)j(lev)m(el.)41 b(The)23 b(idea)h(is)g(that)g(eac)m(h)h(compatibilit)
-m(y)h(lev)m(el)150 3939 y(con)m(trols)35 b(b)s(eha)m(vior)f(that)g(c)m
-(hanged)g(in)f(that)h(v)m(ersion)g(of)g(Bash,)h(but)e(that)h(b)s(eha)m
-(vior)g(ma)m(y)g(ha)m(v)m(e)h(b)s(een)150 4049 y(presen)m(t)f(in)g
-(earlier)g(v)m(ersions.)52 b(F)-8 b(or)35 b(instance,)g(the)f(c)m
-(hange)h(to)g(use)f(lo)s(cale-based)h(comparisons)f(with)150
-4159 y(the)e Ft([[)f Fu(command)g(came)h(in)g(bash-4.1,)h(and)d
-(earlier)j(v)m(ersions)f(used)f(ASCI)s(I-based)f(comparisons,)i(so)150
-4268 y(enabling)27 b Ft(compat32)e Fu(will)i(enable)g(ASCI)s(I-based)e
-(comparisons)i(as)g(w)m(ell.)41 b(That)26 b(gran)m(ularit)m(y)i(ma)m(y)
-g(not)150 4378 y(b)s(e)i(su\016cien)m(t)i(for)f(all)g(uses,)g(and)g(as)
-g(a)g(result)g(users)f(should)g(emplo)m(y)i(compatibilit)m(y)h(lev)m
-(els)g(carefully)-8 b(.)150 4487 y(Read)31 b(the)f(do)s(cumen)m(tation)
-h(for)g(a)f(particular)h(feature)g(to)g(\014nd)e(out)h(the)h(curren)m
-(t)f(b)s(eha)m(vior.)275 4625 y(Bash-4.3)44 b(in)m(tro)s(duced)e(a)h
-(new)f(shell)h(v)-5 b(ariable:)65 b Ft(BASH_COMPAT)p
-Fu(.)75 b(The)42 b(v)-5 b(alue)43 b(assigned)g(to)g(this)150
-4735 y(v)-5 b(ariable)32 b(\(a)g(decimal)h(v)m(ersion)e(n)m(um)m(b)s
+4724 y Fu(returns)29 b(an)h(exit)i(status)e(greater)i(than)e(128.)154
+4867 y(60.)61 b(The)33 b Ft(printf)f Fu(builtin)i(uses)f
+Ft(double)f Fu(\(via)j Ft(strtod)p Fu(\))d(to)j(con)m(v)m(ert)g
+(argumen)m(ts)f(corresp)s(onding)f(to)330 4977 y(\015oating)40
+b(p)s(oin)m(t)f(con)m(v)m(ersion)h(sp)s(eci\014ers,)h(instead)e(of)g
+Ft(long)29 b(double)38 b Fu(if)h(it's)g(a)m(v)-5 b(ailable.)69
+b(The)39 b(`)p Ft(L)p Fu(')330 5087 y(length)31 b(mo)s(di\014er)e
+(forces)i Ft(printf)e Fu(to)i(use)f Ft(long)f(double)g
+Fu(if)h(it's)h(a)m(v)-5 b(ailable.)154 5230 y(61.)61
+b(Bash)27 b(remo)m(v)m(es)h(an)e(exited)i(bac)m(kground)e(pro)s(cess's)
+h(status)g(from)f(the)h(list)g(of)g(suc)m(h)f(statuses)h(after)330
+5340 y(the)k Ft(wait)e Fu(builtin)h(is)g(used)g(to)h(obtain)g(it.)p
+eop end
+%%Page: 110 116
+TeXDict begin 110 115 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(110)275 299 y(There)34
+b(is)g(other)h Fm(posix)f Fu(b)s(eha)m(vior)h(that)g(Bash)g(do)s(es)f
+(not)h(implemen)m(t)g(b)m(y)g(default)f(ev)m(en)i(when)d(in)150
+408 y Fm(posix)d Fu(mo)s(de.)40 b(Sp)s(eci\014cally:)199
+549 y(1.)61 b(The)30 b Ft(fc)f Fu(builtin)h(c)m(hec)m(ks)i
+Ft($EDITOR)c Fu(as)j(a)f(program)g(to)h(edit)g(history)f(en)m(tries)h
+(if)f Ft(FCEDIT)f Fu(is)h(unset,)330 658 y(rather)g(than)g(defaulting)h
+(directly)g(to)g Ft(ed)p Fu(.)40 b Ft(fc)30 b Fu(uses)g
+Ft(ed)g Fu(if)g Ft(EDITOR)f Fu(is)h(unset.)199 796 y(2.)61
+b(As)29 b(noted)g(ab)s(o)m(v)m(e,)i(Bash)e(requires)g(the)g
+Ft(xpg_echo)e Fu(option)j(to)g(b)s(e)e(enabled)h(for)g(the)g
+Ft(echo)f Fu(builtin)330 905 y(to)j(b)s(e)f(fully)g(conforman)m(t.)275
+1073 y(Bash)c(can)g(b)s(e)f(con\014gured)h(to)g(b)s(e)g
+Fm(posix)p Fu(-conforman)m(t)g(b)m(y)g(default,)h(b)m(y)f(sp)s
+(ecifying)g(the)g Ft(--enable-)150 1183 y(strict-posix-default)c
+Fu(to)27 b Ft(configure)e Fu(when)h(building)h(\(see)h(Section)g(10.8)g
+([Optional)g(F)-8 b(eatures],)150 1292 y(page)31 b(161\).)150
+1542 y Fs(6.12)68 b(Shell)46 b(Compatibilit)l(y)h(Mo)t(de)150
+1701 y Fu(Bash-4.0)33 b(in)m(tro)s(duced)f(the)f(concept)i(of)f(a)g
+Fr(shell)g(compatibilit)m(y)i(lev)m(el)p Fu(,)g(sp)s(eci\014ed)d(as)h
+(a)g(set)h(of)f(options)150 1811 y(to)f(the)f(shopt)g(builtin)g(\()p
+Ft(compat31)p Fu(,)e Ft(compat32)p Fu(,)h Ft(compat40)p
+Fu(,)f Ft(compat41)p Fu(,)g(and)i(so)g(on\).)41 b(There)30
+b(is)g(only)150 1920 y(one)f(curren)m(t)f(compatibilit)m(y)j(lev)m(el)f
+({)f(eac)m(h)h(option)f(is)g(m)m(utually)g(exclusiv)m(e.)41
+b(The)28 b(compatibilit)m(y)j(lev)m(el)150 2030 y(is)39
+b(in)m(tended)g(to)h(allo)m(w)g(users)e(to)i(select)h(b)s(eha)m(vior)e
+(from)f(previous)h(v)m(ersions)g(that)h(is)f(incompatible)150
+2139 y(with)d(new)m(er)g(v)m(ersions)g(while)g(they)g(migrate)h
+(scripts)f(to)h(use)f(curren)m(t)f(features)i(and)e(b)s(eha)m(vior.)58
+b(It's)150 2249 y(in)m(tended)30 b(to)h(b)s(e)f(a)h(temp)s(orary)f
+(solution.)275 2389 y(This)k(section)j(do)s(es)e(not)h(men)m(tion)g(b)s
+(eha)m(vior)g(that)g(is)f(standard)g(for)g(a)h(particular)g(v)m(ersion)
+g(\(e.g.,)150 2499 y(setting)d Ft(compat32)c Fu(means)i(that)i(quoting)
+e(the)h(rhs)f(of)g(the)h(regexp)g(matc)m(hing)h(op)s(erator)e(quotes)h
+(sp)s(e-)150 2608 y(cial)39 b(regexp)e(c)m(haracters)i(in)e(the)g(w)m
+(ord,)i(whic)m(h)e(is)g(default)h(b)s(eha)m(vior)f(in)g(bash-3.2)h(and)
+f(subsequen)m(t)150 2718 y(v)m(ersions\).)275 2858 y(If)29
+b(a)h(user)f(enables,)h(sa)m(y)-8 b(,)31 b Ft(compat32)p
+Fu(,)d(it)i(ma)m(y)g(a\013ect)h(the)f(b)s(eha)m(vior)g(of)g(other)g
+(compatibilit)m(y)h(lev)m(els)150 2968 y(up)23 b(to)h(and)f(including)h
+(the)g(curren)m(t)f(compatibilit)m(y)j(lev)m(el.)41 b(The)23
+b(idea)h(is)g(that)g(eac)m(h)h(compatibilit)m(y)h(lev)m(el)150
+3077 y(con)m(trols)35 b(b)s(eha)m(vior)f(that)g(c)m(hanged)g(in)f(that)
+h(v)m(ersion)g(of)g(Bash,)h(but)e(that)h(b)s(eha)m(vior)g(ma)m(y)g(ha)m
+(v)m(e)h(b)s(een)150 3187 y(presen)m(t)f(in)g(earlier)g(v)m(ersions.)52
+b(F)-8 b(or)35 b(instance,)g(the)f(c)m(hange)h(to)g(use)f(lo)s
+(cale-based)h(comparisons)f(with)150 3296 y(the)e Ft([[)f
+Fu(command)g(came)h(in)g(bash-4.1,)h(and)d(earlier)j(v)m(ersions)f
+(used)f(ASCI)s(I-based)f(comparisons,)i(so)150 3406 y(enabling)27
+b Ft(compat32)e Fu(will)i(enable)g(ASCI)s(I-based)e(comparisons)i(as)g
+(w)m(ell.)41 b(That)26 b(gran)m(ularit)m(y)i(ma)m(y)g(not)150
+3515 y(b)s(e)i(su\016cien)m(t)i(for)f(all)g(uses,)g(and)g(as)g(a)g
+(result)g(users)f(should)g(emplo)m(y)i(compatibilit)m(y)h(lev)m(els)g
+(carefully)-8 b(.)150 3625 y(Read)31 b(the)f(do)s(cumen)m(tation)h(for)
+g(a)f(particular)h(feature)g(to)g(\014nd)e(out)h(the)h(curren)m(t)f(b)s
+(eha)m(vior.)275 3765 y(Bash-4.3)44 b(in)m(tro)s(duced)e(a)h(new)f
+(shell)h(v)-5 b(ariable:)65 b Ft(BASH_COMPAT)p Fu(.)75
+b(The)42 b(v)-5 b(alue)43 b(assigned)g(to)g(this)150
+3875 y(v)-5 b(ariable)32 b(\(a)g(decimal)h(v)m(ersion)e(n)m(um)m(b)s
(er)f(lik)m(e)j(4.2,)g(or)e(an)h(in)m(teger)g(corresp)s(onding)f(to)h
-(the)f Ft(compat)p Fr(NN)150 4845 y Fu(option,)g(lik)m(e)h(42\))f
+(the)f Ft(compat)p Fr(NN)150 3984 y Fu(option,)g(lik)m(e)h(42\))f
(determines)g(the)f(compatibilit)m(y)j(lev)m(el.)275
-4983 y(Starting)e(with)g(bash-4.4,)h(Bash)f(has)g(b)s(egun)f
+4125 y(Starting)e(with)g(bash-4.4,)h(Bash)f(has)g(b)s(egun)f
(deprecating)h(older)h(compatibilit)m(y)h(lev)m(els.)44
-b(Ev)m(en)m(tu-)150 5092 y(ally)-8 b(,)32 b(the)e(options)h(will)g(b)s
+b(Ev)m(en)m(tu-)150 4234 y(ally)-8 b(,)32 b(the)e(options)h(will)g(b)s
(e)f(remo)m(v)m(ed)h(in)f(fa)m(v)m(or)i(of)e Ft(BASH_COMPAT)p
-Fu(.)275 5230 y(Bash-5.0)36 b(is)f(the)g(\014nal)f(v)m(ersion)i(for)e
+Fu(.)275 4374 y(Bash-5.0)36 b(is)f(the)g(\014nal)f(v)m(ersion)i(for)e
(whic)m(h)h(there)g(will)g(b)s(e)f(an)h(individual)f(shopt)h(option)g
-(for)g(the)150 5340 y(previous)30 b(v)m(ersion.)41 b(Users)30
+(for)g(the)150 4484 y(previous)30 b(v)m(ersion.)41 b(Users)30
b(should)g(use)g Ft(BASH_COMPAT)d Fu(on)j(bash-5.0)h(and)f(later)i(v)m
-(ersions.)p eop end
-%%Page: 105 111
-TeXDict begin 105 110 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(105)275 299 y(The)24
-b(follo)m(wing)i(table)g(describ)s(es)e(the)i(b)s(eha)m(vior)f(c)m
-(hanges)h(con)m(trolled)g(b)m(y)f(eac)m(h)h(compatibilit)m(y)h(lev)m
-(el)150 408 y(setting.)43 b(The)30 b Ft(compat)p Fr(NN)39
-b Fu(tag)32 b(is)f(used)f(as)h(shorthand)e(for)h(setting)i(the)f
-(compatibilit)m(y)i(lev)m(el)f(to)g Fr(NN)150 518 y Fu(using)37
-b(one)h(of)g(the)g(follo)m(wing)h(mec)m(hanisms.)63 b(F)-8
-b(or)39 b(v)m(ersions)f(prior)f(to)h(bash-5.0,)j(the)d(compatibilit)m
-(y)150 628 y(lev)m(el)d(ma)m(y)f(b)s(e)e(set)i(using)e(the)i(corresp)s
-(onding)e Ft(compat)p Fr(NN)41 b Fu(shopt)33 b(option.)50
-b(F)-8 b(or)34 b(bash-4.3)f(and)g(later)150 737 y(v)m(ersions,)40
-b(the)e Ft(BASH_COMPAT)d Fu(v)-5 b(ariable)39 b(is)e(preferred,)i(and)e
-(it)i(is)f(required)f(for)g(bash-5.1)i(and)e(later)150
-847 y(v)m(ersions.)150 1025 y Ft(compat31)705 1165 y
-Fq(\017)60 b Fu(quoting)34 b(the)g(rhs)e(of)i(the)f Ft([[)g
-Fu(command's)h(regexp)f(matc)m(hing)i(op)s(erator)f(\(=)p
-Ft(~)p Fu(\))f(has)810 1275 y(no)d(sp)s(ecial)h(e\013ect)150
-1446 y Ft(compat32)705 1587 y Fq(\017)60 b Fu(in)m(terrupting)28
-b(a)g(command)g(list)h(suc)m(h)f(as)g Ft(")p Fu(a)g(;)h(b)f(;)h(c)p
-Ft(")f Fu(causes)h(the)f(execution)h(of)g(the)810 1697
-y(next)j(command)f(in)g(the)h(list)g(\(in)f(bash-4.0)h(and)f(later)i(v)
-m(ersions,)f(the)g(shell)f(acts)i(as)810 1806 y(if)i(it)i(receiv)m(ed)f
-(the)g(in)m(terrupt,)h(so)f(in)m(terrupting)f(one)h(command)f(in)g(a)h
-(list)g(ab)s(orts)810 1916 y(the)31 b(execution)g(of)g(the)f(en)m(tire)
-i(list\))150 2087 y Ft(compat40)705 2228 y Fq(\017)60
-b Fu(the)35 b(`)p Ft(<)p Fu(')g(and)f(`)p Ft(>)p Fu(')g(op)s(erators)h
-(to)g(the)g Ft([[)f Fu(command)h(do)f(not)h(consider)f(the)h(curren)m
-(t)810 2338 y(lo)s(cale)41 b(when)d(comparing)i(strings;)k(they)c(use)f
-(ASCI)s(I)f(ordering.)67 b(Bash)40 b(v)m(ersions)810
-2447 y(prior)f(to)i(bash-4.1)f(use)g(ASCI)s(I)e(collation)k(and)d
-(strcmp\(3\);)45 b(bash-4.1)c(and)e(later)810 2557 y(use)30
-b(the)h(curren)m(t)f(lo)s(cale's)i(collation)h(sequence)d(and)g
-(strcoll\(3\).)150 2728 y Ft(compat41)705 2869 y Fq(\017)60
-b Fu(in)29 b(p)s(osix)f(mo)s(de,)i Ft(time)e Fu(ma)m(y)h(b)s(e)g(follo)
-m(w)m(ed)i(b)m(y)e(options)g(and)g(still)h(b)s(e)e(recognized)j(as)810
-2979 y(a)g(reserv)m(ed)f(w)m(ord)g(\(this)h(is)f Fm(posix)g
-Fu(in)m(terpretation)i(267\))705 3119 y Fq(\017)60 b
-Fu(in)37 b(p)s(osix)f(mo)s(de,)i(the)g(parser)e(requires)g(that)i(an)f
-(ev)m(en)g(n)m(um)m(b)s(er)f(of)h(single)g(quotes)810
-3229 y(o)s(ccur)28 b(in)g(the)h Fr(w)m(ord)i Fu(p)s(ortion)d(of)h(a)g
-(double-quoted)f($)p Fi({)6 b Fu(.)23 b(.)f(.)11 b Fi(})29
-b Fu(parameter)g(expansion)810 3338 y(and)34 b(treats)h(them)f(sp)s
-(ecially)-8 b(,)37 b(so)e(that)g(c)m(haracters)g(within)f(the)h(single)
-g(quotes)g(are)810 3448 y(considered)30 b(quoted)h(\(this)f(is)h
-Fm(posix)e Fu(in)m(terpretation)j(221\))150 3620 y Ft(compat42)705
-3760 y Fq(\017)60 b Fu(the)29 b(replacemen)m(t)i(string)e(in)g
+(ersions.)275 4624 y(The)24 b(follo)m(wing)i(table)g(describ)s(es)e
+(the)i(b)s(eha)m(vior)f(c)m(hanges)h(con)m(trolled)g(b)m(y)f(eac)m(h)h
+(compatibilit)m(y)h(lev)m(el)150 4734 y(setting.)43 b(The)30
+b Ft(compat)p Fr(NN)39 b Fu(tag)32 b(is)f(used)f(as)h(shorthand)e(for)h
+(setting)i(the)f(compatibilit)m(y)i(lev)m(el)f(to)g Fr(NN)150
+4843 y Fu(using)37 b(one)h(of)g(the)g(follo)m(wing)h(mec)m(hanisms.)63
+b(F)-8 b(or)39 b(v)m(ersions)f(prior)f(to)h(bash-5.0,)j(the)d
+(compatibilit)m(y)150 4953 y(lev)m(el)d(ma)m(y)f(b)s(e)e(set)i(using)e
+(the)i(corresp)s(onding)e Ft(compat)p Fr(NN)41 b Fu(shopt)33
+b(option.)50 b(F)-8 b(or)34 b(bash-4.3)f(and)g(later)150
+5062 y(v)m(ersions,)40 b(the)e Ft(BASH_COMPAT)d Fu(v)-5
+b(ariable)39 b(is)e(preferred,)i(and)e(it)i(is)f(required)f(for)g
+(bash-5.1)i(and)e(later)150 5172 y(v)m(ersions.)150 5340
+y Ft(compat31)p eop end
+%%Page: 111 117
+TeXDict begin 111 116 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(111)705 299 y Fq(\017)60
+b Fu(quoting)34 b(the)g(rhs)e(of)i(the)f Ft([[)g Fu(command's)h(regexp)
+f(matc)m(hing)i(op)s(erator)f(\(=)p Ft(~)p Fu(\))f(has)810
+408 y(no)d(sp)s(ecial)h(e\013ect)150 568 y Ft(compat32)705
+702 y Fq(\017)60 b Fu(in)m(terrupting)28 b(a)g(command)g(list)h(suc)m
+(h)f(as)g Ft(")p Fu(a)g(;)h(b)f(;)h(c)p Ft(")f Fu(causes)h(the)f
+(execution)h(of)g(the)810 812 y(next)j(command)f(in)g(the)h(list)g
+(\(in)f(bash-4.0)h(and)f(later)i(v)m(ersions,)f(the)g(shell)f(acts)i
+(as)810 922 y(if)i(it)i(receiv)m(ed)f(the)g(in)m(terrupt,)h(so)f(in)m
+(terrupting)f(one)h(command)f(in)g(a)h(list)g(ab)s(orts)810
+1031 y(the)31 b(execution)g(of)g(the)f(en)m(tire)i(list\))150
+1191 y Ft(compat40)705 1325 y Fq(\017)60 b Fu(the)35
+b(`)p Ft(<)p Fu(')g(and)f(`)p Ft(>)p Fu(')g(op)s(erators)h(to)g(the)g
+Ft([[)f Fu(command)h(do)f(not)h(consider)f(the)h(curren)m(t)810
+1435 y(lo)s(cale)41 b(when)d(comparing)i(strings;)k(they)c(use)f(ASCI)s
+(I)f(ordering.)67 b(Bash)40 b(v)m(ersions)810 1544 y(prior)f(to)i
+(bash-4.1)f(use)g(ASCI)s(I)e(collation)k(and)d(strcmp\(3\);)45
+b(bash-4.1)c(and)e(later)810 1654 y(use)30 b(the)h(curren)m(t)f(lo)s
+(cale's)i(collation)h(sequence)d(and)g(strcoll\(3\).)150
+1813 y Ft(compat41)705 1948 y Fq(\017)60 b Fu(in)29 b(p)s(osix)f(mo)s
+(de,)i Ft(time)e Fu(ma)m(y)h(b)s(e)g(follo)m(w)m(ed)i(b)m(y)e(options)g
+(and)g(still)h(b)s(e)e(recognized)j(as)810 2057 y(a)g(reserv)m(ed)f(w)m
+(ord)g(\(this)h(is)f Fm(posix)g Fu(in)m(terpretation)i(267\))705
+2192 y Fq(\017)60 b Fu(in)37 b(p)s(osix)f(mo)s(de,)i(the)g(parser)e
+(requires)g(that)i(an)f(ev)m(en)g(n)m(um)m(b)s(er)f(of)h(single)g
+(quotes)810 2301 y(o)s(ccur)28 b(in)g(the)h Fr(w)m(ord)i
+Fu(p)s(ortion)d(of)h(a)g(double-quoted)f($)p Fi({)6 b
+Fu(.)23 b(.)f(.)11 b Fi(})29 b Fu(parameter)g(expansion)810
+2411 y(and)34 b(treats)h(them)f(sp)s(ecially)-8 b(,)37
+b(so)e(that)g(c)m(haracters)g(within)f(the)h(single)g(quotes)g(are)810
+2521 y(considered)30 b(quoted)h(\(this)f(is)h Fm(posix)e
+Fu(in)m(terpretation)j(221\))150 2680 y Ft(compat42)705
+2814 y Fq(\017)60 b Fu(the)29 b(replacemen)m(t)i(string)e(in)g
(double-quoted)h(pattern)f(substitution)g(do)s(es)g(not)h(un-)810
-3870 y(dergo)h(quote)g(remo)m(v)-5 b(al,)32 b(as)e(it)h(do)s(es)f(in)g
-(v)m(ersions)h(after)g(bash-4.2)705 4010 y Fq(\017)60
+2924 y(dergo)h(quote)g(remo)m(v)-5 b(al,)32 b(as)e(it)h(do)s(es)f(in)g
+(v)m(ersions)h(after)g(bash-4.2)705 3059 y Fq(\017)60
b Fu(in)39 b(p)s(osix)g(mo)s(de,)j(single)e(quotes)g(are)g(considered)f
-(sp)s(ecial)h(when)f(expanding)g(the)810 4120 y Fr(w)m(ord)d
+(sp)s(ecial)h(when)f(expanding)g(the)810 3168 y Fr(w)m(ord)d
Fu(p)s(ortion)c(of)g(a)h(double-quoted)g($)p Fi({)6 b
Fu(.)22 b(.)h(.)11 b Fi(})33 b Fu(parameter)g(expansion)f(and)g(can)h
-(b)s(e)810 4230 y(used)40 b(to)i(quote)g(a)f(closing)h(brace)f(or)g
+(b)s(e)810 3278 y(used)40 b(to)i(quote)g(a)f(closing)h(brace)f(or)g
(other)h(sp)s(ecial)f(c)m(haracter)i(\(this)e(is)g(part)g(of)810
-4339 y Fm(posix)36 b Fu(in)m(terpretation)h(221\);)42
+3387 y Fm(posix)36 b Fu(in)m(terpretation)h(221\);)42
b(in)36 b(later)h(v)m(ersions,)h(single)f(quotes)g(are)g(not)f(sp)s
-(ecial)810 4449 y(within)30 b(double-quoted)g(w)m(ord)g(expansions)150
-4620 y Ft(compat43)705 4761 y Fq(\017)60 b Fu(the)31
+(ecial)810 3497 y(within)30 b(double-quoted)g(w)m(ord)g(expansions)150
+3656 y Ft(compat43)705 3791 y Fq(\017)60 b Fu(the)31
b(shell)g(do)s(es)g(not)g(prin)m(t)f(a)h(w)m(arning)g(message)h(if)f
-(an)g(attempt)h(is)f(made)f(to)i(use)f(a)810 4871 y(quoted)22
-b(comp)s(ound)f(assignmen)m(t)i(as)f(an)g(argumen)m(t)h(to)g(declare)g
-(\(declare)g(-a)g(fo)s(o='\(1)810 4980 y(2\)'\).)42 b(Later)31
-b(v)m(ersions)g(w)m(arn)f(that)h(this)f(usage)h(is)f(deprecated)705
-5121 y Fq(\017)60 b Fu(w)m(ord)21 b(expansion)g(errors)g(are)h
-(considered)f(non-fatal)h(errors)f(that)h(cause)g(the)f(curren)m(t)810
-5230 y(command)k(to)g(fail,)i(ev)m(en)e(in)g(p)s(osix)f(mo)s(de)h
-(\(the)g(default)g(b)s(eha)m(vior)g(is)g(to)g(mak)m(e)h(them)810
-5340 y(fatal)32 b(errors)d(that)i(cause)g(the)g(shell)f(to)i(exit\))p
-eop end
-%%Page: 106 112
-TeXDict begin 106 111 bop 150 -116 a Fu(Chapter)30 b(6:)41
-b(Bash)30 b(F)-8 b(eatures)2439 b(106)705 299 y Fq(\017)60
-b Fu(when)37 b(executing)i(a)g(shell)f(function,)i(the)f(lo)s(op)f
-(state)h(\(while/un)m(til/etc.\))68 b(is)38 b(not)810
-408 y(reset,)c(so)g Ft(break)d Fu(or)i Ft(continue)e
+(an)g(attempt)h(is)f(made)f(to)i(use)f(a)810 3900 y(quoted)36
+b(comp)s(ound)e(assignmen)m(t)i(as)g(an)g(argumen)m(t)g(to)g(declare)h
+(\(e.g.,)i(declare)d(-a)810 4010 y(fo)s(o='\(1)31 b(2\)'\).)42
+b(Later)31 b(v)m(ersions)g(w)m(arn)f(that)h(this)f(usage)h(is)g
+(deprecated)705 4144 y Fq(\017)60 b Fu(w)m(ord)21 b(expansion)g(errors)
+g(are)h(considered)f(non-fatal)h(errors)f(that)h(cause)g(the)f(curren)m
+(t)810 4254 y(command)k(to)g(fail,)i(ev)m(en)e(in)g(p)s(osix)f(mo)s(de)
+h(\(the)g(default)g(b)s(eha)m(vior)g(is)g(to)g(mak)m(e)h(them)810
+4364 y(fatal)32 b(errors)d(that)i(cause)g(the)g(shell)f(to)i(exit\))705
+4498 y Fq(\017)60 b Fu(when)37 b(executing)i(a)g(shell)f(function,)i
+(the)f(lo)s(op)f(state)h(\(while/un)m(til/etc.\))68 b(is)38
+b(not)810 4608 y(reset,)c(so)g Ft(break)d Fu(or)i Ft(continue)e
Fu(in)h(that)i(function)f(will)g(break)g(or)g(con)m(tin)m(ue)h(lo)s
-(ops)810 518 y(in)h(the)g(calling)h(con)m(text.)57 b(Bash-4.4)37
+(ops)810 4717 y(in)h(the)g(calling)h(con)m(text.)57 b(Bash-4.4)37
b(and)d(later)i(reset)g(the)f(lo)s(op)g(state)i(to)e(prev)m(en)m(t)810
-628 y(this)150 787 y Ft(compat44)705 922 y Fq(\017)60
+4827 y(this)150 4986 y Ft(compat44)705 5121 y Fq(\017)60
b Fu(the)41 b(shell)g(sets)g(up)e(the)i(v)-5 b(alues)41
b(used)f(b)m(y)h Ft(BASH_ARGV)d Fu(and)i Ft(BASH_ARGC)e
-Fu(so)j(they)810 1031 y(can)26 b(expand)f(to)h(the)g(shell's)g(p)s
+Fu(so)j(they)810 5230 y(can)26 b(expand)f(to)h(the)g(shell's)g(p)s
(ositional)g(parameters)g(ev)m(en)h(if)e(extended)h(debugging)810
-1141 y(mo)s(de)k(is)g(not)h(enabled)705 1275 y Fq(\017)60
+5340 y(mo)s(de)k(is)g(not)h(enabled)p eop end
+%%Page: 112 118
+TeXDict begin 112 117 bop 150 -116 a Fu(Chapter)30 b(6:)41
+b(Bash)30 b(F)-8 b(eatures)2439 b(112)705 299 y Fq(\017)60
b Fu(a)40 b(subshell)f(inherits)g(lo)s(ops)h(from)g(its)g(paren)m(t)g
(con)m(text,)k(so)c Ft(break)e Fu(or)i Ft(continue)810
-1385 y Fu(will)35 b(cause)g(the)f(subshell)f(to)i(exit.)54
+408 y Fu(will)35 b(cause)g(the)f(subshell)f(to)i(exit.)54
b(Bash-5.0)36 b(and)d(later)j(reset)f(the)f(lo)s(op)h(state)g(to)810
-1494 y(prev)m(en)m(t)c(the)g(exit)705 1629 y Fq(\017)60
+518 y(prev)m(en)m(t)c(the)g(exit)705 653 y Fq(\017)60
b Fu(v)-5 b(ariable)28 b(assignmen)m(ts)h(preceding)f(builtins)f(lik)m
(e)i Ft(export)d Fu(and)h Ft(readonly)e Fu(that)j(set)810
-1738 y(attributes)37 b(con)m(tin)m(ue)h(to)g(a\013ect)g(v)-5
+762 y(attributes)37 b(con)m(tin)m(ue)h(to)g(a\013ect)g(v)-5
b(ariables)37 b(with)g(the)f(same)h(name)g(in)g(the)f(calling)810
-1848 y(en)m(vironmen)m(t)31 b(ev)m(en)g(if)f(the)h(shell)g(is)f(not)h
-(in)f(p)s(osix)f(mo)s(de)150 2007 y Ft(compat50)f(\(set)h(using)g
-(BASH_COMPAT\))705 2117 y Fq(\017)60 b Fu(Bash-5.1)29
+872 y(en)m(vironmen)m(t)31 b(ev)m(en)g(if)f(the)h(shell)g(is)f(not)h
+(in)f(p)s(osix)f(mo)s(de)150 1031 y Ft(compat50)f(\(set)h(using)g
+(BASH_COMPAT\))705 1141 y Fq(\017)60 b Fu(Bash-5.1)29
b(c)m(hanged)g(the)f(w)m(a)m(y)g Ft($RANDOM)e Fu(is)i(generated)h(to)f
-(in)m(tro)s(duce)g(sligh)m(tly)h(more)810 2227 y(randomness.)39
+(in)m(tro)s(duce)g(sligh)m(tly)h(more)810 1250 y(randomness.)39
b(If)30 b(the)f(shell)h(compatibilit)m(y)i(lev)m(el)f(is)f(set)g(to)h
-(50)f(or)g(lo)m(w)m(er,)h(it)f(rev)m(erts)810 2336 y(to)e(the)g(metho)s
+(50)f(or)g(lo)m(w)m(er,)h(it)f(rev)m(erts)810 1360 y(to)e(the)g(metho)s
(d)f(from)g(bash-5.0)h(and)f(previous)g(v)m(ersions,)i(so)e(seeding)h
-(the)g(random)810 2446 y(n)m(um)m(b)s(er)36 b(generator)j(b)m(y)e
+(the)g(random)810 1469 y(n)m(um)m(b)s(er)36 b(generator)j(b)m(y)e
(assigning)h(a)g(v)-5 b(alue)38 b(to)g Ft(RANDOM)e Fu(will)i(pro)s
-(duce)e(the)i(same)810 2555 y(sequence)31 b(as)f(in)g(bash-5.0)705
-2690 y Fq(\017)60 b Fu(If)22 b(the)g(command)g(hash)f(table)i(is)f
+(duce)e(the)i(same)810 1579 y(sequence)31 b(as)f(in)g(bash-5.0)705
+1714 y Fq(\017)60 b Fu(If)22 b(the)g(command)g(hash)f(table)i(is)f
(empt)m(y)-8 b(,)25 b(Bash)d(v)m(ersions)g(prior)g(to)h(bash-5.1)f
-(prin)m(ted)810 2800 y(an)29 b(informational)i(message)g(to)f(that)g
+(prin)m(ted)810 1823 y(an)29 b(informational)i(message)g(to)f(that)g
(e\013ect,)h(ev)m(en)g(when)d(pro)s(ducing)g(output)h(that)810
-2909 y(can)40 b(b)s(e)g(reused)f(as)h(input.)69 b(Bash-5.1)42
+1933 y(can)40 b(b)s(e)g(reused)f(as)h(input.)69 b(Bash-5.1)42
b(suppresses)c(that)j(message)g(when)e(the)i Ft(-l)810
-3019 y Fu(option)31 b(is)f(supplied.)p eop end
-%%Page: 107 113
-TeXDict begin 107 112 bop 3614 -116 a Fu(107)150 299
+2042 y Fu(option)31 b(is)f(supplied.)150 2202 y Ft(compat51)e(\(set)h
+(using)g(BASH_COMPAT\))705 2311 y Fq(\017)60 b Fu(The)38
+b Ft(unset)g Fu(builtin)g(will)h(unset)f(the)h(arra)m(y)g
+Ft(a)g Fu(giv)m(en)g(an)g(argumen)m(t)g(lik)m(e)h(`)p
+Ft(a[@])p Fu('.)810 2421 y(Bash-5.2)32 b(will)f(unset)f(an)g(elemen)m
+(t)i(with)e(k)m(ey)i(`)p Ft(@)p Fu(')e(\(asso)s(ciativ)m(e)k(arra)m
+(ys\))d(or)f(remo)m(v)m(e)810 2531 y(all)h(the)g(elemen)m(ts)h(without)
+e(unsetting)g(the)h(arra)m(y)g(\(indexed)f(arra)m(ys\))705
+2665 y Fq(\017)60 b Fu(arithmetic)36 b(commands)e(\()h(\(\(...\)\))55
+b(\))f(and)34 b(the)g(expressions)h(in)f(an)g(arithmetic)i(for)810
+2775 y(statemen)m(t)c(can)f(b)s(e)f(expanded)f(more)i(than)f(once)705
+2909 y Fq(\017)60 b Fu(expressions)22 b(used)g(as)h(argumen)m(ts)g(to)h
+(arithmetic)f(op)s(erators)g(in)g(the)g Ft([[)f Fu(conditional)810
+3019 y(command)30 b(can)h(b)s(e)f(expanded)f(more)i(than)f(once)705
+3153 y Fq(\017)60 b Fu(the)35 b(expressions)g(in)g(substring)e
+(parameter)j(brace)f(expansion)g(can)g(b)s(e)g(expanded)810
+3263 y(more)c(than)f(once)705 3397 y Fq(\017)60 b Fu(the)39
+b(expressions)f(in)g(the)h($\(\()h(...)66 b(\)\))f(w)m(ord)39
+b(expansion)f(can)h(b)s(e)f(expanded)g(more)810 3507
+y(than)30 b(once)705 3641 y Fq(\017)60 b Fu(arithmetic)36
+b(expressions)f(used)f(as)h(indexed)f(arra)m(y)i(subscripts)d(can)i(b)s
+(e)g(expanded)810 3751 y(more)c(than)f(once)705 3885
+y Fq(\017)60 b Ft(test)29 b(-v)p Fu(,)35 b(when)f(giv)m(en)h(an)g
+(argumen)m(t)g(of)f(`)p Ft(A[@])p Fu(',)h(where)f Fr(A)h
+Fu(is)f(an)h(existing)g(asso-)810 3995 y(ciativ)m(e)h(arra)m(y)-8
+b(,)37 b(will)d(return)f(true)g(if)h(the)h(arra)m(y)f(has)g(an)m(y)g
+(set)g(elemen)m(ts.)53 b(Bash-5.2)810 4105 y(will)31
+b(lo)s(ok)g(for)f(and)g(rep)s(ort)f(on)i(a)f(k)m(ey)i(named)d(`)p
+Ft(@)p Fu(')705 4239 y Fq(\017)60 b Fu(the)40 b($)p Fi({)p
+Fr(parameter)7 b Fu([:]=)p Fr(v)-5 b(alue)5 b Fi(})42
+b Fu(w)m(ord)e(expansion)f(will)i(return)d Fr(v)-5 b(alue)p
+Fu(,)43 b(b)s(efore)d(an)m(y)810 4349 y(v)-5 b(ariable-sp)s(eci\014c)34
+b(transformations)f(ha)m(v)m(e)h(b)s(een)e(p)s(erformed)f(\(e.g.,)36
+b(con)m(v)m(erting)e(to)810 4458 y(lo)m(w)m(ercase\).)43
+b(Bash-5.2)32 b(will)f(return)e(the)i(\014nal)f(v)-5
+b(alue)31 b(assigned)f(to)i(the)e(v)-5 b(ariable.)705
+4593 y Fq(\017)60 b Fu(P)m(arsing)37 b(command)f(substitutions)g(will)g
+(b)s(eha)m(v)m(e)h(as)g(if)f(extended)g(glob)h(\(see)g(Sec-)810
+4702 y(tion)30 b(4.3.2)h([The)f(Shopt)f(Builtin],)h(page)h(71\))f(is)g
+(enabled,)g(so)g(that)g(parsing)f(a)h(com-)810 4812 y(mand)38
+b(substitution)g(con)m(taining)i(an)f(extglob)h(pattern)f(\(sa)m(y)-8
+b(,)42 b(as)d(part)g(of)g(a)g(shell)810 4922 y(function\))30
+b(will)h(not)g(fail.)41 b(This)30 b(assumes)g(the)h(in)m(ten)m(t)g(is)g
+(to)g(enable)g(extglob)g(b)s(efore)810 5031 y(the)i(command)f(is)g
+(executed)h(and)f(w)m(ord)g(expansions)g(are)h(p)s(erformed.)45
+b(It)33 b(will)f(fail)810 5141 y(at)42 b(w)m(ord)f(expansion)h(time)g
+(if)f(extglob)i(hasn't)e(b)s(een)g(enabled)h(b)m(y)f(the)h(time)g(the)
+810 5250 y(command)30 b(is)h(executed.)p eop end
+%%Page: 113 119
+TeXDict begin 113 118 bop 3614 -116 a Fu(113)150 299
y Fp(7)80 b(Job)54 b(Con)l(trol)150 518 y Fu(This)25
b(c)m(hapter)i(discusses)f(what)g(job)f(con)m(trol)j(is,)f(ho)m(w)f(it)
h(w)m(orks,)g(and)f(ho)m(w)g(Bash)g(allo)m(ws)h(y)m(ou)g(to)g(access)
@@ -15991,9 +16475,9 @@ h Ft(jobs)e Fu(command\),)k(the)d(curren)m(t)h(job)f(is)g(alw)m(a)m(ys)
i(\015agged)f(with)f(a)h(`)p Ft(+)p Fu(',)i(and)d(the)150
5340 y(previous)30 b(job)g(with)g(a)h(`)p Ft(-)p Fu('.)p
eop end
-%%Page: 108 114
-TeXDict begin 108 113 bop 150 -116 a Fu(Chapter)30 b(7:)41
-b(Job)30 b(Con)m(trol)2526 b(108)275 299 y(A)38 b(job)g(ma)m(y)h(also)g
+%%Page: 114 120
+TeXDict begin 114 119 bop 150 -116 a Fu(Chapter)30 b(7:)41
+b(Job)30 b(Con)m(trol)2526 b(114)275 299 y(A)38 b(job)g(ma)m(y)h(also)g
(b)s(e)f(referred)f(to)j(using)d(a)i(pre\014x)e(of)i(the)f(name)h(used)
e(to)i(start)g(it,)i(or)e(using)f(a)150 408 y(substring)g(that)j(app)s
(ears)e(in)g(its)h(command)f(line.)69 b(F)-8 b(or)41
@@ -16019,13 +16503,13 @@ g(to)g(not)g(in)m(terrupt)150 1439 y(an)m(y)k(other)f(output.)40
b(If)28 b(the)g Ft(-b)g Fu(option)g(to)h(the)g Ft(set)e
Fu(builtin)h(is)g(enabled,)h(Bash)g(rep)s(orts)e(suc)m(h)h(c)m(hanges)
150 1548 y(immediately)d(\(see)g(Section)g(4.3.1)g([The)f(Set)g
-(Builtin],)i(page)f(62\).)40 b(An)m(y)24 b(trap)f(on)h
+(Builtin],)i(page)f(67\).)40 b(An)m(y)24 b(trap)f(on)h
Ft(SIGCHLD)e Fu(is)i(executed)150 1658 y(for)30 b(eac)m(h)i(c)m(hild)e
(pro)s(cess)g(that)h(exits.)275 1789 y(If)25 b(an)h(attempt)h(to)g
(exit)g(Bash)f(is)h(made)f(while)g(jobs)f(are)i(stopp)s(ed,)f(\(or)h
(running,)e(if)h(the)g Ft(checkjobs)150 1899 y Fu(option)e(is)f
(enabled)h({)g(see)g(Section)g(4.3.2)h([The)e(Shopt)g(Builtin],)j(page)
-e(66\),)i(the)e(shell)f(prin)m(ts)g(a)h(w)m(arning)150
+e(71\),)i(the)e(shell)f(prin)m(ts)g(a)h(w)m(arning)150
2009 y(message,)k(and)c(if)i(the)f Ft(checkjobs)e Fu(option)j(is)f
(enabled,)i(lists)e(the)h(jobs)f(and)f(their)i(statuses.)39
b(The)25 b Ft(jobs)150 2118 y Fu(command)36 b(ma)m(y)h(then)f(b)s(e)f
@@ -16071,151 +16555,162 @@ b(The)30 b(options)g(ha)m(v)m(e)i(the)e(follo)m(wing)i(meanings:)630
5340 y Ft(-l)384 b Fu(List)31 b(pro)s(cess)f Fm(id)p
Fu(s)g(in)g(addition)h(to)g(the)f(normal)h(information.)p
eop end
-%%Page: 109 115
-TeXDict begin 109 114 bop 150 -116 a Fu(Chapter)30 b(7:)41
-b(Job)30 b(Con)m(trol)2526 b(109)630 299 y Ft(-n)384
+%%Page: 115 121
+TeXDict begin 115 120 bop 150 -116 a Fu(Chapter)30 b(7:)41
+b(Job)30 b(Con)m(trol)2526 b(115)630 299 y Ft(-n)384
b Fu(Displa)m(y)26 b(information)f(only)h(ab)s(out)e(jobs)h(that)g(ha)m
(v)m(e)i(c)m(hanged)e(status)h(since)1110 408 y(the)31
b(user)e(w)m(as)i(last)g(noti\014ed)f(of)h(their)f(status.)630
-583 y Ft(-p)384 b Fu(List)31 b(only)f(the)h(pro)s(cess)f
+570 y Ft(-p)384 b Fu(List)31 b(only)f(the)h(pro)s(cess)f
Fm(id)g Fu(of)h(the)f(job's)g(pro)s(cess)g(group)g(leader.)630
-757 y Ft(-r)384 b Fu(Displa)m(y)32 b(only)e(running)f(jobs.)630
-931 y Ft(-s)384 b Fu(Displa)m(y)32 b(only)e(stopp)s(ed)f(jobs.)630
-1105 y(If)23 b Fr(jobsp)s(ec)28 b Fu(is)23 b(giv)m(en,)i(output)e(is)g
+731 y Ft(-r)384 b Fu(Displa)m(y)32 b(only)e(running)f(jobs.)630
+892 y Ft(-s)384 b Fu(Displa)m(y)32 b(only)e(stopp)s(ed)f(jobs.)630
+1053 y(If)23 b Fr(jobsp)s(ec)28 b Fu(is)23 b(giv)m(en,)i(output)e(is)g
(restricted)h(to)g(information)f(ab)s(out)g(that)h(job.)37
-b(If)23 b Fr(jobsp)s(ec)630 1214 y Fu(is)30 b(not)h(supplied,)e(the)i
-(status)g(of)f(all)h(jobs)f(is)h(listed.)630 1356 y(If)k(the)g
+b(If)23 b Fr(jobsp)s(ec)630 1163 y Fu(is)30 b(not)h(supplied,)e(the)i
+(status)g(of)f(all)h(jobs)f(is)h(listed.)630 1298 y(If)k(the)g
Ft(-x)f Fu(option)i(is)f(supplied,)g Ft(jobs)f Fu(replaces)i(an)m(y)f
Fr(jobsp)s(ec)40 b Fu(found)34 b(in)h Fr(command)j Fu(or)630
-1466 y Fr(argumen)m(ts)j Fu(with)c(the)h(corresp)s(onding)e(pro)s(cess)
+1408 y Fr(argumen)m(ts)j Fu(with)c(the)h(corresp)s(onding)e(pro)s(cess)
h(group)f Fm(id)p Fu(,)k(and)c(executes)j Fr(command)p
-Fu(,)630 1575 y(passing)30 b(it)h Fr(argumen)m(t)r Fu(s,)g(returning)f
-(its)g(exit)i(status.)150 1749 y Ft(kill)870 1891 y(kill)47
+Fu(,)630 1517 y(passing)30 b(it)h Fr(argumen)m(t)r Fu(s,)g(returning)f
+(its)g(exit)i(status.)150 1678 y Ft(kill)870 1814 y(kill)47
b([-s)g Fj(sigspec)p Ft(])e([-n)i Fj(signum)p Ft(])f([-)p
-Fj(sigspec)p Ft(])f Fj(jobspec)h Ft(or)h Fj(pid)870 2001
-y Ft(kill)g(-l|-L)f([)p Fj(exit_status)p Ft(])630 2143
+Fj(sigspec)p Ft(])f Fj(jobspec)h Ft(or)h Fj(pid)870 1923
+y Ft(kill)g(-l|-L)f([)p Fj(exit_status)p Ft(])630 2059
y Fu(Send)22 b(a)i(signal)g(sp)s(eci\014ed)f(b)m(y)g
Fr(sigsp)s(ec)29 b Fu(or)24 b Fr(sign)m(um)f Fu(to)h(the)g(pro)s(cess)f
-(named)g(b)m(y)g(job)g(sp)s(eci\014-)630 2252 y(cation)k
+(named)g(b)m(y)g(job)g(sp)s(eci\014-)630 2168 y(cation)k
Fr(jobsp)s(ec)j Fu(or)25 b(pro)s(cess)g Fm(id)h Fr(pid)p
Fu(.)38 b Fr(sigsp)s(ec)31 b Fu(is)25 b(either)h(a)g(case-insensitiv)m
-(e)i(signal)e(name)630 2362 y(suc)m(h)37 b(as)g Ft(SIGINT)f
+(e)i(signal)e(name)630 2278 y(suc)m(h)37 b(as)g Ft(SIGINT)f
Fu(\(with)h(or)g(without)g(the)g Ft(SIG)g Fu(pre\014x\))f(or)h(a)h
-(signal)g(n)m(um)m(b)s(er;)h Fr(sign)m(um)630 2471 y
+(signal)g(n)m(um)m(b)s(er;)h Fr(sign)m(um)630 2388 y
Fu(is)g(a)f(signal)i(n)m(um)m(b)s(er.)63 b(If)39 b Fr(sigsp)s(ec)44
b Fu(and)38 b Fr(sign)m(um)g Fu(are)h(not)g(presen)m(t,)h
-Ft(SIGTERM)d Fu(is)h(used.)630 2581 y(The)27 b Ft(-l)h
+Ft(SIGTERM)d Fu(is)h(used.)630 2497 y(The)27 b Ft(-l)h
Fu(option)g(lists)h(the)f(signal)h(names.)39 b(If)28
b(an)m(y)g(argumen)m(ts)h(are)f(supplied)f(when)g Ft(-l)g
-Fu(is)630 2690 y(giv)m(en,)32 b(the)g(names)e(of)i(the)f(signals)g
+Fu(is)630 2607 y(giv)m(en,)32 b(the)g(names)e(of)i(the)f(signals)g
(corresp)s(onding)f(to)i(the)f(argumen)m(ts)g(are)h(listed,)g(and)630
-2800 y(the)c(return)f(status)h(is)g(zero.)41 b Fr(exit)p
-1796 2800 28 4 v 41 w(status)32 b Fu(is)c(a)g(n)m(um)m(b)s(er)f(sp)s
-(ecifying)g(a)i(signal)f(n)m(um)m(b)s(er)f(or)630 2910
+2716 y(the)c(return)f(status)h(is)g(zero.)41 b Fr(exit)p
+1796 2716 28 4 v 41 w(status)32 b Fu(is)c(a)g(n)m(um)m(b)s(er)f(sp)s
+(ecifying)g(a)i(signal)f(n)m(um)m(b)s(er)f(or)630 2826
y(the)h(exit)h(status)g(of)f(a)h(pro)s(cess)e(terminated)i(b)m(y)f(a)h
(signal.)40 b(The)28 b Ft(-L)g Fu(option)g(is)g(equiv)-5
-b(alen)m(t)630 3019 y(to)34 b Ft(-l)p Fu(.)47 b(The)32
+b(alen)m(t)630 2935 y(to)34 b Ft(-l)p Fu(.)47 b(The)32
b(return)g(status)h(is)g(zero)g(if)g(at)g(least)h(one)f(signal)h(w)m
-(as)f(successfully)g(sen)m(t,)h(or)630 3129 y(non-zero)d(if)f(an)h
+(as)f(successfully)g(sen)m(t,)h(or)630 3045 y(non-zero)d(if)f(an)h
(error)f(o)s(ccurs)g(or)g(an)g(in)m(v)-5 b(alid)31 b(option)g(is)f
-(encoun)m(tered.)150 3303 y Ft(wait)870 3445 y(wait)47
+(encoun)m(tered.)150 3206 y Ft(wait)870 3342 y(wait)47
b([-fn])f([-p)h Fj(varname)p Ft(])e([)p Fj(jobspec)h
-Ft(or)h Fj(pid)g Ft(...)o(])630 3587 y Fu(W)-8 b(ait)28
+Ft(or)h Fj(pid)g Ft(...)o(])630 3477 y Fu(W)-8 b(ait)28
b(un)m(til)f(the)f(c)m(hild)h(pro)s(cess)f(sp)s(eci\014ed)g(b)m(y)g
(eac)m(h)h(pro)s(cess)f Fm(id)h Fr(pid)i Fu(or)d(job)g(sp)s
-(eci\014cation)630 3696 y Fr(jobsp)s(ec)40 b Fu(exits)35
+(eci\014cation)630 3587 y Fr(jobsp)s(ec)40 b Fu(exits)35
b(and)f(return)g(the)g(exit)i(status)f(of)g(the)g(last)g(command)f(w)m
-(aited)i(for.)53 b(If)35 b(a)630 3806 y(job)g(sp)s(ec)f(is)h(giv)m(en,)
+(aited)i(for.)53 b(If)35 b(a)630 3696 y(job)g(sp)s(ec)f(is)h(giv)m(en,)
i(all)f(pro)s(cesses)f(in)f(the)h(job)g(are)g(w)m(aited)h(for.)54
-b(If)35 b(no)f(argumen)m(ts)i(are)630 3915 y(giv)m(en,)28
+b(If)35 b(no)f(argumen)m(ts)i(are)630 3806 y(giv)m(en,)28
b Ft(wait)c Fu(w)m(aits)j(for)e(all)i(running)c(bac)m(kground)j(jobs)f
-(and)g(the)h(last-executed)h(pro)s(cess)630 4025 y(substitution,)37
+(and)g(the)h(last-executed)h(pro)s(cess)630 3915 y(substitution,)37
b(if)f(its)g(pro)s(cess)f(id)h(is)f(the)h(same)g(as)g
Fr($!)p Fu(,)i(and)d(the)h(return)f(status)h(is)g(zero.)630
-4134 y(If)h(the)h Ft(-n)f Fu(option)h(is)f(supplied,)i
-Ft(wait)d Fu(w)m(aits)j(for)e(a)h(single)g(job)f(from)g(the)h(list)g
-(of)g Fr(pids)630 4244 y Fu(or)31 b Fr(jobsp)s(ecs)k
-Fu(or,)d(if)f(no)g(argumen)m(ts)h(are)g(supplied,)e(an)m(y)i(job,)f(to)
-i(complete)f(and)f(returns)630 4354 y(its)36 b(exit)h(status.)56
-b(If)35 b(none)h(of)g(the)g(supplied)e(argumen)m(ts)i(is)f(a)h(c)m
-(hild)g(of)g(the)g(shell,)h(or)f(if)630 4463 y(no)31
-b(argumen)m(ts)g(are)g(supplied)f(and)g(the)h(shell)g(has)g(no)f(un)m
-(w)m(aited-for)i(c)m(hildren,)f(the)g(exit)630 4573 y(status)k(is)g
-(127.)55 b(If)34 b(the)h Ft(-p)g Fu(option)g(is)g(supplied,)f(the)h
-(pro)s(cess)g(or)f(job)h(iden)m(ti\014er)g(of)g(the)630
-4682 y(job)j(for)g(whic)m(h)f(the)i(exit)g(status)f(is)g(returned)f(is)
-h(assigned)h(to)g(the)f(v)-5 b(ariable)39 b Fr(v)-5 b(arname)630
-4792 y Fu(named)29 b(b)m(y)f(the)i(option)f(argumen)m(t.)41
-b(The)28 b(v)-5 b(ariable)30 b(will)g(b)s(e)e(unset)h(initially)-8
-b(,)31 b(b)s(efore)e(an)m(y)630 4902 y(assignmen)m(t.)76
-b(This)41 b(is)h(useful)f(only)h(when)f(the)h Ft(-n)f
-Fu(option)i(is)f(supplied.)74 b(Supplying)630 5011 y(the)39
-b Ft(-f)f Fu(option,)k(when)37 b(job)i(con)m(trol)h(is)f(enabled,)i
-(forces)e Ft(wait)e Fu(to)j(w)m(ait)g(for)e(eac)m(h)i
-Fr(pid)630 5121 y Fu(or)29 b Fr(jobsp)s(ec)34 b Fu(to)c(terminate)g(b)s
-(efore)f(returning)f(its)h(status,)h(in)m(tead)g(of)f(returning)f(when)
-g(it)630 5230 y(c)m(hanges)37 b(status.)58 b(If)35 b(neither)h
-Fr(jobsp)s(ec)41 b Fu(nor)36 b Fr(pid)i Fu(sp)s(eci\014es)e(an)g(activ)
-m(e)i(c)m(hild)e(pro)s(cess)g(of)630 5340 y(the)31 b(shell,)f(the)h
-(return)e(status)i(is)f(127.)p eop end
-%%Page: 110 116
-TeXDict begin 110 115 bop 150 -116 a Fu(Chapter)30 b(7:)41
-b(Job)30 b(Con)m(trol)2526 b(110)150 299 y Ft(disown)870
-433 y(disown)46 b([-ar])g([-h])h([)p Fj(jobspec)f Ft(...)h(|)g
-Fj(pid)g Ft(...)g(])630 568 y Fu(Without)33 b(options,)h(remo)m(v)m(e)g
-(eac)m(h)f Fr(jobsp)s(ec)38 b Fu(from)32 b(the)h(table)g(of)g(activ)m
-(e)h(jobs.)47 b(If)32 b(the)h Ft(-h)630 677 y Fu(option)j(is)f(giv)m
-(en,)i(the)f(job)f(is)g(not)g(remo)m(v)m(ed)h(from)f(the)g(table,)j
-(but)c(is)i(mark)m(ed)f(so)g(that)630 787 y Ft(SIGHUP)e
-Fu(is)j(not)f(sen)m(t)h(to)g(the)f(job)g(if)g(the)g(shell)h(receiv)m
-(es)h(a)e Ft(SIGHUP)p Fu(.)54 b(If)34 b Fr(jobsp)s(ec)40
-b Fu(is)c(not)630 897 y(presen)m(t,)41 b(and)d(neither)h(the)g
-Ft(-a)f Fu(nor)g(the)h Ft(-r)f Fu(option)h(is)g(supplied,)g(the)g
-(curren)m(t)g(job)f(is)630 1006 y(used.)g(If)25 b(no)h
-Fr(jobsp)s(ec)k Fu(is)c(supplied,)f(the)h Ft(-a)f Fu(option)h(means)g
-(to)g(remo)m(v)m(e)h(or)e(mark)h(all)g(jobs;)630 1116
-y(the)31 b Ft(-r)e Fu(option)i(without)g(a)f Fr(jobsp)s(ec)36
-b Fu(argumen)m(t)30 b(restricts)h(op)s(eration)g(to)g(running)e(jobs.)
-150 1275 y Ft(suspend)870 1410 y(suspend)46 b([-f])630
-1544 y Fu(Susp)s(end)31 b(the)i(execution)h(of)g(this)f(shell)g(un)m
-(til)h(it)g(receiv)m(es)h(a)e Ft(SIGCONT)f Fu(signal.)50
-b(A)33 b(login)630 1654 y(shell)28 b(cannot)g(b)s(e)f(susp)s(ended;)g
-(the)g Ft(-f)g Fu(option)i(can)f(b)s(e)f(used)g(to)h(o)m(v)m(erride)h
-(this)e(and)g(force)630 1763 y(the)k(susp)s(ension.)275
-1923 y(When)f(job)f(con)m(trol)j(is)e(not)h(activ)m(e,)i(the)d
+4025 y(If)h(the)h Ft(-n)f Fu(option)h(is)f(supplied,)i
+Ft(wait)d Fu(w)m(aits)j(for)e(a)h(single)g(job)f(from)h(the)f(list)i
+(of)e Fr(pid)t Fu(s)630 4134 y(or)31 b Fr(jobsp)s(ec)6
+b Fu(s)30 b(or,)i(if)f(no)g(argumen)m(ts)h(are)f(supplied,)g(an)m(y)g
+(job,)h(to)g(complete)h(and)d(returns)630 4244 y(its)36
+b(exit)h(status.)56 b(If)35 b(none)h(of)g(the)g(supplied)e(argumen)m
+(ts)i(is)f(a)h(c)m(hild)g(of)g(the)g(shell,)h(or)f(if)630
+4354 y(no)31 b(argumen)m(ts)g(are)g(supplied)f(and)g(the)h(shell)g(has)
+g(no)f(un)m(w)m(aited-for)i(c)m(hildren,)f(the)g(exit)630
+4463 y(status)k(is)g(127.)55 b(If)34 b(the)h Ft(-p)g
+Fu(option)g(is)g(supplied,)f(the)h(pro)s(cess)g(or)f(job)h(iden)m
+(ti\014er)g(of)g(the)630 4573 y(job)j(for)g(whic)m(h)f(the)i(exit)g
+(status)f(is)g(returned)f(is)h(assigned)h(to)g(the)f(v)-5
+b(ariable)39 b Fr(v)-5 b(arname)630 4682 y Fu(named)29
+b(b)m(y)f(the)i(option)f(argumen)m(t.)41 b(The)28 b(v)-5
+b(ariable)30 b(will)g(b)s(e)e(unset)h(initially)-8 b(,)31
+b(b)s(efore)e(an)m(y)630 4792 y(assignmen)m(t.)76 b(This)41
+b(is)h(useful)f(only)h(when)f(the)h Ft(-n)f Fu(option)i(is)f(supplied.)
+74 b(Supplying)630 4902 y(the)31 b Ft(-f)g Fu(option,)g(when)f(job)h
+(con)m(trol)i(is)e(enabled,)g(forces)g Ft(wait)f Fu(to)i(w)m(ait)g(for)
+f(eac)m(h)h Fr(pid)i Fu(or)630 5011 y Fr(jobsp)s(ec)40
+b Fu(to)d(terminate)f(b)s(efore)f(returning)g(its)h(status,)h(instead)f
+(of)f(returning)g(when)f(it)630 5121 y(c)m(hanges)j(status.)58
+b(If)35 b(neither)h Fr(jobsp)s(ec)41 b Fu(nor)36 b Fr(pid)i
+Fu(sp)s(eci\014es)e(an)g(activ)m(e)i(c)m(hild)e(pro)s(cess)g(of)630
+5230 y(the)28 b(shell,)h(the)e(return)g(status)h(is)g(127.)41
+b(If)27 b Ft(wait)g Fu(is)g(in)m(terrupted)g(b)m(y)h(a)g(signal,)h(the)
+f(return)630 5340 y(status)j(will)f(b)s(e)g(greater)i(than)e(128,)i(as)
+e(describ)s(ed)g(ab)s(o)m(v)m(e)h(\(see)h(Section)f(3.7.6)h([Signals],)
+p eop end
+%%Page: 116 122
+TeXDict begin 116 121 bop 150 -116 a Fu(Chapter)30 b(7:)41
+b(Job)30 b(Con)m(trol)2526 b(116)630 299 y(page)33 b(45\).)48
+b(Otherwise,)32 b(the)h(return)e(status)i(is)f(the)g(exit)i(status)e
+(of)h(the)f(last)h(pro)s(cess)f(or)630 408 y(job)e(w)m(aited)h(for.)150
+568 y Ft(disown)870 702 y(disown)46 b([-ar])g([-h])h([)p
+Fj(jobspec)f Ft(...)h(|)g Fj(pid)g Ft(...)g(])630 837
+y Fu(Without)33 b(options,)h(remo)m(v)m(e)g(eac)m(h)f
+Fr(jobsp)s(ec)38 b Fu(from)32 b(the)h(table)g(of)g(activ)m(e)h(jobs.)47
+b(If)32 b(the)h Ft(-h)630 946 y Fu(option)j(is)f(giv)m(en,)i(the)f(job)
+f(is)g(not)g(remo)m(v)m(ed)h(from)f(the)g(table,)j(but)c(is)i(mark)m
+(ed)f(so)g(that)630 1056 y Ft(SIGHUP)e Fu(is)j(not)f(sen)m(t)h(to)g
+(the)f(job)g(if)g(the)g(shell)h(receiv)m(es)h(a)e Ft(SIGHUP)p
+Fu(.)54 b(If)34 b Fr(jobsp)s(ec)40 b Fu(is)c(not)630
+1166 y(presen)m(t,)41 b(and)d(neither)h(the)g Ft(-a)f
+Fu(nor)g(the)h Ft(-r)f Fu(option)h(is)g(supplied,)g(the)g(curren)m(t)g
+(job)f(is)630 1275 y(used.)g(If)25 b(no)h Fr(jobsp)s(ec)k
+Fu(is)c(supplied,)f(the)h Ft(-a)f Fu(option)h(means)g(to)g(remo)m(v)m
+(e)h(or)e(mark)h(all)g(jobs;)630 1385 y(the)31 b Ft(-r)e
+Fu(option)i(without)g(a)f Fr(jobsp)s(ec)36 b Fu(argumen)m(t)30
+b(restricts)h(op)s(eration)g(to)g(running)e(jobs.)150
+1544 y Ft(suspend)870 1679 y(suspend)46 b([-f])630 1813
+y Fu(Susp)s(end)31 b(the)i(execution)h(of)g(this)f(shell)g(un)m(til)h
+(it)g(receiv)m(es)h(a)e Ft(SIGCONT)f Fu(signal.)50 b(A)33
+b(login)630 1923 y(shell,)25 b(or)f(a)g(shell)f(without)h(job)f(con)m
+(trol)i(enabled,)g(cannot)f(b)s(e)f(susp)s(ended;)h(the)g
+Ft(-f)e Fu(option)630 2032 y(can)35 b(b)s(e)g(used)f(to)i(o)m(v)m
+(erride)g(this)f(and)f(force)i(the)f(susp)s(ension.)53
+b(The)34 b(return)g(status)h(is)h(0)630 2142 y(unless)43
+b(the)g(shell)h(is)f(a)h(login)g(shell)g(or)f(job)g(con)m(trol)i(is)e
+(not)h(enabled)f(and)g Ft(-f)f Fu(is)i(not)630 2252 y(supplied.)275
+2411 y(When)30 b(job)f(con)m(trol)j(is)e(not)h(activ)m(e,)i(the)d
Ft(kill)f Fu(and)h Ft(wait)f Fu(builtins)g(do)h(not)h(accept)h
-Fr(jobsp)s(ec)j Fu(argu-)150 2032 y(men)m(ts.)41 b(They)30
+Fr(jobsp)s(ec)j Fu(argu-)150 2521 y(men)m(ts.)41 b(They)30
b(m)m(ust)g(b)s(e)g(supplied)f(pro)s(cess)h Fm(id)p Fu(s.)150
-2273 y Fs(7.3)68 b(Job)45 b(Con)l(trol)h(V)-11 b(ariables)150
-2457 y Ft(auto_resume)630 2567 y Fu(This)31 b(v)-5 b(ariable)32
+2761 y Fs(7.3)68 b(Job)45 b(Con)l(trol)h(V)-11 b(ariables)150
+2946 y Ft(auto_resume)630 3055 y Fu(This)31 b(v)-5 b(ariable)32
b(con)m(trols)g(ho)m(w)g(the)f(shell)h(in)m(teracts)h(with)e(the)h
-(user)e(and)h(job)g(con)m(trol.)45 b(If)630 2677 y(this)28
+(user)e(and)h(job)g(con)m(trol.)45 b(If)630 3165 y(this)28
b(v)-5 b(ariable)30 b(exists)f(then)f(single)h(w)m(ord)f(simple)h
-(commands)f(without)g(redirections)i(are)630 2786 y(treated)h(as)g
+(commands)f(without)g(redirections)i(are)630 3274 y(treated)h(as)g
(candidates)f(for)g(resumption)g(of)g(an)g(existing)h(job.)41
-b(There)29 b(is)h(no)h(am)m(biguit)m(y)630 2896 y(allo)m(w)m(ed;)f(if)d
+b(There)29 b(is)h(no)h(am)m(biguit)m(y)630 3384 y(allo)m(w)m(ed;)f(if)d
(there)g(is)g(more)g(than)f(one)h(job)g(b)s(eginning)f(with)g(the)h
-(string)g(t)m(yp)s(ed,)g(then)g(the)630 3005 y(most)j(recen)m(tly)h
+(string)g(t)m(yp)s(ed,)g(then)g(the)630 3494 y(most)j(recen)m(tly)h
(accessed)f(job)f(will)h(b)s(e)f(selected.)42 b(The)29
-b(name)g(of)h(a)g(stopp)s(ed)e(job,)i(in)f(this)630 3115
+b(name)g(of)h(a)g(stopp)s(ed)e(job,)i(in)f(this)630 3603
y(con)m(text,)h(is)e(the)g(command)g(line)g(used)f(to)h(start)g(it.)41
b(If)27 b(this)h(v)-5 b(ariable)28 b(is)g(set)g(to)h(the)e(v)-5
-b(alue)630 3225 y(`)p Ft(exact)p Fu(',)33 b(the)g(string)g(supplied)f
+b(alue)630 3713 y(`)p Ft(exact)p Fu(',)33 b(the)g(string)g(supplied)f
(m)m(ust)h(matc)m(h)g(the)h(name)f(of)g(a)g(stopp)s(ed)f(job)h
-(exactly;)j(if)630 3334 y(set)29 b(to)h(`)p Ft(substring)p
+(exactly;)j(if)630 3822 y(set)29 b(to)h(`)p Ft(substring)p
Fu(',)d(the)i(string)g(supplied)e(needs)i(to)g(matc)m(h)h(a)f
-(substring)f(of)h(the)g(name)630 3444 y(of)38 b(a)f(stopp)s(ed)g(job.)
+(substring)f(of)h(the)g(name)630 3932 y(of)38 b(a)f(stopp)s(ed)g(job.)
62 b(The)37 b(`)p Ft(substring)p Fu(')e(v)-5 b(alue)38
b(pro)m(vides)f(functionalit)m(y)i(analogous)g(to)630
-3553 y(the)c(`)p Ft(\045?)p Fu(')g(job)g Fm(id)g Fu(\(see)h(Section)g
-(7.1)g([Job)e(Con)m(trol)i(Basics],)i(page)e(107\).)56
-b(If)34 b(set)i(to)g(an)m(y)630 3663 y(other)c(v)-5 b(alue,)32
+4042 y(the)c(`)p Ft(\045?)p Fu(')g(job)g Fm(id)g Fu(\(see)h(Section)g
+(7.1)g([Job)e(Con)m(trol)i(Basics],)i(page)e(113\).)56
+b(If)34 b(set)i(to)g(an)m(y)630 4151 y(other)c(v)-5 b(alue,)32
b(the)g(supplied)e(string)i(m)m(ust)f(b)s(e)g(a)h(pre\014x)f(of)h(a)g
-(stopp)s(ed)e(job's)i(name;)g(this)630 3773 y(pro)m(vides)e
+(stopp)s(ed)e(job's)i(name;)g(this)630 4261 y(pro)m(vides)e
(functionalit)m(y)i(analogous)g(to)f(the)g(`)p Ft(\045)p
Fu(')f(job)g Fm(id)p Fu(.)p eop end
-%%Page: 111 117
-TeXDict begin 111 116 bop 3614 -116 a Fu(111)150 299
+%%Page: 117 123
+TeXDict begin 117 122 bop 3614 -116 a Fu(117)150 299
y Fp(8)80 b(Command)54 b(Line)f(Editing)150 635 y Fu(This)28
b(c)m(hapter)i(describ)s(es)e(the)h(basic)g(features)h(of)f(the)g
Fm(gnu)f Fu(command)h(line)g(editing)h(in)m(terface.)42
@@ -16228,7 +16723,7 @@ b(Com-)150 745 y(mand)c(line)i(editing)f(is)g(pro)m(vided)g(b)m(y)g
(shell)f(in)m(v)m(o)s(cation.)45 b(Line)31 b(editing)150
1074 y(is)g(also)h(used)f(when)f(using)h(the)g Ft(-e)g
Fu(option)h(to)g(the)f Ft(read)f Fu(builtin)h(command)g(\(see)h
-(Section)g(4.2)h([Bash)150 1183 y(Builtins],)j(page)f(51\).)52
+(Section)g(4.2)h([Bash)150 1183 y(Builtins],)j(page)f(55\).)52
b(By)35 b(default,)g(the)f(line)h(editing)f(commands)g(are)h(similar)f
(to)h(those)f(of)g(Emacs.)150 1293 y(A)h(vi-st)m(yle)h(line)f(editing)g
(in)m(terface)h(is)e(also)i(a)m(v)-5 b(ailable.)55 b(Line)34
@@ -16236,7 +16731,7 @@ b(editing)h(can)g(b)s(e)f(enabled)g(at)h(an)m(y)g(time)150
1402 y(using)h(the)g Ft(-o)30 b(emacs)35 b Fu(or)h Ft(-o)30
b(vi)35 b Fu(options)i(to)g(the)f Ft(set)f Fu(builtin)h(command)g
(\(see)h(Section)g(4.3.1)h([The)150 1512 y(Set)31 b(Builtin],)g(page)g
-(62\),)h(or)e(disabled)g(using)g(the)h Ft(+o)e(emacs)g
+(67\),)h(or)e(disabled)g(using)g(the)h Ft(+o)e(emacs)g
Fu(or)i Ft(+o)e(vi)h Fu(options)h(to)g Ft(set)p Fu(.)150
1804 y Fs(8.1)68 b(In)l(tro)t(duction)45 b(to)g(Line)h(Editing)150
1963 y Fu(The)30 b(follo)m(wing)i(paragraphs)d(describ)s(e)h(the)h
@@ -16275,7 +16770,7 @@ b Ft(DEL)p Fu(,)f Ft(ESC)p Fu(,)g Ft(LFD)p Fu(,)g Ft(SPC)p
Fu(,)g Ft(RET)p Fu(,)150 3902 y(and)d Ft(TAB)f Fu(all)j(stand)e(for)g
(themselv)m(es)i(when)d(seen)i(in)f(this)g(text,)j(or)d(in)h(an)f(init)
h(\014le)f(\(see)i(Section)f(8.3)150 4012 y([Readline)f(Init)g(File],)i
-(page)e(114\).)52 b(If)33 b(y)m(our)g(k)m(eyb)s(oard)h(lac)m(ks)g(a)g
+(page)e(120\).)52 b(If)33 b(y)m(our)g(k)m(eyb)s(oard)h(lac)m(ks)g(a)g
Ft(LFD)f Fu(k)m(ey)-8 b(,)36 b(t)m(yping)e Ft(C-j)e Fu(will)i(pro)s
(duce)150 4122 y(the)d(desired)e(c)m(haracter.)43 b(The)30
b Ft(RET)f Fu(k)m(ey)i(ma)m(y)g(b)s(e)f(lab)s(eled)h
@@ -16299,9 +16794,9 @@ Ft(RET)p Fu(.)39 b(Y)-8 b(ou)25 b(do)g(not)g(ha)m(v)m(e)h(to)g(b)s(e)e
Ft(RET)p Fu(;)i(the)g(en)m(tire)g(line)f(is)h(accepted)g(regardless)g
(of)f(the)h(lo)s(cation)h(of)e(the)h(cursor)150 5340
y(within)c(the)g(line.)p eop end
-%%Page: 112 118
-TeXDict begin 112 117 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(112)150 299 y Fk(8.2.1)63
+%%Page: 118 124
+TeXDict begin 118 123 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(118)150 299 y Fk(8.2.1)63
b(Readline)40 b(Bare)h(Essen)m(tials)150 446 y Fu(In)31
b(order)h(to)h(en)m(ter)g(c)m(haracters)g(in)m(to)g(the)g(line,)g
(simply)e(t)m(yp)s(e)i(them.)46 b(The)31 b(t)m(yp)s(ed)h(c)m(haracter)i
@@ -16338,39 +16833,39 @@ h(c)m(haracter.)150 2108 y Ft(DEL)e Fu(or)i Ft(Backspace)630
(cursor.)150 2826 y Fj(C-_)e Fu(or)i Fj(C-x)e(C-u)630
2936 y Fu(Undo)k(the)h(last)g(editing)g(command.)50 b(Y)-8
b(ou)34 b(can)f(undo)g(all)h(the)f(w)m(a)m(y)i(bac)m(k)f(to)g(an)g
-(empt)m(y)630 3045 y(line.)150 3215 y(\(Dep)s(ending)29
-b(on)h(y)m(our)f(con\014guration,)i(the)e Ft(Backspace)e
-Fu(k)m(ey)k(b)s(e)d(set)j(to)f(delete)h(the)e(c)m(haracter)i(to)g(the)
-150 3324 y(left)37 b(of)f(the)h(cursor)e(and)h(the)g
-Ft(DEL)g Fu(k)m(ey)h(set)f(to)h(delete)h(the)e(c)m(haracter)i
-(underneath)d(the)h(cursor,)i(lik)m(e)150 3434 y Fj(C-d)p
-Fu(,)30 b(rather)g(than)g(the)h(c)m(haracter)h(to)f(the)f(left)h(of)g
-(the)f(cursor.\))150 3640 y Fk(8.2.2)63 b(Readline)40
-b(Mo)m(v)m(emen)m(t)h(Commands)150 3787 y Fu(The)27 b(ab)s(o)m(v)m(e)i
-(table)g(describ)s(es)e(the)g(most)i(basic)f(k)m(eystrok)m(es)h(that)f
-(y)m(ou)g(need)g(in)f(order)g(to)i(do)e(editing)i(of)150
-3897 y(the)k(input)f(line.)49 b(F)-8 b(or)34 b(y)m(our)f(con)m(v)m
-(enience,)j(man)m(y)d(other)g(commands)f(ha)m(v)m(e)j(b)s(een)d(added)g
-(in)h(addition)150 4006 y(to)j Fj(C-b)p Fu(,)f Fj(C-f)p
-Fu(,)g Fj(C-d)p Fu(,)h(and)e Ft(DEL)p Fu(.)54 b(Here)35
-b(are)g(some)h(commands)e(for)h(mo)m(ving)h(more)f(rapidly)f(ab)s(out)h
-(the)150 4116 y(line.)150 4286 y Fj(C-a)336 b Fu(Mo)m(v)m(e)32
-b(to)g(the)e(start)h(of)g(the)f(line.)150 4452 y Fj(C-e)336
-b Fu(Mo)m(v)m(e)32 b(to)g(the)e(end)g(of)g(the)h(line.)150
-4618 y Fj(M-f)336 b Fu(Mo)m(v)m(e)32 b(forw)m(ard)e(a)h(w)m(ord,)f
-(where)g(a)h(w)m(ord)f(is)g(comp)s(osed)g(of)h(letters)h(and)d(digits.)
-150 4785 y Fj(M-b)336 b Fu(Mo)m(v)m(e)32 b(bac)m(kw)m(ard)f(a)g(w)m
-(ord.)150 4951 y Fj(C-l)336 b Fu(Clear)31 b(the)f(screen,)h(reprin)m
-(ting)f(the)h(curren)m(t)f(line)h(at)g(the)f(top.)275
-5121 y(Notice)c(ho)m(w)f Fj(C-f)e Fu(mo)m(v)m(es)j(forw)m(ard)e(a)h(c)m
-(haracter,)j(while)d Fj(M-f)e Fu(mo)m(v)m(es)j(forw)m(ard)e(a)h(w)m
-(ord.)39 b(It)24 b(is)h(a)g(lo)s(ose)150 5230 y(con)m(v)m(en)m(tion)32
+(empt)m(y)630 3045 y(line.)150 3215 y(\(Dep)s(ending)c(on)g(y)m(our)g
+(con\014guration,)h(the)f Ft(Backspace)d Fu(k)m(ey)k(migh)m(t)g(b)s(e)e
+(set)i(to)g(delete)g(the)f(c)m(haracter)150 3324 y(to)h(the)f(left)h
+(of)f(the)g(cursor)f(and)h(the)g Ft(DEL)f Fu(k)m(ey)i(set)g(to)f
+(delete)i(the)e(c)m(haracter)h(underneath)e(the)h(cursor,)150
+3434 y(lik)m(e)i Fj(C-d)p Fu(,)d(rather)i(than)f(the)g(c)m(haracter)i
+(to)f(the)g(left)g(of)g(the)f(cursor.\))150 3640 y Fk(8.2.2)63
+b(Readline)40 b(Mo)m(v)m(emen)m(t)h(Commands)150 3787
+y Fu(The)27 b(ab)s(o)m(v)m(e)i(table)g(describ)s(es)e(the)g(most)i
+(basic)f(k)m(eystrok)m(es)h(that)f(y)m(ou)g(need)g(in)f(order)g(to)i
+(do)e(editing)i(of)150 3897 y(the)k(input)f(line.)49
+b(F)-8 b(or)34 b(y)m(our)f(con)m(v)m(enience,)j(man)m(y)d(other)g
+(commands)f(ha)m(v)m(e)j(b)s(een)d(added)g(in)h(addition)150
+4006 y(to)j Fj(C-b)p Fu(,)f Fj(C-f)p Fu(,)g Fj(C-d)p
+Fu(,)h(and)e Ft(DEL)p Fu(.)54 b(Here)35 b(are)g(some)h(commands)e(for)h
+(mo)m(ving)h(more)f(rapidly)f(ab)s(out)h(the)150 4116
+y(line.)150 4286 y Fj(C-a)336 b Fu(Mo)m(v)m(e)32 b(to)g(the)e(start)h
+(of)g(the)f(line.)150 4452 y Fj(C-e)336 b Fu(Mo)m(v)m(e)32
+b(to)g(the)e(end)g(of)g(the)h(line.)150 4618 y Fj(M-f)336
+b Fu(Mo)m(v)m(e)32 b(forw)m(ard)e(a)h(w)m(ord,)f(where)g(a)h(w)m(ord)f
+(is)g(comp)s(osed)g(of)h(letters)h(and)d(digits.)150
+4785 y Fj(M-b)336 b Fu(Mo)m(v)m(e)32 b(bac)m(kw)m(ard)f(a)g(w)m(ord.)
+150 4951 y Fj(C-l)336 b Fu(Clear)31 b(the)f(screen,)h(reprin)m(ting)f
+(the)h(curren)m(t)f(line)h(at)g(the)f(top.)275 5121 y(Notice)c(ho)m(w)f
+Fj(C-f)e Fu(mo)m(v)m(es)j(forw)m(ard)e(a)h(c)m(haracter,)j(while)d
+Fj(M-f)e Fu(mo)m(v)m(es)j(forw)m(ard)e(a)h(w)m(ord.)39
+b(It)24 b(is)h(a)g(lo)s(ose)150 5230 y(con)m(v)m(en)m(tion)32
b(that)f(con)m(trol)g(k)m(eystrok)m(es)h(op)s(erate)e(on)g(c)m
(haracters)h(while)f(meta)h(k)m(eystrok)m(es)h(op)s(erate)e(on)150
5340 y(w)m(ords.)p eop end
-%%Page: 113 119
-TeXDict begin 113 118 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(113)150 299 y Fk(8.2.3)63
+%%Page: 119 125
+TeXDict begin 119 124 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(119)150 299 y Fk(8.2.3)63
b(Readline)40 b(Killing)i(Commands)150 446 y Fr(Killing)35
b Fu(text)28 b(means)e(to)h(delete)h(the)f(text)g(from)g(the)f(line,)i
(but)e(to)h(sa)m(v)m(e)h(it)g(a)m(w)m(a)m(y)g(for)e(later)i(use,)f
@@ -16398,14 +16893,14 @@ y Fj(M-d)336 b Fu(Kill)27 b(from)f(the)g(cursor)g(to)h(the)f(end)g(of)h
(the)f(curren)m(t)g(w)m(ord,)h(or,)h(if)e(b)s(et)m(w)m(een)h(w)m(ords,)
g(to)g(the)630 1946 y(end)j(of)g(the)h(next)f(w)m(ord.)41
b(W)-8 b(ord)30 b(b)s(oundaries)f(are)i(the)g(same)f(as)h(those)g(used)
-f(b)m(y)g Fj(M-f)p Fu(.)150 2107 y Fj(M-DEL)240 b Fu(Kill)31
-b(from)f(the)h(cursor)f(the)g(start)h(of)g(the)g(curren)m(t)f(w)m(ord,)
-h(or,)f(if)h(b)s(et)m(w)m(een)g(w)m(ords,)f(to)i(the)630
-2217 y(start)39 b(of)f(the)h(previous)f(w)m(ord.)64 b(W)-8
-b(ord)39 b(b)s(oundaries)e(are)i(the)f(same)h(as)g(those)f(used)g(b)m
-(y)630 2326 y Fj(M-b)p Fu(.)150 2487 y Fj(C-w)336 b Fu(Kill)35
-b(from)g(the)g(cursor)f(to)i(the)f(previous)g(whitespace.)55
-b(This)34 b(is)h(di\013eren)m(t)h(than)e Fj(M-DEL)630
+f(b)m(y)g Fj(M-f)p Fu(.)150 2107 y Fj(M-DEL)240 b Fu(Kill)34
+b(from)f(the)g(cursor)g(to)h(the)g(start)g(of)g(the)f(curren)m(t)g(w)m
+(ord,)h(or,)h(if)e(b)s(et)m(w)m(een)h(w)m(ords,)g(to)630
+2217 y(the)28 b(start)g(of)g(the)g(previous)f(w)m(ord.)39
+b(W)-8 b(ord)28 b(b)s(oundaries)e(are)i(the)g(same)g(as)g(those)g(used)
+f(b)m(y)630 2326 y Fj(M-b)p Fu(.)150 2487 y Fj(C-w)336
+b Fu(Kill)35 b(from)g(the)g(cursor)f(to)i(the)f(previous)g(whitespace.)
+55 b(This)34 b(is)h(di\013eren)m(t)h(than)e Fj(M-DEL)630
2597 y Fu(b)s(ecause)c(the)h(w)m(ord)f(b)s(oundaries)f(di\013er.)275
2759 y(Here)42 b(is)f(ho)m(w)h(to)g Fr(y)m(ank)47 b Fu(the)42
b(text)g(bac)m(k)h(in)m(to)f(the)g(line.)74 b(Y)-8 b(anking)43
@@ -16444,13 +16939,13 @@ b(on)e(the)h(input)e(line.)150 4974 y Fk(8.2.5)63 b(Searc)m(hing)40
b(for)i(Commands)g(in)f(the)g(History)150 5121 y Fu(Readline)35
b(pro)m(vides)f(commands)g(for)g(searc)m(hing)h(through)e(the)i
(command)f(history)g(\(see)h(Section)g(9.1)150 5230 y([Bash)i(History)h
-(F)-8 b(acilities],)42 b(page)37 b(146\))i(for)d(lines)h(con)m(taining)
+(F)-8 b(acilities],)42 b(page)37 b(152\))i(for)d(lines)h(con)m(taining)
i(a)e(sp)s(eci\014ed)f(string.)60 b(There)36 b(are)i(t)m(w)m(o)150
5340 y(searc)m(h)31 b(mo)s(des:)40 b Fr(incremen)m(tal)35
b Fu(and)30 b Fr(non-incremen)m(tal)p Fu(.)p eop end
-%%Page: 114 120
-TeXDict begin 114 119 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(114)275 299 y(Incremen)m(tal)26
+%%Page: 120 126
+TeXDict begin 120 125 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(120)275 299 y(Incremen)m(tal)26
b(searc)m(hes)h(b)s(egin)e(b)s(efore)g(the)h(user)f(has)h(\014nished)e
(t)m(yping)i(the)g(searc)m(h)g(string.)39 b(As)26 b(eac)m(h)150
408 y(c)m(haracter)37 b(of)e(the)h(searc)m(h)g(string)f(is)h(t)m(yp)s
@@ -16504,8 +16999,8 @@ b(Readline)47 b(Init)e(File)150 3055 y Fu(Although)f(the)g(Readline)g
(eybindings)f(installed)g(b)m(y)150 3165 y(default,)26
b(it)g(is)e(p)s(ossible)h(to)g(use)f(a)i(di\013eren)m(t)f(set)g(of)g(k)
m(eybindings.)38 b(An)m(y)25 b(user)f(can)h(customize)h(programs)150
-3274 y(that)45 b(use)f(Readline)h(b)m(y)f(putting)g(commands)g(in)g(an)
-g Fr(inputrc)49 b Fu(\014le,)g(con)m(v)m(en)m(tionally)e(in)d(his)g
+3274 y(that)39 b(use)g(Readline)g(b)m(y)f(putting)h(commands)f(in)g(an)
+h Fr(inputrc)k Fu(\014le,)e(con)m(v)m(en)m(tionally)h(in)c(their)h
(home)150 3384 y(directory)-8 b(.)59 b(The)35 b(name)i(of)f(this)g
(\014le)g(is)g(tak)m(en)h(from)f(the)g(v)-5 b(alue)37
b(of)f(the)g(shell)h(v)-5 b(ariable)36 b Ft(INPUTRC)p
@@ -16516,7 +17011,7 @@ b(that)g(\014le)h(do)s(es)e(not)i(exist)g(or)f(cannot)h(b)s(e)150
Fu(.)47 b(The)33 b Ft(bind)g Fu(builtin)g(command)h(can)g(also)h(b)s(e)
e(used)150 3713 y(to)e(set)g(Readline)g(k)m(eybindings)f(and)g(v)-5
b(ariables.)41 b(See)31 b(Section)g(4.2)g([Bash)g(Builtins],)g(page)g
-(51.)275 3843 y(When)e(a)h(program)f(whic)m(h)h(uses)f(the)h(Readline)g
+(55.)275 3843 y(When)e(a)h(program)f(whic)m(h)h(uses)f(the)h(Readline)g
(library)f(starts)h(up,)f(the)h(init)g(\014le)f(is)h(read,)g(and)f(the)
150 3953 y(k)m(ey)i(bindings)e(are)i(set.)275 4083 y(In)26
b(addition,)i(the)f Ft(C-x)i(C-r)d Fu(command)h(re-reads)g(this)f(init)
@@ -16529,7 +17024,7 @@ b(lines)h(are)150 4641 y(ignored.)72 b(Lines)41 b(b)s(eginning)f(with)h
(a)g(`)p Ft(#)p Fu(')g(are)h(commen)m(ts.)73 b(Lines)41
b(b)s(eginning)f(with)g(a)i(`)p Ft($)p Fu(')f(indicate)150
4750 y(conditional)e(constructs)f(\(see)g(Section)h(8.3.2)g
-([Conditional)g(Init)e(Constructs],)j(page)e(122\).)64
+([Conditional)g(Init)e(Constructs],)j(page)e(129\).)64
b(Other)150 4860 y(lines)31 b(denote)g(v)-5 b(ariable)31
b(settings)g(and)f(k)m(ey)h(bindings.)150 5011 y(V)-8
b(ariable)32 b(Settings)630 5121 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)e
@@ -16538,632 +17033,707 @@ b(ariable)32 b(Settings)630 5121 y(Y)-8 b(ou)41 b(can)g(mo)s(dify)e
b(in)f(Readline)i(using)e(the)g Ft(set)g Fu(command)g(within)g(the)h
(init)g(\014le.)50 b(The)33 b(syn)m(tax)630 5340 y(is)d(simple:)p
eop end
-%%Page: 115 121
-TeXDict begin 115 120 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(115)870 299 y Ft(set)47
-b Fj(variable)e(value)630 436 y Fu(Here,)29 b(for)e(example,)h(is)g(ho)
+%%Page: 121 127
+TeXDict begin 121 126 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(121)870 299 y Ft(set)47
+b Fj(variable)e(value)630 432 y Fu(Here,)29 b(for)e(example,)h(is)g(ho)
m(w)f(to)h(c)m(hange)g(from)f(the)g(default)h(Emacs-lik)m(e)h(k)m(ey)f
-(binding)e(to)630 545 y(use)k Ft(vi)g Fu(line)h(editing)g(commands:)870
-682 y Ft(set)47 b(editing-mode)d(vi)630 819 y Fu(V)-8
+(binding)e(to)630 542 y(use)k Ft(vi)g Fu(line)h(editing)g(commands:)870
+675 y Ft(set)47 b(editing-mode)d(vi)630 808 y Fu(V)-8
b(ariable)36 b(names)f(and)g(v)-5 b(alues,)36 b(where)f(appropriate,)h
-(are)g(recognized)g(without)f(regard)630 929 y(to)c(case.)42
+(are)g(recognized)g(without)f(regard)630 917 y(to)c(case.)42
b(Unrecognized)31 b(v)-5 b(ariable)31 b(names)g(are)f(ignored.)630
-1066 y(Bo)s(olean)c(v)-5 b(ariables)26 b(\(those)g(that)g(can)f(b)s(e)f
+1050 y(Bo)s(olean)c(v)-5 b(ariables)26 b(\(those)g(that)g(can)f(b)s(e)f
(set)i(to)g(on)f(or)g(o\013)7 b(\))25 b(are)h(set)f(to)h(on)f(if)g(the)
-g(v)-5 b(alue)26 b(is)630 1176 y(n)m(ull)e(or)g(empt)m(y)-8
+g(v)-5 b(alue)26 b(is)630 1160 y(n)m(ull)e(or)g(empt)m(y)-8
b(,)27 b Fr(on)d Fu(\(case-insensitiv)m(e\),)29 b(or)24
b(1.)39 b(An)m(y)25 b(other)f(v)-5 b(alue)25 b(results)f(in)g(the)g(v)
--5 b(ariable)630 1285 y(b)s(eing)30 b(set)h(to)g(o\013.)630
-1422 y(The)37 b Ft(bind)30 b(-V)37 b Fu(command)g(lists)i(the)f(curren)
+-5 b(ariable)630 1270 y(b)s(eing)30 b(set)h(to)g(o\013.)630
+1403 y(The)37 b Ft(bind)30 b(-V)37 b Fu(command)g(lists)i(the)f(curren)
m(t)f(Readline)i(v)-5 b(ariable)38 b(names)g(and)f(v)-5
-b(alues.)630 1532 y(See)31 b(Section)g(4.2)g([Bash)g(Builtins],)g(page)
-g(51.)630 1669 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g
+b(alues.)630 1512 y(See)31 b(Section)g(4.2)g([Bash)g(Builtins],)g(page)
+g(55.)630 1645 y(A)f(great)i(deal)f(of)g(run-time)f(b)s(eha)m(vior)g
(is)g(c)m(hangeable)j(with)d(the)g(follo)m(wing)i(v)-5
-b(ariables.)630 1833 y Ft(bell-style)1110 1943 y Fu(Con)m(trols)44
-b(what)g(happ)s(ens)e(when)h(Readline)i(w)m(an)m(ts)f(to)h(ring)e(the)h
-(termi-)1110 2052 y(nal)37 b(b)s(ell.)61 b(If)37 b(set)h(to)g(`)p
-Ft(none)p Fu(',)g(Readline)g(nev)m(er)g(rings)e(the)i(b)s(ell.)61
-b(If)36 b(set)i(to)1110 2162 y(`)p Ft(visible)p Fu(',)32
-b(Readline)i(uses)f(a)g(visible)g(b)s(ell)g(if)g(one)g(is)g(a)m(v)-5
-b(ailable.)51 b(If)33 b(set)g(to)1110 2271 y(`)p Ft(audible)p
-Fu(')j(\(the)i(default\),)i(Readline)e(attempts)g(to)h(ring)e(the)g
-(terminal's)1110 2381 y(b)s(ell.)630 2545 y Ft(bind-tty-special-chars)
-1110 2655 y Fu(If)e(set)g(to)h(`)p Ft(on)p Fu(')f(\(the)g(default\),)i
-(Readline)f(attempts)g(to)g(bind)d(the)i(con)m(trol)1110
-2765 y(c)m(haracters)30 b(treated)g(sp)s(ecially)g(b)m(y)f(the)g(k)m
-(ernel's)h(terminal)f(driv)m(er)g(to)h(their)1110 2874
-y(Readline)h(equiv)-5 b(alen)m(ts.)630 3039 y Ft(blink-matching-paren)
-1110 3148 y Fu(If)36 b(set)g(to)h(`)p Ft(on)p Fu(',)h(Readline)f
-(attempts)g(to)g(brie\015y)e(mo)m(v)m(e)j(the)f(cursor)e(to)i(an)1110
-3258 y(op)s(ening)k(paren)m(thesis)h(when)f(a)h(closing)h(paren)m
-(thesis)e(is)h(inserted.)74 b(The)1110 3367 y(default)31
-b(is)f(`)p Ft(off)p Fu('.)630 3532 y Ft(colored-completion-prefi)o(x)
-1110 3641 y Fu(If)f(set)h(to)g(`)p Ft(on)p Fu(',)g(when)e(listing)i
-(completions,)h(Readline)f(displa)m(ys)g(the)f(com-)1110
-3751 y(mon)c(pre\014x)f(of)i(the)f(set)h(of)g(p)s(ossible)f
-(completions)h(using)f(a)h(di\013eren)m(t)g(color.)1110
-3861 y(The)39 b(color)i(de\014nitions)f(are)g(tak)m(en)h(from)f(the)g
-(v)-5 b(alue)40 b(of)g(the)g Ft(LS_COLORS)1110 3970 y
-Fu(en)m(vironmen)m(t)31 b(v)-5 b(ariable.)41 b(The)30
-b(default)h(is)f(`)p Ft(off)p Fu('.)630 4134 y Ft(colored-stats)1110
-4244 y Fu(If)c(set)h(to)g(`)p Ft(on)p Fu(',)h(Readline)f(displa)m(ys)g
-(p)s(ossible)f(completions)h(using)f(di\013eren)m(t)1110
-4354 y(colors)40 b(to)g(indicate)g(their)f(\014le)h(t)m(yp)s(e.)67
+b(ariables.)630 1802 y Ft(active-region-start-colo)o(r)1110
+1911 y Fu(A)27 b(string)f(v)-5 b(ariable)27 b(that)g(con)m(trols)h(the)
+f(text)g(color)h(and)e(bac)m(kground)g(when)1110 2021
+y(displa)m(ying)50 b(the)f(text)h(in)f(the)h(activ)m(e)h(region)f
+(\(see)g(the)g(description)f(of)1110 2131 y Ft(enable-active-region)25
+b Fu(b)s(elo)m(w\).)43 b(This)30 b(string)h(m)m(ust)f(not)h(tak)m(e)i
+(up)d(an)m(y)1110 2240 y(ph)m(ysical)25 b(c)m(haracter)h(p)s(ositions)f
+(on)g(the)f(displa)m(y)-8 b(,)27 b(so)e(it)g(should)f(consist)h(only)
+1110 2350 y(of)37 b(terminal)g(escap)s(e)g(sequences.)61
+b(It)36 b(is)h(output)g(to)g(the)g(terminal)g(b)s(efore)1110
+2459 y(displa)m(ying)h(the)f(text)i(in)e(the)h(activ)m(e)h(region.)63
+b(This)37 b(v)-5 b(ariable)38 b(is)f(reset)h(to)1110
+2569 y(the)29 b(default)g(v)-5 b(alue)29 b(whenev)m(er)f(the)h
+(terminal)g(t)m(yp)s(e)g(c)m(hanges.)41 b(The)28 b(default)1110
+2679 y(v)-5 b(alue)30 b(is)f(the)g(string)g(that)h(puts)e(the)i
+(terminal)f(in)g(standout)g(mo)s(de,)g(as)h(ob-)1110
+2788 y(tained)40 b(from)f(the)h(terminal's)g(terminfo)g(description.)68
+b(A)40 b(sample)f(v)-5 b(alue)1110 2898 y(migh)m(t)31
+b(b)s(e)f(`)p Ft(\\e[01;33m)p Fu('.)630 3054 y Ft
+(active-region-end-color)1110 3164 y Fu(A)48 b(string)g(v)-5
+b(ariable)48 b(that)h Ft(")p Fu(undo)s(es)p Ft(")d Fu(the)i(e\013ects)h
+(of)f Ft(active-region-)1110 3273 y(start-color)36 b
+Fu(and)i(restores)h Ft(")p Fu(normal)p Ft(")f Fu(terminal)h(displa)m(y)
+g(app)s(earance)1110 3383 y(after)26 b(displa)m(ying)h(text)f(in)g(the)
+g(activ)m(e)i(region.)40 b(This)25 b(string)h(m)m(ust)f(not)h(tak)m(e)
+1110 3493 y(up)e(an)m(y)h(ph)m(ysical)h(c)m(haracter)h(p)s(ositions)d
+(on)h(the)h(displa)m(y)-8 b(,)27 b(so)e(it)g(should)f(con-)1110
+3602 y(sist)29 b(only)h(of)f(terminal)h(escap)s(e)f(sequences.)41
+b(It)29 b(is)g(output)g(to)h(the)f(terminal)1110 3712
+y(after)36 b(displa)m(ying)g(the)g(text)h(in)e(the)h(activ)m(e)i
+(region.)58 b(This)34 b(v)-5 b(ariable)37 b(is)f(re-)1110
+3821 y(set)e(to)g(the)g(default)g(v)-5 b(alue)34 b(whenev)m(er)f(the)h
+(terminal)g(t)m(yp)s(e)f(c)m(hanges.)51 b(The)1110 3931
+y(default)38 b(v)-5 b(alue)39 b(is)f(the)h(string)f(that)h(restores)f
+(the)h(terminal)f(from)g(stand-)1110 4041 y(out)30 b(mo)s(de,)f(as)g
+(obtained)h(from)f(the)g(terminal's)h(terminfo)f(description.)41
+b(A)1110 4150 y(sample)31 b(v)-5 b(alue)30 b(migh)m(t)h(b)s(e)f(`)p
+Ft(\\e[0m)p Fu('.)630 4307 y Ft(bell-style)1110 4416
+y Fu(Con)m(trols)44 b(what)g(happ)s(ens)e(when)h(Readline)i(w)m(an)m
+(ts)f(to)h(ring)e(the)h(termi-)1110 4526 y(nal)37 b(b)s(ell.)61
+b(If)37 b(set)h(to)g(`)p Ft(none)p Fu(',)g(Readline)g(nev)m(er)g(rings)
+e(the)i(b)s(ell.)61 b(If)36 b(set)i(to)1110 4635 y(`)p
+Ft(visible)p Fu(',)32 b(Readline)i(uses)f(a)g(visible)g(b)s(ell)g(if)g
+(one)g(is)g(a)m(v)-5 b(ailable.)51 b(If)33 b(set)g(to)1110
+4745 y(`)p Ft(audible)p Fu(')j(\(the)i(default\),)i(Readline)e
+(attempts)g(to)h(ring)e(the)g(terminal's)1110 4855 y(b)s(ell.)630
+5011 y Ft(bind-tty-special-chars)1110 5121 y Fu(If)e(set)g(to)h(`)p
+Ft(on)p Fu(')f(\(the)g(default\),)i(Readline)f(attempts)g(to)g(bind)d
+(the)i(con)m(trol)1110 5230 y(c)m(haracters)30 b(treated)g(sp)s
+(ecially)g(b)m(y)f(the)g(k)m(ernel's)h(terminal)f(driv)m(er)g(to)h
+(their)1110 5340 y(Readline)h(equiv)-5 b(alen)m(ts.)p
+eop end
+%%Page: 122 128
+TeXDict begin 122 127 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(122)630 299 y Ft
+(blink-matching-paren)1110 408 y Fu(If)36 b(set)g(to)h(`)p
+Ft(on)p Fu(',)h(Readline)f(attempts)g(to)g(brie\015y)e(mo)m(v)m(e)j
+(the)f(cursor)e(to)i(an)1110 518 y(op)s(ening)k(paren)m(thesis)h(when)f
+(a)h(closing)h(paren)m(thesis)e(is)h(inserted.)74 b(The)1110
+628 y(default)31 b(is)f(`)p Ft(off)p Fu('.)630 792 y
+Ft(colored-completion-prefi)o(x)1110 902 y Fu(If)f(set)h(to)g(`)p
+Ft(on)p Fu(',)g(when)e(listing)i(completions,)h(Readline)f(displa)m(ys)
+g(the)f(com-)1110 1011 y(mon)c(pre\014x)f(of)i(the)f(set)h(of)g(p)s
+(ossible)f(completions)h(using)f(a)h(di\013eren)m(t)g(color.)1110
+1121 y(The)f(color)h(de\014nitions)f(are)h(tak)m(en)g(from)f(the)g(v)-5
+b(alue)26 b(of)g(the)f Ft(LS_COLORS)e Fu(en-)1110 1230
+y(vironmen)m(t)34 b(v)-5 b(ariable.)50 b(If)33 b(there)h(is)g(a)f
+(color)i(de\014nition)e(in)g Ft(LS_COLORS)e Fu(for)1110
+1340 y(the)22 b(custom)g(su\016x)f(`)p Ft(readline-colored-complet)o
+(ion)o(-pre)o(fix)p Fu(',)c(Read-)1110 1450 y(line)24
+b(uses)e(this)i(color)g(for)f(the)h(common)f(pre\014x)f(instead)i(of)f
+(its)h(default.)38 b(The)1110 1559 y(default)31 b(is)f(`)p
+Ft(off)p Fu('.)630 1724 y Ft(colored-stats)1110 1833
+y Fu(If)c(set)h(to)g(`)p Ft(on)p Fu(',)h(Readline)f(displa)m(ys)g(p)s
+(ossible)f(completions)h(using)f(di\013eren)m(t)1110
+1943 y(colors)40 b(to)g(indicate)g(their)f(\014le)h(t)m(yp)s(e.)67
b(The)38 b(color)j(de\014nitions)d(are)i(tak)m(en)1110
-4463 y(from)24 b(the)h(v)-5 b(alue)25 b(of)g(the)g Ft(LS_COLORS)d
+2052 y(from)24 b(the)h(v)-5 b(alue)25 b(of)g(the)g Ft(LS_COLORS)d
Fu(en)m(vironmen)m(t)j(v)-5 b(ariable.)40 b(The)24 b(default)1110
-4573 y(is)30 b(`)p Ft(off)p Fu('.)630 4737 y Ft(comment-begin)1110
-4847 y Fu(The)62 b(string)g(to)h(insert)f(at)h(the)g(b)s(eginning)e(of)
-h(the)h(line)f(when)g(the)1110 4956 y Ft(insert-comment)26
+2162 y(is)30 b(`)p Ft(off)p Fu('.)630 2326 y Ft(comment-begin)1110
+2436 y Fu(The)62 b(string)g(to)h(insert)f(at)h(the)g(b)s(eginning)e(of)
+h(the)h(line)f(when)g(the)1110 2545 y Ft(insert-comment)26
b Fu(command)31 b(is)f(executed.)42 b(The)30 b(default)g(v)-5
-b(alue)31 b(is)f Ft("#")p Fu(.)630 5121 y Ft(completion-display-width)
-1110 5230 y Fu(The)41 b(n)m(um)m(b)s(er)f(of)i(screen)g(columns)f(used)
-g(to)h(displa)m(y)g(p)s(ossible)f(matc)m(hes)1110 5340
+b(alue)31 b(is)f Ft("#")p Fu(.)630 2710 y Ft(completion-display-width)
+1110 2819 y Fu(The)41 b(n)m(um)m(b)s(er)f(of)i(screen)g(columns)f(used)
+g(to)h(displa)m(y)g(p)s(ossible)f(matc)m(hes)1110 2929
y(when)28 b(p)s(erforming)g(completion.)41 b(The)29 b(v)-5
-b(alue)29 b(is)g(ignored)g(if)g(it)h(is)f(less)g(than)p
-eop end
-%%Page: 116 122
-TeXDict begin 116 121 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(116)1110 299 y(0)27
-b(or)f(greater)h(than)f(the)g(terminal)h(screen)f(width.)39
+b(alue)29 b(is)g(ignored)g(if)g(it)h(is)f(less)g(than)1110
+3039 y(0)e(or)f(greater)h(than)f(the)g(terminal)h(screen)f(width.)39
b(A)26 b(v)-5 b(alue)27 b(of)f(0)h(will)f(cause)1110
-408 y(matc)m(hes)32 b(to)f(b)s(e)e(displa)m(y)m(ed)i(one)g(p)s(er)e
+3148 y(matc)m(hes)32 b(to)f(b)s(e)e(displa)m(y)m(ed)i(one)g(p)s(er)e
(line.)41 b(The)30 b(default)h(v)-5 b(alue)31 b(is)f(-1.)630
-587 y Ft(completion-ignore-case)1110 696 y Fu(If)d(set)h(to)g(`)p
+3313 y Ft(completion-ignore-case)1110 3422 y Fu(If)d(set)h(to)g(`)p
Ft(on)p Fu(',)g(Readline)g(p)s(erforms)e(\014lename)h(matc)m(hing)i
-(and)e(completion)1110 806 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)40
-b(The)30 b(default)h(v)-5 b(alue)30 b(is)h(`)p Ft(off)p
-Fu('.)630 984 y Ft(completion-map-case)1110 1093 y Fu(If)22
+(and)e(completion)1110 3532 y(in)j(a)h(case-insensitiv)m(e)i(fashion.)
+40 b(The)30 b(default)h(v)-5 b(alue)30 b(is)h(`)p Ft(off)p
+Fu('.)630 3696 y Ft(completion-map-case)1110 3806 y Fu(If)22
b(set)g(to)h(`)p Ft(on)p Fu(',)h(and)e Fr(completion-ignore-case)31
-b Fu(is)22 b(enabled,)i(Readline)f(treats)1110 1203 y(h)m(yphens)29
+b Fu(is)22 b(enabled,)i(Readline)f(treats)1110 3915 y(h)m(yphens)29
b(\(`)p Ft(-)p Fu('\))j(and)e(underscores)g(\(`)p Ft(_)p
Fu('\))i(as)f(equiv)-5 b(alen)m(t)32 b(when)e(p)s(erforming)1110
-1313 y(case-insensitiv)m(e)47 b(\014lename)e(matc)m(hing)g(and)f
-(completion.)85 b(The)44 b(default)1110 1422 y(v)-5 b(alue)31
-b(is)f(`)p Ft(off)p Fu('.)630 1600 y Ft(completion-prefix-displa)o
-(y-le)o(ngth)1110 1710 y Fu(The)h(length)g(in)g(c)m(haracters)i(of)f
+4025 y(case-insensitiv)m(e)47 b(\014lename)e(matc)m(hing)g(and)f
+(completion.)85 b(The)44 b(default)1110 4134 y(v)-5 b(alue)31
+b(is)f(`)p Ft(off)p Fu('.)630 4299 y Ft(completion-prefix-displa)o
+(y-le)o(ngth)1110 4408 y Fu(The)h(length)g(in)g(c)m(haracters)i(of)f
(the)f(common)h(pre\014x)e(of)h(a)h(list)g(of)f(p)s(ossible)1110
-1819 y(completions)g(that)f(is)g(displa)m(y)m(ed)g(without)g(mo)s
-(di\014cation.)41 b(When)29 b(set)h(to)h(a)1110 1929
+4518 y(completions)g(that)f(is)g(displa)m(y)m(ed)g(without)g(mo)s
+(di\014cation.)41 b(When)29 b(set)h(to)h(a)1110 4628
y(v)-5 b(alue)26 b(greater)h(than)e(zero,)j(common)e(pre\014xes)e
-(longer)j(than)e(this)g(v)-5 b(alue)27 b(are)1110 2039
+(longer)j(than)e(this)g(v)-5 b(alue)27 b(are)1110 4737
y(replaced)k(with)f(an)g(ellipsis)h(when)e(displa)m(ying)i(p)s(ossible)
-f(completions.)630 2217 y Ft(completion-query-items)1110
-2326 y Fu(The)c(n)m(um)m(b)s(er)f(of)h(p)s(ossible)g(completions)h
-(that)g(determines)f(when)f(the)i(user)1110 2436 y(is)43
+f(completions.)630 4902 y Ft(completion-query-items)1110
+5011 y Fu(The)c(n)m(um)m(b)s(er)f(of)h(p)s(ossible)g(completions)h
+(that)g(determines)f(when)f(the)i(user)1110 5121 y(is)43
b(ask)m(ed)g(whether)f(the)g(list)h(of)g(p)s(ossibilities)g(should)f(b)
-s(e)g(displa)m(y)m(ed.)77 b(If)1110 2545 y(the)29 b(n)m(um)m(b)s(er)f
+s(e)g(displa)m(y)m(ed.)77 b(If)1110 5230 y(the)29 b(n)m(um)m(b)s(er)f
(of)h(p)s(ossible)g(completions)h(is)f(greater)h(than)f(or)g(equal)g
-(to)h(this)1110 2655 y(v)-5 b(alue,)45 b(Readline)e(will)f(ask)g
-(whether)f(or)h(not)g(the)g(user)f(wishes)g(to)i(view)1110
-2765 y(them;)33 b(otherwise,)f(they)g(are)g(simply)g(listed.)45
-b(This)31 b(v)-5 b(ariable)33 b(m)m(ust)e(b)s(e)g(set)1110
-2874 y(to)39 b(an)f(in)m(teger)i(v)-5 b(alue)39 b(greater)g(than)f(or)h
-(equal)g(to)g(0.)65 b(A)38 b(negativ)m(e)i(v)-5 b(alue)1110
-2984 y(means)30 b(Readline)h(should)f(nev)m(er)g(ask.)41
-b(The)30 b(default)h(limit)g(is)f Ft(100)p Fu(.)630 3162
-y Ft(convert-meta)1110 3271 y Fu(If)22 b(set)g(to)h(`)p
+(to)h(this)1110 5340 y(v)-5 b(alue,)45 b(Readline)e(will)f(ask)g
+(whether)f(or)h(not)g(the)g(user)f(wishes)g(to)i(view)p
+eop end
+%%Page: 123 129
+TeXDict begin 123 128 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(123)1110 299 y(them;)33
+b(otherwise,)f(they)g(are)g(simply)g(listed.)45 b(This)31
+b(v)-5 b(ariable)33 b(m)m(ust)e(b)s(e)g(set)1110 408
+y(to)43 b(an)e(in)m(teger)j(v)-5 b(alue)42 b(greater)h(than)f(or)g
+(equal)g(to)h(zero.)76 b(A)42 b(zero)g(v)-5 b(alue)1110
+518 y(means)40 b(Readline)h(should)f(nev)m(er)g(ask;)46
+b(negativ)m(e)d(v)-5 b(alues)41 b(are)f(treated)i(as)1110
+628 y(zero.)g(The)29 b(default)i(limit)g(is)g Ft(100)p
+Fu(.)630 774 y Ft(convert-meta)1110 883 y Fu(If)22 b(set)g(to)h(`)p
Ft(on)p Fu(',)h(Readline)f(will)f(con)m(v)m(ert)i(c)m(haracters)f(with)
-f(the)g(eigh)m(th)h(bit)f(set)1110 3381 y(to)33 b(an)e
+f(the)g(eigh)m(th)h(bit)f(set)1110 993 y(to)33 b(an)e
Fm(asci)r(i)h Fu(k)m(ey)h(sequence)f(b)m(y)g(stripping)f(the)h(eigh)m
-(th)h(bit)f(and)f(pre\014xing)1110 3491 y(an)24 b Ft(ESC)g
+(th)h(bit)f(and)f(pre\014xing)1110 1103 y(an)24 b Ft(ESC)g
Fu(c)m(haracter,)j(con)m(v)m(erting)f(them)f(to)g(a)g(meta-pre\014xed)f
-(k)m(ey)h(sequence.)1110 3600 y(The)i(default)h(v)-5
+(k)m(ey)h(sequence.)1110 1212 y(The)i(default)h(v)-5
b(alue)28 b(is)f(`)p Ft(on)p Fu(',)i(but)d(will)i(b)s(e)f(set)h(to)g(`)
p Ft(off)p Fu(')g(if)f(the)h(lo)s(cale)h(is)f(one)1110
-3710 y(that)j(con)m(tains)h(eigh)m(t-bit)g(c)m(haracters.)630
-3888 y Ft(disable-completion)1110 3998 y Fu(If)k(set)h(to)h(`)p
-Ft(On)p Fu(',)g(Readline)f(will)g(inhibit)f(w)m(ord)h(completion.)60
-b(Completion)1110 4107 y(c)m(haracters)28 b(will)e(b)s(e)f(inserted)h
-(in)m(to)h(the)g(line)f(as)g(if)g(they)h(had)e(b)s(een)g(mapp)s(ed)1110
-4217 y(to)31 b Ft(self-insert)p Fu(.)38 b(The)30 b(default)g(is)h(`)p
-Ft(off)p Fu('.)630 4395 y Ft(echo-control-characters)1110
-4504 y Fu(When)f(set)h(to)g(`)p Ft(on)p Fu(',)f(on)g(op)s(erating)h
-(systems)f(that)h(indicate)g(they)g(supp)s(ort)1110 4614
-y(it,)i(readline)e(ec)m(ho)s(es)i(a)f(c)m(haracter)h(corresp)s(onding)d
-(to)j(a)f(signal)g(generated)1110 4724 y(from)e(the)g(k)m(eyb)s(oard.)
-41 b(The)30 b(default)g(is)h(`)p Ft(on)p Fu('.)630 4902
-y Ft(editing-mode)1110 5011 y Fu(The)d Ft(editing-mode)e
-Fu(v)-5 b(ariable)29 b(con)m(trols)h(whic)m(h)e(default)h(set)h(of)e(k)
-m(ey)i(bind-)1110 5121 y(ings)25 b(is)g(used.)38 b(By)26
-b(default,)g(Readline)g(starts)f(up)f(in)h(Emacs)g(editing)h(mo)s(de,)
-1110 5230 y(where)j(the)g(k)m(eystrok)m(es)i(are)e(most)h(similar)f(to)
-h(Emacs.)40 b(This)29 b(v)-5 b(ariable)30 b(can)1110
-5340 y(b)s(e)g(set)h(to)g(either)g(`)p Ft(emacs)p Fu(')e(or)h(`)p
-Ft(vi)p Fu('.)p eop end
-%%Page: 117 123
-TeXDict begin 117 122 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(117)630 299 y Ft
-(emacs-mode-string)1110 408 y Fu(If)33 b(the)h Fr(sho)m(w-mo)s
+1322 y(that)21 b(con)m(tains)h(eigh)m(t-bit)h(c)m(haracters.)39
+b(This)20 b(v)-5 b(ariable)21 b(is)g(dep)s(enden)m(t)f(on)h(the)1110
+1431 y Ft(LC_CTYPE)26 b Fu(lo)s(cale)31 b(category)-8
+b(,)31 b(and)d(ma)m(y)h(c)m(hange)h(if)e(the)h(lo)s(cale)h(is)f(c)m
+(hanged.)630 1577 y Ft(disable-completion)1110 1687 y
+Fu(If)36 b(set)h(to)h(`)p Ft(On)p Fu(',)g(Readline)f(will)g(inhibit)f
+(w)m(ord)h(completion.)60 b(Completion)1110 1797 y(c)m(haracters)28
+b(will)e(b)s(e)f(inserted)h(in)m(to)h(the)g(line)f(as)g(if)g(they)h
+(had)e(b)s(een)g(mapp)s(ed)1110 1906 y(to)31 b Ft(self-insert)p
+Fu(.)38 b(The)30 b(default)g(is)h(`)p Ft(off)p Fu('.)630
+2052 y Ft(echo-control-characters)1110 2162 y Fu(When)f(set)h(to)g(`)p
+Ft(on)p Fu(',)f(on)g(op)s(erating)h(systems)f(that)h(indicate)g(they)g
+(supp)s(ort)1110 2271 y(it,)e(Readline)g(ec)m(ho)s(es)g(a)f(c)m
+(haracter)i(corresp)s(onding)d(to)i(a)f(signal)h(generated)1110
+2381 y(from)h(the)g(k)m(eyb)s(oard.)41 b(The)30 b(default)g(is)h(`)p
+Ft(on)p Fu('.)630 2527 y Ft(editing-mode)1110 2637 y
+Fu(The)d Ft(editing-mode)e Fu(v)-5 b(ariable)29 b(con)m(trols)h(whic)m
+(h)e(default)h(set)h(of)e(k)m(ey)i(bind-)1110 2746 y(ings)25
+b(is)g(used.)38 b(By)26 b(default,)g(Readline)g(starts)f(up)f(in)h
+(Emacs)g(editing)h(mo)s(de,)1110 2856 y(where)j(the)g(k)m(eystrok)m(es)
+i(are)e(most)h(similar)f(to)h(Emacs.)40 b(This)29 b(v)-5
+b(ariable)30 b(can)1110 2966 y(b)s(e)g(set)h(to)g(either)g(`)p
+Ft(emacs)p Fu(')e(or)h(`)p Ft(vi)p Fu('.)630 3112 y Ft
+(emacs-mode-string)1110 3221 y Fu(If)j(the)h Fr(sho)m(w-mo)s
(de-in-prompt)h Fu(v)-5 b(ariable)35 b(is)e(enabled,)i(this)f(string)f
-(is)h(dis-)1110 518 y(pla)m(y)m(ed)24 b(immediately)g(b)s(efore)f(the)g
-(last)h(line)f(of)h(the)f(primary)f(prompt)g(when)1110
-628 y(emacs)g(editing)h(mo)s(de)e(is)h(activ)m(e.)40
+(is)h(dis-)1110 3331 y(pla)m(y)m(ed)24 b(immediately)g(b)s(efore)f(the)
+g(last)h(line)f(of)h(the)f(primary)f(prompt)g(when)1110
+3440 y(emacs)g(editing)h(mo)s(de)e(is)h(activ)m(e.)40
b(The)21 b(v)-5 b(alue)22 b(is)g(expanded)f(lik)m(e)h(a)h(k)m(ey)f
-(bind-)1110 737 y(ing,)27 b(so)f(the)f(standard)g(set)h(of)f(meta-)i
+(bind-)1110 3550 y(ing,)27 b(so)f(the)f(standard)g(set)h(of)f(meta-)i
(and)e(con)m(trol)i(pre\014xes)d(and)h(bac)m(kslash)1110
-847 y(escap)s(e)f(sequences)h(is)e(a)m(v)-5 b(ailable.)41
+3660 y(escap)s(e)f(sequences)h(is)e(a)m(v)-5 b(ailable.)41
b(Use)25 b(the)f(`)p Ft(\\1)p Fu(')f(and)h(`)p Ft(\\2)p
-Fu(')g(escap)s(es)g(to)g(b)s(egin)1110 956 y(and)37 b(end)g(sequences)h
-(of)f(non-prin)m(ting)h(c)m(haracters,)j(whic)m(h)c(can)h(b)s(e)f(used)
-1110 1066 y(to)h(em)m(b)s(ed)f(a)g(terminal)h(con)m(trol)h(sequence)f
-(in)m(to)g(the)f(mo)s(de)g(string.)61 b(The)1110 1176
-y(default)31 b(is)f(`)p Ft(@)p Fu('.)630 1332 y Ft
-(enable-bracketed-paste)1110 1442 y Fu(When)24 b(set)h(to)h(`)p
-Ft(On)p Fu(',)g(Readline)f(will)g(con\014gure)f(the)h(terminal)g(in)f
-(a)h(w)m(a)m(y)g(that)1110 1551 y(will)k(enable)f(it)h(to)g(insert)g
-(eac)m(h)g(paste)g(in)m(to)g(the)g(editing)g(bu\013er)e(as)i(a)f
-(single)1110 1661 y(string)33 b(of)f(c)m(haracters,)j(instead)e(of)g
-(treating)h(eac)m(h)g(c)m(haracter)g(as)f(if)f(it)i(had)1110
-1771 y(b)s(een)e(read)i(from)e(the)i(k)m(eyb)s(oard.)49
-b(This)32 b(can)h(prev)m(en)m(t)h(pasted)f(c)m(haracters)1110
-1880 y(from)d(b)s(eing)g(in)m(terpreted)h(as)f(editing)h(commands.)41
-b(The)29 b(default)i(is)f(`)p Ft(On)p Fu('.)630 2037
-y Ft(enable-keypad)1110 2146 y Fu(When)23 b(set)h(to)g(`)p
-Ft(on)p Fu(',)h(Readline)f(will)g(try)f(to)h(enable)g(the)f
-(application)i(k)m(eypad)1110 2256 y(when)h(it)h(is)f(called.)41
-b(Some)27 b(systems)f(need)h(this)f(to)h(enable)g(the)g(arro)m(w)g(k)m
-(eys.)1110 2365 y(The)j(default)g(is)h(`)p Ft(off)p Fu('.)630
-2522 y Ft(enable-meta-key)1110 2632 y Fu(When)40 b(set)g(to)g(`)p
-Ft(on)p Fu(',)j(Readline)d(will)g(try)g(to)g(enable)g(an)m(y)g(meta)h
-(mo)s(di\014er)1110 2741 y(k)m(ey)i(the)e(terminal)i(claims)f(to)h
-(supp)s(ort)d(when)h(it)h(is)g(called.)76 b(On)41 b(man)m(y)1110
-2851 y(terminals,)c(the)e(meta)h(k)m(ey)g(is)f(used)g(to)h(send)e(eigh)
-m(t-bit)j(c)m(haracters.)56 b(The)1110 2960 y(default)31
-b(is)f(`)p Ft(on)p Fu('.)630 3117 y Ft(expand-tilde)1110
-3226 y Fu(If)d(set)h(to)h(`)p Ft(on)p Fu(',)f(tilde)g(expansion)g(is)f
-(p)s(erformed)f(when)h(Readline)h(attempts)1110 3336
-y(w)m(ord)i(completion.)42 b(The)30 b(default)g(is)h(`)p
-Ft(off)p Fu('.)630 3493 y Ft(history-preserve-point)1110
-3602 y Fu(If)41 b(set)h(to)h(`)p Ft(on)p Fu(',)i(the)c(history)h(co)s
-(de)g(attempts)h(to)f(place)h(the)f(p)s(oin)m(t)f(\(the)1110
-3712 y(curren)m(t)35 b(cursor)g(p)s(osition\))g(at)h(the)g(same)f(lo)s
-(cation)i(on)e(eac)m(h)h(history)g(line)1110 3821 y(retriev)m(ed)h
-(with)f Ft(previous-history)c Fu(or)37 b Ft(next-history)p
-Fu(.)55 b(The)36 b(default)1110 3931 y(is)30 b(`)p Ft(off)p
-Fu('.)630 4088 y Ft(history-size)1110 4197 y Fu(Set)39
-b(the)g(maxim)m(um)g(n)m(um)m(b)s(er)f(of)h(history)g(en)m(tries)h(sa)m
-(v)m(ed)g(in)f(the)g(history)1110 4307 y(list.)51 b(If)34
-b(set)g(to)h(zero,)g(an)m(y)f(existing)h(history)f(en)m(tries)g(are)g
-(deleted)h(and)e(no)1110 4416 y(new)e(en)m(tries)i(are)f(sa)m(v)m(ed.)
-46 b(If)31 b(set)h(to)h(a)f(v)-5 b(alue)32 b(less)g(than)f(zero,)i(the)
-f(n)m(um)m(b)s(er)1110 4526 y(of)f(history)f(en)m(tries)h(is)g(not)g
-(limited.)42 b(By)30 b(default,)h(the)g(n)m(um)m(b)s(er)e(of)i(history)
-1110 4635 y(en)m(tries)j(is)f(not)g(limited.)49 b(If)32
-b(an)h(attempt)h(is)f(made)g(to)h(set)f Fr(history-size)39
-b Fu(to)1110 4745 y(a)34 b(non-n)m(umeric)f(v)-5 b(alue,)34
-b(the)g(maxim)m(um)f(n)m(um)m(b)s(er)f(of)h(history)h(en)m(tries)g
-(will)1110 4855 y(b)s(e)c(set)h(to)g(500.)630 5011 y
-Ft(horizontal-scroll-mode)1110 5121 y Fu(This)k(v)-5
-b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f(`)p
-Ft(on)p Fu(')g(or)g(`)p Ft(off)p Fu('.)57 b(Setting)36
-b(it)g(to)h(`)p Ft(on)p Fu(')1110 5230 y(means)26 b(that)h(the)f(text)h
+Fu(')g(escap)s(es)g(to)g(b)s(egin)1110 3769 y(and)37
+b(end)g(sequences)h(of)f(non-prin)m(ting)h(c)m(haracters,)j(whic)m(h)c
+(can)h(b)s(e)f(used)1110 3879 y(to)h(em)m(b)s(ed)f(a)g(terminal)h(con)m
+(trol)h(sequence)f(in)m(to)g(the)f(mo)s(de)g(string.)61
+b(The)1110 3988 y(default)31 b(is)f(`)p Ft(@)p Fu('.)630
+4134 y Ft(enable-active-region)1110 4244 y Fu(The)46
+b Fr(p)s(oin)m(t)j Fu(is)e(the)g(curren)m(t)f(cursor)g(p)s(osition,)52
+b(and)46 b Fr(mark)52 b Fu(refers)46 b(to)i(a)1110 4354
+y(sa)m(v)m(ed)37 b(cursor)f(p)s(osition)g(\(see)i(Section)f(8.4.1)h
+([Commands)d(F)-8 b(or)37 b(Mo)m(ving],)1110 4463 y(page)d(133\).)50
+b(The)33 b(text)h(b)s(et)m(w)m(een)f(the)g(p)s(oin)m(t)g(and)g(mark)g
+(is)g(referred)f(to)i(as)1110 4573 y(the)h Fr(region)p
+Fu(.)53 b(When)34 b(this)g(v)-5 b(ariable)36 b(is)e(set)h(to)g(`)p
+Ft(On)p Fu(',)h(Readline)f(allo)m(ws)g(cer-)1110 4682
+y(tain)30 b(commands)f(to)g(designate)i(the)e(region)h(as)f
+Fr(activ)m(e)p Fu(.)43 b(When)29 b(the)g(region)1110
+4792 y(is)g(activ)m(e,)j(Readline)e(highligh)m(ts)g(the)g(text)g(in)f
+(the)g(region)h(using)f(the)g(v)-5 b(alue)1110 4902 y(of)35
+b(the)g Ft(active-region-start-color)p Fu(,)30 b(whic)m(h)35
+b(defaults)g(to)h(the)f(string)1110 5011 y(that)23 b(enables)f(the)g
+(terminal's)h(standout)e(mo)s(de.)38 b(The)21 b(activ)m(e)k(region)d
+(sho)m(ws)1110 5121 y(the)32 b(text)h(inserted)f(b)m(y)g(brac)m(k)m
+(eted-paste)i(and)e(an)m(y)g(matc)m(hing)h(text)g(found)1110
+5230 y(b)m(y)f(incremen)m(tal)i(and)e(non-incremen)m(tal)i(history)e
+(searc)m(hes.)48 b(The)32 b(default)1110 5340 y(is)e(`)p
+Ft(On)p Fu('.)p eop end
+%%Page: 124 130
+TeXDict begin 124 129 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(124)630 299 y Ft
+(enable-bracketed-paste)1110 408 y Fu(When)36 b(set)h(to)g(`)p
+Ft(On)p Fu(',)h(Readline)f(con\014gures)f(the)h(terminal)f(to)i(insert)
+e(eac)m(h)1110 518 y(paste)27 b(in)m(to)g(the)f(editing)h(bu\013er)e
+(as)h(a)h(single)g(string)f(of)g(c)m(haracters,)j(instead)1110
+628 y(of)d(treating)i(eac)m(h)g(c)m(haracter)f(as)g(if)f(it)h(had)f(b)s
+(een)f(read)i(from)e(the)i(k)m(eyb)s(oard.)1110 737 y(This)36
+b(is)h(called)h(putting)f(the)h(terminal)f(in)m(to)h
+Fr(brac)m(k)m(eted)h(paste)e(mo)s(de)5 b Fu(;)40 b(it)1110
+847 y(prev)m(en)m(ts)30 b(Readline)h(from)e(executing)i(an)m(y)f
+(editing)h(commands)e(b)s(ound)f(to)1110 956 y(k)m(ey)j(sequences)g
+(app)s(earing)f(in)g(the)g(pasted)h(text.)42 b(The)29
+b(default)i(is)f(`)p Ft(On)p Fu('.)630 1113 y Ft(enable-keypad)1110
+1223 y Fu(When)23 b(set)h(to)g(`)p Ft(on)p Fu(',)h(Readline)f(will)g
+(try)f(to)h(enable)g(the)f(application)i(k)m(eypad)1110
+1332 y(when)h(it)h(is)f(called.)41 b(Some)27 b(systems)f(need)h(this)f
+(to)h(enable)g(the)g(arro)m(w)g(k)m(eys.)1110 1442 y(The)j(default)g
+(is)h(`)p Ft(off)p Fu('.)630 1598 y Ft(enable-meta-key)1110
+1708 y Fu(When)40 b(set)g(to)g(`)p Ft(on)p Fu(',)j(Readline)d(will)g
+(try)g(to)g(enable)g(an)m(y)g(meta)h(mo)s(di\014er)1110
+1817 y(k)m(ey)i(the)e(terminal)i(claims)f(to)h(supp)s(ort)d(when)h(it)h
+(is)g(called.)76 b(On)41 b(man)m(y)1110 1927 y(terminals,)c(the)e(meta)
+h(k)m(ey)g(is)f(used)g(to)h(send)e(eigh)m(t-bit)j(c)m(haracters.)56
+b(The)1110 2037 y(default)31 b(is)f(`)p Ft(on)p Fu('.)630
+2193 y Ft(expand-tilde)1110 2303 y Fu(If)d(set)h(to)h(`)p
+Ft(on)p Fu(',)f(tilde)g(expansion)g(is)f(p)s(erformed)f(when)h
+(Readline)h(attempts)1110 2412 y(w)m(ord)i(completion.)42
+b(The)30 b(default)g(is)h(`)p Ft(off)p Fu('.)630 2569
+y Ft(history-preserve-point)1110 2679 y Fu(If)41 b(set)h(to)h(`)p
+Ft(on)p Fu(',)i(the)c(history)h(co)s(de)g(attempts)h(to)f(place)h(the)f
+(p)s(oin)m(t)f(\(the)1110 2788 y(curren)m(t)35 b(cursor)g(p)s
+(osition\))g(at)h(the)g(same)f(lo)s(cation)i(on)e(eac)m(h)h(history)g
+(line)1110 2898 y(retriev)m(ed)h(with)f Ft(previous-history)c
+Fu(or)37 b Ft(next-history)p Fu(.)55 b(The)36 b(default)1110
+3007 y(is)30 b(`)p Ft(off)p Fu('.)630 3164 y Ft(history-size)1110
+3273 y Fu(Set)39 b(the)g(maxim)m(um)g(n)m(um)m(b)s(er)f(of)h(history)g
+(en)m(tries)h(sa)m(v)m(ed)g(in)f(the)g(history)1110 3383
+y(list.)51 b(If)34 b(set)g(to)h(zero,)g(an)m(y)f(existing)h(history)f
+(en)m(tries)g(are)g(deleted)h(and)e(no)1110 3493 y(new)e(en)m(tries)i
+(are)f(sa)m(v)m(ed.)46 b(If)31 b(set)h(to)h(a)f(v)-5
+b(alue)32 b(less)g(than)f(zero,)i(the)f(n)m(um)m(b)s(er)1110
+3602 y(of)f(history)f(en)m(tries)h(is)g(not)g(limited.)42
+b(By)30 b(default,)h(the)g(n)m(um)m(b)s(er)e(of)i(history)1110
+3712 y(en)m(tries)j(is)f(not)g(limited.)49 b(If)32 b(an)h(attempt)h(is)
+f(made)g(to)h(set)f Fr(history-size)39 b Fu(to)1110 3821
+y(a)34 b(non-n)m(umeric)f(v)-5 b(alue,)34 b(the)g(maxim)m(um)f(n)m(um)m
+(b)s(er)f(of)h(history)h(en)m(tries)g(will)1110 3931
+y(b)s(e)c(set)h(to)g(500.)630 4088 y Ft(horizontal-scroll-mode)1110
+4197 y Fu(This)k(v)-5 b(ariable)37 b(can)f(b)s(e)f(set)h(to)h(either)f
+(`)p Ft(on)p Fu(')g(or)g(`)p Ft(off)p Fu('.)57 b(Setting)36
+b(it)g(to)h(`)p Ft(on)p Fu(')1110 4307 y(means)26 b(that)h(the)f(text)h
(of)g(the)f(lines)g(b)s(eing)g(edited)h(will)f(scroll)h(horizon)m
-(tally)1110 5340 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
-(are)g(longer)h(than)e(the)h(width)f(of)h(the)p eop end
-%%Page: 118 124
-TeXDict begin 118 123 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(118)1110 299 y(screen,)28
-b(instead)g(of)f(wrapping)f(on)m(to)i(a)g(new)e(screen)i(line.)40
-b(This)26 b(v)-5 b(ariable)28 b(is)1110 408 y(automatically)k(set)e(to)
-g(`)p Ft(on)p Fu(')f(for)g(terminals)g(of)h(heigh)m(t)g(1.)41
-b(By)29 b(default,)h(this)1110 518 y(v)-5 b(ariable)31
-b(is)g(set)f(to)i(`)p Ft(off)p Fu('.)630 719 y Ft(input-meta)1110
-829 y Fu(If)f(set)g(to)h(`)p Ft(on)p Fu(',)g(Readline)g(will)f(enable)h
-(eigh)m(t-bit)h(input)d(\(it)i(will)f(not)h(clear)1110
-938 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h(c)m(haracters)h(it)f
-(reads\),)j(regardless)c(of)h(what)g(the)1110 1048 y(terminal)k(claims)
-h(it)f(can)g(supp)s(ort.)79 b(The)44 b(default)g(v)-5
-b(alue)44 b(is)g(`)p Ft(off)p Fu(',)j(but)1110 1157 y(Readline)24
-b(will)h(set)f(it)g(to)h(`)p Ft(on)p Fu(')e(if)h(the)g(lo)s(cale)i(con)
-m(tains)f(eigh)m(t-bit)g(c)m(haracters.)1110 1267 y(The)30
-b(name)g Ft(meta-flag)e Fu(is)j(a)f(synon)m(ym)g(for)g(this)h(v)-5
-b(ariable.)630 1468 y Ft(isearch-terminators)1110 1577
-y Fu(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e(terminate)j
-(an)f(incremen)m(tal)1110 1687 y(searc)m(h)25 b(without)g(subsequen)m
-(tly)g(executing)h(the)f(c)m(haracter)h(as)f(a)g(command)1110
-1797 y(\(see)38 b(Section)g(8.2.5)h([Searc)m(hing],)h(page)e(113\).)62
-b(If)37 b(this)g(v)-5 b(ariable)38 b(has)f(not)1110 1906
-y(b)s(een)e(giv)m(en)h(a)g(v)-5 b(alue,)37 b(the)f(c)m(haracters)h
-Ft(ESC)d Fu(and)h Fj(C-J)g Fu(will)h(terminate)g(an)1110
-2016 y(incremen)m(tal)c(searc)m(h.)630 2217 y Ft(keymap)192
-b Fu(Sets)64 b(Readline's)i(idea)f(of)f(the)h(curren)m(t)f(k)m(eymap)h
-(for)f(k)m(ey)h(binding)1110 2326 y(commands.)71 b(Built-in)41
-b Ft(keymap)e Fu(names)h(are)h Ft(emacs)p Fu(,)h Ft(emacs-standard)p
-Fu(,)1110 2436 y Ft(emacs-meta)p Fu(,)99 b Ft(emacs-ctlx)p
-Fu(,)f Ft(vi)p Fu(,)j Ft(vi-move)p Fu(,)f Ft(vi-command)p
-Fu(,)f(and)1110 2545 y Ft(vi-insert)p Fu(.)81 b Ft(vi)44
-b Fu(is)h(equiv)-5 b(alen)m(t)46 b(to)g Ft(vi-command)c
-Fu(\()p Ft(vi-move)h Fu(is)i(also)h(a)1110 2655 y(synon)m(ym\);)41
-b Ft(emacs)c Fu(is)h(equiv)-5 b(alen)m(t)39 b(to)f Ft(emacs-standard)p
-Fu(.)59 b(Applications)1110 2765 y(ma)m(y)32 b(add)e(additional)i
+(tally)1110 4416 y(on)32 b(a)g(single)g(screen)g(line)g(when)e(they)i
+(are)g(longer)h(than)e(the)h(width)f(of)h(the)1110 4526
+y(screen,)c(instead)g(of)f(wrapping)f(on)m(to)i(a)g(new)e(screen)i
+(line.)40 b(This)26 b(v)-5 b(ariable)28 b(is)1110 4635
+y(automatically)k(set)e(to)g(`)p Ft(on)p Fu(')f(for)g(terminals)g(of)h
+(heigh)m(t)g(1.)41 b(By)29 b(default,)h(this)1110 4745
+y(v)-5 b(ariable)31 b(is)g(set)f(to)i(`)p Ft(off)p Fu('.)630
+4902 y Ft(input-meta)1110 5011 y Fu(If)f(set)g(to)h(`)p
+Ft(on)p Fu(',)g(Readline)g(will)f(enable)h(eigh)m(t-bit)h(input)d(\(it)
+i(will)f(not)h(clear)1110 5121 y(the)40 b(eigh)m(th)g(bit)g(in)f(the)h
+(c)m(haracters)h(it)f(reads\),)j(regardless)c(of)h(what)g(the)1110
+5230 y(terminal)k(claims)h(it)f(can)g(supp)s(ort.)79
+b(The)44 b(default)g(v)-5 b(alue)44 b(is)g(`)p Ft(off)p
+Fu(',)j(but)1110 5340 y(Readline)24 b(will)h(set)f(it)g(to)h(`)p
+Ft(on)p Fu(')e(if)h(the)g(lo)s(cale)i(con)m(tains)f(eigh)m(t-bit)g(c)m
+(haracters.)p eop end
+%%Page: 125 131
+TeXDict begin 125 130 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(125)1110 299 y(The)29
+b(name)g Ft(meta-flag)e Fu(is)i(a)h(synon)m(ym)f(for)g(this)g(v)-5
+b(ariable.)42 b(This)28 b(v)-5 b(ariable)1110 408 y(is)35
+b(dep)s(enden)m(t)f(on)h(the)g Ft(LC_CTYPE)e Fu(lo)s(cale)k(category)-8
+b(,)39 b(and)34 b(ma)m(y)i(c)m(hange)g(if)1110 518 y(the)31
+b(lo)s(cale)h(is)e(c)m(hanged.)630 675 y Ft(isearch-terminators)1110
+784 y Fu(The)51 b(string)h(of)g(c)m(haracters)h(that)f(should)e
+(terminate)j(an)f(incremen)m(tal)1110 894 y(searc)m(h)25
+b(without)g(subsequen)m(tly)g(executing)h(the)f(c)m(haracter)h(as)f(a)g
+(command)1110 1003 y(\(see)38 b(Section)g(8.2.5)h([Searc)m(hing],)h
+(page)e(119\).)62 b(If)37 b(this)g(v)-5 b(ariable)38
+b(has)f(not)1110 1113 y(b)s(een)e(giv)m(en)h(a)g(v)-5
+b(alue,)37 b(the)f(c)m(haracters)h Ft(ESC)d Fu(and)h
+Fj(C-J)g Fu(will)h(terminate)g(an)1110 1223 y(incremen)m(tal)c(searc)m
+(h.)630 1379 y Ft(keymap)192 b Fu(Sets)64 b(Readline's)i(idea)f(of)f
+(the)h(curren)m(t)f(k)m(eymap)h(for)f(k)m(ey)h(binding)1110
+1489 y(commands.)71 b(Built-in)41 b Ft(keymap)e Fu(names)h(are)h
+Ft(emacs)p Fu(,)h Ft(emacs-standard)p Fu(,)1110 1598
+y Ft(emacs-meta)p Fu(,)99 b Ft(emacs-ctlx)p Fu(,)f Ft(vi)p
+Fu(,)j Ft(vi-move)p Fu(,)f Ft(vi-command)p Fu(,)f(and)1110
+1708 y Ft(vi-insert)p Fu(.)81 b Ft(vi)44 b Fu(is)h(equiv)-5
+b(alen)m(t)46 b(to)g Ft(vi-command)c Fu(\()p Ft(vi-move)h
+Fu(is)i(also)h(a)1110 1817 y(synon)m(ym\);)41 b Ft(emacs)c
+Fu(is)h(equiv)-5 b(alen)m(t)39 b(to)f Ft(emacs-standard)p
+Fu(.)59 b(Applications)1110 1927 y(ma)m(y)32 b(add)e(additional)i
(names.)43 b(The)30 b(default)h(v)-5 b(alue)32 b(is)f
-Ft(emacs)p Fu(.)41 b(The)30 b(v)-5 b(alue)1110 2874 y(of)31
+Ft(emacs)p Fu(.)41 b(The)30 b(v)-5 b(alue)1110 2037 y(of)31
b(the)f Ft(editing-mode)d Fu(v)-5 b(ariable)31 b(also)h(a\013ects)f
-(the)g(default)g(k)m(eymap.)630 3075 y Ft(keyseq-timeout)1110
-3185 y Fu(Sp)s(eci\014es)25 b(the)g(duration)g(Readline)h(will)g(w)m
-(ait)g(for)g(a)f(c)m(haracter)i(when)e(read-)1110 3294
+(the)g(default)g(k)m(eymap.)630 2193 y Ft(keyseq-timeout)1110
+2303 y Fu(Sp)s(eci\014es)25 b(the)g(duration)g(Readline)h(will)g(w)m
+(ait)g(for)g(a)f(c)m(haracter)i(when)e(read-)1110 2412
y(ing)30 b(an)g(am)m(biguous)g(k)m(ey)h(sequence)f(\(one)g(that)h(can)f
-(form)g(a)g(complete)h(k)m(ey)1110 3404 y(sequence)j(using)e(the)i
+(form)g(a)g(complete)h(k)m(ey)1110 2522 y(sequence)j(using)e(the)i
(input)e(read)h(so)g(far,)h(or)g(can)f(tak)m(e)i(additional)f(input)
-1110 3513 y(to)g(complete)g(a)f(longer)h(k)m(ey)f(sequence\).)49
+1110 2632 y(to)g(complete)g(a)f(longer)h(k)m(ey)f(sequence\).)49
b(If)33 b(no)f(input)g(is)h(receiv)m(ed)h(within)1110
-3623 y(the)43 b(timeout,)48 b(Readline)43 b(will)g(use)g(the)g(shorter)
-g(but)f(complete)j(k)m(ey)e(se-)1110 3733 y(quence.)c(Readline)26
+2741 y(the)43 b(timeout,)48 b(Readline)43 b(will)g(use)g(the)g(shorter)
+g(but)f(complete)j(k)m(ey)e(se-)1110 2851 y(quence.)c(Readline)26
b(uses)f(this)h(v)-5 b(alue)26 b(to)g(determine)g(whether)f(or)g(not)h
-(input)1110 3842 y(is)31 b(a)m(v)-5 b(ailable)33 b(on)d(the)h(curren)m
+(input)1110 2960 y(is)31 b(a)m(v)-5 b(ailable)33 b(on)d(the)h(curren)m
(t)f(input)g(source)h(\()p Ft(rl_instream)d Fu(b)m(y)i(default\).)1110
-3952 y(The)25 b(v)-5 b(alue)26 b(is)f(sp)s(eci\014ed)f(in)h
+3070 y(The)25 b(v)-5 b(alue)26 b(is)f(sp)s(eci\014ed)f(in)h
(milliseconds,)j(so)d(a)h(v)-5 b(alue)26 b(of)f(1000)i(means)e(that)
-1110 4061 y(Readline)e(will)g(w)m(ait)g(one)g(second)f(for)g
+1110 3180 y(Readline)e(will)g(w)m(ait)g(one)g(second)f(for)g
(additional)i(input.)37 b(If)22 b(this)g(v)-5 b(ariable)23
-b(is)1110 4171 y(set)28 b(to)h(a)f(v)-5 b(alue)29 b(less)f(than)g(or)f
+b(is)1110 3289 y(set)28 b(to)h(a)f(v)-5 b(alue)29 b(less)f(than)g(or)f
(equal)i(to)f(zero,)i(or)e(to)g(a)h(non-n)m(umeric)e(v)-5
-b(alue,)1110 4281 y(Readline)30 b(will)f(w)m(ait)i(un)m(til)e(another)h
+b(alue,)1110 3399 y(Readline)30 b(will)f(w)m(ait)i(un)m(til)e(another)h
(k)m(ey)g(is)f(pressed)g(to)h(decide)f(whic)m(h)g(k)m(ey)1110
-4390 y(sequence)i(to)g(complete.)42 b(The)30 b(default)g(v)-5
-b(alue)31 b(is)g Ft(500)p Fu(.)630 4591 y Ft(mark-directories)1110
-4701 y Fu(If)38 b(set)g(to)h(`)p Ft(on)p Fu(',)i(completed)e(directory)
+3508 y(sequence)i(to)g(complete.)42 b(The)30 b(default)g(v)-5
+b(alue)31 b(is)g Ft(500)p Fu(.)630 3665 y Ft(mark-directories)1110
+3774 y Fu(If)38 b(set)g(to)h(`)p Ft(on)p Fu(',)i(completed)e(directory)
f(names)g(ha)m(v)m(e)i(a)e(slash)g(app)s(ended.)1110
-4810 y(The)30 b(default)g(is)h(`)p Ft(on)p Fu('.)630
-5011 y Ft(mark-modified-lines)1110 5121 y Fu(This)k(v)-5
+3884 y(The)30 b(default)g(is)h(`)p Ft(on)p Fu('.)630
+4041 y Ft(mark-modified-lines)1110 4150 y Fu(This)k(v)-5
b(ariable,)38 b(when)d(set)h(to)h(`)p Ft(on)p Fu(',)g(causes)g
-(Readline)f(to)h(displa)m(y)f(an)f(as-)1110 5230 y(terisk)f(\(`)p
+(Readline)f(to)h(displa)m(y)f(an)f(as-)1110 4260 y(terisk)f(\(`)p
Ft(*)p Fu('\))h(at)f(the)g(start)g(of)g(history)g(lines)g(whic)m(h)f
-(ha)m(v)m(e)i(b)s(een)e(mo)s(di\014ed.)1110 5340 y(This)d(v)-5
-b(ariable)31 b(is)f(`)p Ft(off)p Fu(')g(b)m(y)g(default.)p
+(ha)m(v)m(e)i(b)s(een)e(mo)s(di\014ed.)1110 4369 y(This)d(v)-5
+b(ariable)31 b(is)f(`)p Ft(off)p Fu(')g(b)m(y)g(default.)630
+4526 y Ft(mark-symlinked-directori)o(es)1110 4635 y Fu(If)59
+b(set)h(to)g(`)p Ft(on)p Fu(',)67 b(completed)60 b(names)f(whic)m(h)g
+(are)h(sym)m(b)s(olic)g(links)f(to)1110 4745 y(directories)71
+b(ha)m(v)m(e)f(a)g(slash)f(app)s(ended)f(\(sub)5 b(ject)70
+b(to)g(the)g(v)-5 b(alue)70 b(of)1110 4855 y Ft(mark-directories)p
+Fu(\).)37 b(The)30 b(default)g(is)g(`)p Ft(off)p Fu('.)630
+5011 y Ft(match-hidden-files)1110 5121 y Fu(This)21 b(v)-5
+b(ariable,)25 b(when)d(set)g(to)h(`)p Ft(on)p Fu(',)h(causes)f
+(Readline)g(to)g(matc)m(h)g(\014les)f(whose)1110 5230
+y(names)44 b(b)s(egin)g(with)g(a)g(`)p Ft(.)p Fu(')g(\(hidden)f
+(\014les\))i(when)e(p)s(erforming)g(\014lename)1110 5340
+y(completion.)75 b(If)41 b(set)g(to)h(`)p Ft(off)p Fu(',)i(the)e
+(leading)g(`)p Ft(.)p Fu(')f(m)m(ust)g(b)s(e)g(supplied)f(b)m(y)p
eop end
-%%Page: 119 125
-TeXDict begin 119 124 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(119)630 299 y Ft
-(mark-symlinked-directori)o(es)1110 408 y Fu(If)59 b(set)h(to)g(`)p
-Ft(on)p Fu(',)67 b(completed)60 b(names)f(whic)m(h)g(are)h(sym)m(b)s
-(olic)g(links)f(to)1110 518 y(directories)71 b(ha)m(v)m(e)f(a)g(slash)f
-(app)s(ended)f(\(sub)5 b(ject)70 b(to)g(the)g(v)-5 b(alue)70
-b(of)1110 628 y Ft(mark-directories)p Fu(\).)37 b(The)30
-b(default)g(is)g(`)p Ft(off)p Fu('.)630 778 y Ft(match-hidden-files)
-1110 888 y Fu(This)21 b(v)-5 b(ariable,)25 b(when)d(set)g(to)h(`)p
-Ft(on)p Fu(',)h(causes)f(Readline)g(to)g(matc)m(h)g(\014les)f(whose)
-1110 998 y(names)44 b(b)s(egin)g(with)g(a)g(`)p Ft(.)p
-Fu(')g(\(hidden)f(\014les\))i(when)e(p)s(erforming)g(\014lename)1110
-1107 y(completion.)75 b(If)41 b(set)g(to)h(`)p Ft(off)p
-Fu(',)i(the)e(leading)g(`)p Ft(.)p Fu(')f(m)m(ust)g(b)s(e)g(supplied)f
-(b)m(y)1110 1217 y(the)34 b(user)g(in)g(the)g(\014lename)g(to)h(b)s(e)f
-(completed.)53 b(This)33 b(v)-5 b(ariable)35 b(is)f(`)p
-Ft(on)p Fu(')g(b)m(y)1110 1326 y(default.)630 1477 y
-Ft(menu-complete-display-pr)o(efix)1110 1587 y Fu(If)f(set)h(to)g(`)p
-Ft(on)p Fu(',)h(men)m(u)e(completion)i(displa)m(ys)e(the)h(common)g
-(pre\014x)e(of)i(the)1110 1696 y(list)k(of)g(p)s(ossible)f(completions)
-i(\(whic)m(h)e(ma)m(y)h(b)s(e)f(empt)m(y\))i(b)s(efore)e(cycling)1110
-1806 y(through)30 b(the)g(list.)42 b(The)29 b(default)i(is)f(`)p
-Ft(off)p Fu('.)630 1956 y Ft(output-meta)1110 2066 y
-Fu(If)35 b(set)h(to)g(`)p Ft(on)p Fu(',)h(Readline)f(will)g(displa)m(y)
-f(c)m(haracters)i(with)e(the)h(eigh)m(th)g(bit)1110 2176
-y(set)h(directly)g(rather)f(than)g(as)h(a)g(meta-pre\014xed)f(escap)s
-(e)h(sequence.)59 b(The)1110 2285 y(default)26 b(is)f(`)p
-Ft(off)p Fu(',)i(but)e(Readline)h(will)g(set)g(it)g(to)h(`)p
-Ft(on)p Fu(')e(if)h(the)f(lo)s(cale)j(con)m(tains)1110
-2395 y(eigh)m(t-bit)k(c)m(haracters.)630 2545 y Ft(page-completions)
-1110 2655 y Fu(If)h(set)i(to)f(`)p Ft(on)p Fu(',)h(Readline)g(uses)e
-(an)h(in)m(ternal)h Ft(more)p Fu(-lik)m(e)f(pager)g(to)h(displa)m(y)
-1110 2765 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g
-(time.)47 b(This)31 b(v)-5 b(ariable)34 b(is)e(`)p Ft(on)p
-Fu(')1110 2874 y(b)m(y)e(default.)630 3025 y Ft
-(print-completions-horizo)o(ntal)o(ly)1110 3134 y Fu(If)23
-b(set)i(to)g(`)p Ft(on)p Fu(',)g(Readline)g(will)f(displa)m(y)g
-(completions)h(with)f(matc)m(hes)h(sorted)1110 3244 y(horizon)m(tally)
-45 b(in)e(alphab)s(etical)i(order,)i(rather)c(than)g(do)m(wn)g(the)h
-(screen.)1110 3354 y(The)30 b(default)g(is)h(`)p Ft(off)p
-Fu('.)630 3504 y Ft(revert-all-at-newline)1110 3614 y
-Fu(If)e(set)h(to)g(`)p Ft(on)p Fu(',)g(Readline)g(will)g(undo)f(all)h
-(c)m(hanges)h(to)f(history)g(lines)f(b)s(efore)1110 3724
-y(returning)f(when)f Ft(accept-line)f Fu(is)j(executed.)41
-b(By)29 b(default,)g(history)g(lines)1110 3833 y(ma)m(y)42
+%%Page: 126 132
+TeXDict begin 126 131 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(126)1110 299 y(the)34
+b(user)g(in)g(the)g(\014lename)g(to)h(b)s(e)f(completed.)53
+b(This)33 b(v)-5 b(ariable)35 b(is)f(`)p Ft(on)p Fu(')g(b)m(y)1110
+408 y(default.)630 587 y Ft(menu-complete-display-pr)o(efix)1110
+696 y Fu(If)f(set)h(to)g(`)p Ft(on)p Fu(',)h(men)m(u)e(completion)i
+(displa)m(ys)e(the)h(common)g(pre\014x)e(of)i(the)1110
+806 y(list)k(of)g(p)s(ossible)f(completions)i(\(whic)m(h)e(ma)m(y)h(b)s
+(e)f(empt)m(y\))i(b)s(efore)e(cycling)1110 915 y(through)30
+b(the)g(list.)42 b(The)29 b(default)i(is)f(`)p Ft(off)p
+Fu('.)630 1093 y Ft(output-meta)1110 1203 y Fu(If)35
+b(set)h(to)g(`)p Ft(on)p Fu(',)h(Readline)f(will)g(displa)m(y)f(c)m
+(haracters)i(with)e(the)h(eigh)m(th)g(bit)1110 1313 y(set)h(directly)g
+(rather)f(than)g(as)h(a)g(meta-pre\014xed)f(escap)s(e)h(sequence.)59
+b(The)1110 1422 y(default)26 b(is)f(`)p Ft(off)p Fu(',)i(but)e
+(Readline)h(will)g(set)g(it)g(to)h(`)p Ft(on)p Fu(')e(if)h(the)f(lo)s
+(cale)j(con)m(tains)1110 1532 y(eigh)m(t-bit)38 b(c)m(haracters.)61
+b(This)36 b(v)-5 b(ariable)37 b(is)g(dep)s(enden)m(t)e(on)h(the)h
+Ft(LC_CTYPE)1110 1641 y Fu(lo)s(cale)32 b(category)-8
+b(,)33 b(and)d(ma)m(y)h(c)m(hange)g(if)g(the)f(lo)s(cale)i(is)f(c)m
+(hanged.)630 1819 y Ft(page-completions)1110 1929 y Fu(If)i(set)i(to)f
+(`)p Ft(on)p Fu(',)h(Readline)g(uses)e(an)h(in)m(ternal)h
+Ft(more)p Fu(-lik)m(e)f(pager)g(to)h(displa)m(y)1110
+2039 y(a)e(screenful)f(of)g(p)s(ossible)g(completions)i(at)f(a)g(time.)
+47 b(This)31 b(v)-5 b(ariable)34 b(is)e(`)p Ft(on)p Fu(')1110
+2148 y(b)m(y)e(default.)630 2326 y Ft(print-completions-horizo)o(ntal)o
+(ly)1110 2436 y Fu(If)23 b(set)i(to)g(`)p Ft(on)p Fu(',)g(Readline)g
+(will)f(displa)m(y)g(completions)h(with)f(matc)m(hes)h(sorted)1110
+2545 y(horizon)m(tally)45 b(in)e(alphab)s(etical)i(order,)i(rather)c
+(than)g(do)m(wn)g(the)h(screen.)1110 2655 y(The)30 b(default)g(is)h(`)p
+Ft(off)p Fu('.)630 2833 y Ft(revert-all-at-newline)1110
+2943 y Fu(If)e(set)h(to)g(`)p Ft(on)p Fu(',)g(Readline)g(will)g(undo)f
+(all)h(c)m(hanges)h(to)f(history)g(lines)f(b)s(efore)1110
+3052 y(returning)f(when)f Ft(accept-line)f Fu(is)j(executed.)41
+b(By)29 b(default,)g(history)g(lines)1110 3162 y(ma)m(y)42
b(b)s(e)g(mo)s(di\014ed)e(and)h(retain)i(individual)e(undo)g(lists)h
-(across)g(calls)h(to)1110 3943 y Ft(readline)p Fu(.)38
-b(The)30 b(default)h(is)f(`)p Ft(off)p Fu('.)630 4093
-y Ft(show-all-if-ambiguous)1110 4203 y Fu(This)f(alters)i(the)f
+(across)g(calls)h(to)1110 3271 y Ft(readline\(\))p Fu(.)38
+b(The)30 b(default)g(is)h(`)p Ft(off)p Fu('.)630 3450
+y Ft(show-all-if-ambiguous)1110 3559 y Fu(This)e(alters)i(the)f
(default)g(b)s(eha)m(vior)g(of)g(the)h(completion)g(functions.)40
-b(If)29 b(set)1110 4313 y(to)f(`)p Ft(on)p Fu(',)g(w)m(ords)f(whic)m(h)
+b(If)29 b(set)1110 3669 y(to)f(`)p Ft(on)p Fu(',)g(w)m(ords)f(whic)m(h)
g(ha)m(v)m(e)i(more)f(than)f(one)h(p)s(ossible)f(completion)h(cause)
-1110 4422 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)h(immediately)i
-(instead)e(of)g(ringing)g(the)g(b)s(ell.)1110 4532 y(The)30
+1110 3778 y(the)39 b(matc)m(hes)h(to)g(b)s(e)e(listed)h(immediately)i
+(instead)e(of)g(ringing)g(the)g(b)s(ell.)1110 3888 y(The)30
b(default)g(v)-5 b(alue)31 b(is)g(`)p Ft(off)p Fu('.)630
-4682 y Ft(show-all-if-unmodified)1110 4792 y Fu(This)38
+4066 y Ft(show-all-if-unmodified)1110 4176 y Fu(This)38
b(alters)h(the)g(default)g(b)s(eha)m(vior)g(of)f(the)h(completion)h
-(functions)e(in)h(a)1110 4902 y(fashion)25 b(similar)h(to)g
+(functions)e(in)h(a)1110 4285 y(fashion)25 b(similar)h(to)g
Fr(sho)m(w-all-if-am)m(biguous)p Fu(.)41 b(If)25 b(set)h(to)h(`)p
-Ft(on)p Fu(',)f(w)m(ords)f(whic)m(h)1110 5011 y(ha)m(v)m(e)32
+Ft(on)p Fu(',)f(w)m(ords)f(whic)m(h)1110 4395 y(ha)m(v)m(e)32
b(more)f(than)f(one)i(p)s(ossible)e(completion)i(without)f(an)m(y)g(p)s
-(ossible)f(par-)1110 5121 y(tial)43 b(completion)h(\(the)f(p)s(ossible)
-f(completions)h(don't)f(share)g(a)h(common)1110 5230
+(ossible)f(par-)1110 4504 y(tial)43 b(completion)h(\(the)f(p)s(ossible)
+f(completions)h(don't)f(share)g(a)h(common)1110 4614
y(pre\014x\))30 b(cause)g(the)h(matc)m(hes)g(to)g(b)s(e)f(listed)g
-(immediately)i(instead)e(of)h(ring-)1110 5340 y(ing)g(the)f(b)s(ell.)41
+(immediately)i(instead)e(of)h(ring-)1110 4724 y(ing)g(the)f(b)s(ell.)41
b(The)30 b(default)g(v)-5 b(alue)31 b(is)f(`)p Ft(off)p
-Fu('.)p eop end
-%%Page: 120 126
-TeXDict begin 120 125 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(120)630 299 y Ft
-(show-mode-in-prompt)1110 408 y Fu(If)24 b(set)h(to)g(`)p
-Ft(on)p Fu(',)g(add)f(a)h(string)f(to)h(the)f(b)s(eginning)g(of)g(the)h
-(prompt)e(indicating)1110 518 y(the)33 b(editing)h(mo)s(de:)46
-b(emacs,)35 b(vi)e(command,)h(or)f(vi)h(insertion.)49
-b(The)32 b(mo)s(de)1110 628 y(strings)45 b(are)h(user-settable)g
-(\(e.g.,)51 b Fr(emacs-mo)s(de-string)8 b Fu(\).)87 b(The)45
-b(default)1110 737 y(v)-5 b(alue)31 b(is)f(`)p Ft(off)p
-Fu('.)630 887 y Ft(skip-completed-text)1110 996 y Fu(If)i(set)i(to)f(`)
-p Ft(on)p Fu(',)h(this)f(alters)g(the)g(default)g(completion)h(b)s(eha)
-m(vior)f(when)f(in-)1110 1106 y(serting)d(a)h(single)g(matc)m(h)f(in)m
+Fu('.)630 4902 y Ft(show-mode-in-prompt)1110 5011 y Fu(If)24
+b(set)h(to)g(`)p Ft(on)p Fu(',)g(add)f(a)h(string)f(to)h(the)f(b)s
+(eginning)g(of)g(the)h(prompt)e(indicating)1110 5121
+y(the)33 b(editing)h(mo)s(de:)46 b(emacs,)35 b(vi)e(command,)h(or)f(vi)
+h(insertion.)49 b(The)32 b(mo)s(de)1110 5230 y(strings)45
+b(are)h(user-settable)g(\(e.g.,)51 b Fr(emacs-mo)s(de-string)8
+b Fu(\).)87 b(The)45 b(default)1110 5340 y(v)-5 b(alue)31
+b(is)f(`)p Ft(off)p Fu('.)p eop end
+%%Page: 127 133
+TeXDict begin 127 132 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(127)630 299 y Ft
+(skip-completed-text)1110 408 y Fu(If)32 b(set)i(to)f(`)p
+Ft(on)p Fu(',)h(this)f(alters)g(the)g(default)g(completion)h(b)s(eha)m
+(vior)f(when)f(in-)1110 518 y(serting)d(a)h(single)g(matc)m(h)f(in)m
(to)h(the)g(line.)40 b(It's)30 b(only)f(activ)m(e)i(when)d(p)s(erform-)
-1110 1215 y(ing)35 b(completion)h(in)e(the)h(middle)f(of)h(a)f(w)m
-(ord.)53 b(If)35 b(enabled,)g(readline)g(do)s(es)1110
-1325 y(not)41 b(insert)f(c)m(haracters)i(from)e(the)h(completion)h
-(that)f(matc)m(h)g(c)m(haracters)1110 1435 y(after)c(p)s(oin)m(t)g(in)g
-(the)g(w)m(ord)f(b)s(eing)g(completed,)k(so)d(p)s(ortions)f(of)h(the)g
-(w)m(ord)1110 1544 y(follo)m(wing)c(the)f(cursor)f(are)h(not)g
-(duplicated.)45 b(F)-8 b(or)32 b(instance,)h(if)f(this)f(is)h(en-)1110
-1654 y(abled,)43 b(attempting)f(completion)g(when)d(the)i(cursor)f(is)g
-(after)h(the)g(`)p Ft(e)p Fu(')f(in)1110 1763 y(`)p Ft(Makefile)p
+1110 628 y(ing)k(completion)i(in)e(the)g(middle)g(of)g(a)h(w)m(ord.)46
+b(If)32 b(enabled,)g(Readline)h(do)s(es)1110 737 y(not)41
+b(insert)f(c)m(haracters)i(from)e(the)h(completion)h(that)f(matc)m(h)g
+(c)m(haracters)1110 847 y(after)c(p)s(oin)m(t)g(in)g(the)g(w)m(ord)f(b)
+s(eing)g(completed,)k(so)d(p)s(ortions)f(of)h(the)g(w)m(ord)1110
+956 y(follo)m(wing)c(the)f(cursor)f(are)h(not)g(duplicated.)45
+b(F)-8 b(or)32 b(instance,)h(if)f(this)f(is)h(en-)1110
+1066 y(abled,)43 b(attempting)f(completion)g(when)d(the)i(cursor)f(is)g
+(after)h(the)g(`)p Ft(e)p Fu(')f(in)1110 1176 y(`)p Ft(Makefile)p
Fu(')c(will)i(result)f(in)g(`)p Ft(Makefile)p Fu(')f(rather)h(than)h(`)
-p Ft(Makefilefile)p Fu(',)1110 1873 y(assuming)d(there)g(is)h(a)f
+p Ft(Makefilefile)p Fu(',)1110 1285 y(assuming)d(there)g(is)h(a)f
(single)h(p)s(ossible)f(completion.)56 b(The)35 b(default)g(v)-5
-b(alue)1110 1983 y(is)30 b(`)p Ft(off)p Fu('.)630 2132
-y Ft(vi-cmd-mode-string)1110 2242 y Fu(If)j(the)h Fr(sho)m(w-mo)s
+b(alue)1110 1395 y(is)30 b(`)p Ft(off)p Fu('.)630 1548
+y Ft(vi-cmd-mode-string)1110 1658 y Fu(If)j(the)h Fr(sho)m(w-mo)s
(de-in-prompt)h Fu(v)-5 b(ariable)35 b(is)e(enabled,)i(this)f(string)f
-(is)h(dis-)1110 2351 y(pla)m(y)m(ed)24 b(immediately)g(b)s(efore)f(the)
+(is)h(dis-)1110 1767 y(pla)m(y)m(ed)24 b(immediately)g(b)s(efore)f(the)
g(last)h(line)f(of)h(the)f(primary)f(prompt)g(when)1110
-2461 y(vi)32 b(editing)h(mo)s(de)f(is)g(activ)m(e)j(and)c(in)h(command)
+1877 y(vi)32 b(editing)h(mo)s(de)f(is)g(activ)m(e)j(and)c(in)h(command)
g(mo)s(de.)46 b(The)31 b(v)-5 b(alue)33 b(is)f(ex-)1110
-2570 y(panded)26 b(lik)m(e)i(a)f(k)m(ey)h(binding,)e(so)i(the)f
+1987 y(panded)26 b(lik)m(e)i(a)f(k)m(ey)h(binding,)e(so)i(the)f
(standard)f(set)h(of)g(meta-)h(and)e(con)m(trol)1110
-2680 y(pre\014xes)34 b(and)g(bac)m(kslash)i(escap)s(e)g(sequences)f(is)
+2096 y(pre\014xes)34 b(and)g(bac)m(kslash)i(escap)s(e)g(sequences)f(is)
g(a)m(v)-5 b(ailable.)57 b(Use)35 b(the)g(`)p Ft(\\1)p
-Fu(')1110 2790 y(and)23 b(`)p Ft(\\2)p Fu(')h(escap)s(es)h(to)f(b)s
+Fu(')1110 2206 y(and)23 b(`)p Ft(\\2)p Fu(')h(escap)s(es)h(to)f(b)s
(egin)g(and)f(end)g(sequences)i(of)f(non-prin)m(ting)f(c)m(harac-)1110
-2899 y(ters,)31 b(whic)m(h)g(can)g(b)s(e)f(used)g(to)h(em)m(b)s(ed)f(a)
-h(terminal)h(con)m(trol)g(sequence)f(in)m(to)1110 3009
+2315 y(ters,)31 b(whic)m(h)g(can)g(b)s(e)f(used)g(to)h(em)m(b)s(ed)f(a)
+h(terminal)h(con)m(trol)g(sequence)f(in)m(to)1110 2425
y(the)g(mo)s(de)f(string.)40 b(The)30 b(default)h(is)f(`)p
-Ft(\(cmd\))p Fu('.)630 3158 y Ft(vi-ins-mode-string)1110
-3268 y Fu(If)j(the)h Fr(sho)m(w-mo)s(de-in-prompt)h Fu(v)-5
+Ft(\(cmd\))p Fu('.)630 2578 y Ft(vi-ins-mode-string)1110
+2688 y Fu(If)j(the)h Fr(sho)m(w-mo)s(de-in-prompt)h Fu(v)-5
b(ariable)35 b(is)e(enabled,)i(this)f(string)f(is)h(dis-)1110
-3377 y(pla)m(y)m(ed)24 b(immediately)g(b)s(efore)f(the)g(last)h(line)f
-(of)h(the)f(primary)f(prompt)g(when)1110 3487 y(vi)35
+2798 y(pla)m(y)m(ed)24 b(immediately)g(b)s(efore)f(the)g(last)h(line)f
+(of)h(the)f(primary)f(prompt)g(when)1110 2907 y(vi)35
b(editing)h(mo)s(de)e(is)i(activ)m(e)h(and)d(in)h(insertion)g(mo)s(de.)
-54 b(The)35 b(v)-5 b(alue)35 b(is)g(ex-)1110 3597 y(panded)26
+54 b(The)35 b(v)-5 b(alue)35 b(is)g(ex-)1110 3017 y(panded)26
b(lik)m(e)i(a)f(k)m(ey)h(binding,)e(so)i(the)f(standard)f(set)h(of)g
-(meta-)h(and)e(con)m(trol)1110 3706 y(pre\014xes)34 b(and)g(bac)m
+(meta-)h(and)e(con)m(trol)1110 3126 y(pre\014xes)34 b(and)g(bac)m
(kslash)i(escap)s(e)g(sequences)f(is)g(a)m(v)-5 b(ailable.)57
-b(Use)35 b(the)g(`)p Ft(\\1)p Fu(')1110 3816 y(and)23
+b(Use)35 b(the)g(`)p Ft(\\1)p Fu(')1110 3236 y(and)23
b(`)p Ft(\\2)p Fu(')h(escap)s(es)h(to)f(b)s(egin)g(and)f(end)g
-(sequences)i(of)f(non-prin)m(ting)f(c)m(harac-)1110 3925
+(sequences)i(of)f(non-prin)m(ting)f(c)m(harac-)1110 3345
y(ters,)31 b(whic)m(h)g(can)g(b)s(e)f(used)g(to)h(em)m(b)s(ed)f(a)h
-(terminal)h(con)m(trol)g(sequence)f(in)m(to)1110 4035
+(terminal)h(con)m(trol)g(sequence)f(in)m(to)1110 3455
y(the)g(mo)s(de)f(string.)40 b(The)30 b(default)h(is)f(`)p
-Ft(\(ins\))p Fu('.)630 4184 y Ft(visible-stats)1110 4294
+Ft(\(ins\))p Fu('.)630 3608 y Ft(visible-stats)1110 3718
y Fu(If)h(set)i(to)f(`)p Ft(on)p Fu(',)h(a)f(c)m(haracter)i(denoting)e
(a)g(\014le's)g(t)m(yp)s(e)g(is)g(app)s(ended)e(to)j(the)1110
-4403 y(\014lename)e(when)e(listing)i(p)s(ossible)f(completions.)42
-b(The)30 b(default)g(is)h(`)p Ft(off)p Fu('.)150 4553
-y(Key)f(Bindings)630 4663 y(The)41 b(syn)m(tax)i(for)f(con)m(trolling)h
+3828 y(\014lename)e(when)e(listing)i(p)s(ossible)f(completions.)42
+b(The)30 b(default)g(is)h(`)p Ft(off)p Fu('.)150 3981
+y(Key)f(Bindings)630 4091 y(The)41 b(syn)m(tax)i(for)f(con)m(trolling)h
(k)m(ey)g(bindings)e(in)h(the)g(init)g(\014le)g(is)g(simple.)75
-b(First)43 b(y)m(ou)630 4772 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)
+b(First)43 b(y)m(ou)630 4200 y(need)27 b(to)i(\014nd)d(the)i(name)f(of)
h(the)g(command)f(that)i(y)m(ou)f(w)m(an)m(t)g(to)g(c)m(hange.)41
-b(The)27 b(follo)m(wing)630 4882 y(sections)37 b(con)m(tain)g(tables)g
+b(The)27 b(follo)m(wing)630 4310 y(sections)37 b(con)m(tain)g(tables)g
(of)f(the)g(command)f(name,)j(the)e(default)g(k)m(eybinding,)h(if)f(an)
-m(y)-8 b(,)630 4991 y(and)30 b(a)h(short)f(description)g(of)h(what)f
-(the)g(command)h(do)s(es.)630 5121 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g
+m(y)-8 b(,)630 4419 y(and)30 b(a)h(short)f(description)g(of)h(what)f
+(the)g(command)h(do)s(es.)630 4551 y(Once)36 b(y)m(ou)g(kno)m(w)g(the)g
(name)g(of)g(the)g(command,)h(simply)f(place)h(on)e(a)i(line)f(in)g
-(the)g(init)630 5230 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m
+(the)g(init)630 4661 y(\014le)e(the)g(name)f(of)h(the)g(k)m(ey)g(y)m
(ou)g(wish)f(to)h(bind)f(the)h(command)f(to,)i(a)f(colon,)i(and)d(then)
-630 5340 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
+630 4770 y(the)f(name)h(of)f(the)g(command.)46 b(There)32
b(can)g(b)s(e)g(no)g(space)g(b)s(et)m(w)m(een)h(the)f(k)m(ey)h(name)g
-(and)p eop end
-%%Page: 121 127
-TeXDict begin 121 126 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(121)630 299 y(the)41
-b(colon)h({)f(that)g(will)g(b)s(e)g(in)m(terpreted)g(as)g(part)f(of)h
-(the)g(k)m(ey)h(name.)72 b(The)40 b(name)h(of)630 408
-y(the)35 b(k)m(ey)g(can)g(b)s(e)f(expressed)f(in)i(di\013eren)m(t)g(w)m
-(a)m(ys,)h(dep)s(ending)d(on)h(what)h(y)m(ou)g(\014nd)e(most)630
-518 y(comfortable.)630 650 y(In)i(addition)h(to)h(command)f(names,)i
-(readline)e(allo)m(ws)h(k)m(eys)g(to)g(b)s(e)e(b)s(ound)f(to)j(a)f
-(string)630 759 y(that)31 b(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f
-(pressed)g(\(a)h Fr(macro)5 b Fu(\).)630 891 y(The)42
+(and)630 4880 y(the)41 b(colon)h({)f(that)g(will)g(b)s(e)g(in)m
+(terpreted)g(as)g(part)f(of)h(the)g(k)m(ey)h(name.)72
+b(The)40 b(name)h(of)630 4989 y(the)35 b(k)m(ey)g(can)g(b)s(e)f
+(expressed)f(in)i(di\013eren)m(t)g(w)m(a)m(ys,)h(dep)s(ending)d(on)h
+(what)h(y)m(ou)g(\014nd)e(most)630 5099 y(comfortable.)630
+5230 y(In)g(addition)h(to)g(command)g(names,)g(Readline)g(allo)m(ws)h
+(k)m(eys)g(to)f(b)s(e)f(b)s(ound)f(to)i(a)g(string)630
+5340 y(that)d(is)f(inserted)h(when)e(the)i(k)m(ey)g(is)f(pressed)g(\(a)
+h Fr(macro)5 b Fu(\).)p eop end
+%%Page: 128 134
+TeXDict begin 128 133 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(128)630 299 y(The)42
b Ft(bind)30 b(-p)42 b Fu(command)h(displa)m(ys)g(Readline)g(function)g
-(names)g(and)f(bindings)g(in)h(a)630 1000 y(format)37
-b(that)h(can)f(put)f(directly)i(in)m(to)g(an)f(initialization)j
-(\014le.)60 b(See)38 b(Section)f(4.2)i([Bash)630 1110
-y(Builtins],)31 b(page)g(51.)630 1263 y Fr(k)m(eyname)5
-b Fu(:)42 b Fr(function-name)35 b Fu(or)c Fr(macro)1110
-1373 y(k)m(eyname)k Fu(is)29 b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s
+(names)g(and)f(bindings)g(in)h(a)630 408 y(format)28
+b(that)h(can)f(b)s(e)f(put)g(directly)i(in)m(to)f(an)g(initialization)j
+(\014le.)40 b(See)28 b(Section)h(4.2)g([Bash)630 518
+y(Builtins],)i(page)g(55.)630 673 y Fr(k)m(eyname)5 b
+Fu(:)42 b Fr(function-name)35 b Fu(or)c Fr(macro)1110
+783 y(k)m(eyname)k Fu(is)29 b(the)f(name)h(of)g(a)g(k)m(ey)h(sp)s
(elled)e(out)h(in)g(English.)39 b(F)-8 b(or)30 b(example:)1350
-1504 y Ft(Control-u:)45 b(universal-argument)1350 1614
-y(Meta-Rubout:)f(backward-kill-word)1350 1724 y(Control-o:)h(">)i
-(output")1110 1855 y Fu(In)94 b(the)g(example)h(ab)s(o)m(v)m(e,)112
+915 y Ft(Control-u:)45 b(universal-argument)1350 1024
+y(Meta-Rubout:)f(backward-kill-word)1350 1134 y(Control-o:)h(">)i
+(output")1110 1266 y Fu(In)94 b(the)g(example)h(ab)s(o)m(v)m(e,)112
b Fj(C-u)94 b Fu(is)g(b)s(ound)f(to)i(the)f(function)1110
-1965 y Ft(universal-argument)p Fu(,)124 b Fj(M-DEL)107
-b Fu(is)i(b)s(ound)e(to)j(the)f(function)1110 2074 y
+1376 y Ft(universal-argument)p Fu(,)124 b Fj(M-DEL)107
+b Fu(is)i(b)s(ound)e(to)j(the)f(function)1110 1485 y
Ft(backward-kill-word)p Fu(,)75 b(and)69 b Fj(C-o)g Fu(is)h(b)s(ound)e
-(to)j(run)d(the)i(macro)1110 2184 y(expressed)45 b(on)h(the)g(righ)m(t)
+(to)j(run)d(the)i(macro)1110 1595 y(expressed)45 b(on)h(the)g(righ)m(t)
g(hand)e(side)i(\(that)h(is,)i(to)e(insert)e(the)h(text)h(`)p
-Ft(>)1110 2293 y(output)p Fu(')29 b(in)m(to)i(the)g(line\).)1110
-2425 y(A)62 b(n)m(um)m(b)s(er)e(of)i(sym)m(b)s(olic)h(c)m(haracter)g
-(names)f(are)g(recognized)h(while)1110 2534 y(pro)s(cessing)40
+Ft(>)1110 1705 y(output)p Fu(')29 b(in)m(to)i(the)g(line\).)1110
+1837 y(A)62 b(n)m(um)m(b)s(er)e(of)i(sym)m(b)s(olic)h(c)m(haracter)g
+(names)f(are)g(recognized)h(while)1110 1946 y(pro)s(cessing)40
b(this)f(k)m(ey)i(binding)e(syn)m(tax:)60 b Fr(DEL)p
Fu(,)42 b Fr(ESC)p Fu(,)g Fr(ESCAPE)p Fu(,)f Fr(LFD)p
-Fu(,)1110 2644 y Fr(NEWLINE)p Fu(,)31 b Fr(RET)p Fu(,)f
+Fu(,)1110 2056 y Fr(NEWLINE)p Fu(,)31 b Fr(RET)p Fu(,)f
Fr(RETURN)p Fu(,)g Fr(R)m(UBOUT)p Fu(,)h Fr(SP)-8 b(A)m(CE)p
Fu(,)31 b Fr(SPC)p Fu(,)e(and)h Fr(T)-8 b(AB)p Fu(.)630
-2798 y Ft(")p Fr(k)m(eyseq)r Ft(")p Fu(:)41 b Fr(function-name)36
-b Fu(or)30 b Fr(macro)1110 2907 y(k)m(eyseq)k Fu(di\013ers)d(from)f
+2211 y Ft(")p Fr(k)m(eyseq)r Ft(")p Fu(:)41 b Fr(function-name)36
+b Fu(or)30 b Fr(macro)1110 2321 y(k)m(eyseq)k Fu(di\013ers)d(from)f
Fr(k)m(eyname)37 b Fu(ab)s(o)m(v)m(e)32 b(in)f(that)h(strings)f
-(denoting)g(an)g(en-)1110 3017 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s
+(denoting)g(an)g(en-)1110 2430 y(tire)j(k)m(ey)h(sequence)f(can)g(b)s
(e)f(sp)s(eci\014ed,)h(b)m(y)f(placing)i(the)f(k)m(ey)g(sequence)g(in)
-1110 3126 y(double)29 b(quotes.)41 b(Some)29 b Fm(gnu)h
+1110 2540 y(double)29 b(quotes.)41 b(Some)29 b Fm(gnu)h
Fu(Emacs)f(st)m(yle)i(k)m(ey)f(escap)s(es)g(can)g(b)s(e)f(used,)g(as)
-1110 3236 y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s
-(ecial)h(c)m(haracter)g(names)f(are)g(not)1110 3345 y(recognized.)1350
-3477 y Ft("\\C-u":)46 b(universal-argument)1350 3587
-y("\\C-x\\C-r":)f(re-read-init-file)1350 3696 y("\\e[11~":)g("Function)
-h(Key)g(1")1110 3828 y Fu(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
+1110 2649 y(in)k(the)h(follo)m(wing)i(example,)f(but)e(the)h(sp)s
+(ecial)h(c)m(haracter)g(names)f(are)g(not)1110 2759 y(recognized.)1350
+2891 y Ft("\\C-u":)46 b(universal-argument)1350 3001
+y("\\C-x\\C-r":)f(re-read-init-file)1350 3110 y("\\e[11~":)g("Function)
+h(Key)g(1")1110 3243 y Fu(In)64 b(the)g(ab)s(o)m(v)m(e)i(example,)74
b Fj(C-u)64 b Fu(is)g(again)i(b)s(ound)c(to)k(the)e(function)1110
-3937 y Ft(universal-argument)39 b Fu(\(just)k(as)h(it)g(w)m(as)g(in)g
-(the)f(\014rst)g(example\),)49 b(`)p Fj(C-x)1110 4047
+3352 y Ft(universal-argument)39 b Fu(\(just)k(as)h(it)g(w)m(as)g(in)g
+(the)f(\014rst)g(example\),)49 b(`)p Fj(C-x)1110 3462
y(C-r)p Fu(')30 b(is)g(b)s(ound)e(to)j(the)g(function)f
Ft(re-read-init-file)p Fu(,)c(and)j(`)p Ft(ESC)h([)g(1)g(1)1110
-4156 y(~)p Fu(')g(is)h(b)s(ound)d(to)j(insert)f(the)h(text)g(`)p
-Ft(Function)e(Key)g(1)p Fu('.)630 4310 y(The)g(follo)m(wing)i
+3571 y(~)p Fu(')g(is)h(b)s(ound)d(to)j(insert)f(the)h(text)g(`)p
+Ft(Function)e(Key)g(1)p Fu('.)630 3726 y(The)g(follo)m(wing)i
Fm(gnu)f Fu(Emacs)g(st)m(yle)h(escap)s(e)f(sequences)g(are)g(a)m(v)-5
-b(ailable)32 b(when)d(sp)s(ecifying)630 4419 y(k)m(ey)i(sequences:)630
-4573 y Fj(\\C-)336 b Fu(con)m(trol)32 b(pre\014x)630
-4726 y Fj(\\M-)336 b Fu(meta)31 b(pre\014x)630 4880 y
+b(ailable)32 b(when)d(sp)s(ecifying)630 3836 y(k)m(ey)i(sequences:)630
+3991 y Fj(\\C-)336 b Fu(con)m(trol)32 b(pre\014x)630
+4146 y Fj(\\M-)336 b Fu(meta)31 b(pre\014x)630 4301 y
Fj(\\e)384 b Fu(an)30 b(escap)s(e)h(c)m(haracter)630
-5033 y Fj(\\\\)384 b Fu(bac)m(kslash)630 5187 y Fj(\\)p
+4456 y Fj(\\\\)384 b Fu(bac)m(kslash)630 4611 y Fj(\\)p
Ft(")g(")p Fu(,)30 b(a)h(double)f(quotation)i(mark)630
-5340 y Fj(\\')384 b Ft(')p Fu(,)30 b(a)h(single)g(quote)g(or)f(ap)s
-(ostrophe)p eop end
-%%Page: 122 128
-TeXDict begin 122 127 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(122)630 299 y(In)27
-b(addition)h(to)g(the)g Fm(gnu)f Fu(Emacs)h(st)m(yle)h(escap)s(e)f
-(sequences,)h(a)f(second)f(set)h(of)g(bac)m(kslash)630
-408 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630 570 y
-Ft(\\a)384 b Fu(alert)31 b(\(b)s(ell\))630 731 y Ft(\\b)384
-b Fu(bac)m(kspace)630 892 y Ft(\\d)g Fu(delete)630 1053
-y Ft(\\f)g Fu(form)30 b(feed)630 1214 y Ft(\\n)384 b
-Fu(newline)630 1375 y Ft(\\r)g Fu(carriage)32 b(return)630
-1536 y Ft(\\t)384 b Fu(horizon)m(tal)32 b(tab)630 1697
-y Ft(\\v)384 b Fu(v)m(ertical)32 b(tab)630 1858 y Ft(\\)p
-Fj(nnn)288 b Fu(the)35 b(eigh)m(t-bit)h(c)m(haracter)g(whose)e(v)-5
-b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5 b(alue)35 b Fr(nnn)e
-Fu(\(one)i(to)1110 1968 y(three)c(digits\))630 2129 y
-Ft(\\x)p Fj(HH)288 b Fu(the)38 b(eigh)m(t-bit)i(c)m(haracter)g(whose)e
-(v)-5 b(alue)39 b(is)f(the)h(hexadecimal)g(v)-5 b(alue)39
-b Fr(HH)1110 2239 y Fu(\(one)31 b(or)f(t)m(w)m(o)i(hex)e(digits\))630
-2400 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g(macro,)i(single)e
-(or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to)630
-2509 y(indicate)23 b(a)e(macro)h(de\014nition.)38 b(Unquoted)21
-b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f(name.)38
-b(In)630 2619 y(the)22 b(macro)f(b)s(o)s(dy)-8 b(,)23
-b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m(e)j
-(are)e(expanded.)37 b(Bac)m(kslash)630 2729 y(will)j(quote)h(an)m(y)f
-(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39
+4766 y Fj(\\')384 b Ft(')p Fu(,)30 b(a)h(single)g(quote)g(or)f(ap)s
+(ostrophe)630 4921 y(In)d(addition)h(to)g(the)g Fm(gnu)f
+Fu(Emacs)h(st)m(yle)h(escap)s(e)f(sequences,)h(a)f(second)f(set)h(of)g
+(bac)m(kslash)630 5030 y(escap)s(es)j(is)f(a)m(v)-5 b(ailable:)630
+5185 y Ft(\\a)384 b Fu(alert)31 b(\(b)s(ell\))630 5340
+y Ft(\\b)384 b Fu(bac)m(kspace)p eop end
+%%Page: 129 135
+TeXDict begin 129 134 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(129)630 299 y Ft(\\d)384
+b Fu(delete)630 460 y Ft(\\f)g Fu(form)30 b(feed)630
+620 y Ft(\\n)384 b Fu(newline)630 781 y Ft(\\r)g Fu(carriage)32
+b(return)630 941 y Ft(\\t)384 b Fu(horizon)m(tal)32 b(tab)630
+1102 y Ft(\\v)384 b Fu(v)m(ertical)32 b(tab)630 1263
+y Ft(\\)p Fj(nnn)288 b Fu(the)35 b(eigh)m(t-bit)h(c)m(haracter)g(whose)
+e(v)-5 b(alue)35 b(is)g(the)f(o)s(ctal)i(v)-5 b(alue)35
+b Fr(nnn)e Fu(\(one)i(to)1110 1372 y(three)c(digits\))630
+1533 y Ft(\\x)p Fj(HH)288 b Fu(the)38 b(eigh)m(t-bit)i(c)m(haracter)g
+(whose)e(v)-5 b(alue)39 b(is)f(the)h(hexadecimal)g(v)-5
+b(alue)39 b Fr(HH)1110 1643 y Fu(\(one)31 b(or)f(t)m(w)m(o)i(hex)e
+(digits\))630 1803 y(When)37 b(en)m(tering)h(the)g(text)g(of)g(a)g
+(macro,)i(single)e(or)f(double)g(quotes)h(m)m(ust)f(b)s(e)g(used)f(to)
+630 1913 y(indicate)23 b(a)e(macro)h(de\014nition.)38
+b(Unquoted)21 b(text)i(is)e(assumed)g(to)h(b)s(e)f(a)h(function)f
+(name.)38 b(In)630 2022 y(the)22 b(macro)f(b)s(o)s(dy)-8
+b(,)23 b(the)e(bac)m(kslash)h(escap)s(es)g(describ)s(ed)e(ab)s(o)m(v)m
+(e)j(are)e(expanded.)37 b(Bac)m(kslash)630 2132 y(will)j(quote)h(an)m
+(y)f(other)g(c)m(haracter)i(in)d(the)i(macro)f(text,)k(including)39
b(`)p Ft(")p Fu(')h(and)g(`)p Ft(')p Fu('.)69 b(F)-8
-b(or)630 2838 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
+b(or)630 2242 y(example,)28 b(the)e(follo)m(wing)h(binding)d(will)i
(mak)m(e)h(`)p Fj(C-x)j Ft(\\)p Fu(')c(insert)f(a)h(single)h(`)p
-Ft(\\)p Fu(')f(in)m(to)g(the)g(line:)870 2974 y Ft("\\C-x\\\\":)45
-b("\\\\")150 3175 y Fk(8.3.2)63 b(Conditional)41 b(Init)g(Constructs)
-150 3322 y Fu(Readline)c(implemen)m(ts)g(a)h(facilit)m(y)g(similar)f
+Ft(\\)p Fu(')f(in)m(to)g(the)g(line:)870 2377 y Ft("\\C-x\\\\":)45
+b("\\\\")150 2577 y Fk(8.3.2)63 b(Conditional)41 b(Init)g(Constructs)
+150 2724 y Fu(Readline)c(implemen)m(ts)g(a)h(facilit)m(y)g(similar)f
(in)g(spirit)f(to)i(the)f(conditional)h(compilation)g(features)f(of)150
-3431 y(the)31 b(C)f(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)g
+2834 y(the)31 b(C)f(prepro)s(cessor)g(whic)m(h)g(allo)m(ws)i(k)m(ey)g
(bindings)d(and)h(v)-5 b(ariable)32 b(settings)f(to)h(b)s(e)e(p)s
-(erformed)f(as)i(the)150 3541 y(result)f(of)h(tests.)41
+(erformed)f(as)i(the)150 2943 y(result)f(of)h(tests.)41
b(There)30 b(are)h(four)f(parser)f(directiv)m(es)j(used.)150
-3703 y Ft($if)336 b Fu(The)31 b Ft($if)f Fu(construct)i(allo)m(ws)h
+3105 y Ft($if)336 b Fu(The)31 b Ft($if)f Fu(construct)i(allo)m(ws)h
(bindings)d(to)i(b)s(e)e(made)i(based)f(on)g(the)g(editing)h(mo)s(de,)g
-(the)630 3812 y(terminal)37 b(b)s(eing)f(used,)h(or)f(the)h
+(the)630 3214 y(terminal)37 b(b)s(eing)f(used,)h(or)f(the)h
(application)g(using)f(Readline.)59 b(The)36 b(text)h(of)f(the)h(test,)
-630 3922 y(after)30 b(an)m(y)g(comparison)g(op)s(erator,)g(extends)f
+630 3324 y(after)30 b(an)m(y)g(comparison)g(op)s(erator,)g(extends)f
(to)h(the)g(end)f(of)h(the)f(line;)i(unless)e(otherwise)630
-4031 y(noted,)i(no)f(c)m(haracters)i(are)f(required)e(to)i(isolate)i
-(it.)630 4193 y Ft(mode)288 b Fu(The)30 b Ft(mode=)e
+3433 y(noted,)i(no)f(c)m(haracters)i(are)f(required)e(to)i(isolate)i
+(it.)630 3594 y Ft(mode)288 b Fu(The)30 b Ft(mode=)e
Fu(form)i(of)g(the)h Ft($if)e Fu(directiv)m(e)j(is)e(used)f(to)i(test)g
-(whether)e(Read-)1110 4302 y(line)44 b(is)f(in)g Ft(emacs)f
+(whether)e(Read-)1110 3704 y(line)44 b(is)f(in)g Ft(emacs)f
Fu(or)h Ft(vi)g Fu(mo)s(de.)79 b(This)42 b(ma)m(y)i(b)s(e)e(used)h(in)g
-(conjunction)1110 4412 y(with)c(the)h(`)p Ft(set)29 b(keymap)p
+(conjunction)1110 3813 y(with)c(the)h(`)p Ft(set)29 b(keymap)p
Fu(')38 b(command,)k(for)d(instance,)j(to)e(set)g(bindings)e(in)1110
-4521 y(the)32 b Ft(emacs-standard)c Fu(and)j Ft(emacs-ctlx)d
-Fu(k)m(eymaps)k(only)g(if)g(Readline)g(is)1110 4631 y(starting)f(out)g
-(in)f Ft(emacs)f Fu(mo)s(de.)630 4792 y Ft(term)288 b
+3923 y(the)32 b Ft(emacs-standard)c Fu(and)j Ft(emacs-ctlx)d
+Fu(k)m(eymaps)k(only)g(if)g(Readline)g(is)1110 4032 y(starting)f(out)g
+(in)f Ft(emacs)f Fu(mo)s(de.)630 4193 y Ft(term)288 b
Fu(The)26 b Ft(term=)g Fu(form)g(ma)m(y)i(b)s(e)e(used)g(to)i(include)f
-(terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110 4902 y(ings,)38
+(terminal-sp)s(eci\014c)g(k)m(ey)h(bind-)1110 4303 y(ings,)38
b(p)s(erhaps)c(to)j(bind)e(the)h(k)m(ey)h(sequences)f(output)g(b)m(y)g
-(the)g(terminal's)1110 5011 y(function)24 b(k)m(eys.)39
+(the)g(terminal's)1110 4412 y(function)24 b(k)m(eys.)39
b(The)23 b(w)m(ord)h(on)f(the)i(righ)m(t)f(side)g(of)g(the)g(`)p
-Ft(=)p Fu(')g(is)g(tested)h(against)1110 5121 y(b)s(oth)k(the)h(full)g
+Ft(=)p Fu(')g(is)g(tested)h(against)1110 4522 y(b)s(oth)k(the)h(full)g
(name)g(of)g(the)g(terminal)h(and)e(the)i(p)s(ortion)e(of)h(the)g
-(terminal)1110 5230 y(name)k(b)s(efore)f(the)g(\014rst)g(`)p
+(terminal)1110 4631 y(name)k(b)s(efore)f(the)g(\014rst)g(`)p
Ft(-)p Fu('.)50 b(This)33 b(allo)m(ws)i Ft(sun)e Fu(to)h(matc)m(h)g(b)s
-(oth)f Ft(sun)g Fu(and)1110 5340 y Ft(sun-cmd)p Fu(,)c(for)h(instance.)
-p eop end
-%%Page: 123 129
-TeXDict begin 123 128 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(123)630 299 y Ft(version)144
-b Fu(The)44 b Ft(version)f Fu(test)i(ma)m(y)h(b)s(e)e(used)f(to)j(p)s
-(erform)d(comparisons)i(against)1110 408 y(sp)s(eci\014c)c(Readline)i
-(v)m(ersions.)74 b(The)42 b Ft(version)d Fu(expands)i(to)h(the)g
-(curren)m(t)1110 518 y(Readline)25 b(v)m(ersion.)39 b(The)23
-b(set)h(of)g(comparison)h(op)s(erators)f(includes)f(`)p
-Ft(=)p Fu(')h(\(and)1110 628 y(`)p Ft(==)p Fu('\),)33
-b(`)p Ft(!=)p Fu(',)f(`)p Ft(<=)p Fu(',)h(`)p Ft(>=)p
-Fu(',)f(`)p Ft(<)p Fu(',)h(and)e(`)p Ft(>)p Fu('.)46
-b(The)31 b(v)m(ersion)i(n)m(um)m(b)s(er)d(supplied)h(on)1110
-737 y(the)j(righ)m(t)h(side)f(of)g(the)g(op)s(erator)g(consists)h(of)f
-(a)g(ma)5 b(jor)35 b(v)m(ersion)f(n)m(um)m(b)s(er,)1110
-847 y(an)45 b(optional)i(decimal)f(p)s(oin)m(t,)k(and)44
-b(an)i(optional)g(minor)f(v)m(ersion)h(\(e.g.,)1110 956
-y(`)p Ft(7.1)p Fu('\).)40 b(If)27 b(the)h(minor)f(v)m(ersion)h(is)g
-(omitted,)h(it)f(is)g(assumed)f(to)h(b)s(e)f(`)p Ft(0)p
-Fu('.)40 b(The)1110 1066 y(op)s(erator)34 b(ma)m(y)g(b)s(e)f(separated)
-g(from)g(the)h(string)f Ft(version)f Fu(and)h(from)g(the)1110
-1176 y(v)m(ersion)39 b(n)m(um)m(b)s(er)f(argumen)m(t)h(b)m(y)f
-(whitespace.)67 b(The)38 b(follo)m(wing)i(example)1110
-1285 y(sets)31 b(a)g(v)-5 b(ariable)31 b(if)f(the)h(Readline)g(v)m
-(ersion)f(b)s(eing)g(used)g(is)g(7.0)i(or)e(new)m(er:)1350
-1440 y Ft($if)47 b(version)f(>=)h(7.0)1350 1550 y(set)g
-(show-mode-in-prompt)42 b(on)1350 1659 y($endif)630 1860
-y(application)1110 1970 y Fu(The)21 b Fr(application)j
-Fu(construct)e(is)g(used)f(to)i(include)f(application-sp)s(eci\014c)h
-(set-)1110 2079 y(tings.)39 b(Eac)m(h)26 b(program)e(using)g(the)h
-(Readline)g(library)g(sets)g(the)g Fr(application)1110
-2189 y(name)p Fu(,)g(and)e(y)m(ou)g(can)h(test)g(for)f(a)g(particular)h
-(v)-5 b(alue.)39 b(This)22 b(could)h(b)s(e)g(used)f(to)1110
-2298 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e(useful)g(for)h
-(a)g(sp)s(eci\014c)f(program.)48 b(F)-8 b(or)1110 2408
-y(instance,)35 b(the)e(follo)m(wing)h(command)f(adds)f(a)i(k)m(ey)f
-(sequence)h(that)f(quotes)1110 2518 y(the)e(curren)m(t)f(or)g(previous)
-g(w)m(ord)g(in)g(Bash:)1350 2673 y Ft($if)47 b(Bash)1350
-2782 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)1350
-2892 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 3002 y($endif)630
-3202 y(variable)96 b Fu(The)33 b Fr(v)-5 b(ariable)39
+(oth)f Ft(sun)g Fu(and)1110 4741 y Ft(sun-cmd)p Fu(,)c(for)h(instance.)
+630 4902 y Ft(version)144 b Fu(The)44 b Ft(version)f
+Fu(test)i(ma)m(y)h(b)s(e)e(used)f(to)j(p)s(erform)d(comparisons)i
+(against)1110 5011 y(sp)s(eci\014c)c(Readline)i(v)m(ersions.)74
+b(The)42 b Ft(version)d Fu(expands)i(to)h(the)g(curren)m(t)1110
+5121 y(Readline)25 b(v)m(ersion.)39 b(The)23 b(set)h(of)g(comparison)h
+(op)s(erators)f(includes)f(`)p Ft(=)p Fu(')h(\(and)1110
+5230 y(`)p Ft(==)p Fu('\),)33 b(`)p Ft(!=)p Fu(',)f(`)p
+Ft(<=)p Fu(',)h(`)p Ft(>=)p Fu(',)f(`)p Ft(<)p Fu(',)h(and)e(`)p
+Ft(>)p Fu('.)46 b(The)31 b(v)m(ersion)i(n)m(um)m(b)s(er)d(supplied)h
+(on)1110 5340 y(the)j(righ)m(t)h(side)f(of)g(the)g(op)s(erator)g
+(consists)h(of)f(a)g(ma)5 b(jor)35 b(v)m(ersion)f(n)m(um)m(b)s(er,)p
+eop end
+%%Page: 130 136
+TeXDict begin 130 135 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(130)1110 299 y(an)45
+b(optional)i(decimal)f(p)s(oin)m(t,)k(and)44 b(an)i(optional)g(minor)f
+(v)m(ersion)h(\(e.g.,)1110 408 y(`)p Ft(7.1)p Fu('\).)40
+b(If)27 b(the)h(minor)f(v)m(ersion)h(is)g(omitted,)h(it)f(is)g(assumed)
+f(to)h(b)s(e)f(`)p Ft(0)p Fu('.)40 b(The)1110 518 y(op)s(erator)34
+b(ma)m(y)g(b)s(e)f(separated)g(from)g(the)h(string)f
+Ft(version)f Fu(and)h(from)g(the)1110 628 y(v)m(ersion)39
+b(n)m(um)m(b)s(er)f(argumen)m(t)h(b)m(y)f(whitespace.)67
+b(The)38 b(follo)m(wing)i(example)1110 737 y(sets)31
+b(a)g(v)-5 b(ariable)31 b(if)f(the)h(Readline)g(v)m(ersion)f(b)s(eing)g
+(used)g(is)g(7.0)i(or)e(new)m(er:)1350 872 y Ft($if)47
+b(version)f(>=)h(7.0)1350 981 y(set)g(show-mode-in-prompt)42
+b(on)1350 1091 y($endif)630 1250 y(application)1110 1360
+y Fu(The)21 b Fr(application)j Fu(construct)e(is)g(used)f(to)i(include)
+f(application-sp)s(eci\014c)h(set-)1110 1469 y(tings.)39
+b(Eac)m(h)26 b(program)e(using)g(the)h(Readline)g(library)g(sets)g(the)
+g Fr(application)1110 1579 y(name)p Fu(,)g(and)e(y)m(ou)g(can)h(test)g
+(for)f(a)g(particular)h(v)-5 b(alue.)39 b(This)22 b(could)h(b)s(e)g
+(used)f(to)1110 1689 y(bind)32 b(k)m(ey)h(sequences)g(to)h(functions)e
+(useful)g(for)h(a)g(sp)s(eci\014c)f(program.)48 b(F)-8
+b(or)1110 1798 y(instance,)35 b(the)e(follo)m(wing)h(command)f(adds)f
+(a)i(k)m(ey)f(sequence)h(that)f(quotes)1110 1908 y(the)e(curren)m(t)f
+(or)g(previous)g(w)m(ord)g(in)g(Bash:)1350 2042 y Ft($if)47
+b(Bash)1350 2152 y(#)g(Quote)g(the)g(current)f(or)h(previous)e(word)
+1350 2262 y("\\C-xq":)h("\\eb\\"\\ef\\"")1350 2371 y($endif)630
+2531 y(variable)96 b Fu(The)33 b Fr(v)-5 b(ariable)39
b Fu(construct)33 b(pro)m(vides)g(simple)g(equalit)m(y)i(tests)e(for)g
-(Readline)1110 3312 y(v)-5 b(ariables)32 b(and)f(v)-5
+(Readline)1110 2640 y(v)-5 b(ariables)32 b(and)f(v)-5
b(alues.)45 b(The)32 b(p)s(ermitted)f(comparison)h(op)s(erators)f(are)i
-(`)p Ft(=)p Fu(',)1110 3421 y(`)p Ft(==)p Fu(',)49 b(and)44
+(`)p Ft(=)p Fu(',)1110 2750 y(`)p Ft(==)p Fu(',)49 b(and)44
b(`)p Ft(!=)p Fu('.)85 b(The)44 b(v)-5 b(ariable)46 b(name)f(m)m(ust)g
-(b)s(e)g(separated)g(from)g(the)1110 3531 y(comparison)25
+(b)s(e)g(separated)g(from)g(the)1110 2859 y(comparison)25
b(op)s(erator)g(b)m(y)g(whitespace;)j(the)d(op)s(erator)g(ma)m(y)g(b)s
-(e)f(separated)1110 3641 y(from)33 b(the)h(v)-5 b(alue)35
+(e)f(separated)1110 2969 y(from)33 b(the)h(v)-5 b(alue)35
b(on)f(the)g(righ)m(t)g(hand)f(side)h(b)m(y)f(whitespace.)52
-b(Both)35 b(string)1110 3750 y(and)i(b)s(o)s(olean)g(v)-5
+b(Both)35 b(string)1110 3078 y(and)i(b)s(o)s(olean)g(v)-5
b(ariables)38 b(ma)m(y)h(b)s(e)d(tested.)63 b(Bo)s(olean)39
-b(v)-5 b(ariables)38 b(m)m(ust)g(b)s(e)1110 3860 y(tested)46
+b(v)-5 b(ariables)38 b(m)m(ust)g(b)s(e)1110 3188 y(tested)46
b(against)g(the)f(v)-5 b(alues)46 b Fr(on)f Fu(and)f
Fr(o\013)p Fu(.)85 b(The)45 b(follo)m(wing)h(example)g(is)1110
-3969 y(equiv)-5 b(alen)m(t)32 b(to)f(the)f Ft(mode=emacs)e
-Fu(test)j(describ)s(ed)f(ab)s(o)m(v)m(e:)1350 4124 y
-Ft($if)47 b(editing-mode)d(==)k(emacs)1350 4234 y(set)f
-(show-mode-in-prompt)42 b(on)1350 4344 y($endif)150 4544
+3298 y(equiv)-5 b(alen)m(t)32 b(to)f(the)f Ft(mode=emacs)e
+Fu(test)j(describ)s(ed)f(ab)s(o)m(v)m(e:)1350 3432 y
+Ft($if)47 b(editing-mode)d(==)k(emacs)1350 3542 y(set)f
+(show-mode-in-prompt)42 b(on)1350 3651 y($endif)150 3811
y($endif)192 b Fu(This)29 b(command,)i(as)f(seen)h(in)f(the)g(previous)
g(example,)h(terminates)g(an)g Ft($if)e Fu(command.)150
-4745 y Ft($else)240 b Fu(Commands)29 b(in)h(this)h(branc)m(h)e(of)i
+3970 y Ft($else)240 b Fu(Commands)29 b(in)h(this)h(branc)m(h)e(of)i
(the)f Ft($if)g Fu(directiv)m(e)i(are)f(executed)g(if)f(the)h(test)g
-(fails.)150 4945 y Ft($include)96 b Fu(This)43 b(directiv)m(e)i(tak)m
+(fails.)150 4130 y Ft($include)96 b Fu(This)43 b(directiv)m(e)i(tak)m
(es)g(a)e(single)i(\014lename)e(as)h(an)f(argumen)m(t)h(and)f(reads)g
-(commands)630 5055 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
+(commands)630 4239 y(and)38 b(bindings)f(from)h(that)i(\014le.)65
b(F)-8 b(or)39 b(example,)j(the)d(follo)m(wing)h(directiv)m(e)g(reads)e
-(from)630 5165 y Ft(/etc/inputrc)p Fu(:)870 5320 y Ft($include)46
-b(/etc/inputrc)p eop end
-%%Page: 124 130
-TeXDict begin 124 129 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(124)150 299 y Fk(8.3.3)63
-b(Sample)41 b(Init)g(File)150 446 y Fu(Here)27 b(is)f(an)h(example)g
-(of)f(an)h Fr(inputrc)k Fu(\014le.)39 b(This)26 b(illustrates)h(k)m(ey)
-h(binding,)e(v)-5 b(ariable)27 b(assignmen)m(t,)i(and)150
-555 y(conditional)j(syn)m(tax.)p eop end
-%%Page: 125 131
-TeXDict begin 125 130 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(125)390 408 y Ft(#)47
+(from)630 4349 y Ft(/etc/inputrc)p Fu(:)870 4483 y Ft($include)46
+b(/etc/inputrc)150 4682 y Fk(8.3.3)63 b(Sample)41 b(Init)g(File)150
+4829 y Fu(Here)27 b(is)f(an)h(example)g(of)f(an)h Fr(inputrc)k
+Fu(\014le.)39 b(This)26 b(illustrates)h(k)m(ey)h(binding,)e(v)-5
+b(ariable)27 b(assignmen)m(t,)i(and)150 4939 y(conditional)j(syn)m
+(tax.)p eop end
+%%Page: 131 137
+TeXDict begin 131 136 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(131)390 408 y Ft(#)47
b(This)g(file)g(controls)e(the)i(behaviour)e(of)j(line)e(input)h
(editing)e(for)390 518 y(#)i(programs)f(that)h(use)g(the)f(GNU)h
(Readline)f(library.)93 b(Existing)390 628 y(#)47 b(programs)f(include)
@@ -17192,9 +17762,9 @@ y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(keypad)f(mode)390
4902 y(#)390 5011 y(#)47 b(Arrow)g(keys)f(in)i(8)f(bit)g(ANSI)g(mode)
390 5121 y(#)390 5230 y(#"\\M-\\C-[D":)331 b(backward-char)390
5340 y(#"\\M-\\C-[C":)g(forward-char)p eop end
-%%Page: 126 132
-TeXDict begin 126 131 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(126)390 299 y Ft(#"\\M-\\C-[A":)
+%%Page: 132 138
+TeXDict begin 132 137 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(132)390 299 y Ft(#"\\M-\\C-[A":)
331 b(previous-history)390 408 y(#"\\M-\\C-[B":)g(next-history)390
628 y(C-q:)47 b(quoted-insert)390 847 y($endif)390 1066
y(#)g(An)h(old-style)d(binding.)93 b(This)47 b(happens)f(to)h(be)g(the)
@@ -17227,9 +17797,9 @@ y($endif)390 3477 y(#)i(use)g(a)h(visible)e(bell)g(if)h(one)g(is)h
g(for)i(a)g(word,)390 5121 y(#)g(ask)g(whether)f(or)h(not)g(the)g(user)
g(wants)f(to)h(see)g(all)g(of)g(them)390 5230 y(set)g
(completion-query-items)42 b(150)p eop end
-%%Page: 127 133
-TeXDict begin 127 132 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(127)390 299 y Ft(#)47
+%%Page: 133 139
+TeXDict begin 133 138 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(133)390 299 y Ft(#)47
b(For)g(FTP)390 408 y($if)g(Ftp)390 518 y("\\C-xg":)f("get)g(\\M-?")390
628 y("\\C-xt":)g("put)g(\\M-?")390 737 y("\\M-.":)g(yank-last-arg)390
847 y($endif)150 1089 y Fs(8.4)68 b(Bindable)45 b(Readline)i(Commands)
@@ -17239,7 +17809,7 @@ b(Y)-8 b(ou)33 b(can)150 1358 y(list)40 b(y)m(our)f(k)m(ey)i(bindings)d
(b)m(y)h(executing)i Ft(bind)29 b(-P)39 b Fu(or,)j(for)d(a)h(more)g
(terse)g(format,)i(suitable)e(for)f(an)150 1468 y Fr(inputrc)34
b Fu(\014le,)29 b Ft(bind)g(-p)p Fu(.)40 b(\(See)30 b(Section)f(4.2)h
-([Bash)g(Builtins],)g(page)g(51.\))41 b(Command)28 b(names)h(without)
+([Bash)g(Builtins],)g(page)g(55.\))41 b(Command)28 b(names)h(without)
150 1577 y(an)h(accompan)m(ying)i(k)m(ey)f(sequence)g(are)g(un)m(b)s
(ound)d(b)m(y)i(default.)275 1713 y(In)25 b(the)h(follo)m(wing)i
(descriptions,)f Fr(p)s(oin)m(t)h Fu(refers)e(to)h(the)f(curren)m(t)g
@@ -17279,9 +17849,9 @@ b(screen)f(line.)39 b(This)24 b(will)i(not)f(ha)m(v)m(e)h(the)f
(ysical)h(line)g(or)f(if)g(p)s(oin)m(t)h(is)f(not)h(greater)g(than)630
5340 y(the)j(length)f(of)h(the)f(prompt)g(plus)f(the)i(screen)f(width.)
p eop end
-%%Page: 128 134
-TeXDict begin 128 133 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(128)150 299 y Ft(next-screen-line)
+%%Page: 134 140
+TeXDict begin 134 139 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(134)150 299 y Ft(next-screen-line)
26 b(\(\))630 408 y Fu(A)m(ttempt)g(to)f(mo)m(v)m(e)i(p)s(oin)m(t)d(to)
i(the)e(same)i(ph)m(ysical)f(screen)g(column)f(on)h(the)f(next)h(ph)m
(ysical)630 518 y(screen)e(line.)39 b(This)23 b(will)g(not)h(ha)m(v)m
@@ -17339,9 +17909,9 @@ b(\(M-p\))630 5121 y Fu(Searc)m(h)31 b(bac)m(kw)m(ard)h(starting)g(at)g
(tal)g(searc)m(h)f(for)g(a)g(string)g(supplied)f(b)m(y)h(the)630
5340 y(user.)k(The)30 b(searc)m(h)h(string)f(ma)m(y)h(matc)m(h)g(an)m
(ywhere)g(in)f(a)h(history)f(line.)p eop end
-%%Page: 129 135
-TeXDict begin 129 134 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(129)150 299 y Ft
+%%Page: 135 141
+TeXDict begin 135 140 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(135)150 299 y Ft
(non-incremental-forward-)o(sear)o(ch-h)o(ist)o(ory)24
b(\(M-n\))630 408 y Fu(Searc)m(h)44 b(forw)m(ard)f(starting)h(at)h(the)
e(curren)m(t)h(line)g(and)f(mo)m(ving)h(`do)m(wn')g(through)f(the)630
@@ -17415,1094 +17985,1109 @@ b(the)g(curren)m(t)e(line)i(for)f(return)f(to)h(the)h(calling)g
b(en)m(tered,)k(and)d(fetc)m(h)h(the)f(next)g(line)h(relativ)m(e)h(to)f
(the)f(curren)m(t)g(line)h(from)f(the)g(history)p eop
end
-%%Page: 130 136
-TeXDict begin 130 135 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(130)630 299 y(for)31
+%%Page: 136 142
+TeXDict begin 136 141 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(136)630 299 y(for)31
b(editing.)43 b(A)31 b(n)m(umeric)f(argumen)m(t,)i(if)f(supplied,)f(sp)
s(eci\014es)h(the)g(history)f(en)m(try)i(to)f(use)630
-408 y(instead)g(of)f(the)h(curren)m(t)f(line.)150 605
-y Fk(8.4.3)63 b(Commands)42 b(F)-10 b(or)41 b(Changing)g(T)-10
-b(ext)150 775 y Fj(end-of-file)27 b Ft(\(usually)h(C-d\))630
-885 y Fu(The)e(c)m(haracter)h(indicating)h(end-of-\014le)e(as)h(set,)g
+408 y(instead)g(of)f(the)h(curren)m(t)f(line.)150 565
+y Ft(fetch-history)d(\(\))630 675 y Fu(With)e(a)f(n)m(umeric)g(argumen)
+m(t,)i(fetc)m(h)f(that)g(en)m(try)f(from)g(the)g(history)g(list)h(and)e
+(mak)m(e)i(it)g(the)630 784 y(curren)m(t)30 b(line.)41
+b(Without)30 b(an)g(argumen)m(t,)h(mo)m(v)m(e)g(bac)m(k)g(to)f(the)g
+(\014rst)f(en)m(try)h(in)g(the)g(history)630 894 y(list.)150
+1090 y Fk(8.4.3)63 b(Commands)42 b(F)-10 b(or)41 b(Changing)g(T)-10
+b(ext)150 1261 y Fj(end-of-file)27 b Ft(\(usually)h(C-d\))630
+1370 y Fu(The)e(c)m(haracter)h(indicating)h(end-of-\014le)e(as)h(set,)g
(for)f(example,)i(b)m(y)e Ft(stty)p Fu(.)39 b(If)25 b(this)h(c)m
-(harac-)630 995 y(ter)c(is)g(read)g(when)e(there)i(are)h(no)e(c)m
+(harac-)630 1480 y(ter)c(is)g(read)g(when)e(there)i(are)h(no)e(c)m
(haracters)j(on)d(the)h(line,)i(and)d(p)s(oin)m(t)h(is)g(at)h(the)f(b)s
-(eginning)630 1104 y(of)31 b(the)f(line,)h(Readline)g(in)m(terprets)g
+(eginning)630 1590 y(of)31 b(the)f(line,)h(Readline)g(in)m(terprets)g
(it)g(as)f(the)h(end)f(of)g(input)f(and)h(returns)f Fm(eof)p
-Fu(.)150 1261 y Ft(delete-char)e(\(C-d\))630 1370 y Fu(Delete)35
+Fu(.)150 1746 y Ft(delete-char)e(\(C-d\))630 1856 y Fu(Delete)35
b(the)f(c)m(haracter)h(at)f(p)s(oin)m(t.)49 b(If)33 b(this)g(function)g
-(is)g(b)s(ound)e(to)j(the)g(same)f(c)m(haracter)630 1480
+(is)g(b)s(ound)e(to)j(the)g(same)f(c)m(haracter)630 1966
y(as)e(the)f(tt)m(y)i Fm(eof)d Fu(c)m(haracter,)j(as)f
Fj(C-d)e Fu(commonly)i(is,)g(see)g(ab)s(o)m(v)m(e)h(for)e(the)g
-(e\013ects.)150 1637 y Ft(backward-delete-char)25 b(\(Rubout\))630
-1746 y Fu(Delete)32 b(the)f(c)m(haracter)g(b)s(ehind)e(the)h(cursor.)40
+(e\013ects.)150 2122 y Ft(backward-delete-char)25 b(\(Rubout\))630
+2232 y Fu(Delete)32 b(the)f(c)m(haracter)g(b)s(ehind)e(the)h(cursor.)40
b(A)30 b(n)m(umeric)g(argumen)m(t)h(means)f(to)h(kill)g(the)630
-1856 y(c)m(haracters)h(instead)e(of)h(deleting)g(them.)150
-2013 y Ft(forward-backward-delete-)o(char)24 b(\(\))630
-2122 y Fu(Delete)40 b(the)f(c)m(haracter)h(under)c(the)j(cursor,)h
+2341 y(c)m(haracters)h(instead)e(of)h(deleting)g(them.)150
+2498 y Ft(forward-backward-delete-)o(char)24 b(\(\))630
+2608 y Fu(Delete)40 b(the)f(c)m(haracter)h(under)c(the)j(cursor,)h
(unless)d(the)i(cursor)e(is)h(at)h(the)g(end)e(of)i(the)630
-2232 y(line,)33 b(in)e(whic)m(h)g(case)i(the)f(c)m(haracter)h(b)s
+2717 y(line,)33 b(in)e(whic)m(h)g(case)i(the)f(c)m(haracter)h(b)s
(ehind)d(the)i(cursor)f(is)g(deleted.)46 b(By)32 b(default,)g(this)630
-2341 y(is)e(not)h(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150
-2498 y Ft(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 2608
+2827 y(is)e(not)h(b)s(ound)d(to)j(a)g(k)m(ey)-8 b(.)150
+2983 y Ft(quoted-insert)27 b(\(C-q)i(or)h(C-v\))630 3093
y Fu(Add)j(the)i(next)f(c)m(haracter)i(t)m(yp)s(ed)e(to)h(the)f(line)h
(v)m(erbatim.)53 b(This)33 b(is)i(ho)m(w)f(to)h(insert)f(k)m(ey)630
-2717 y(sequences)d(lik)m(e)g Fj(C-q)p Fu(,)f(for)g(example.)150
-2874 y Ft(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o(\))630
-2983 y Fu(Insert)g(y)m(ourself.)150 3140 y Ft(bracketed-paste-begin)25
-b(\(\))630 3250 y Fu(This)f(function)h(is)f(in)m(tended)h(to)h(b)s(e)e
+3203 y(sequences)d(lik)m(e)g Fj(C-q)p Fu(,)f(for)g(example.)150
+3359 y Ft(self-insert)d(\(a,)j(b,)g(A,)f(1,)h(!,)g(...)o(\))630
+3469 y Fu(Insert)g(y)m(ourself.)150 3626 y Ft(bracketed-paste-begin)25
+b(\(\))630 3735 y Fu(This)f(function)h(is)f(in)m(tended)h(to)h(b)s(e)e
(b)s(ound)f(to)i(the)g Ft(")p Fu(brac)m(k)m(eted)h(paste)p
-Ft(")f Fu(escap)s(e)h(sequence)630 3359 y(sen)m(t)38
+Ft(")f Fu(escap)s(e)h(sequence)630 3845 y(sen)m(t)38
b(b)m(y)f(some)h(terminals,)i(and)d(suc)m(h)g(a)h(binding)e(is)i
(assigned)f(b)m(y)h(default.)62 b(It)38 b(allo)m(ws)630
-3469 y(Readline)33 b(to)g(insert)g(the)f(pasted)h(text)g(as)g(a)g
+3954 y(Readline)33 b(to)g(insert)g(the)f(pasted)h(text)g(as)g(a)g
(single)g(unit)f(without)h(treating)h(eac)m(h)f(c)m(har-)630
-3578 y(acter)40 b(as)f(if)g(it)g(had)f(b)s(een)g(read)h(from)f(the)h(k)
+4064 y(acter)40 b(as)f(if)g(it)g(had)f(b)s(een)g(read)h(from)f(the)h(k)
m(eyb)s(oard.)66 b(The)39 b(c)m(haracters)h(are)f(inserted)630
-3688 y(as)44 b(if)g(eac)m(h)i(one)e(w)m(as)g(b)s(ound)e(to)j
+4173 y(as)44 b(if)g(eac)m(h)i(one)e(w)m(as)g(b)s(ound)e(to)j
Ft(self-insert)c Fu(instead)j(of)h(executing)g(an)m(y)f(editing)630
-3798 y(commands.)630 3931 y(Brac)m(k)m(eted)38 b(paste)f(sets)f(the)h
+4283 y(commands.)630 4416 y(Brac)m(k)m(eted)38 b(paste)f(sets)f(the)h
(region)f(\(the)h(c)m(haracters)g(b)s(et)m(w)m(een)g(p)s(oin)m(t)f(and)
-g(the)g(mark\))630 4040 y(to)j(the)g(inserted)f(text.)65
+g(the)g(mark\))630 4526 y(to)j(the)g(inserted)f(text.)65
b(It)39 b(uses)f(the)g(concept)h(of)g(an)f Fl(active)i(mark)10
-b Fu(:)57 b(when)38 b(the)g(mark)630 4150 y(is)d(activ)m(e,)k(Readline)
+b Fu(:)57 b(when)38 b(the)g(mark)630 4635 y(is)d(activ)m(e,)k(Readline)
c(redispla)m(y)h(uses)e(the)h(terminal's)h(standout)f(mo)s(de)f(to)i
-(denote)g(the)630 4260 y(region.)150 4416 y Ft(transpose-chars)26
-b(\(C-t\))630 4526 y Fu(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)
+(denote)g(the)630 4745 y(region.)150 4902 y Ft(transpose-chars)26
+b(\(C-t\))630 5011 y Fu(Drag)33 b(the)f(c)m(haracter)h(b)s(efore)f(the)
g(cursor)f(forw)m(ard)h(o)m(v)m(er)h(the)f(c)m(haracter)i(at)e(the)g
-(cursor,)630 4635 y(mo)m(ving)k(the)g(cursor)f(forw)m(ard)g(as)g(w)m
+(cursor,)630 5121 y(mo)m(ving)k(the)g(cursor)f(forw)m(ard)g(as)g(w)m
(ell.)57 b(If)35 b(the)h(insertion)g(p)s(oin)m(t)f(is)g(at)i(the)e(end)
-g(of)h(the)630 4745 y(line,)24 b(then)e(this)g(transp)s(oses)f(the)h
+g(of)h(the)630 5230 y(line,)24 b(then)e(this)g(transp)s(oses)f(the)h
(last)h(t)m(w)m(o)g(c)m(haracters)g(of)f(the)h(line.)38
-b(Negativ)m(e)25 b(argumen)m(ts)630 4855 y(ha)m(v)m(e)32
-b(no)e(e\013ect.)150 5011 y Ft(transpose-words)c(\(M-t\))630
-5121 y Fu(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(past)g
-(the)h(w)m(ord)f(after)g(p)s(oin)m(t,)i(mo)m(ving)f(p)s(oin)m(t)f(past)
-g(that)630 5230 y(w)m(ord)c(as)h(w)m(ell.)41 b(If)27
-b(the)i(insertion)f(p)s(oin)m(t)h(is)f(at)h(the)g(end)e(of)i(the)f
-(line,)i(this)e(transp)s(oses)g(the)630 5340 y(last)j(t)m(w)m(o)h(w)m
-(ords)e(on)g(the)h(line.)p eop end
-%%Page: 131 137
-TeXDict begin 131 136 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(131)150 299 y Ft(upcase-word)27
-b(\(M-u\))630 408 y Fu(Upp)s(ercase)32 b(the)g(curren)m(t)g(\(or)g
-(follo)m(wing\))i(w)m(ord.)45 b(With)32 b(a)g(negativ)m(e)j(argumen)m
-(t,)e(upp)s(er-)630 518 y(case)e(the)g(previous)f(w)m(ord,)g(but)g(do)g
-(not)h(mo)m(v)m(e)h(the)e(cursor.)150 665 y Ft(downcase-word)d(\(M-l\))
-630 775 y Fu(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m
-(wing\))i(w)m(ord.)37 b(With)22 b(a)g(negativ)m(e)i(argumen)m(t,)g(lo)m
-(w)m(ercase)630 884 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f
-(mo)m(v)m(e)i(the)f(cursor.)150 1032 y Ft(capitalize-word)26
-b(\(M-c\))630 1141 y Fu(Capitalize)d(the)f(curren)m(t)f(\(or)g(follo)m
+b(Negativ)m(e)25 b(argumen)m(ts)630 5340 y(ha)m(v)m(e)32
+b(no)e(e\013ect.)p eop end
+%%Page: 137 143
+TeXDict begin 137 142 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(137)150 299 y Ft(transpose-words)
+26 b(\(M-t\))630 408 y Fu(Drag)33 b(the)g(w)m(ord)f(b)s(efore)g(p)s
+(oin)m(t)g(past)g(the)h(w)m(ord)f(after)g(p)s(oin)m(t,)i(mo)m(ving)f(p)
+s(oin)m(t)f(past)g(that)630 518 y(w)m(ord)c(as)h(w)m(ell.)41
+b(If)27 b(the)i(insertion)f(p)s(oin)m(t)h(is)f(at)h(the)g(end)e(of)i
+(the)f(line,)i(this)e(transp)s(oses)g(the)630 628 y(last)j(t)m(w)m(o)h
+(w)m(ords)e(on)g(the)h(line.)150 797 y Ft(upcase-word)c(\(M-u\))630
+907 y Fu(Upp)s(ercase)32 b(the)g(curren)m(t)g(\(or)g(follo)m(wing\))i
+(w)m(ord.)45 b(With)32 b(a)g(negativ)m(e)j(argumen)m(t,)e(upp)s(er-)630
+1016 y(case)e(the)g(previous)f(w)m(ord,)g(but)g(do)g(not)h(mo)m(v)m(e)h
+(the)e(cursor.)150 1186 y Ft(downcase-word)d(\(M-l\))630
+1296 y Fu(Lo)m(w)m(ercase)c(the)f(curren)m(t)f(\(or)h(follo)m(wing\))i
+(w)m(ord.)37 b(With)22 b(a)g(negativ)m(e)i(argumen)m(t,)g(lo)m(w)m
+(ercase)630 1405 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f(mo)m
+(v)m(e)i(the)f(cursor.)150 1575 y Ft(capitalize-word)26
+b(\(M-c\))630 1684 y Fu(Capitalize)d(the)f(curren)m(t)f(\(or)g(follo)m
(wing\))i(w)m(ord.)38 b(With)21 b(a)h(negativ)m(e)h(argumen)m(t,)h
-(capitalize)630 1251 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f
-(mo)m(v)m(e)i(the)f(cursor.)150 1398 y Ft(overwrite-mode)26
-b(\(\))630 1508 y Fu(T)-8 b(oggle)35 b(o)m(v)m(erwrite)g(mo)s(de.)48
+(capitalize)630 1794 y(the)31 b(previous)e(w)m(ord,)i(but)e(do)i(not)f
+(mo)m(v)m(e)i(the)f(cursor.)150 1964 y Ft(overwrite-mode)26
+b(\(\))630 2073 y Fu(T)-8 b(oggle)35 b(o)m(v)m(erwrite)g(mo)s(de.)48
b(With)33 b(an)g(explicit)h(p)s(ositiv)m(e)g(n)m(umeric)f(argumen)m(t,)
-h(switc)m(hes)630 1617 y(to)22 b(o)m(v)m(erwrite)i(mo)s(de.)37
+h(switc)m(hes)630 2183 y(to)22 b(o)m(v)m(erwrite)i(mo)s(de.)37
b(With)22 b(an)g(explicit)h(non-p)s(ositiv)m(e)f(n)m(umeric)g(argumen)m
-(t,)i(switc)m(hes)e(to)630 1727 y(insert)30 b(mo)s(de.)41
+(t,)i(switc)m(hes)e(to)630 2292 y(insert)30 b(mo)s(de.)41
b(This)30 b(command)h(a\013ects)h(only)e Ft(emacs)f Fu(mo)s(de;)i
-Ft(vi)f Fu(mo)s(de)g(do)s(es)g(o)m(v)m(erwrite)630 1837
+Ft(vi)f Fu(mo)s(de)g(do)s(es)g(o)m(v)m(erwrite)630 2402
y(di\013eren)m(tly)-8 b(.)42 b(Eac)m(h)31 b(call)h(to)f
Ft(readline\(\))c Fu(starts)k(in)f(insert)g(mo)s(de.)630
-1965 y(In)52 b(o)m(v)m(erwrite)h(mo)s(de,)58 b(c)m(haracters)c(b)s
+2541 y(In)52 b(o)m(v)m(erwrite)h(mo)s(de,)58 b(c)m(haracters)c(b)s
(ound)c(to)j Ft(self-insert)c Fu(replace)k(the)g(text)g(at)630
-2075 y(p)s(oin)m(t)59 b(rather)f(than)h(pushing)e(the)i(text)g(to)h
+2651 y(p)s(oin)m(t)59 b(rather)f(than)h(pushing)e(the)i(text)g(to)h
(the)f(righ)m(t.)126 b(Characters)59 b(b)s(ound)d(to)630
-2184 y Ft(backward-delete-char)25 b Fu(replace)31 b(the)g(c)m(haracter)
-h(b)s(efore)e(p)s(oin)m(t)g(with)g(a)h(space.)630 2313
+2761 y Ft(backward-delete-char)25 b Fu(replace)31 b(the)g(c)m(haracter)
+h(b)s(efore)e(p)s(oin)m(t)g(with)g(a)h(space.)630 2900
y(By)g(default,)f(this)h(command)f(is)g(un)m(b)s(ound.)150
-2500 y Fk(8.4.4)63 b(Killing)42 b(And)e(Y)-10 b(anking)150
-2665 y Ft(kill-line)28 b(\(C-k\))630 2775 y Fu(Kill)k(the)f(text)i
+3110 y Fk(8.4.4)63 b(Killing)42 b(And)e(Y)-10 b(anking)150
+3287 y Ft(kill-line)28 b(\(C-k\))630 3396 y Fu(Kill)k(the)f(text)i
(from)d(p)s(oin)m(t)i(to)g(the)f(end)g(of)g(the)h(line.)44
b(With)31 b(a)h(negativ)m(e)i(n)m(umeric)d(argu-)630
-2885 y(men)m(t,)g(kill)g(bac)m(kw)m(ard)g(from)f(the)g(cursor)g(to)h
+3506 y(men)m(t,)g(kill)g(bac)m(kw)m(ard)g(from)f(the)g(cursor)g(to)h
(the)g(b)s(eginning)e(of)i(the)g(curren)m(t)f(line.)150
-3032 y Ft(backward-kill-line)25 b(\(C-x)30 b(Rubout\))630
-3141 y Fu(Kill)40 b(bac)m(kw)m(ard)h(from)e(the)h(cursor)g(to)g(the)g
+3675 y Ft(backward-kill-line)25 b(\(C-x)30 b(Rubout\))630
+3785 y Fu(Kill)40 b(bac)m(kw)m(ard)h(from)e(the)h(cursor)g(to)g(the)g
(b)s(eginning)g(of)g(the)g(curren)m(t)f(line.)70 b(With)41
-b(a)630 3251 y(negativ)m(e)47 b(n)m(umeric)e(argumen)m(t,)50
+b(a)630 3895 y(negativ)m(e)47 b(n)m(umeric)e(argumen)m(t,)50
b(kill)c(forw)m(ard)e(from)h(the)g(cursor)g(to)h(the)f(end)f(of)i(the)
-630 3361 y(curren)m(t)30 b(line.)150 3508 y Ft(unix-line-discard)c
-(\(C-u\))630 3617 y Fu(Kill)31 b(bac)m(kw)m(ard)g(from)e(the)i(cursor)f
+630 4004 y(curren)m(t)30 b(line.)150 4174 y Ft(unix-line-discard)c
+(\(C-u\))630 4283 y Fu(Kill)31 b(bac)m(kw)m(ard)g(from)e(the)i(cursor)f
(to)h(the)f(b)s(eginning)g(of)h(the)f(curren)m(t)g(line.)150
-3765 y Ft(kill-whole-line)c(\(\))630 3874 y Fu(Kill)37
+4453 y Ft(kill-whole-line)c(\(\))630 4562 y Fu(Kill)37
b(all)g(c)m(haracters)h(on)f(the)f(curren)m(t)h(line,)h(no)f(matter)g
(where)f(p)s(oin)m(t)h(is.)59 b(By)36 b(default,)630
-3984 y(this)30 b(is)h(un)m(b)s(ound.)150 4131 y Ft(kill-word)d(\(M-d\))
-630 4241 y Fu(Kill)i(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f
+4672 y(this)30 b(is)h(un)m(b)s(ound.)150 4842 y Ft(kill-word)d(\(M-d\))
+630 4951 y Fu(Kill)i(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f
(curren)m(t)h(w)m(ord,)f(or)g(if)h(b)s(et)m(w)m(een)g(w)m(ords,)f(to)h
-(the)g(end)630 4350 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8
+(the)g(end)630 5061 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8
b(ord)31 b(b)s(oundaries)e(are)h(the)h(same)g(as)f Ft(forward-word)p
-Fu(.)150 4498 y Ft(backward-kill-word)25 b(\(M-DEL\))630
-4607 y Fu(Kill)k(the)g(w)m(ord)g(b)s(ehind)e(p)s(oin)m(t.)40
+Fu(.)150 5230 y Ft(backward-kill-word)25 b(\(M-DEL\))630
+5340 y Fu(Kill)k(the)g(w)m(ord)g(b)s(ehind)e(p)s(oin)m(t.)40
b(W)-8 b(ord)29 b(b)s(oundaries)f(are)h(the)g(same)g(as)g
-Ft(backward-word)p Fu(.)150 4754 y Ft(shell-kill-word)d(\(M-C-d\))630
-4864 y Fu(Kill)k(from)f(p)s(oin)m(t)g(to)h(the)g(end)e(of)i(the)f
-(curren)m(t)h(w)m(ord,)f(or)g(if)h(b)s(et)m(w)m(een)g(w)m(ords,)f(to)h
-(the)g(end)630 4974 y(of)h(the)f(next)h(w)m(ord.)40 b(W)-8
-b(ord)31 b(b)s(oundaries)e(are)h(the)h(same)g(as)f Ft
-(shell-forward-word)p Fu(.)150 5121 y Ft(shell-backward-kill-word)24
-b(\(\))630 5230 y Fu(Kill)e(the)h(w)m(ord)e(b)s(ehind)g(p)s(oin)m(t.)38
+Ft(backward-word)p Fu(.)p eop end
+%%Page: 138 144
+TeXDict begin 138 143 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(138)150 299 y Ft(shell-kill-word)
+26 b(\(M-C-d\))630 408 y Fu(Kill)k(from)f(p)s(oin)m(t)g(to)h(the)g(end)
+e(of)i(the)f(curren)m(t)h(w)m(ord,)f(or)g(if)h(b)s(et)m(w)m(een)g(w)m
+(ords,)f(to)h(the)g(end)630 518 y(of)h(the)f(next)h(w)m(ord.)40
+b(W)-8 b(ord)31 b(b)s(oundaries)e(are)h(the)h(same)g(as)f
+Ft(shell-forward-word)p Fu(.)150 692 y Ft(shell-backward-kill-word)24
+b(\(\))630 801 y Fu(Kill)e(the)h(w)m(ord)e(b)s(ehind)g(p)s(oin)m(t.)38
b(W)-8 b(ord)22 b(b)s(oundaries)f(are)h(the)g(same)h(as)f
-Ft(shell-backward-)630 5340 y(word)p Fu(.)p eop end
-%%Page: 132 138
-TeXDict begin 132 137 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(132)150 299 y Ft
-(shell-transpose-words)25 b(\(M-C-t\))630 408 y Fu(Drag)33
+Ft(shell-backward-)630 911 y(word)p Fu(.)150 1084 y Ft
+(shell-transpose-words)j(\(M-C-t\))630 1194 y Fu(Drag)33
b(the)g(w)m(ord)f(b)s(efore)g(p)s(oin)m(t)g(past)g(the)h(w)m(ord)f
(after)g(p)s(oin)m(t,)i(mo)m(ving)f(p)s(oin)m(t)f(past)g(that)630
-518 y(w)m(ord)c(as)h(w)m(ell.)41 b(If)27 b(the)i(insertion)f(p)s(oin)m
+1304 y(w)m(ord)c(as)h(w)m(ell.)41 b(If)27 b(the)i(insertion)f(p)s(oin)m
(t)h(is)f(at)h(the)g(end)e(of)i(the)f(line,)i(this)e(transp)s(oses)g
-(the)630 628 y(last)j(t)m(w)m(o)h(w)m(ords)d(on)i(the)f(line.)41
+(the)630 1413 y(last)j(t)m(w)m(o)h(w)m(ords)d(on)i(the)f(line.)41
b(W)-8 b(ord)31 b(b)s(oundaries)e(are)h(the)h(same)f(as)h
-Ft(shell-forward-)630 737 y(word)e Fu(and)h Ft(shell-backward-word)p
-Fu(.)150 897 y Ft(unix-word-rubout)c(\(C-w\))630 1007
+Ft(shell-forward-)630 1523 y(word)e Fu(and)h Ft(shell-backward-word)p
+Fu(.)150 1696 y Ft(unix-word-rubout)c(\(C-w\))630 1806
y Fu(Kill)32 b(the)g(w)m(ord)f(b)s(ehind)f(p)s(oin)m(t,)i(using)f
(white)h(space)g(as)g(a)g(w)m(ord)f(b)s(oundary)-8 b(.)43
-b(The)31 b(killed)630 1116 y(text)g(is)g(sa)m(v)m(ed)g(on)g(the)f
-(kill-ring.)150 1277 y Ft(unix-filename-rubout)25 b(\(\))630
-1386 y Fu(Kill)37 b(the)f(w)m(ord)g(b)s(ehind)f(p)s(oin)m(t,)j(using)e
+b(The)31 b(killed)630 1915 y(text)g(is)g(sa)m(v)m(ed)g(on)g(the)f
+(kill-ring.)150 2089 y Ft(unix-filename-rubout)25 b(\(\))630
+2199 y Fu(Kill)37 b(the)f(w)m(ord)g(b)s(ehind)f(p)s(oin)m(t,)j(using)e
(white)g(space)h(and)f(the)g(slash)g(c)m(haracter)i(as)f(the)630
-1496 y(w)m(ord)30 b(b)s(oundaries.)39 b(The)30 b(killed)h(text)g(is)g
-(sa)m(v)m(ed)g(on)g(the)f(kill-ring.)150 1656 y Ft
-(delete-horizontal-space)24 b(\(\))630 1765 y Fu(Delete)33
+2308 y(w)m(ord)30 b(b)s(oundaries.)39 b(The)30 b(killed)h(text)g(is)g
+(sa)m(v)m(ed)g(on)g(the)f(kill-ring.)150 2482 y Ft
+(delete-horizontal-space)24 b(\(\))630 2591 y Fu(Delete)33
b(all)e(spaces)g(and)e(tabs)i(around)e(p)s(oin)m(t.)41
-b(By)31 b(default,)f(this)h(is)f(un)m(b)s(ound.)150 1925
-y Ft(kill-region)d(\(\))630 2035 y Fu(Kill)k(the)f(text)i(in)e(the)g
+b(By)31 b(default,)f(this)h(is)f(un)m(b)s(ound.)150 2765
+y Ft(kill-region)d(\(\))630 2874 y Fu(Kill)k(the)f(text)i(in)e(the)g
(curren)m(t)h(region.)41 b(By)31 b(default,)f(this)h(command)f(is)g(un)
-m(b)s(ound.)150 2195 y Ft(copy-region-as-kill)25 b(\(\))630
-2305 y Fu(Cop)m(y)34 b(the)g(text)h(in)f(the)g(region)g(to)h(the)f
+m(b)s(ound.)150 3048 y Ft(copy-region-as-kill)25 b(\(\))630
+3158 y Fu(Cop)m(y)34 b(the)g(text)h(in)f(the)g(region)g(to)h(the)f
(kill)h(bu\013er,)f(so)g(it)h(can)f(b)s(e)f(y)m(ank)m(ed)i(righ)m(t)f
-(a)m(w)m(a)m(y)-8 b(.)630 2414 y(By)31 b(default,)f(this)h(command)f
-(is)g(un)m(b)s(ound.)150 2574 y Ft(copy-backward-word)25
-b(\(\))630 2684 y Fu(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m
+(a)m(w)m(a)m(y)-8 b(.)630 3267 y(By)31 b(default,)f(this)h(command)f
+(is)g(un)m(b)s(ound.)150 3441 y Ft(copy-backward-word)25
+b(\(\))630 3550 y Fu(Cop)m(y)38 b(the)h(w)m(ord)f(b)s(efore)g(p)s(oin)m
(t)g(to)i(the)e(kill)h(bu\013er.)64 b(The)38 b(w)m(ord)g(b)s(oundaries)
-f(are)i(the)630 2793 y(same)31 b(as)f Ft(backward-word)p
+f(are)i(the)630 3660 y(same)31 b(as)f Ft(backward-word)p
Fu(.)38 b(By)30 b(default,)h(this)f(command)g(is)h(un)m(b)s(ound.)150
-2953 y Ft(copy-forward-word)26 b(\(\))630 3063 y Fu(Cop)m(y)31
+3833 y Ft(copy-forward-word)26 b(\(\))630 3943 y Fu(Cop)m(y)31
b(the)g(w)m(ord)g(follo)m(wing)h(p)s(oin)m(t)f(to)h(the)f(kill)h
(bu\013er.)42 b(The)30 b(w)m(ord)h(b)s(oundaries)e(are)j(the)630
-3173 y(same)f(as)f Ft(forward-word)p Fu(.)38 b(By)30
+4053 y(same)f(as)f Ft(forward-word)p Fu(.)38 b(By)30
b(default,)h(this)g(command)f(is)g(un)m(b)s(ound.)150
-3333 y Ft(yank)f(\(C-y\))630 3442 y Fu(Y)-8 b(ank)31
+4226 y Ft(yank)f(\(C-y\))630 4336 y Fu(Y)-8 b(ank)31
b(the)f(top)h(of)g(the)f(kill)h(ring)f(in)m(to)i(the)e(bu\013er)g(at)h
-(p)s(oin)m(t.)150 3602 y Ft(yank-pop)d(\(M-y\))630 3712
+(p)s(oin)m(t.)150 4509 y Ft(yank-pop)d(\(M-y\))630 4619
y Fu(Rotate)36 b(the)f(kill-ring,)i(and)d(y)m(ank)h(the)f(new)g(top.)54
b(Y)-8 b(ou)35 b(can)g(only)f(do)h(this)f(if)h(the)g(prior)630
-3822 y(command)30 b(is)h Ft(yank)e Fu(or)h Ft(yank-pop)p
-Fu(.)150 4021 y Fk(8.4.5)63 b(Sp)s(ecifying)42 b(Numeric)f(Argumen)m
-(ts)150 4194 y Ft(digit-argument)26 b(\()p Fj(M-0)p Ft(,)j
-Fj(M-1)p Ft(,)h(...)f Fj(M--)p Ft(\))630 4303 y Fu(Add)d(this)h(digit)g
+4728 y(command)30 b(is)h Ft(yank)e Fu(or)h Ft(yank-pop)p
+Fu(.)150 4942 y Fk(8.4.5)63 b(Sp)s(ecifying)42 b(Numeric)f(Argumen)m
+(ts)150 5121 y Ft(digit-argument)26 b(\()p Fj(M-0)p Ft(,)j
+Fj(M-1)p Ft(,)h(...)f Fj(M--)p Ft(\))630 5230 y Fu(Add)d(this)h(digit)g
(to)h(the)f(argumen)m(t)g(already)h(accum)m(ulating,)h(or)e(start)h(a)f
-(new)f(argumen)m(t.)630 4413 y Fj(M--)j Fu(starts)i(a)g(negativ)m(e)i
-(argumen)m(t.)150 4573 y Ft(universal-argument)25 b(\(\))630
-4682 y Fu(This)g(is)g(another)h(w)m(a)m(y)g(to)h(sp)s(ecify)e(an)g
-(argumen)m(t.)40 b(If)25 b(this)g(command)h(is)f(follo)m(w)m(ed)i(b)m
-(y)f(one)630 4792 y(or)k(more)f(digits,)i(optionally)g(with)e(a)h
-(leading)h(min)m(us)e(sign,)h(those)g(digits)g(de\014ne)f(the)h(ar-)630
-4902 y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)g(follo)m(w)m(ed)h(b)
-m(y)f(digits,)i(executing)f Ft(universal-argument)630
-5011 y Fu(again)j(ends)e(the)h(n)m(umeric)f(argumen)m(t,)i(but)e(is)h
+(new)f(argumen)m(t.)630 5340 y Fj(M--)j Fu(starts)i(a)g(negativ)m(e)i
+(argumen)m(t.)p eop end
+%%Page: 139 145
+TeXDict begin 139 144 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(139)150 299 y Ft
+(universal-argument)25 b(\(\))630 408 y Fu(This)g(is)g(another)h(w)m(a)
+m(y)g(to)h(sp)s(ecify)e(an)g(argumen)m(t.)40 b(If)25
+b(this)g(command)h(is)f(follo)m(w)m(ed)i(b)m(y)f(one)630
+518 y(or)k(more)f(digits,)i(optionally)g(with)e(a)h(leading)h(min)m(us)
+e(sign,)h(those)g(digits)g(de\014ne)f(the)h(ar-)630 628
+y(gumen)m(t.)41 b(If)28 b(the)i(command)f(is)g(follo)m(w)m(ed)h(b)m(y)f
+(digits,)i(executing)f Ft(universal-argument)630 737
+y Fu(again)j(ends)e(the)h(n)m(umeric)f(argumen)m(t,)i(but)e(is)h
(otherwise)g(ignored.)45 b(As)32 b(a)g(sp)s(ecial)h(case,)630
-5121 y(if)g(this)g(command)f(is)h(immediately)h(follo)m(w)m(ed)h(b)m(y)
-d(a)h(c)m(haracter)i(that)e(is)g(neither)g(a)g(digit)630
-5230 y(nor)41 b(min)m(us)f(sign,)k(the)e(argumen)m(t)f(coun)m(t)h(for)f
+847 y(if)g(this)g(command)f(is)h(immediately)h(follo)m(w)m(ed)h(b)m(y)d
+(a)h(c)m(haracter)i(that)e(is)g(neither)g(a)g(digit)630
+956 y(nor)41 b(min)m(us)f(sign,)k(the)e(argumen)m(t)f(coun)m(t)h(for)f
(the)h(next)f(command)g(is)g(m)m(ultiplied)h(b)m(y)630
-5340 y(four.)54 b(The)35 b(argumen)m(t)g(coun)m(t)h(is)f(initially)h
-(one,)h(so)e(executing)i(this)e(function)f(the)i(\014rst)p
-eop end
-%%Page: 133 139
-TeXDict begin 133 138 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(133)630 299 y(time)29
-b(mak)m(es)h(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)h(second)g(time)g
-(mak)m(es)h(the)e(argumen)m(t)h(coun)m(t)630 408 y(sixteen,)i(and)f(so)
-h(on.)40 b(By)31 b(default,)g(this)f(is)g(not)h(b)s(ound)d(to)k(a)e(k)m
-(ey)-8 b(.)150 603 y Fk(8.4.6)63 b(Letting)40 b(Readline)h(T)m(yp)s(e)g
-(F)-10 b(or)42 b(Y)-10 b(ou)150 772 y Ft(complete)28
-b(\(TAB\))630 882 y Fu(A)m(ttempt)c(to)f(p)s(erform)e(completion)j(on)f
-(the)g(text)g(b)s(efore)f(p)s(oin)m(t.)39 b(The)22 b(actual)i
-(completion)630 991 y(p)s(erformed)33 b(is)h(application-sp)s
-(eci\014c.)53 b(Bash)35 b(attempts)g(completion)g(treating)h(the)e
-(text)630 1101 y(as)39 b(a)h(v)-5 b(ariable)39 b(\(if)h(the)f(text)h(b)
-s(egins)e(with)h(`)p Ft($)p Fu('\),)j(username)c(\(if)i(the)f(text)h(b)
-s(egins)e(with)630 1210 y(`)p Ft(~)p Fu('\),)31 b(hostname)f(\(if)g
-(the)g(text)h(b)s(egins)e(with)h(`)p Ft(@)p Fu('\),)h(or)f(command)f
-(\(including)h(aliases)i(and)630 1320 y(functions\))j(in)f(turn.)53
+1066 y(four.)54 b(The)35 b(argumen)m(t)g(coun)m(t)h(is)f(initially)h
+(one,)h(so)e(executing)i(this)e(function)f(the)i(\014rst)630
+1176 y(time)29 b(mak)m(es)h(the)e(argumen)m(t)i(coun)m(t)f(four,)f(a)h
+(second)g(time)g(mak)m(es)h(the)e(argumen)m(t)h(coun)m(t)630
+1285 y(sixteen,)i(and)f(so)h(on.)40 b(By)31 b(default,)g(this)f(is)g
+(not)h(b)s(ound)d(to)k(a)e(k)m(ey)-8 b(.)150 1468 y Fk(8.4.6)63
+b(Letting)40 b(Readline)h(T)m(yp)s(e)g(F)-10 b(or)42
+b(Y)-10 b(ou)150 1632 y Ft(complete)28 b(\(TAB\))630
+1741 y Fu(A)m(ttempt)c(to)f(p)s(erform)e(completion)j(on)f(the)g(text)g
+(b)s(efore)f(p)s(oin)m(t.)39 b(The)22 b(actual)i(completion)630
+1851 y(p)s(erformed)33 b(is)h(application-sp)s(eci\014c.)53
+b(Bash)35 b(attempts)g(completion)g(treating)h(the)e(text)630
+1961 y(as)39 b(a)h(v)-5 b(ariable)39 b(\(if)h(the)f(text)h(b)s(egins)e
+(with)h(`)p Ft($)p Fu('\),)j(username)c(\(if)i(the)f(text)h(b)s(egins)e
+(with)630 2070 y(`)p Ft(~)p Fu('\),)31 b(hostname)f(\(if)g(the)g(text)h
+(b)s(egins)e(with)h(`)p Ft(@)p Fu('\),)h(or)f(command)f(\(including)h
+(aliases)i(and)630 2180 y(functions\))j(in)f(turn.)53
b(If)34 b(none)g(of)h(these)h(pro)s(duces)d(a)i(matc)m(h,)i(\014lename)
-e(completion)h(is)630 1430 y(attempted.)150 1584 y Ft
-(possible-completions)25 b(\(M-?\))630 1694 y Fu(List)35
+e(completion)h(is)630 2289 y(attempted.)150 2433 y Ft
+(possible-completions)25 b(\(M-?\))630 2542 y Fu(List)35
b(the)g(p)s(ossible)f(completions)i(of)e(the)h(text)h(b)s(efore)e(p)s
-(oin)m(t.)54 b(When)34 b(displa)m(ying)h(com-)630 1803
+(oin)m(t.)54 b(When)34 b(displa)m(ying)h(com-)630 2652
y(pletions,)f(Readline)f(sets)f(the)h(n)m(um)m(b)s(er)e(of)i(columns)f
(used)f(for)i(displa)m(y)f(to)h(the)g(v)-5 b(alue)33
-b(of)630 1913 y Ft(completion-display-width)o Fu(,)g(the)j(v)-5
+b(of)630 2761 y Ft(completion-display-width)o Fu(,)g(the)j(v)-5
b(alue)37 b(of)g(the)f(en)m(vironmen)m(t)h(v)-5 b(ariable)38
-b Ft(COLUMNS)p Fu(,)630 2022 y(or)30 b(the)h(screen)f(width,)g(in)g
-(that)h(order.)150 2177 y Ft(insert-completions)25 b(\(M-*\))630
-2286 y Fu(Insert)30 b(all)h(completions)h(of)f(the)g(text)g(b)s(efore)f
+b Ft(COLUMNS)p Fu(,)630 2871 y(or)30 b(the)h(screen)f(width,)g(in)g
+(that)h(order.)150 3014 y Ft(insert-completions)25 b(\(M-*\))630
+3124 y Fu(Insert)30 b(all)h(completions)h(of)f(the)g(text)g(b)s(efore)f
(p)s(oin)m(t)h(that)g(w)m(ould)f(ha)m(v)m(e)i(b)s(een)e(generated)630
-2396 y(b)m(y)g Ft(possible-completions)p Fu(.)150 2550
-y Ft(menu-complete)d(\(\))630 2660 y Fu(Similar)d(to)g
+3233 y(b)m(y)g Ft(possible-completions)p Fu(.)150 3376
+y Ft(menu-complete)d(\(\))630 3486 y Fu(Similar)d(to)g
Ft(complete)p Fu(,)f(but)h(replaces)g(the)g(w)m(ord)g(to)g(b)s(e)f
-(completed)i(with)e(a)i(single)f(matc)m(h)630 2770 y(from)37
+(completed)i(with)e(a)i(single)f(matc)m(h)630 3596 y(from)37
b(the)h(list)h(of)f(p)s(ossible)f(completions.)64 b(Rep)s(eated)39
-b(execution)g(of)f Ft(menu-complete)630 2879 y Fu(steps)i(through)g
+b(execution)g(of)f Ft(menu-complete)630 3705 y Fu(steps)i(through)g
(the)g(list)h(of)f(p)s(ossible)g(completions,)k(inserting)c(eac)m(h)i
-(matc)m(h)f(in)f(turn.)630 2989 y(A)m(t)e(the)f(end)f(of)h(the)g(list)g
+(matc)m(h)f(in)f(turn.)630 3815 y(A)m(t)e(the)f(end)f(of)h(the)g(list)g
(of)g(completions,)i(the)e(b)s(ell)g(is)g(rung)f(\(sub)5
-b(ject)36 b(to)i(the)f(setting)630 3098 y(of)f Ft(bell-style)p
+b(ject)36 b(to)i(the)f(setting)630 3924 y(of)f Ft(bell-style)p
Fu(\))e(and)h(the)h(original)i(text)f(is)f(restored.)57
b(An)36 b(argumen)m(t)h(of)f Fr(n)f Fu(mo)m(v)m(es)i
-Fr(n)630 3208 y Fu(p)s(ositions)e(forw)m(ard)f(in)g(the)h(list)h(of)e
+Fr(n)630 4034 y Fu(p)s(ositions)e(forw)m(ard)f(in)g(the)h(list)h(of)e
(matc)m(hes;)39 b(a)c(negativ)m(e)i(argumen)m(t)e(ma)m(y)g(b)s(e)f
-(used)g(to)630 3318 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g
+(used)g(to)630 4143 y(mo)m(v)m(e)40 b(bac)m(kw)m(ard)e(through)g(the)g
(list.)65 b(This)38 b(command)g(is)g(in)m(tended)g(to)h(b)s(e)f(b)s
-(ound)e(to)630 3427 y Ft(TAB)p Fu(,)30 b(but)f(is)i(un)m(b)s(ound)d(b)m
-(y)i(default.)150 3582 y Ft(menu-complete-backward)24
-b(\(\))630 3691 y Fu(Iden)m(tical)36 b(to)g Ft(menu-complete)p
+(ound)e(to)630 4253 y Ft(TAB)p Fu(,)30 b(but)f(is)i(un)m(b)s(ound)d(b)m
+(y)i(default.)150 4396 y Ft(menu-complete-backward)24
+b(\(\))630 4506 y Fu(Iden)m(tical)36 b(to)g Ft(menu-complete)p
Fu(,)d(but)h(mo)m(v)m(es)j(bac)m(kw)m(ard)e(through)f(the)i(list)f(of)g
-(p)s(ossible)630 3801 y(completions,)d(as)e(if)h Ft(menu-complete)26
+(p)s(ossible)630 4615 y(completions,)d(as)e(if)h Ft(menu-complete)26
b Fu(had)k(b)s(een)g(giv)m(en)h(a)g(negativ)m(e)i(argumen)m(t.)150
-3955 y Ft(delete-char-or-list)25 b(\(\))630 4065 y Fu(Deletes)41
+4758 y Ft(delete-char-or-list)25 b(\(\))630 4868 y Fu(Deletes)41
b(the)e(c)m(haracter)h(under)e(the)h(cursor)f(if)h(not)g(at)g(the)h(b)s
-(eginning)e(or)h(end)f(of)h(the)630 4174 y(line)50 b(\(lik)m(e)h
+(eginning)e(or)h(end)f(of)h(the)630 4978 y(line)50 b(\(lik)m(e)h
Ft(delete-char)p Fu(\).)96 b(If)49 b(at)h(the)g(end)f(of)h(the)f(line,)
-55 b(b)s(eha)m(v)m(es)c(iden)m(tically)g(to)630 4284
+55 b(b)s(eha)m(v)m(es)c(iden)m(tically)g(to)630 5087
y Ft(possible-completions)p Fu(.)35 b(This)30 b(command)g(is)g(un)m(b)s
-(ound)e(b)m(y)i(default.)150 4438 y Ft(complete-filename)c(\(M-/\))630
-4548 y Fu(A)m(ttempt)32 b(\014lename)e(completion)i(on)e(the)h(text)g
-(b)s(efore)f(p)s(oin)m(t.)150 4702 y Ft(possible-filename-comple)o
-(tion)o(s)24 b(\(C-x)30 b(/\))630 4812 y Fu(List)f(the)g(p)s(ossible)f
-(completions)h(of)g(the)g(text)g(b)s(efore)g(p)s(oin)m(t,)g(treating)h
-(it)f(as)g(a)f(\014lename.)150 4966 y Ft(complete-username)e(\(M-~\))
-630 5076 y Fu(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i(b)s(efore)
-e(p)s(oin)m(t,)g(treating)i(it)f(as)f(a)h(username.)150
-5230 y Ft(possible-username-comple)o(tion)o(s)24 b(\(C-x)30
-b(~\))630 5340 y Fu(List)25 b(the)g(p)s(ossible)g(completions)h(of)f
-(the)g(text)h(b)s(efore)f(p)s(oin)m(t,)h(treating)g(it)g(as)f(a)g
-(username.)p eop end
-%%Page: 134 140
-TeXDict begin 134 139 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(134)150 299 y Ft
-(complete-variable)26 b(\(M-$\))630 408 y Fu(A)m(ttempt)32
+(ound)e(b)m(y)i(default.)150 5230 y Ft(complete-filename)c(\(M-/\))630
+5340 y Fu(A)m(ttempt)32 b(\014lename)e(completion)i(on)e(the)h(text)g
+(b)s(efore)f(p)s(oin)m(t.)p eop end
+%%Page: 140 146
+TeXDict begin 140 145 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(140)150 299 y Ft
+(possible-filename-comple)o(tion)o(s)24 b(\(C-x)30 b(/\))630
+408 y Fu(List)f(the)g(p)s(ossible)f(completions)h(of)g(the)g(text)g(b)s
+(efore)g(p)s(oin)m(t,)g(treating)h(it)f(as)g(a)f(\014lename.)150
+577 y Ft(complete-username)e(\(M-~\))630 687 y Fu(A)m(ttempt)32
b(completion)f(on)g(the)f(text)i(b)s(efore)e(p)s(oin)m(t,)g(treating)i
-(it)f(as)f(a)h(shell)g(v)-5 b(ariable.)150 589 y Ft
-(possible-variable-comple)o(tion)o(s)24 b(\(C-x)30 b($\))630
-699 y Fu(List)42 b(the)g(p)s(ossible)g(completions)h(of)f(the)g(text)h
-(b)s(efore)e(p)s(oin)m(t,)46 b(treating)d(it)f(as)g(a)h(shell)630
-809 y(v)-5 b(ariable.)150 989 y Ft(complete-hostname)26
-b(\(M-@\))630 1099 y Fu(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i
+(it)f(as)f(a)h(username.)150 856 y Ft(possible-username-comple)o(tion)o
+(s)24 b(\(C-x)30 b(~\))630 965 y Fu(List)25 b(the)g(p)s(ossible)g
+(completions)h(of)f(the)g(text)h(b)s(efore)f(p)s(oin)m(t,)h(treating)g
+(it)g(as)f(a)g(username.)150 1134 y Ft(complete-variable)h(\(M-$\))630
+1244 y Fu(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i(b)s(efore)e(p)
+s(oin)m(t,)g(treating)i(it)f(as)f(a)h(shell)g(v)-5 b(ariable.)150
+1412 y Ft(possible-variable-comple)o(tion)o(s)24 b(\(C-x)30
+b($\))630 1522 y Fu(List)42 b(the)g(p)s(ossible)g(completions)h(of)f
+(the)g(text)h(b)s(efore)e(p)s(oin)m(t,)46 b(treating)d(it)f(as)g(a)h
+(shell)630 1632 y(v)-5 b(ariable.)150 1800 y Ft(complete-hostname)26
+b(\(M-@\))630 1910 y Fu(A)m(ttempt)32 b(completion)f(on)g(the)f(text)i
(b)s(efore)e(p)s(oin)m(t,)g(treating)i(it)f(as)f(a)h(hostname.)150
-1280 y Ft(possible-hostname-comple)o(tion)o(s)24 b(\(C-x)30
-b(@\))630 1390 y Fu(List)25 b(the)g(p)s(ossible)f(completions)h(of)g
+2079 y Ft(possible-hostname-comple)o(tion)o(s)24 b(\(C-x)30
+b(@\))630 2188 y Fu(List)25 b(the)g(p)s(ossible)f(completions)h(of)g
(the)g(text)g(b)s(efore)g(p)s(oin)m(t,)h(treating)g(it)f(as)f(a)h
-(hostname.)150 1570 y Ft(complete-command)h(\(M-!\))630
-1680 y Fu(A)m(ttempt)32 b(completion)g(on)f(the)g(text)h(b)s(efore)e(p)
+(hostname.)150 2357 y Ft(complete-command)h(\(M-!\))630
+2467 y Fu(A)m(ttempt)32 b(completion)g(on)f(the)g(text)h(b)s(efore)e(p)
s(oin)m(t,)h(treating)h(it)g(as)f(a)g(command)g(name.)630
-1790 y(Command)46 b(completion)i(attempts)g(to)f(matc)m(h)h(the)f(text)
-h(against)g(aliases,)53 b(reserv)m(ed)630 1899 y(w)m(ords,)36
+2576 y(Command)46 b(completion)i(attempts)g(to)f(matc)m(h)h(the)f(text)
+h(against)g(aliases,)53 b(reserv)m(ed)630 2686 y(w)m(ords,)36
b(shell)g(functions,)h(shell)e(builtins,)i(and)e(\014nally)g
-(executable)i(\014lenames,)g(in)e(that)630 2009 y(order.)150
-2190 y Ft(possible-command-complet)o(ions)24 b(\(C-x)29
-b(!\))630 2299 y Fu(List)d(the)h(p)s(ossible)f(completions)h(of)f(the)h
+(executable)i(\014lenames,)g(in)e(that)630 2796 y(order.)150
+2964 y Ft(possible-command-complet)o(ions)24 b(\(C-x)29
+b(!\))630 3074 y Fu(List)d(the)h(p)s(ossible)f(completions)h(of)f(the)h
(text)g(b)s(efore)f(p)s(oin)m(t,)h(treating)g(it)g(as)g(a)f(command)630
-2409 y(name.)150 2590 y Ft(dynamic-complete-history)e(\(M-TAB\))630
-2699 y Fu(A)m(ttempt)31 b(completion)h(on)e(the)g(text)h(b)s(efore)f(p)
+3184 y(name.)150 3352 y Ft(dynamic-complete-history)e(\(M-TAB\))630
+3462 y Fu(A)m(ttempt)31 b(completion)h(on)e(the)g(text)h(b)s(efore)f(p)
s(oin)m(t,)g(comparing)h(the)f(text)h(against)h(lines)630
-2809 y(from)e(the)g(history)h(list)g(for)f(p)s(ossible)g(completion)i
-(matc)m(hes.)150 2990 y Ft(dabbrev-expand)26 b(\(\))630
-3099 y Fu(A)m(ttempt)i(men)m(u)e(completion)i(on)f(the)g(text)g(b)s
+3572 y(from)e(the)g(history)h(list)g(for)f(p)s(ossible)g(completion)i
+(matc)m(hes.)150 3740 y Ft(dabbrev-expand)26 b(\(\))630
+3850 y Fu(A)m(ttempt)i(men)m(u)e(completion)i(on)f(the)g(text)g(b)s
(efore)f(p)s(oin)m(t,)i(comparing)f(the)g(text)h(against)630
-3209 y(lines)j(from)e(the)i(history)f(list)h(for)g(p)s(ossible)e
-(completion)j(matc)m(hes.)150 3390 y Ft(complete-into-braces)25
-b(\(M-{\))630 3500 y Fu(P)m(erform)f(\014lename)f(completion)i(and)f
+3960 y(lines)j(from)e(the)i(history)f(list)h(for)g(p)s(ossible)e
+(completion)j(matc)m(hes.)150 4128 y Ft(complete-into-braces)25
+b(\(M-{\))630 4238 y Fu(P)m(erform)f(\014lename)f(completion)i(and)f
(insert)f(the)h(list)g(of)g(p)s(ossible)f(completions)i(enclosed)630
-3609 y(within)34 b(braces)h(so)f(the)h(list)g(is)g(a)m(v)-5
+4348 y(within)34 b(braces)h(so)f(the)h(list)g(is)g(a)m(v)-5
b(ailable)37 b(to)e(the)g(shell)g(\(see)g(Section)h(3.5.1)g([Brace)g
-(Ex-)630 3719 y(pansion],)30 b(page)h(23\).)150 3939
-y Fk(8.4.7)63 b(Keyb)s(oard)41 b(Macros)150 4122 y Ft(start-kbd-macro)
-26 b(\(C-x)j(\(\))630 4232 y Fu(Begin)i(sa)m(ving)h(the)e(c)m
+(Ex-)630 4457 y(pansion],)30 b(page)h(24\).)150 4666
+y Fk(8.4.7)63 b(Keyb)s(oard)41 b(Macros)150 4842 y Ft(start-kbd-macro)
+26 b(\(C-x)j(\(\))630 4952 y Fu(Begin)i(sa)m(ving)h(the)e(c)m
(haracters)i(t)m(yp)s(ed)e(in)m(to)h(the)g(curren)m(t)f(k)m(eyb)s(oard)
-g(macro.)150 4413 y Ft(end-kbd-macro)d(\(C-x)i(\)\))630
-4522 y Fu(Stop)e(sa)m(ving)h(the)g(c)m(haracters)g(t)m(yp)s(ed)f(in)m
+g(macro.)150 5121 y Ft(end-kbd-macro)d(\(C-x)i(\)\))630
+5230 y Fu(Stop)e(sa)m(ving)h(the)g(c)m(haracters)g(t)m(yp)s(ed)f(in)m
(to)i(the)e(curren)m(t)g(k)m(eyb)s(oard)g(macro)h(and)f(sa)m(v)m(e)i
-(the)630 4632 y(de\014nition.)150 4813 y Ft(call-last-kbd-macro)c
-(\(C-x)k(e\))630 4922 y Fu(Re-execute)37 b(the)e(last)h(k)m(eyb)s(oard)
-f(macro)h(de\014ned,)f(b)m(y)h(making)f(the)g(c)m(haracters)i(in)e(the)
-630 5032 y(macro)c(app)s(ear)f(as)g(if)h(t)m(yp)s(ed)f(at)h(the)f(k)m
-(eyb)s(oard.)150 5213 y Ft(print-last-kbd-macro)25 b(\(\))630
-5322 y Fu(Prin)m(t)30 b(the)h(last)g(k)m(eb)s(oard)f(macro)h(de\014ned)
-e(in)i(a)f(format)h(suitable)g(for)f(the)h Fr(inputrc)k
-Fu(\014le.)p eop end
-%%Page: 135 141
-TeXDict begin 135 140 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(135)150 299 y Fk(8.4.8)63
-b(Some)41 b(Miscellaneous)i(Commands)150 478 y Ft(re-read-init-file)26
-b(\(C-x)j(C-r\))630 587 y Fu(Read)22 b(in)g(the)g(con)m(ten)m(ts)h(of)f
-(the)g Fr(inputrc)27 b Fu(\014le,)d(and)d(incorp)s(orate)h(an)m(y)h
-(bindings)d(or)i(v)-5 b(ariable)630 697 y(assignmen)m(ts)31
-b(found)e(there.)150 870 y Ft(abort)g(\(C-g\))630 979
-y Fu(Ab)s(ort)d(the)h(curren)m(t)f(editing)h(command)f(and)g(ring)h
-(the)f(terminal's)h(b)s(ell)g(\(sub)5 b(ject)26 b(to)i(the)630
-1089 y(setting)j(of)g Ft(bell-style)p Fu(\).)150 1262
-y Ft(do-lowercase-version)25 b(\(M-A,)k(M-B,)g(M-)p Fj(x)p
-Ft(,)g(...)o(\))630 1372 y Fu(If)35 b(the)g(meta\014ed)g(c)m(haracter)i
-Fr(x)k Fu(is)35 b(upp)s(er)e(case,)k(run)d(the)h(command)g(that)g(is)g
-(b)s(ound)e(to)630 1481 y(the)g(corresp)s(onding)f(meta\014ed)h(lo)m(w)
-m(er)i(case)f(c)m(haracter.)50 b(The)32 b(b)s(eha)m(vior)h(is)g
-(unde\014ned)e(if)630 1591 y Fr(x)37 b Fu(is)30 b(already)h(lo)m(w)m
-(er)h(case.)150 1764 y Ft(prefix-meta)27 b(\(ESC\))630
-1873 y Fu(Metafy)39 b(the)e(next)h(c)m(haracter)h(t)m(yp)s(ed.)62
-b(This)37 b(is)g(for)h(k)m(eyb)s(oards)f(without)g(a)h(meta)g(k)m(ey)-8
-b(.)630 1983 y(T)m(yping)30 b(`)p Ft(ESC)g(f)p Fu(')g(is)h(equiv)-5
-b(alen)m(t)31 b(to)g(t)m(yping)g Fj(M-f)p Fu(.)150 2156
-y Ft(undo)e(\(C-_)g(or)h(C-x)g(C-u\))630 2266 y Fu(Incremen)m(tal)h
-(undo,)f(separately)h(remem)m(b)s(ered)f(for)g(eac)m(h)i(line.)150
-2439 y Ft(revert-line)27 b(\(M-r\))630 2548 y Fu(Undo)33
-b(all)h(c)m(hanges)g(made)f(to)h(this)f(line.)49 b(This)32
-b(is)h(lik)m(e)i(executing)f(the)f Ft(undo)f Fu(command)630
-2658 y(enough)e(times)h(to)g(get)h(bac)m(k)f(to)g(the)f(b)s(eginning.)
-150 2831 y Ft(tilde-expand)d(\(M-&\))630 2940 y Fu(P)m(erform)j(tilde)h
-(expansion)g(on)f(the)g(curren)m(t)h(w)m(ord.)150 3114
-y Ft(set-mark)d(\(C-@\))630 3223 y Fu(Set)33 b(the)g(mark)f(to)i(the)f
-(p)s(oin)m(t.)48 b(If)32 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g
-(supplied,)f(the)h(mark)g(is)f(set)630 3333 y(to)f(that)g(p)s(osition.)
-150 3506 y Ft(exchange-point-and-mark)24 b(\(C-x)29 b(C-x\))630
-3615 y Fu(Sw)m(ap)i(the)g(p)s(oin)m(t)g(with)g(the)g(mark.)43
-b(The)31 b(curren)m(t)g(cursor)f(p)s(osition)i(is)f(set)h(to)f(the)h
-(sa)m(v)m(ed)630 3725 y(p)s(osition,)f(and)e(the)i(old)g(cursor)e(p)s
-(osition)i(is)f(sa)m(v)m(ed)i(as)e(the)h(mark.)150 3898
-y Ft(character-search)26 b(\(C-]\))630 4008 y Fu(A)f(c)m(haracter)h(is)
-f(read)g(and)f(p)s(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)g(the)f(next)g(o)s
-(ccurrence)g(of)g(that)g(c)m(haracter.)630 4117 y(A)30
-b(negativ)m(e)j(coun)m(t)e(searc)m(hes)g(for)f(previous)g(o)s
-(ccurrences.)150 4290 y Ft(character-search-backwar)o(d)24
-b(\(M-C-]\))630 4400 y Fu(A)45 b(c)m(haracter)h(is)f(read)g(and)f(p)s
+(the)630 5340 y(de\014nition.)p eop end
+%%Page: 141 147
+TeXDict begin 141 146 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(141)150 299 y Ft
+(call-last-kbd-macro)25 b(\(C-x)k(e\))630 408 y Fu(Re-execute)37
+b(the)e(last)h(k)m(eyb)s(oard)f(macro)h(de\014ned,)f(b)m(y)h(making)f
+(the)g(c)m(haracters)i(in)e(the)630 518 y(macro)c(app)s(ear)f(as)g(if)h
+(t)m(yp)s(ed)f(at)h(the)f(k)m(eyb)s(oard.)150 671 y Ft
+(print-last-kbd-macro)25 b(\(\))630 780 y Fu(Prin)m(t)30
+b(the)g(last)h(k)m(eyb)s(oard)f(macro)h(de\014ned)e(in)h(a)g(format)h
+(suitable)g(for)f(the)g Fr(inputrc)35 b Fu(\014le.)150
+973 y Fk(8.4.8)63 b(Some)41 b(Miscellaneous)i(Commands)150
+1141 y Ft(re-read-init-file)26 b(\(C-x)j(C-r\))630 1251
+y Fu(Read)22 b(in)g(the)g(con)m(ten)m(ts)h(of)f(the)g
+Fr(inputrc)27 b Fu(\014le,)d(and)d(incorp)s(orate)h(an)m(y)h(bindings)d
+(or)i(v)-5 b(ariable)630 1360 y(assignmen)m(ts)31 b(found)e(there.)150
+1513 y Ft(abort)g(\(C-g\))630 1622 y Fu(Ab)s(ort)d(the)h(curren)m(t)f
+(editing)h(command)f(and)g(ring)h(the)f(terminal's)h(b)s(ell)g(\(sub)5
+b(ject)26 b(to)i(the)630 1732 y(setting)j(of)g Ft(bell-style)p
+Fu(\).)150 1885 y Ft(do-lowercase-version)25 b(\(M-A,)k(M-B,)g(M-)p
+Fj(x)p Ft(,)g(...)o(\))630 1994 y Fu(If)35 b(the)g(meta\014ed)g(c)m
+(haracter)i Fr(x)k Fu(is)35 b(upp)s(er)e(case,)k(run)d(the)h(command)g
+(that)g(is)g(b)s(ound)e(to)630 2104 y(the)g(corresp)s(onding)f
+(meta\014ed)h(lo)m(w)m(er)i(case)f(c)m(haracter.)50 b(The)32
+b(b)s(eha)m(vior)h(is)g(unde\014ned)e(if)630 2213 y Fr(x)37
+b Fu(is)30 b(already)h(lo)m(w)m(er)h(case.)150 2366 y
+Ft(prefix-meta)27 b(\(ESC\))630 2476 y Fu(Metafy)39 b(the)e(next)h(c)m
+(haracter)h(t)m(yp)s(ed.)62 b(This)37 b(is)g(for)h(k)m(eyb)s(oards)f
+(without)g(a)h(meta)g(k)m(ey)-8 b(.)630 2585 y(T)m(yping)30
+b(`)p Ft(ESC)g(f)p Fu(')g(is)h(equiv)-5 b(alen)m(t)31
+b(to)g(t)m(yping)g Fj(M-f)p Fu(.)150 2738 y Ft(undo)e(\(C-_)g(or)h(C-x)
+g(C-u\))630 2847 y Fu(Incremen)m(tal)h(undo,)f(separately)h(remem)m(b)s
+(ered)f(for)g(eac)m(h)i(line.)150 3000 y Ft(revert-line)27
+b(\(M-r\))630 3109 y Fu(Undo)33 b(all)h(c)m(hanges)g(made)f(to)h(this)f
+(line.)49 b(This)32 b(is)h(lik)m(e)i(executing)f(the)f
+Ft(undo)f Fu(command)630 3219 y(enough)e(times)h(to)g(get)h(bac)m(k)f
+(to)g(the)f(b)s(eginning.)150 3372 y Ft(tilde-expand)d(\(M-&\))630
+3481 y Fu(P)m(erform)j(tilde)h(expansion)g(on)f(the)g(curren)m(t)h(w)m
+(ord.)150 3634 y Ft(set-mark)d(\(C-@\))630 3743 y Fu(Set)33
+b(the)g(mark)f(to)i(the)f(p)s(oin)m(t.)48 b(If)32 b(a)h(n)m(umeric)g
+(argumen)m(t)g(is)g(supplied,)f(the)h(mark)g(is)f(set)630
+3853 y(to)f(that)g(p)s(osition.)150 4006 y Ft(exchange-point-and-mark)
+24 b(\(C-x)29 b(C-x\))630 4115 y Fu(Sw)m(ap)i(the)g(p)s(oin)m(t)g(with)
+g(the)g(mark.)43 b(The)31 b(curren)m(t)g(cursor)f(p)s(osition)i(is)f
+(set)h(to)f(the)h(sa)m(v)m(ed)630 4225 y(p)s(osition,)f(and)e(the)i
+(old)g(cursor)e(p)s(osition)i(is)f(sa)m(v)m(ed)i(as)e(the)h(mark.)150
+4377 y Ft(character-search)26 b(\(C-]\))630 4487 y Fu(A)f(c)m(haracter)
+h(is)f(read)g(and)f(p)s(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)g(the)f(next)g
+(o)s(ccurrence)g(of)g(that)g(c)m(haracter.)630 4596 y(A)30
+b(negativ)m(e)j(argumen)m(t)e(searc)m(hes)g(for)f(previous)g(o)s
+(ccurrences.)150 4749 y Ft(character-search-backwar)o(d)24
+b(\(M-C-]\))630 4859 y Fu(A)45 b(c)m(haracter)h(is)f(read)g(and)f(p)s
(oin)m(t)h(is)g(mo)m(v)m(ed)h(to)f(the)g(previous)f(o)s(ccurrence)h(of)
-g(that)630 4509 y(c)m(haracter.)d(A)31 b(negativ)m(e)h(coun)m(t)f
-(searc)m(hes)h(for)e(subsequen)m(t)f(o)s(ccurrences.)150
-4682 y Ft(skip-csi-sequence)d(\(\))630 4792 y Fu(Read)i(enough)f(c)m
+g(that)630 4968 y(c)m(haracter.)d(A)31 b(negativ)m(e)h(argumen)m(t)f
+(searc)m(hes)g(for)g(subsequen)m(t)e(o)s(ccurrences.)150
+5121 y Ft(skip-csi-sequence)d(\(\))630 5230 y Fu(Read)i(enough)f(c)m
(haracters)h(to)g(consume)f(a)h(m)m(ulti-k)m(ey)h(sequence)f(suc)m(h)f
-(as)g(those)h(de\014ned)630 4902 y(for)37 b(k)m(eys)h(lik)m(e)g(Home)g
+(as)g(those)h(de\014ned)630 5340 y(for)37 b(k)m(eys)h(lik)m(e)g(Home)g
(and)f(End.)60 b(Suc)m(h)37 b(sequences)g(b)s(egin)g(with)g(a)h(Con)m
-(trol)g(Sequence)630 5011 y(Indicator)f(\(CSI\),)f(usually)h(ESC-[.)59
-b(If)36 b(this)g(sequence)h(is)g(b)s(ound)d(to)k Ft("\\)p
-Fu(e[)p Ft(")p Fu(,)g(k)m(eys)f(pro-)630 5121 y(ducing)31
-b(suc)m(h)h(sequences)g(will)h(ha)m(v)m(e)g(no)f(e\013ect)h(unless)e
-(explicitly)j(b)s(ound)c(to)i(a)h(readline)630 5230 y(command,)f
-(instead)g(of)g(inserting)g(stra)m(y)h(c)m(haracters)g(in)m(to)g(the)f
-(editing)h(bu\013er.)44 b(This)31 b(is)630 5340 y(un)m(b)s(ound)d(b)m
-(y)i(default,)h(but)f(usually)g(b)s(ound)e(to)j(ESC-[.)p
-eop end
-%%Page: 136 142
-TeXDict begin 136 141 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(136)150 299 y Ft(insert-comment)26
-b(\(M-#\))630 408 y Fu(Without)36 b(a)g(n)m(umeric)g(argumen)m(t,)h
-(the)f(v)-5 b(alue)36 b(of)g(the)g Ft(comment-begin)c
-Fu(v)-5 b(ariable)36 b(is)g(in-)630 518 y(serted)c(at)g(the)g(b)s
-(eginning)f(of)h(the)f(curren)m(t)h(line.)45 b(If)31
-b(a)h(n)m(umeric)f(argumen)m(t)h(is)g(supplied,)630 628
-y(this)k(command)h(acts)g(as)g(a)g(toggle:)55 b(if)37
-b(the)f(c)m(haracters)i(at)g(the)e(b)s(eginning)g(of)h(the)g(line)630
-737 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5 b(alue)31 b(of)f
-Ft(comment-begin)p Fu(,)e(the)i(v)-5 b(alue)31 b(is)g(inserted,)g
-(otherwise)g(the)630 847 y(c)m(haracters)42 b(in)d Ft(comment-begin)e
-Fu(are)j(deleted)h(from)f(the)g(b)s(eginning)g(of)g(the)g(line.)71
-b(In)630 956 y(either)37 b(case,)j(the)e(line)f(is)g(accepted)i(as)e
-(if)g(a)g(newline)g(had)g(b)s(een)f(t)m(yp)s(ed.)60 b(The)37
-b(default)630 1066 y(v)-5 b(alue)32 b(of)g Ft(comment-begin)c
-Fu(causes)k(this)f(command)h(to)g(mak)m(e)h(the)e(curren)m(t)h(line)g
-(a)g(shell)630 1176 y(commen)m(t.)40 b(If)26 b(a)h(n)m(umeric)f
-(argumen)m(t)h(causes)g(the)f(commen)m(t)i(c)m(haracter)g(to)f(b)s(e)f
-(remo)m(v)m(ed,)630 1285 y(the)31 b(line)f(will)h(b)s(e)f(executed)h(b)
-m(y)f(the)h(shell.)150 1443 y Ft(dump-functions)26 b(\(\))630
-1553 y Fu(Prin)m(t)g(all)i(of)e(the)h(functions)f(and)g(their)g(k)m(ey)
-h(bindings)e(to)j(the)e(Readline)h(output)f(stream.)630
-1663 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g(supplied,)f(the)h
+(trol)g(Sequence)p eop end
+%%Page: 142 148
+TeXDict begin 142 147 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(142)630 299 y(Indicator)37
+b(\(CSI\),)f(usually)h(ESC-[.)59 b(If)36 b(this)g(sequence)h(is)g(b)s
+(ound)d(to)k Ft("\\)p Fu(e[)p Ft(")p Fu(,)g(k)m(eys)f(pro-)630
+408 y(ducing)29 b(suc)m(h)g(sequences)g(will)h(ha)m(v)m(e)h(no)e
+(e\013ect)i(unless)d(explicitly)j(b)s(ound)d(to)i(a)f(Readline)630
+518 y(command,)j(instead)g(of)g(inserting)g(stra)m(y)h(c)m(haracters)g
+(in)m(to)g(the)f(editing)h(bu\013er.)44 b(This)31 b(is)630
+628 y(un)m(b)s(ound)d(b)m(y)i(default,)h(but)f(usually)g(b)s(ound)e(to)
+j(ESC-[.)150 792 y Ft(insert-comment)26 b(\(M-#\))630
+902 y Fu(Without)36 b(a)g(n)m(umeric)g(argumen)m(t,)h(the)f(v)-5
+b(alue)36 b(of)g(the)g Ft(comment-begin)c Fu(v)-5 b(ariable)36
+b(is)g(in-)630 1011 y(serted)c(at)g(the)g(b)s(eginning)f(of)h(the)f
+(curren)m(t)h(line.)45 b(If)31 b(a)h(n)m(umeric)f(argumen)m(t)h(is)g
+(supplied,)630 1121 y(this)k(command)h(acts)g(as)g(a)g(toggle:)55
+b(if)37 b(the)f(c)m(haracters)i(at)g(the)e(b)s(eginning)g(of)h(the)g
+(line)630 1230 y(do)30 b(not)h(matc)m(h)h(the)f(v)-5
+b(alue)31 b(of)f Ft(comment-begin)p Fu(,)e(the)i(v)-5
+b(alue)31 b(is)g(inserted,)g(otherwise)g(the)630 1340
+y(c)m(haracters)42 b(in)d Ft(comment-begin)e Fu(are)j(deleted)h(from)f
+(the)g(b)s(eginning)g(of)g(the)g(line.)71 b(In)630 1450
+y(either)37 b(case,)j(the)e(line)f(is)g(accepted)i(as)e(if)g(a)g
+(newline)g(had)g(b)s(een)f(t)m(yp)s(ed.)60 b(The)37 b(default)630
+1559 y(v)-5 b(alue)32 b(of)g Ft(comment-begin)c Fu(causes)k(this)f
+(command)h(to)g(mak)m(e)h(the)e(curren)m(t)h(line)g(a)g(shell)630
+1669 y(commen)m(t.)40 b(If)26 b(a)h(n)m(umeric)f(argumen)m(t)h(causes)g
+(the)f(commen)m(t)i(c)m(haracter)g(to)f(b)s(e)f(remo)m(v)m(ed,)630
+1778 y(the)31 b(line)f(will)h(b)s(e)f(executed)h(b)m(y)f(the)h(shell.)
+150 1943 y Ft(dump-functions)26 b(\(\))630 2052 y Fu(Prin)m(t)g(all)i
+(of)e(the)h(functions)f(and)g(their)g(k)m(ey)h(bindings)e(to)j(the)e
+(Readline)h(output)f(stream.)630 2162 y(If)31 b(a)h(n)m(umeric)g
+(argumen)m(t)g(is)g(supplied,)f(the)h(output)f(is)h(formatted)g(in)f
+(suc)m(h)h(a)g(w)m(a)m(y)g(that)630 2271 y(it)f(can)g(b)s(e)e(made)i
+(part)f(of)g(an)h Fr(inputrc)k Fu(\014le.)41 b(This)29
+b(command)h(is)h(un)m(b)s(ound)c(b)m(y)k(default.)150
+2436 y Ft(dump-variables)26 b(\(\))630 2545 y Fu(Prin)m(t)21
+b(all)h(of)g(the)f(settable)i(v)-5 b(ariables)22 b(and)f(their)g(v)-5
+b(alues)22 b(to)g(the)f(Readline)h(output)f(stream.)630
+2655 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)g(supplied,)f(the)h
(output)f(is)h(formatted)g(in)f(suc)m(h)h(a)g(w)m(a)m(y)g(that)630
-1772 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h Fr(inputrc)k
+2765 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h Fr(inputrc)k
Fu(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c(b)m(y)k
-(default.)150 1931 y Ft(dump-variables)26 b(\(\))630
-2040 y Fu(Prin)m(t)21 b(all)h(of)g(the)f(settable)i(v)-5
-b(ariables)22 b(and)f(their)g(v)-5 b(alues)22 b(to)g(the)f(Readline)h
-(output)f(stream.)630 2150 y(If)31 b(a)h(n)m(umeric)g(argumen)m(t)g(is)
-g(supplied,)f(the)h(output)f(is)h(formatted)g(in)f(suc)m(h)h(a)g(w)m(a)
-m(y)g(that)630 2259 y(it)f(can)g(b)s(e)e(made)i(part)f(of)g(an)h
-Fr(inputrc)k Fu(\014le.)41 b(This)29 b(command)h(is)h(un)m(b)s(ound)c
-(b)m(y)k(default.)150 2418 y Ft(dump-macros)c(\(\))630
-2527 y Fu(Prin)m(t)34 b(all)g(of)g(the)g(Readline)g(k)m(ey)h(sequences)
-f(b)s(ound)e(to)i(macros)g(and)f(the)h(strings)g(they)630
-2637 y(output.)53 b(If)35 b(a)g(n)m(umeric)f(argumen)m(t)i(is)e
+(default.)150 2929 y Ft(dump-macros)c(\(\))630 3039 y
+Fu(Prin)m(t)34 b(all)g(of)g(the)g(Readline)g(k)m(ey)h(sequences)f(b)s
+(ound)e(to)i(macros)g(and)f(the)h(strings)g(they)630
+3148 y(output.)53 b(If)35 b(a)g(n)m(umeric)f(argumen)m(t)i(is)e
(supplied,)h(the)g(output)g(is)f(formatted)i(in)e(suc)m(h)h(a)630
-2746 y(w)m(a)m(y)c(that)g(it)f(can)g(b)s(e)g(made)g(part)f(of)i(an)e
+3258 y(w)m(a)m(y)c(that)g(it)f(can)g(b)s(e)g(made)g(part)f(of)i(an)e
Fr(inputrc)35 b Fu(\014le.)41 b(This)29 b(command)h(is)g(un)m(b)s(ound)
-d(b)m(y)630 2856 y(default.)150 3014 y Ft(glob-complete-word)e(\(M-g\))
-630 3124 y Fu(The)i(w)m(ord)h(b)s(efore)f(p)s(oin)m(t)h(is)g(treated)h
-(as)f(a)h(pattern)f(for)f(pathname)h(expansion,)g(with)g(an)630
-3233 y(asterisk)d(implicitly)h(app)s(ended.)37 b(This)23
+d(b)m(y)630 3367 y(default.)150 3532 y Ft(spell-correct-word)e(\(C-x)30
+b(s\))630 3641 y Fu(P)m(erform)36 b(sp)s(elling)h(correction)h(on)e
+(the)h(curren)m(t)f(w)m(ord,)i(treating)f(it)g(as)g(a)g(directory)g(or)
+630 3751 y(\014lename,)g(in)e(the)h(same)f(w)m(a)m(y)i(as)e(the)h
+Ft(cdspell)d Fu(shell)j(option.)56 b(W)-8 b(ord)36 b(b)s(oundaries)e
+(are)630 3861 y(the)d(same)f(as)h(those)g(used)e(b)m(y)i
+Ft(shell-forward-word)p Fu(.)150 4025 y Ft(glob-complete-word)25
+b(\(M-g\))630 4134 y Fu(The)i(w)m(ord)h(b)s(efore)f(p)s(oin)m(t)h(is)g
+(treated)h(as)f(a)h(pattern)f(for)f(pathname)h(expansion,)g(with)g(an)
+630 4244 y(asterisk)d(implicitly)h(app)s(ended.)37 b(This)23
b(pattern)i(is)f(used)g(to)h(generate)h(a)e(list)h(of)g(matc)m(hing)630
-3343 y(\014le)30 b(names)h(for)f(p)s(ossible)g(completions.)150
-3501 y Ft(glob-expand-word)c(\(C-x)j(*\))630 3611 y Fu(The)40
+4354 y(\014le)30 b(names)h(for)f(p)s(ossible)g(completions.)150
+4518 y Ft(glob-expand-word)c(\(C-x)j(*\))630 4628 y Fu(The)40
b(w)m(ord)g(b)s(efore)g(p)s(oin)m(t)h(is)g(treated)g(as)g(a)g(pattern)g
-(for)f(pathname)g(expansion,)k(and)630 3720 y(the)c(list)g(of)f(matc)m
+(for)f(pathname)g(expansion,)k(and)630 4737 y(the)c(list)g(of)f(matc)m
(hing)i(\014le)e(names)g(is)h(inserted,)h(replacing)g(the)e(w)m(ord.)67
-b(If)39 b(a)h(n)m(umeric)630 3830 y(argumen)m(t)31 b(is)f(supplied,)g
+b(If)39 b(a)h(n)m(umeric)630 4847 y(argumen)m(t)31 b(is)f(supplied,)g
(a)g(`)p Ft(*)p Fu(')h(is)f(app)s(ended)f(b)s(efore)h(pathname)g
-(expansion.)150 3988 y Ft(glob-list-expansions)25 b(\(C-x)k(g\))630
-4098 y Fu(The)k(list)h(of)f(expansions)g(that)h(w)m(ould)f(ha)m(v)m(e)h
+(expansion.)150 5011 y Ft(glob-list-expansions)25 b(\(C-x)k(g\))630
+5121 y Fu(The)k(list)h(of)f(expansions)g(that)h(w)m(ould)f(ha)m(v)m(e)h
(b)s(een)f(generated)h(b)m(y)f Ft(glob-expand-word)630
-4208 y Fu(is)h(displa)m(y)m(ed,)h(and)e(the)h(line)g(is)f(redra)m(wn.)
+5230 y Fu(is)h(displa)m(y)m(ed,)h(and)e(the)h(line)g(is)f(redra)m(wn.)
50 b(If)33 b(a)h(n)m(umeric)g(argumen)m(t)g(is)f(supplied,)h(a)g(`)p
-Ft(*)p Fu(')630 4317 y(is)c(app)s(ended)f(b)s(efore)h(pathname)g
-(expansion.)150 4475 y Ft(display-shell-version)25 b(\(C-x)k(C-v\))630
-4585 y Fu(Displa)m(y)j(v)m(ersion)e(information)h(ab)s(out)f(the)h
-(curren)m(t)f(instance)h(of)f(Bash.)150 4743 y Ft(shell-expand-line)c
-(\(M-C-e\))630 4853 y Fu(Expand)34 b(the)h(line)h(as)g(the)f(shell)h
-(do)s(es.)55 b(This)34 b(p)s(erforms)g(alias)i(and)f(history)g
-(expansion)630 4963 y(as)f(w)m(ell)g(as)g(all)h(of)e(the)h(shell)g(w)m
-(ord)f(expansions)g(\(see)i(Section)f(3.5)h([Shell)e(Expansions],)630
-5072 y(page)e(22\).)150 5230 y Ft(history-expand-line)25
-b(\(M-^\))630 5340 y Fu(P)m(erform)30 b(history)h(expansion)f(on)g(the)
-h(curren)m(t)f(line.)p eop end
-%%Page: 137 143
-TeXDict begin 137 142 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(137)150 299 y Ft(magic-space)27
-b(\(\))630 408 y Fu(P)m(erform)c(history)g(expansion)g(on)g(the)g
-(curren)m(t)g(line)g(and)g(insert)g(a)g(space)h(\(see)g(Section)g(9.3)
-630 518 y([History)31 b(In)m(teraction],)i(page)e(148\).)150
-663 y Ft(alias-expand-line)26 b(\(\))630 773 y Fu(P)m(erform)i(alias)i
-(expansion)e(on)g(the)h(curren)m(t)f(line)h(\(see)g(Section)g(6.6)h
-([Aliases],)g(page)f(94\).)150 918 y Ft(history-and-alias-expand)o
-(-lin)o(e)24 b(\(\))630 1028 y Fu(P)m(erform)30 b(history)h(and)e
-(alias)j(expansion)e(on)g(the)h(curren)m(t)f(line.)150
-1173 y Ft(insert-last-argument)25 b(\(M-.)k(or)h(M-_\))630
-1283 y Fu(A)g(synon)m(ym)g(for)g Ft(yank-last-arg)p Fu(.)150
-1428 y Ft(edit-and-execute-command)24 b(\(C-x)29 b(C-e\))630
-1538 y Fu(In)m(v)m(ok)m(e)34 b(an)f(editor)g(on)g(the)g(curren)m(t)f
+Ft(*)p Fu(')630 5340 y(is)c(app)s(ended)f(b)s(efore)h(pathname)g
+(expansion.)p eop end
+%%Page: 143 149
+TeXDict begin 143 148 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(143)150 299 y Ft
+(display-shell-version)25 b(\(C-x)k(C-v\))630 408 y Fu(Displa)m(y)j(v)m
+(ersion)e(information)h(ab)s(out)f(the)h(curren)m(t)f(instance)h(of)f
+(Bash.)150 566 y Ft(shell-expand-line)c(\(M-C-e\))630
+676 y Fu(Expand)34 b(the)h(line)h(as)g(the)f(shell)h(do)s(es.)55
+b(This)34 b(p)s(erforms)g(alias)i(and)f(history)g(expansion)630
+785 y(as)f(w)m(ell)g(as)g(all)h(of)e(the)h(shell)g(w)m(ord)f
+(expansions)g(\(see)i(Section)f(3.5)h([Shell)e(Expansions],)630
+895 y(page)e(24\).)150 1053 y Ft(history-expand-line)25
+b(\(M-^\))630 1162 y Fu(P)m(erform)30 b(history)h(expansion)f(on)g(the)
+h(curren)m(t)f(line.)150 1320 y Ft(magic-space)d(\(\))630
+1429 y Fu(P)m(erform)c(history)g(expansion)g(on)g(the)g(curren)m(t)g
+(line)g(and)g(insert)g(a)g(space)h(\(see)g(Section)g(9.3)630
+1539 y([History)31 b(In)m(teraction],)i(page)e(154\).)150
+1697 y Ft(alias-expand-line)26 b(\(\))630 1806 y Fu(P)m(erform)e(alias)
+i(expansion)e(on)h(the)g(curren)m(t)f(line)h(\(see)g(Section)h(6.6)f
+([Aliases],)j(page)d(100\).)150 1964 y Ft(history-and-alias-expand)o
+(-lin)o(e)f(\(\))630 2073 y Fu(P)m(erform)30 b(history)h(and)e(alias)j
+(expansion)e(on)g(the)h(curren)m(t)f(line.)150 2231 y
+Ft(insert-last-argument)25 b(\(M-.)k(or)h(M-_\))630 2341
+y Fu(A)g(synon)m(ym)g(for)g Ft(yank-last-arg)p Fu(.)150
+2498 y Ft(edit-and-execute-command)24 b(\(C-x)29 b(C-e\))630
+2608 y Fu(In)m(v)m(ok)m(e)34 b(an)f(editor)g(on)g(the)g(curren)m(t)f
(command)h(line,)h(and)e(execute)i(the)f(result)g(as)g(shell)630
-1647 y(commands.)81 b(Bash)44 b(attempts)h(to)g(in)m(v)m(ok)m(e)h
+2718 y(commands.)81 b(Bash)44 b(attempts)h(to)g(in)m(v)m(ok)m(e)h
Ft($VISUAL)p Fu(,)f Ft($EDITOR)p Fu(,)h(and)d Ft(emacs)g
-Fu(as)h(the)630 1757 y(editor,)31 b(in)f(that)h(order.)150
-1983 y Fs(8.5)68 b(Readline)47 b(vi)e(Mo)t(de)150 2143
+Fu(as)h(the)630 2827 y(editor,)31 b(in)f(that)h(order.)150
+3066 y Fs(8.5)68 b(Readline)47 b(vi)e(Mo)t(de)150 3226
y Fu(While)32 b(the)g(Readline)g(library)f(do)s(es)g(not)h(ha)m(v)m(e)h
(a)f(full)f(set)h(of)g Ft(vi)f Fu(editing)h(functions,)f(it)h(do)s(es)g
-(con)m(tain)150 2252 y(enough)i(to)h(allo)m(w)g(simple)f(editing)h(of)f
+(con)m(tain)150 3335 y(enough)i(to)h(allo)m(w)g(simple)f(editing)h(of)f
(the)g(line.)52 b(The)34 b(Readline)g Ft(vi)g Fu(mo)s(de)f(b)s(eha)m(v)
-m(es)i(as)f(sp)s(eci\014ed)f(in)150 2362 y(the)e Fm(posix)e
-Fu(standard.)275 2489 y(In)35 b(order)g(to)i(switc)m(h)f(in)m(teractiv)
+m(es)i(as)f(sp)s(eci\014ed)f(in)150 3445 y(the)e Fm(posix)e
+Fu(standard.)275 3578 y(In)35 b(order)g(to)i(switc)m(h)f(in)m(teractiv)
m(ely)j(b)s(et)m(w)m(een)d Ft(emacs)f Fu(and)g Ft(vi)g
Fu(editing)h(mo)s(des,)h(use)f(the)g(`)p Ft(set)30 b(-o)150
-2599 y(emacs)p Fu(')43 b(and)h(`)p Ft(set)30 b(-o)f(vi)p
+3688 y(emacs)p Fu(')43 b(and)h(`)p Ft(set)30 b(-o)f(vi)p
Fu(')44 b(commands)g(\(see)i(Section)f(4.3.1)h([The)e(Set)h(Builtin],)j
-(page)e(62\).)83 b(The)150 2709 y(Readline)31 b(default)g(is)f
-Ft(emacs)f Fu(mo)s(de.)275 2836 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)f
+(page)e(67\).)83 b(The)150 3798 y(Readline)31 b(default)g(is)f
+Ft(emacs)f Fu(mo)s(de.)275 3931 y(When)g(y)m(ou)i(en)m(ter)f(a)h(line)f
(in)g Ft(vi)f Fu(mo)s(de,)h(y)m(ou)h(are)f(already)h(placed)f(in)g
-(`insertion')g(mo)s(de,)g(as)h(if)f(y)m(ou)150 2946 y(had)f(t)m(yp)s
+(`insertion')g(mo)s(de,)g(as)h(if)f(y)m(ou)150 4041 y(had)f(t)m(yp)s
(ed)g(an)g(`)p Ft(i)p Fu('.)41 b(Pressing)29 b Ft(ESC)f
Fu(switc)m(hes)i(y)m(ou)g(in)m(to)h(`command')e(mo)s(de,)h(where)e(y)m
-(ou)i(can)g(edit)g(the)150 3055 y(text)35 b(of)f(the)g(line)g(with)f
+(ou)i(can)g(edit)g(the)150 4150 y(text)35 b(of)f(the)g(line)g(with)f
(the)h(standard)f Ft(vi)g Fu(mo)m(v)m(emen)m(t)j(k)m(eys,)g(mo)m(v)m(e)
-f(to)f(previous)g(history)f(lines)h(with)150 3165 y(`)p
+f(to)f(previous)g(history)f(lines)h(with)150 4260 y(`)p
Ft(k)p Fu(')d(and)e(subsequen)m(t)h(lines)h(with)f(`)p
-Ft(j)p Fu(',)g(and)g(so)h(forth.)150 3391 y Fs(8.6)68
-b(Programmable)47 b(Completion)150 3551 y Fu(When)25
+Ft(j)p Fu(',)g(and)g(so)h(forth.)150 4499 y Fs(8.6)68
+b(Programmable)47 b(Completion)150 4658 y Fu(When)25
b(w)m(ord)g(completion)i(is)f(attempted)g(for)g(an)f(argumen)m(t)h(to)g
-(a)g(command)f(for)h(whic)m(h)f(a)h(completion)150 3660
+(a)g(command)f(for)h(whic)m(h)f(a)h(completion)150 4768
y(sp)s(eci\014cation)40 b(\(a)h Fr(compsp)s(ec)6 b Fu(\))39
b(has)h(b)s(een)f(de\014ned)f(using)h(the)h Ft(complete)d
-Fu(builtin)j(\(see)g(Section)h(8.7)150 3770 y([Programmable)h
-(Completion)f(Builtins],)k(page)d(139\),)j(the)c(programmable)g
-(completion)i(facilities)150 3880 y(are)31 b(in)m(v)m(ok)m(ed.)275
-4007 y(First,)23 b(the)e(command)g(name)g(is)h(iden)m(ti\014ed.)37
+Fu(builtin)j(\(see)g(Section)h(8.7)150 4878 y([Programmable)h
+(Completion)f(Builtins],)k(page)d(146\),)j(the)c(programmable)g
+(completion)i(facilities)150 4987 y(are)31 b(in)m(v)m(ok)m(ed.)275
+5121 y(First,)23 b(the)e(command)g(name)g(is)h(iden)m(ti\014ed.)37
b(If)21 b(a)g(compsp)s(ec)g(has)g(b)s(een)f(de\014ned)g(for)h(that)h
-(command,)150 4117 y(the)44 b(compsp)s(ec)g(is)g(used)f(to)h(generate)i
+(command,)150 5230 y(the)44 b(compsp)s(ec)g(is)g(used)f(to)h(generate)i
(the)e(list)g(of)g(p)s(ossible)g(completions)h(for)e(the)h(w)m(ord.)81
-b(If)44 b(the)150 4226 y(command)36 b(w)m(ord)g(is)g(the)g(empt)m(y)h
+b(If)44 b(the)150 5340 y(command)36 b(w)m(ord)g(is)g(the)g(empt)m(y)h
(string)f(\(completion)i(attempted)f(at)g(the)g(b)s(eginning)e(of)h(an)
-h(empt)m(y)150 4336 y(line\),)30 b(an)m(y)g(compsp)s(ec)f(de\014ned)f
-(with)h(the)h Ft(-E)e Fu(option)i(to)g Ft(complete)d
-Fu(is)i(used.)40 b(If)29 b(the)g(command)g(w)m(ord)150
-4445 y(is)e(a)h(full)e(pathname,)i(a)g(compsp)s(ec)e(for)h(the)g(full)g
-(pathname)g(is)g(searc)m(hed)h(for)f(\014rst.)39 b(If)26
-b(no)h(compsp)s(ec)g(is)150 4555 y(found)22 b(for)g(the)h(full)g
-(pathname,)h(an)f(attempt)h(is)f(made)g(to)g(\014nd)f(a)h(compsp)s(ec)f
-(for)h(the)g(p)s(ortion)f(follo)m(wing)150 4665 y(the)34
-b(\014nal)g(slash.)53 b(If)34 b(those)g(searc)m(hes)i(do)e(not)g
-(result)h(in)f(a)g(compsp)s(ec,)h(an)m(y)g(compsp)s(ec)f(de\014ned)f
-(with)150 4774 y(the)k Ft(-D)g Fu(option)g(to)h Ft(complete)d
-Fu(is)i(used)g(as)g(the)g(default.)61 b(If)37 b(there)g(is)h(no)f
-(default)g(compsp)s(ec,)i(Bash)150 4884 y(attempts)e(alias)h(expansion)
-e(on)g(the)h(command)f(w)m(ord)g(as)h(a)f(\014nal)g(resort,)j(and)c
-(attempts)j(to)f(\014nd)e(a)150 4993 y(compsp)s(ec)30
-b(for)g(the)h(command)f(w)m(ord)g(from)g(an)m(y)h(successful)f
-(expansion)275 5121 y(Once)k(a)g(compsp)s(ec)g(has)g(b)s(een)f(found,)h
-(it)h(is)f(used)f(to)i(generate)h(the)e(list)h(of)f(matc)m(hing)h(w)m
-(ords.)51 b(If)150 5230 y(a)37 b(compsp)s(ec)f(is)g(not)h(found,)f(the)
-h(default)f(Bash)h(completion)g(describ)s(ed)e(ab)s(o)m(v)m(e)j(\(see)f
-(Section)g(8.4.6)150 5340 y([Commands)30 b(F)-8 b(or)31
-b(Completion],)g(page)g(133\))h(is)f(p)s(erformed.)p
-eop end
-%%Page: 138 144
-TeXDict begin 138 143 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(138)275 299 y(First,)31
-b(the)g(actions)g(sp)s(eci\014ed)f(b)m(y)h(the)f(compsp)s(ec)h(are)g
-(used.)40 b(Only)30 b(matc)m(hes)i(whic)m(h)e(are)h(pre\014xed)150
-408 y(b)m(y)h(the)f(w)m(ord)h(b)s(eing)f(completed)h(are)g(returned.)44
-b(When)31 b(the)h Ft(-f)f Fu(or)h Ft(-d)f Fu(option)h(is)f(used)g(for)h
-(\014lename)150 518 y(or)e(directory)h(name)f(completion,)i(the)e
-(shell)h(v)-5 b(ariable)31 b Ft(FIGNORE)d Fu(is)i(used)f(to)i(\014lter)
-g(the)f(matc)m(hes.)42 b(See)150 628 y(Section)31 b(5.2)h([Bash)e(V)-8
-b(ariables],)33 b(page)e(73,)g(for)f(a)h(description)g(of)f
-Ft(FIGNORE)p Fu(.)275 769 y(An)m(y)22 b(completions)h(sp)s(eci\014ed)f
+h(empt)m(y)p eop end
+%%Page: 144 150
+TeXDict begin 144 149 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(144)150 299 y(line\),)30
+b(an)m(y)g(compsp)s(ec)f(de\014ned)f(with)h(the)h Ft(-E)e
+Fu(option)i(to)g Ft(complete)d Fu(is)i(used.)40 b(If)29
+b(the)g(command)g(w)m(ord)150 408 y(is)e(a)h(full)e(pathname,)i(a)g
+(compsp)s(ec)e(for)h(the)g(full)g(pathname)g(is)g(searc)m(hed)h(for)f
+(\014rst.)39 b(If)26 b(no)h(compsp)s(ec)g(is)150 518
+y(found)22 b(for)g(the)h(full)g(pathname,)h(an)f(attempt)h(is)f(made)g
+(to)g(\014nd)f(a)h(compsp)s(ec)f(for)h(the)g(p)s(ortion)f(follo)m(wing)
+150 628 y(the)34 b(\014nal)g(slash.)53 b(If)34 b(those)g(searc)m(hes)i
+(do)e(not)g(result)h(in)f(a)g(compsp)s(ec,)h(an)m(y)g(compsp)s(ec)f
+(de\014ned)f(with)150 737 y(the)k Ft(-D)g Fu(option)g(to)h
+Ft(complete)d Fu(is)i(used)g(as)g(the)g(default.)61 b(If)37
+b(there)g(is)h(no)f(default)g(compsp)s(ec,)i(Bash)150
+847 y(attempts)e(alias)h(expansion)e(on)g(the)h(command)f(w)m(ord)g(as)
+h(a)f(\014nal)g(resort,)j(and)c(attempts)j(to)f(\014nd)e(a)150
+956 y(compsp)s(ec)30 b(for)g(the)h(command)f(w)m(ord)g(from)g(an)m(y)h
+(successful)f(expansion)275 1113 y(Once)k(a)g(compsp)s(ec)g(has)g(b)s
+(een)f(found,)h(it)h(is)f(used)f(to)i(generate)h(the)e(list)h(of)f
+(matc)m(hing)h(w)m(ords.)51 b(If)150 1223 y(a)37 b(compsp)s(ec)f(is)g
+(not)h(found,)f(the)h(default)f(Bash)h(completion)g(describ)s(ed)e(ab)s
+(o)m(v)m(e)j(\(see)f(Section)g(8.4.6)150 1332 y([Commands)30
+b(F)-8 b(or)31 b(Completion],)g(page)g(139\))h(is)f(p)s(erformed.)275
+1489 y(First,)g(the)g(actions)g(sp)s(eci\014ed)f(b)m(y)h(the)f(compsp)s
+(ec)h(are)g(used.)40 b(Only)30 b(matc)m(hes)i(whic)m(h)e(are)h
+(pre\014xed)150 1598 y(b)m(y)h(the)f(w)m(ord)h(b)s(eing)f(completed)h
+(are)g(returned.)44 b(When)31 b(the)h Ft(-f)f Fu(or)h
+Ft(-d)f Fu(option)h(is)f(used)g(for)h(\014lename)150
+1708 y(or)e(directory)h(name)f(completion,)i(the)e(shell)h(v)-5
+b(ariable)31 b Ft(FIGNORE)d Fu(is)i(used)f(to)i(\014lter)g(the)f(matc)m
+(hes.)42 b(See)150 1817 y(Section)31 b(5.2)h([Bash)e(V)-8
+b(ariables],)33 b(page)e(78,)g(for)f(a)h(description)g(of)f
+Ft(FIGNORE)p Fu(.)275 1974 y(An)m(y)22 b(completions)h(sp)s(eci\014ed)f
(b)m(y)g(a)h(\014lename)f(expansion)h(pattern)f(to)h(the)g
-Ft(-G)e Fu(option)i(are)g(generated)150 878 y(next.)41
+Ft(-G)e Fu(option)i(are)g(generated)150 2084 y(next.)41
b(The)29 b(w)m(ords)g(generated)h(b)m(y)g(the)g(pattern)f(need)h(not)f
(matc)m(h)i(the)f(w)m(ord)f(b)s(eing)g(completed.)41
-b(The)150 988 y Ft(GLOBIGNORE)29 b Fu(shell)i(v)-5 b(ariable)32
+b(The)150 2193 y Ft(GLOBIGNORE)29 b Fu(shell)i(v)-5 b(ariable)32
b(is)g(not)g(used)e(to)i(\014lter)g(the)g(matc)m(hes,)h(but)d(the)i
-Ft(FIGNORE)e Fu(shell)h(v)-5 b(ariable)150 1097 y(is)30
-b(used.)275 1238 y(Next,)39 b(the)f(string)f(sp)s(eci\014ed)f(as)h(the)
+Ft(FIGNORE)e Fu(shell)h(v)-5 b(ariable)150 2303 y(is)30
+b(used.)275 2459 y(Next,)39 b(the)f(string)f(sp)s(eci\014ed)f(as)h(the)
g(argumen)m(t)h(to)g(the)f Ft(-W)f Fu(option)i(is)f(considered.)60
-b(The)37 b(string)150 1348 y(is)c(\014rst)e(split)i(using)f(the)h(c)m
+b(The)37 b(string)150 2569 y(is)c(\014rst)e(split)i(using)f(the)h(c)m
(haracters)h(in)e(the)h Ft(IFS)e Fu(sp)s(ecial)j(v)-5
b(ariable)33 b(as)g(delimiters.)48 b(Shell)32 b(quoting)h(is)150
-1457 y(honored)f(within)h(the)g(string,)h(in)f(order)f(to)i(pro)m(vide)
+2679 y(honored)f(within)h(the)g(string,)h(in)f(order)f(to)i(pro)m(vide)
f(a)h(mec)m(hanism)f(for)g(the)g(w)m(ords)g(to)g(con)m(tain)i(shell)150
-1567 y(metac)m(haracters)e(or)e(c)m(haracters)i(in)e(the)g(v)-5
+2788 y(metac)m(haracters)e(or)e(c)m(haracters)i(in)e(the)g(v)-5
b(alue)31 b(of)g Ft(IFS)p Fu(.)42 b(Eac)m(h)32 b(w)m(ord)e(is)h(then)g
-(expanded)f(using)h(brace)150 1677 y(expansion,)g(tilde)h(expansion,)f
+(expanded)f(using)h(brace)150 2898 y(expansion,)g(tilde)h(expansion,)f
(parameter)g(and)g(v)-5 b(ariable)32 b(expansion,)f(command)f
-(substitution,)i(and)150 1786 y(arithmetic)c(expansion,)f(as)g(describ)
+(substitution,)i(and)150 3007 y(arithmetic)c(expansion,)f(as)g(describ)
s(ed)e(ab)s(o)m(v)m(e)i(\(see)h(Section)f(3.5)g([Shell)g(Expansions],)g
-(page)g(22\).)40 b(The)150 1896 y(results)23 b(are)h(split)g(using)f
+(page)g(24\).)40 b(The)150 3117 y(results)23 b(are)h(split)g(using)f
(the)h(rules)f(describ)s(ed)f(ab)s(o)m(v)m(e)j(\(see)g(Section)f(3.5.7)
-h([W)-8 b(ord)24 b(Splitting],)i(page)e(32\).)150 2005
+h([W)-8 b(ord)24 b(Splitting],)i(page)e(35\).)150 3226
y(The)j(results)h(of)f(the)h(expansion)g(are)g(pre\014x-matc)m(hed)g
(against)h(the)f(w)m(ord)f(b)s(eing)g(completed,)j(and)d(the)150
-2115 y(matc)m(hing)k(w)m(ords)f(b)s(ecome)h(the)g(p)s(ossible)f
-(completions.)275 2256 y(After)f(these)g(matc)m(hes)i(ha)m(v)m(e)f(b)s
+3336 y(matc)m(hing)k(w)m(ords)f(b)s(ecome)h(the)g(p)s(ossible)f
+(completions.)275 3493 y(After)f(these)g(matc)m(hes)i(ha)m(v)m(e)f(b)s
(een)f(generated,)h(an)m(y)g(shell)f(function)g(or)g(command)g(sp)s
-(eci\014ed)f(with)150 2365 y(the)36 b Ft(-F)f Fu(and)g
+(eci\014ed)f(with)150 3602 y(the)36 b Ft(-F)f Fu(and)g
Ft(-C)g Fu(options)h(is)g(in)m(v)m(ok)m(ed.)59 b(When)35
b(the)h(command)g(or)f(function)h(is)g(in)m(v)m(ok)m(ed,)i(the)e
-Ft(COMP_)150 2475 y(LINE)p Fu(,)42 b Ft(COMP_POINT)p
+Ft(COMP_)150 3712 y(LINE)p Fu(,)42 b Ft(COMP_POINT)p
Fu(,)d Ft(COMP_KEY)p Fu(,)i(and)e Ft(COMP_TYPE)f Fu(v)-5
b(ariables)41 b(are)f(assigned)g(v)-5 b(alues)41 b(as)f(describ)s(ed)
-150 2585 y(ab)s(o)m(v)m(e)34 b(\(see)g(Section)g(5.2)g([Bash)f(V)-8
-b(ariables],)36 b(page)d(73\).)50 b(If)33 b(a)g(shell)g(function)g(is)g
-(b)s(eing)f(in)m(v)m(ok)m(ed,)k(the)150 2694 y Ft(COMP_WORDS)j
+150 3821 y(ab)s(o)m(v)m(e)34 b(\(see)g(Section)g(5.2)g([Bash)f(V)-8
+b(ariables],)36 b(page)d(78\).)50 b(If)33 b(a)g(shell)g(function)g(is)g
+(b)s(eing)f(in)m(v)m(ok)m(ed,)k(the)150 3931 y Ft(COMP_WORDS)j
Fu(and)i Ft(COMP_CWORD)d Fu(v)-5 b(ariables)42 b(are)g(also)h(set.)74
-b(When)41 b(the)h(function)f(or)h(command)f(is)150 2804
+b(When)41 b(the)h(function)f(or)h(command)f(is)150 4041
y(in)m(v)m(ok)m(ed,)c(the)e(\014rst)f(argumen)m(t)h(\($1\))h(is)e(the)h
(name)g(of)f(the)h(command)f(whose)h(argumen)m(ts)f(are)h(b)s(eing)150
-2913 y(completed,)30 b(the)f(second)f(argumen)m(t)h(\($2\))h(is)f(the)g
+4150 y(completed,)30 b(the)f(second)f(argumen)m(t)h(\($2\))h(is)f(the)g
(w)m(ord)f(b)s(eing)g(completed,)i(and)e(the)h(third)e(argumen)m(t)150
-3023 y(\($3\))40 b(is)f(the)f(w)m(ord)h(preceding)f(the)h(w)m(ord)f(b)s
+4260 y(\($3\))40 b(is)f(the)f(w)m(ord)h(preceding)f(the)h(w)m(ord)f(b)s
(eing)g(completed)i(on)e(the)h(curren)m(t)f(command)h(line.)65
-b(No)150 3133 y(\014ltering)33 b(of)h(the)f(generated)h(completions)g
+b(No)150 4369 y(\014ltering)33 b(of)h(the)f(generated)h(completions)g
(against)h(the)e(w)m(ord)g(b)s(eing)f(completed)i(is)g(p)s(erformed;)f
-(the)150 3242 y(function)d(or)g(command)h(has)f(complete)i(freedom)e
-(in)g(generating)h(the)g(matc)m(hes.)275 3383 y(An)m(y)j(function)h(sp)
+(the)150 4479 y(function)d(or)g(command)h(has)f(complete)i(freedom)e
+(in)g(generating)h(the)g(matc)m(hes.)275 4635 y(An)m(y)j(function)h(sp)
s(eci\014ed)f(with)g Ft(-F)g Fu(is)h(in)m(v)m(ok)m(ed)h(\014rst.)53
b(The)35 b(function)f(ma)m(y)h(use)g(an)m(y)g(of)g(the)g(shell)150
-3493 y(facilities,)50 b(including)44 b(the)h Ft(compgen)d
+4745 y(facilities,)50 b(including)44 b(the)h Ft(compgen)d
Fu(and)i Ft(compopt)e Fu(builtins)i(describ)s(ed)f(b)s(elo)m(w)h(\(see)
-i(Section)f(8.7)150 3602 y([Programmable)31 b(Completion)h(Builtins],)f
-(page)h(139\),)g(to)g(generate)g(the)f(matc)m(hes.)42
-b(It)31 b(m)m(ust)g(put)f(the)150 3712 y(p)s(ossible)g(completions)h
+i(Section)f(8.7)150 4855 y([Programmable)31 b(Completion)h(Builtins],)f
+(page)h(146\),)g(to)g(generate)g(the)f(matc)m(hes.)42
+b(It)31 b(m)m(ust)g(put)f(the)150 4964 y(p)s(ossible)g(completions)h
(in)f(the)h Ft(COMPREPLY)d Fu(arra)m(y)j(v)-5 b(ariable,)31
-b(one)g(p)s(er)e(arra)m(y)i(elemen)m(t.)275 3853 y(Next,)26
+b(one)g(p)s(er)e(arra)m(y)i(elemen)m(t.)275 5121 y(Next,)26
b(an)m(y)f(command)f(sp)s(eci\014ed)g(with)g(the)h Ft(-C)f
Fu(option)h(is)f(in)m(v)m(ok)m(ed)i(in)e(an)g(en)m(vironmen)m(t)h
-(equiv)-5 b(alen)m(t)150 3962 y(to)26 b(command)e(substitution.)39
+(equiv)-5 b(alen)m(t)150 5230 y(to)26 b(command)e(substitution.)39
b(It)25 b(should)f(prin)m(t)h(a)g(list)h(of)f(completions,)i(one)e(p)s
-(er)f(line,)j(to)f(the)f(standard)150 4072 y(output.)40
+(er)f(line,)j(to)f(the)f(standard)150 5340 y(output.)40
b(Bac)m(kslash)32 b(ma)m(y)f(b)s(e)f(used)g(to)h(escap)s(e)g(a)f
-(newline,)h(if)f(necessary)-8 b(.)275 4213 y(After)24
+(newline,)h(if)f(necessary)-8 b(.)p eop end
+%%Page: 145 151
+TeXDict begin 145 150 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(145)275 299 y(After)24
b(all)i(of)f(the)f(p)s(ossible)g(completions)i(are)f(generated,)i(an)m
(y)e(\014lter)g(sp)s(eci\014ed)e(with)i(the)g Ft(-X)e
-Fu(option)150 4322 y(is)34 b(applied)g(to)g(the)h(list.)52
+Fu(option)150 408 y(is)34 b(applied)g(to)g(the)h(list.)52
b(The)33 b(\014lter)h(is)g(a)h(pattern)f(as)g(used)f(for)h(pathname)g
-(expansion;)i(a)e(`)p Ft(&)p Fu(')g(in)g(the)150 4432
+(expansion;)i(a)e(`)p Ft(&)p Fu(')g(in)g(the)150 518
y(pattern)28 b(is)f(replaced)h(with)g(the)f(text)i(of)f(the)f(w)m(ord)h
(b)s(eing)f(completed.)40 b(A)28 b(literal)h(`)p Ft(&)p
-Fu(')f(ma)m(y)g(b)s(e)f(escap)s(ed)150 4542 y(with)38
+Fu(')f(ma)m(y)g(b)s(e)f(escap)s(ed)150 628 y(with)38
b(a)h(bac)m(kslash;)k(the)38 b(bac)m(kslash)h(is)g(remo)m(v)m(ed)g(b)s
(efore)f(attempting)h(a)g(matc)m(h.)65 b(An)m(y)39 b(completion)150
-4651 y(that)32 b(matc)m(hes)g(the)g(pattern)g(will)f(b)s(e)g(remo)m(v)m
+737 y(that)32 b(matc)m(hes)g(the)g(pattern)g(will)f(b)s(e)g(remo)m(v)m
(ed)h(from)f(the)h(list.)44 b(A)32 b(leading)g(`)p Ft(!)p
-Fu(')f(negates)i(the)f(pattern;)150 4761 y(in)d(this)g(case)h(an)m(y)g
+Fu(')f(negates)i(the)f(pattern;)150 847 y(in)d(this)g(case)h(an)m(y)g
(completion)h(not)e(matc)m(hing)h(the)g(pattern)f(will)h(b)s(e)e(remo)m
-(v)m(ed.)42 b(If)29 b(the)g Ft(nocasematch)150 4870 y
+(v)m(ed.)42 b(If)29 b(the)g Ft(nocasematch)150 956 y
Fu(shell)k(option)f(\(see)i(the)e(description)g(of)h
Ft(shopt)e Fu(in)h(Section)h(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g
-(66\))h(is)150 4980 y(enabled,)d(the)f(matc)m(h)h(is)g(p)s(erformed)e
+(71\))h(is)150 1066 y(enabled,)d(the)f(matc)m(h)h(is)g(p)s(erformed)e
(without)h(regard)g(to)h(the)g(case)g(of)g(alphab)s(etic)g(c)m
-(haracters.)275 5121 y(Finally)-8 b(,)42 b(an)m(y)c(pre\014x)g(and)f
+(haracters.)275 1203 y(Finally)-8 b(,)42 b(an)m(y)c(pre\014x)g(and)f
(su\016x)h(sp)s(eci\014ed)f(with)i(the)f Ft(-P)g Fu(and)g
-Ft(-S)f Fu(options)i(are)g(added)f(to)h(eac)m(h)150 5230
+Ft(-S)f Fu(options)i(are)g(added)f(to)h(eac)m(h)150 1313
y(mem)m(b)s(er)31 b(of)g(the)h(completion)h(list,)f(and)f(the)h(result)
f(is)h(returned)e(to)i(the)g(Readline)g(completion)h(co)s(de)150
-5340 y(as)e(the)f(list)h(of)g(p)s(ossible)f(completions.)p
-eop end
-%%Page: 139 145
-TeXDict begin 139 144 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(139)275 299 y(If)27
-b(the)h(previously-applied)f(actions)i(do)f(not)g(generate)h(an)m(y)f
-(matc)m(hes,)i(and)d(the)h Ft(-o)h(dirnames)d Fu(op-)150
-408 y(tion)j(w)m(as)f(supplied)f(to)i Ft(complete)d Fu(when)h(the)h
-(compsp)s(ec)g(w)m(as)g(de\014ned,)g(directory)g(name)h(completion)150
-518 y(is)h(attempted.)275 653 y(If)35 b(the)g Ft(-o)30
-b(plusdirs)j Fu(option)j(w)m(as)g(supplied)e(to)i Ft(complete)e
-Fu(when)g(the)i(compsp)s(ec)f(w)m(as)h(de\014ned,)150
-763 y(directory)g(name)f(completion)i(is)e(attempted)h(and)f(an)m(y)h
+1422 y(as)e(the)f(list)h(of)g(p)s(ossible)f(completions.)275
+1559 y(If)d(the)h(previously-applied)f(actions)i(do)f(not)g(generate)h
+(an)m(y)f(matc)m(hes,)i(and)d(the)h Ft(-o)h(dirnames)d
+Fu(op-)150 1669 y(tion)j(w)m(as)f(supplied)f(to)i Ft(complete)d
+Fu(when)h(the)h(compsp)s(ec)g(w)m(as)g(de\014ned,)g(directory)g(name)h
+(completion)150 1778 y(is)h(attempted.)275 1915 y(If)35
+b(the)g Ft(-o)30 b(plusdirs)j Fu(option)j(w)m(as)g(supplied)e(to)i
+Ft(complete)e Fu(when)g(the)i(compsp)s(ec)f(w)m(as)h(de\014ned,)150
+2025 y(directory)g(name)f(completion)i(is)e(attempted)h(and)f(an)m(y)h
(matc)m(hes)g(are)g(added)f(to)h(the)f(results)g(of)h(the)150
-873 y(other)31 b(actions.)275 1008 y(By)g(default,)i(if)e(a)h(compsp)s
+2134 y(other)31 b(actions.)275 2271 y(By)g(default,)i(if)e(a)h(compsp)s
(ec)f(is)h(found,)f(whatev)m(er)h(it)g(generates)h(is)e(returned)g(to)h
-(the)g(completion)150 1117 y(co)s(de)21 b(as)g(the)g(full)g(set)g(of)g
+(the)g(completion)150 2381 y(co)s(de)21 b(as)g(the)g(full)g(set)g(of)g
(p)s(ossible)f(completions.)39 b(The)20 b(default)h(Bash)g(completions)
-h(are)g(not)f(attempted,)150 1227 y(and)30 b(the)g(Readline)h(default)f
+h(are)g(not)f(attempted,)150 2491 y(and)30 b(the)g(Readline)h(default)f
(of)g(\014lename)h(completion)g(is)f(disabled.)41 b(If)29
-b(the)i Ft(-o)e(bashdefault)e Fu(option)150 1337 y(w)m(as)d(supplied)e
+b(the)i Ft(-o)e(bashdefault)e Fu(option)150 2600 y(w)m(as)d(supplied)e
(to)j Ft(complete)c Fu(when)i(the)g(compsp)s(ec)h(w)m(as)g(de\014ned,)g
-(the)f(default)h(Bash)g(completions)h(are)150 1446 y(attempted)j(if)f
+(the)f(default)h(Bash)g(completions)h(are)150 2710 y(attempted)j(if)f
(the)h(compsp)s(ec)f(generates)h(no)f(matc)m(hes.)41
b(If)27 b(the)g Ft(-o)j(default)25 b Fu(option)j(w)m(as)f(supplied)f
-(to)150 1556 y Ft(complete)f Fu(when)h(the)h(compsp)s(ec)f(w)m(as)i
+(to)150 2819 y Ft(complete)f Fu(when)h(the)h(compsp)s(ec)f(w)m(as)i
(de\014ned,)e(Readline's)i(default)f(completion)h(will)f(b)s(e)f(p)s
-(erformed)150 1665 y(if)k(the)h(compsp)s(ec)f(\(and,)g(if)h(attempted,)
+(erformed)150 2929 y(if)k(the)h(compsp)s(ec)f(\(and,)g(if)h(attempted,)
g(the)g(default)f(Bash)h(completions\))h(generate)g(no)e(matc)m(hes.)
-275 1801 y(When)20 b(a)i(compsp)s(ec)e(indicates)i(that)g(directory)g
+275 3066 y(When)20 b(a)i(compsp)s(ec)e(indicates)i(that)g(directory)g
(name)f(completion)h(is)f(desired,)i(the)e(programmable)150
-1910 y(completion)31 b(functions)e(force)i(Readline)f(to)h(app)s(end)d
+3176 y(completion)31 b(functions)e(force)i(Readline)f(to)h(app)s(end)d
(a)i(slash)g(to)g(completed)h(names)e(whic)m(h)h(are)g(sym-)150
-2020 y(b)s(olic)40 b(links)g(to)h(directories,)j(sub)5
+3285 y(b)s(olic)40 b(links)g(to)h(directories,)j(sub)5
b(ject)40 b(to)h(the)f(v)-5 b(alue)41 b(of)f(the)g Fr(mark-directories)
-45 b Fu(Readline)c(v)-5 b(ariable,)150 2130 y(regardless)31
+45 b Fu(Readline)c(v)-5 b(ariable,)150 3395 y(regardless)31
b(of)f(the)h(setting)g(of)g(the)f Fr(mark-symlink)m(ed-directories)36
-b Fu(Readline)31 b(v)-5 b(ariable.)275 2265 y(There)25
+b Fu(Readline)31 b(v)-5 b(ariable.)275 3532 y(There)25
b(is)i(some)g(supp)s(ort)e(for)h(dynamically)h(mo)s(difying)f
(completions.)40 b(This)26 b(is)g(most)h(useful)f(when)150
-2374 y(used)40 b(in)h(com)m(bination)i(with)e(a)g(default)h(completion)
+3641 y(used)40 b(in)h(com)m(bination)i(with)e(a)g(default)h(completion)
g(sp)s(eci\014ed)f(with)g Ft(-D)p Fu(.)72 b(It's)42 b(p)s(ossible)f
-(for)g(shell)150 2484 y(functions)28 b(executed)h(as)f(completion)i
+(for)g(shell)150 3751 y(functions)28 b(executed)h(as)f(completion)i
(handlers)d(to)i(indicate)g(that)g(completion)g(should)e(b)s(e)h
-(retried)g(b)m(y)150 2594 y(returning)j(an)i(exit)g(status)f(of)h(124.)
+(retried)g(b)m(y)150 3861 y(returning)j(an)i(exit)g(status)f(of)h(124.)
48 b(If)31 b(a)i(shell)f(function)g(returns)f(124,)k(and)c(c)m(hanges)j
-(the)e(compsp)s(ec)150 2703 y(asso)s(ciated)43 b(with)e(the)g(command)g
+(the)e(compsp)s(ec)150 3970 y(asso)s(ciated)43 b(with)e(the)g(command)g
(on)g(whic)m(h)g(completion)i(is)e(b)s(eing)g(attempted)h(\(supplied)e
-(as)i(the)150 2813 y(\014rst)29 b(argumen)m(t)h(when)e(the)i(function)f
+(as)i(the)150 4080 y(\014rst)29 b(argumen)m(t)h(when)e(the)i(function)f
(is)g(executed\),)j(programmable)d(completion)i(restarts)f(from)f(the)
-150 2922 y(b)s(eginning,)e(with)g(an)h(attempt)g(to)g(\014nd)e(a)i(new)
+150 4189 y(b)s(eginning,)e(with)g(an)h(attempt)g(to)g(\014nd)e(a)i(new)
e(compsp)s(ec)i(for)f(that)h(command.)39 b(This)27 b(allo)m(ws)h(a)g
-(set)g(of)150 3032 y(completions)33 b(to)f(b)s(e)g(built)f(dynamically)
+(set)g(of)150 4299 y(completions)33 b(to)f(b)s(e)g(built)f(dynamically)
i(as)f(completion)h(is)f(attempted,)h(rather)f(than)f(b)s(eing)g
-(loaded)150 3142 y(all)g(at)g(once.)275 3277 y(F)-8 b(or)38
+(loaded)150 4408 y(all)g(at)g(once.)275 4545 y(F)-8 b(or)38
b(instance,)h(assuming)e(that)h(there)f(is)h(a)f(library)g(of)g(compsp)
s(ecs,)i(eac)m(h)g(k)m(ept)e(in)g(a)h(\014le)f(corre-)150
-3386 y(sp)s(onding)g(to)j(the)f(name)f(of)h(the)g(command,)i(the)e
+4655 y(sp)s(onding)g(to)j(the)f(name)f(of)h(the)g(command,)i(the)e
(follo)m(wing)h(default)f(completion)h(function)e(w)m(ould)150
-3496 y(load)31 b(completions)g(dynamically:)390 3631
-y Ft(_completion_loader\(\))390 3741 y({)581 3851 y(.)47
+4765 y(load)31 b(completions)g(dynamically:)390 4902
+y Ft(_completion_loader\(\))390 5011 y({)581 5121 y(.)47
b("/etc/bash_completion.d/$1)o(.sh)o(")42 b(>/dev/null)j(2>&1)i(&&)g
-(return)f(124)390 3960 y(})390 4070 y(complete)g(-D)h(-F)g
-(_completion_loader)c(-o)k(bashdefault)e(-o)i(default)150
-4312 y Fs(8.7)68 b(Programmable)47 b(Completion)f(Builtins)150
-4471 y Fu(Three)21 b(builtin)g(commands)f(are)i(a)m(v)-5
-b(ailable)24 b(to)e(manipulate)f(the)h(programmable)f(completion)h
-(facilities:)150 4581 y(one)34 b(to)g(sp)s(ecify)f(ho)m(w)h(the)f
-(argumen)m(ts)h(to)g(a)g(particular)g(command)f(are)h(to)g(b)s(e)f
-(completed,)j(and)d(t)m(w)m(o)150 4690 y(to)e(mo)s(dify)f(the)g
-(completion)i(as)e(it)h(is)g(happ)s(ening.)150 4851 y
-Ft(compgen)870 4986 y(compgen)46 b([)p Fj(option)p Ft(])f([)p
-Fj(word)p Ft(])630 5121 y Fu(Generate)27 b(p)s(ossible)e(completion)i
-(matc)m(hes)g(for)e Fr(w)m(ord)k Fu(according)e(to)f(the)g
-Fr(option)p Fu(s,)h(whic)m(h)630 5230 y(ma)m(y)32 b(b)s(e)f(an)m(y)h
-(option)g(accepted)g(b)m(y)g(the)f Ft(complete)f Fu(builtin)h(with)g
-(the)g(exception)i(of)f Ft(-p)630 5340 y Fu(and)39 b
-Ft(-r)p Fu(,)i(and)e(write)h(the)g(matc)m(hes)g(to)g(the)g(standard)f
-(output.)68 b(When)39 b(using)g(the)h Ft(-F)p eop end
-%%Page: 140 146
-TeXDict begin 140 145 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(140)630 299 y(or)33
-b Ft(-C)f Fu(options,)i(the)e(v)-5 b(arious)33 b(shell)g(v)-5
-b(ariables)33 b(set)g(b)m(y)g(the)g(programmable)g(completion)630
-408 y(facilities,)g(while)d(a)m(v)-5 b(ailable,)33 b(will)e(not)g(ha)m
-(v)m(e)g(useful)f(v)-5 b(alues.)630 555 y(The)34 b(matc)m(hes)h(will)g
-(b)s(e)f(generated)h(in)f(the)h(same)g(w)m(a)m(y)g(as)g(if)f(the)h
-(programmable)f(com-)630 664 y(pletion)d(co)s(de)g(had)f(generated)i
-(them)e(directly)i(from)e(a)h(completion)h(sp)s(eci\014cation)f(with)
-630 774 y(the)e(same)h(\015ags.)40 b(If)29 b Fr(w)m(ord)j
-Fu(is)d(sp)s(eci\014ed,)g(only)g(those)h(completions)g(matc)m(hing)g
-Fr(w)m(ord)j Fu(will)630 883 y(b)s(e)d(displa)m(y)m(ed.)630
-1029 y(The)24 b(return)g(v)-5 b(alue)25 b(is)g(true)f(unless)g(an)h(in)
+(return)f(124)390 5230 y(})390 5340 y(complete)g(-D)h(-F)g
+(_completion_loader)c(-o)k(bashdefault)e(-o)i(default)p
+eop end
+%%Page: 146 152
+TeXDict begin 146 151 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(146)150 299 y Fs(8.7)68
+b(Programmable)47 b(Completion)f(Builtins)150 458 y Fu(Three)21
+b(builtin)g(commands)f(are)i(a)m(v)-5 b(ailable)24 b(to)e(manipulate)f
+(the)h(programmable)f(completion)h(facilities:)150 568
+y(one)34 b(to)g(sp)s(ecify)f(ho)m(w)h(the)f(argumen)m(ts)h(to)g(a)g
+(particular)g(command)f(are)h(to)g(b)s(e)f(completed,)j(and)d(t)m(w)m
+(o)150 677 y(to)e(mo)s(dify)f(the)g(completion)i(as)e(it)h(is)g(happ)s
+(ening.)150 893 y Ft(compgen)870 1046 y(compgen)46 b([)p
+Fj(option)p Ft(])f([)p Fj(word)p Ft(])630 1199 y Fu(Generate)27
+b(p)s(ossible)e(completion)i(matc)m(hes)g(for)e Fr(w)m(ord)k
+Fu(according)e(to)f(the)g Fr(option)p Fu(s,)h(whic)m(h)630
+1309 y(ma)m(y)32 b(b)s(e)f(an)m(y)h(option)g(accepted)g(b)m(y)g(the)f
+Ft(complete)f Fu(builtin)h(with)g(the)g(exception)i(of)f
+Ft(-p)630 1418 y Fu(and)39 b Ft(-r)p Fu(,)i(and)e(write)h(the)g(matc)m
+(hes)g(to)g(the)g(standard)f(output.)68 b(When)39 b(using)g(the)h
+Ft(-F)630 1528 y Fu(or)33 b Ft(-C)f Fu(options,)i(the)e(v)-5
+b(arious)33 b(shell)g(v)-5 b(ariables)33 b(set)g(b)m(y)g(the)g
+(programmable)g(completion)630 1638 y(facilities,)g(while)d(a)m(v)-5
+b(ailable,)33 b(will)e(not)g(ha)m(v)m(e)g(useful)f(v)-5
+b(alues.)630 1791 y(The)34 b(matc)m(hes)h(will)g(b)s(e)f(generated)h
+(in)f(the)h(same)g(w)m(a)m(y)g(as)g(if)f(the)h(programmable)f(com-)630
+1900 y(pletion)d(co)s(de)g(had)f(generated)i(them)e(directly)i(from)e
+(a)h(completion)h(sp)s(eci\014cation)f(with)630 2010
+y(the)e(same)h(\015ags.)40 b(If)29 b Fr(w)m(ord)j Fu(is)d(sp)s
+(eci\014ed,)g(only)g(those)h(completions)g(matc)m(hing)g
+Fr(w)m(ord)j Fu(will)630 2120 y(b)s(e)d(displa)m(y)m(ed.)630
+2273 y(The)24 b(return)g(v)-5 b(alue)25 b(is)g(true)f(unless)g(an)h(in)
m(v)-5 b(alid)25 b(option)g(is)g(supplied,)f(or)h(no)g(matc)m(hes)g(w)m
-(ere)630 1139 y(generated.)150 1322 y Ft(complete)870
-1468 y(complete)46 b([-abcdefgjksuv])d([-o)k Fj(comp-option)p
-Ft(])e([-DEI])h([-A)h Fj(action)p Ft(])e([-)870 1577
-y(G)i Fj(globpat)p Ft(])870 1687 y([-W)g Fj(wordlist)p
+(ere)630 2382 y(generated.)150 2579 y Ft(complete)870
+2732 y(complete)46 b([-abcdefgjksuv])d([-o)k Fj(comp-option)p
+Ft(])e([-DEI])h([-A)h Fj(action)p Ft(])e([-)870 2842
+y(G)i Fj(globpat)p Ft(])870 2951 y([-W)g Fj(wordlist)p
Ft(])e([-F)i Fj(function)p Ft(])e([-C)i Fj(command)p
-Ft(])f([-X)h Fj(filterpat)p Ft(])870 1797 y([-P)g Fj(prefix)p
+Ft(])f([-X)h Fj(filterpat)p Ft(])870 3061 y([-P)g Fj(prefix)p
Ft(])f([-S)h Fj(suffix)p Ft(])e Fj(name)i Ft([)p Fj(name)f
-Ft(...])870 1906 y(complete)g(-pr)g([-DEI])h([)p Fj(name)f
-Ft(...)o(])630 2052 y Fu(Sp)s(ecify)37 b(ho)m(w)h(argumen)m(ts)f(to)i
+Ft(...])870 3171 y(complete)g(-pr)g([-DEI])h([)p Fj(name)f
+Ft(...)o(])630 3324 y Fu(Sp)s(ecify)37 b(ho)m(w)h(argumen)m(ts)f(to)i
(eac)m(h)g Fr(name)j Fu(should)37 b(b)s(e)g(completed.)63
-b(If)38 b(the)f Ft(-p)g Fu(option)630 2162 y(is)30 b(supplied,)e(or)i
+b(If)38 b(the)f Ft(-p)g Fu(option)630 3433 y(is)30 b(supplied,)e(or)i
(if)g(no)f(options)h(are)g(supplied,)f(existing)h(completion)h(sp)s
-(eci\014cations)g(are)630 2271 y(prin)m(ted)24 b(in)h(a)g(w)m(a)m(y)g
+(eci\014cations)g(are)630 3543 y(prin)m(ted)24 b(in)h(a)g(w)m(a)m(y)g
(that)h(allo)m(ws)g(them)e(to)i(b)s(e)e(reused)f(as)i(input.)38
-b(The)24 b Ft(-r)g Fu(option)i(remo)m(v)m(es)630 2381
+b(The)24 b Ft(-r)g Fu(option)i(remo)m(v)m(es)630 3653
y(a)i(completion)h(sp)s(eci\014cation)f(for)g(eac)m(h)h
Fr(name)p Fu(,)f(or,)h(if)e(no)h Fr(name)5 b Fu(s)27
-b(are)h(supplied,)g(all)g(com-)630 2491 y(pletion)i(sp)s
+b(are)h(supplied,)g(all)g(com-)630 3762 y(pletion)i(sp)s
(eci\014cations.)42 b(The)29 b Ft(-D)g Fu(option)h(indicates)h(that)f
-(other)g(supplied)e(options)j(and)630 2600 y(actions)c(should)e(apply)g
+(other)g(supplied)e(options)j(and)630 3872 y(actions)c(should)e(apply)g
(to)i(the)f(\\default")h(command)e(completion;)k(that)e(is,)g
-(completion)630 2710 y(attempted)g(on)f(a)h(command)f(for)g(whic)m(h)g
+(completion)630 3981 y(attempted)g(on)f(a)h(command)f(for)g(whic)m(h)g
(no)g(completion)i(has)d(previously)h(b)s(een)g(de\014ned.)630
-2819 y(The)e Ft(-E)g Fu(option)h(indicates)g(that)g(other)g(supplied)e
-(options)h(and)g(actions)i(should)d(apply)h(to)630 2929
+4091 y(The)e Ft(-E)g Fu(option)h(indicates)g(that)g(other)g(supplied)e
+(options)h(and)g(actions)i(should)d(apply)h(to)630 4200
y(\\empt)m(y")33 b(command)e(completion;)i(that)f(is,)g(completion)h
-(attempted)f(on)g(a)f(blank)g(line.)630 3039 y(The)24
+(attempted)f(on)g(a)f(blank)g(line.)630 4310 y(The)24
b Ft(-I)g Fu(option)h(indicates)g(that)g(other)g(supplied)e(options)h
-(and)g(actions)i(should)d(apply)h(to)630 3148 y(completion)29
+(and)g(actions)i(should)d(apply)h(to)630 4420 y(completion)29
b(on)g(the)f(initial)h(non-assignmen)m(t)g(w)m(ord)f(on)g(the)g(line,)i
-(or)e(after)h(a)f(command)630 3258 y(delimiter)41 b(suc)m(h)g(as)f(`)p
+(or)e(after)h(a)f(command)630 4529 y(delimiter)41 b(suc)m(h)g(as)f(`)p
Ft(;)p Fu(')h(or)g(`)p Ft(|)p Fu(',)i(whic)m(h)e(is)f(usually)h
-(command)f(name)h(completion.)72 b(If)630 3367 y(m)m(ultiple)26
+(command)f(name)h(completion.)72 b(If)630 4639 y(m)m(ultiple)26
b(options)g(are)g(supplied,)g(the)f Ft(-D)g Fu(option)h(tak)m(es)i
(precedence)e(o)m(v)m(er)g Ft(-E)p Fu(,)h(and)e(b)s(oth)630
-3477 y(tak)m(e)34 b(precedence)f(o)m(v)m(er)h Ft(-I)p
+4748 y(tak)m(e)34 b(precedence)f(o)m(v)m(er)h Ft(-I)p
Fu(.)47 b(If)32 b(an)m(y)h(of)g Ft(-D)p Fu(,)g Ft(-E)p
Fu(,)f(or)h Ft(-I)f Fu(are)h(supplied,)f(an)m(y)h(other)g
-Fr(name)630 3587 y Fu(argumen)m(ts)k(are)g(ignored;)j(these)d
+Fr(name)630 4858 y Fu(argumen)m(ts)k(are)g(ignored;)j(these)d
(completions)h(only)e(apply)g(to)i(the)f(case)g(sp)s(eci\014ed)f(b)m(y)
-630 3696 y(the)31 b(option.)630 3842 y(The)e(pro)s(cess)g(of)h
+630 4968 y(the)31 b(option.)630 5121 y(The)e(pro)s(cess)g(of)h
(applying)g(these)g(completion)g(sp)s(eci\014cations)h(when)d(w)m(ord)i
-(completion)630 3952 y(is)35 b(attempted)h(is)f(describ)s(ed)f(ab)s(o)m
+(completion)630 5230 y(is)35 b(attempted)h(is)f(describ)s(ed)f(ab)s(o)m
(v)m(e)j(\(see)f(Section)g(8.6)g([Programmable)g(Completion],)630
-4061 y(page)31 b(137\).)630 4208 y(Other)d(options,)i(if)f(sp)s
-(eci\014ed,)g(ha)m(v)m(e)h(the)f(follo)m(wing)i(meanings.)40
-b(The)29 b(argumen)m(ts)g(to)h(the)630 4317 y Ft(-G)p
-Fu(,)41 b Ft(-W)p Fu(,)h(and)c Ft(-X)h Fu(options)h(\(and,)h(if)f
-(necessary)-8 b(,)42 b(the)e Ft(-P)f Fu(and)f Ft(-S)h
-Fu(options\))h(should)f(b)s(e)630 4427 y(quoted)28 b(to)h(protect)g
-(them)f(from)f(expansion)h(b)s(efore)g(the)g Ft(complete)e
-Fu(builtin)h(is)h(in)m(v)m(ok)m(ed.)630 4609 y Ft(-o)i
-Fj(comp-option)1110 4719 y Fu(The)c Fr(comp-option)i
+5340 y(page)31 b(143\).)p eop end
+%%Page: 147 153
+TeXDict begin 147 152 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(147)630 299 y(Other)28
+b(options,)i(if)f(sp)s(eci\014ed,)g(ha)m(v)m(e)h(the)f(follo)m(wing)i
+(meanings.)40 b(The)29 b(argumen)m(ts)g(to)h(the)630
+408 y Ft(-G)p Fu(,)41 b Ft(-W)p Fu(,)h(and)c Ft(-X)h
+Fu(options)h(\(and,)h(if)f(necessary)-8 b(,)42 b(the)e
+Ft(-P)f Fu(and)f Ft(-S)h Fu(options\))h(should)f(b)s(e)630
+518 y(quoted)28 b(to)h(protect)g(them)f(from)f(expansion)h(b)s(efore)g
+(the)g Ft(complete)e Fu(builtin)h(is)h(in)m(v)m(ok)m(ed.)630
+669 y Ft(-o)i Fj(comp-option)1110 778 y Fu(The)c Fr(comp-option)i
Fu(con)m(trols)g(sev)m(eral)h(asp)s(ects)e(of)g(the)g(compsp)s(ec's)g
-(b)s(eha)m(v-)1110 4829 y(ior)g(b)s(ey)m(ond)f(the)g(simple)h
+(b)s(eha)m(v-)1110 888 y(ior)g(b)s(ey)m(ond)f(the)g(simple)h
(generation)h(of)e(completions.)41 b Fr(comp-option)27
-b Fu(ma)m(y)1110 4938 y(b)s(e)j(one)g(of:)1110 5121 y
-Ft(bashdefault)1590 5230 y Fu(P)m(erform)d(the)h(rest)f(of)h(the)g
-(default)f(Bash)h(completions)g(if)g(the)1590 5340 y(compsp)s(ec)i
-(generates)i(no)e(matc)m(hes.)p eop end
-%%Page: 141 147
-TeXDict begin 141 146 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(141)1110 299 y Ft(default)144
+b Fu(ma)m(y)1110 998 y(b)s(e)j(one)g(of:)1110 1148 y
+Ft(bashdefault)1590 1258 y Fu(P)m(erform)d(the)h(rest)f(of)h(the)g
+(default)f(Bash)h(completions)g(if)g(the)1590 1367 y(compsp)s(ec)i
+(generates)i(no)e(matc)m(hes.)1110 1518 y Ft(default)144
b Fu(Use)22 b(Readline's)g(default)g(\014lename)g(completion)g(if)g
-(the)g(comp-)1590 408 y(sp)s(ec)30 b(generates)i(no)e(matc)m(hes.)1110
-570 y Ft(dirnames)96 b Fu(P)m(erform)46 b(directory)g(name)h
-(completion)g(if)f(the)g(compsp)s(ec)1590 680 y(generates)32
-b(no)e(matc)m(hes.)1110 841 y Ft(filenames)1590 951 y
-Fu(T)-8 b(ell)40 b(Readline)f(that)h(the)f(compsp)s(ec)f(generates)j
-(\014lenames,)1590 1060 y(so)29 b(it)h(can)f(p)s(erform)f(an)m(y)h
+(the)g(comp-)1590 1628 y(sp)s(ec)30 b(generates)i(no)e(matc)m(hes.)1110
+1778 y Ft(dirnames)96 b Fu(P)m(erform)46 b(directory)g(name)h
+(completion)g(if)f(the)g(compsp)s(ec)1590 1888 y(generates)32
+b(no)e(matc)m(hes.)1110 2039 y Ft(filenames)1590 2148
+y Fu(T)-8 b(ell)40 b(Readline)f(that)h(the)f(compsp)s(ec)f(generates)j
+(\014lenames,)1590 2258 y(so)29 b(it)h(can)f(p)s(erform)f(an)m(y)h
(\014lename-sp)s(eci\014c)h(pro)s(cessing)e(\(lik)m(e)1590
-1170 y(adding)22 b(a)g(slash)g(to)h(directory)f(names,)i(quoting)f(sp)s
-(ecial)f(c)m(har-)1590 1279 y(acters,)39 b(or)d(suppressing)f(trailing)
-i(spaces\).)59 b(This)35 b(option)i(is)1590 1389 y(in)m(tended)30
+2367 y(adding)22 b(a)g(slash)g(to)h(directory)f(names,)i(quoting)f(sp)s
+(ecial)f(c)m(har-)1590 2477 y(acters,)39 b(or)d(suppressing)f(trailing)
+i(spaces\).)59 b(This)35 b(option)i(is)1590 2587 y(in)m(tended)30
b(to)g(b)s(e)g(used)f(with)g(shell)i(functions)e(sp)s(eci\014ed)g(with)
-1590 1499 y Ft(-F)p Fu(.)1110 1660 y Ft(noquote)144 b
+1590 2696 y Ft(-F)p Fu(.)1110 2847 y Ft(noquote)144 b
Fu(T)-8 b(ell)28 b(Readline)g(not)g(to)g(quote)g(the)g(completed)g(w)m
-(ords)f(if)h(they)1590 1770 y(are)j(\014lenames)f(\(quoting)h
-(\014lenames)g(is)f(the)h(default\).)1110 1931 y Ft(nosort)192
+(ords)f(if)h(they)1590 2956 y(are)j(\014lenames)f(\(quoting)h
+(\014lenames)g(is)f(the)h(default\).)1110 3107 y Ft(nosort)192
b Fu(T)-8 b(ell)23 b(Readline)g(not)f(to)h(sort)g(the)f(list)h(of)f(p)s
-(ossible)g(completions)1590 2041 y(alphab)s(etically)-8
-b(.)1110 2202 y Ft(nospace)144 b Fu(T)-8 b(ell)40 b(Readline)g(not)g
+(ossible)g(completions)1590 3217 y(alphab)s(etically)-8
+b(.)1110 3367 y Ft(nospace)144 b Fu(T)-8 b(ell)40 b(Readline)g(not)g
(to)g(app)s(end)d(a)j(space)g(\(the)f(default\))h(to)1590
-2312 y(w)m(ords)30 b(completed)h(at)g(the)g(end)f(of)g(the)h(line.)1110
-2473 y Ft(plusdirs)96 b Fu(After)30 b(an)m(y)h(matc)m(hes)g(de\014ned)d
-(b)m(y)i(the)g(compsp)s(ec)g(are)g(gener-)1590 2583 y(ated,)g
+3477 y(w)m(ords)30 b(completed)h(at)g(the)g(end)f(of)g(the)h(line.)1110
+3628 y Ft(plusdirs)96 b Fu(After)30 b(an)m(y)h(matc)m(hes)g(de\014ned)d
+(b)m(y)i(the)g(compsp)s(ec)g(are)g(gener-)1590 3737 y(ated,)g
(directory)f(name)g(completion)i(is)d(attempted)i(and)f(an)m(y)1590
-2693 y(matc)m(hes)j(are)e(added)g(to)h(the)g(results)f(of)g(the)h
-(other)g(actions.)630 2854 y Ft(-A)f Fj(action)66 b Fu(The)25
+3847 y(matc)m(hes)j(are)e(added)g(to)h(the)g(results)f(of)g(the)h
+(other)g(actions.)630 3998 y Ft(-A)f Fj(action)66 b Fu(The)25
b Fr(action)h Fu(ma)m(y)g(b)s(e)e(one)h(of)h(the)f(follo)m(wing)i(to)e
-(generate)i(a)e(list)h(of)f(p)s(ossible)1110 2964 y(completions:)1110
-3125 y Ft(alias)240 b Fu(Alias)31 b(names.)41 b(Ma)m(y)31
+(generate)i(a)e(list)h(of)f(p)s(ossible)1110 4107 y(completions:)1110
+4258 y Ft(alias)240 b Fu(Alias)31 b(names.)41 b(Ma)m(y)31
b(also)h(b)s(e)e(sp)s(eci\014ed)f(as)i Ft(-a)p Fu(.)1110
-3287 y Ft(arrayvar)96 b Fu(Arra)m(y)31 b(v)-5 b(ariable)31
-b(names.)1110 3448 y Ft(binding)144 b Fu(Readline)30
+4408 y Ft(arrayvar)96 b Fu(Arra)m(y)31 b(v)-5 b(ariable)31
+b(names.)1110 4559 y Ft(binding)144 b Fu(Readline)30
b(k)m(ey)f(binding)f(names)h(\(see)h(Section)f(8.4)h([Bindable)1590
-3558 y(Readline)h(Commands],)f(page)h(127\).)1110 3719
+4669 y(Readline)h(Commands],)f(page)h(133\).)1110 4819
y Ft(builtin)144 b Fu(Names)21 b(of)g(shell)f(builtin)h(commands.)37
-b(Ma)m(y)21 b(also)h(b)s(e)e(sp)s(eci\014ed)1590 3829
-y(as)31 b Ft(-b)p Fu(.)1110 3990 y Ft(command)144 b Fu(Command)29
+b(Ma)m(y)21 b(also)h(b)s(e)e(sp)s(eci\014ed)1590 4929
+y(as)31 b Ft(-b)p Fu(.)1110 5080 y Ft(command)144 b Fu(Command)29
b(names.)41 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f(as)i
-Ft(-c)p Fu(.)1110 4152 y Ft(directory)1590 4261 y Fu(Directory)h
+Ft(-c)p Fu(.)1110 5230 y Ft(directory)1590 5340 y Fu(Directory)h
(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)g
-Ft(-d)p Fu(.)1110 4423 y Ft(disabled)96 b Fu(Names)31
-b(of)g(disabled)f(shell)g(builtins.)1110 4584 y Ft(enabled)144
-b Fu(Names)31 b(of)g(enabled)f(shell)g(builtins.)1110
-4746 y Ft(export)192 b Fu(Names)34 b(of)f(exp)s(orted)f(shell)h(v)-5
-b(ariables.)49 b(Ma)m(y)35 b(also)e(b)s(e)g(sp)s(eci-)1590
-4855 y(\014ed)d(as)g Ft(-e)p Fu(.)1110 5017 y Ft(file)288
+Ft(-d)p Fu(.)p eop end
+%%Page: 148 154
+TeXDict begin 148 153 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(148)1110 299 y Ft(disabled)96
+b Fu(Names)31 b(of)g(disabled)f(shell)g(builtins.)1110
+455 y Ft(enabled)144 b Fu(Names)31 b(of)g(enabled)f(shell)g(builtins.)
+1110 610 y Ft(export)192 b Fu(Names)34 b(of)f(exp)s(orted)f(shell)h(v)
+-5 b(ariables.)49 b(Ma)m(y)35 b(also)e(b)s(e)g(sp)s(eci-)1590
+720 y(\014ed)d(as)g Ft(-e)p Fu(.)1110 876 y Ft(file)288
b Fu(File)32 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f
-(as)i Ft(-f)p Fu(.)1110 5178 y Ft(function)96 b Fu(Names)31
-b(of)g(shell)f(functions.)1110 5340 y Ft(group)240 b
+(as)i Ft(-f)p Fu(.)1110 1031 y Ft(function)96 b Fu(Names)31
+b(of)g(shell)f(functions.)1110 1187 y Ft(group)240 b
Fu(Group)30 b(names.)40 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)g
-(as)g Ft(-g)p Fu(.)p eop end
-%%Page: 142 148
-TeXDict begin 142 147 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(142)1110 299 y Ft(helptopic)1590
-408 y Fu(Help)37 b(topics)g(as)g(accepted)h(b)m(y)e(the)h
-Ft(help)f Fu(builtin)g(\(see)h(Sec-)1590 518 y(tion)31
-b(4.2)g([Bash)g(Builtins],)g(page)g(51\).)1110 689 y
+(as)g Ft(-g)p Fu(.)1110 1343 y Ft(helptopic)1590 1452
+y Fu(Help)37 b(topics)g(as)g(accepted)h(b)m(y)e(the)h
+Ft(help)f Fu(builtin)g(\(see)h(Sec-)1590 1562 y(tion)31
+b(4.2)g([Bash)g(Builtins],)g(page)g(55\).)1110 1718 y
Ft(hostname)96 b Fu(Hostnames,)89 b(as)76 b(tak)m(en)h(from)f(the)g
-(\014le)h(sp)s(eci\014ed)e(b)m(y)1590 799 y(the)55 b
+(\014le)h(sp)s(eci\014ed)e(b)m(y)1590 1827 y(the)55 b
Ft(HOSTFILE)e Fu(shell)j(v)-5 b(ariable)56 b(\(see)g(Section)g(5.2)h
-([Bash)1590 908 y(V)-8 b(ariables],)32 b(page)f(73\).)1110
-1080 y Ft(job)336 b Fu(Job)31 b(names,)h(if)g(job)f(con)m(trol)i(is)f
+([Bash)1590 1937 y(V)-8 b(ariables],)32 b(page)f(78\).)1110
+2093 y Ft(job)336 b Fu(Job)31 b(names,)h(if)g(job)f(con)m(trol)i(is)f
(activ)m(e.)46 b(Ma)m(y)33 b(also)g(b)s(e)e(sp)s(eci-)1590
-1189 y(\014ed)f(as)g Ft(-j)p Fu(.)1110 1361 y Ft(keyword)144
+2202 y(\014ed)f(as)g Ft(-j)p Fu(.)1110 2358 y Ft(keyword)144
b Fu(Shell)30 b(reserv)m(ed)h(w)m(ords.)40 b(Ma)m(y)32
b(also)f(b)s(e)f(sp)s(eci\014ed)f(as)i Ft(-k)p Fu(.)1110
-1532 y Ft(running)144 b Fu(Names)31 b(of)g(running)d(jobs,)i(if)h(job)f
-(con)m(trol)h(is)g(activ)m(e.)1110 1703 y Ft(service)144
+2514 y Ft(running)144 b Fu(Names)31 b(of)g(running)d(jobs,)i(if)h(job)f
+(con)m(trol)h(is)g(activ)m(e.)1110 2669 y Ft(service)144
b Fu(Service)31 b(names.)41 b(Ma)m(y)31 b(also)g(b)s(e)f(sp)s
-(eci\014ed)g(as)g Ft(-s)p Fu(.)1110 1874 y Ft(setopt)192
+(eci\014ed)g(as)g Ft(-s)p Fu(.)1110 2825 y Ft(setopt)192
b Fu(V)-8 b(alid)39 b(argumen)m(ts)g(for)f(the)h Ft(-o)e
-Fu(option)i(to)g(the)g Ft(set)e Fu(builtin)1590 1984
-y(\(see)31 b(Section)h(4.3.1)g([The)e(Set)g(Builtin],)i(page)f(62\).)
-1110 2155 y Ft(shopt)240 b Fu(Shell)40 b(option)g(names)g(as)g
+Fu(option)i(to)g(the)g Ft(set)e Fu(builtin)1590 2935
+y(\(see)31 b(Section)h(4.3.1)g([The)e(Set)g(Builtin],)i(page)f(67\).)
+1110 3091 y Ft(shopt)240 b Fu(Shell)40 b(option)g(names)g(as)g
(accepted)i(b)m(y)e(the)g Ft(shopt)e Fu(builtin)1590
-2265 y(\(see)31 b(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(51\).)
-1110 2436 y Ft(signal)192 b Fu(Signal)31 b(names.)1110
-2607 y Ft(stopped)144 b Fu(Names)31 b(of)g(stopp)s(ed)e(jobs,)h(if)g
-(job)g(con)m(trol)i(is)f(activ)m(e.)1110 2778 y Ft(user)288
+3200 y(\(see)31 b(Section)h(4.2)f([Bash)g(Builtins],)g(page)g(55\).)
+1110 3356 y Ft(signal)192 b Fu(Signal)31 b(names.)1110
+3512 y Ft(stopped)144 b Fu(Names)31 b(of)g(stopp)s(ed)e(jobs,)h(if)g
+(job)g(con)m(trol)i(is)f(activ)m(e.)1110 3667 y Ft(user)288
b Fu(User)30 b(names.)41 b(Ma)m(y)32 b(also)f(b)s(e)f(sp)s(eci\014ed)f
-(as)i Ft(-u)p Fu(.)1110 2950 y Ft(variable)96 b Fu(Names)36
+(as)i Ft(-u)p Fu(.)1110 3823 y Ft(variable)96 b Fu(Names)36
b(of)g(all)g(shell)g(v)-5 b(ariables.)56 b(Ma)m(y)37
-b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)1590 3059 y Ft(-v)p
-Fu(.)630 3230 y Ft(-C)30 b Fj(command)1110 3340 y Fr(command)35
+b(also)f(b)s(e)f(sp)s(eci\014ed)g(as)1590 3933 y Ft(-v)p
+Fu(.)630 4088 y Ft(-C)30 b Fj(command)1110 4198 y Fr(command)35
b Fu(is)e(executed)g(in)e(a)i(subshell)e(en)m(vironmen)m(t,)i(and)f
-(its)g(output)g(is)1110 3450 y(used)e(as)g(the)h(p)s(ossible)f
-(completions.)630 3621 y Ft(-F)g Fj(function)1110 3730
-y Fu(The)39 b(shell)g(function)g Fr(function)g Fu(is)g(executed)h(in)f
-(the)g(curren)m(t)g(shell)g(en)m(vi-)1110 3840 y(ronmen)m(t.)72
-b(When)41 b(it)g(is)g(executed,)k($1)c(is)g(the)g(name)g(of)g(the)g
-(command)1110 3950 y(whose)34 b(argumen)m(ts)h(are)g(b)s(eing)f
-(completed,)j($2)e(is)f(the)h(w)m(ord)f(b)s(eing)g(com-)1110
-4059 y(pleted,)44 b(and)c($3)i(is)e(the)h(w)m(ord)g(preceding)f(the)h
-(w)m(ord)f(b)s(eing)h(completed,)1110 4169 y(as)g(describ)s(ed)f(ab)s
-(o)m(v)m(e)i(\(see)g(Section)f(8.6)h([Programmable)g(Completion],)1110
-4278 y(page)30 b(137\).)42 b(When)29 b(it)h(\014nishes,)e(the)h(p)s
-(ossible)g(completions)h(are)g(retriev)m(ed)1110 4388
-y(from)g(the)g(v)-5 b(alue)31 b(of)g(the)f Ft(COMPREPLY)e
-Fu(arra)m(y)j(v)-5 b(ariable.)630 4559 y Ft(-G)30 b Fj(globpat)1110
-4669 y Fu(The)39 b(\014lename)h(expansion)g(pattern)g
-Fr(globpat)j Fu(is)d(expanded)f(to)h(generate)1110 4778
-y(the)31 b(p)s(ossible)e(completions.)630 4950 y Ft(-P)h
+(its)g(output)g(is)1110 4308 y(used)38 b(as)h(the)g(p)s(ossible)f
+(completions.)67 b(Argumen)m(ts)39 b(are)g(passed)f(as)h(with)1110
+4417 y(the)31 b Ft(-F)e Fu(option.)630 4573 y Ft(-F)h
+Fj(function)1110 4682 y Fu(The)39 b(shell)g(function)g
+Fr(function)g Fu(is)g(executed)h(in)f(the)g(curren)m(t)g(shell)g(en)m
+(vi-)1110 4792 y(ronmen)m(t.)72 b(When)41 b(it)g(is)g(executed,)k($1)c
+(is)g(the)g(name)g(of)g(the)g(command)1110 4902 y(whose)34
+b(argumen)m(ts)h(are)g(b)s(eing)f(completed,)j($2)e(is)f(the)h(w)m(ord)
+f(b)s(eing)g(com-)1110 5011 y(pleted,)44 b(and)c($3)i(is)e(the)h(w)m
+(ord)g(preceding)f(the)h(w)m(ord)f(b)s(eing)h(completed,)1110
+5121 y(as)g(describ)s(ed)f(ab)s(o)m(v)m(e)i(\(see)g(Section)f(8.6)h
+([Programmable)g(Completion],)1110 5230 y(page)30 b(143\).)42
+b(When)29 b(it)h(\014nishes,)e(the)h(p)s(ossible)g(completions)h(are)g
+(retriev)m(ed)1110 5340 y(from)g(the)g(v)-5 b(alue)31
+b(of)g(the)f Ft(COMPREPLY)e Fu(arra)m(y)j(v)-5 b(ariable.)p
+eop end
+%%Page: 149 155
+TeXDict begin 149 154 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(149)630 299 y Ft(-G)30
+b Fj(globpat)1110 408 y Fu(The)39 b(\014lename)h(expansion)g(pattern)g
+Fr(globpat)j Fu(is)d(expanded)f(to)h(generate)1110 518
+y(the)31 b(p)s(ossible)e(completions.)630 708 y Ft(-P)h
Fj(prefix)66 b Fr(pre\014x)39 b Fu(is)34 b(added)f(at)i(the)f(b)s
(eginning)f(of)i(eac)m(h)g(p)s(ossible)e(completion)i(after)1110
-5059 y(all)c(other)g(options)g(ha)m(v)m(e)g(b)s(een)f(applied.)630
-5230 y Ft(-S)g Fj(suffix)66 b Fr(su\016x)26 b Fu(is)20
+817 y(all)c(other)g(options)g(ha)m(v)m(e)g(b)s(een)f(applied.)630
+1007 y Ft(-S)g Fj(suffix)66 b Fr(su\016x)26 b Fu(is)20
b(app)s(ended)f(to)i(eac)m(h)h(p)s(ossible)e(completion)i(after)f(all)g
-(other)g(options)1110 5340 y(ha)m(v)m(e)32 b(b)s(een)d(applied.)p
-eop end
-%%Page: 143 149
-TeXDict begin 143 148 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(143)630 299 y Ft(-W)30
-b Fj(wordlist)1110 408 y Fu(The)24 b Fr(w)m(ordlist)k
+(other)g(options)1110 1116 y(ha)m(v)m(e)32 b(b)s(een)d(applied.)630
+1306 y Ft(-W)h Fj(wordlist)1110 1416 y Fu(The)24 b Fr(w)m(ordlist)k
Fu(is)d(split)g(using)f(the)h(c)m(haracters)i(in)d(the)i
-Ft(IFS)e Fu(sp)s(ecial)h(v)-5 b(ariable)1110 518 y(as)36
+Ft(IFS)e Fu(sp)s(ecial)h(v)-5 b(ariable)1110 1525 y(as)36
b(delimiters,)i(and)e(eac)m(h)h(resultan)m(t)g(w)m(ord)e(is)h
-(expanded.)57 b(The)35 b(p)s(ossible)1110 628 y(completions)c(are)e
+(expanded.)57 b(The)35 b(p)s(ossible)1110 1635 y(completions)c(are)e
(the)h(mem)m(b)s(ers)f(of)g(the)h(resultan)m(t)g(list)g(whic)m(h)f
-(matc)m(h)i(the)1110 737 y(w)m(ord)f(b)s(eing)g(completed.)630
-909 y Ft(-X)g Fj(filterpat)1110 1019 y Fr(\014lterpat)d
+(matc)m(h)i(the)1110 1744 y(w)m(ord)f(b)s(eing)g(completed.)630
+1934 y Ft(-X)g Fj(filterpat)1110 2043 y Fr(\014lterpat)d
Fu(is)e(a)g(pattern)g(as)f(used)g(for)h(\014lename)g(expansion.)38
-b(It)25 b(is)g(applied)f(to)1110 1128 y(the)30 b(list)f(of)h(p)s
+b(It)25 b(is)g(applied)f(to)1110 2153 y(the)30 b(list)f(of)h(p)s
(ossible)f(completions)h(generated)h(b)m(y)e(the)g(preceding)h(options)
-1110 1238 y(and)d(argumen)m(ts,)i(and)e(eac)m(h)i(completion)g(matc)m
-(hing)g Fr(\014lterpat)h Fu(is)e(remo)m(v)m(ed)1110 1347
+1110 2263 y(and)d(argumen)m(ts,)i(and)e(eac)m(h)i(completion)g(matc)m
+(hing)g Fr(\014lterpat)h Fu(is)e(remo)m(v)m(ed)1110 2372
y(from)i(the)h(list.)42 b(A)30 b(leading)i(`)p Ft(!)p
Fu(')e(in)g Fr(\014lterpat)j Fu(negates)f(the)f(pattern;)g(in)f(this)
-1110 1457 y(case,)i(an)m(y)e(completion)i(not)f(matc)m(hing)g
-Fr(\014lterpat)i Fu(is)d(remo)m(v)m(ed.)630 1629 y(The)35
+1110 2482 y(case,)i(an)m(y)e(completion)i(not)f(matc)m(hing)g
+Fr(\014lterpat)i Fu(is)d(remo)m(v)m(ed.)630 2671 y(The)35
b(return)g(v)-5 b(alue)37 b(is)f(true)f(unless)h(an)f(in)m(v)-5
b(alid)37 b(option)f(is)g(supplied,)g(an)g(option)h(other)630
-1738 y(than)h Ft(-p)g Fu(or)g Ft(-r)f Fu(is)h(supplied)f(without)i(a)f
+2781 y(than)h Ft(-p)g Fu(or)g Ft(-r)f Fu(is)h(supplied)f(without)i(a)f
Fr(name)44 b Fu(argumen)m(t,)c(an)e(attempt)i(is)e(made)g(to)630
-1848 y(remo)m(v)m(e)32 b(a)e(completion)i(sp)s(eci\014cation)f(for)f(a)
+2891 y(remo)m(v)m(e)32 b(a)e(completion)i(sp)s(eci\014cation)f(for)f(a)
h Fr(name)k Fu(for)30 b(whic)m(h)g(no)g(sp)s(eci\014cation)h(exists,)
-630 1958 y(or)f(an)h(error)f(o)s(ccurs)g(adding)g(a)g(completion)i(sp)s
-(eci\014cation.)150 2129 y Ft(compopt)870 2270 y(compopt)46
+630 3000 y(or)f(an)h(error)f(o)s(ccurs)g(adding)g(a)g(completion)i(sp)s
+(eci\014cation.)150 3190 y Ft(compopt)870 3339 y(compopt)46
b([-o)h Fj(option)p Ft(])f([-DEI])g([+o)h Fj(option)p
-Ft(])e([)p Fj(name)p Ft(])630 2411 y Fu(Mo)s(dify)33
+Ft(])e([)p Fj(name)p Ft(])630 3489 y Fu(Mo)s(dify)33
b(completion)h(options)g(for)f(eac)m(h)h Fr(name)39 b
Fu(according)34 b(to)g(the)f Fr(option)p Fu(s,)i(or)e(for)g(the)630
-2520 y(curren)m(tly-executing)46 b(completion)f(if)f(no)f
+3598 y(curren)m(tly-executing)46 b(completion)f(if)f(no)f
Fr(name)5 b Fu(s)44 b(are)h(supplied.)80 b(If)43 b(no)h
-Fr(option)p Fu(s)h(are)630 2630 y(giv)m(en,)30 b(displa)m(y)e(the)g
+Fr(option)p Fu(s)h(are)630 3708 y(giv)m(en,)30 b(displa)m(y)e(the)g
(completion)h(options)g(for)e(eac)m(h)i Fr(name)34 b
-Fu(or)27 b(the)i(curren)m(t)e(completion.)630 2740 y(The)f(p)s(ossible)
+Fu(or)27 b(the)i(curren)m(t)e(completion.)630 3818 y(The)f(p)s(ossible)
g(v)-5 b(alues)27 b(of)f Fr(option)h Fu(are)g(those)g(v)-5
b(alid)26 b(for)g(the)h Ft(complete)d Fu(builtin)i(describ)s(ed)630
-2849 y(ab)s(o)m(v)m(e.)41 b(The)27 b Ft(-D)f Fu(option)i(indicates)g
+3927 y(ab)s(o)m(v)m(e.)41 b(The)27 b Ft(-D)f Fu(option)i(indicates)g
(that)g(other)f(supplied)f(options)i(should)e(apply)h(to)h(the)630
-2959 y(\\default")33 b(command)f(completion;)i(that)f(is,)g(completion)
-g(attempted)g(on)f(a)g(command)630 3068 y(for)g(whic)m(h)g(no)g
+4037 y(\\default")33 b(command)f(completion;)i(that)f(is,)g(completion)
+g(attempted)g(on)f(a)g(command)630 4146 y(for)g(whic)m(h)g(no)g
(completion)i(has)e(previously)g(b)s(een)g(de\014ned.)45
-b(The)32 b Ft(-E)f Fu(option)i(indicates)630 3178 y(that)23
+b(The)32 b Ft(-E)f Fu(option)i(indicates)630 4256 y(that)23
b(other)f(supplied)e(options)j(should)e(apply)g(to)i(\\empt)m(y")g
-(command)f(completion;)k(that)630 3287 y(is,)36 b(completion)g
+(command)f(completion;)k(that)630 4366 y(is,)36 b(completion)g
(attempted)g(on)e(a)h(blank)g(line.)54 b(The)34 b Ft(-I)g
-Fu(option)h(indicates)g(that)h(other)630 3397 y(supplied)23
+Fu(option)h(indicates)g(that)h(other)630 4475 y(supplied)23
b(options)i(should)f(apply)g(to)i(completion)g(on)e(the)h(initial)h
-(non-assignmen)m(t)f(w)m(ord)630 3507 y(on)37 b(the)f(line,)j(or)e
+(non-assignmen)m(t)f(w)m(ord)630 4585 y(on)37 b(the)f(line,)j(or)e
(after)g(a)g(command)f(delimiter)i(suc)m(h)e(as)h(`)p
Ft(;)p Fu(')g(or)f(`)p Ft(|)p Fu(',)j(whic)m(h)e(is)f(usually)630
-3616 y(command)30 b(name)h(completion.)630 3757 y(If)k(m)m(ultiple)i
+4694 y(command)30 b(name)h(completion.)630 4844 y(If)k(m)m(ultiple)i
(options)f(are)g(supplied,)g(the)g Ft(-D)g Fu(option)g(tak)m(es)h
-(precedence)g(o)m(v)m(er)g Ft(-E)p Fu(,)g(and)630 3867
+(precedence)g(o)m(v)m(er)g Ft(-E)p Fu(,)g(and)630 4954
y(b)s(oth)30 b(tak)m(e)i(precedence)e(o)m(v)m(er)i Ft(-I)630
-4007 y Fu(The)23 b(return)g(v)-5 b(alue)25 b(is)f(true)g(unless)f(an)h
+5103 y Fu(The)23 b(return)g(v)-5 b(alue)25 b(is)f(true)g(unless)f(an)h
(in)m(v)-5 b(alid)24 b(option)h(is)f(supplied,)g(an)g(attempt)h(is)f
-(made)630 4117 y(to)32 b(mo)s(dify)f(the)g(options)h(for)f(a)h
+(made)630 5213 y(to)32 b(mo)s(dify)f(the)g(options)h(for)f(a)h
Fr(name)k Fu(for)31 b(whic)m(h)g(no)g(completion)i(sp)s(eci\014cation)f
-(exists,)630 4226 y(or)e(an)h(output)f(error)g(o)s(ccurs.)150
-4486 y Fs(8.8)68 b(A)44 b(Programmable)j(Completion)f(Example)150
-4645 y Fu(The)37 b(most)g(common)g(w)m(a)m(y)i(to)e(obtain)h
-(additional)g(completion)g(functionalit)m(y)h(b)s(ey)m(ond)d(the)i
-(default)150 4755 y(actions)29 b Ft(complete)d Fu(and)i
-Ft(compgen)e Fu(pro)m(vide)i(is)h(to)f(use)g(a)h(shell)f(function)g
-(and)g(bind)e(it)j(to)g(a)g(particular)150 4864 y(command)h(using)g
-Ft(complete)e(-F)p Fu(.)275 5011 y(The)j(follo)m(wing)j(function)e(pro)
-m(vides)g(completions)i(for)e(the)g Ft(cd)g Fu(builtin.)46
-b(It)32 b(is)h(a)f(reasonably)h(go)s(o)s(d)150 5121 y(example)41
+(exists,)630 5322 y(or)e(an)h(output)f(error)g(o)s(ccurs.)p
+eop end
+%%Page: 150 156
+TeXDict begin 150 155 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(150)150 299 y Fs(8.8)68
+b(A)44 b(Programmable)j(Completion)f(Example)150 458
+y Fu(The)37 b(most)g(common)g(w)m(a)m(y)i(to)e(obtain)h(additional)g
+(completion)g(functionalit)m(y)h(b)s(ey)m(ond)d(the)i(default)150
+568 y(actions)29 b Ft(complete)d Fu(and)i Ft(compgen)e
+Fu(pro)m(vide)i(is)h(to)f(use)g(a)h(shell)f(function)g(and)g(bind)e(it)
+j(to)g(a)g(particular)150 677 y(command)h(using)g Ft(complete)e(-F)p
+Fu(.)275 829 y(The)j(follo)m(wing)j(function)e(pro)m(vides)g
+(completions)i(for)e(the)g Ft(cd)g Fu(builtin.)46 b(It)32
+b(is)h(a)f(reasonably)h(go)s(o)s(d)150 939 y(example)41
b(of)g(what)f(shell)h(functions)f(m)m(ust)g(do)h(when)e(used)h(for)g
-(completion.)73 b(This)39 b(function)h(uses)150 5230
+(completion.)73 b(This)39 b(function)h(uses)150 1049
y(the)32 b(w)m(ord)f(passed)g(as)h Ft($2)f Fu(to)h(determine)g(the)f
(directory)h(name)g(to)g(complete.)46 b(Y)-8 b(ou)32
-b(can)g(also)g(use)g(the)150 5340 y Ft(COMP_WORDS)c Fu(arra)m(y)i(v)-5
+b(can)g(also)g(use)g(the)150 1158 y Ft(COMP_WORDS)c Fu(arra)m(y)i(v)-5
b(ariable;)32 b(the)e(curren)m(t)h(w)m(ord)f(is)g(indexed)g(b)m(y)g
-(the)h Ft(COMP_CWORD)c Fu(v)-5 b(ariable.)p eop end
-%%Page: 144 150
-TeXDict begin 144 149 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(144)275 299 y(The)42
+(the)h Ft(COMP_CWORD)c Fu(v)-5 b(ariable.)275 1310 y(The)42
b(function)h(relies)h(on)e(the)i Ft(complete)c Fu(and)j
Ft(compgen)e Fu(builtins)h(to)i(do)f(m)m(uc)m(h)g(of)g(the)h(w)m(ork,)
-150 408 y(adding)25 b(only)h(the)g(things)g(that)g(the)g(Bash)g
+150 1420 y(adding)25 b(only)h(the)g(things)g(that)g(the)g(Bash)g
Ft(cd)f Fu(do)s(es)g(b)s(ey)m(ond)g(accepting)j(basic)e(directory)g
-(names:)38 b(tilde)150 518 y(expansion)22 b(\(see)h(Section)g(3.5.2)g
-([Tilde)g(Expansion],)g(page)g(24\),)i(searc)m(hing)e(directories)g(in)
-e Fr($CDP)-8 b(A)g(TH)p Fu(,)150 628 y(whic)m(h)21 b(is)h(describ)s(ed)
-e(ab)s(o)m(v)m(e)j(\(see)f(Section)h(4.1)f([Bourne)g(Shell)f
-(Builtins],)j(page)e(44\),)j(and)c(basic)h(supp)s(ort)150
-737 y(for)31 b(the)h Ft(cdable_vars)d Fu(shell)i(option)h(\(see)h
-(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)i(page)f(66\).)46
-b Ft(_comp_)150 847 y(cd)30 b Fu(mo)s(di\014es)g(the)h(v)-5
+(names:)38 b(tilde)150 1529 y(expansion)22 b(\(see)h(Section)g(3.5.2)g
+([Tilde)g(Expansion],)g(page)g(25\),)i(searc)m(hing)e(directories)g(in)
+e Fr($CDP)-8 b(A)g(TH)p Fu(,)150 1639 y(whic)m(h)21 b(is)h(describ)s
+(ed)e(ab)s(o)m(v)m(e)j(\(see)f(Section)h(4.1)f([Bourne)g(Shell)f
+(Builtins],)j(page)e(48\),)j(and)c(basic)h(supp)s(ort)150
+1748 y(for)31 b(the)h Ft(cdable_vars)d Fu(shell)i(option)h(\(see)h
+(Section)f(4.3.2)i([The)d(Shopt)g(Builtin],)i(page)f(71\).)46
+b Ft(_comp_)150 1858 y(cd)30 b Fu(mo)s(di\014es)g(the)h(v)-5
b(alue)31 b(of)g Fr(IFS)36 b Fu(so)31 b(that)g(it)g(con)m(tains)h(only)
f(a)g(newline)g(to)h(accommo)s(date)g(\014le)f(names)150
-956 y(con)m(taining)i(spaces)g(and)e(tabs)h({)g Ft(compgen)e
+1968 y(con)m(taining)i(spaces)g(and)e(tabs)h({)g Ft(compgen)e
Fu(prin)m(ts)h(the)h(p)s(ossible)f(completions)i(it)g(generates)g(one)f
-(p)s(er)150 1066 y(line.)275 1230 y(P)m(ossible)24 b(completions)h(go)g
+(p)s(er)150 2077 y(line.)275 2229 y(P)m(ossible)24 b(completions)h(go)g
(in)m(to)g(the)f Fr(COMPREPL)-8 b(Y)36 b Fu(arra)m(y)24
b(v)-5 b(ariable,)26 b(one)e(completion)i(p)s(er)c(arra)m(y)150
-1340 y(elemen)m(t.)42 b(The)30 b(programmable)g(completion)i(system)e
+2339 y(elemen)m(t.)42 b(The)30 b(programmable)g(completion)i(system)e
(retriev)m(es)h(the)g(completions)g(from)f(there)g(when)150
-1450 y(the)h(function)f(returns.)390 1614 y Ft(#)47 b(A)h(completion)d
-(function)g(for)i(the)g(cd)g(builtin)390 1724 y(#)g(based)g(on)g(the)g
+2448 y(the)h(function)f(returns.)390 2600 y Ft(#)47 b(A)h(completion)d
+(function)g(for)i(the)g(cd)g(builtin)390 2710 y(#)g(based)g(on)g(the)g
(cd)g(completion)e(function)h(from)g(the)h(bash_completion)d(package)
-390 1833 y(_comp_cd\(\))390 1943 y({)581 2052 y(local)i(IFS=$')g
-(\\t\\n')190 b(#)47 b(normalize)f(IFS)581 2162 y(local)g(cur)h
-(_skipdot)f(_cdpath)581 2271 y(local)g(i)i(j)f(k)581
-2491 y(#)g(Tilde)g(expansion,)e(which)h(also)h(expands)f(tilde)g(to)h
-(full)g(pathname)581 2600 y(case)g("$2")f(in)581 2710
-y(\\~*\))190 b(eval)46 b(cur="$2")g(;;)581 2819 y(*\))286
-b(cur=$2)46 b(;;)581 2929 y(esac)581 3148 y(#)h(no)h(cdpath)e(or)h
+390 2819 y(_comp_cd\(\))390 2929 y({)581 3039 y(local)i(IFS=$')g
+(\\t\\n')190 b(#)47 b(normalize)f(IFS)581 3148 y(local)g(cur)h
+(_skipdot)f(_cdpath)581 3258 y(local)g(i)i(j)f(k)581
+3477 y(#)g(Tilde)g(expansion,)e(which)h(also)h(expands)f(tilde)g(to)h
+(full)g(pathname)581 3587 y(case)g("$2")f(in)581 3696
+y(\\~*\))190 b(eval)46 b(cur="$2")g(;;)581 3806 y(*\))286
+b(cur=$2)46 b(;;)581 3915 y(esac)581 4134 y(#)h(no)h(cdpath)e(or)h
(absolute)e(pathname)h(--)h(straight)f(directory)f(completion)581
-3258 y(if)i([[)g(-z)g("${CDPATH:-}")e(]])i(||)g([[)g("$cur")f(==)h
-(@\(./*|../*|/*\))d(]];)j(then)772 3367 y(#)g(compgen)f(prints)g(paths)
+4244 y(if)i([[)g(-z)g("${CDPATH:-}")e(]])i(||)g([[)g("$cur")f(==)h
+(@\(./*|../*|/*\))d(]];)j(then)772 4354 y(#)g(compgen)f(prints)g(paths)
h(one)f(per)h(line;)g(could)f(also)h(use)g(while)f(loop)772
-3477 y(IFS=$'\\n')772 3587 y(COMPREPLY=\()f($\(compgen)g(-d)i(--)g
-("$cur"\))f(\))772 3696 y(IFS=$')g(\\t\\n')581 3806 y(#)h
+4463 y(IFS=$'\\n')772 4573 y(COMPREPLY=\()f($\(compgen)g(-d)i(--)g
+("$cur"\))f(\))772 4682 y(IFS=$')g(\\t\\n')581 4792 y(#)h
(CDPATH+directories)c(in)k(the)g(current)f(directory)f(if)j(not)e(in)i
-(CDPATH)581 3915 y(else)772 4025 y(IFS=$'\\n')772 4134
-y(_skipdot=false)772 4244 y(#)f(preprocess)e(CDPATH)h(to)i(convert)d
-(null)i(directory)e(names)i(to)g(.)772 4354 y(_cdpath=${CDPATH/#:/.:})
-772 4463 y(_cdpath=${_cdpath//::/:.)o(:})772 4573 y
-(_cdpath=${_cdpath/\045:/:.})772 4682 y(for)g(i)g(in)g
-(${_cdpath//:/$'\\n'};)c(do)963 4792 y(if)k([[)g($i)g(-ef)g(.)h(]];)f
-(then)f(_skipdot=true;)e(fi)963 4902 y(k="${#COMPREPLY[@]}")963
-5011 y(for)j(j)g(in)g($\()g(compgen)f(-d)h(--)h("$i/$cur")d(\);)i(do)
-1154 5121 y(COMPREPLY[k++]=${j#$i/})375 b(#)48 b(cut)f(off)f(directory)
-963 5230 y(done)772 5340 y(done)p eop end
-%%Page: 145 151
-TeXDict begin 145 150 bop 150 -116 a Fu(Chapter)30 b(8:)41
-b(Command)29 b(Line)i(Editing)2062 b(145)772 299 y Ft($_skipdot)45
-b(||)i(COMPREPLY+=\()e($\(compgen)g(-d)i(--)g("$cur"\))f(\))772
-408 y(IFS=$')g(\\t\\n')581 518 y(fi)581 737 y(#)h(variable)f(names)g
-(if)h(appropriate)e(shell)i(option)f(set)h(and)f(no)i(completions)581
-847 y(if)f(shopt)f(-q)i(cdable_vars)c(&&)k([[)f(${#COMPREPLY[@]})c(-eq)
-k(0)g(]];)g(then)772 956 y(COMPREPLY=\()e($\(compgen)g(-v)i(--)g
-("$cur"\))f(\))581 1066 y(fi)581 1285 y(return)g(0)390
-1395 y(})275 1529 y Fu(W)-8 b(e)31 b(install)g(the)g(completion)h
-(function)e(using)f(the)i Ft(-F)f Fu(option)h(to)g Ft(complete)p
-Fu(:)390 1664 y Ft(#)47 b(Tell)g(readline)f(to)h(quote)f(appropriate)f
-(and)i(append)f(slashes)g(to)h(directories;)390 1773
-y(#)g(use)g(the)g(bash)g(default)f(completion)f(for)i(other)f
-(arguments)390 1883 y(complete)g(-o)h(filenames)e(-o)i(nospace)f(-o)h
-(bashdefault)e(-F)i(_comp_cd)f(cd)150 2017 y Fu(Since)33
-b(w)m(e'd)g(lik)m(e)i(Bash)e(and)f(Readline)i(to)g(tak)m(e)g(care)g(of)
-f(some)h(of)f(the)g(other)h(details)g(for)e(us,)i(w)m(e)f(use)150
-2127 y(sev)m(eral)43 b(other)g(options)f(to)h(tell)g(Bash)f(and)f
-(Readline)i(what)f(to)g(do.)76 b(The)41 b Ft(-o)30 b(filenames)39
-b Fu(option)150 2237 y(tells)j(Readline)g(that)g(the)f(p)s(ossible)g
-(completions)h(should)f(b)s(e)f(treated)i(as)g(\014lenames,)i(and)d
-(quoted)150 2346 y(appropriately)-8 b(.)53 b(That)34
-b(option)h(will)g(also)g(cause)g(Readline)g(to)g(app)s(end)e(a)h(slash)
-g(to)h(\014lenames)g(it)g(can)150 2456 y(determine)i(are)g(directories)
-h(\(whic)m(h)g(is)f(wh)m(y)f(w)m(e)i(migh)m(t)f(w)m(an)m(t)h(to)g
-(extend)f Ft(_comp_cd)e Fu(to)i(app)s(end)f(a)150 2565
-y(slash)22 b(if)g(w)m(e're)h(using)f(directories)h(found)e(via)i
-Fr(CDP)-8 b(A)g(TH)10 b Fu(:)37 b(Readline)23 b(can't)g(tell)g(those)g
-(completions)h(are)150 2675 y(directories\).)45 b(The)31
-b Ft(-o)f(nospace)f Fu(option)j(tells)g(Readline)g(to)h(not)e(app)s
-(end)f(a)i(space)g(c)m(haracter)h(to)f(the)150 2785 y(directory)c
-(name,)h(in)f(case)h(w)m(e)f(w)m(an)m(t)h(to)f(app)s(end)f(to)h(it.)41
-b(The)27 b Ft(-o)j(bashdefault)25 b Fu(option)j(brings)f(in)h(the)150
-2894 y(rest)h(of)f(the)h Ft(")p Fu(Bash)f(default)p Ft(")h
-Fu(completions)g({)g(p)s(ossible)f(completion)i(that)f(Bash)f(adds)g
-(to)h(the)g(default)150 3004 y(Readline)f(set.)40 b(These)28
+(CDPATH)581 4902 y(else)772 5011 y(IFS=$'\\n')772 5121
+y(_skipdot=false)772 5230 y(#)f(preprocess)e(CDPATH)h(to)i(convert)d
+(null)i(directory)e(names)i(to)g(.)772 5340 y(_cdpath=${CDPATH/#:/.:})p
+eop end
+%%Page: 151 157
+TeXDict begin 151 156 bop 150 -116 a Fu(Chapter)30 b(8:)41
+b(Command)29 b(Line)i(Editing)2062 b(151)772 299 y Ft
+(_cdpath=${_cdpath//::/:.)o(:})772 408 y(_cdpath=${_cdpath/\045:/:.})
+772 518 y(for)47 b(i)g(in)g(${_cdpath//:/$'\\n'};)c(do)963
+628 y(if)k([[)g($i)g(-ef)g(.)h(]];)f(then)f(_skipdot=true;)e(fi)963
+737 y(k="${#COMPREPLY[@]}")963 847 y(for)j(j)g(in)g($\()g(compgen)f(-d)
+h(--)h("$i/$cur")d(\);)i(do)1154 956 y(COMPREPLY[k++]=${j#$i/})375
+b(#)48 b(cut)f(off)f(directory)963 1066 y(done)772 1176
+y(done)772 1285 y($_skipdot)f(||)i(COMPREPLY+=\()e($\(compgen)g(-d)i
+(--)g("$cur"\))f(\))772 1395 y(IFS=$')g(\\t\\n')581 1504
+y(fi)581 1724 y(#)h(variable)f(names)g(if)h(appropriate)e(shell)i
+(option)f(set)h(and)f(no)i(completions)581 1833 y(if)f(shopt)f(-q)i
+(cdable_vars)c(&&)k([[)f(${#COMPREPLY[@]})c(-eq)k(0)g(]];)g(then)772
+1943 y(COMPREPLY=\()e($\(compgen)g(-v)i(--)g("$cur"\))f(\))581
+2052 y(fi)581 2271 y(return)g(0)390 2381 y(})275 2516
+y Fu(W)-8 b(e)31 b(install)g(the)g(completion)h(function)e(using)f(the)
+i Ft(-F)f Fu(option)h(to)g Ft(complete)p Fu(:)390 2650
+y Ft(#)47 b(Tell)g(readline)f(to)h(quote)f(appropriate)f(and)i(append)f
+(slashes)g(to)h(directories;)390 2760 y(#)g(use)g(the)g(bash)g(default)
+f(completion)f(for)i(other)f(arguments)390 2869 y(complete)g(-o)h
+(filenames)e(-o)i(nospace)f(-o)h(bashdefault)e(-F)i(_comp_cd)f(cd)150
+3004 y Fu(Since)33 b(w)m(e'd)g(lik)m(e)i(Bash)e(and)f(Readline)i(to)g
+(tak)m(e)g(care)g(of)f(some)h(of)f(the)g(other)h(details)g(for)e(us,)i
+(w)m(e)f(use)150 3113 y(sev)m(eral)43 b(other)g(options)f(to)h(tell)g
+(Bash)f(and)f(Readline)i(what)f(to)g(do.)76 b(The)41
+b Ft(-o)30 b(filenames)39 b Fu(option)150 3223 y(tells)j(Readline)g
+(that)g(the)f(p)s(ossible)g(completions)h(should)f(b)s(e)f(treated)i
+(as)g(\014lenames,)i(and)d(quoted)150 3333 y(appropriately)-8
+b(.)53 b(That)34 b(option)h(will)g(also)g(cause)g(Readline)g(to)g(app)s
+(end)e(a)h(slash)g(to)h(\014lenames)g(it)g(can)150 3442
+y(determine)i(are)g(directories)h(\(whic)m(h)g(is)f(wh)m(y)f(w)m(e)i
+(migh)m(t)f(w)m(an)m(t)h(to)g(extend)f Ft(_comp_cd)e
+Fu(to)i(app)s(end)f(a)150 3552 y(slash)22 b(if)g(w)m(e're)h(using)f
+(directories)h(found)e(via)i Fr(CDP)-8 b(A)g(TH)10 b
+Fu(:)37 b(Readline)23 b(can't)g(tell)g(those)g(completions)h(are)150
+3661 y(directories\).)45 b(The)31 b Ft(-o)f(nospace)f
+Fu(option)j(tells)g(Readline)g(to)h(not)e(app)s(end)f(a)i(space)g(c)m
+(haracter)h(to)f(the)150 3771 y(directory)c(name,)h(in)f(case)h(w)m(e)f
+(w)m(an)m(t)h(to)f(app)s(end)f(to)h(it.)41 b(The)27 b
+Ft(-o)j(bashdefault)25 b Fu(option)j(brings)f(in)h(the)150
+3880 y(rest)e(of)g(the)g Ft(")p Fu(Bash)g(default)p Ft(")g
+Fu(completions)h({)f(p)s(ossible)f(completions)i(that)g(Bash)f(adds)f
+(to)i(the)f(default)150 3990 y(Readline)i(set.)40 b(These)28
b(include)f(things)g(lik)m(e)i(command)e(name)h(completion,)h(v)-5
-b(ariable)28 b(completion)h(for)150 3113 y(w)m(ords)e(b)s(eginning)h
+b(ariable)28 b(completion)h(for)150 4100 y(w)m(ords)e(b)s(eginning)h
(with)f(`)p Ft($)p Fu(')h(or)g(`)p Ft(${)p Fu(',)h(completions)g(con)m
(taining)g(pathname)f(expansion)g(patterns)g(\(see)150
-3223 y(Section)j(3.5.8)h([Filename)g(Expansion],)e(page)i(33\),)f(and)f
-(so)h(on.)275 3357 y(Once)39 b(installed)i(using)e Ft(complete)p
+4209 y(Section)j(3.5.8)h([Filename)g(Expansion],)e(page)i(35\),)f(and)f
+(so)h(on.)275 4344 y(Once)39 b(installed)i(using)e Ft(complete)p
Fu(,)h Ft(_comp_cd)d Fu(will)j(b)s(e)g(called)g(ev)m(ery)h(time)f(w)m
-(e)g(attempt)h(w)m(ord)150 3467 y(completion)32 b(for)e(a)h
-Ft(cd)e Fu(command.)275 3601 y(Man)m(y)34 b(more)g(examples)g({)g(an)g
+(e)g(attempt)h(w)m(ord)150 4453 y(completion)32 b(for)e(a)h
+Ft(cd)e Fu(command.)275 4588 y(Man)m(y)34 b(more)g(examples)g({)g(an)g
(extensiv)m(e)h(collection)i(of)c(completions)i(for)f(most)g(of)g(the)g
-(common)150 3711 y(GNU,)g(Unix,)h(and)d(Lin)m(ux)h(commands)g({)h(are)g
+(common)150 4697 y(GNU,)g(Unix,)h(and)d(Lin)m(ux)h(commands)g({)h(are)g
(a)m(v)-5 b(ailable)36 b(as)e(part)f(of)h(the)f(bash)p
-2943 3711 28 4 v 39 w(completion)i(pro)5 b(ject.)150
-3821 y(This)33 b(is)h(installed)h(b)m(y)f(default)g(on)g(man)m(y)h
+2943 4697 28 4 v 39 w(completion)i(pro)5 b(ject.)150
+4807 y(This)33 b(is)h(installed)h(b)m(y)f(default)g(on)g(man)m(y)h
(GNU/Lin)m(ux)f(distributions.)51 b(Originally)35 b(written)f(b)m(y)g
-(Ian)150 3930 y(Macdonald,)48 b(the)c(pro)5 b(ject)44
+(Ian)150 4917 y(Macdonald,)48 b(the)c(pro)5 b(ject)44
b(no)m(w)g(liv)m(es)h(at)f Ft(https:)11 b(/)g(/)g(github)g(.)g(com)g(/)
g(sc)o(op)g(/)f(bash)o(-co)o(mple)o(tion)g(/)h Fu(.)150
-4040 y(There)30 b(are)h(p)s(orts)e(for)h(other)h(systems)f(suc)m(h)g
-(as)h(Solaris)g(and)f(Mac)h(OS)f(X.)275 4174 y(An)54
-b(older)h(v)m(ersion)h(of)f(the)g(bash)p 1532 4174 V
+5026 y(There)30 b(are)h(p)s(orts)e(for)h(other)h(systems)f(suc)m(h)g
+(as)h(Solaris)g(and)f(Mac)h(OS)f(X.)275 5161 y(An)54
+b(older)h(v)m(ersion)h(of)f(the)g(bash)p 1532 5161 V
40 w(completion)h(pac)m(k)-5 b(age)57 b(is)e(distributed)f(with)h(bash)
-f(in)h(the)150 4284 y Ft(examples/complete)26 b Fu(sub)s(directory)-8
+f(in)h(the)150 5270 y Ft(examples/complete)26 b Fu(sub)s(directory)-8
b(.)p eop end
-%%Page: 146 152
-TeXDict begin 146 151 bop 3614 -116 a Fu(146)150 299
+%%Page: 152 158
+TeXDict begin 152 157 bop 3614 -116 a Fu(152)150 299
y Fp(9)80 b(Using)53 b(History)g(In)l(teractiv)l(ely)150
554 y Fu(This)42 b(c)m(hapter)h(describ)s(es)f(ho)m(w)g(to)h(use)g(the)
f Fm(gnu)h Fu(History)g(Library)e(in)m(teractiv)m(ely)-8
@@ -18514,7 +19099,7 @@ Fm(gnu)f Fu(Readline)h(Library)f(Man)m(ual.)150 1025
y Fs(9.1)68 b(Bash)45 b(History)h(F)-11 b(acilities)150
1184 y Fu(When)44 b(the)g Ft(-o)30 b(history)42 b Fu(option)i(to)h(the)
f Ft(set)f Fu(builtin)h(is)g(enabled)g(\(see)g(Section)h(4.3.1)h([The)e
-(Set)150 1294 y(Builtin],)32 b(page)g(62\),)h(the)e(shell)h(pro)m
+(Set)150 1294 y(Builtin],)32 b(page)g(67\),)h(the)e(shell)h(pro)m
(vides)f(access)h(to)g(the)f Fr(command)g(history)p Fu(,)h(the)f(list)h
(of)f(commands)150 1404 y(previously)h(t)m(yp)s(ed.)47
b(The)33 b(v)-5 b(alue)33 b(of)f(the)h Ft(HISTSIZE)e
@@ -18541,7 +19126,7 @@ h Ft($HISTSIZE)c Fu(lines)150 2422 y(are)35 b(copied)g(from)g(the)g
(history)f(list)i(to)f(the)g(\014le)g(named)f(b)m(y)h
Ft($HISTFILE)p Fu(.)51 b(If)35 b(the)g Ft(histappend)d
Fu(shell)150 2532 y(option)26 b(is)g(set)g(\(see)h(Section)f(4.2)h
-([Bash)f(Builtins],)h(page)g(51\),)h(the)e(lines)g(are)g(app)s(ended)e
+([Bash)f(Builtins],)h(page)g(55\),)h(the)e(lines)g(are)g(app)s(ended)e
(to)i(the)g(history)150 2641 y(\014le,)36 b(otherwise)f(the)g(history)f
(\014le)h(is)f(o)m(v)m(erwritten.)55 b(If)34 b Ft(HISTFILE)e
Fu(is)j(unset,)g(or)g(if)f(the)h(history)f(\014le)h(is)150
@@ -18570,7 +19155,7 @@ Fu(builtin)i(ma)m(y)h(b)s(e)e(used)g(to)i(displa)m(y)g(or)f(mo)s(dify)f
(commands)g(are)g(a)m(v)-5 b(ailable)33 b(in)e(eac)m(h)150
3911 y(editing)45 b(mo)s(de)g(that)g(pro)m(vide)g(access)h(to)f(the)g
(history)f(list)i(\(see)f(Section)h(8.4.2)g([Commands)e(F)-8
-b(or)150 4020 y(History],)31 b(page)h(128\).)275 4162
+b(or)150 4020 y(History],)31 b(page)h(134\).)275 4162
y(The)47 b(shell)i(allo)m(ws)h(con)m(trol)f(o)m(v)m(er)h(whic)m(h)e
(commands)g(are)h(sa)m(v)m(ed)g(on)f(the)h(history)f(list.)95
b(The)150 4272 y Ft(HISTCONTROL)25 b Fu(and)j Ft(HISTIGNORE)e
@@ -18587,14 +19172,14 @@ b Ft(lithist)e Fu(shell)i(option)h(causes)g(the)f(shell)g(to)150
(newlines)h(instead)g(of)g(semicolons.)68 b(The)39 b
Ft(shopt)e Fu(builtin)i(is)150 4820 y(used)30 b(to)i(set)g(these)g
(options.)43 b(See)32 b(Section)g(4.3.2)h([The)e(Shopt)f(Builtin],)j
-(page)f(66,)g(for)f(a)h(description)150 4929 y(of)f Ft(shopt)p
+(page)f(71,)g(for)f(a)h(description)150 4929 y(of)f Ft(shopt)p
Fu(.)150 5181 y Fs(9.2)68 b(Bash)45 b(History)h(Builtins)150
5340 y Fu(Bash)31 b(pro)m(vides)f(t)m(w)m(o)i(builtin)e(commands)g
(whic)m(h)g(manipulate)g(the)h(history)f(list)h(and)f(history)g
(\014le.)p eop end
-%%Page: 147 153
-TeXDict begin 147 152 bop 150 -116 a Fu(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(147)150
+%%Page: 153 159
+TeXDict begin 153 158 bop 150 -116 a Fu(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(153)150
299 y Ft(fc)870 430 y(fc)47 b([-e)g Fj(ename)p Ft(])f([-lnr])g([)p
Fj(first)p Ft(])g([)p Fj(last)p Ft(])870 540 y(fc)h(-s)g([)p
Fj(pat)p Ft(=)p Fj(rep)p Ft(])f([)p Fj(command)p Ft(])630
@@ -18645,7 +19230,7 @@ Fu(,)h(so)h(that)h(t)m(yping)f(`)p Ft(r)f(cc)p Fu(')630
3061 y(runs)35 b(the)h(last)h(command)f(b)s(eginning)g(with)g
Ft(cc)f Fu(and)h(t)m(yping)g(`)p Ft(r)p Fu(')h(re-executes)h(the)e
(last)630 3170 y(command)30 b(\(see)h(Section)h(6.6)f([Aliases],)h
-(page)g(94\).)150 3324 y Ft(history)870 3455 y(history)46
+(page)g(100\).)150 3324 y Ft(history)870 3455 y(history)46
b([)p Fj(n)p Ft(])870 3565 y(history)g(-c)870 3674 y(history)g(-d)h
Fj(offset)870 3784 y Ft(history)f(-d)h Fj(start)p Ft(-)p
Fj(end)870 3893 y Ft(history)f([-anrw])g([)p Fj(filename)p
@@ -18672,823 +19257,903 @@ Fr(o\013set)p Fu(.)59 b(If)36 b Fr(o\013set)j Fu(is)d(p)s(ositiv)m(e,)j
(it)1110 5340 y(should)32 b(b)s(e)h(sp)s(eci\014ed)f(as)i(it)g(app)s
(ears)e(when)g(the)i(history)f(is)g(displa)m(y)m(ed.)50
b(If)p eop end
-%%Page: 148 154
-TeXDict begin 148 153 bop 150 -116 a Fu(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(148)1110
+%%Page: 154 160
+TeXDict begin 154 159 bop 150 -116 a Fu(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(154)1110
299 y Fr(o\013set)26 b Fu(is)d(negativ)m(e,)k(it)c(is)g(in)m(terpreted)
h(as)f(relativ)m(e)i(to)f(one)f(greater)h(than)f(the)1110
408 y(last)36 b(history)f(p)s(osition,)h(so)f(negativ)m(e)i(indices)e
(coun)m(t)h(bac)m(k)f(from)g(the)g(end)1110 518 y(of)h(the)g(history)-8
b(,)37 b(and)e(an)h(index)f(of)h(`)p Ft(-1)p Fu(')f(refers)g(to)i(the)f
(curren)m(t)f Ft(history)1110 628 y(-d)30 b Fu(command.)630
-785 y Ft(-d)g Fj(start)p Ft(-)p Fj(end)1110 895 y Fu(Delete)23
-b(the)d(history)h(en)m(tries)g(b)s(et)m(w)m(een)g(p)s(ositions)g
-Fr(start)i Fu(and)d Fr(end)p Fu(,)i(inclusiv)m(e.)1110
-1004 y(P)m(ositiv)m(e)41 b(and)c(negativ)m(e)k(v)-5 b(alues)38
-b(for)h Fr(start)h Fu(and)e Fr(end)j Fu(are)e(in)m(terpreted)g(as)1110
-1114 y(describ)s(ed)29 b(ab)s(o)m(v)m(e.)630 1271 y Ft(-a)384
-b Fu(App)s(end)28 b(the)i(new)f(history)g(lines)h(to)h(the)e(history)h
-(\014le.)41 b(These)29 b(are)h(history)1110 1381 y(lines)36
-b(en)m(tered)g(since)f(the)h(b)s(eginning)f(of)g(the)h(curren)m(t)f
-(Bash)h(session,)h(but)1110 1490 y(not)31 b(already)g(app)s(ended)d(to)
-j(the)g(history)f(\014le.)630 1648 y Ft(-n)384 b Fu(App)s(end)32
-b(the)i(history)f(lines)h(not)g(already)g(read)g(from)f(the)h(history)f
-(\014le)h(to)1110 1758 y(the)26 b(curren)m(t)f(history)g(list.)40
-b(These)25 b(are)h(lines)g(app)s(ended)e(to)i(the)f(history)h(\014le)
-1110 1867 y(since)31 b(the)f(b)s(eginning)g(of)g(the)h(curren)m(t)f
-(Bash)h(session.)630 2025 y Ft(-r)384 b Fu(Read)31 b(the)f(history)g
-(\014le)h(and)f(app)s(end)e(its)j(con)m(ten)m(ts)h(to)f(the)g(history)f
-(list.)630 2182 y Ft(-w)384 b Fu(W)-8 b(rite)32 b(out)e(the)h(curren)m
-(t)f(history)g(list)h(to)h(the)e(history)g(\014le.)630
-2339 y Ft(-p)384 b Fu(P)m(erform)31 b(history)f(substitution)h(on)f
-(the)h Fr(arg)8 b Fu(s)31 b(and)f(displa)m(y)h(the)f(result)h(on)1110
+785 y Ft(-d)g Fj(start)p Ft(-)p Fj(end)1110 895 y Fu(Delete)e(the)e
+(range)h(of)f(history)g(en)m(tries)h(b)s(et)m(w)m(een)f(p)s(ositions)g
+Fr(start)j Fu(and)c Fr(end)p Fu(,)1110 1004 y(inclusiv)m(e.)44
+b(P)m(ositiv)m(e)33 b(and)e(negativ)m(e)i(v)-5 b(alues)31
+b(for)g Fr(start)j Fu(and)d Fr(end)j Fu(are)d(in)m(ter-)1110
+1114 y(preted)f(as)h(describ)s(ed)e(ab)s(o)m(v)m(e.)630
+1271 y Ft(-a)384 b Fu(App)s(end)28 b(the)i(new)f(history)g(lines)h(to)h
+(the)e(history)h(\014le.)41 b(These)29 b(are)h(history)1110
+1381 y(lines)36 b(en)m(tered)g(since)f(the)h(b)s(eginning)f(of)g(the)h
+(curren)m(t)f(Bash)h(session,)h(but)1110 1490 y(not)31
+b(already)g(app)s(ended)d(to)j(the)g(history)f(\014le.)630
+1648 y Ft(-n)384 b Fu(App)s(end)32 b(the)i(history)f(lines)h(not)g
+(already)g(read)g(from)f(the)h(history)f(\014le)h(to)1110
+1758 y(the)26 b(curren)m(t)f(history)g(list.)40 b(These)25
+b(are)h(lines)g(app)s(ended)e(to)i(the)f(history)h(\014le)1110
+1867 y(since)31 b(the)f(b)s(eginning)g(of)g(the)h(curren)m(t)f(Bash)h
+(session.)630 2025 y Ft(-r)384 b Fu(Read)31 b(the)f(history)g(\014le)h
+(and)f(app)s(end)e(its)j(con)m(ten)m(ts)h(to)f(the)g(history)f(list.)
+630 2182 y Ft(-w)384 b Fu(W)-8 b(rite)32 b(out)e(the)h(curren)m(t)f
+(history)g(list)h(to)h(the)e(history)g(\014le.)630 2339
+y Ft(-p)384 b Fu(P)m(erform)31 b(history)f(substitution)h(on)f(the)h
+Fr(arg)8 b Fu(s)31 b(and)f(displa)m(y)h(the)f(result)h(on)1110
2449 y(the)d(standard)f(output,)i(without)f(storing)g(the)g(results)g
(in)g(the)g(history)g(list.)630 2606 y Ft(-s)384 b Fu(The)30
b Fr(arg)8 b Fu(s)30 b(are)h(added)f(to)h(the)f(end)g(of)h(the)f
(history)h(list)g(as)f(a)h(single)g(en)m(try)-8 b(.)630
-2764 y(When)26 b(an)m(y)h(of)f(the)g Ft(-w)p Fu(,)h Ft(-r)p
-Fu(,)g Ft(-a)p Fu(,)g(or)f Ft(-n)f Fu(options)i(is)f(used,)h(if)f
-Fr(\014lename)32 b Fu(is)26 b(giv)m(en,)i(then)e(it)h(is)630
-2873 y(used)h(as)g(the)h(history)f(\014le.)40 b(If)28
-b(not,)i(then)e(the)g(v)-5 b(alue)29 b(of)g(the)g Ft(HISTFILE)d
-Fu(v)-5 b(ariable)29 b(is)f(used.)150 3112 y Fs(9.3)68
-b(History)46 b(Expansion)150 3272 y Fu(The)f(History)h(library)e(pro)m
-(vides)i(a)f(history)g(expansion)g(feature)h(that)g(is)f(similar)h(to)g
-(the)f(history)150 3381 y(expansion)g(pro)m(vided)f(b)m(y)h
+2764 y(If)35 b(a)h Fr(\014lename)41 b Fu(argumen)m(t)c(is)e(supplied)g
+(when)g(an)m(y)h(of)g(the)g Ft(-w)p Fu(,)g Ft(-r)p Fu(,)h
+Ft(-a)p Fu(,)g(or)e Ft(-n)h Fu(options)630 2873 y(is)j(used,)i(Bash)e
+(uses)f Fr(\014lename)44 b Fu(as)c(the)f(history)g(\014le.)66
+b(If)39 b(not,)i(then)e(the)g(v)-5 b(alue)40 b(of)f(the)630
+2983 y Ft(HISTFILE)28 b Fu(v)-5 b(ariable)31 b(is)g(used.)630
+3117 y(The)j(return)g(v)-5 b(alue)35 b(is)g(0)g(unless)f(an)h(in)m(v)-5
+b(alid)35 b(option)g(is)g(encoun)m(tered,)h(an)f(error)f(o)s(ccurs)630
+3226 y(while)h(reading)g(or)g(writing)f(the)h(history)g(\014le,)h(an)f
+(in)m(v)-5 b(alid)36 b Fr(o\013set)h Fu(or)e(range)g(is)g(supplied)630
+3336 y(as)c(an)g(argumen)m(t)g(to)h Ft(-d)p Fu(,)e(or)h(the)g(history)g
+(expansion)f(supplied)g(as)h(an)g(argumen)m(t)g(to)h
+Ft(-p)630 3445 y Fu(fails.)150 3684 y Fs(9.3)68 b(History)46
+b(Expansion)150 3844 y Fu(The)f(History)h(library)e(pro)m(vides)i(a)f
+(history)g(expansion)g(feature)h(that)g(is)f(similar)h(to)g(the)f
+(history)150 3953 y(expansion)g(pro)m(vided)f(b)m(y)h
Ft(csh)p Fu(.)83 b(This)44 b(section)i(describ)s(es)e(the)h(syn)m(tax)h
-(used)e(to)i(manipulate)f(the)150 3491 y(history)30 b(information.)275
-3624 y(History)h(expansions)f(in)m(tro)s(duce)g(w)m(ords)g(from)g(the)h
+(used)e(to)i(manipulate)f(the)150 4063 y(history)30 b(information.)275
+4196 y(History)h(expansions)f(in)m(tro)s(duce)g(w)m(ords)g(from)g(the)h
(history)f(list)h(in)m(to)g(the)g(input)f(stream,)h(making)150
-3734 y(it)g(easy)g(to)g(rep)s(eat)g(commands,)f(insert)g(the)h(argumen)
+4306 y(it)g(easy)g(to)g(rep)s(eat)g(commands,)f(insert)g(the)h(argumen)
m(ts)f(to)h(a)g(previous)f(command)g(in)m(to)i(the)e(curren)m(t)150
-3844 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h(previous)g(commands)g
-(quic)m(kly)-8 b(.)275 3977 y(History)24 b(expansion)f(is)h(p)s
+4415 y(input)f(line,)i(or)g(\014x)f(errors)f(in)h(previous)g(commands)g
+(quic)m(kly)-8 b(.)275 4549 y(History)24 b(expansion)f(is)h(p)s
(erformed)e(immediately)j(after)f(a)g(complete)h(line)f(is)g(read,)h(b)
-s(efore)e(the)h(shell)150 4087 y(breaks)32 b(it)i(in)m(to)f(w)m(ords,)g
+s(efore)e(the)h(shell)150 4659 y(breaks)32 b(it)i(in)m(to)f(w)m(ords,)g
(and)f(is)h(p)s(erformed)e(on)h(eac)m(h)i(line)f(individually)-8
-b(.)48 b(Bash)33 b(attempts)g(to)h(inform)150 4196 y(the)d(history)f
+b(.)48 b(Bash)33 b(attempts)g(to)h(inform)150 4768 y(the)d(history)f
(expansion)g(functions)g(ab)s(out)g(quoting)h(still)g(in)f(e\013ect)i
-(from)e(previous)g(lines.)275 4330 y(History)37 b(expansion)f(tak)m(es)
+(from)e(previous)g(lines.)275 4902 y(History)37 b(expansion)f(tak)m(es)
i(place)g(in)e(t)m(w)m(o)i(parts.)59 b(The)36 b(\014rst)g(is)h(to)g
-(determine)g(whic)m(h)f(line)h(from)150 4439 y(the)42
+(determine)g(whic)m(h)f(line)h(from)150 5011 y(the)42
b(history)f(list)h(should)e(b)s(e)h(used)f(during)g(substitution.)74
b(The)40 b(second)i(is)f(to)h(select)h(p)s(ortions)e(of)150
-4549 y(that)31 b(line)g(for)f(inclusion)h(in)m(to)g(the)g(curren)m(t)f
+5121 y(that)31 b(line)g(for)f(inclusion)h(in)m(to)g(the)g(curren)m(t)f
(one.)42 b(The)30 b(line)h(selected)h(from)e(the)h(history)f(is)h
-(called)h(the)150 4659 y Fr(ev)m(en)m(t)p Fu(,)e(and)c(the)i(p)s
+(called)h(the)150 5230 y Fr(ev)m(en)m(t)p Fu(,)e(and)c(the)i(p)s
(ortions)e(of)i(that)f(line)h(that)g(are)f(acted)i(up)s(on)c(are)j
(called)g Fr(w)m(ords)p Fu(.)39 b(V)-8 b(arious)28 b
-Fr(mo)s(di\014ers)150 4768 y Fu(are)33 b(a)m(v)-5 b(ailable)36
+Fr(mo)s(di\014ers)150 5340 y Fu(are)33 b(a)m(v)-5 b(ailable)36
b(to)d(manipulate)h(the)f(selected)h(w)m(ords.)48 b(The)32
-b(line)i(is)f(brok)m(en)f(in)m(to)i(w)m(ords)f(in)f(the)i(same)150
-4878 y(fashion)23 b(that)g(Bash)g(do)s(es,)h(so)f(that)h(sev)m(eral)g
-(w)m(ords)e(surrounded)e(b)m(y)j(quotes)g(are)g(considered)g(one)g(w)m
-(ord.)150 4987 y(History)37 b(expansions)g(are)g(in)m(tro)s(duced)f(b)m
+b(line)i(is)f(brok)m(en)f(in)m(to)i(w)m(ords)f(in)f(the)i(same)p
+eop end
+%%Page: 155 161
+TeXDict begin 155 160 bop 150 -116 a Fu(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(155)150
+299 y(fashion)23 b(that)g(Bash)g(do)s(es,)h(so)f(that)h(sev)m(eral)g(w)
+m(ords)e(surrounded)e(b)m(y)j(quotes)g(are)g(considered)g(one)g(w)m
+(ord.)150 408 y(History)37 b(expansions)g(are)g(in)m(tro)s(duced)f(b)m
(y)h(the)g(app)s(earance)g(of)g(the)g(history)f(expansion)h(c)m
-(haracter,)150 5097 y(whic)m(h)30 b(is)h(`)p Ft(!)p Fu(')f(b)m(y)g
-(default.)275 5230 y(History)c(expansion)g(implemen)m(ts)h(shell-lik)m
+(haracter,)150 518 y(whic)m(h)30 b(is)h(`)p Ft(!)p Fu(')f(b)m(y)g
+(default.)275 655 y(History)c(expansion)g(implemen)m(ts)h(shell-lik)m
(e)h(quoting)f(con)m(v)m(en)m(tions:)40 b(a)27 b(bac)m(kslash)g(can)f
-(b)s(e)g(used)f(to)150 5340 y(remo)m(v)m(e)h(the)e(sp)s(ecial)g
+(b)s(e)g(used)f(to)150 764 y(remo)m(v)m(e)h(the)e(sp)s(ecial)g
(handling)g(for)g(the)g(next)g(c)m(haracter;)k(single)d(quotes)g
-(enclose)g(v)m(erbatim)g(sequences)p eop end
-%%Page: 149 155
-TeXDict begin 149 154 bop 150 -116 a Fu(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(149)150
-299 y(of)29 b(c)m(haracters,)i(and)e(can)g(b)s(e)g(used)f(to)i(inhibit)
-f(history)g(expansion;)g(and)g(c)m(haracters)i(enclosed)e(within)150
-408 y(double)h(quotes)i(ma)m(y)f(b)s(e)f(sub)5 b(ject)31
-b(to)h(history)f(expansion,)g(since)g(bac)m(kslash)g(can)h(escap)s(e)f
-(the)g(history)150 518 y(expansion)e(c)m(haracter,)j(but)d(single)h
-(quotes)g(ma)m(y)h(not,)f(since)g(they)g(are)g(not)f(treated)i(sp)s
-(ecially)f(within)150 628 y(double)g(quotes.)275 765
-y(When)41 b(using)g(the)h(shell,)i(only)e(`)p Ft(\\)p
-Fu(')g(and)e(`)p Ft(')p Fu(')i(ma)m(y)g(b)s(e)f(used)g(to)h(escap)s(e)g
-(the)g(history)f(expansion)150 875 y(c)m(haracter,)e(but)34
-b(the)i(history)g(expansion)f(c)m(haracter)i(is)f(also)g(treated)h(as)e
-(quoted)h(if)g(it)g(immediately)150 984 y(precedes)30
+(enclose)g(v)m(erbatim)g(sequences)150 874 y(of)k(c)m(haracters,)i(and)
+e(can)g(b)s(e)g(used)f(to)i(inhibit)f(history)g(expansion;)g(and)g(c)m
+(haracters)i(enclosed)e(within)150 983 y(double)h(quotes)i(ma)m(y)f(b)s
+(e)f(sub)5 b(ject)31 b(to)h(history)f(expansion,)g(since)g(bac)m
+(kslash)g(can)h(escap)s(e)f(the)g(history)150 1093 y(expansion)e(c)m
+(haracter,)j(but)d(single)h(quotes)g(ma)m(y)h(not,)f(since)g(they)g
+(are)g(not)f(treated)i(sp)s(ecially)f(within)150 1202
+y(double)g(quotes.)275 1339 y(When)41 b(using)g(the)h(shell,)i(only)e
+(`)p Ft(\\)p Fu(')g(and)e(`)p Ft(')p Fu(')i(ma)m(y)g(b)s(e)f(used)g(to)
+h(escap)s(e)g(the)g(history)f(expansion)150 1448 y(c)m(haracter,)e(but)
+34 b(the)i(history)g(expansion)f(c)m(haracter)i(is)f(also)g(treated)h
+(as)e(quoted)h(if)g(it)g(immediately)150 1558 y(precedes)30
b(the)h(closing)g(double)f(quote)h(in)f(a)h(double-quoted)g(string.)275
-1122 y(Sev)m(eral)48 b(shell)g(options)h(settable)g(with)e(the)h
+1695 y(Sev)m(eral)48 b(shell)g(options)h(settable)g(with)e(the)h
Ft(shopt)f Fu(builtin)g(\(see)i(Section)f(4.3.2)i([The)e(Shopt)150
-1232 y(Builtin],)24 b(page)e(66\))h(ma)m(y)e(b)s(e)g(used)g(to)h
+1804 y(Builtin],)24 b(page)e(71\))h(ma)m(y)e(b)s(e)g(used)g(to)h
(tailor)g(the)g(b)s(eha)m(vior)f(of)h(history)f(expansion.)37
-b(If)21 b(the)h Ft(histverify)150 1341 y Fu(shell)35
+b(If)21 b(the)h Ft(histverify)150 1914 y Fu(shell)35
b(option)f(is)h(enabled,)g(and)f(Readline)h(is)f(b)s(eing)g(used,)h
-(history)g(substitutions)e(are)i(not)g(immedi-)150 1451
+(history)g(substitutions)e(are)i(not)g(immedi-)150 2023
y(ately)i(passed)d(to)i(the)g(shell)f(parser.)55 b(Instead,)37
b(the)e(expanded)g(line)g(is)h(reloaded)g(in)m(to)g(the)f(Readline)150
-1561 y(editing)29 b(bu\013er)f(for)h(further)e(mo)s(di\014cation.)41
+2133 y(editing)29 b(bu\013er)f(for)h(further)e(mo)s(di\014cation.)41
b(If)28 b(Readline)h(is)g(b)s(eing)f(used,)h(and)f(the)h
-Ft(histreedit)d Fu(shell)150 1670 y(option)e(is)g(enabled,)h(a)g
+Ft(histreedit)d Fu(shell)150 2242 y(option)e(is)g(enabled,)h(a)g
(failed)f(history)g(expansion)g(will)g(b)s(e)f(reloaded)h(in)m(to)h
-(the)f(Readline)g(editing)h(bu\013er)150 1780 y(for)31
+(the)f(Readline)g(editing)h(bu\013er)150 2352 y(for)31
b(correction.)43 b(The)30 b Ft(-p)g Fu(option)h(to)h(the)f
Ft(history)e Fu(builtin)h(command)h(ma)m(y)g(b)s(e)f(used)g(to)i(see)f
-(what)g(a)150 1889 y(history)25 b(expansion)g(will)g(do)g(b)s(efore)g
+(what)g(a)150 2462 y(history)25 b(expansion)g(will)g(do)g(b)s(efore)g
(using)f(it.)40 b(The)24 b Ft(-s)h Fu(option)g(to)h(the)f
-Ft(history)e Fu(builtin)i(ma)m(y)g(b)s(e)g(used)150 1999
+Ft(history)e Fu(builtin)i(ma)m(y)g(b)s(e)g(used)150 2571
y(to)36 b(add)f(commands)g(to)h(the)g(end)f(of)g(the)h(history)f(list)i
(without)e(actually)i(executing)g(them,)g(so)e(that)150
-2108 y(they)c(are)f(a)m(v)-5 b(ailable)33 b(for)d(subsequen)m(t)g
+2681 y(they)c(are)f(a)m(v)-5 b(ailable)33 b(for)d(subsequen)m(t)g
(recall.)42 b(This)29 b(is)i(most)g(useful)e(in)h(conjunction)h(with)f
-(Readline.)275 2246 y(The)j(shell)h(allo)m(ws)h(con)m(trol)h(of)e(the)g
+(Readline.)275 2817 y(The)j(shell)h(allo)m(ws)h(con)m(trol)h(of)e(the)g
(v)-5 b(arious)34 b(c)m(haracters)h(used)f(b)m(y)f(the)h(history)g
-(expansion)g(mec)m(h-)150 2356 y(anism)h(with)g(the)g
+(expansion)g(mec)m(h-)150 2927 y(anism)h(with)g(the)g
Ft(histchars)d Fu(v)-5 b(ariable,)38 b(as)d(explained)g(ab)s(o)m(v)m(e)
i(\(see)f(Section)f(5.2)i([Bash)e(V)-8 b(ariables],)150
-2465 y(page)32 b(73\).)44 b(The)31 b(shell)g(uses)g(the)g(history)g
+3036 y(page)32 b(78\).)44 b(The)31 b(shell)g(uses)g(the)g(history)g
(commen)m(t)i(c)m(haracter)f(to)g(mark)f(history)g(timestamps)h(when)
-150 2575 y(writing)e(the)h(history)f(\014le.)150 2777
-y Fk(9.3.1)63 b(Ev)m(en)m(t)39 b(Designators)150 2924
+150 3146 y(writing)e(the)h(history)f(\014le.)150 3347
+y Fk(9.3.1)63 b(Ev)m(en)m(t)39 b(Designators)150 3494
y Fu(An)32 b(ev)m(en)m(t)j(designator)e(is)g(a)g(reference)g(to)h(a)f
(command)f(line)h(en)m(try)g(in)g(the)g(history)g(list.)48
-b(Unless)33 b(the)150 3034 y(reference)e(is)f(absolute,)i(ev)m(en)m(ts)
+b(Unless)33 b(the)150 3604 y(reference)e(is)f(absolute,)i(ev)m(en)m(ts)
f(are)g(relativ)m(e)i(to)e(the)f(curren)m(t)g(p)s(osition)h(in)f(the)h
-(history)f(list.)150 3198 y Ft(!)432 b Fu(Start)34 b(a)f(history)h
+(history)f(list.)150 3766 y Ft(!)432 b Fu(Start)34 b(a)f(history)h
(substitution,)g(except)g(when)f(follo)m(w)m(ed)i(b)m(y)e(a)h(space,)h
-(tab,)f(the)g(end)f(of)630 3308 y(the)i(line,)g(`)p Ft(=)p
+(tab,)f(the)g(end)f(of)630 3876 y(the)i(line,)g(`)p Ft(=)p
Fu(')g(or)f(`)p Ft(\()p Fu(')h(\(when)e(the)i Ft(extglob)d
Fu(shell)j(option)f(is)h(enabled)f(using)g(the)g Ft(shopt)630
-3417 y Fu(builtin\).)150 3580 y Ft(!)p Fj(n)384 b Fu(Refer)30
-b(to)i(command)e(line)g Fr(n)p Fu(.)150 3742 y Ft(!-)p
+3985 y Fu(builtin\).)150 4147 y Ft(!)p Fj(n)384 b Fu(Refer)30
+b(to)i(command)e(line)g Fr(n)p Fu(.)150 4308 y Ft(!-)p
Fj(n)336 b Fu(Refer)30 b(to)i(the)e(command)g Fr(n)g
-Fu(lines)h(bac)m(k.)150 3905 y Ft(!!)384 b Fu(Refer)30
+Fu(lines)h(bac)m(k.)150 4469 y Ft(!!)384 b Fu(Refer)30
b(to)i(the)e(previous)g(command.)40 b(This)30 b(is)g(a)h(synon)m(ym)f
-(for)g(`)p Ft(!-1)p Fu('.)150 4067 y Ft(!)p Fj(string)144
+(for)g(`)p Ft(!-1)p Fu('.)150 4631 y Ft(!)p Fj(string)144
b Fu(Refer)25 b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding)g
(the)g(curren)m(t)g(p)s(osition)g(in)g(the)g(history)630
-4177 y(list)31 b(starting)g(with)f Fr(string)p Fu(.)150
-4340 y Ft(!?)p Fj(string)p Ft([?])630 4449 y Fu(Refer)25
+4740 y(list)31 b(starting)g(with)f Fr(string)p Fu(.)150
+4902 y Ft(!?)p Fj(string)p Ft([?])630 5011 y Fu(Refer)25
b(to)h(the)f(most)h(recen)m(t)g(command)f(preceding)g(the)g(curren)m(t)
-g(p)s(osition)g(in)g(the)g(history)630 4559 y(list)32
+g(p)s(osition)g(in)g(the)g(history)630 5121 y(list)32
b(con)m(taining)i Fr(string)p Fu(.)45 b(The)31 b(trailing)i(`)p
Ft(?)p Fu(')f(ma)m(y)g(b)s(e)f(omitted)i(if)f(the)g Fr(string)39
-b Fu(is)32 b(follo)m(w)m(ed)630 4668 y(immediately)f(b)m(y)e(a)h
+b Fu(is)32 b(follo)m(w)m(ed)630 5230 y(immediately)f(b)m(y)e(a)h
(newline.)40 b(If)29 b Fr(string)38 b Fu(is)29 b(missing,)h(the)g
-(string)f(from)g(the)h(most)g(recen)m(t)630 4778 y(searc)m(h)h(is)f
+(string)f(from)g(the)h(most)g(recen)m(t)630 5340 y(searc)m(h)h(is)f
(used;)g(it)h(is)g(an)f(error)g(if)g(there)h(is)f(no)g(previous)g
-(searc)m(h)h(string.)150 4941 y Ft(^)p Fj(string1)p Ft(^)p
-Fj(string2)p Ft(^)630 5050 y Fu(Quic)m(k)h(Substitution.)44
-b(Rep)s(eat)32 b(the)g(last)h(command,)f(replacing)g
-Fr(string1)40 b Fu(with)31 b Fr(string2)p Fu(.)630 5160
-y(Equiv)-5 b(alen)m(t)31 b(to)g Ft(!!:s^)p Fj(string1)p
-Ft(^)p Fj(string2)p Ft(^)p Fu(.)150 5322 y Ft(!#)384
-b Fu(The)30 b(en)m(tire)h(command)f(line)h(t)m(yp)s(ed)f(so)h(far.)p
-eop end
-%%Page: 150 156
-TeXDict begin 150 155 bop 150 -116 a Fu(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(150)150
-299 y Fk(9.3.2)63 b(W)-10 b(ord)41 b(Designators)150
-446 y Fu(W)-8 b(ord)27 b(designators)h(are)g(used)e(to)i(select)h
-(desired)d(w)m(ords)h(from)f(the)i(ev)m(en)m(t.)41 b(A)27
-b(`)p Ft(:)p Fu(')g(separates)h(the)f(ev)m(en)m(t)150
-555 y(sp)s(eci\014cation)38 b(from)e(the)h(w)m(ord)f(designator.)61
+(searc)m(h)h(string.)p eop end
+%%Page: 156 162
+TeXDict begin 156 161 bop 150 -116 a Fu(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(156)150
+299 y Ft(^)p Fj(string1)p Ft(^)p Fj(string2)p Ft(^)630
+408 y Fu(Quic)m(k)32 b(Substitution.)44 b(Rep)s(eat)32
+b(the)g(last)h(command,)f(replacing)g Fr(string1)40 b
+Fu(with)31 b Fr(string2)p Fu(.)630 518 y(Equiv)-5 b(alen)m(t)31
+b(to)g Ft(!!:s^)p Fj(string1)p Ft(^)p Fj(string2)p Ft(^)p
+Fu(.)150 673 y Ft(!#)384 b Fu(The)30 b(en)m(tire)h(command)f(line)h(t)m
+(yp)s(ed)f(so)h(far.)150 867 y Fk(9.3.2)63 b(W)-10 b(ord)41
+b(Designators)150 1014 y Fu(W)-8 b(ord)27 b(designators)h(are)g(used)e
+(to)i(select)h(desired)d(w)m(ords)h(from)f(the)i(ev)m(en)m(t.)41
+b(A)27 b(`)p Ft(:)p Fu(')g(separates)h(the)f(ev)m(en)m(t)150
+1124 y(sp)s(eci\014cation)38 b(from)e(the)h(w)m(ord)f(designator.)61
b(It)37 b(ma)m(y)h(b)s(e)e(omitted)i(if)e(the)h(w)m(ord)g(designator)g
-(b)s(egins)150 665 y(with)30 b(a)g(`)p Ft(^)p Fu(',)g(`)p
+(b)s(egins)150 1233 y(with)30 b(a)g(`)p Ft(^)p Fu(',)g(`)p
Ft($)p Fu(',)g(`)p Ft(*)p Fu(',)h(`)p Ft(-)p Fu(',)f(or)g(`)p
Ft(\045)p Fu('.)41 b(W)-8 b(ords)30 b(are)g(n)m(um)m(b)s(ered)e(from)i
(the)g(b)s(eginning)f(of)h(the)g(line,)g(with)g(the)150
-775 y(\014rst)f(w)m(ord)f(b)s(eing)h(denoted)h(b)m(y)f(0)h(\(zero\).)41
-b(W)-8 b(ords)30 b(are)g(inserted)f(in)m(to)h(the)g(curren)m(t)f(line)g
-(separated)h(b)m(y)150 884 y(single)h(spaces.)275 1019
-y(F)-8 b(or)31 b(example,)150 1179 y Ft(!!)384 b Fu(designates)37
-b(the)f(preceding)g(command.)57 b(When)35 b(y)m(ou)i(t)m(yp)s(e)f
-(this,)h(the)f(preceding)g(com-)630 1289 y(mand)30 b(is)g(rep)s(eated)g
-(in)g(toto.)150 1449 y Ft(!!:$)288 b Fu(designates)23
-b(the)g(last)g(argumen)m(t)g(of)f(the)h(preceding)f(command.)38
-b(This)22 b(ma)m(y)h(b)s(e)e(shortened)630 1558 y(to)31
-b Ft(!$)p Fu(.)150 1718 y Ft(!fi:2)240 b Fu(designates)30
-b(the)g(second)f(argumen)m(t)h(of)f(the)h(most)f(recen)m(t)i(command)e
-(starting)h(with)f(the)630 1828 y(letters)j Ft(fi)p Fu(.)275
-1988 y(Here)e(are)h(the)g(w)m(ord)f(designators:)150
-2148 y Ft(0)g(\(zero\))114 b Fu(The)30 b Ft(0)p Fu(th)g(w)m(ord.)40
-b(F)-8 b(or)31 b(man)m(y)g(applications,)h(this)e(is)g(the)h(command)f
-(w)m(ord.)150 2308 y Fj(n)432 b Fu(The)30 b Fr(n)p Fu(th)g(w)m(ord.)150
-2467 y Ft(^)432 b Fu(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)f(w)m
-(ord)g(1.)150 2627 y Ft($)432 b Fu(The)30 b(last)h(argumen)m(t.)150
-2787 y Ft(\045)432 b Fu(The)40 b(\014rst)h(w)m(ord)f(matc)m(hed)i(b)m
+1343 y(\014rst)f(w)m(ord)f(b)s(eing)h(denoted)h(b)m(y)f(0)h(\(zero\).)
+41 b(W)-8 b(ords)30 b(are)g(inserted)f(in)m(to)h(the)g(curren)m(t)f
+(line)g(separated)h(b)m(y)150 1452 y(single)h(spaces.)275
+1584 y(F)-8 b(or)31 b(example,)150 1739 y Ft(!!)384 b
+Fu(designates)37 b(the)f(preceding)g(command.)57 b(When)35
+b(y)m(ou)i(t)m(yp)s(e)f(this,)h(the)f(preceding)g(com-)630
+1849 y(mand)30 b(is)g(rep)s(eated)g(in)g(toto.)150 2003
+y Ft(!!:$)288 b Fu(designates)23 b(the)g(last)g(argumen)m(t)g(of)f(the)
+h(preceding)f(command.)38 b(This)22 b(ma)m(y)h(b)s(e)e(shortened)630
+2113 y(to)31 b Ft(!$)p Fu(.)150 2267 y Ft(!fi:2)240 b
+Fu(designates)30 b(the)g(second)f(argumen)m(t)h(of)f(the)h(most)f
+(recen)m(t)i(command)e(starting)h(with)f(the)630 2377
+y(letters)j Ft(fi)p Fu(.)275 2531 y(Here)e(are)h(the)g(w)m(ord)f
+(designators:)150 2686 y Ft(0)g(\(zero\))114 b Fu(The)30
+b Ft(0)p Fu(th)g(w)m(ord.)40 b(F)-8 b(or)31 b(man)m(y)g(applications,)h
+(this)e(is)g(the)h(command)f(w)m(ord.)150 2840 y Fj(n)432
+b Fu(The)30 b Fr(n)p Fu(th)g(w)m(ord.)150 2995 y Ft(^)432
+b Fu(The)30 b(\014rst)f(argumen)m(t;)j(that)f(is,)f(w)m(ord)g(1.)150
+3150 y Ft($)432 b Fu(The)30 b(last)h(argumen)m(t.)150
+3304 y Ft(\045)432 b Fu(The)40 b(\014rst)h(w)m(ord)f(matc)m(hed)i(b)m
(y)f(the)g(most)g(recen)m(t)h(`)p Ft(?)p Fj(string)p
Ft(?)p Fu(')d(searc)m(h,)44 b(if)d(the)g(searc)m(h)630
-2897 y(string)30 b(b)s(egins)g(with)g(a)h(c)m(haracter)h(that)f(is)f
-(part)h(of)f(a)h(w)m(ord.)150 3057 y Fj(x)p Ft(-)p Fj(y)336
+3414 y(string)30 b(b)s(egins)g(with)g(a)h(c)m(haracter)h(that)f(is)f
+(part)h(of)f(a)h(w)m(ord.)150 3568 y Fj(x)p Ft(-)p Fj(y)336
b Fu(A)30 b(range)h(of)g(w)m(ords;)f(`)p Ft(-)p Fj(y)p
-Fu(')g(abbreviates)h(`)p Ft(0-)p Fj(y)p Fu('.)150 3216
+Fu(')g(abbreviates)h(`)p Ft(0-)p Fj(y)p Fu('.)150 3723
y Ft(*)432 b Fu(All)28 b(of)g(the)g(w)m(ords,)g(except)h(the)e
Ft(0)p Fu(th.)40 b(This)27 b(is)g(a)h(synon)m(ym)f(for)h(`)p
Ft(1-$)p Fu('.)39 b(It)28 b(is)g(not)g(an)f(error)630
-3326 y(to)j(use)g(`)p Ft(*)p Fu(')f(if)h(there)g(is)g(just)f(one)h(w)m
+3832 y(to)j(use)g(`)p Ft(*)p Fu(')f(if)h(there)g(is)g(just)f(one)h(w)m
(ord)f(in)g(the)h(ev)m(en)m(t;)i(the)d(empt)m(y)i(string)e(is)h
-(returned)e(in)630 3436 y(that)j(case.)150 3595 y Fj(x)p
+(returned)e(in)630 3942 y(that)j(case.)150 4097 y Fj(x)p
Ft(*)384 b Fu(Abbreviates)31 b(`)p Fj(x)p Ft(-$)p Fu(')150
-3755 y Fj(x)p Ft(-)384 b Fu(Abbreviates)27 b(`)p Fj(x)p
+4251 y Fj(x)p Ft(-)384 b Fu(Abbreviates)27 b(`)p Fj(x)p
Ft(-$)p Fu(')g(lik)m(e)h(`)p Fj(x)p Ft(*)p Fu(',)g(but)e(omits)i(the)f
(last)h(w)m(ord.)39 b(If)27 b(`)p Ft(x)p Fu(')g(is)g(missing,)g(it)h
-(defaults)630 3865 y(to)j(0.)275 4025 y(If)i(a)h(w)m(ord)g(designator)g
+(defaults)630 4361 y(to)j(0.)275 4515 y(If)i(a)h(w)m(ord)g(designator)g
(is)g(supplied)f(without)h(an)g(ev)m(en)m(t)h(sp)s(eci\014cation,)h
-(the)e(previous)f(command)150 4135 y(is)d(used)g(as)h(the)f(ev)m(en)m
-(t.)150 4334 y Fk(9.3.3)63 b(Mo)s(di\014ers)150 4481
+(the)e(previous)f(command)150 4625 y(is)d(used)g(as)h(the)f(ev)m(en)m
+(t.)150 4819 y Fk(9.3.3)63 b(Mo)s(di\014ers)150 4966
y Fu(After)29 b(the)g(optional)g(w)m(ord)g(designator,)g(y)m(ou)g(can)g
(add)f(a)h(sequence)g(of)g(one)g(or)f(more)h(of)g(the)f(follo)m(wing)
-150 4591 y(mo)s(di\014ers,)33 b(eac)m(h)h(preceded)f(b)m(y)g(a)h(`)p
+150 5076 y(mo)s(di\014ers,)33 b(eac)m(h)h(preceded)f(b)m(y)g(a)h(`)p
Ft(:)p Fu('.)50 b(These)33 b(mo)s(dify)-8 b(,)33 b(or)h(edit,)g(the)g
-(w)m(ord)f(or)g(w)m(ords)g(selected)h(from)150 4700 y(the)d(history)f
-(ev)m(en)m(t.)150 4860 y Ft(h)432 b Fu(Remo)m(v)m(e)32
+(w)m(ord)f(or)g(w)m(ords)g(selected)h(from)150 5185 y(the)d(history)f
+(ev)m(en)m(t.)150 5340 y Ft(h)432 b Fu(Remo)m(v)m(e)32
b(a)f(trailing)g(pathname)g(comp)s(onen)m(t,)g(lea)m(ving)h(only)e(the)
-h(head.)150 5020 y Ft(t)432 b Fu(Remo)m(v)m(e)32 b(all)f(leading)h
-(pathname)e(comp)s(onen)m(ts,)h(lea)m(ving)h(the)e(tail.)150
-5180 y Ft(r)432 b Fu(Remo)m(v)m(e)32 b(a)f(trailing)g(su\016x)f(of)g
-(the)h(form)f(`)p Ft(.)p Fj(suffix)p Fu(',)f(lea)m(ving)j(the)f
-(basename.)150 5340 y Ft(e)432 b Fu(Remo)m(v)m(e)32 b(all)f(but)f(the)h
-(trailing)g(su\016x.)p eop end
-%%Page: 151 157
-TeXDict begin 151 156 bop 150 -116 a Fu(Chapter)30 b(9:)41
-b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(151)150
-299 y Ft(p)432 b Fu(Prin)m(t)30 b(the)h(new)f(command)g(but)g(do)g(not)
-g(execute)i(it.)150 458 y Ft(q)432 b Fu(Quote)31 b(the)f(substituted)g
-(w)m(ords,)g(escaping)h(further)e(substitutions.)150
-618 y Ft(x)432 b Fu(Quote)32 b(the)f(substituted)g(w)m(ords)f(as)i
-(with)f(`)p Ft(q)p Fu(',)h(but)e(break)h(in)m(to)i(w)m(ords)d(at)i
-(spaces,)h(tabs,)630 727 y(and)38 b(newlines.)66 b(The)39
-b(`)p Ft(q)p Fu(')g(and)f(`)p Ft(x)p Fu(')h(mo)s(di\014ers)f(are)h(m)m
-(utually)g(exclusiv)m(e;)45 b(the)39 b(last)h(one)630
-837 y(supplied)29 b(is)i(used.)150 996 y Ft(s/)p Fj(old)p
-Ft(/)p Fj(new)p Ft(/)630 1106 y Fu(Substitute)g Fr(new)39
+h(head.)p eop end
+%%Page: 157 163
+TeXDict begin 157 162 bop 150 -116 a Fu(Chapter)30 b(9:)41
+b(Using)30 b(History)h(In)m(teractiv)m(ely)1925 b(157)150
+299 y Ft(t)432 b Fu(Remo)m(v)m(e)32 b(all)f(leading)h(pathname)e(comp)s
+(onen)m(ts,)h(lea)m(ving)h(the)e(tail.)150 458 y Ft(r)432
+b Fu(Remo)m(v)m(e)32 b(a)f(trailing)g(su\016x)f(of)g(the)h(form)f(`)p
+Ft(.)p Fj(suffix)p Fu(',)f(lea)m(ving)j(the)f(basename.)150
+618 y Ft(e)432 b Fu(Remo)m(v)m(e)32 b(all)f(but)f(the)h(trailing)g
+(su\016x.)150 777 y Ft(p)432 b Fu(Prin)m(t)30 b(the)h(new)f(command)g
+(but)g(do)g(not)g(execute)i(it.)150 936 y Ft(q)432 b
+Fu(Quote)31 b(the)f(substituted)g(w)m(ords,)g(escaping)h(further)e
+(substitutions.)150 1096 y Ft(x)432 b Fu(Quote)32 b(the)f(substituted)g
+(w)m(ords)f(as)i(with)f(`)p Ft(q)p Fu(',)h(but)e(break)h(in)m(to)i(w)m
+(ords)d(at)i(spaces,)h(tabs,)630 1205 y(and)38 b(newlines.)66
+b(The)39 b(`)p Ft(q)p Fu(')g(and)f(`)p Ft(x)p Fu(')h(mo)s(di\014ers)f
+(are)h(m)m(utually)g(exclusiv)m(e;)45 b(the)39 b(last)h(one)630
+1315 y(supplied)29 b(is)i(used.)150 1474 y Ft(s/)p Fj(old)p
+Ft(/)p Fj(new)p Ft(/)630 1584 y Fu(Substitute)g Fr(new)39
b Fu(for)32 b(the)g(\014rst)f(o)s(ccurrence)h(of)f Fr(old)36
b Fu(in)31 b(the)h(ev)m(en)m(t)h(line.)46 b(An)m(y)31
-b(c)m(haracter)630 1215 y(ma)m(y)k(b)s(e)e(used)h(as)g(the)h(delimiter)
+b(c)m(haracter)630 1694 y(ma)m(y)k(b)s(e)e(used)h(as)g(the)h(delimiter)
g(in)f(place)h(of)f(`)p Ft(/)p Fu('.)53 b(The)33 b(delimiter)i(ma)m(y)g
-(b)s(e)f(quoted)g(in)630 1325 y Fr(old)40 b Fu(and)c
+(b)s(e)f(quoted)g(in)630 1803 y Fr(old)40 b Fu(and)c
Fr(new)44 b Fu(with)36 b(a)h(single)g(bac)m(kslash.)60
b(If)36 b(`)p Ft(&)p Fu(')h(app)s(ears)e(in)i Fr(new)p
-Fu(,)g(it)h(is)e(replaced)h(b)m(y)630 1435 y Fr(old)p
+Fu(,)g(it)h(is)e(replaced)h(b)m(y)630 1913 y Fr(old)p
Fu(.)k(A)31 b(single)g(bac)m(kslash)g(will)g(quote)g(the)g(`)p
Ft(&)p Fu('.)41 b(If)31 b Fr(old)j Fu(is)c(n)m(ull,)h(it)g(is)g(set)g
-(to)g(the)g(last)g Fr(old)630 1544 y Fu(substituted,)j(or,)g(if)f(no)g
+(to)g(the)g(last)g Fr(old)630 2022 y Fu(substituted,)j(or,)g(if)f(no)g
(previous)g(history)g(substitutions)g(to)s(ok)h(place,)h(the)e(last)h
-Fr(string)630 1654 y Fu(in)j(a)g(!?)p Fr(string)8 b Ft([?])37
-b Fu(searc)m(h.)61 b(If)37 b Fr(new)45 b Fu(is)37 b(is)g(n)m(ull,)i
-(eac)m(h)f(matc)m(hing)h Fr(old)h Fu(is)e(deleted.)61
-b(The)630 1763 y(\014nal)30 b(delimiter)h(is)g(optional)g(if)f(it)h(is)
-g(the)f(last)i(c)m(haracter)f(on)g(the)f(input)g(line.)150
-1923 y Ft(&)432 b Fu(Rep)s(eat)31 b(the)f(previous)g(substitution.)150
-2082 y Ft(g)150 2192 y(a)432 b Fu(Cause)38 b(c)m(hanges)i(to)f(b)s(e)f
+Fr(string)630 2132 y Fu(in)d(a)g(!?)p Fr(string)8 b Ft([?])30
+b Fu(searc)m(h.)44 b(If)31 b Fr(new)38 b Fu(is)31 b(n)m(ull,)h(eac)m(h)
+g(matc)m(hing)g Fr(old)j Fu(is)c(deleted.)44 b(The)30
+b(\014nal)630 2242 y(delimiter)h(is)g(optional)g(if)f(it)h(is)g(the)f
+(last)h(c)m(haracter)h(on)f(the)f(input)g(line.)150 2401
+y Ft(&)432 b Fu(Rep)s(eat)31 b(the)f(previous)g(substitution.)150
+2560 y Ft(g)150 2670 y(a)432 b Fu(Cause)38 b(c)m(hanges)i(to)f(b)s(e)f
(applied)h(o)m(v)m(er)h(the)f(en)m(tire)g(ev)m(en)m(t)h(line.)66
-b(Used)39 b(in)f(conjunction)630 2301 y(with)30 b(`)p
+b(Used)39 b(in)f(conjunction)630 2780 y(with)30 b(`)p
Ft(s)p Fu(',)h(as)f(in)h Ft(gs/)p Fj(old)p Ft(/)p Fj(new)p
-Ft(/)p Fu(,)c(or)j(with)h(`)p Ft(&)p Fu('.)150 2461 y
+Ft(/)p Fu(,)c(or)j(with)h(`)p Ft(&)p Fu('.)150 2939 y
Ft(G)432 b Fu(Apply)30 b(the)g(follo)m(wing)i(`)p Ft(s)p
Fu(')f(or)f(`)p Ft(&)p Fu(')h(mo)s(di\014er)e(once)i(to)g(eac)m(h)h(w)m
(ord)e(in)g(the)g(ev)m(en)m(t.)p eop end
-%%Page: 152 158
-TeXDict begin 152 157 bop 3614 -116 a Fu(152)150 299
-y Fp(10)80 b(Installing)52 b(Bash)150 534 y Fu(This)31
+%%Page: 158 164
+TeXDict begin 158 163 bop 3614 -116 a Fu(158)150 299
+y Fp(10)80 b(Installing)52 b(Bash)150 539 y Fu(This)31
b(c)m(hapter)h(pro)m(vides)g(basic)g(instructions)f(for)g(installing)i
(Bash)f(on)f(the)h(v)-5 b(arious)31 b(supp)s(orted)f(plat-)150
-643 y(forms.)40 b(The)28 b(distribution)h(supp)s(orts)e(the)j
+648 y(forms.)40 b(The)28 b(distribution)h(supp)s(orts)e(the)j
Fm(gnu)f Fu(op)s(erating)h(systems,)f(nearly)h(ev)m(ery)g(v)m(ersion)f
-(of)h(Unix,)150 753 y(and)d(sev)m(eral)j(non-Unix)d(systems)h(suc)m(h)g
+(of)h(Unix,)150 758 y(and)d(sev)m(eral)j(non-Unix)d(systems)h(suc)m(h)g
(as)g(BeOS)g(and)f(In)m(terix.)40 b(Other)28 b(indep)s(enden)m(t)e(p)s
-(orts)h(exist)i(for)150 862 y Fm(ms-dos)p Fu(,)h Fm(os/2)p
-Fu(,)g(and)g(Windo)m(ws)g(platforms.)150 1103 y Fs(10.1)68
-b(Basic)45 b(Installation)150 1263 y Fu(These)30 b(are)h(installation)h
-(instructions)e(for)h(Bash.)275 1398 y(The)e(simplest)i(w)m(a)m(y)g(to)
-g(compile)h(Bash)e(is:)199 1532 y(1.)61 b Ft(cd)38 b
+(orts)h(exist)i(for)150 867 y Fm(ms-dos)p Fu(,)h Fm(os/2)p
+Fu(,)g(and)g(Windo)m(ws)g(platforms.)150 1111 y Fs(10.1)68
+b(Basic)45 b(Installation)150 1270 y Fu(These)30 b(are)h(installation)h
+(instructions)e(for)h(Bash.)275 1407 y(The)e(simplest)i(w)m(a)m(y)g(to)
+g(compile)h(Bash)e(is:)199 1543 y(1.)61 b Ft(cd)38 b
Fu(to)h(the)f(directory)h(con)m(taining)h(the)f(source)f(co)s(de)h(and)
f(t)m(yp)s(e)g(`)p Ft(./configure)p Fu(')e(to)j(con\014gure)330
-1642 y(Bash)c(for)f(y)m(our)h(system.)54 b(If)34 b(y)m(ou're)h(using)f
+1653 y(Bash)c(for)f(y)m(our)h(system.)54 b(If)34 b(y)m(ou're)h(using)f
Ft(csh)g Fu(on)g(an)h(old)g(v)m(ersion)g(of)g(System)f(V,)h(y)m(ou)g
-(migh)m(t)330 1751 y(need)21 b(to)g(t)m(yp)s(e)g(`)p
+(migh)m(t)330 1762 y(need)21 b(to)g(t)m(yp)s(e)g(`)p
Ft(sh)30 b(./configure)p Fu(')18 b(instead)j(to)g(prev)m(en)m(t)h
Ft(csh)e Fu(from)g(trying)h(to)g(execute)h Ft(configure)330
-1861 y Fu(itself.)330 1996 y(Running)30 b Ft(configure)f
+1872 y Fu(itself.)330 2007 y(Running)30 b Ft(configure)f
Fu(tak)m(es)k(some)e(time.)45 b(While)32 b(running,)e(it)i(prin)m(ts)f
-(messages)h(telling)h(whic)m(h)330 2105 y(features)e(it)g(is)f(c)m(hec)
-m(king)i(for.)199 2240 y(2.)61 b(T)m(yp)s(e)30 b(`)p
+(messages)h(telling)h(whic)m(h)330 2117 y(features)e(it)g(is)f(c)m(hec)
+m(king)i(for.)199 2252 y(2.)61 b(T)m(yp)s(e)30 b(`)p
Ft(make)p Fu(')g(to)h(compile)g(Bash)g(and)e(build)h(the)g
-Ft(bashbug)f Fu(bug)g(rep)s(orting)h(script.)199 2374
+Ft(bashbug)f Fu(bug)g(rep)s(orting)h(script.)199 2388
y(3.)61 b(Optionally)-8 b(,)32 b(t)m(yp)s(e)e(`)p Ft(make)g(tests)p
-Fu(')f(to)i(run)e(the)h(Bash)h(test)g(suite.)199 2509
-y(4.)61 b(T)m(yp)s(e)36 b(`)p Ft(make)29 b(install)p
-Fu(')35 b(to)i(install)h Ft(bash)d Fu(and)h Ft(bashbug)p
-Fu(.)57 b(This)35 b(will)i(also)h(install)f(the)g(man)m(ual)330
-2619 y(pages)31 b(and)f(Info)g(\014le.)275 2778 y(The)20
-b Ft(configure)f Fu(shell)i(script)g(attempts)h(to)g(guess)f(correct)i
-(v)-5 b(alues)21 b(for)g(v)-5 b(arious)21 b(system-dep)s(enden)m(t)150
-2888 y(v)-5 b(ariables)31 b(used)e(during)g(compilation.)42
-b(It)31 b(uses)e(those)i(v)-5 b(alues)30 b(to)h(create)h(a)e
-Ft(Makefile)e Fu(in)i(eac)m(h)i(direc-)150 2998 y(tory)k(of)g(the)g
-(pac)m(k)-5 b(age)38 b(\(the)e(top)g(directory)-8 b(,)38
-b(the)e Ft(builtins)p Fu(,)f Ft(doc)p Fu(,)i(and)e Ft(support)e
-Fu(directories,)39 b(eac)m(h)150 3107 y(directory)29
-b(under)d Ft(lib)p Fu(,)j(and)e(sev)m(eral)j(others\).)40
-b(It)29 b(also)g(creates)h(a)e Ft(config.h)e Fu(\014le)j(con)m(taining)
-g(system-)150 3217 y(dep)s(enden)m(t)e(de\014nitions.)40
-b(Finally)-8 b(,)31 b(it)d(creates)i(a)f(shell)g(script)f(named)g
-Ft(config.status)d Fu(that)k(y)m(ou)g(can)150 3326 y(run)h(in)h(the)h
-(future)f(to)h(recreate)h(the)f(curren)m(t)f(con\014guration,)i(a)f
-(\014le)f Ft(config.cache)e Fu(that)j(sa)m(v)m(es)h(the)150
-3436 y(results)39 b(of)g(its)h(tests)g(to)g(sp)s(eed)e(up)g
-(recon\014guring,)j(and)e(a)g(\014le)g Ft(config.log)e
-Fu(con)m(taining)j(compiler)150 3545 y(output)30 b(\(useful)h(mainly)g
-(for)f(debugging)h Ft(configure)p Fu(\).)40 b(If)30 b(at)h(some)h(p)s
-(oin)m(t)e Ft(config.cache)e Fu(con)m(tains)150 3655
-y(results)i(y)m(ou)h(don't)f(w)m(an)m(t)h(to)h(k)m(eep,)f(y)m(ou)g(ma)m
-(y)g(remo)m(v)m(e)g(or)g(edit)g(it.)275 3790 y(T)-8 b(o)37
-b(\014nd)f(out)i(more)f(ab)s(out)h(the)f(options)h(and)f(argumen)m(ts)g
-(that)h(the)g Ft(configure)d Fu(script)i(under-)150 3899
-y(stands,)30 b(t)m(yp)s(e)390 4034 y Ft(bash-4.2$)45
-b(./configure)g(--help)150 4169 y Fu(at)31 b(the)g(Bash)f(prompt)g(in)g
-(y)m(our)g(Bash)h(source)f(directory)-8 b(.)275 4303
-y(If)34 b(y)m(ou)h(w)m(an)m(t)g(to)g(build)f(Bash)g(in)h(a)g(directory)
-g(separate)g(from)f(the)h(source)g(directory)g({)g(to)g(build)150
-4413 y(for)30 b(m)m(ultiple)i(arc)m(hitectures,)g(for)e(example)h({)g
-(just)f(use)h(the)f(full)h(path)f(to)h(the)g(con\014gure)f(script.)41
-b(The)150 4523 y(follo)m(wing)24 b(commands)f(will)g(build)f(bash)g(in)
-g(a)h(directory)h(under)d Ft(/usr/local/build)d Fu(from)23
-b(the)g(source)150 4632 y(co)s(de)31 b(in)f Ft(/usr/local/src/bash-4.4)
-o Fu(:)390 4767 y Ft(mkdir)46 b(/usr/local/build/bash-4.4)390
-4877 y(cd)h(/usr/local/build/bash-4.4)390 4986 y(bash)g
-(/usr/local/src/bash-4.4)o(/con)o(fig)o(ure)390 5096
-y(make)275 5230 y Fu(See)27 b(Section)h(10.3)g([Compiling)g(F)-8
-b(or)27 b(Multiple)h(Arc)m(hitectures],)i(page)d(153,)j(for)c(more)i
-(information)150 5340 y(ab)s(out)i(building)g(in)g(a)g(directory)h
-(separate)h(from)e(the)g(source.)p eop end
-%%Page: 153 159
-TeXDict begin 153 158 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(153)275 299 y(If)53 b(y)m(ou)h(need)f(to)
-i(do)e(un)m(usual)g(things)g(to)i(compile)g(Bash,)k(please)c(try)e(to)i
-(\014gure)e(out)h(ho)m(w)150 408 y Ft(configure)47 b
-Fu(could)j(c)m(hec)m(k)h(whether)e(or)g(not)h(to)h(do)e(them,)55
-b(and)49 b(mail)h(di\013s)f(or)h(instructions)f(to)150
-518 y Ft(bash-maintainers@gnu.org)24 b Fu(so)30 b(they)h(can)g(b)s(e)e
-(considered)i(for)f(the)g(next)h(release.)275 658 y(The)e(\014le)g
-Ft(configure.ac)d Fu(is)k(used)e(to)j(create)g Ft(configure)c
-Fu(b)m(y)i(a)h(program)f(called)i(Auto)s(conf.)40 b(Y)-8
-b(ou)150 768 y(only)34 b(need)g Ft(configure.ac)d Fu(if)i(y)m(ou)i(w)m
-(an)m(t)g(to)f(c)m(hange)i(it)e(or)g(regenerate)i Ft(configure)31
-b Fu(using)j(a)g(new)m(er)150 878 y(v)m(ersion)25 b(of)f(Auto)s(conf.)
-39 b(If)24 b(y)m(ou)h(do)f(this,)i(mak)m(e)f(sure)f(y)m(ou)h(are)f
-(using)g(Auto)s(conf)h(v)m(ersion)f(2.50)i(or)f(new)m(er.)275
-1018 y(Y)-8 b(ou)29 b(can)f(remo)m(v)m(e)i(the)f(program)g(binaries)f
-(and)g(ob)5 b(ject)29 b(\014les)g(from)f(the)h(source)f(co)s(de)h
-(directory)g(b)m(y)150 1127 y(t)m(yping)j(`)p Ft(make)d(clean)p
-Fu('.)42 b(T)-8 b(o)32 b(also)g(remo)m(v)m(e)g(the)g(\014les)f(that)g
+Fu(')f(to)i(run)e(the)h(Bash)h(test)g(suite.)199 2523
+y(4.)61 b(T)m(yp)s(e)42 b(`)p Ft(make)30 b(install)p
+Fu(')41 b(to)i(install)h Ft(bash)d Fu(and)i Ft(bashbug)p
+Fu(.)76 b(This)42 b(will)h(also)g(install)h(the)f(man-)330
+2633 y(ual)30 b(pages)g(and)g(Info)f(\014le,)h(message)h(translation)g
+(\014les,)f(some)g(supplemen)m(tal)h(do)s(cumen)m(tation,)g(a)330
+2742 y(n)m(um)m(b)s(er)c(of)h(example)h(loadable)g(builtin)f(commands,)
+g(and)g(a)g(set)h(of)f(header)g(\014les)g(for)g(dev)m(eloping)330
+2852 y(loadable)36 b(builtins.)55 b(Y)-8 b(ou)36 b(ma)m(y)f(need)g
+(additional)h(privileges)g(to)g(install)g Ft(bash)e Fu(to)i(y)m(our)f
+(desired)330 2962 y(destination,)f(so)f(`)p Ft(sudo)d(make)f(install)p
+Fu(')i(migh)m(t)i(b)s(e)f(required.)47 b(More)33 b(information)g(ab)s
+(out)f(con-)330 3071 y(trolling)c(the)g(lo)s(cations)g(where)f
+Ft(bash)f Fu(and)h(other)g(\014les)g(are)h(installed)g(is)f(b)s(elo)m
+(w)g(\(see)h(Section)g(10.4)330 3181 y([Installation)k(Names],)g(page)f
+(160\).)275 3343 y(The)20 b Ft(configure)f Fu(shell)i(script)g
+(attempts)h(to)g(guess)f(correct)i(v)-5 b(alues)21 b(for)g(v)-5
+b(arious)21 b(system-dep)s(enden)m(t)150 3453 y(v)-5
+b(ariables)38 b(used)f(during)f(compilation.)64 b(It)37
+b(uses)g(those)h(v)-5 b(alues)38 b(to)g(create)h(a)f
+Ft(Makefile)d Fu(in)i(eac)m(h)i(di-)150 3562 y(rectory)32
+b(of)f(the)h(pac)m(k)-5 b(age)33 b(\(the)f(top)f(directory)-8
+b(,)33 b(the)e Ft(builtins)p Fu(,)f Ft(doc)p Fu(,)h Ft(po)p
+Fu(,)g(and)f Ft(support)g Fu(directories,)150 3672 y(eac)m(h)38
+b(directory)g(under)d Ft(lib)p Fu(,)j(and)f(sev)m(eral)h(others\).)61
+b(It)38 b(also)g(creates)g(a)f Ft(config.h)e Fu(\014le)i(con)m(taining)
+150 3781 y(system-dep)s(enden)m(t)31 b(de\014nitions.)44
+b(Finally)-8 b(,)34 b(it)e(creates)h(a)f(shell)g(script)f(named)g
+Ft(config.status)d Fu(that)150 3891 y(y)m(ou)35 b(can)h(run)d(in)i(the)
+g(future)f(to)i(recreate)g(the)g(curren)m(t)e(con\014guration,)j(a)f
+(\014le)f Ft(config.cache)c Fu(that)150 4001 y(sa)m(v)m(es)39
+b(the)e(results)g(of)g(its)h(tests)g(to)g(sp)s(eed)e(up)h
+(recon\014guring,)h(and)f(a)h(\014le)f Ft(config.log)d
+Fu(con)m(taining)150 4110 y(compiler)c(output)g(\(useful)f(mainly)h
+(for)f(debugging)h Ft(configure)p Fu(\).)38 b(If)29 b(at)i(some)f(p)s
+(oin)m(t)f Ft(config.cache)150 4220 y Fu(con)m(tains)j(results)e(y)m
+(ou)g(don't)h(w)m(an)m(t)g(to)g(k)m(eep,)g(y)m(ou)g(ma)m(y)g(remo)m(v)m
+(e)h(or)e(edit)h(it.)275 4356 y(T)-8 b(o)37 b(\014nd)f(out)i(more)f(ab)
+s(out)h(the)f(options)h(and)f(argumen)m(ts)g(that)h(the)g
+Ft(configure)d Fu(script)i(under-)150 4466 y(stands,)30
+b(t)m(yp)s(e)390 4602 y Ft(bash-4.2$)45 b(./configure)g(--help)150
+4738 y Fu(at)31 b(the)g(Bash)f(prompt)g(in)g(y)m(our)g(Bash)h(source)f
+(directory)-8 b(.)275 4875 y(If)34 b(y)m(ou)h(w)m(an)m(t)g(to)g(build)f
+(Bash)g(in)h(a)g(directory)g(separate)g(from)f(the)h(source)g
+(directory)g({)g(to)g(build)150 4984 y(for)30 b(m)m(ultiple)i(arc)m
+(hitectures,)g(for)e(example)h({)g(just)f(use)h(the)f(full)h(path)f(to)
+h(the)g(con\014gure)f(script.)41 b(The)150 5094 y(follo)m(wing)24
+b(commands)f(will)g(build)f(bash)g(in)g(a)h(directory)h(under)d
+Ft(/usr/local/build)d Fu(from)23 b(the)g(source)150 5204
+y(co)s(de)31 b(in)f Ft(/usr/local/src/bash-4.4)o Fu(:)390
+5340 y Ft(mkdir)46 b(/usr/local/build/bash-4.4)p eop
+end
+%%Page: 159 165
+TeXDict begin 159 164 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(159)390 299 y Ft(cd)47
+b(/usr/local/build/bash-4.4)390 408 y(bash)g(/usr/local/src/bash-4.4)o
+(/con)o(fig)o(ure)390 518 y(make)275 652 y Fu(See)27
+b(Section)h(10.3)g([Compiling)g(F)-8 b(or)27 b(Multiple)h(Arc)m
+(hitectures],)i(page)d(159,)j(for)c(more)i(information)150
+762 y(ab)s(out)i(building)g(in)g(a)g(directory)h(separate)h(from)e(the)
+g(source.)275 896 y(If)53 b(y)m(ou)h(need)f(to)i(do)e(un)m(usual)g
+(things)g(to)i(compile)g(Bash,)k(please)c(try)e(to)i(\014gure)e(out)h
+(ho)m(w)150 1006 y Ft(configure)47 b Fu(could)j(c)m(hec)m(k)h(whether)e
+(or)g(not)h(to)h(do)e(them,)55 b(and)49 b(mail)h(di\013s)f(or)h
+(instructions)f(to)150 1115 y Ft(bash-maintainers@gnu.org)24
+b Fu(so)30 b(they)h(can)g(b)s(e)e(considered)i(for)f(the)g(next)h
+(release.)275 1250 y(The)e(\014le)g Ft(configure.ac)d
+Fu(is)k(used)e(to)j(create)g Ft(configure)c Fu(b)m(y)i(a)h(program)f
+(called)i(Auto)s(conf.)40 b(Y)-8 b(ou)150 1359 y(only)34
+b(need)g Ft(configure.ac)d Fu(if)i(y)m(ou)i(w)m(an)m(t)g(to)f(c)m
+(hange)i(it)e(or)g(regenerate)i Ft(configure)31 b Fu(using)j(a)g(new)m
+(er)150 1469 y(v)m(ersion)25 b(of)f(Auto)s(conf.)39 b(If)24
+b(y)m(ou)h(do)f(this,)i(mak)m(e)f(sure)f(y)m(ou)h(are)f(using)g(Auto)s
+(conf)h(v)m(ersion)f(2.69)i(or)f(new)m(er.)275 1603 y(Y)-8
+b(ou)29 b(can)f(remo)m(v)m(e)i(the)f(program)g(binaries)f(and)g(ob)5
+b(ject)29 b(\014les)g(from)f(the)h(source)f(co)s(de)h(directory)g(b)m
+(y)150 1713 y(t)m(yping)j(`)p Ft(make)d(clean)p Fu('.)42
+b(T)-8 b(o)32 b(also)g(remo)m(v)m(e)g(the)g(\014les)f(that)g
Ft(configure)e Fu(created)j(\(so)g(y)m(ou)g(can)f(compile)150
-1237 y(Bash)g(for)f(a)g(di\013eren)m(t)h(kind)f(of)g(computer\),)h(t)m
-(yp)s(e)g(`)p Ft(make)e(distclean)p Fu('.)150 1487 y
-Fs(10.2)68 b(Compilers)46 b(and)f(Options)150 1646 y
+1822 y(Bash)g(for)f(a)g(di\013eren)m(t)h(kind)f(of)g(computer\),)h(t)m
+(yp)s(e)g(`)p Ft(make)e(distclean)p Fu('.)150 2063 y
+Fs(10.2)68 b(Compilers)46 b(and)f(Options)150 2222 y
Fu(Some)28 b(systems)h(require)f(un)m(usual)f(options)i(for)f
(compilation)i(or)f(linking)f(that)h(the)g Ft(configure)d
-Fu(script)150 1756 y(do)s(es)32 b(not)g(kno)m(w)g(ab)s(out.)44
+Fu(script)150 2332 y(do)s(es)32 b(not)g(kno)m(w)g(ab)s(out.)44
b(Y)-8 b(ou)33 b(can)f(giv)m(e)h Ft(configure)d Fu(initial)j(v)-5
b(alues)32 b(for)g(v)-5 b(ariables)32 b(b)m(y)g(setting)h(them)150
-1865 y(in)k(the)g(en)m(vironmen)m(t.)62 b(Using)38 b(a)f
+2441 y(in)k(the)g(en)m(vironmen)m(t.)62 b(Using)38 b(a)f
(Bourne-compatible)i(shell,)g(y)m(ou)f(can)g(do)f(that)h(on)f(the)g
-(command)150 1975 y(line)31 b(lik)m(e)g(this:)390 2115
+(command)150 2551 y(line)31 b(lik)m(e)g(this:)390 2685
y Ft(CC=c89)46 b(CFLAGS=-O2)f(LIBS=-lposix)g(./configure)275
-2255 y Fu(On)29 b(systems)h(that)h(ha)m(v)m(e)h(the)f
+2819 y Fu(On)29 b(systems)h(that)h(ha)m(v)m(e)h(the)f
Ft(env)e Fu(program,)h(y)m(ou)h(can)g(do)f(it)h(lik)m(e)h(this:)390
-2396 y Ft(env)47 b(CPPFLAGS=-I/usr/local/in)o(clud)o(e)42
-b(LDFLAGS=-s)j(./configure)275 2536 y Fu(The)29 b(con\014guration)i
+2954 y Ft(env)47 b(CPPFLAGS=-I/usr/local/in)o(clud)o(e)42
+b(LDFLAGS=-s)j(./configure)275 3088 y Fu(The)29 b(con\014guration)i
(pro)s(cess)f(uses)g(GCC)g(to)h(build)e(Bash)i(if)f(it)h(is)g(a)m(v)-5
-b(ailable.)150 2786 y Fs(10.3)68 b(Compiling)46 b(F)-11
-b(or)45 b(Multiple)g(Arc)l(hitectures)150 2945 y Fu(Y)-8
+b(ailable.)150 3328 y Fs(10.3)68 b(Compiling)46 b(F)-11
+b(or)45 b(Multiple)g(Arc)l(hitectures)150 3488 y Fu(Y)-8
b(ou)27 b(can)g(compile)g(Bash)g(for)f(more)h(than)f(one)h(kind)f(of)g
(computer)h(at)g(the)g(same)g(time,)h(b)m(y)e(placing)i(the)150
-3055 y(ob)5 b(ject)31 b(\014les)f(for)g(eac)m(h)i(arc)m(hitecture)f(in)
+3597 y(ob)5 b(ject)31 b(\014les)f(for)g(eac)m(h)i(arc)m(hitecture)f(in)
f(their)g(o)m(wn)h(directory)-8 b(.)41 b(T)-8 b(o)31
b(do)f(this,)g(y)m(ou)h(m)m(ust)f(use)g(a)g(v)m(ersion)150
-3164 y(of)36 b Ft(make)e Fu(that)i(supp)s(orts)e(the)i
+3707 y(of)36 b Ft(make)e Fu(that)i(supp)s(orts)e(the)i
Ft(VPATH)e Fu(v)-5 b(ariable,)38 b(suc)m(h)d(as)h(GNU)g
Ft(make)p Fu(.)55 b Ft(cd)35 b Fu(to)i(the)e(directory)h(where)150
-3274 y(y)m(ou)k(w)m(an)m(t)h(the)g(ob)5 b(ject)41 b(\014les)f(and)f
+3817 y(y)m(ou)k(w)m(an)m(t)h(the)g(ob)5 b(ject)41 b(\014les)f(and)f
(executables)j(to)e(go)h(and)f(run)e(the)j Ft(configure)c
-Fu(script)j(from)g(the)150 3383 y(source)32 b(directory)h(\(see)g
-(Section)f(10.1)i([Basic)f(Installation],)i(page)e(152\).)47
-b(Y)-8 b(ou)32 b(ma)m(y)h(need)f(to)g(supply)150 3493
+Fu(script)j(from)g(the)150 3926 y(source)32 b(directory)h(\(see)g
+(Section)f(10.1)i([Basic)f(Installation],)i(page)e(158\).)47
+b(Y)-8 b(ou)32 b(ma)m(y)h(need)f(to)g(supply)150 4036
y(the)43 b Ft(--srcdir=PATH)c Fu(argumen)m(t)k(to)h(tell)g
Ft(configure)c Fu(where)i(the)h(source)g(\014les)g(are.)78
-b Ft(configure)150 3603 y Fu(automatically)33 b(c)m(hec)m(ks)f(for)e
+b Ft(configure)150 4145 y Fu(automatically)33 b(c)m(hec)m(ks)f(for)e
(the)h(source)f(co)s(de)h(in)f(the)h(directory)f(that)h
-Ft(configure)d Fu(is)j(in)f(and)f(in)h(`..'.)275 3743
-y(If)20 b(y)m(ou)h(ha)m(v)m(e)i(to)e(use)g(a)g Ft(make)f
-Fu(that)i(do)s(es)e(not)i(supp)s(orts)d(the)i Ft(VPATH)e
-Fu(v)-5 b(ariable,)24 b(y)m(ou)e(can)f(compile)h(Bash)150
-3853 y(for)33 b(one)h(arc)m(hitecture)h(at)f(a)g(time)g(in)f(the)h
+Ft(configure)d Fu(is)j(in)f(and)f(in)h(`..'.)275 4280
+y(If)22 b(y)m(ou)i(ha)m(v)m(e)g(to)g(use)f(a)g Ft(make)f
+Fu(that)i(do)s(es)f(not)g(supp)s(ort)e(the)j Ft(VPATH)d
+Fu(v)-5 b(ariable,)26 b(y)m(ou)d(can)h(compile)g(Bash)150
+4389 y(for)33 b(one)h(arc)m(hitecture)h(at)f(a)g(time)g(in)f(the)h
(source)g(co)s(de)f(directory)-8 b(.)51 b(After)34 b(y)m(ou)g(ha)m(v)m
-(e)h(installed)f(Bash)150 3962 y(for)c(one)h(arc)m(hitecture,)h(use)e
+(e)h(installed)f(Bash)150 4499 y(for)c(one)h(arc)m(hitecture,)h(use)e
(`)p Ft(make)g(distclean)p Fu(')e(b)s(efore)i(recon\014guring)g(for)g
-(another)g(arc)m(hitecture.)275 4102 y(Alternativ)m(ely)-8
+(another)g(arc)m(hitecture.)275 4633 y(Alternativ)m(ely)-8
b(,)30 b(if)c(y)m(our)g(system)h(supp)s(orts)d(sym)m(b)s(olic)j(links,)
-g(y)m(ou)g(can)g(use)f(the)g Ft(support/mkclone)150 4212
+g(y)m(ou)g(can)g(use)f(the)g Ft(support/mkclone)150 4743
y Fu(script)d(to)h(create)g(a)f(build)f(tree)i(whic)m(h)f(has)f(sym)m
(b)s(olic)i(links)e(bac)m(k)i(to)g(eac)m(h)g(\014le)f(in)g(the)g
-(source)g(directory)-8 b(.)150 4322 y(Here's)41 b(an)f(example)i(that)f
+(source)g(directory)-8 b(.)150 4852 y(Here's)41 b(an)f(example)i(that)f
(creates)h(a)e(build)g(directory)h(in)f(the)h(curren)m(t)f(directory)h
-(from)f(a)h(source)150 4431 y(directory)31 b Ft(/usr/gnu/src/bash-2.0)p
-Fu(:)390 4572 y Ft(bash)47 b(/usr/gnu/src/bash-2.0/s)o(uppo)o(rt/)o
+(from)f(a)h(source)150 4962 y(directory)31 b Ft(/usr/gnu/src/bash-2.0)p
+Fu(:)390 5096 y Ft(bash)47 b(/usr/gnu/src/bash-2.0/s)o(uppo)o(rt/)o
(mkcl)o(one)41 b(-s)47 b(/usr/gnu/src/bash-2.0)42 b(.)150
-4712 y Fu(The)c Ft(mkclone)e Fu(script)i(requires)g(Bash,)i(so)f(y)m
+5230 y Fu(The)c Ft(mkclone)e Fu(script)i(requires)g(Bash,)i(so)f(y)m
(ou)f(m)m(ust)h(ha)m(v)m(e)g(already)g(built)f(Bash)g(for)g(at)h(least)
-h(one)150 4821 y(arc)m(hitecture)32 b(b)s(efore)e(y)m(ou)h(can)f
-(create)i(build)e(directories)h(for)f(other)h(arc)m(hitectures.)150
-5071 y Fs(10.4)68 b(Installation)47 b(Names)150 5230
-y Fu(By)37 b(default,)i(`)p Ft(make)29 b(install)p Fu(')35
-b(will)j(install)f(in)m(to)h Ft(/usr/local/bin)p Fu(,)d
-Ft(/usr/local/man)p Fu(,)f(etc.)61 b(Y)-8 b(ou)150 5340
-y(can)35 b(sp)s(ecify)f(an)h(installation)i(pre\014x)c(other)j(than)e
-Ft(/usr/local)e Fu(b)m(y)j(giving)g Ft(configure)e Fu(the)h(option)p
+h(one)150 5340 y(arc)m(hitecture)32 b(b)s(efore)e(y)m(ou)h(can)f
+(create)i(build)e(directories)h(for)f(other)h(arc)m(hitectures.)p
eop end
-%%Page: 154 160
-TeXDict begin 154 159 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(154)150 299 y Ft(--prefix=)p
-Fj(PATH)p Fu(,)41 b(or)g(b)m(y)g(sp)s(ecifying)h(a)f(v)-5
-b(alue)42 b(for)f(the)h Ft(DESTDIR)d Fu(`)p Ft(make)p
-Fu(')i(v)-5 b(ariable)42 b(when)f(running)150 408 y(`)p
-Ft(make)29 b(install)p Fu('.)275 566 y(Y)-8 b(ou)71 b(can)h(sp)s(ecify)
-f(separate)h(installation)h(pre\014xes)d(for)h(arc)m(hitecture-sp)s
-(eci\014c)i(\014les)f(and)150 676 y(arc)m(hitecture-indep)s(enden)m(t)
-44 b(\014les.)80 b(If)43 b(y)m(ou)h(giv)m(e)h Ft(configure)c
-Fu(the)j(option)g Ft(--exec-prefix=)p Fj(PATH)p Fu(,)150
-785 y(`)p Ft(make)29 b(install)p Fu(')63 b(will)h(use)f
-Fr(P)-8 b(A)g(TH)75 b Fu(as)64 b(the)g(pre\014x)e(for)i(installing)h
-(programs)e(and)h(libraries.)150 895 y(Do)s(cumen)m(tation)32
-b(and)e(other)h(data)g(\014les)f(will)h(still)g(use)f(the)h(regular)f
-(pre\014x.)150 1171 y Fs(10.5)68 b(Sp)t(ecifying)45 b(the)g(System)h(T)
-l(yp)t(e)150 1330 y Fu(There)f(ma)m(y)g(b)s(e)f(some)i(features)f
-Ft(configure)e Fu(can)i(not)g(\014gure)g(out)g(automatically)-8
-b(,)52 b(but)44 b(need)h(to)150 1440 y(determine)26 b(b)m(y)g(the)g(t)m
-(yp)s(e)g(of)g(host)g(Bash)g(will)g(run)f(on.)39 b(Usually)26
+%%Page: 160 166
+TeXDict begin 160 165 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(160)150 299 y Fs(10.4)68
+b(Installation)47 b(Names)150 458 y Fu(By)36 b(default,)g(`)p
+Ft(make)30 b(install)p Fu(')j(will)j(install)g(in)m(to)g
+Ft(/usr/local/bin)p Fu(,)d Ft(/usr/local/man)p Fu(,)g(etc.;)39
+b(that)150 568 y(is,)i(the)d Fr(installation)i(pre\014x)k
+Fu(defaults)38 b(to)h Ft(/usr/local)p Fu(.)62 b(Y)-8
+b(ou)39 b(can)g(sp)s(ecify)f(an)g(installation)i(pre\014x)150
+677 y(other)34 b(than)g Ft(/usr/local)d Fu(b)m(y)j(giving)h
+Ft(configure)d Fu(the)i(option)g Ft(--prefix=)p Fj(PATH)p
+Fu(,)e(or)i(b)m(y)g(sp)s(ecifying)150 787 y(a)h(v)-5
+b(alue)34 b(for)h(the)f Ft(prefix)f Fu(`)p Ft(make)p
+Fu(')g(v)-5 b(ariable)35 b(when)f(running)e(`)p Ft(make)e(install)p
+Fu(')i(\(e.g.,)37 b(`)p Ft(make)30 b(install)150 897
+y(prefix=)p Fj(PATH)p Fu('\).)35 b(The)21 b Ft(prefix)f
+Fu(v)-5 b(ariable)22 b(pro)m(vides)g(a)f(default)h(for)f
+Ft(exec_prefix)e Fu(and)i(other)g(v)-5 b(ariables)150
+1006 y(used)30 b(when)f(installing)i(bash.)275 1159 y(Y)-8
+b(ou)71 b(can)h(sp)s(ecify)f(separate)h(installation)h(pre\014xes)d
+(for)h(arc)m(hitecture-sp)s(eci\014c)i(\014les)f(and)150
+1268 y(arc)m(hitecture-indep)s(enden)m(t)44 b(\014les.)80
+b(If)43 b(y)m(ou)h(giv)m(e)h Ft(configure)c Fu(the)j(option)g
+Ft(--exec-prefix=)p Fj(PATH)p Fu(,)150 1378 y(`)p Ft(make)29
+b(install)p Fu(')63 b(will)h(use)f Fr(P)-8 b(A)g(TH)75
+b Fu(as)64 b(the)g(pre\014x)e(for)i(installing)h(programs)e(and)h
+(libraries.)150 1488 y(Do)s(cumen)m(tation)32 b(and)e(other)h(data)g
+(\014les)f(will)h(still)g(use)f(the)h(regular)f(pre\014x.)275
+1640 y(If)35 b(y)m(ou)i(w)m(ould)e(lik)m(e)j(to)e(c)m(hange)i(the)e
+(installation)i(lo)s(cations)f(for)f(a)h(single)f(run,)h(y)m(ou)f(can)g
+(sp)s(ecify)150 1750 y(these)28 b(v)-5 b(ariables)27
+b(as)h(argumen)m(ts)f(to)h Ft(make)p Fu(:)38 b(`)p Ft(make)29
+b(install)g(exec_prefix=/)p Fu(')23 b(will)28 b(install)g
+Ft(bash)e Fu(and)150 1859 y Ft(bashbug)i Fu(in)m(to)k
+Ft(/bin)d Fu(instead)i(of)f(the)h(default)f Ft(/usr/local/bin)p
+Fu(.)275 2012 y(If)43 b(y)m(ou)i(w)m(an)m(t)g(to)g(see)f(the)h(\014les)
+f(bash)f(will)i(install)g(and)e(where)h(it)g(will)h(install)g(them)f
+(without)150 2122 y(c)m(hanging)35 b(an)m(ything)f(on)f(y)m(our)h
+(system,)h(sp)s(ecify)e(the)h(v)-5 b(ariable)35 b Ft(DESTDIR)d
+Fu(as)i(an)f(argumen)m(t)h(to)h Ft(make)p Fu(.)150 2231
+y(Its)29 b(v)-5 b(alue)29 b(should)f(b)s(e)g(the)h(absolute)h
+(directory)f(path)g(y)m(ou'd)g(lik)m(e)h(to)g(use)e(as)i(the)f(ro)s(ot)
+g(of)g(y)m(our)g(sample)150 2341 y(installation)j(tree.)42
+b(F)-8 b(or)31 b(example,)390 2493 y Ft(mkdir)46 b(/fs1/bash-install)
+390 2603 y(make)h(install)e(DESTDIR=/fs1/bash-install)150
+2756 y Fu(will)37 b(install)g Ft(bash)e Fu(in)m(to)j
+Ft(/fs1/bash-install/usr/l)o(ocal)o(/bin)o(/ba)o(sh)p
+Fu(,)32 b(the)37 b(do)s(cumen)m(tation)g(in)m(to)150
+2865 y(directories)44 b(within)e Ft(/fs1/bash-install/usr/l)o(ocal)o
+(/sha)o(re)p Fu(,)e(the)i(example)i(loadable)g(builtins)150
+2975 y(in)m(to)35 b Ft(/fs1/bash-install/usr/loc)o(al/l)o(ib/b)o(ash)o
+Fu(,)30 b(and)k(so)g(on.)53 b(Y)-8 b(ou)34 b(can)h(use)f(the)h(usual)e
+Ft(exec_)150 3084 y(prefix)c Fu(and)g Ft(prefix)g Fu(v)-5
+b(ariables)31 b(to)g(alter)h(the)e(directory)h(paths)f(b)s(eneath)g
+(the)h(v)-5 b(alue)30 b(of)h Ft(DESTDIR)p Fu(.)275 3237
+y(The)24 b(GNU)i(Mak)m(e\014le)h(standards)d(pro)m(vide)i(a)f(more)h
+(complete)g(description)g(of)f(these)h(v)-5 b(ariables)26
+b(and)150 3346 y(their)k(e\013ects.)150 3614 y Fs(10.5)68
+b(Sp)t(ecifying)45 b(the)g(System)h(T)l(yp)t(e)150 3774
+y Fu(There)c(ma)m(y)h(b)s(e)e(some)i(features)g Ft(configure)c
+Fu(can)k(not)g(\014gure)e(out)i(automatically)-8 b(,)49
+b(but)41 b(needs)h(to)150 3883 y(determine)26 b(b)m(y)g(the)g(t)m(yp)s
+(e)g(of)g(host)g(Bash)g(will)g(run)f(on.)39 b(Usually)26
b Ft(configure)d Fu(can)k(\014gure)e(that)h(out,)i(but)150
-1549 y(if)g(it)g(prin)m(ts)f(a)h(message)g(sa)m(ying)h(it)f(can)g(not)f
+3993 y(if)g(it)g(prin)m(ts)f(a)h(message)g(sa)m(ying)h(it)f(can)g(not)f
(guess)h(the)g(host)f(t)m(yp)s(e,)i(giv)m(e)g(it)f(the)g
-Ft(--host=TYPE)c Fu(option.)150 1659 y(`)p Ft(TYPE)p
+Ft(--host=TYPE)c Fu(option.)150 4103 y(`)p Ft(TYPE)p
Fu(')29 b(can)h(either)g(b)s(e)g(a)g(short)f(name)h(for)f(the)h(system)
g(t)m(yp)s(e,)h(suc)m(h)e(as)h(`)p Ft(sun4)p Fu(',)g(or)f(a)h
-(canonical)i(name)150 1768 y(with)e(three)h(\014elds:)40
+(canonical)i(name)150 4212 y(with)e(three)h(\014elds:)40
b(`)p Ft(CPU-COMPANY-SYSTEM)p Fu(')26 b(\(e.g.,)32 b(`)p
-Ft(i386-unknown-freebsd4.2)p Fu('\).)275 1926 y(See)e(the)h(\014le)f
+Ft(i386-unknown-freebsd4.2)p Fu('\).)275 4365 y(See)e(the)h(\014le)f
Ft(support/config.sub)c Fu(for)k(the)g(p)s(ossible)g(v)-5
-b(alues)31 b(of)f(eac)m(h)i(\014eld.)150 2202 y Fs(10.6)68
-b(Sharing)45 b(Defaults)150 2361 y Fu(If)d(y)m(ou)i(w)m(an)m(t)g(to)f
+b(alues)31 b(of)f(eac)m(h)i(\014eld.)150 4633 y Fs(10.6)68
+b(Sharing)45 b(Defaults)150 4792 y Fu(If)d(y)m(ou)i(w)m(an)m(t)g(to)f
(set)h(default)f(v)-5 b(alues)43 b(for)g Ft(configure)d
Fu(scripts)j(to)h(share,)i(y)m(ou)d(can)g(create)i(a)e(site)150
-2471 y(shell)48 b(script)f(called)i Ft(config.site)44
+4902 y(shell)48 b(script)f(called)i Ft(config.site)44
b Fu(that)k(giv)m(es)h(default)f(v)-5 b(alues)48 b(for)f(v)-5
b(ariables)48 b(lik)m(e)h Ft(CC)p Fu(,)j Ft(cache_)150
-2580 y(file)p Fu(,)c(and)d Ft(prefix)p Fu(.)85 b Ft(configure)43
+5011 y(file)p Fu(,)c(and)d Ft(prefix)p Fu(.)85 b Ft(configure)43
b Fu(lo)s(oks)j(for)f Ft(PREFIX/share/config.site)39
-b Fu(if)46 b(it)g(exists,)k(then)150 2690 y Ft(PREFIX/etc/config.site)
+b Fu(if)46 b(it)g(exists,)k(then)150 5121 y Ft(PREFIX/etc/config.site)
24 b Fu(if)31 b(it)g(exists.)42 b(Or,)30 b(y)m(ou)h(can)g(set)g(the)g
Ft(CONFIG_SITE)c Fu(en)m(vironmen)m(t)k(v)-5 b(ari-)150
-2800 y(able)40 b(to)g(the)g(lo)s(cation)h(of)e(the)h(site)g(script.)67
+5230 y(able)40 b(to)g(the)g(lo)s(cation)h(of)e(the)h(site)g(script.)67
b(A)40 b(w)m(arning:)58 b(the)40 b(Bash)g Ft(configure)c
-Fu(lo)s(oks)k(for)f(a)h(site)150 2909 y(script,)31 b(but)e(not)i(all)g
-Ft(configure)d Fu(scripts)i(do.)150 3185 y Fs(10.7)68
-b(Op)t(eration)46 b(Con)l(trols)150 3344 y Ft(configure)28
+Fu(lo)s(oks)k(for)f(a)h(site)150 5340 y(script,)31 b(but)e(not)i(all)g
+Ft(configure)d Fu(scripts)i(do.)p eop end
+%%Page: 161 167
+TeXDict begin 161 166 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(161)150 299 y Fs(10.7)68
+b(Op)t(eration)46 b(Con)l(trols)150 458 y Ft(configure)28
b Fu(recognizes)k(the)e(follo)m(wing)i(options)f(to)g(con)m(trol)h(ho)m
-(w)e(it)h(op)s(erates.)150 3538 y Ft(--cache-file=)p
-Fj(file)630 3648 y Fu(Use)d(and)g(sa)m(v)m(e)h(the)f(results)g(of)g
-(the)h(tests)f(in)g Fr(\014le)33 b Fu(instead)28 b(of)h
-Ft(./config.cache)p Fu(.)36 b(Set)28 b Fr(\014le)630
-3758 y Fu(to)j Ft(/dev/null)d Fu(to)j(disable)g(cac)m(hing,)h(for)e
-(debugging)g Ft(configure)p Fu(.)150 3940 y Ft(--help)192
-b Fu(Prin)m(t)30 b(a)h(summary)e(of)i(the)f(options)h(to)g
-Ft(configure)p Fu(,)d(and)i(exit.)150 4123 y Ft(--quiet)150
-4232 y(--silent)150 4342 y(-q)384 b Fu(Do)31 b(not)g(prin)m(t)f
-(messages)h(sa)m(ying)g(whic)m(h)g(c)m(hec)m(ks)g(are)g(b)s(eing)f
-(made.)150 4525 y Ft(--srcdir=)p Fj(dir)630 4634 y Fu(Lo)s(ok)i(for)g
-(the)g(Bash)g(source)h(co)s(de)f(in)g(directory)g Fr(dir)p
-Fu(.)45 b(Usually)33 b Ft(configure)c Fu(can)j(deter-)630
-4744 y(mine)e(that)h(directory)g(automatically)-8 b(.)150
-4927 y Ft(--version)630 5036 y Fu(Prin)m(t)29 b(the)h(v)m(ersion)g(of)g
-(Auto)s(conf)f(used)g(to)h(generate)h(the)f Ft(configure)d
-Fu(script,)j(and)f(exit.)275 5230 y Ft(configure)34 b
-Fu(also)k(accepts)g(some)g(other,)h(not)e(widely)g(used,)h(b)s
-(oilerplate)g(options.)61 b(`)p Ft(configure)150 5340
-y(--help)p Fu(')29 b(prin)m(ts)h(the)g(complete)i(list.)p
-eop end
-%%Page: 155 161
-TeXDict begin 155 160 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(155)150 299 y Fs(10.8)68
-b(Optional)46 b(F)-11 b(eatures)150 458 y Fu(The)29 b(Bash)h
-Ft(configure)d Fu(has)j(a)g(n)m(um)m(b)s(er)f(of)h Ft(--enable-)p
-Fj(feature)25 b Fu(options,)30 b(where)g Fr(feature)35
-b Fu(indicates)150 568 y(an)e(optional)i(part)e(of)h(Bash.)50
-b(There)33 b(are)g(also)i(sev)m(eral)g Ft(--with-)p Fj(package)29
-b Fu(options,)35 b(where)e Fr(pac)m(k)-5 b(age)150 677
-y Fu(is)32 b(something)h(lik)m(e)h(`)p Ft(bash-malloc)p
-Fu(')c(or)i(`)p Ft(purify)p Fu('.)45 b(T)-8 b(o)33 b(turn)e(o\013)i
-(the)f(default)h(use)f(of)g(a)h(pac)m(k)-5 b(age,)35
-b(use)150 787 y Ft(--without-)p Fj(package)p Fu(.)46
-b(T)-8 b(o)34 b(con\014gure)g(Bash)g(without)f(a)i(feature)f(that)g(is)
-g(enabled)g(b)m(y)f(default,)i(use)150 897 y Ft(--disable-)p
-Fj(feature)p Fu(.)275 1033 y(Here)28 b(is)g(a)h(complete)g(list)g(of)f
-(the)h Ft(--enable-)c Fu(and)j Ft(--with-)e Fu(options)i(that)h(the)f
-(Bash)g Ft(configure)150 1143 y Fu(recognizes.)150 1306
-y Ft(--with-afs)630 1415 y Fu(De\014ne)j(if)f(y)m(ou)h(are)f(using)g
-(the)h(Andrew)e(File)j(System)e(from)g(T)-8 b(ransarc.)150
-1577 y Ft(--with-bash-malloc)630 1686 y Fu(Use)34 b(the)g(Bash)h(v)m
-(ersion)f(of)g Ft(malloc)e Fu(in)i(the)g(directory)h
-Ft(lib/malloc)p Fu(.)48 b(This)34 b(is)g(not)g(the)630
-1796 y(same)e Ft(malloc)e Fu(that)j(app)s(ears)e(in)g
-Fm(gnu)h Fu(lib)s(c,)g(but)f(an)h(older)f(v)m(ersion)i(originally)g
-(deriv)m(ed)630 1905 y(from)f(the)h(4.2)g Fm(bsd)f Ft(malloc)p
-Fu(.)45 b(This)31 b Ft(malloc)g Fu(is)i(v)m(ery)f(fast,)i(but)e(w)m
-(astes)h(some)g(space)g(on)630 2015 y(eac)m(h)j(allo)s(cation.)58
-b(This)34 b(option)i(is)f(enabled)g(b)m(y)g(default.)56
-b(The)34 b Ft(NOTES)g Fu(\014le)h(con)m(tains)i(a)630
-2125 y(list)29 b(of)f(systems)f(for)h(whic)m(h)g(this)g(should)e(b)s(e)
-i(turned)e(o\013,)j(and)f Ft(configure)d Fu(disables)j(this)630
-2234 y(option)j(automatically)i(for)d(a)h(n)m(um)m(b)s(er)e(of)i
-(systems.)150 2396 y Ft(--with-curses)630 2505 y Fu(Use)h(the)h(curses)
+(w)e(it)h(op)s(erates.)150 606 y Ft(--cache-file=)p Fj(file)630
+716 y Fu(Use)d(and)g(sa)m(v)m(e)h(the)f(results)g(of)g(the)h(tests)f
+(in)g Fr(\014le)33 b Fu(instead)28 b(of)h Ft(./config.cache)p
+Fu(.)36 b(Set)28 b Fr(\014le)630 825 y Fu(to)j Ft(/dev/null)d
+Fu(to)j(disable)g(cac)m(hing,)h(for)e(debugging)g Ft(configure)p
+Fu(.)150 973 y Ft(--help)192 b Fu(Prin)m(t)30 b(a)h(summary)e(of)i(the)
+f(options)h(to)g Ft(configure)p Fu(,)d(and)i(exit.)150
+1121 y Ft(--quiet)150 1230 y(--silent)150 1340 y(-q)384
+b Fu(Do)31 b(not)g(prin)m(t)f(messages)h(sa)m(ying)g(whic)m(h)g(c)m
+(hec)m(ks)g(are)g(b)s(eing)f(made.)150 1487 y Ft(--srcdir=)p
+Fj(dir)630 1597 y Fu(Lo)s(ok)i(for)g(the)g(Bash)g(source)h(co)s(de)f
+(in)g(directory)g Fr(dir)p Fu(.)45 b(Usually)33 b Ft(configure)c
+Fu(can)j(deter-)630 1707 y(mine)e(that)h(directory)g(automatically)-8
+b(.)150 1854 y Ft(--version)630 1964 y Fu(Prin)m(t)29
+b(the)h(v)m(ersion)g(of)g(Auto)s(conf)f(used)g(to)h(generate)h(the)f
+Ft(configure)d Fu(script,)j(and)f(exit.)275 2112 y Ft(configure)34
+b Fu(also)k(accepts)g(some)g(other,)h(not)e(widely)g(used,)h(b)s
+(oilerplate)g(options.)61 b(`)p Ft(configure)150 2221
+y(--help)p Fu(')29 b(prin)m(ts)h(the)g(complete)i(list.)150
+2450 y Fs(10.8)68 b(Optional)46 b(F)-11 b(eatures)150
+2610 y Fu(The)29 b(Bash)h Ft(configure)d Fu(has)j(a)g(n)m(um)m(b)s(er)f
+(of)h Ft(--enable-)p Fj(feature)25 b Fu(options,)30 b(where)g
+Fr(feature)35 b Fu(indicates)150 2719 y(an)e(optional)i(part)e(of)h
+(Bash.)50 b(There)33 b(are)g(also)i(sev)m(eral)g Ft(--with-)p
+Fj(package)29 b Fu(options,)35 b(where)e Fr(pac)m(k)-5
+b(age)150 2829 y Fu(is)32 b(something)h(lik)m(e)h(`)p
+Ft(bash-malloc)p Fu(')c(or)i(`)p Ft(purify)p Fu('.)45
+b(T)-8 b(o)33 b(turn)e(o\013)i(the)f(default)h(use)f(of)g(a)h(pac)m(k)
+-5 b(age,)35 b(use)150 2939 y Ft(--without-)p Fj(package)p
+Fu(.)46 b(T)-8 b(o)34 b(con\014gure)g(Bash)g(without)f(a)i(feature)f
+(that)g(is)g(enabled)g(b)m(y)f(default,)i(use)150 3048
+y Ft(--disable-)p Fj(feature)p Fu(.)275 3177 y(Here)28
+b(is)g(a)h(complete)g(list)g(of)f(the)h Ft(--enable-)c
+Fu(and)j Ft(--with-)e Fu(options)i(that)h(the)f(Bash)g
+Ft(configure)150 3286 y Fu(recognizes.)150 3434 y Ft(--with-afs)630
+3544 y Fu(De\014ne)j(if)f(y)m(ou)h(are)f(using)g(the)h(Andrew)e(File)j
+(System)e(from)g(T)-8 b(ransarc.)150 3691 y Ft(--with-bash-malloc)630
+3801 y Fu(Use)34 b(the)g(Bash)h(v)m(ersion)f(of)g Ft(malloc)e
+Fu(in)i(the)g(directory)h Ft(lib/malloc)p Fu(.)48 b(This)34
+b(is)g(not)g(the)630 3911 y(same)e Ft(malloc)e Fu(that)j(app)s(ears)e
+(in)g Fm(gnu)h Fu(lib)s(c,)g(but)f(an)h(older)f(v)m(ersion)i
+(originally)g(deriv)m(ed)630 4020 y(from)f(the)h(4.2)g
+Fm(bsd)f Ft(malloc)p Fu(.)45 b(This)31 b Ft(malloc)g
+Fu(is)i(v)m(ery)f(fast,)i(but)e(w)m(astes)h(some)g(space)g(on)630
+4130 y(eac)m(h)j(allo)s(cation.)58 b(This)34 b(option)i(is)f(enabled)g
+(b)m(y)g(default.)56 b(The)34 b Ft(NOTES)g Fu(\014le)h(con)m(tains)i(a)
+630 4239 y(list)29 b(of)f(systems)f(for)h(whic)m(h)g(this)g(should)e(b)
+s(e)i(turned)e(o\013,)j(and)f Ft(configure)d Fu(disables)j(this)630
+4349 y(option)j(automatically)i(for)d(a)h(n)m(um)m(b)s(er)e(of)i
+(systems.)150 4497 y Ft(--with-curses)630 4606 y Fu(Use)h(the)h(curses)
e(library)h(instead)g(of)h(the)f(termcap)g(library)-8
-b(.)46 b(This)32 b(should)f(b)s(e)g(supplied)630 2615
+b(.)46 b(This)32 b(should)f(b)s(e)g(supplied)630 4716
y(if)f(y)m(our)h(system)f(has)g(an)h(inadequate)g(or)f(incomplete)i
-(termcap)e(database.)150 2777 y Ft(--with-gnu-malloc)630
-2886 y Fu(A)g(synon)m(ym)g(for)g Ft(--with-bash-malloc)p
-Fu(.)150 3048 y Ft(--with-installed-readlin)o(e[=)p Fj(P)o(REFI)o(X)p
-Ft(])630 3157 y Fu(De\014ne)c(this)f(to)h(mak)m(e)h(Bash)f(link)f(with)
+(termcap)e(database.)150 4863 y Ft(--with-gnu-malloc)630
+4973 y Fu(A)g(synon)m(ym)g(for)g Ft(--with-bash-malloc)p
+Fu(.)150 5121 y Ft(--with-installed-readlin)o(e[=)p Fj(P)o(REFI)o(X)p
+Ft(])630 5230 y Fu(De\014ne)c(this)f(to)h(mak)m(e)h(Bash)f(link)f(with)
g(a)h(lo)s(cally-installed)i(v)m(ersion)e(of)g(Readline)g(rather)630
-3267 y(than)f(the)h(v)m(ersion)g(in)f Ft(lib/readline)p
+5340 y(than)f(the)h(v)m(ersion)g(in)f Ft(lib/readline)p
Fu(.)36 b(This)25 b(w)m(orks)g(only)h(with)f(Readline)h(5.0)h(and)e
-(later)630 3376 y(v)m(ersions.)46 b(If)32 b Fr(PREFIX)41
-b Fu(is)32 b Ft(yes)f Fu(or)i(not)f(supplied,)f Ft(configure)f
-Fu(uses)i(the)g(v)-5 b(alues)32 b(of)h(the)630 3486 y(mak)m(e)28
-b(v)-5 b(ariables)29 b Ft(includedir)24 b Fu(and)j Ft(libdir)p
-Fu(,)g(whic)m(h)g(are)h(sub)s(directories)f(of)g Ft(prefix)f
-Fu(b)m(y)630 3596 y(default,)44 b(to)d(\014nd)f(the)h(installed)g(v)m
-(ersion)h(of)f(Readline)g(if)g(it)g(is)g(not)g(in)g(the)g(standard)630
-3705 y(system)35 b(include)f(and)g(library)g(directories.)54
-b(If)34 b Fr(PREFIX)43 b Fu(is)35 b Ft(no)p Fu(,)g(Bash)f(links)h(with)
-f(the)630 3815 y(v)m(ersion)42 b(in)e Ft(lib/readline)p
-Fu(.)70 b(If)40 b Fr(PREFIX)51 b Fu(is)41 b(set)g(to)h(an)m(y)g(other)f
-(v)-5 b(alue,)44 b Ft(configure)630 3924 y Fu(treats)27
-b(it)g(as)f(a)h(directory)g(pathname)f(and)f(lo)s(oks)i(for)f(the)g
-(installed)h(v)m(ersion)g(of)f(Readline)630 4034 y(in)34
-b(sub)s(directories)f(of)h(that)h(directory)g(\(include)f(\014les)g(in)
-g Fr(PREFIX)9 b Fu(/)p Ft(include)32 b Fu(and)i(the)630
-4144 y(library)c(in)g Fr(PREFIX)9 b Fu(/)p Ft(lib)p Fu(\).)150
-4305 y Ft(--with-purify)630 4415 y Fu(De\014ne)23 b(this)g(to)h(use)f
-(the)g(Purify)f(memory)h(allo)s(cation)i(c)m(hec)m(k)m(er)g(from)e
-(Rational)i(Soft)m(w)m(are.)150 4576 y Ft(--enable-minimal-config)630
-4686 y Fu(This)e(pro)s(duces)f(a)i(shell)g(with)f(minimal)h(features,)h
-(close)g(to)f(the)g(historical)h(Bourne)e(shell.)275
-4849 y(There)k(are)i(sev)m(eral)g Ft(--enable-)d Fu(options)i(that)h
-(alter)g(ho)m(w)f(Bash)g(is)g(compiled)h(and)e(link)m(ed,)i(rather)150
-4958 y(than)h(c)m(hanging)h(run-time)f(features.)150
-5121 y Ft(--enable-largefile)630 5230 y Fu(Enable)36
+(later)p eop end
+%%Page: 162 168
+TeXDict begin 162 167 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(162)630 299 y(v)m(ersions.)46
+b(If)32 b Fr(PREFIX)41 b Fu(is)32 b Ft(yes)f Fu(or)i(not)f(supplied,)f
+Ft(configure)f Fu(uses)i(the)g(v)-5 b(alues)32 b(of)h(the)630
+408 y(mak)m(e)28 b(v)-5 b(ariables)29 b Ft(includedir)24
+b Fu(and)j Ft(libdir)p Fu(,)g(whic)m(h)g(are)h(sub)s(directories)f(of)g
+Ft(prefix)f Fu(b)m(y)630 518 y(default,)44 b(to)d(\014nd)f(the)h
+(installed)g(v)m(ersion)h(of)f(Readline)g(if)g(it)g(is)g(not)g(in)g
+(the)g(standard)630 628 y(system)35 b(include)f(and)g(library)g
+(directories.)54 b(If)34 b Fr(PREFIX)43 b Fu(is)35 b
+Ft(no)p Fu(,)g(Bash)f(links)h(with)f(the)630 737 y(v)m(ersion)42
+b(in)e Ft(lib/readline)p Fu(.)70 b(If)40 b Fr(PREFIX)51
+b Fu(is)41 b(set)g(to)h(an)m(y)g(other)f(v)-5 b(alue,)44
+b Ft(configure)630 847 y Fu(treats)27 b(it)g(as)f(a)h(directory)g
+(pathname)f(and)f(lo)s(oks)i(for)f(the)g(installed)h(v)m(ersion)g(of)f
+(Readline)630 956 y(in)34 b(sub)s(directories)f(of)h(that)h(directory)g
+(\(include)f(\014les)g(in)g Fr(PREFIX)9 b Fu(/)p Ft(include)32
+b Fu(and)i(the)630 1066 y(library)c(in)g Fr(PREFIX)9
+b Fu(/)p Ft(lib)p Fu(\).)150 1236 y Ft(--with-libintl-prefix[=)p
+Fj(P)o(REFI)o(X)p Ft(])630 1345 y Fu(De\014ne)45 b(this)f(to)h(mak)m(e)
+g(Bash)g(link)f(with)g(a)h(lo)s(cally-installed)i(v)m(ersion)e(of)g
+(the)f(libin)m(tl)630 1455 y(library)30 b(instead)h(of)f(the)h(v)m
+(ersion)g(in)f Ft(lib/intl)p Fu(.)150 1625 y Ft
+(--with-libiconv-prefix[=)o Fj(PREF)o(IX)p Ft(])630 1734
+y Fu(De\014ne)g(this)g(to)g(mak)m(e)h(Bash)f(lo)s(ok)g(for)g(libicon)m
+(v)h(in)e Fr(PREFIX)39 b Fu(instead)30 b(of)g(the)g(standard)630
+1844 y(system)h(lo)s(cations.)42 b(There)30 b(is)g(no)g(v)m(ersion)h
+(included)f(with)g(Bash.)150 2014 y Ft(--enable-minimal-config)630
+2123 y Fu(This)23 b(pro)s(duces)f(a)i(shell)g(with)f(minimal)h
+(features,)h(close)g(to)f(the)g(historical)h(Bourne)e(shell.)275
+2298 y(There)35 b(are)i(sev)m(eral)h Ft(--enable-)c Fu(options)j(that)g
+(alter)g(ho)m(w)g(Bash)f(is)h(compiled,)i(link)m(ed,)f(and)e(in-)150
+2408 y(stalled,)c(rather)e(than)g(c)m(hanging)h(run-time)f(features.)
+150 2583 y Ft(--enable-largefile)630 2692 y Fu(Enable)36
b(supp)s(ort)f(for)g(large)j(\014les)e(\()p Ft(http:)5
b(/)g(/)g(www)g(.)g(unix)g(.)g(org)t(/)g(v)o(ersi)o(on2)t(/)g(w)o(hats)
-o(new)t(/)630 5340 y(lfs20mar)h(.)g(html)p Fu(\))35 b(if)j(the)g(op)s
-(erating)g(system)g(requires)f(sp)s(ecial)i(compiler)f(options)g(to)p
-eop end
-%%Page: 156 162
-TeXDict begin 156 161 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(156)630 299 y(build)33
-b(programs)g(whic)m(h)h(can)g(access)h(large)g(\014les.)51
-b(This)33 b(is)h(enabled)g(b)m(y)g(default,)h(if)f(the)630
-408 y(op)s(erating)d(system)f(pro)m(vides)h(large)g(\014le)g(supp)s
-(ort.)150 570 y Ft(--enable-profiling)630 680 y Fu(This)g(builds)f(a)i
-(Bash)g(binary)f(that)h(pro)s(duces)e(pro\014ling)h(information)h(to)h
-(b)s(e)d(pro)s(cessed)630 790 y(b)m(y)g Ft(gprof)f Fu(eac)m(h)j(time)f
-(it)g(is)f(executed.)150 951 y Ft(--enable-static-link)630
-1061 y Fu(This)37 b(causes)h(Bash)f(to)h(b)s(e)f(link)m(ed)h
-(statically)-8 b(,)43 b(if)37 b Ft(gcc)g Fu(is)g(b)s(eing)g(used.)61
-b(This)37 b(could)h(b)s(e)630 1171 y(used)30 b(to)h(build)e(a)i(v)m
-(ersion)g(to)g(use)f(as)g(ro)s(ot's)h(shell.)275 1334
+o(new)t(/)630 2802 y(lfs20mar)h(.)g(html)p Fu(\))35 b(if)j(the)g(op)s
+(erating)g(system)g(requires)f(sp)s(ecial)i(compiler)f(options)g(to)630
+2911 y(build)33 b(programs)g(whic)m(h)h(can)g(access)h(large)g
+(\014les.)51 b(This)33 b(is)h(enabled)g(b)m(y)g(default,)h(if)f(the)630
+3021 y(op)s(erating)d(system)f(pro)m(vides)h(large)g(\014le)g(supp)s
+(ort.)150 3191 y Ft(--enable-profiling)630 3300 y Fu(This)g(builds)f(a)
+i(Bash)g(binary)f(that)h(pro)s(duces)e(pro\014ling)h(information)h(to)h
+(b)s(e)d(pro)s(cessed)630 3410 y(b)m(y)g Ft(gprof)f Fu(eac)m(h)j(time)f
+(it)g(is)f(executed.)150 3580 y Ft(--enable-separate-helpfi)o(les)630
+3689 y Fu(Use)i(external)h(\014les)f(for)g(the)g(do)s(cumen)m(tation)h
+(displa)m(y)m(ed)f(b)m(y)g(the)g Ft(help)f Fu(builtin)h(instead)630
+3799 y(of)f(storing)f(the)h(text)g(in)m(ternally)-8 b(.)150
+3969 y Ft(--enable-static-link)630 4078 y Fu(This)37
+b(causes)h(Bash)f(to)h(b)s(e)f(link)m(ed)h(statically)-8
+b(,)43 b(if)37 b Ft(gcc)g Fu(is)g(b)s(eing)g(used.)61
+b(This)37 b(could)h(b)s(e)630 4188 y(used)30 b(to)h(build)e(a)i(v)m
+(ersion)g(to)g(use)f(as)g(ro)s(ot's)h(shell.)275 4363
y(The)f(`)p Ft(minimal-config)p Fu(')d(option)k(can)g(b)s(e)f(used)f
(to)j(disable)e(all)i(of)f(the)f(follo)m(wing)i(options,)g(but)d(it)150
-1443 y(is)h(pro)s(cessed)g(\014rst,)g(so)h(individual)f(options)g(ma)m
+4472 y(is)h(pro)s(cessed)g(\014rst,)g(so)h(individual)f(options)g(ma)m
(y)h(b)s(e)f(enabled)g(using)g(`)p Ft(enable-)p Fj(feature)p
-Fu('.)275 1580 y(All)c(of)f(the)h(follo)m(wing)h(options)f(except)g
-(for)g(`)p Ft(disabled-builtins)p Fu(',)c(`)p Ft(direxpand-default)p
-Fu(',)h(and)150 1690 y(`)p Ft(xpg-echo-default)p Fu(')28
-b(are)33 b(enabled)f(b)m(y)g(default,)h(unless)e(the)i(op)s(erating)f
-(system)h(do)s(es)e(not)i(pro)m(vide)150 1800 y(the)e(necessary)f(supp)
-s(ort.)150 1963 y Ft(--enable-alias)630 2072 y Fu(Allo)m(w)41
-b(alias)g(expansion)f(and)f(include)g(the)h Ft(alias)f
-Fu(and)g Ft(unalias)e Fu(builtins)j(\(see)g(Sec-)630
-2182 y(tion)31 b(6.6)g([Aliases],)i(page)e(94\).)150
-2344 y Ft(--enable-arith-for-comma)o(nd)630 2453 y Fu(Include)21
+Fu('.)275 4617 y(All)133 b(of)g(the)g(follo)m(wing)i(options)e(except)h
+(for)f(`)p Ft(alt-array-implementation)o Fu(',)150 4727
+y(`)p Ft(disabled-builtins)p Fu(',)212 b(`)p Ft(direxpand-default)p
+Fu(',)h(`)p Ft(strict-posix-default)p Fu(',)f(and)150
+4836 y(`)p Ft(xpg-echo-default)p Fu(')28 b(are)33 b(enabled)f(b)m(y)g
+(default,)h(unless)e(the)i(op)s(erating)f(system)h(do)s(es)e(not)i(pro)
+m(vide)150 4946 y(the)e(necessary)f(supp)s(ort.)150 5121
+y Ft(--enable-alias)630 5230 y Fu(Allo)m(w)41 b(alias)g(expansion)f
+(and)f(include)g(the)h Ft(alias)f Fu(and)g Ft(unalias)e
+Fu(builtins)j(\(see)g(Sec-)630 5340 y(tion)31 b(6.6)g([Aliases],)i
+(page)e(100\).)p eop end
+%%Page: 163 169
+TeXDict begin 163 168 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(163)150 299 y Ft
+(--enable-alt-array-imple)o(ment)o(atio)o(n)630 408 y
+Fu(This)33 b(builds)g(bash)g(using)h(an)g(alternate)i(implemen)m
+(tation)f(of)g(arra)m(ys)f(\(see)h(Section)g(6.7)630
+518 y([Arra)m(ys],)43 b(page)d(100\))h(that)f(pro)m(vides)g(faster)g
+(access)h(at)f(the)g(exp)s(ense)f(of)h(using)f(more)630
+628 y(memory)30 b(\(sometimes)i(man)m(y)e(times)h(more,)g(dep)s(ending)
+e(on)h(ho)m(w)h(sparse)f(an)g(arra)m(y)h(is\).)150 774
+y Ft(--enable-arith-for-comma)o(nd)630 883 y Fu(Include)21
b(supp)s(ort)g(for)g(the)i(alternate)g(form)f(of)g(the)g
Ft(for)f Fu(command)h(that)h(b)s(eha)m(v)m(es)f(lik)m(e)i(the)630
-2563 y(C)30 b(language)i Ft(for)d Fu(statemen)m(t)j(\(see)g(Section)f
-(3.2.5.1)i([Lo)s(oping)d(Constructs],)h(page)g(10\).)150
-2725 y Ft(--enable-array-variables)630 2834 y Fu(Include)h(supp)s(ort)g
+993 y(C)30 b(language)i Ft(for)d Fu(statemen)m(t)j(\(see)g(Section)f
+(3.2.5.1)i([Lo)s(oping)d(Constructs],)h(page)g(11\).)150
+1139 y Ft(--enable-array-variables)630 1249 y Fu(Include)h(supp)s(ort)g
(for)h(one-dimensional)h(arra)m(y)f(shell)h(v)-5 b(ariables)33
-b(\(see)h(Section)g(6.7)h([Ar-)630 2944 y(ra)m(ys],)c(page)g(95\).)150
-3106 y Ft(--enable-bang-history)630 3215 y Fu(Include)36
+b(\(see)h(Section)g(6.7)h([Ar-)630 1358 y(ra)m(ys],)c(page)g(100\).)150
+1504 y Ft(--enable-bang-history)630 1614 y Fu(Include)36
b(supp)s(ort)f(for)h Ft(csh)p Fu(-lik)m(e)h(history)g(substitution)f
-(\(see)h(Section)g(9.3)h([History)f(In-)630 3325 y(teraction],)c(page)e
-(148\).)150 3487 y Ft(--enable-brace-expansion)630 3597
+(\(see)h(Section)g(9.3)h([History)f(In-)630 1724 y(teraction],)c(page)e
+(154\).)150 1870 y Ft(--enable-brace-expansion)630 1979
y Fu(Include)40 b Ft(csh)p Fu(-lik)m(e)h(brace)f(expansion)g(\()h
Ft(b{a,b}c)d Fq(7!)i Ft(bac)30 b(bbc)39 b Fu(\).)71 b(See)40
-b(Section)h(3.5.1)630 3706 y([Brace)32 b(Expansion],)e(page)h(23,)h
-(for)e(a)g(complete)i(description.)150 3868 y Ft
-(--enable-casemod-attribu)o(tes)630 3978 y Fu(Include)37
+b(Section)h(3.5.1)630 2089 y([Brace)32 b(Expansion],)e(page)h(24,)h
+(for)e(a)g(complete)i(description.)150 2235 y Ft
+(--enable-casemod-attribu)o(tes)630 2345 y Fu(Include)37
b(supp)s(ort)g(for)g(case-mo)s(difying)i(attributes)g(in)e(the)h
-Ft(declare)e Fu(builtin)i(and)f(as-)630 4087 y(signmen)m(t)29
-b(statemen)m(ts.)41 b(V)-8 b(ariables)30 b(with)e(the)g
-Fr(upp)s(ercase)k Fu(attribute,)e(for)e(example,)i(will)630
-4197 y(ha)m(v)m(e)i(their)e(v)-5 b(alues)31 b(con)m(v)m(erted)h(to)f
-(upp)s(ercase)e(up)s(on)g(assignmen)m(t.)150 4359 y Ft
-(--enable-casemod-expansi)o(on)630 4468 y Fu(Include)h(supp)s(ort)e
-(for)i(case-mo)s(difying)i(w)m(ord)e(expansions.)150
-4630 y Ft(--enable-command-timing)630 4740 y Fu(Include)43
+Ft(declare)e Fu(builtin)i(and)f(as-)630 2454 y(signmen)m(t)43
+b(statemen)m(ts.)78 b(V)-8 b(ariables)44 b(with)e(the)g
+Ft(uppercase)e Fu(attribute,)46 b(for)c(example,)630
+2564 y(will)31 b(ha)m(v)m(e)g(their)g(v)-5 b(alues)30
+b(con)m(v)m(erted)i(to)f(upp)s(ercase)f(up)s(on)f(assignmen)m(t.)150
+2710 y Ft(--enable-casemod-expansi)o(on)630 2819 y Fu(Include)h(supp)s
+(ort)e(for)i(case-mo)s(difying)i(w)m(ord)e(expansions.)150
+2966 y Ft(--enable-command-timing)630 3075 y Fu(Include)43
b(supp)s(ort)f(for)h(recognizing)i Ft(time)e Fu(as)g(a)h(reserv)m(ed)g
-(w)m(ord)f(and)g(for)h(displa)m(ying)630 4849 y(timing)37
+(w)m(ord)f(and)g(for)h(displa)m(ying)630 3185 y(timing)37
b(statistics)h(for)e(the)g(pip)s(eline)g(follo)m(wing)i
Ft(time)d Fu(\(see)i(Section)g(3.2.3)h([Pip)s(elines],)630
-4959 y(page)24 b(8\).)39 b(This)23 b(allo)m(ws)h(pip)s(elines)f(as)h(w)
-m(ell)g(as)g(shell)f(builtins)g(and)g(functions)g(to)h(b)s(e)e(timed.)
-150 5121 y Ft(--enable-cond-command)630 5230 y Fu(Include)33
-b(supp)s(ort)f(for)i(the)g Ft([[)f Fu(conditional)i(command.)51
-b(\(see)34 b(Section)h(3.2.5.2)h([Condi-)630 5340 y(tional)c
-(Constructs],)e(page)h(11\).)p eop end
-%%Page: 157 163
-TeXDict begin 157 162 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(157)150 299 y Ft(--enable-cond-regexp)630
-408 y Fu(Include)35 b(supp)s(ort)f(for)i(matc)m(hing)h
-Fm(posix)e Fu(regular)h(expressions)g(using)f(the)h(`)p
-Ft(=~)p Fu(')g(binary)630 518 y(op)s(erator)25 b(in)f(the)h
+3294 y(page)j(10\).)70 b(This)40 b(allo)m(ws)h(pip)s(elines)e(as)h(w)m
+(ell)h(as)f(shell)h(builtins)e(and)g(functions)h(to)h(b)s(e)630
+3404 y(timed.)150 3550 y Ft(--enable-cond-command)630
+3660 y Fu(Include)33 b(supp)s(ort)f(for)i(the)g Ft([[)f
+Fu(conditional)i(command.)51 b(\(see)34 b(Section)h(3.2.5.2)h([Condi-)
+630 3769 y(tional)c(Constructs],)e(page)h(12\).)150 3915
+y Ft(--enable-cond-regexp)630 4025 y Fu(Include)k(supp)s(ort)f(for)i
+(matc)m(hing)h Fm(posix)e Fu(regular)h(expressions)g(using)f(the)h(`)p
+Ft(=~)p Fu(')g(binary)630 4134 y(op)s(erator)25 b(in)f(the)h
Ft([[)f Fu(conditional)h(command.)39 b(\(see)25 b(Section)h(3.2.5.2)h
-([Conditional)e(Con-)630 628 y(structs],)31 b(page)g(11\).)150
-774 y Ft(--enable-coprocesses)630 883 y Fu(Include)23
+([Conditional)e(Con-)630 4244 y(structs],)31 b(page)g(12\).)150
+4390 y Ft(--enable-coprocesses)630 4500 y Fu(Include)23
b(supp)s(ort)f(for)i(copro)s(cesses)g(and)f(the)h Ft(coproc)e
Fu(reserv)m(ed)i(w)m(ord)g(\(see)h(Section)f(3.2.3)630
-993 y([Pip)s(elines],)31 b(page)g(8\).)150 1139 y Ft(--enable-debugger)
-630 1249 y Fu(Include)f(supp)s(ort)e(for)i(the)h(bash)f(debugger)g
-(\(distributed)g(separately\).)150 1395 y Ft(--enable-dev-fd-stat-bro)o
-(ken)630 1504 y Fu(If)c(calling)j Ft(stat)d Fu(on)g(/dev/fd/)p
-Fr(N)38 b Fu(returns)25 b(di\013eren)m(t)j(results)f(than)f(calling)j
-Ft(fstat)c Fu(on)i(\014le)630 1614 y(descriptor)g Fr(N)p
-Fu(,)i(supply)c(this)j(option)g(to)g(enable)f(a)h(w)m(ork)-5
-b(around.)39 b(This)27 b(has)g(implications)630 1724
-y(for)j(conditional)i(commands)e(that)h(test)g(\014le)g(attributes.)150
-1870 y Ft(--enable-direxpand-defau)o(lt)630 1979 y Fu(Cause)53
+4609 y([Pip)s(elines],)31 b(page)g(10\).)150 4756 y Ft
+(--enable-debugger)630 4865 y Fu(Include)f(supp)s(ort)e(for)i(the)h
+(bash)f(debugger)g(\(distributed)g(separately\).)150
+5011 y Ft(--enable-dev-fd-stat-bro)o(ken)630 5121 y Fu(If)c(calling)j
+Ft(stat)d Fu(on)g(/dev/fd/)p Fr(N)38 b Fu(returns)25
+b(di\013eren)m(t)j(results)f(than)f(calling)j Ft(fstat)c
+Fu(on)i(\014le)630 5230 y(descriptor)g Fr(N)p Fu(,)i(supply)c(this)j
+(option)g(to)g(enable)f(a)h(w)m(ork)-5 b(around.)39 b(This)27
+b(has)g(implications)630 5340 y(for)j(conditional)i(commands)e(that)h
+(test)g(\014le)g(attributes.)p eop end
+%%Page: 164 170
+TeXDict begin 164 169 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(164)150 299 y Ft
+(--enable-direxpand-defau)o(lt)630 408 y Fu(Cause)53
b(the)g Ft(direxpand)d Fu(shell)j(option)h(\(see)g(Section)f(4.3.2)i
-([The)e(Shopt)f(Builtin],)630 2089 y(page)29 b(66\))g(to)f(b)s(e)f
+([The)e(Shopt)f(Builtin],)630 518 y(page)29 b(71\))g(to)f(b)s(e)f
(enabled)h(b)m(y)g(default)g(when)e(the)i(shell)g(starts.)41
-b(It)27 b(is)h(normally)g(disabled)630 2198 y(b)m(y)i(default.)150
-2345 y Ft(--enable-directory-stack)630 2454 y Fu(Include)j(supp)s(ort)g
+b(It)27 b(is)h(normally)g(disabled)630 628 y(b)m(y)i(default.)150
+807 y Ft(--enable-directory-stack)630 917 y Fu(Include)j(supp)s(ort)g
(for)h(a)g Ft(csh)p Fu(-lik)m(e)h(directory)f(stac)m(k)i(and)d(the)i
Ft(pushd)p Fu(,)f Ft(popd)p Fu(,)g(and)f Ft(dirs)630
-2564 y Fu(builtins)d(\(see)h(Section)g(6.8)h([The)e(Directory)i(Stac)m
-(k],)g(page)f(97\).)150 2710 y Ft(--enable-disabled-builti)o(ns)630
-2819 y Fu(Allo)m(w)40 b(builtin)e(commands)g(to)h(b)s(e)f(in)m(v)m(ok)m
+1026 y Fu(builtins)d(\(see)h(Section)g(6.8)h([The)e(Directory)i(Stac)m
+(k],)g(page)f(102\).)150 1205 y Ft(--enable-disabled-builti)o(ns)630
+1315 y Fu(Allo)m(w)40 b(builtin)e(commands)g(to)h(b)s(e)f(in)m(v)m(ok)m
(ed)i(via)f(`)p Ft(builtin)29 b(xxx)p Fu(')37 b(ev)m(en)j(after)f
-Ft(xxx)e Fu(has)630 2929 y(b)s(een)31 b(disabled)g(using)g(`)p
+Ft(xxx)e Fu(has)630 1425 y(b)s(een)31 b(disabled)g(using)g(`)p
Ft(enable)d(-n)i(xxx)p Fu('.)43 b(See)32 b(Section)g(4.2)h([Bash)e
-(Builtins],)i(page)f(51,)630 3039 y(for)e(details)i(of)e(the)h
+(Builtins],)i(page)f(55,)630 1534 y(for)e(details)i(of)e(the)h
Ft(builtin)d Fu(and)i Ft(enable)e Fu(builtin)i(commands.)150
-3185 y Ft(--enable-dparen-arithmet)o(ic)630 3294 y Fu(Include)42
+1714 y Ft(--enable-dparen-arithmet)o(ic)630 1823 y Fu(Include)42
b(supp)s(ort)f(for)h(the)h Ft(\(\(...)o(\)\))f Fu(command)g(\(see)i
-(Section)f(3.2.5.2)i([Conditional)630 3404 y(Constructs],)30
-b(page)h(11\).)150 3550 y Ft(--enable-extended-glob)630
-3660 y Fu(Include)40 b(supp)s(ort)e(for)i(the)h(extended)f(pattern)h
+(Section)f(3.2.5.2)i([Conditional)630 1933 y(Constructs],)30
+b(page)h(12\).)150 2112 y Ft(--enable-extended-glob)630
+2222 y Fu(Include)40 b(supp)s(ort)e(for)i(the)h(extended)f(pattern)h
(matc)m(hing)g(features)g(describ)s(ed)e(ab)s(o)m(v)m(e)630
-3769 y(under)29 b(Section)i(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)i
-(page)e(33.)150 3915 y Ft(--enable-extended-glob-d)o(efau)o(lt)630
-4025 y Fu(Set)40 b(the)g(default)g(v)-5 b(alue)41 b(of)f(the)g
-Fr(extglob)j Fu(shell)d(option)g(describ)s(ed)f(ab)s(o)m(v)m(e)i(under)
-d(Sec-)630 4134 y(tion)31 b(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g
-(66,)h(to)f(b)s(e)f(enabled.)150 4281 y Ft(--enable-function-import)630
-4390 y Fu(Include)23 b(supp)s(ort)g(for)g(imp)s(orting)h(function)g
+2331 y(under)29 b(Section)i(3.5.8.1)i([P)m(attern)e(Matc)m(hing],)i
+(page)e(36.)150 2511 y Ft(--enable-extended-glob-d)o(efau)o(lt)630
+2620 y Fu(Set)37 b(the)f(default)h(v)-5 b(alue)37 b(of)f(the)h
+Ft(extglob)d Fu(shell)j(option)g(describ)s(ed)e(ab)s(o)m(v)m(e)j(under)
+c(Sec-)630 2730 y(tion)d(4.3.2)h([The)e(Shopt)g(Builtin],)h(page)g(71,)
+h(to)f(b)s(e)f(enabled.)150 2909 y Ft(--enable-function-import)630
+3019 y Fu(Include)23 b(supp)s(ort)g(for)g(imp)s(orting)h(function)g
(de\014nitions)f(exp)s(orted)h(b)m(y)g(another)g(instance)630
-4500 y(of)31 b(the)f(shell)h(from)f(the)g(en)m(vironmen)m(t.)41
+3128 y(of)31 b(the)f(shell)h(from)f(the)g(en)m(vironmen)m(t.)41
b(This)30 b(option)h(is)f(enabled)h(b)m(y)f(default.)150
-4646 y Ft(--enable-glob-asciirange)o(-def)o(ault)630
-4756 y Fu(Set)h(the)g(default)f(v)-5 b(alue)31 b(of)g(the)g
-Fr(globasciiranges)36 b Fu(shell)31 b(option)g(describ)s(ed)f(ab)s(o)m
-(v)m(e)h(under)630 4865 y(Section)39 b(4.3.2)h([The)e(Shopt)g
-(Builtin],)j(page)e(66,)i(to)f(b)s(e)d(enabled.)65 b(This)37
-b(con)m(trols)j(the)630 4975 y(b)s(eha)m(vior)21 b(of)g(c)m(haracter)h
-(ranges)f(when)f(used)g(in)g(pattern)h(matc)m(hing)h(brac)m(k)m(et)g
-(expressions.)150 5121 y Ft(--enable-help-builtin)630
-5230 y Fu(Include)i(the)h Ft(help)f Fu(builtin,)h(whic)m(h)g(displa)m
-(ys)f(help)h(on)f(shell)h(builtins)f(and)h(v)-5 b(ariables)25
-b(\(see)630 5340 y(Section)31 b(4.2)h([Bash)e(Builtins],)i(page)f
-(51\).)p eop end
-%%Page: 158 164
-TeXDict begin 158 163 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(158)150 299 y Ft(--enable-history)630
-408 y Fu(Include)29 b(command)g(history)h(and)f(the)h
-Ft(fc)f Fu(and)g Ft(history)e Fu(builtin)j(commands)f(\(see)h(Sec-)630
-518 y(tion)h(9.1)g([Bash)g(History)g(F)-8 b(acilities],)34
-b(page)d(146\).)150 664 y Ft(--enable-job-control)630
-774 y Fu(This)h(enables)i(the)f(job)g(con)m(trol)i(features)e(\(see)i
-(Chapter)d(7)i([Job)f(Con)m(trol],)i(page)f(107\),)630
-883 y(if)c(the)h(op)s(erating)g(system)f(supp)s(orts)f(them.)150
-1029 y Ft(--enable-multibyte)630 1139 y Fu(This)g(enables)i(supp)s(ort)
-d(for)i(m)m(ultib)m(yte)h(c)m(haracters)g(if)f(the)g(op)s(erating)h
-(system)f(pro)m(vides)630 1249 y(the)h(necessary)f(supp)s(ort.)150
-1395 y Ft(--enable-net-redirection)o(s)630 1504 y Fu(This)23
-b(enables)h(the)g(sp)s(ecial)h(handling)e(of)h(\014lenames)g(of)g(the)g
-(form)g Ft(/dev/tcp/)p Fj(host)p Ft(/)p Fj(port)630 1614
-y Fu(and)31 b Ft(/dev/udp/)p Fj(host)p Ft(/)p Fj(port)26
-b Fu(when)31 b(used)g(in)g(redirections)h(\(see)g(Section)g(3.6)h
-([Redirec-)630 1724 y(tions],)e(page)g(35\).)150 1870
-y Ft(--enable-process-substit)o(utio)o(n)630 1979 y Fu(This)49
-b(enables)i(pro)s(cess)f(substitution)g(\(see)h(Section)g(3.5.6)h([Pro)
-s(cess)e(Substitution],)630 2089 y(page)31 b(32\))h(if)e(the)h(op)s
-(erating)f(system)h(pro)m(vides)f(the)h(necessary)g(supp)s(ort.)150
-2235 y Ft(--enable-progcomp)630 2345 y Fu(Enable)d(the)g(programmable)g
-(completion)i(facilities)g(\(see)f(Section)g(8.6)g([Programmable)630
-2454 y(Completion],)i(page)h(137\).)42 b(If)30 b(Readline)h(is)f(not)h
-(enabled,)f(this)h(option)g(has)f(no)g(e\013ect.)150
-2600 y Ft(--enable-prompt-string-d)o(ecod)o(ing)630 2710
-y Fu(T)-8 b(urn)30 b(on)i(the)f(in)m(terpretation)i(of)f(a)g(n)m(um)m
-(b)s(er)e(of)i(bac)m(kslash-escap)s(ed)g(c)m(haracters)i(in)d(the)630
-2819 y Ft($PS0)p Fu(,)36 b Ft($PS1)p Fu(,)g Ft($PS2)p
-Fu(,)h(and)e Ft($PS4)f Fu(prompt)h(strings.)57 b(See)36
-b(Section)h(6.9)g([Con)m(trolling)g(the)630 2929 y(Prompt],)30
-b(page)h(98,)h(for)e(a)h(complete)h(list)f(of)f(prompt)g(string)g
-(escap)s(e)h(sequences.)150 3075 y Ft(--enable-readline)630
-3185 y Fu(Include)d(supp)s(ort)f(for)h(command-line)h(editing)g(and)f
-(history)g(with)g(the)h(Bash)g(v)m(ersion)g(of)630 3294
-y(the)i(Readline)g(library)f(\(see)h(Chapter)f(8)g([Command)g(Line)g
-(Editing],)h(page)g(111\).)150 3440 y Ft(--enable-restricted)630
-3550 y Fu(Include)41 b(supp)s(ort)f(for)i(a)g Fr(restricted)g(shell)p
-Fu(.)75 b(If)42 b(this)f(is)h(enabled,)j(Bash,)g(when)c(called)630
-3660 y(as)f Ft(rbash)p Fu(,)h(en)m(ters)f(a)g(restricted)h(mo)s(de.)68
-b(See)40 b(Section)h(6.10)g([The)f(Restricted)h(Shell],)630
-3769 y(page)31 b(100,)h(for)e(a)h(description)f(of)h(restricted)g(mo)s
-(de.)150 3915 y Ft(--enable-select)630 4025 y Fu(Include)25
-b(the)h Ft(select)f Fu(comp)s(ound)f(command,)j(whic)m(h)e(allo)m(ws)j
-(the)e(generation)h(of)f(simple)630 4134 y(men)m(us)k(\(see)h(Section)g
-(3.2.5.2)i([Conditional)e(Constructs],)g(page)g(11\).)150
-4281 y Ft(--enable-separate-helpfi)o(les)630 4390 y Fu(Use)h(external)h
-(\014les)f(for)g(the)g(do)s(cumen)m(tation)h(displa)m(y)m(ed)f(b)m(y)g
-(the)g Ft(help)f Fu(builtin)h(instead)630 4500 y(of)f(storing)f(the)h
-(text)g(in)m(ternally)-8 b(.)150 4646 y Ft(--enable-single-help-str)o
-(ings)630 4756 y Fu(Store)40 b(the)g(text)h(displa)m(y)m(ed)g(b)m(y)e
-(the)i Ft(help)d Fu(builtin)i(as)g(a)g(single)h(string)f(for)f(eac)m(h)
-i(help)630 4865 y(topic.)54 b(This)33 b(aids)i(in)f(translating)h(the)g
-(text)g(to)g(di\013eren)m(t)g(languages.)54 b(Y)-8 b(ou)35
-b(ma)m(y)g(need)630 4975 y(to)c(disable)g(this)f(if)g(y)m(our)h
-(compiler)g(cannot)f(handle)g(v)m(ery)h(long)g(string)f(literals.)150
-5121 y Ft(--enable-strict-posix-de)o(faul)o(t)630 5230
-y Fu(Mak)m(e)c(Bash)f Fm(posix)p Fu(-conforman)m(t)g(b)m(y)f(default)h
-(\(see)g(Section)h(6.11)g([Bash)f(POSIX)e(Mo)s(de],)630
-5340 y(page)31 b(101\).)p eop end
-%%Page: 159 165
-TeXDict begin 159 164 bop 150 -116 a Fu(Chapter)30 b(10:)41
-b(Installing)31 b(Bash)2356 b(159)150 299 y Ft
-(--enable-usg-echo-defaul)o(t)630 408 y Fu(A)30 b(synon)m(ym)g(for)g
-Ft(--enable-xpg-echo-default)p Fu(.)150 568 y Ft
-(--enable-xpg-echo-defaul)o(t)630 677 y Fu(Mak)m(e)c(the)f
+3308 y Ft(--enable-glob-asciirange)o(-def)o(ault)630
+3417 y Fu(Set)f(the)f(default)h(v)-5 b(alue)29 b(of)f(the)h
+Ft(globasciiranges)24 b Fu(shell)29 b(option)g(describ)s(ed)e(ab)s(o)m
+(v)m(e)j(un-)630 3527 y(der)c(Section)i(4.3.2)h([The)d(Shopt)g
+(Builtin],)j(page)f(71,)g(to)g(b)s(e)e(enabled.)40 b(This)26
+b(con)m(trols)i(the)630 3636 y(b)s(eha)m(vior)40 b(of)f(c)m(haracter)i
+(ranges)f(when)f(used)f(in)i(pattern)f(matc)m(hing)i(brac)m(k)m(et)g
+(expres-)630 3746 y(sions.)150 3925 y Ft(--enable-help-builtin)630
+4035 y Fu(Include)24 b(the)h Ft(help)f Fu(builtin,)h(whic)m(h)g(displa)
+m(ys)f(help)h(on)f(shell)h(builtins)f(and)h(v)-5 b(ariables)25
+b(\(see)630 4144 y(Section)31 b(4.2)h([Bash)e(Builtins],)i(page)f
+(55\).)150 4324 y Ft(--enable-history)630 4433 y Fu(Include)e(command)g
+(history)h(and)f(the)h Ft(fc)f Fu(and)g Ft(history)e
+Fu(builtin)j(commands)f(\(see)h(Sec-)630 4543 y(tion)h(9.1)g([Bash)g
+(History)g(F)-8 b(acilities],)34 b(page)d(152\).)150
+4722 y Ft(--enable-job-control)630 4832 y Fu(This)h(enables)i(the)f
+(job)g(con)m(trol)i(features)e(\(see)i(Chapter)d(7)i([Job)f(Con)m
+(trol],)i(page)f(113\),)630 4941 y(if)c(the)h(op)s(erating)g(system)f
+(supp)s(orts)f(them.)150 5121 y Ft(--enable-multibyte)630
+5230 y Fu(This)g(enables)i(supp)s(ort)d(for)i(m)m(ultib)m(yte)h(c)m
+(haracters)g(if)f(the)g(op)s(erating)h(system)f(pro)m(vides)630
+5340 y(the)h(necessary)f(supp)s(ort.)p eop end
+%%Page: 165 171
+TeXDict begin 165 170 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(165)150 299 y Ft
+(--enable-net-redirection)o(s)630 408 y Fu(This)23 b(enables)h(the)g
+(sp)s(ecial)h(handling)e(of)h(\014lenames)g(of)g(the)g(form)g
+Ft(/dev/tcp/)p Fj(host)p Ft(/)p Fj(port)630 518 y Fu(and)31
+b Ft(/dev/udp/)p Fj(host)p Ft(/)p Fj(port)26 b Fu(when)31
+b(used)g(in)g(redirections)h(\(see)g(Section)g(3.6)h([Redirec-)630
+628 y(tions],)e(page)g(38\).)150 787 y Ft(--enable-process-substit)o
+(utio)o(n)630 897 y Fu(This)49 b(enables)i(pro)s(cess)f(substitution)g
+(\(see)h(Section)g(3.5.6)h([Pro)s(cess)e(Substitution],)630
+1006 y(page)31 b(34\))h(if)e(the)h(op)s(erating)f(system)h(pro)m(vides)
+f(the)h(necessary)g(supp)s(ort.)150 1166 y Ft(--enable-progcomp)630
+1275 y Fu(Enable)d(the)g(programmable)g(completion)i(facilities)g
+(\(see)f(Section)g(8.6)g([Programmable)630 1385 y(Completion],)i(page)h
+(143\).)42 b(If)30 b(Readline)h(is)f(not)h(enabled,)f(this)h(option)g
+(has)f(no)g(e\013ect.)150 1544 y Ft(--enable-prompt-string-d)o(ecod)o
+(ing)630 1654 y Fu(T)-8 b(urn)30 b(on)i(the)f(in)m(terpretation)i(of)f
+(a)g(n)m(um)m(b)s(er)e(of)i(bac)m(kslash-escap)s(ed)g(c)m(haracters)i
+(in)d(the)630 1763 y Ft($PS0)p Fu(,)36 b Ft($PS1)p Fu(,)g
+Ft($PS2)p Fu(,)h(and)e Ft($PS4)f Fu(prompt)h(strings.)57
+b(See)36 b(Section)h(6.9)g([Con)m(trolling)g(the)630
+1873 y(Prompt],)30 b(page)h(104,)h(for)f(a)f(complete)i(list)f(of)g
+(prompt)e(string)i(escap)s(e)f(sequences.)150 2032 y
+Ft(--enable-readline)630 2142 y Fu(Include)e(supp)s(ort)f(for)h
+(command-line)h(editing)g(and)f(history)g(with)g(the)h(Bash)g(v)m
+(ersion)g(of)630 2252 y(the)i(Readline)g(library)f(\(see)h(Chapter)f(8)
+g([Command)g(Line)g(Editing],)h(page)g(117\).)150 2411
+y Ft(--enable-restricted)630 2521 y Fu(Include)41 b(supp)s(ort)f(for)i
+(a)g Fr(restricted)g(shell)p Fu(.)75 b(If)42 b(this)f(is)h(enabled,)j
+(Bash,)g(when)c(called)630 2630 y(as)f Ft(rbash)p Fu(,)h(en)m(ters)f(a)
+g(restricted)h(mo)s(de.)68 b(See)40 b(Section)h(6.10)g([The)f
+(Restricted)h(Shell],)630 2740 y(page)31 b(105,)h(for)e(a)h
+(description)f(of)h(restricted)g(mo)s(de.)150 2899 y
+Ft(--enable-select)630 3009 y Fu(Include)25 b(the)h Ft(select)f
+Fu(comp)s(ound)f(command,)j(whic)m(h)e(allo)m(ws)j(the)e(generation)h
+(of)f(simple)630 3118 y(men)m(us)k(\(see)h(Section)g(3.2.5.2)i
+([Conditional)e(Constructs],)g(page)g(12\).)150 3278
+y Ft(--enable-single-help-str)o(ings)630 3387 y Fu(Store)40
+b(the)g(text)h(displa)m(y)m(ed)g(b)m(y)e(the)i Ft(help)d
+Fu(builtin)i(as)g(a)g(single)h(string)f(for)f(eac)m(h)i(help)630
+3497 y(topic.)54 b(This)33 b(aids)i(in)f(translating)h(the)g(text)g(to)
+g(di\013eren)m(t)g(languages.)54 b(Y)-8 b(ou)35 b(ma)m(y)g(need)630
+3606 y(to)c(disable)g(this)f(if)g(y)m(our)h(compiler)g(cannot)f(handle)
+g(v)m(ery)h(long)g(string)f(literals.)150 3766 y Ft
+(--enable-strict-posix-de)o(faul)o(t)630 3875 y Fu(Mak)m(e)c(Bash)f
+Fm(posix)p Fu(-conforman)m(t)g(b)m(y)f(default)h(\(see)g(Section)h
+(6.11)g([Bash)f(POSIX)e(Mo)s(de],)630 3985 y(page)31
+b(106\).)150 4144 y Ft(--enable-translatable-st)o(ring)o(s)630
+4254 y Fu(Enable)h(supp)s(ort)e(for)i Ft($")p Fj(string)p
+Ft(")e Fu(translatable)j(strings)f(\(see)h(Section)g(3.1.2.5)h([Lo)s
+(cale)630 4364 y(T)-8 b(ranslation],)32 b(page)f(7\).)150
+4523 y Ft(--enable-usg-echo-defaul)o(t)630 4633 y Fu(A)f(synon)m(ym)g
+(for)g Ft(--enable-xpg-echo-default)p Fu(.)150 4792 y
+Ft(--enable-xpg-echo-defaul)o(t)630 4902 y Fu(Mak)m(e)c(the)f
Ft(echo)e Fu(builtin)i(expand)f(bac)m(kslash-escap)s(ed)h(c)m
-(haracters)h(b)m(y)f(default,)h(without)630 787 y(requiring)d(the)h
+(haracters)h(b)m(y)f(default,)h(without)630 5011 y(requiring)d(the)h
Ft(-e)f Fu(option.)39 b(This)23 b(sets)h(the)g(default)g(v)-5
b(alue)24 b(of)g(the)g Ft(xpg_echo)e Fu(shell)h(option)630
-897 y(to)28 b Ft(on)p Fu(,)g(whic)m(h)f(mak)m(es)h(the)g(Bash)f
+5121 y(to)28 b Ft(on)p Fu(,)g(whic)m(h)f(mak)m(es)h(the)g(Bash)f
Ft(echo)f Fu(b)s(eha)m(v)m(e)i(more)g(lik)m(e)h(the)e(v)m(ersion)h(sp)s
-(eci\014ed)f(in)g(the)630 1006 y(Single)35 b(Unix)f(Sp)s
+(eci\014ed)f(in)g(the)630 5230 y(Single)35 b(Unix)f(Sp)s
(eci\014cation,)i(v)m(ersion)e(3.)53 b(See)35 b(Section)g(4.2)g([Bash)g
-(Builtins],)h(page)f(51,)630 1116 y(for)30 b(a)h(description)f(of)h
-(the)f(escap)s(e)h(sequences)g(that)g Ft(echo)e Fu(recognizes.)275
-1275 y(The)f(\014le)i Ft(config-top.h)c Fu(con)m(tains)31
-b(C)d(Prepro)s(cessor)h(`)p Ft(#define)p Fu(')f(statemen)m(ts)j(for)f
-(options)f(whic)m(h)150 1385 y(are)35 b(not)g(settable)i(from)d
-Ft(configure)p Fu(.)51 b(Some)35 b(of)g(these)g(are)h(not)f(mean)m(t)g
-(to)h(b)s(e)e(c)m(hanged;)k(b)s(ew)m(are)d(of)150 1494
-y(the)h(consequences)g(if)f(y)m(ou)h(do.)55 b(Read)36
-b(the)g(commen)m(ts)g(asso)s(ciated)h(with)e(eac)m(h)i(de\014nition)e
-(for)g(more)150 1604 y(information)c(ab)s(out)f(its)h(e\013ect.)p
+(Builtins],)h(page)f(55,)630 5340 y(for)30 b(a)h(description)f(of)h
+(the)f(escap)s(e)h(sequences)g(that)g Ft(echo)e Fu(recognizes.)p
eop end
-%%Page: 160 166
-TeXDict begin 160 165 bop 3614 -116 a Fu(160)150 299
+%%Page: 166 172
+TeXDict begin 166 171 bop 150 -116 a Fu(Chapter)30 b(10:)41
+b(Installing)31 b(Bash)2356 b(166)275 299 y(The)28 b(\014le)i
+Ft(config-top.h)c Fu(con)m(tains)31 b(C)d(Prepro)s(cessor)h(`)p
+Ft(#define)p Fu(')f(statemen)m(ts)j(for)f(options)f(whic)m(h)150
+408 y(are)35 b(not)g(settable)i(from)d Ft(configure)p
+Fu(.)51 b(Some)35 b(of)g(these)g(are)h(not)f(mean)m(t)g(to)h(b)s(e)e(c)
+m(hanged;)k(b)s(ew)m(are)d(of)150 518 y(the)h(consequences)g(if)f(y)m
+(ou)h(do.)55 b(Read)36 b(the)g(commen)m(ts)g(asso)s(ciated)h(with)e
+(eac)m(h)i(de\014nition)e(for)g(more)150 628 y(information)c(ab)s(out)f
+(its)h(e\013ect.)p eop end
+%%Page: 167 173
+TeXDict begin 167 172 bop 3614 -116 a Fu(167)150 299
y Fp(App)t(endix)52 b(A)81 b(Rep)t(orting)53 b(Bugs)150
533 y Fu(Please)33 b(rep)s(ort)e(all)h(bugs)f(y)m(ou)h(\014nd)e(in)i
(Bash.)44 b(But)32 b(\014rst,)g(y)m(ou)g(should)e(mak)m(e)j(sure)e
(that)h(it)g(really)h(is)f(a)150 643 y(bug,)d(and)g(that)h(it)g(app)s
(ears)f(in)g(the)h(latest)h(v)m(ersion)f(of)g(Bash.)40
b(The)29 b(latest)j(v)m(ersion)e(of)f(Bash)h(is)f(alw)m(a)m(ys)150
-752 y(a)m(v)-5 b(ailable)33 b(for)d(FTP)g(from)g Ft
-(ftp://ftp.gnu.org/pub/gn)o(u/ba)o(sh/)o Fu(.)275 887
-y(Once)41 b(y)m(ou)g(ha)m(v)m(e)h(determined)f(that)h(a)f(bug)g
-(actually)h(exists,)j(use)c(the)g Ft(bashbug)e Fu(command)i(to)150
-996 y(submit)25 b(a)h(bug)g(rep)s(ort.)38 b(If)26 b(y)m(ou)g(ha)m(v)m
-(e)h(a)f(\014x,)h(y)m(ou)f(are)g(encouraged)h(to)f(mail)h(that)f(as)g
-(w)m(ell!)40 b(Suggestions)150 1106 y(and)j(`philosophical')i(bug)e
-(rep)s(orts)f(ma)m(y)j(b)s(e)e(mailed)h(to)g Ft(bug-bash@gnu)11
-b(.)g(org)39 b Fu(or)k(p)s(osted)g(to)i(the)150 1215
-y(Usenet)31 b(newsgroup)e Ft(gnu.bash.bug)p Fu(.)275
-1350 y(All)i(bug)e(rep)s(orts)h(should)f(include:)225
-1484 y Fq(\017)60 b Fu(The)30 b(v)m(ersion)h(n)m(um)m(b)s(er)e(of)h
-(Bash.)225 1619 y Fq(\017)60 b Fu(The)30 b(hardw)m(are)g(and)g(op)s
-(erating)g(system.)225 1753 y Fq(\017)60 b Fu(The)30
-b(compiler)h(used)e(to)i(compile)h(Bash.)225 1888 y Fq(\017)60
+752 y(a)m(v)-5 b(ailable)43 b(for)d(FTP)g(from)g Ft(ftp:)8
+b(/)g(/)g(ftp)g(.)g(gnu)g(.)g(org)g(/)g(pub)g(/)g(gnu)g(/)g(bash)g(/)45
+b Fu(and)40 b(from)g Ft(http:)8 b(/)g(/)g(git)g(.)150
+862 y(savannah.gnu.org/cgit/ba)o(sh.g)o(it/s)o(nap)o(shot)o(/bas)o(h-m)
+o(aste)o(r.ta)o(r.g)o(z)p Fu(.)275 996 y(Once)41 b(y)m(ou)g(ha)m(v)m(e)
+h(determined)f(that)h(a)f(bug)g(actually)h(exists,)j(use)c(the)g
+Ft(bashbug)e Fu(command)i(to)150 1106 y(submit)25 b(a)h(bug)g(rep)s
+(ort.)38 b(If)26 b(y)m(ou)g(ha)m(v)m(e)h(a)f(\014x,)h(y)m(ou)f(are)g
+(encouraged)h(to)f(mail)h(that)f(as)g(w)m(ell!)40 b(Suggestions)150
+1215 y(and)j(`philosophical')i(bug)e(rep)s(orts)f(ma)m(y)j(b)s(e)e
+(mailed)h(to)g Ft(bug-bash@gnu)11 b(.)g(org)39 b Fu(or)k(p)s(osted)g
+(to)i(the)150 1325 y(Usenet)31 b(newsgroup)e Ft(gnu.bash.bug)p
+Fu(.)275 1460 y(All)i(bug)e(rep)s(orts)h(should)f(include:)225
+1594 y Fq(\017)60 b Fu(The)30 b(v)m(ersion)h(n)m(um)m(b)s(er)e(of)h
+(Bash.)225 1729 y Fq(\017)60 b Fu(The)30 b(hardw)m(are)g(and)g(op)s
+(erating)g(system.)225 1863 y Fq(\017)60 b Fu(The)30
+b(compiler)h(used)e(to)i(compile)h(Bash.)225 1998 y Fq(\017)60
b Fu(A)30 b(description)h(of)f(the)h(bug)f(b)s(eha)m(viour.)225
-2022 y Fq(\017)60 b Fu(A)30 b(short)h(script)f(or)g(`recip)s(e')h(whic)
+2132 y Fq(\017)60 b Fu(A)30 b(short)h(script)f(or)g(`recip)s(e')h(whic)
m(h)f(exercises)i(the)e(bug)g(and)g(ma)m(y)h(b)s(e)f(used)f(to)i(repro)
-s(duce)e(it.)150 2182 y Ft(bashbug)d Fu(inserts)i(the)h(\014rst)f
+s(duce)e(it.)150 2291 y Ft(bashbug)d Fu(inserts)i(the)h(\014rst)f
(three)g(items)h(automatically)i(in)m(to)f(the)e(template)i(it)f(pro)m
-(vides)f(for)g(\014ling)h(a)150 2291 y(bug)h(rep)s(ort.)275
-2426 y(Please)h(send)f(all)h(rep)s(orts)f(concerning)g(this)h(man)m
+(vides)f(for)g(\014ling)h(a)150 2401 y(bug)h(rep)s(ort.)275
+2535 y(Please)h(send)f(all)h(rep)s(orts)f(concerning)g(this)h(man)m
(ual)f(to)h Ft(bug-bash@gnu.org)p Fu(.)p eop end
-%%Page: 161 167
-TeXDict begin 161 166 bop 3614 -116 a Fu(161)150 141
+%%Page: 168 174
+TeXDict begin 168 173 bop 3614 -116 a Fu(168)150 141
y Fp(App)t(endix)58 b(B)81 b(Ma)9 b(jor)54 b(Di\013erences)d(F)-13
b(rom)54 b(The)g(Bourne)1088 299 y(Shell)150 530 y Fu(Bash)26
b(implemen)m(ts)h(essen)m(tially)g(the)g(same)f(grammar,)h(parameter)f
@@ -19509,20 +20174,20 @@ Ft(sh)f Fu(included)g(in)h(SVR4.2)h(\(the)f(last)h(v)m(ersion)f(of)g
Fm(posix)p Fu(-conforman)m(t,)g(ev)m(en)g(where)f(the)g
Fm(posix)g Fu(sp)s(eci\014cation)h(di\013ers)f(from)g(traditional)330
1431 y Ft(sh)e Fu(b)s(eha)m(vior)g(\(see)i(Section)f(6.11)h([Bash)e
-(POSIX)g(Mo)s(de],)h(page)g(101\).)225 1565 y Fq(\017)60
+(POSIX)g(Mo)s(de],)h(page)g(106\).)225 1565 y Fq(\017)60
b Fu(Bash)26 b(has)g(m)m(ulti-c)m(haracter)i(in)m(v)m(o)s(cation)g
(options)f(\(see)f(Section)h(6.1)g([In)m(v)m(oking)g(Bash],)h(page)e
-(86\).)225 1699 y Fq(\017)60 b Fu(Bash)40 b(has)f(command-line)h
+(91\).)225 1699 y Fq(\017)60 b Fu(Bash)40 b(has)f(command-line)h
(editing)g(\(see)h(Chapter)e(8)h([Command)f(Line)g(Editing],)k(page)d
-(111\))330 1809 y(and)30 b(the)g Ft(bind)g Fu(builtin.)225
+(117\))330 1809 y(and)30 b(the)g Ft(bind)g Fu(builtin.)225
1943 y Fq(\017)60 b Fu(Bash)46 b(pro)m(vides)g(a)g(programmable)g(w)m
(ord)f(completion)i(mec)m(hanism)f(\(see)h(Section)g(8.6)g([Pro-)330
-2052 y(grammable)39 b(Completion],)i(page)e(137\),)i(and)d(builtin)g
+2052 y(grammable)39 b(Completion],)i(page)e(143\),)i(and)d(builtin)g
(commands)f Ft(complete)p Fu(,)h Ft(compgen)p Fu(,)h(and)330
2162 y Ft(compopt)p Fu(,)29 b(to)i(manipulate)g(it.)225
2296 y Fq(\017)60 b Fu(Bash)26 b(has)f(command)h(history)f(\(see)i
(Section)f(9.1)h([Bash)f(History)h(F)-8 b(acilities],)30
-b(page)c(146\))i(and)d(the)330 2405 y Ft(history)k Fu(and)h
+b(page)c(152\))i(and)d(the)330 2405 y Ft(history)k Fu(and)h
Ft(fc)g Fu(builtins)g(to)h(manipulate)g(it.)42 b(The)30
b(Bash)h(history)g(list)g(main)m(tains)g(timestamp)330
2515 y(information)g(and)e(uses)h(the)h(v)-5 b(alue)31
@@ -19530,9 +20195,9 @@ b(of)f(the)h Ft(HISTTIMEFORMAT)26 b Fu(v)-5 b(ariable)32
b(to)f(displa)m(y)f(it.)225 2649 y Fq(\017)60 b Fu(Bash)48
b(implemen)m(ts)h Ft(csh)p Fu(-lik)m(e)g(history)f(expansion)g(\(see)h
(Section)g(9.3)h([History)f(In)m(teraction],)330 2759
-y(page)31 b(148\).)225 2892 y Fq(\017)60 b Fu(Bash)33
-b(has)g(one-dimensional)h(arra)m(y)f(v)-5 b(ariables)34
-b(\(see)g(Section)g(6.7)g([Arra)m(ys],)g(page)g(95\),)h(and)e(the)330
+y(page)31 b(154\).)225 2892 y Fq(\017)60 b Fu(Bash)29
+b(has)h(one-dimensional)g(arra)m(y)f(v)-5 b(ariables)30
+b(\(see)h(Section)f(6.7)g([Arra)m(ys],)h(page)f(100\),)h(and)e(the)330
3002 y(appropriate)39 b(v)-5 b(ariable)40 b(expansions)f(and)g
(assignmen)m(t)h(syn)m(tax)g(to)g(use)f(them.)67 b(Sev)m(eral)40
b(of)g(the)330 3112 y(Bash)32 b(builtins)f(tak)m(e)j(options)e(to)h
@@ -19554,49 +20219,49 @@ i(strings)f(found)e(in)h(a)h(script)g(\(see)g(Section)g(3.1.2.5)330
4171 y Fq(\017)60 b Fu(Bash)44 b(implemen)m(ts)g(the)f
Ft(!)h Fu(k)m(eyw)m(ord)g(to)g(negate)h(the)f(return)e(v)-5
b(alue)44 b(of)g(a)g(pip)s(eline)f(\(see)h(Sec-)330 4281
-y(tion)33 b(3.2.3)i([Pip)s(elines],)f(page)g(8\).)49
-b(V)-8 b(ery)33 b(useful)f(when)g(an)h Ft(if)f Fu(statemen)m(t)j(needs)
-d(to)i(act)g(only)f(if)330 4390 y(a)k(test)h(fails.)60
-b(The)36 b(Bash)g(`)p Ft(-o)30 b(pipefail)p Fu(')35 b(option)i(to)h
-Ft(set)d Fu(will)i(cause)g(a)g(pip)s(eline)g(to)g(return)f(a)330
-4500 y(failure)31 b(status)f(if)h(an)m(y)f(command)g(fails.)225
+y(tion)36 b(3.2.3)h([Pip)s(elines],)g(page)f(10\).)57
+b(V)-8 b(ery)36 b(useful)f(when)f(an)h Ft(if)g Fu(statemen)m(t)i(needs)
+e(to)h(act)h(only)330 4390 y(if)32 b(a)g(test)g(fails.)45
+b(The)31 b(Bash)h(`)p Ft(-o)e(pipefail)p Fu(')g(option)i(to)g
+Ft(set)f Fu(will)h(cause)g(a)g(pip)s(eline)g(to)g(return)f(a)330
+4500 y(failure)g(status)f(if)h(an)m(y)f(command)g(fails.)225
4634 y Fq(\017)60 b Fu(Bash)34 b(has)g(the)g Ft(time)f
Fu(reserv)m(ed)h(w)m(ord)g(and)f(command)h(timing)h(\(see)g(Section)g
-(3.2.3)g([Pip)s(elines],)330 4743 y(page)g(8\).)52 b(The)33
-b(displa)m(y)i(of)f(the)g(timing)g(statistics)i(ma)m(y)f(b)s(e)e(con)m
+(3.2.3)g([Pip)s(elines],)330 4743 y(page)d(10\).)43 b(The)31
+b(displa)m(y)g(of)g(the)g(timing)h(statistics)h(ma)m(y)e(b)s(e)f(con)m
(trolled)j(with)e(the)g Ft(TIMEFORMAT)330 4853 y Fu(v)-5
b(ariable.)225 4987 y Fq(\017)60 b Fu(Bash)28 b(implemen)m(ts)g(the)f
Ft(for)j(\(\()g Fj(expr1)f Ft(;)h Fj(expr2)f Ft(;)h Fj(expr3)f
Ft(\)\))e Fu(arithmetic)h(for)g(command,)g(sim-)330 5096
y(ilar)j(to)g(the)g(C)f(language)h(\(see)h(Section)f(3.2.5.1)i([Lo)s
-(oping)d(Constructs],)h(page)g(10\).)225 5230 y Fq(\017)60
+(oping)d(Constructs],)h(page)g(11\).)225 5230 y Fq(\017)60
b Fu(Bash)31 b(includes)f(the)g Ft(select)f Fu(comp)s(ound)g(command,)i
(whic)m(h)f(allo)m(ws)i(the)f(generation)g(of)g(simple)330
5340 y(men)m(us)f(\(see)h(Section)g(3.2.5.2)i([Conditional)e
-(Constructs],)g(page)g(11\).)p eop end
-%%Page: 162 168
-TeXDict begin 162 167 bop 150 -116 a Fu(App)s(endix)29
+(Constructs],)g(page)g(12\).)p eop end
+%%Page: 169 175
+TeXDict begin 169 174 bop 150 -116 a Fu(App)s(endix)29
b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(162)225 299 y Fq(\017)60
+b(The)f(Bourne)g(Shell)1258 b(169)225 299 y Fq(\017)60
b Fu(Bash)40 b(includes)g(the)g Ft([[)g Fu(comp)s(ound)e(command,)43
b(whic)m(h)c(mak)m(es)i(conditional)h(testing)f(part)f(of)330
408 y(the)f(shell)g(grammar)g(\(see)h(Section)f(3.2.5.2)j([Conditional)
-d(Constructs],)i(page)f(11\),)i(including)330 518 y(optional)32
+d(Constructs],)i(page)f(12\),)i(including)330 518 y(optional)32
b(regular)e(expression)g(matc)m(hing.)225 653 y Fq(\017)60
b Fu(Bash)31 b(pro)m(vides)f(optional)h(case-insensitiv)m(e)i(matc)m
(hing)f(for)e(the)g Ft(case)g Fu(and)f Ft([[)h Fu(constructs.)225
789 y Fq(\017)60 b Fu(Bash)27 b(includes)g(brace)h(expansion)f(\(see)h
-(Section)g(3.5.1)i([Brace)e(Expansion],)g(page)g(23\))h(and)d(tilde)330
+(Section)g(3.5.1)i([Brace)e(Expansion],)g(page)g(24\))h(and)d(tilde)330
898 y(expansion)k(\(see)i(Section)f(3.5.2)h([Tilde)f(Expansion],)f
-(page)h(24\).)225 1034 y Fq(\017)60 b Fu(Bash)24 b(implemen)m(ts)h
+(page)h(25\).)225 1034 y Fq(\017)60 b Fu(Bash)24 b(implemen)m(ts)h
(command)e(aliases)j(and)d(the)i Ft(alias)d Fu(and)i
Ft(unalias)e Fu(builtins)h(\(see)i(Section)g(6.6)330
-1143 y([Aliases],)32 b(page)f(94\).)225 1279 y Fq(\017)60
+1143 y([Aliases],)32 b(page)f(100\).)225 1279 y Fq(\017)60
b Fu(Bash)32 b(pro)m(vides)g(shell)g(arithmetic,)i(the)e
Ft(\(\()g Fu(comp)s(ound)e(command)i(\(see)h(Section)f(3.2.5.2)j([Con-)
-330 1388 y(ditional)d(Constructs],)e(page)i(11\),)g(and)e(arithmetic)i
+330 1388 y(ditional)d(Constructs],)e(page)i(12\),)g(and)e(arithmetic)i
(expansion)e(\(see)i(Section)f(6.5)h([Shell)f(Arith-)330
-1498 y(metic],)h(page)f(93\).)225 1633 y Fq(\017)60 b
+1498 y(metic],)h(page)f(98\).)225 1633 y Fq(\017)60 b
Fu(V)-8 b(ariables)31 b(presen)m(t)e(in)g(the)g(shell's)h(initial)g(en)
m(vironmen)m(t)g(are)g(automatically)i(exp)s(orted)d(to)h(c)m(hild)330
1743 y(pro)s(cesses.)38 b(The)23 b(Bourne)g(shell)g(do)s(es)g(not)g
@@ -19612,103 +20277,101 @@ Ft(#)p Fu(',)g(`)p Ft(\045\045)p Fu(')e(and)f(`)p Ft(##)p
Fu(')h(expansions)g(to)g(remo)m(v)m(e)330 2342 y(leading)f(or)f
(trailing)h(substrings)e(from)g(v)-5 b(ariable)35 b(v)-5
b(alues)35 b(\(see)g(Section)g(3.5.3)g([Shell)g(P)m(arameter)330
-2452 y(Expansion],)30 b(page)h(25\).)225 2587 y Fq(\017)60
+2452 y(Expansion],)30 b(page)h(26\).)225 2587 y Fq(\017)60
b Fu(The)46 b(expansion)g Ft(${#xx})p Fu(,)j(whic)m(h)d(returns)f(the)i
(length)f(of)h Ft(${xx})p Fu(,)i(is)e(supp)s(orted)d(\(see)j(Sec-)330
2697 y(tion)31 b(3.5.3)h([Shell)f(P)m(arameter)g(Expansion],)f(page)i
-(25\).)225 2832 y Fq(\017)60 b Fu(The)30 b(expansion)g
+(26\).)225 2832 y Fq(\017)60 b Fu(The)30 b(expansion)g
Ft(${var:)p Fr(o\013set)r Ft([:)p Fr(length)p Ft(]})p
Fu(,)g(whic)m(h)g(expands)g(to)h(the)g(substring)e(of)i
Ft(var)p Fu('s)e(v)-5 b(alue)330 2942 y(of)43 b(length)g
Fr(length)p Fu(,)k(b)s(eginning)42 b(at)i Fr(o\013set)p
Fu(,)j(is)c(presen)m(t)g(\(see)g(Section)h(3.5.3)h([Shell)e(P)m
-(arameter)330 3051 y(Expansion],)30 b(page)h(25\).)225
-3187 y Fq(\017)60 b Fu(The)21 b(expansion)f Ft(${var/[/])p
-Fr(pattern)p Ft([/)p Fr(replacemen)m(t)r Ft(]})p Fu(,)i(whic)m(h)e
-(matc)m(hes)j Fr(pattern)e Fu(and)f(replaces)330 3296
-y(it)29 b(with)e Fr(replacemen)m(t)32 b Fu(in)c(the)g(v)-5
-b(alue)29 b(of)f Ft(var)p Fu(,)g(is)g(a)m(v)-5 b(ailable)31
-b(\(see)e(Section)f(3.5.3)i([Shell)f(P)m(arameter)330
-3406 y(Expansion],)h(page)h(25\).)225 3541 y Fq(\017)60
+(arameter)330 3051 y(Expansion],)30 b(page)h(26\).)225
+3187 y Fq(\017)60 b Fu(The)21 b(expansion)f Ft(${)p Fj(var)p
+Ft(/[/])p Fr(pattern)p Ft([/)p Fr(replacemen)m(t)r Ft(]})p
+Fu(,)i(whic)m(h)e(matc)m(hes)j Fr(pattern)e Fu(and)f(replaces)330
+3296 y(it)30 b(with)f Fr(replacemen)m(t)k Fu(in)c(the)h(v)-5
+b(alue)30 b(of)g Fr(v)-5 b(ar)p Fu(,)30 b(is)f(a)m(v)-5
+b(ailable)32 b(\(see)e(Section)h(3.5.3)g([Shell)f(P)m(arameter)330
+3406 y(Expansion],)g(page)h(26\).)225 3541 y Fq(\017)60
b Fu(The)33 b(expansion)g Ft(${!)p Fj(prefix)p Ft(*})d
Fu(expansion,)k(whic)m(h)e(expands)h(to)h(the)f(names)g(of)g(all)h
(shell)f(v)-5 b(ari-)330 3651 y(ables)36 b(whose)g(names)g(b)s(egin)g
(with)g Fr(pre\014x)p Fu(,)g(is)g(a)m(v)-5 b(ailable)39
b(\(see)e(Section)g(3.5.3)g([Shell)g(P)m(arameter)330
-3761 y(Expansion],)30 b(page)h(25\).)225 3896 y Fq(\017)60
-b Fu(Bash)22 b(has)f Fr(indirect)j Fu(v)-5 b(ariable)22
-b(expansion)g(using)f Ft(${!word})e Fu(\(see)k(Section)f(3.5.3)i
-([Shell)e(P)m(arameter)330 4006 y(Expansion],)30 b(page)h(25\).)225
-4141 y Fq(\017)60 b Fu(Bash)31 b(can)f(expand)g(p)s(ositional)h
-(parameters)g(b)s(ey)m(ond)e Ft($9)h Fu(using)g Ft(${)p
-Fj(num)p Ft(})p Fu(.)225 4276 y Fq(\017)60 b Fu(The)27
-b Fm(posix)g Ft($\(\))g Fu(form)g(of)h(command)g(substitution)f(is)h
-(implemen)m(ted)g(\(see)h(Section)f(3.5.4)i([Com-)330
-4386 y(mand)38 b(Substitution],)k(page)e(31\),)j(and)38
-b(preferred)g(to)i(the)g(Bourne)f(shell's)h Ft(``)e Fu(\(whic)m(h)i(is)
-f(also)330 4495 y(implemen)m(ted)31 b(for)f(bac)m(kw)m(ards)h
-(compatibilit)m(y\).)225 4631 y Fq(\017)60 b Fu(Bash)31
-b(has)f(pro)s(cess)g(substitution)g(\(see)h(Section)g(3.5.6)h([Pro)s
-(cess)f(Substitution],)f(page)h(32\).)225 4766 y Fq(\017)60
-b Fu(Bash)55 b(automatically)j(assigns)e(v)-5 b(ariables)55
-b(that)h(pro)m(vide)f(information)h(ab)s(out)f(the)g(curren)m(t)330
-4876 y(user)40 b(\()p Ft(UID)p Fu(,)i Ft(EUID)p Fu(,)g(and)e
-Ft(GROUPS)p Fu(\),)h(the)g(curren)m(t)f(host)g(\()p Ft(HOSTTYPE)p
-Fu(,)h Ft(OSTYPE)p Fu(,)h Ft(MACHTYPE)p Fu(,)f(and)330
-4985 y Ft(HOSTNAME)p Fu(\),)55 b(and)c(the)g(instance)h(of)g(Bash)f
-(that)h(is)f(running)f(\()p Ft(BASH)p Fu(,)56 b Ft(BASH_VERSION)p
-Fu(,)e(and)330 5095 y Ft(BASH_VERSINFO)p Fu(\).)37 b(See)31
-b(Section)g(5.2)h([Bash)e(V)-8 b(ariables],)33 b(page)e(73,)g(for)f
-(details.)225 5230 y Fq(\017)60 b Fu(The)44 b Ft(IFS)f
-Fu(v)-5 b(ariable)45 b(is)f(used)f(to)i(split)f(only)g(the)g(results)g
-(of)h(expansion,)i(not)d(all)h(w)m(ords)f(\(see)330 5340
-y(Section)29 b(3.5.7)h([W)-8 b(ord)29 b(Splitting],)h(page)f(32\).)41
-b(This)28 b(closes)h(a)g(longstanding)g(shell)f(securit)m(y)h(hole.)p
-eop end
-%%Page: 163 169
-TeXDict begin 163 168 bop 150 -116 a Fu(App)s(endix)29
+3761 y(Expansion],)30 b(page)h(26\).)225 3896 y Fq(\017)60
+b Fu(Bash)22 b(has)g(indirect)g(v)-5 b(ariable)22 b(expansion)g(using)f
+Ft(${!word})f Fu(\(see)i(Section)h(3.5.3)h([Shell)e(P)m(arameter)330
+4006 y(Expansion],)30 b(page)h(26\).)225 4141 y Fq(\017)60
+b Fu(Bash)31 b(can)f(expand)g(p)s(ositional)h(parameters)g(b)s(ey)m
+(ond)e Ft($9)h Fu(using)g Ft(${)p Fj(num)p Ft(})p Fu(.)225
+4276 y Fq(\017)60 b Fu(The)27 b Fm(posix)g Ft($\(\))g
+Fu(form)g(of)h(command)g(substitution)f(is)h(implemen)m(ted)g(\(see)h
+(Section)f(3.5.4)i([Com-)330 4386 y(mand)38 b(Substitution],)k(page)e
+(34\),)j(and)38 b(preferred)g(to)i(the)g(Bourne)f(shell's)h
+Ft(``)e Fu(\(whic)m(h)i(is)f(also)330 4495 y(implemen)m(ted)31
+b(for)f(bac)m(kw)m(ards)h(compatibilit)m(y\).)225 4631
+y Fq(\017)60 b Fu(Bash)31 b(has)f(pro)s(cess)g(substitution)g(\(see)h
+(Section)g(3.5.6)h([Pro)s(cess)f(Substitution],)f(page)h(34\).)225
+4766 y Fq(\017)60 b Fu(Bash)55 b(automatically)j(assigns)e(v)-5
+b(ariables)55 b(that)h(pro)m(vide)f(information)h(ab)s(out)f(the)g
+(curren)m(t)330 4876 y(user)40 b(\()p Ft(UID)p Fu(,)i
+Ft(EUID)p Fu(,)g(and)e Ft(GROUPS)p Fu(\),)h(the)g(curren)m(t)f(host)g
+(\()p Ft(HOSTTYPE)p Fu(,)h Ft(OSTYPE)p Fu(,)h Ft(MACHTYPE)p
+Fu(,)f(and)330 4985 y Ft(HOSTNAME)p Fu(\),)55 b(and)c(the)g(instance)h
+(of)g(Bash)f(that)h(is)f(running)f(\()p Ft(BASH)p Fu(,)56
+b Ft(BASH_VERSION)p Fu(,)e(and)330 5095 y Ft(BASH_VERSINFO)p
+Fu(\).)37 b(See)31 b(Section)g(5.2)h([Bash)e(V)-8 b(ariables],)33
+b(page)e(78,)g(for)f(details.)225 5230 y Fq(\017)60 b
+Fu(The)44 b Ft(IFS)f Fu(v)-5 b(ariable)45 b(is)f(used)f(to)i(split)f
+(only)g(the)g(results)g(of)h(expansion,)i(not)d(all)h(w)m(ords)f(\(see)
+330 5340 y(Section)29 b(3.5.7)h([W)-8 b(ord)29 b(Splitting],)h(page)f
+(35\).)41 b(This)28 b(closes)h(a)g(longstanding)g(shell)f(securit)m(y)h
+(hole.)p eop end
+%%Page: 170 176
+TeXDict begin 170 175 bop 150 -116 a Fu(App)s(endix)29
b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(163)225 299 y Fq(\017)60
+b(The)f(Bourne)g(Shell)1258 b(170)225 299 y Fq(\017)60
b Fu(The)36 b(\014lename)h(expansion)f(brac)m(k)m(et)i(expression)f(co)
s(de)f(uses)g(`)p Ft(!)p Fu(')h(and)f(`)p Ft(^)p Fu(')h(to)g(negate)h
(the)f(set)g(of)330 408 y(c)m(haracters)32 b(b)s(et)m(w)m(een)f(the)f
(brac)m(k)m(ets.)43 b(The)29 b(Bourne)i(shell)f(uses)g(only)h(`)p
Ft(!)p Fu('.)225 536 y Fq(\017)60 b Fu(Bash)38 b(implemen)m(ts)g(the)g
(full)g(set)g(of)g Fm(posix)f Fu(\014lename)h(expansion)g(op)s
-(erators,)i(including)d Fr(c)m(har-)330 646 y(acter)i(classes)p
-Fu(,)j Fr(equiv)-5 b(alence)39 b(classes)p Fu(,)j(and)37
-b Fr(collating)k(sym)m(b)s(ols)g Fu(\(see)e(Section)g(3.5.8)h
-([Filename)330 756 y(Expansion],)30 b(page)h(33\).)225
-883 y Fq(\017)60 b Fu(Bash)35 b(implemen)m(ts)g(extended)g(pattern)g
-(matc)m(hing)h(features)f(when)f(the)h Ft(extglob)d Fu(shell)j(option)
-330 993 y(is)30 b(enabled)h(\(see)g(Section)g(3.5.8.1)i([P)m(attern)f
-(Matc)m(hing],)g(page)f(33\).)225 1121 y Fq(\017)60 b
-Fu(It)22 b(is)g(p)s(ossible)g(to)h(ha)m(v)m(e)g(a)f(v)-5
-b(ariable)23 b(and)f(a)g(function)g(with)g(the)g(same)g(name;)j
+(erators,)i(including)d(c)m(har-)330 646 y(acter)j(classes,)i(equiv)-5
+b(alence)39 b(classes,)j(and)c(collating)j(sym)m(b)s(ols)d(\(see)i
+(Section)f(3.5.8)h([Filename)330 756 y(Expansion],)30
+b(page)h(35\).)225 883 y Fq(\017)60 b Fu(Bash)35 b(implemen)m(ts)g
+(extended)g(pattern)g(matc)m(hing)h(features)f(when)f(the)h
+Ft(extglob)d Fu(shell)j(option)330 993 y(is)30 b(enabled)h(\(see)g
+(Section)g(3.5.8.1)i([P)m(attern)f(Matc)m(hing],)g(page)f(36\).)225
+1121 y Fq(\017)60 b Fu(It)22 b(is)g(p)s(ossible)g(to)h(ha)m(v)m(e)g(a)f
+(v)-5 b(ariable)23 b(and)f(a)g(function)g(with)g(the)g(same)g(name;)j
Ft(sh)d Fu(do)s(es)g(not)g(separate)330 1230 y(the)31
b(t)m(w)m(o)g(name)g(spaces.)225 1358 y Fq(\017)60 b
Fu(Bash)30 b(functions)e(are)i(p)s(ermitted)f(to)h(ha)m(v)m(e)h(lo)s
(cal)g(v)-5 b(ariables)30 b(using)f(the)g Ft(local)f
Fu(builtin,)i(and)e(th)m(us)330 1468 y(useful)i(recursiv)m(e)g
(functions)g(ma)m(y)h(b)s(e)f(written)g(\(see)i(Section)f(4.2)g([Bash)g
-(Builtins],)g(page)h(51\).)225 1596 y Fq(\017)60 b Fu(V)-8
+(Builtins],)g(page)h(55\).)225 1596 y Fq(\017)60 b Fu(V)-8
b(ariable)25 b(assignmen)m(ts)g(preceding)e(commands)h(a\013ect)h(only)
f(that)g(command,)h(ev)m(en)f(builtins)g(and)330 1705
y(functions)36 b(\(see)h(Section)g(3.7.4)h([En)m(vironmen)m(t],)h(page)
-e(41\).)60 b(In)35 b Ft(sh)p Fu(,)j(all)f(v)-5 b(ariable)37
+e(44\).)60 b(In)35 b Ft(sh)p Fu(,)j(all)f(v)-5 b(ariable)37
b(assignmen)m(ts)330 1815 y(preceding)30 b(commands)g(are)h(global)h
(unless)d(the)i(command)f(is)h(executed)g(from)f(the)g(\014le)h
(system.)225 1943 y Fq(\017)60 b Fu(Bash)44 b(p)s(erforms)e(\014lename)
i(expansion)f(on)h(\014lenames)g(sp)s(eci\014ed)f(as)h(op)s(erands)e
(to)j(input)e(and)330 2052 y(output)30 b(redirection)h(op)s(erators)g
-(\(see)g(Section)g(3.6)h([Redirections],)g(page)f(35\).)225
+(\(see)g(Section)g(3.6)h([Redirections],)g(page)f(38\).)225
2180 y Fq(\017)60 b Fu(Bash)29 b(con)m(tains)h(the)f(`)p
Ft(<>)p Fu(')f(redirection)i(op)s(erator,)f(allo)m(wing)i(a)e(\014le)g
(to)g(b)s(e)f(op)s(ened)g(for)h(b)s(oth)f(read-)330 2290
y(ing)35 b(and)f(writing,)i(and)e(the)h(`)p Ft(&>)p Fu(')g(redirection)
g(op)s(erator,)h(for)f(directing)g(standard)f(output)h(and)330
2399 y(standard)30 b(error)g(to)h(the)f(same)h(\014le)f(\(see)i
-(Section)f(3.6)g([Redirections],)h(page)g(35\).)225 2527
+(Section)f(3.6)g([Redirections],)h(page)g(38\).)225 2527
y Fq(\017)60 b Fu(Bash)21 b(includes)f(the)h(`)p Ft(<<<)p
Fu(')g(redirection)g(op)s(erator,)i(allo)m(wing)g(a)e(string)f(to)i(b)s
(e)e(used)g(as)h(the)g(standard)330 2637 y(input)29 b(to)j(a)e
@@ -19719,20 +20382,20 @@ Fu(')e(redirection)j(op)s(erators,)g(whic)m(h)f(mo)m(v)m(e)330
3002 y Fq(\017)60 b Fu(Bash)25 b(treats)h(a)f(n)m(um)m(b)s(er)e(of)i
(\014lenames)g(sp)s(ecially)g(when)f(they)h(are)g(used)f(in)g
(redirection)i(op)s(erators)330 3112 y(\(see)31 b(Section)h(3.6)f
-([Redirections],)h(page)f(35\).)225 3240 y Fq(\017)60
+([Redirections],)h(page)f(38\).)225 3240 y Fq(\017)60
b Fu(Bash)33 b(can)f(op)s(en)g(net)m(w)m(ork)i(connections)f(to)h
(arbitrary)e(mac)m(hines)h(and)f(services)h(with)f(the)h(redi-)330
3349 y(rection)e(op)s(erators)g(\(see)g(Section)g(3.6)h
-([Redirections],)g(page)f(35\).)225 3477 y Fq(\017)60
+([Redirections],)g(page)f(38\).)225 3477 y Fq(\017)60
b Fu(The)29 b Ft(noclobber)e Fu(option)j(is)g(a)m(v)-5
b(ailable)32 b(to)e(a)m(v)m(oid)h(o)m(v)m(erwriting)g(existing)g
(\014les)e(with)h(output)f(redi-)330 3587 y(rection)39
-b(\(see)h(Section)f(4.3.1)h([The)e(Set)h(Builtin],)i(page)e(62\).)66
+b(\(see)h(Section)f(4.3.1)h([The)e(Set)h(Builtin],)i(page)e(67\).)66
b(The)38 b(`)p Ft(>|)p Fu(')h(redirection)g(op)s(erator)330
3696 y(ma)m(y)31 b(b)s(e)f(used)f(to)i(o)m(v)m(erride)h
Ft(noclobber)p Fu(.)225 3824 y Fq(\017)60 b Fu(The)34
b(Bash)g Ft(cd)g Fu(and)f Ft(pwd)g Fu(builtins)h(\(see)h(Section)g(4.1)
-g([Bourne)g(Shell)f(Builtins],)h(page)g(44\))h(eac)m(h)330
+g([Bourne)g(Shell)f(Builtins],)h(page)g(48\))h(eac)m(h)330
3934 y(tak)m(e)c Ft(-L)e Fu(and)f Ft(-P)h Fu(options)h(to)g(switc)m(h)g
(b)s(et)m(w)m(een)g(logical)i(and)c(ph)m(ysical)i(mo)s(des.)225
4061 y Fq(\017)60 b Fu(Bash)25 b(allo)m(ws)h(a)g(function)e(to)i(o)m(v)
@@ -19740,28 +20403,28 @@ m(erride)g(a)g(builtin)e(with)h(the)g(same)g(name,)i(and)d(pro)m(vides)
h(access)h(to)330 4171 y(that)34 b(builtin's)f(functionalit)m(y)h
(within)f(the)g(function)g(via)h(the)f Ft(builtin)f Fu(and)g
Ft(command)g Fu(builtins)330 4281 y(\(see)f(Section)h(4.2)f([Bash)g
-(Builtins],)g(page)g(51\).)225 4408 y Fq(\017)60 b Fu(The)35
+(Builtins],)g(page)g(55\).)225 4408 y Fq(\017)60 b Fu(The)35
b Ft(command)e Fu(builtin)i(allo)m(ws)i(selectiv)m(e)h(disabling)e(of)f
(functions)g(when)g(command)g(lo)s(okup)g(is)330 4518
y(p)s(erformed)29 b(\(see)i(Section)g(4.2)h([Bash)f(Builtins],)g(page)g
-(51\).)225 4646 y Fq(\017)60 b Fu(Individual)23 b(builtins)g(ma)m(y)i
+(55\).)225 4646 y Fq(\017)60 b Fu(Individual)23 b(builtins)g(ma)m(y)i
(b)s(e)e(enabled)h(or)g(disabled)g(using)f(the)h Ft(enable)f
Fu(builtin)g(\(see)i(Section)g(4.2)330 4756 y([Bash)31
-b(Builtins],)g(page)g(51\).)225 4883 y Fq(\017)60 b Fu(The)26
+b(Builtins],)g(page)g(55\).)225 4883 y Fq(\017)60 b Fu(The)26
b(Bash)h Ft(exec)e Fu(builtin)h(tak)m(es)i(additional)f(options)g(that)
g(allo)m(w)h(users)d(to)j(con)m(trol)g(the)e(con)m(ten)m(ts)330
4993 y(of)35 b(the)f(en)m(vironmen)m(t)h(passed)f(to)h(the)g(executed)g
(command,)h(and)d(what)i(the)f(zeroth)h(argumen)m(t)330
5103 y(to)c(the)g(command)f(is)g(to)h(b)s(e)f(\(see)h(Section)h(4.1)f
-([Bourne)f(Shell)h(Builtins],)g(page)g(44\).)225 5230
+([Bourne)f(Shell)h(Builtins],)g(page)g(48\).)225 5230
y Fq(\017)60 b Fu(Shell)29 b(functions)g(ma)m(y)h(b)s(e)f(exp)s(orted)g
(to)h(c)m(hildren)f(via)h(the)g(en)m(vironmen)m(t)g(using)f
Ft(export)f(-f)h Fu(\(see)330 5340 y(Section)i(3.3)h([Shell)e(F)-8
-b(unctions],)32 b(page)f(18\).)p eop end
-%%Page: 164 170
-TeXDict begin 164 169 bop 150 -116 a Fu(App)s(endix)29
+b(unctions],)32 b(page)f(19\).)p eop end
+%%Page: 171 177
+TeXDict begin 171 176 bop 150 -116 a Fu(App)s(endix)29
b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(164)225 299 y Fq(\017)60
+b(The)f(Bourne)g(Shell)1258 b(171)225 299 y Fq(\017)60
b Fu(The)40 b(Bash)h Ft(export)p Fu(,)h Ft(readonly)p
Fu(,)f(and)g Ft(declare)d Fu(builtins)j(can)g(tak)m(e)h(a)f
Ft(-f)f Fu(option)i(to)f(act)h(on)330 408 y(shell)30
@@ -19777,15 +20440,15 @@ Fu(builtin)g(allo)m(ws)j(a)e(name)g(to)g(b)s(e)f(asso)s(ciated)j(with)d
(an)h(arbitrary)f(\014lename,)330 874 y(ev)m(en)30 b(when)e(that)h
(\014lename)g(cannot)h(b)s(e)e(found)g(b)m(y)h(searc)m(hing)g(the)g
Ft($PATH)p Fu(,)g(using)f(`)p Ft(hash)h(-p)p Fu(')g(\(see)330
-984 y(Section)i(4.1)h([Bourne)e(Shell)g(Builtins],)h(page)h(44\).)225
+984 y(Section)i(4.1)h([Bourne)e(Shell)g(Builtins],)h(page)h(48\).)225
1121 y Fq(\017)60 b Fu(Bash)27 b(includes)f(a)i Ft(help)d
Fu(builtin)i(for)f(quic)m(k)h(reference)h(to)f(shell)g(facilities)i
-(\(see)f(Section)g(4.2)g([Bash)330 1230 y(Builtins],)j(page)g(51\).)225
+(\(see)f(Section)g(4.2)g([Bash)330 1230 y(Builtins],)j(page)g(55\).)225
1367 y Fq(\017)60 b Fu(The)42 b Ft(printf)g Fu(builtin)g(is)h(a)m(v)-5
b(ailable)45 b(to)f(displa)m(y)f(formatted)g(output)g(\(see)h(Section)g
-(4.2)g([Bash)330 1477 y(Builtins],)31 b(page)g(51\).)225
+(4.2)g([Bash)330 1477 y(Builtins],)31 b(page)g(55\).)225
1614 y Fq(\017)60 b Fu(The)26 b(Bash)h Ft(read)f Fu(builtin)g(\(see)i
-(Section)g(4.2)g([Bash)f(Builtins],)h(page)g(51\))g(will)f(read)g(a)g
+(Section)g(4.2)g([Bash)f(Builtins],)h(page)g(55\))g(will)f(read)g(a)g
(line)g(ending)330 1724 y(in)i(`)p Ft(\\)p Fu(')h(with)f(the)g
Ft(-r)g Fu(option,)i(and)d(will)i(use)f(the)h Ft(REPLY)e
Fu(v)-5 b(ariable)30 b(as)g(a)f(default)h(if)f(no)h(non-option)330
@@ -19808,23 +20471,23 @@ Fu(option)h(will)330 2491 y(read)30 b(un)m(til)h(a)g(particular)f(c)m
b Fu(The)33 b Ft(return)e Fu(builtin)i(ma)m(y)g(b)s(e)g(used)f(to)i(ab)
s(ort)f(execution)h(of)f(scripts)g(executed)h(with)f(the)g
Ft(.)g Fu(or)330 2737 y Ft(source)c Fu(builtins)g(\(see)j(Section)f
-(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g(44\).)225
+(4.1)g([Bourne)g(Shell)f(Builtins],)h(page)g(48\).)225
2874 y Fq(\017)60 b Fu(Bash)43 b(includes)g(the)g Ft(shopt)f
Fu(builtin,)k(for)d(\014ner)f(con)m(trol)j(of)e(shell)h(optional)g
(capabilities)h(\(see)330 2984 y(Section)c(4.3.2)g([The)f(Shopt)f
-(Builtin],)k(page)d(66\),)k(and)39 b(allo)m(ws)i(these)f(options)h(to)f
+(Builtin],)k(page)d(71\),)k(and)39 b(allo)m(ws)i(these)f(options)h(to)f
(b)s(e)f(set)i(and)330 3093 y(unset)30 b(at)h(shell)g(in)m(v)m(o)s
(cation)h(\(see)f(Section)h(6.1)f([In)m(v)m(oking)g(Bash],)g(page)h
-(86\).)225 3230 y Fq(\017)60 b Fu(Bash)45 b(has)f(m)m(uc)m(h)g(more)h
+(91\).)225 3230 y Fq(\017)60 b Fu(Bash)45 b(has)f(m)m(uc)m(h)g(more)h
(optional)h(b)s(eha)m(vior)e(con)m(trollable)j(with)e(the)f
Ft(set)g Fu(builtin)g(\(see)h(Sec-)330 3340 y(tion)31
-b(4.3.1)h([The)e(Set)h(Builtin],)g(page)g(62\).)225 3477
+b(4.3.1)h([The)e(Set)h(Builtin],)g(page)g(67\).)225 3477
y Fq(\017)60 b Fu(The)31 b(`)p Ft(-x)p Fu(')g(\()p Ft(xtrace)p
Fu(\))g(option)h(displa)m(ys)f(commands)h(other)f(than)h(simple)f
(commands)g(when)g(p)s(er-)330 3587 y(forming)f(an)g(execution)i(trace)
-f(\(see)h(Section)f(4.3.1)h([The)e(Set)h(Builtin],)g(page)g(62\).)225
+f(\(see)h(Section)f(4.3.1)h([The)e(Set)h(Builtin],)g(page)g(67\).)225
3724 y Fq(\017)60 b Fu(The)28 b Ft(test)g Fu(builtin)h(\(see)h(Section)
-f(4.1)h([Bourne)f(Shell)g(Builtins],)h(page)g(44\))g(is)f(sligh)m(tly)h
+f(4.1)h([Bourne)f(Shell)g(Builtins],)h(page)g(48\))g(is)f(sligh)m(tly)h
(di\013eren)m(t,)330 3833 y(as)23 b(it)g(implemen)m(ts)f(the)h
Fm(posix)f Fu(algorithm,)j(whic)m(h)d(sp)s(eci\014es)g(the)h(b)s(eha)m
(vior)f(based)g(on)h(the)f(n)m(um)m(b)s(er)330 3943 y(of)31
@@ -19833,9 +20496,9 @@ Ft(caller)d Fu(builtin,)j(whic)m(h)f(displa)m(ys)g(the)g(con)m(text)i
(of)f(an)m(y)g(activ)m(e)h(subroutine)330 4189 y(call)28
b(\(a)f(shell)f(function)h(or)f(a)h(script)f(executed)h(with)f(the)h
Ft(.)f Fu(or)g Ft(source)f Fu(builtins\).)39 b(This)26
-b(supp)s(orts)330 4299 y(the)31 b(bash)e(debugger.)225
+b(supp)s(orts)330 4299 y(the)31 b(Bash)f(debugger.)225
4436 y Fq(\017)60 b Fu(The)42 b Ft(trap)f Fu(builtin)h(\(see)i(Section)
-f(4.1)h([Bourne)e(Shell)g(Builtins],)47 b(page)c(44\))h(allo)m(ws)g(a)e
+f(4.1)h([Bourne)e(Shell)g(Builtins],)47 b(page)c(48\))h(allo)m(ws)g(a)e
Ft(DEBUG)330 4545 y Fu(pseudo-signal)c(sp)s(eci\014cation,)i(similar)e
(to)g Ft(EXIT)p Fu(.)62 b(Commands)36 b(sp)s(eci\014ed)h(with)g(a)h
Ft(DEBUG)e Fu(trap)330 4655 y(are)k(executed)g(b)s(efore)f(ev)m(ery)h
@@ -19851,58 +20514,58 @@ Ft(functrace)d Fu(option)j(has)f(b)s(een)g(enabled)g(using)330
Ft(extdebug)f Fu(shell)i(option)g(has)f(additional)h(e\013ects)h(on)f
(the)g Ft(DEBUG)e Fu(trap.)330 5230 y(The)21 b Ft(trap)e
Fu(builtin)i(\(see)h(Section)g(4.1)g([Bourne)f(Shell)g(Builtins],)j
-(page)e(44\))g(allo)m(ws)g(an)f Ft(ERR)f Fu(pseudo-)330
+(page)e(48\))g(allo)m(ws)g(an)f Ft(ERR)f Fu(pseudo-)330
5340 y(signal)30 b(sp)s(eci\014cation,)h(similar)f(to)g
Ft(EXIT)f Fu(and)g Ft(DEBUG)p Fu(.)39 b(Commands)28 b(sp)s(eci\014ed)h
(with)g(an)g Ft(ERR)g Fu(trap)p eop end
-%%Page: 165 171
-TeXDict begin 165 170 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 172 178
+TeXDict begin 172 177 bop 150 -116 a Fu(App)s(endix)29
b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(165)330 299 y(are)40 b(executed)g(after)g
+b(The)f(Bourne)g(Shell)1258 b(172)330 299 y(are)40 b(executed)g(after)g
(a)f(simple)h(command)f(fails,)j(with)d(a)h(few)f(exceptions.)68
b(The)39 b Ft(ERR)g Fu(trap)g(is)330 408 y(not)g(inherited)f(b)m(y)h
(shell)g(functions)f(unless)g(the)h Ft(-o)29 b(errtrace)37
b Fu(option)i(to)g(the)g Ft(set)f Fu(builtin)g(is)330
518 y(enabled.)330 650 y(The)g Ft(trap)g Fu(builtin)h(\(see)g(Section)h
-(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(44\))g(allo)m(ws)g(a)g
-Ft(RETURN)330 759 y Fu(pseudo-signal)35 b(sp)s(eci\014cation,)j
-(similar)d(to)h Ft(EXIT)e Fu(and)g Ft(DEBUG)p Fu(.)54
-b(Commands)34 b(sp)s(eci\014ed)g(with)h(an)330 869 y
-Ft(RETURN)k Fu(trap)i(are)g(executed)h(b)s(efore)e(execution)i(resumes)
-e(after)h(a)g(shell)g(function)g(or)g(a)g(shell)330 978
-y(script)36 b(executed)g(with)g Ft(.)f Fu(or)h Ft(source)e
-Fu(returns.)56 b(The)35 b Ft(RETURN)f Fu(trap)i(is)g(not)g(inherited)f
-(b)m(y)h(shell)330 1088 y(functions)k(unless)h(the)g(function)f(has)h
-(b)s(een)f(giv)m(en)i(the)f Ft(trace)e Fu(attribute)j(or)e(the)h
-Ft(functrace)330 1198 y Fu(option)31 b(has)f(b)s(een)g(enabled)g(using)
-g(the)g Ft(shopt)f Fu(builtin.)225 1329 y Fq(\017)60
-b Fu(The)30 b(Bash)g Ft(type)f Fu(builtin)h(is)g(more)g(extensiv)m(e)i
-(and)d(giv)m(es)j(more)e(information)h(ab)s(out)f(the)g(names)330
+(4.1)g([Bourne)f(Shell)g(Builtins],)i(page)f(48\))g(allo)m(ws)g(a)g
+Ft(RETURN)330 759 y Fu(pseudo-signal)f(sp)s(eci\014cation,)k(similar)d
+(to)g Ft(EXIT)e Fu(and)g Ft(DEBUG)p Fu(.)66 b(Commands)38
+b(sp)s(eci\014ed)h(with)g(a)330 869 y Ft(RETURN)g Fu(trap)i(are)g
+(executed)h(b)s(efore)e(execution)i(resumes)e(after)h(a)g(shell)g
+(function)g(or)g(a)g(shell)330 978 y(script)36 b(executed)g(with)g
+Ft(.)f Fu(or)h Ft(source)e Fu(returns.)56 b(The)35 b
+Ft(RETURN)f Fu(trap)i(is)g(not)g(inherited)f(b)m(y)h(shell)330
+1088 y(functions)k(unless)h(the)g(function)f(has)h(b)s(een)f(giv)m(en)i
+(the)f Ft(trace)e Fu(attribute)j(or)e(the)h Ft(functrace)330
+1198 y Fu(option)31 b(has)f(b)s(een)g(enabled)g(using)g(the)g
+Ft(shopt)f Fu(builtin.)225 1329 y Fq(\017)60 b Fu(The)30
+b(Bash)g Ft(type)f Fu(builtin)h(is)g(more)g(extensiv)m(e)i(and)d(giv)m
+(es)j(more)e(information)h(ab)s(out)f(the)g(names)330
1439 y(it)h(\014nds)e(\(see)i(Section)g(4.2)h([Bash)e(Builtins],)i
-(page)f(51\).)225 1570 y Fq(\017)60 b Fu(The)27 b(Bash)h
+(page)f(55\).)225 1570 y Fq(\017)60 b Fu(The)27 b(Bash)h
Ft(umask)e Fu(builtin)h(p)s(ermits)g(a)h Ft(-p)f Fu(option)h(to)h
(cause)f(the)g(output)f(to)h(b)s(e)f(displa)m(y)m(ed)h(in)g(the)330
1680 y(form)i(of)h(a)g Ft(umask)f Fu(command)g(that)i(ma)m(y)f(b)s(e)f
(reused)g(as)h(input)f(\(see)i(Section)f(4.1)h([Bourne)f(Shell)330
-1789 y(Builtins],)g(page)g(44\).)225 1921 y Fq(\017)60
+1789 y(Builtins],)g(page)g(48\).)225 1921 y Fq(\017)60
b Fu(Bash)34 b(implemen)m(ts)h(a)g Ft(csh)p Fu(-lik)m(e)g(directory)f
(stac)m(k,)j(and)d(pro)m(vides)g(the)g Ft(pushd)p Fu(,)g
-Ft(popd)p Fu(,)g(and)g Ft(dirs)330 2030 y Fu(builtins)g(to)i
-(manipulate)f(it)h(\(see)f(Section)h(6.8)g([The)f(Directory)h(Stac)m
-(k],)i(page)d(97\).)56 b(Bash)35 b(also)330 2140 y(mak)m(es)c(the)g
+Ft(popd)p Fu(,)g(and)g Ft(dirs)330 2030 y Fu(builtins)d(to)i
+(manipulate)f(it)h(\(see)g(Section)f(6.8)h([The)f(Directory)h(Stac)m
+(k],)h(page)f(102\).)47 b(Bash)32 b(also)330 2140 y(mak)m(es)f(the)g
(directory)g(stac)m(k)g(visible)g(as)g(the)f(v)-5 b(alue)31
b(of)g(the)f Ft(DIRSTACK)f Fu(shell)h(v)-5 b(ariable.)225
2272 y Fq(\017)60 b Fu(Bash)28 b(in)m(terprets)h(sp)s(ecial)g(bac)m
(kslash-escap)s(ed)g(c)m(haracters)g(in)f(the)h(prompt)e(strings)h
(when)f(in)m(ter-)330 2381 y(activ)m(e)33 b(\(see)e(Section)g(6.9)h
-([Con)m(trolling)f(the)g(Prompt],)f(page)h(98\).)225
+([Con)m(trolling)f(the)g(Prompt],)f(page)h(104\).)225
2513 y Fq(\017)60 b Fu(The)46 b(Bash)h(restricted)g(mo)s(de)f(is)h
(more)f(useful)g(\(see)h(Section)h(6.10)g([The)e(Restricted)i(Shell],)
-330 2622 y(page)31 b(100\);)h(the)f(SVR4.2)g(shell)g(restricted)g(mo)s
+330 2622 y(page)31 b(105\);)h(the)f(SVR4.2)g(shell)g(restricted)g(mo)s
(de)f(is)g(to)s(o)h(limited.)225 2754 y Fq(\017)60 b
Fu(The)30 b Ft(disown)f Fu(builtin)h(can)h(remo)m(v)m(e)h(a)f(job)f
(from)g(the)h(in)m(ternal)g(shell)g(job)f(table)i(\(see)f(Section)h
-(7.2)330 2863 y([Job)e(Con)m(trol)h(Builtins],)g(page)g(108\))g(or)g
+(7.2)330 2863 y([Job)e(Con)m(trol)h(Builtins],)g(page)g(114\))g(or)g
(suppress)d(the)i(sending)g(of)g Ft(SIGHUP)e Fu(to)j(a)g(job)f(when)f
(the)330 2973 y(shell)i(exits)g(as)f(the)h(result)f(of)h(a)f
Ft(SIGHUP)p Fu(.)225 3104 y Fq(\017)60 b Fu(Bash)31 b(includes)f(a)g(n)
@@ -19919,7 +20582,7 @@ Fq(\017)60 b Fu(The)30 b(SVR4.2)h Ft(sh)f Fu(uses)g(a)g
Ft(TIMEOUT)f Fu(v)-5 b(ariable)31 b(lik)m(e)h(Bash)e(uses)g
Ft(TMOUT)p Fu(.)150 3894 y(More)h(features)g(unique)e(to)i(Bash)g(ma)m
(y)g(b)s(e)f(found)f(in)h(Chapter)f(6)i([Bash)g(F)-8
-b(eatures],)32 b(page)f(86.)150 4128 y Fs(B.1)67 b(Implemen)l(tation)48
+b(eatures],)32 b(page)f(91.)150 4128 y Fs(B.1)67 b(Implemen)l(tation)48
b(Di\013erences)e(F)-11 b(rom)44 b(The)h(SVR4.2)g(Shell)150
4288 y Fu(Since)33 b(Bash)h(is)f(a)g(completely)i(new)e(implemen)m
(tation,)j(it)e(do)s(es)e(not)i(su\013er)e(from)h(man)m(y)g(of)h(the)f
@@ -19940,10 +20603,10 @@ Fu(.)57 b(If)35 b(the)i(shell)f(is)h(started)g(from)e(a)i(pro)s(cess)f
(with)g Ft(SIGSEGV)e Fu(blo)s(c)m(k)m(ed)k(\(e.g.,)h(b)m(y)d(using)330
5340 y(the)31 b Ft(system\(\))d Fu(C)i(library)g(function)g(call\),)i
(it)f(misb)s(eha)m(v)m(es)g(badly)-8 b(.)p eop end
-%%Page: 166 172
-TeXDict begin 166 171 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 173 179
+TeXDict begin 173 178 bop 150 -116 a Fu(App)s(endix)29
b(B:)i(Ma)5 b(jor)31 b(Di\013erences)g(F)-8 b(rom)31
-b(The)f(Bourne)g(Shell)1258 b(166)225 299 y Fq(\017)60
+b(The)f(Bourne)g(Shell)1258 b(173)225 299 y Fq(\017)60
b Fu(In)30 b(a)i(questionable)g(attempt)g(at)g(securit)m(y)-8
b(,)33 b(the)e(SVR4.2)h(shell,)g(when)e(in)m(v)m(ok)m(ed)j(without)e
(the)h Ft(-p)330 408 y Fu(option,)39 b(will)d(alter)i(its)e(real)h(and)
@@ -19974,8 +20637,8 @@ Fm(posix)330 1738 y Fu(standard.)225 1873 y Fq(\017)60
b Fu(The)30 b(SVR4.2)h(shell)g(b)s(eha)m(v)m(es)f(di\013eren)m(tly)h
(when)f(in)m(v)m(ok)m(ed)i(as)e Ft(jsh)g Fu(\(it)h(turns)e(on)h(job)g
(con)m(trol\).)p eop end
-%%Page: 167 173
-TeXDict begin 167 172 bop 3614 -116 a Fu(167)150 299
+%%Page: 174 180
+TeXDict begin 174 179 bop 3614 -116 a Fu(174)150 299
y Fp(App)t(endix)52 b(C)81 b(GNU)54 b(F)-13 b(ree)53
b(Do)t(cumen)l(tation)e(License)1359 502 y Fu(V)-8 b(ersion)31
b(1.3,)g(3)g(No)m(v)m(em)m(b)s(er)h(2008)390 635 y(Cop)m(yrigh)m(t)842
@@ -20056,10 +20719,10 @@ b(\\In)m(v)-5 b(arian)m(t)27 b(Sections")g(are)f(certain)g(Secondary)g
5340 y(b)s(eing)e(those)h(of)g(In)m(v)-5 b(arian)m(t)27
b(Sections,)i(in)d(the)h(notice)h(that)f(sa)m(ys)g(that)g(the)g(Do)s
(cumen)m(t)g(is)g(released)p eop end
-%%Page: 168 174
-TeXDict begin 168 173 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 175 181
+TeXDict begin 175 180 bop 150 -116 a Fu(App)s(endix)29
b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(168)330 299 y(under)26 b(this)i(License.)40 b(If)27
+b(175)330 299 y(under)26 b(this)i(License.)40 b(If)27
b(a)h(section)h(do)s(es)f(not)f(\014t)h(the)g(ab)s(o)m(v)m(e)h
(de\014nition)e(of)h(Secondary)f(then)h(it)g(is)330 408
y(not)k(allo)m(w)m(ed)i(to)e(b)s(e)g(designated)g(as)g(In)m(v)-5
@@ -20150,10 +20813,10 @@ b(Disclaimers)f(are)g(considered)e(to)330 4970 y(b)s(e)k(included)g(b)m
b(Disclaimers)f(ma)m(y)g(ha)m(v)m(e)g(is)f(v)m(oid)g(and)f(has)h(no)330
5189 y(e\013ect)32 b(on)e(the)h(meaning)f(of)h(this)f(License.)199
5340 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)p eop end
-%%Page: 169 175
-TeXDict begin 169 174 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 176 182
+TeXDict begin 176 181 bop 150 -116 a Fu(App)s(endix)29
b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(169)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h
+b(176)330 299 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h
(the)g(Do)s(cumen)m(t)h(in)f(an)m(y)g(medium,)h(either)g(commercially)h
(or)330 408 y(noncommercially)-8 b(,)48 b(pro)m(vided)42
b(that)h(this)f(License,)47 b(the)42 b(cop)m(yrigh)m(t)i(notices,)j
@@ -20243,10 +20906,10 @@ b(in)f(the)h(Title)h(P)m(age)g(\(and)f(on)f(the)h(co)m(v)m(ers,)i(if)e
5340 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f(previous)f(v)m
(ersions)h(\(whic)m(h)g(should,)g(if)g(there)g(w)m(ere)g(an)m(y)-8
b(,)p eop end
-%%Page: 170 176
-TeXDict begin 170 175 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 177 183
+TeXDict begin 177 182 bop 150 -116 a Fu(App)s(endix)29
b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(170)510 299 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g
+b(177)510 299 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g
(the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32 b(ma)m(y)g(use)f(the)g(same)
h(title)h(as)510 408 y(a)e(previous)f(v)m(ersion)g(if)h(the)f(original)
i(publisher)d(of)h(that)h(v)m(ersion)g(giv)m(es)h(p)s(ermission.)360
@@ -20325,10 +20988,10 @@ b(arran)m(t)m(y)32 b(Disclaimers.)330 5121 y(If)h(the)g(Mo)s(di\014ed)g
(designate)h(some)e(or)h(all)g(of)f(these)h(sections)h(as)e(in)m(v)-5
b(arian)m(t.)48 b(T)-8 b(o)33 b(do)f(this,)h(add)f(their)p
eop end
-%%Page: 171 177
-TeXDict begin 171 176 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 178 184
+TeXDict begin 178 183 bop 150 -116 a Fu(App)s(endix)29
b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(171)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5
+b(178)330 299 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5
b(arian)m(t)36 b(Sections)g(in)f(the)h(Mo)s(di\014ed)f(V)-8
b(ersion's)36 b(license)g(notice.)57 b(These)330 408
y(titles)32 b(m)m(ust)e(b)s(e)g(distinct)h(from)e(an)m(y)i(other)g
@@ -20413,10 +21076,10 @@ b(ma)m(y)g(extract)h(a)f(single)g(do)s(cumen)m(t)f(from)g(suc)m(h)g(a)h
5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)i(this)e(License)h(in)g(all)g
(other)g(resp)s(ects)f(regarding)h(v)m(erbatim)g(cop)m(ying)h(of)330
5340 y(that)d(do)s(cumen)m(t.)p eop end
-%%Page: 172 178
-TeXDict begin 172 177 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 179 185
+TeXDict begin 179 184 bop 150 -116 a Fu(App)s(endix)29
b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(172)199 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h
+b(179)199 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h
(W)m(ORKS)330 441 y(A)d(compilation)i(of)e(the)g(Do)s(cumen)m(t)h(or)f
(its)g(deriv)-5 b(ativ)m(es)30 b(with)d(other)i(separate)g(and)e(indep)
s(enden)m(t)330 551 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)f(or)h
@@ -20501,10 +21164,10 @@ b(ha)m(v)m(e)h(receiv)m(ed)h(copies)e(or)h(righ)m(ts)f(from)g(y)m(ou)g
(reinstated,)i(receipt)f(of)f(a)g(cop)m(y)h(of)f(some)h(or)f(all)h(of)f
(the)330 5340 y(same)31 b(material)h(do)s(es)e(not)g(giv)m(e)i(y)m(ou)f
(an)m(y)g(righ)m(ts)f(to)i(use)e(it.)p eop end
-%%Page: 173 179
-TeXDict begin 173 178 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 180 186
+TeXDict begin 180 185 bop 150 -116 a Fu(App)s(endix)29
b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(173)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)
+b(180)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)
330 433 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8
b(oundation)43 b(ma)m(y)f(publish)e(new,)k(revised)d(v)m(ersions)h(of)g
(the)g(GNU)g(F)-8 b(ree)330 543 y(Do)s(cumen)m(tation)34
@@ -20568,10 +21231,10 @@ f(of)g(that)330 2944 y(license)31 b(published)e(b)m(y)h(that)h(same)g
g(under)330 3895 y(CC-BY-SA)30 b(on)g(the)h(same)f(site)h(at)g(an)m(y)g
(time)g(b)s(efore)e(August)h(1,)h(2009,)h(pro)m(vided)e(the)g(MMC)h(is)
330 4005 y(eligible)h(for)e(relicensing.)p eop end
-%%Page: 174 180
-TeXDict begin 174 179 bop 150 -116 a Fu(App)s(endix)29
+%%Page: 181 187
+TeXDict begin 181 186 bop 150 -116 a Fu(App)s(endix)29
b(C:)h(GNU)h(F)-8 b(ree)31 b(Do)s(cumen)m(tation)i(License)1560
-b(174)150 299 y Fs(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g(this)h(License)f
+b(181)150 299 y Fs(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g(this)h(License)f
(for)g(y)l(our)g(do)t(cumen)l(ts)150 458 y Fu(T)-8 b(o)35
b(use)f(this)h(License)g(in)f(a)h(do)s(cumen)m(t)g(y)m(ou)f(ha)m(v)m(e)
i(written,)g(include)f(a)f(cop)m(y)i(of)f(the)f(License)h(in)g(the)150
@@ -20606,1230 +21269,1246 @@ y(If)23 b(y)m(our)h(do)s(cumen)m(t)f(con)m(tains)i(non)m(trivial)g
b(as)g(the)g(GNU)150 2331 y(General)31 b(Public)f(License,)i(to)f(p)s
(ermit)e(their)i(use)f(in)g(free)g(soft)m(w)m(are.)p
eop end
-%%Page: 175 181
-TeXDict begin 175 180 bop 3614 -116 a Fu(175)150 299
+%%Page: 182 188
+TeXDict begin 182 187 bop 3614 -116 a Fu(182)150 299
y Fp(App)t(endix)52 b(D)81 b(Indexes)150 639 y Fs(D.1)68
b(Index)45 b(of)g(Shell)g(Builtin)g(Commands)146 806
y(.)150 923 y Fe(.)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)33 b Fb(44)146 1163 y Fs(:)150 1280 y Fe(:)19 b Fc(:)13
+(:)33 b Fb(48)146 1163 y Fs(:)150 1280 y Fe(:)19 b Fc(:)13
b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(44)146
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(48)146
1523 y Fs([)150 1640 y Fe([)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)33 b Fb(48)146 1881 y Fs(A)150 1998 y Fe(alias)9
+(:)g(:)g(:)33 b Fb(52)146 1881 y Fs(A)150 1998 y Fe(alias)9
b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(51)146 2239 y
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(55)146 2239 y
Fs(B)150 2356 y Fe(bg)14 b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)29
-b Fb(108)150 2443 y Fe(bind)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+b Fb(114)150 2443 y Fe(bind)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25
-b Fb(51)150 2531 y Fe(break)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g
+b Fb(56)150 2531 y Fe(break)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23
-b Fb(45)150 2618 y Fe(builtin)f Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+b Fb(49)150 2618 y Fe(builtin)f Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35
-b Fb(53)146 2859 y Fs(C)150 2976 y Fe(caller)6 b Fc(:)15
+b Fb(57)146 2859 y Fs(C)150 2976 y Fe(caller)6 b Fc(:)15
b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)20 b Fb(53)150 3063 y Fe(cd)c Fc(:)e(:)f(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)20 b Fb(57)150 3063 y Fe(cd)c Fc(:)e(:)f(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)31 b Fb(45)150 3151 y Fe(command)22
+g(:)g(:)g(:)g(:)g(:)31 b Fb(49)150 3151 y Fe(command)22
b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)35 b Fb(53)150 3238 y Fe(compgen)18
+h(:)f(:)g(:)g(:)g(:)35 b Fb(57)150 3238 y Fe(compgen)18
b Fc(:)d(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)33 b Fb(139)150 3326 y Fe(complete)16
+(:)h(:)f(:)g(:)33 b Fb(146)150 3326 y Fe(complete)16
b Fc(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)31 b Fb(140)150 3413 y Fe(compopt)18 b Fc(:)d(:)e(:)g(:)h(:)
+(:)g(:)g(:)31 b Fb(146)150 3413 y Fe(compopt)18 b Fc(:)d(:)e(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)33
-b Fb(143)150 3501 y Fe(continue)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g
+b Fb(149)150 3501 y Fe(continue)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b
-Fb(45)146 3741 y Fs(D)150 3858 y Fe(declare)22 b Fc(:)13
+Fb(49)146 3741 y Fs(D)150 3858 y Fe(declare)22 b Fc(:)13
b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)35 b Fb(53)150 3946 y Fe(dirs)11 b Fc(:)j(:)f(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)25 b Fb(97)150 4033 y Fe(disown)d Fc(:)13
-b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)36 b Fb(110)146 4274 y Fs(E)150 4391 y Fe(echo)11
-b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25 b Fb(55)150 4478
-y Fe(enable)6 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 b Fb(56)150
-4566 y Fe(eval)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25
-b Fb(45)150 4653 y Fe(exec)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+g(:)g(:)g(:)35 b Fb(58)150 3946 y Fe(dirs)9 b Fc(:)14
+b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)24 b Fb(102)150 4033 y Fe(disown)e
+Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)36 b Fb(116)146 4274 y Fs(E)150 4391
+y Fe(echo)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25 b
+Fb(59)150 4478 y Fe(enable)6 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20
+b Fb(60)150 4566 y Fe(eval)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25
+b Fb(49)150 4653 y Fe(exec)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25
-b Fb(46)150 4741 y Fe(exit)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+b Fb(50)150 4741 y Fe(exit)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25
-b Fb(46)150 4828 y Fe(export)6 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g
+b Fb(50)150 4828 y Fe(export)6 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20
-b Fb(46)146 5080 y Fs(F)150 5197 y Fe(fc)14 b Fc(:)g(:)f(:)g(:)g(:)g(:)
+b Fb(50)146 5080 y Fs(F)150 5197 y Fe(fc)14 b Fc(:)g(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)29 b Fb(147)150 5284 y Fe(fg)14 b Fc(:)g(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)29 b Fb(153)150 5284 y Fe(fg)14 b Fc(:)g(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)29 b Fb(108)2021 871 y Fs(G)2025 988 y Fe(getopts)22
+g(:)g(:)g(:)29 b Fb(114)2021 871 y Fs(G)2025 988 y Fe(getopts)22
b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)35 b Fb(46)2021 1250 y Fs(H)2025
+g(:)g(:)h(:)f(:)g(:)35 b Fb(50)2021 1250 y Fs(H)2025
1369 y Fe(hash)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26
-b Fb(47)2025 1457 y Fe(help)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+b Fb(51)2025 1457 y Fe(help)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26
-b Fb(56)2025 1544 y Fe(history)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g
+b Fb(61)2025 1544 y Fe(history)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b
-Fb(147)2021 1806 y Fs(J)2025 1924 y Fe(jobs)9 b Fc(:)14
+Fb(153)2021 1806 y Fs(J)2025 1924 y Fe(jobs)9 b Fc(:)14
b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(108)2021 2186 y Fs(K)2025
+g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(114)2021 2186 y Fs(K)2025
2303 y Fe(kill)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24
-b Fb(109)2021 2554 y Fs(L)2025 2672 y Fe(let)14 b Fc(:)f(:)g(:)h(:)f(:)
+b Fb(115)2021 2554 y Fs(L)2025 2672 y Fe(let)14 b Fc(:)f(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)28 b Fb(56)2025 2760 y Fe(local)9 b Fc(:)14
+g(:)g(:)h(:)f(:)28 b Fb(61)2025 2760 y Fe(local)9 b Fc(:)14
b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(57)2025 2848 y Fe(logout)6
+g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(61)2025 2848 y Fe(logout)6
b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(57)2021 3110 y Fs(M)2025
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(61)2021 3110 y Fs(M)2025
3227 y Fe(mapfile)h Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(57)2021
-3489 y Fs(P)2025 3608 y Fe(popd)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26
-b Fb(98)2025 3696 y Fe(printf)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(58)2025 3784 y Fe(pushd)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23
-b Fb(98)2025 3871 y Fe(pwd)14 b Fc(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(61)2021
+3489 y Fs(P)2025 3608 y Fe(popd)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24
+b Fb(103)2025 3696 y Fe(printf)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
+b Fb(62)2025 3784 y Fe(pushd)6 b Fc(:)14 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)21
+b Fb(103)2025 3871 y Fe(pwd)14 b Fc(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)28
-b Fb(47)2021 4133 y Fs(R)2025 4251 y Fe(read)11 b Fc(:)j(:)f(:)g(:)g(:)
+b Fb(51)2021 4133 y Fs(R)2025 4251 y Fe(read)11 b Fc(:)j(:)f(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)26 b Fb(58)2025 4339 y Fe(readarray)15 b
+g(:)g(:)g(:)26 b Fb(63)2025 4339 y Fe(readarray)15 b
Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)30 b Fb(60)2025 4427 y Fe(readonly)18 b Fc(:)d(:)e(:)g(:)g(:)g
+g(:)g(:)30 b Fb(64)2025 4427 y Fe(readonly)18 b Fc(:)d(:)e(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33
-b Fb(47)2025 4515 y Fe(return)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g
+b Fb(52)2025 4515 y Fe(return)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(48)2021 4765 y Fs(S)2025 4884 y Fe(set)14 b Fc(:)f(:)g(:)h(:)f(:)g
+b Fb(52)2021 4765 y Fs(S)2025 4884 y Fe(set)14 b Fc(:)f(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)28 b Fb(62)2025 4972 y Fe(shift)9 b Fc(:)14
+(:)g(:)h(:)f(:)28 b Fb(67)2025 4972 y Fe(shift)9 b Fc(:)14
b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(48)2025 5060 y Fe(shopt)9
+g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(52)2025 5060 y Fe(shopt)9
b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(66)2025 5148
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(71)2025 5148
y Fe(source)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(60)2025
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(64)2025
5235 y Fe(suspend)d Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(110)p eop end
-%%Page: 176 182
-TeXDict begin 176 181 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(176)146 294 y Fs(T)150 410 y Fe(test)11
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fb(116)p eop end
+%%Page: 183 189
+TeXDict begin 183 188 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(183)146 294 y Fs(T)150 410 y Fe(test)11
b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25 b Fb(48)150 497
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25 b Fb(52)150 497
y Fe(times)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(50)150
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(54)150
584 y Fe(trap)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25
-b Fb(50)150 671 y Fe(type)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+b Fb(54)150 671 y Fe(type)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25
-b Fb(60)150 758 y Fe(typeset)d Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+b Fb(64)150 758 y Fe(typeset)d Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35
-b Fb(61)146 1003 y Fs(U)150 1119 y Fe(ulimit)6 b Fc(:)15
+b Fb(65)146 1003 y Fs(U)150 1119 y Fe(ulimit)6 b Fc(:)15
b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)20 b Fb(61)150 1206 y Fe(umask)9
+g(:)g(:)g(:)h(:)f(:)20 b Fb(65)150 1206 y Fe(umask)9
b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(51)150 1293 y
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(55)150 1293 y
Fe(unalias)f Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(62)150 1380 y
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(66)150 1380 y
Fe(unset)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(51)2021
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(55)2021
294 y Fs(W)2025 433 y Fe(wait)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24
-b Fb(109)150 2133 y Fs(D.2)68 b(Index)45 b(of)g(Shell)g(Reserv)l(ed)h
-(W)-11 b(ords)146 2704 y(!)150 2820 y Fe(!)21 b Fc(:)13
-b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(8)146
+b Fb(115)150 2133 y Fs(D.2)68 b(Index)45 b(of)g(Shell)g(Reserv)l(ed)h
+(W)-11 b(ords)146 2704 y(!)150 2820 y Fe(!)19 b Fc(:)13
+b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(10)146
3056 y Fs([)150 3172 y Fe([[)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)31 b Fb(13)146 3414 y Fs(])150 3530 y Fe(]])16 b
+g(:)31 b Fb(14)146 3414 y Fs(])150 3530 y Fe(]])16 b
Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)31 b Fb(13)146
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)31 b Fb(14)146
3770 y Fa({)150 3886 y Fe({)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)33 b Fb(15)146 4125 y Fa(})150 4241 y Fe(})19
+(:)g(:)g(:)33 b Fb(17)146 4125 y Fa(})150 4241 y Fe(})19
b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b
-Fb(15)146 4475 y Fs(C)150 4591 y Fe(case)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)
+Fb(17)146 4475 y Fs(C)150 4591 y Fe(case)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)25 b Fb(11)146 4825 y Fs(D)150 4941 y Fe(do)16
+g(:)h(:)25 b Fb(13)146 4825 y Fs(D)150 4941 y Fe(do)16
b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)31 b Fb(10)150
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)31 b Fb(11)150
5028 y Fe(done)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25
-b Fb(10)146 5261 y Fs(E)150 5377 y Fe(elif)11 b Fc(:)j(:)f(:)g(:)h(:)f
+b Fb(11)146 5261 y Fs(E)150 5377 y Fe(elif)11 b Fc(:)j(:)f(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)25 b Fb(11)150 5465 y Fe(else)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)
+(:)g(:)h(:)25 b Fb(12)150 5465 y Fe(else)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)25 b Fb(11)150 5552 y Fe(esac)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g
+g(:)h(:)25 b Fb(12)150 5552 y Fe(esac)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)25 b Fb(11)2021 2703 y Fs(F)2025 2836 y Fe(fi)16
+(:)h(:)25 b Fb(13)2021 2703 y Fs(F)2025 2836 y Fe(fi)16
b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)31 b Fb(11)2025
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)31 b Fb(12)2025
2928 y Fe(for)14 b Fc(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)28
-b Fb(10)2025 3015 y Fe(function)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f
+b Fb(12)2025 3015 y Fe(function)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b
-Fb(18)2021 3359 y Fs(I)2025 3491 y Fe(if)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)
+Fb(19)2021 3359 y Fs(I)2025 3491 y Fe(if)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)31 b Fb(11)2025 3578 y Fe(in)16 b Fc(:)e(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)31 b Fb(12)2025 3578 y Fe(in)16 b Fc(:)e(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)31 b Fb(11)2021 3921 y Fs(S)2025
+f(:)g(:)g(:)g(:)g(:)31 b Fb(13)2021 3921 y Fs(S)2025
4048 y Fe(select)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b
-Fb(12)2021 4392 y Fs(T)2025 4524 y Fe(then)11 b Fc(:)j(:)f(:)g(:)g(:)g
+Fb(13)2021 4392 y Fs(T)2025 4524 y Fe(then)11 b Fc(:)j(:)f(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)26 b Fb(11)2025 4611 y Fe(time)13 b Fc(:)h(:)f(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)28 b Fb(8)2021 4954 y Fs(U)2025 5081 y
-Fe(until)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(10)2021
-5425 y Fs(W)2025 5552 y Fe(while)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23
-b Fb(10)p eop end
-%%Page: 177 183
-TeXDict begin 177 182 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(177)150 299 y Fs(D.3)68 b(P)l(arameter)47
-b(and)d(V)-11 b(ariable)46 b(Index)146 955 y(!)150 1073
+(:)g(:)g(:)26 b Fb(12)2025 4611 y Fe(time)11 b Fc(:)j(:)f(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)26 b Fb(10)2021 4954 y Fs(U)2025 5081 y Fe(until)9
+b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(11)2021 5425
+y Fs(W)2025 5552 y Fe(while)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23
+b Fb(12)p eop end
+%%Page: 184 190
+TeXDict begin 184 189 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(184)150 299 y Fs(D.3)68 b(P)l(arameter)47
+b(and)d(V)-11 b(ariable)46 b(Index)146 955 y(!)150 1072
y Fe(!)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33
-b Fb(22)146 1327 y Fs(#)150 1445 y Fe(#)19 b Fc(:)13
+b Fb(24)146 1314 y Fs(#)150 1431 y Fe(#)19 b Fc(:)13
b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(22)146
-1701 y Fs($)150 1820 y Fe($)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(23)146
+1676 y Fs($)150 1794 y Fe($)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)33 b Fb(22)150 1909 y Fe($!)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)33 b Fb(23)150 1881 y Fe($!)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)31 b Fb(22)150 1997 y Fe($#)16 b Fc(:)e(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)31 b Fb(24)150 1969 y Fe($#)16 b Fc(:)e(:)f(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)31 b Fb(22)150 2085 y Fe($$)16 b Fc(:)e(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)31 b Fb(23)150 2057 y Fe($$)16 b Fc(:)e(:)f(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)31 b Fb(22)150 2173 y Fe($*)16
+(:)g(:)g(:)g(:)g(:)g(:)31 b Fb(23)150 2144 y Fe($*)16
b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)31 b Fb(22)150
-2261 y Fe($-)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)31 b Fb(23)150
+2232 y Fe($-)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)31
-b Fb(22)150 2350 y Fe($?)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+b Fb(23)150 2320 y Fe($?)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-31 b Fb(22)150 2438 y Fe($@)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+31 b Fb(23)150 2407 y Fe($@)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)31 b Fb(22)150 2526 y Fe($_)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f
+(:)31 b Fb(23)150 2495 y Fe($_)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)31 b Fb(73)150 2613 y Fe($0)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h
+(:)g(:)31 b Fb(78)150 2582 y Fe($0)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)31 b Fb(22)146 2876 y Fs(*)150 2994 y Fe(*)19
+(:)g(:)g(:)31 b Fb(24)146 2834 y Fs(*)150 2950 y Fe(*)19
b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b
-Fb(22)146 3248 y Fs({)150 3366 y Fe(-)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)
+Fb(23)146 3193 y Fs({)150 3310 y Fe(-)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)33 b Fb(22)146 3620 y Fs(?)150 3738
+g(:)h(:)f(:)g(:)g(:)33 b Fb(23)146 3553 y Fs(?)150 3670
y Fe(?)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33
-b Fb(22)146 3992 y Fs(@)150 4110 y Fe(@)19 b Fc(:)13
+b Fb(23)146 3912 y Fs(@)150 4029 y Fe(@)19 b Fc(:)13
b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(22)p
-156 4364 41 6 v 150 4482 a Fe(_)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33 b Fb(23)p
+156 4272 41 6 v 150 4389 a Fe(_)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)33 b Fb(73)146 4736 y Fs(0)150 4854 y
+(:)f(:)g(:)g(:)33 b Fb(78)146 4631 y Fs(0)150 4748 y
Fe(0)19 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)33
-b Fb(22)146 5108 y Fs(A)150 5226 y Fe(auto_resume)8 b
+b Fb(24)146 4991 y Fs(A)150 5108 y Fe(active-region-end-color)12
+b Fc(:)18 b(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)26 b Fb(121)150 5196 y Fe(active-region-start-color)
+7 b Fc(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)21 b Fb(121)150 5283 y Fe(auto_resume)8 b
Fc(:)16 b(:)d(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-23 b Fb(110)2021 954 y Fs(B)2025 1074 y Fe(BASH)11 b
+23 b Fb(116)2021 954 y Fs(B)2025 1074 y Fe(BASH)11 b
Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(74)2025 1163
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(79)2025 1163
y Fe(BASH_ALIASES)8 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)22 b Fb(74)2025 1251 y Fe(BASH_ARGC)15
+g(:)g(:)g(:)g(:)h(:)22 b Fb(79)2025 1251 y Fe(BASH_ARGC)15
b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)30 b Fb(74)2025 1340 y Fe(BASH_ARGV)15 b Fc(:)g(:)f(:)f(:)g
+(:)g(:)g(:)30 b Fb(79)2025 1340 y Fe(BASH_ARGV)15 b Fc(:)g(:)f(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30
-b Fb(74)2025 1429 y Fe(BASH_ARGV0)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g
+b Fb(79)2025 1429 y Fe(BASH_ARGV0)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(75)2025
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(80)2025
1517 y Fe(BASH_CMDS)15 b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(75)2025 1606
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(80)2025 1606
y Fe(BASH_COMMAND)8 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)22 b Fb(75)2025 1695 y Fe(BASH_COMPAT)10
+g(:)g(:)g(:)g(:)h(:)22 b Fb(80)2025 1695 y Fe(BASH_COMPAT)10
b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)25 b Fb(75)2025 1783 y Fe(BASH_ENV)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g
+g(:)25 b Fb(80)2025 1783 y Fe(BASH_ENV)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33
-b Fb(75)2025 1872 y Fe(BASH_EXECUTION_STRING)24 b Fc(:)13
+b Fb(80)2025 1872 y Fe(BASH_EXECUTION_STRING)24 b Fc(:)13
b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)34 b Fb(75)2025 1960 y Fe(BASH_LINENO)10
+(:)g(:)g(:)g(:)g(:)34 b Fb(80)2025 1960 y Fe(BASH_LINENO)10
b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)25 b Fb(75)2025 2049 y Fe(BASH_LOADABLES_PATH)7 b
+g(:)25 b Fb(80)2025 2049 y Fe(BASH_LOADABLES_PATH)7 b
Fc(:)17 b(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(76)2025
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(81)2025
2138 y Fe(BASH_REMATCH)8 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)22 b Fb(76)2025 2226 y Fe(BASH_SOURCE)10
+(:)g(:)g(:)g(:)g(:)g(:)h(:)22 b Fb(81)2025 2226 y Fe(BASH_SOURCE)10
b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)25 b Fb(76)2025 2315 y Fe(BASH_SUBSHELL)g Fc(:)13
+g(:)25 b Fb(81)2025 2315 y Fe(BASH_SUBSHELL)g Fc(:)13
b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
-b Fb(76)2025 2403 y Fe(BASH_VERSINFO)25 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g
+b Fb(81)2025 2403 y Fe(BASH_VERSINFO)25 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(76)2025 2492
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(81)2025 2492
y Fe(BASH_VERSION)8 b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)22 b Fb(76)2025 2581 y Fe(BASH_XTRACEFD)j
+g(:)g(:)g(:)g(:)h(:)22 b Fb(81)2025 2581 y Fe(BASH_XTRACEFD)j
Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
-b Fb(76)2025 2669 y Fe(BASHOPTS)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f
+b Fb(81)2025 2669 y Fe(BASHOPTS)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b
-Fb(74)2025 2758 y Fe(BASHPID)22 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+Fb(79)2025 2758 y Fe(BASHPID)22 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35
-b Fb(74)2025 2847 y Fe(bell-style)11 b Fc(:)k(:)e(:)g(:)g(:)g(:)h(:)f
+b Fb(79)2025 2847 y Fe(bell-style)11 b Fc(:)k(:)e(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)26 b Fb(115)2025
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)26 b Fb(121)2025
2935 y Fe(bind-tty-special-chars)14 b Fc(:)k(:)13 b(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)29
-b Fb(115)2025 3022 y Fe(blink-matching-paren)24 b Fc(:)13
+b Fb(121)2025 3022 y Fe(blink-matching-paren)24 b Fc(:)13
b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)34 b Fb(115)2021 3297 y Fs(C)2025
+(:)g(:)g(:)g(:)h(:)34 b Fb(122)2021 3297 y Fs(C)2025
3417 y Fe(CDPATH)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b
-Fb(73)2025 3506 y Fe(CHILD_MAX)15 b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)g
+Fb(78)2025 3506 y Fe(CHILD_MAX)15 b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(77)2025
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(82)2025
3595 y Fe(colored-completion-prefix)7 b Fc(:)18 b(:)13
b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22
-b Fb(115)2025 3683 y Fe(colored-stats)h Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
+b Fb(122)2025 3683 y Fe(colored-stats)h Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(115)2025 3772 y Fe(COLUMNS)22
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(122)2025 3772 y Fe(COLUMNS)22
b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)35 b Fb(77)2025 3860 y Fe(comment-begin)23
+g(:)g(:)h(:)f(:)g(:)35 b Fb(82)2025 3860 y Fe(comment-begin)23
b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35
-b Fb(115)2025 3949 y Fe(COMP_CWORD)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g
+b Fb(122)2025 3949 y Fe(COMP_CWORD)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(77)2025
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(82)2025
4038 y Fe(COMP_KEY)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b Fb(77)2025 4126
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b Fb(82)2025 4126
y Fe(COMP_LINE)15 b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(77)2025 4215 y Fe(COMP_POINT)13
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(82)2025 4215 y Fe(COMP_POINT)13
b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)27 b Fb(77)2025 4303 y Fe(COMP_TYPE)15 b Fc(:)g(:)f(:)f(:)g(:)g
+(:)h(:)27 b Fb(82)2025 4303 y Fe(COMP_TYPE)15 b Fc(:)g(:)f(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30
-b Fb(77)2025 4392 y Fe(COMP_WORDBREAKS)17 b Fc(:)g(:)c(:)g(:)g(:)g(:)g
+b Fb(82)2025 4392 y Fe(COMP_WORDBREAKS)17 b Fc(:)g(:)c(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)32 b Fb(77)2025 4481 y Fe(COMP_WORDS)13
+h(:)f(:)g(:)g(:)g(:)g(:)32 b Fb(82)2025 4481 y Fe(COMP_WORDS)13
b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)27 b Fb(77)2025 4569 y Fe(completion-display-width)9
+(:)h(:)27 b Fb(82)2025 4569 y Fe(completion-display-width)9
b Fc(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)24 b Fb(115)2025 4658 y Fe(completion-ignore-case)14
+(:)h(:)f(:)g(:)24 b Fb(122)2025 4658 y Fe(completion-ignore-case)14
b Fc(:)k(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)29 b Fb(116)2025 4747 y Fe(completion-map-case)d
+(:)g(:)g(:)h(:)f(:)29 b Fb(122)2025 4747 y Fe(completion-map-case)d
Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(116)2025 4835
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(122)2025 4835
y Fe(completion-prefix-display-leng)q(th)29 b Fc(:)13
-b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)38 b Fb(116)2025 4924
+b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)38 b Fb(122)2025 4924
y Fe(completion-query-items)14 b Fc(:)k(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)29
-b Fb(116)2025 5012 y Fe(COMPREPLY)15 b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g
+b Fb(122)2025 5012 y Fe(COMPREPLY)15 b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b
-Fb(78)2025 5101 y Fe(convert-meta)25 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)
+Fb(83)2025 5101 y Fe(convert-meta)25 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(116)2025 5188
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(123)2025 5188
y Fe(COPROC)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(78)p
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(83)p
eop end
-%%Page: 178 184
-TeXDict begin 178 183 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(178)146 294 y Fs(D)150 416 y Fe(DIRSTACK)18
+%%Page: 185 191
+TeXDict begin 185 190 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(185)146 294 y Fs(D)150 415 y Fe(DIRSTACK)18
b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)32 b Fb(78)150 503 y Fe(disable-completion)7
+(:)g(:)h(:)f(:)32 b Fb(83)150 502 y Fe(disable-completion)7
b Fc(:)18 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(116)146
-791 y Fs(E)150 913 y Fe(echo-control-characters)12 b
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(123)146
+782 y Fs(E)150 903 y Fe(echo-control-characters)12 b
Fc(:)18 b(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)26 b Fb(116)150 1002 y Fe(editing-mode)f
+g(:)g(:)g(:)h(:)26 b Fb(123)150 991 y Fe(editing-mode)f
Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)37
-b Fb(116)150 1092 y Fe(emacs-mode-string)10 b Fc(:)17
+b Fb(123)150 1080 y Fe(emacs-mode-string)10 b Fc(:)17
b(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)25 b Fb(117)150 1181
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)25 b Fb(123)150 1169
y Fe(EMACS)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(78)150
-1270 y Fe(enable-bracketed-paste)14 b Fc(:)k(:)c(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29
-b Fb(117)150 1359 y Fe(enable-keypad)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(83)150
+1258 y Fe(enable-active-region)h Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)34
+b Fb(123)150 1347 y Fe(enable-bracketed-paste)14 b Fc(:)k(:)c(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29
+b Fb(124)150 1436 y Fe(enable-keypad)23 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(117)150 1449 y Fe(ENV)14
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(124)150 1525 y Fe(ENV)14
b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)28 b Fb(78)150
-1538 y Fe(EPOCHREALTIME)d Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)28 b Fb(83)150
+1613 y Fe(EPOCHREALTIME)d Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)37 b Fb(78)150 1627 y Fe(EPOCHSECONDS)8
+g(:)g(:)g(:)g(:)37 b Fb(83)150 1702 y Fe(EPOCHSECONDS)8
b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-22 b Fb(78)150 1716 y Fe(EUID)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g
+22 b Fb(83)150 1791 y Fe(EUID)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25
-b Fb(78)150 1806 y Fe(EXECIGNORE)13 b Fc(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)
+b Fb(83)150 1880 y Fe(EXECIGNORE)13 b Fc(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(78)150
-1893 y Fe(expand-tilde)e Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(83)150
+1967 y Fe(expand-tilde)e Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)37 b Fb(117)146 2180 y Fs(F)150 2303
+g(:)g(:)g(:)h(:)37 b Fb(124)146 2247 y Fs(F)150 2368
y Fe(FCEDIT)6 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 b Fb(79)150
-2392 y Fe(FIGNORE)i Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 b Fb(84)150
+2457 y Fe(FIGNORE)i Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(79)150
-2481 y Fe(FUNCNAME)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(84)150
+2545 y Fe(FUNCNAME)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(79)150 2568
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(84)150 2633
y Fe(FUNCNEST)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(79)146 2844 y
-Fs(G)150 2967 y Fe(GLOBIGNORE)13 b Fc(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(84)146 2901 y
+Fs(G)150 3022 y Fe(GLOBIGNORE)13 b Fc(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(79)150
-3054 y Fe(GROUPS)6 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(84)150
+3109 y Fe(GROUPS)6 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)20 b
-Fb(79)146 3330 y Fs(H)150 3452 y Fe(histchars)15 b Fc(:)h(:)d(:)g(:)g
+Fb(84)146 3377 y Fs(H)150 3498 y Fe(histchars)15 b Fc(:)h(:)d(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)30
-b Fb(79)150 3542 y Fe(HISTCMD)22 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)
+b Fb(84)150 3587 y Fe(HISTCMD)22 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35
-b Fb(79)150 3631 y Fe(HISTCONTROL)10 b Fc(:)16 b(:)d(:)g(:)g(:)h(:)f(:)
+b Fb(84)150 3676 y Fe(HISTCONTROL)10 b Fc(:)16 b(:)d(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(80)150
-3720 y Fe(HISTFILE)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(85)150
+3765 y Fe(HISTFILE)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(80)150 3809
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(85)150 3854
y Fe(HISTFILESIZE)8 b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)22 b Fb(80)150 3899 y Fe(HISTIGNORE)13
+g(:)g(:)h(:)f(:)g(:)22 b Fb(85)150 3942 y Fe(HISTIGNORE)13
b Fc(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)27 b Fb(80)150 3988 y Fe(history-preserve-point)14
+(:)g(:)27 b Fb(85)150 4031 y Fe(history-preserve-point)14
b Fc(:)k(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)29 b Fb(117)150 4077 y Fe(history-size)c
+h(:)f(:)g(:)g(:)29 b Fb(124)150 4120 y Fe(history-size)c
Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)37
-b Fb(117)150 4166 y Fe(HISTSIZE)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g
+b Fb(124)150 4209 y Fe(HISTSIZE)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b
-Fb(80)150 4256 y Fe(HISTTIMEFORMAT)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
+Fb(85)150 4298 y Fe(HISTTIMEFORMAT)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(80)150 4345 y Fe(HOME)11
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(85)150 4387 y Fe(HOME)11
b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25 b Fb(73)150 4434
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25 b Fb(78)150 4475
y Fe(horizontal-scroll-mode)14 b Fc(:)k(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b Fb(117)150
-4523 y Fe(HOSTFILE)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b Fb(124)150
+4564 y Fe(HOSTFILE)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(81)150 4613
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(86)150 4653
y Fe(HOSTNAME)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(81)150 4700 y
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(86)150 4740 y
Fe(HOSTTYPE)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(81)2021 294 y Fs(I)2025
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)32 b Fb(86)2021 294 y Fs(I)2025
420 y Fe(IFS)14 b Fc(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)28
-b Fb(73)2025 510 y Fe(IGNOREEOF)15 b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)g
+b Fb(78)2025 510 y Fe(IGNOREEOF)15 b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(81)2025
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(86)2025
600 y Fe(input-meta)11 b Fc(:)k(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)26 b Fb(118)2025 691 y Fe(INPUTRC)c
+h(:)f(:)g(:)g(:)g(:)g(:)26 b Fb(124)2025 691 y Fe(INPUTRC)c
Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)35 b Fb(81)2025 781 y Fe(INSIDE_EMACS)8
+g(:)g(:)h(:)f(:)g(:)35 b Fb(86)2025 781 y Fe(INSIDE_EMACS)8
b Fc(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-22 b Fb(81)2025 868 y Fe(isearch-terminators)k Fc(:)13
+22 b Fb(86)2025 868 y Fe(isearch-terminators)k Fc(:)13
b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(118)2021 1167 y Fs(K)2025
+(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(125)2021 1167 y Fs(K)2025
1290 y Fe(keymap)22 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(118)2021
-1601 y Fs(L)2025 1727 y Fe(LANG)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26
-b Fb(81)2025 1817 y Fe(LC_ALL)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(81)2025 1907 y Fe(LC_COLLATE)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(125)2021
+1601 y Fs(L)2025 1727 y Fe(LANG)20 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)35
+b Fb(8,)26 b(86)2025 1817 y Fe(LC_ALL)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
+b Fb(86)2025 1907 y Fe(LC_COLLATE)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(81)2025
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(86)2025
1998 y Fe(LC_CTYPE)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b Fb(81)2025 2088
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b Fb(86)2025 2088
y Fe(LC_MESSAGES)21 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)34 b Fb(7,)26 b(81)2025 2178 y Fe(LC_NUMERIC)13
+g(:)g(:)g(:)34 b Fb(8,)26 b(86)2025 2178 y Fe(LC_NUMERIC)13
b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)27 b Fb(82)2025 2269 y Fe(LC_TIME)22 b Fc(:)13
+(:)h(:)27 b Fb(87)2025 2269 y Fe(LC_TIME)22 b Fc(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)35 b Fb(82)2025 2359 y Fe(LINENO)6 b Fc(:)14
+h(:)f(:)g(:)35 b Fb(87)2025 2359 y Fe(LINENO)6 b Fc(:)14
b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)21 b Fb(82)2025 2446 y Fe(LINES)9
+g(:)g(:)g(:)g(:)g(:)21 b Fb(87)2025 2446 y Fe(LINES)9
b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(82)2021 2746
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23 b Fb(87)2021 2746
y Fs(M)2025 2872 y Fe(MACHTYPE)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b
-Fb(82)2025 2962 y Fe(MAIL)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+Fb(87)2025 2962 y Fe(MAIL)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26
-b Fb(73)2025 3052 y Fe(MAILCHECK)15 b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)
+b Fb(78)2025 3052 y Fe(MAILCHECK)15 b Fc(:)g(:)f(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(82)2025
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(87)2025
3143 y Fe(MAILPATH)18 b Fc(:)d(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b Fb(73)2025 3233
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33 b Fb(78)2025 3233
y Fe(MAPFILE)22 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(82)2025 3323
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(87)2025 3323
y Fe(mark-modified-lines)26 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
-b Fb(118)2025 3414 y Fe(mark-symlinked-directories)27
+b Fb(125)2025 3414 y Fe(mark-symlinked-directories)27
b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-36 b Fb(119)2025 3504 y Fe(match-hidden-files)7 b Fc(:)17
+36 b Fb(125)2025 3504 y Fe(match-hidden-files)7 b Fc(:)17
b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22 b Fb(119)2025 3594
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22 b Fb(125)2025 3594
y Fe(menu-complete-display-prefix)17 b Fc(:)h(:)13 b(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)31 b Fb(119)2025 3681 y Fe(meta-flag)13
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)31 b Fb(126)2025 3681 y Fe(meta-flag)13
b Fc(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)28 b Fb(118)2021 3992 y Fs(O)2025 4118 y Fe(OLDPWD)6
+(:)f(:)28 b Fb(124)2021 3992 y Fs(O)2025 4118 y Fe(OLDPWD)6
b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(82)2025 4208 y Fe(OPTARG)6
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(87)2025 4208 y Fe(OPTARG)6
b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(73)2025 4299 y Fe(OPTERR)6
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(78)2025 4299 y Fe(OPTERR)6
b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(82)2025 4389 y Fe(OPTIND)6
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(87)2025 4389 y Fe(OPTIND)6
b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(73)2025 4480 y Fe(OSTYPE)6
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(78)2025 4480 y Fe(OSTYPE)6
b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(82)2025 4567 y Fe(output-meta)8
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)21 b Fb(87)2025 4567 y Fe(output-meta)8
b Fc(:)16 b(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-23 b Fb(119)p eop end
-%%Page: 179 185
-TeXDict begin 179 184 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(179)146 294 y Fs(P)150 410 y Fe(page-completions)
+23 b Fb(126)p eop end
+%%Page: 186 192
+TeXDict begin 186 191 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(186)146 294 y Fs(P)150 410 y Fe(page-completions)
13 b Fc(:)j(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)27 b Fb(119)150
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)27 b Fb(126)150
497 y Fe(PATH)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)25
-b Fb(73)150 584 y Fe(PIPESTATUS)13 b Fc(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g
+b Fb(78)150 584 y Fe(PIPESTATUS)13 b Fc(:)i(:)e(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(82)150
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)27 b Fb(87)150
671 y Fe(POSIXLY_CORRECT)17 b Fc(:)g(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)32 b Fb(82)150 758 y Fe(PPID)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g
+(:)g(:)g(:)32 b Fb(87)150 758 y Fe(PPID)11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)25 b Fb(82)150 846 y Fe(PROMPT_COMMAND)e Fc(:)13
+(:)h(:)25 b Fb(87)150 846 y Fe(PROMPT_COMMAND)e Fc(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34
-b Fb(82)150 933 y Fe(PROMPT_DIRTRIM)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
+b Fb(87)150 933 y Fe(PROMPT_DIRTRIM)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(83)150 1020 y Fe(PS0)14
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(88)150 1020 y Fe(PS0)14
b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)28 b Fb(83)150
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)28 b Fb(88)150
1107 y Fe(PS1)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)28
-b Fb(73)150 1194 y Fe(PS2)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+b Fb(78)150 1194 y Fe(PS2)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)28
-b Fb(73)150 1281 y Fe(PS3)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+b Fb(78)150 1281 y Fe(PS3)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)28
-b Fb(83)150 1369 y Fe(PS4)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+b Fb(88)150 1369 y Fe(PS4)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)28
-b Fb(83)150 1456 y Fe(PWD)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+b Fb(88)150 1456 y Fe(PWD)14 b Fc(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)28
-b Fb(83)146 1689 y Fs(R)150 1804 y Fe(RANDOM)6 b Fc(:)15
+b Fb(88)146 1689 y Fs(R)150 1804 y Fe(RANDOM)6 b Fc(:)15
b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)20 b Fb(83)150 1892 y Fe(READLINE_LINE)25
+g(:)g(:)g(:)h(:)f(:)20 b Fb(88)150 1892 y Fe(READLINE_ARGUMENT)12
+b Fc(:)17 b(:)c(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(88)150
+1979 y Fe(READLINE_LINE)f Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)37 b Fb(88)150 2066 y Fe(READLINE_MARK)25
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
-b Fb(83)150 1979 y Fe(READLINE_MARK)25 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g
+b Fb(88)150 2153 y Fe(READLINE_POINT)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(88)150 2240 y Fe(REPLY)9
+b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(88)150 2327 y
+Fe(revert-all-at-newline)17 b Fc(:)h(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)32
+b Fb(126)146 2560 y Fs(S)150 2676 y Fe(SECONDS)22 b Fc(:)13
+b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)35 b Fb(88)150 2763 y Fe(SHELL)9 b Fc(:)14
+b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(83)150 2066 y
-Fe(READLINE_POINT)23 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)34 b Fb(83)150 2153 y Fe(REPLY)9 b Fc(:)14
+g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(88)150 2851 y Fe(SHELLOPTS)15
+b Fc(:)h(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)30 b Fb(89)150 2938 y Fe(SHLVL)9 b Fc(:)14
b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(83)150 2240 y Fe(revert-all-at-newline)
+g(:)h(:)f(:)g(:)g(:)g(:)23 b Fb(89)150 3025 y Fe(show-all-if-ambiguous)
17 b Fc(:)h(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(119)146 2473 y Fs(S)150
-2589 y Fe(SECONDS)22 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)35 b Fb(83)150
-2676 y Fe(SHELL)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23
-b Fb(83)150 2763 y Fe(SHELLOPTS)15 b Fc(:)h(:)d(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)30 b Fb(83)150
-2851 y Fe(SHLVL)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23
-b Fb(84)150 2938 y Fe(show-all-if-ambiguous)17 b Fc(:)h(:)13
-b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)32 b Fb(119)150 3025 y Fe(show-all-if-unmodified)14
-b Fc(:)k(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)29 b Fb(119)150 3112 y Fe(show-mode-in-prompt)d
-Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(120)2025 260 y
-Fe(skip-completed-text)26 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
-b Fb(120)2025 347 y Fe(SRANDOM)22 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35
-b Fb(84)2021 669 y Fs(T)2025 798 y Fe(TEXTDOMAIN)15 b
-Fc(:)g(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)30 b Fb(7)2025 889 y Fe(TEXTDOMAINDIR)7 b Fc(:)16
-b(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)23
-b Fb(7)2025 981 y Fe(TIMEFORMAT)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g(:)g
+(:)f(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(126)150 3112 y Fe
+(show-all-if-unmodified)14 b Fc(:)k(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b Fb(126)150
+3199 y Fe(show-mode-in-prompt)d Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
+b Fb(126)2025 260 y Fe(skip-completed-text)26 b Fc(:)13
+b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)37 b Fb(127)2025 347 y Fe(SRANDOM)22
+b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(84)2025
-1072 y Fe(TMOUT)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+g(:)g(:)h(:)f(:)g(:)35 b Fb(89)2021 673 y Fs(T)2025 803
+y Fe(TEXTDOMAIN)15 b Fc(:)g(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)30 b Fb(8)2025 895 y Fe(TEXTDOMAINDIR)7
+b Fc(:)16 b(:)d(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+23 b Fb(8)2025 986 y Fe(TIMEFORMAT)13 b Fc(:)i(:)e(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(89)2025
+1078 y Fe(TMOUT)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23
-b Fb(84)2025 1159 y Fe(TMPDIR)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g
+b Fb(89)2025 1165 y Fe(TMPDIR)6 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)21
-b Fb(85)2021 1481 y Fs(U)2025 1606 y Fe(UID)14 b Fc(:)f(:)g(:)h(:)f(:)g
+b Fb(90)2021 1492 y Fs(U)2025 1617 y Fe(UID)14 b Fc(:)f(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)28 b Fb(85)2021 1928 y Fs(V)2025 2057
+(:)g(:)h(:)f(:)28 b Fb(90)2021 1943 y Fs(V)2025 2073
y Fe(vi-cmd-mode-string)7 b Fc(:)17 b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22
-b Fb(120)2025 2148 y Fe(vi-ins-mode-string)7 b Fc(:)17
+b Fb(127)2025 2165 y Fe(vi-ins-mode-string)7 b Fc(:)17
b(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22 b Fb(120)2025 2235
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22 b Fb(127)2025 2252
y Fe(visible-stats)h Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)35 b Fb(120)150 3751 y Fs(D.4)68 b(F)-11 b(unction)44
-b(Index)146 4237 y(A)150 4354 y Fe(abort)27 b(\(C-g\))15
+f(:)g(:)35 b Fb(127)150 3845 y Fs(D.4)68 b(F)-11 b(unction)44
+b(Index)146 4330 y(A)150 4447 y Fe(abort)27 b(\(C-g\))15
b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)30
-b Fb(135)150 4442 y Fe(accept-line)e(\(Newline)g(or)e(Return\))12
+b Fb(141)150 4535 y Fe(accept-line)e(\(Newline)g(or)e(Return\))12
b Fc(:)i(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)27
-b Fb(128)150 4529 y Fe(alias-expand-line)i(\(\))9 b Fc(:)14
+b Fb(134)150 4622 y Fe(alias-expand-line)i(\(\))9 b Fc(:)14
b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(137)146 4784 y Fs(B)150
-4902 y Fe(backward-char)29 b(\(C-b\))12 b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)
+(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(143)146 4873 y Fs(B)150
+4990 y Fe(backward-char)29 b(\(C-b\))12 b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)26 b Fb(127)150 4989 y Fe(backward-delete-char)k(\(Rubout\))22
+(:)26 b Fb(133)150 5077 y Fe(backward-delete-char)k(\(Rubout\))22
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35
-b Fb(130)150 5077 y Fe(backward-kill-line)30 b(\(C-x)c(Rubout\))e
+b Fb(136)150 5165 y Fe(backward-kill-line)30 b(\(C-x)c(Rubout\))e
Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b
-Fb(131)150 5165 y Fe(backward-kill-word)30 b(\(M-DEL\))11
+Fb(137)150 5252 y Fe(backward-kill-word)30 b(\(M-DEL\))11
b Fc(:)j(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-26 b Fb(131)150 5252 y Fe(backward-word)j(\(M-b\))12
+26 b Fb(137)150 5340 y Fe(backward-word)j(\(M-b\))12
b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(127)150 5340
-y Fe(beginning-of-history)k(\(M-<\))11 b Fc(:)j(:)f(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(128)2025
-4206 y Fe(beginning-of-line)j(\(C-a\))20 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(133)2025 4300
+y Fe(beginning-of-history)k(\(M-<\))11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(134)2025
+4389 y Fe(beginning-of-line)j(\(C-a\))20 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34
-b Fb(127)2025 4294 y Fe(bracketed-paste-begin)c(\(\))16
+b Fb(133)2025 4477 y Fe(bracketed-paste-begin)c(\(\))16
b Fc(:)e(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)31 b Fb(130)2021 4589 y Fs(C)2025 4713 y Fe
+g(:)g(:)31 b Fb(136)2021 4769 y Fs(C)2025 4893 y Fe
(call-last-kbd-macro)f(\(C-x)c(e\))15 b Fc(:)f(:)f(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)30 b Fb(134)2025 4802
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)30 b Fb(141)2025 4982
y Fe(capitalize-word)f(\(M-c\))7 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22
-b Fb(131)2025 4892 y Fe(character-search)29 b(\(C-]\))22
+b Fb(137)2025 5072 y Fe(character-search)29 b(\(C-]\))22
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)36 b Fb(135)2025 4982 y Fe
+(:)h(:)f(:)g(:)g(:)36 b Fb(141)2025 5161 y Fe
(character-search-backward)31 b(\(M-C-]\))10 b Fc(:)15
-b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)25 b Fb(135)2025 5071
+b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)25 b Fb(141)2025 5250
y Fe(clear-display)j(\(M-C-l\))7 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22
-b Fb(128)2025 5161 y Fe(clear-screen)28 b(\(C-l\))14
+b Fb(134)2025 5340 y Fe(clear-screen)28 b(\(C-l\))14
b Fc(:)h(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)29 b Fb(128)2025
-5250 y Fe(complete)e(\(TAB\))7 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)22 b Fb(133)2025 5340 y Fe(complete-command)29
-b(\(M-!\))22 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(134)p eop end
-%%Page: 180 186
-TeXDict begin 180 185 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(180)150 264 y Fe(complete-filename)29
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)29 b Fb(134)p eop
+end
+%%Page: 187 193
+TeXDict begin 187 192 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(187)150 264 y Fe(complete)27 b(\(TAB\))7
+b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22
+b Fb(139)150 352 y Fe(complete-command)29 b(\(M-!\))23
+b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)36 b Fb(140)150 440 y Fe(complete-filename)29
b(\(M-/\))20 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(133)150 353 y Fe(complete-hostname)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(139)150 528 y Fe(complete-hostname)
c(\(M-@\))20 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(134)150 442 y Fe
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(140)150 616 y Fe
(complete-into-braces)d(\(M-{\))11 b Fc(:)j(:)f(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(134)150 531
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(140)150 704
y Fe(complete-username)j(\(M-~\))20 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33
-b Fb(133)150 621 y Fe(complete-variable)c(\(M-$\))20
+b Fb(140)150 792 y Fe(complete-variable)c(\(M-$\))20
b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)33 b Fb(134)150 710 y Fe(copy-backward-word)d(\(\))7
+(:)g(:)h(:)f(:)33 b Fb(140)150 880 y Fe(copy-backward-word)d(\(\))7
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(132)150 799 y Fe(copy-forward-word)
+(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(138)150 968 y Fe(copy-forward-word)
29 b(\(\))9 b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(132)150
-887 y Fe(copy-region-as-kill)30 b(\(\))22 b Fc(:)13 b(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36
-b Fb(132)146 1175 y Fs(D)150 1298 y Fe(dabbrev-expand)29
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(138)150
+1056 y Fe(copy-region-as-kill)30 b(\(\))22 b Fc(:)13
+b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+(:)g(:)g(:)36 b Fb(138)146 1320 y Fs(D)150 1438 y Fe(dabbrev-expand)29
b(\(\))17 b Fc(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32
-b Fb(134)150 1387 y Fe(delete-char)c(\(C-d\))17 b Fc(:)d(:)f(:)g(:)h(:)
+b Fb(140)150 1527 y Fe(delete-char)c(\(C-d\))17 b Fc(:)d(:)f(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)32 b Fb(130)150 1476 y Fe(delete-char-or-list)e
+(:)g(:)g(:)g(:)g(:)32 b Fb(136)150 1615 y Fe(delete-char-or-list)e
(\(\))22 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(133)150 1566 y Fe
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 b Fb(139)150 1703 y Fe
(delete-horizontal-space)31 b(\(\))11 b Fc(:)i(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(132)150
-1655 y Fe(digit-argument)j(\()p Fd(M-0)p Fe(,)e Fd(M-1)p
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(138)150
+1791 y Fe(digit-argument)j(\()p Fd(M-0)p Fe(,)e Fd(M-1)p
Fe(,)f(...)g Fd(M--)p Fe(\))11 b Fc(:)j(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)
-26 b Fb(132)150 1744 y Fe(display-shell-version)k(\(C-x)d(C-v\))c
+26 b Fb(138)150 1879 y Fe(display-shell-version)k(\(C-x)d(C-v\))c
Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)37 b
-Fb(136)150 1825 y Fe(do-lowercase-version)30 b(\(M-A,)227
-1912 y(M-B,)c(M-)p Fd(x)p Fe(,)h(...\))10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g
+Fb(143)150 1958 y Fe(do-lowercase-version)30 b(\(M-A,)227
+2046 y(M-B,)c(M-)p Fd(x)p Fe(,)h(...\))10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)25 b Fb(135)150 2001 y Fe(downcase-word)k(\(M-l\))
+g(:)g(:)g(:)g(:)g(:)25 b Fb(141)150 2134 y Fe(downcase-word)k(\(M-l\))
12 b Fc(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(131)150 2090
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)26 b Fb(137)150 2222
y Fe(dump-functions)j(\(\))17 b Fc(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-32 b Fb(136)150 2180 y Fe(dump-macros)c(\(\))7 b Fc(:)14
+32 b Fb(142)150 2310 y Fe(dump-macros)c(\(\))7 b Fc(:)14
b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22
-b Fb(136)150 2269 y Fe(dump-variables)29 b(\(\))17 b
+b Fb(142)150 2398 y Fe(dump-variables)29 b(\(\))17 b
Fc(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(136)150
-2356 y Fe(dynamic-complete-history)f(\(M-TAB\))13 b Fc(:)i(:)e(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(134)146 2645 y Fs(E)150
-2767 y Fe(edit-and-execute-command)k(\(C-x)c(C-e\))14
-b Fc(:)g(:)f(:)g(:)g(:)h(:)f(:)g(:)29 b Fb(137)150 2857
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(142)150
+2485 y Fe(dynamic-complete-history)f(\(M-TAB\))13 b Fc(:)i(:)e(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)27 b Fb(140)146 2749 y Fs(E)150
+2868 y Fe(edit-and-execute-command)k(\(C-x)c(C-e\))14
+b Fc(:)g(:)f(:)g(:)g(:)h(:)f(:)g(:)29 b Fb(143)150 2956
y Fe(end-kbd-macro)g(\(C-x)d(\)\))13 b Fc(:)h(:)f(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)28
-b Fb(134)150 2946 y Fd(end-of-file)g Fe(\(usually)g(C-d\))21
+b Fb(140)150 3044 y Fd(end-of-file)g Fe(\(usually)g(C-d\))21
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)35 b Fb(130)150 3035 y Fe(end-of-history)29 b(\(M->\))9
+(:)g(:)35 b Fb(136)150 3132 y Fe(end-of-history)29 b(\(M->\))9
b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(128)150 3124 y
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(134)150 3220 y
Fe(end-of-line)k(\(C-e\))17 b Fc(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32
-b Fb(127)150 3212 y Fe(exchange-point-and-mark)f(\(C-x)26
+b Fb(133)150 3308 y Fe(exchange-point-and-mark)f(\(C-x)26
b(C-x\))17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)32
-b Fb(135)146 3500 y Fs(F)150 3623 y Fe(forward-backward-delete-char)g
-(\(\))15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30
-b Fb(130)150 3712 y Fe(forward-char)e(\(C-f\))14 b Fc(:)h(:)e(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)29 b Fb(127)150 3801 y Fe(forward-search-history)i
-(\(C-s\))24 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)38 b Fb(128)150 3889 y Fe(forward-word)28 b(\(M-f\))14
-b Fc(:)h(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b Fb(127)146 4167
-y Fs(G)150 4289 y Fe(glob-complete-word)h(\(M-g\))16
+b Fb(141)146 3571 y Fs(F)150 3690 y Fe(fetch-history)d(\(\))19
+b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(136)150
+3778 y Fe(forward-backward-delete-char)e(\(\))15 b Fc(:)f(:)f(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(136)150 3867 y Fe(forward-char)e
+(\(C-f\))14 b Fc(:)h(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b
+Fb(133)150 3955 y Fe(forward-search-history)i(\(C-s\))24
+b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)38
+b Fb(134)150 4042 y Fe(forward-word)28 b(\(M-f\))14 b
+Fc(:)h(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)29 b Fb(133)146 4295
+y Fs(G)150 4414 y Fe(glob-complete-word)h(\(M-g\))16
b Fc(:)e(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)31 b Fb(136)150 4379 y Fe(glob-expand-word)e(\(C-x)e(*\))c
+g(:)g(:)31 b Fb(142)150 4502 y Fe(glob-expand-word)e(\(C-x)e(*\))c
Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)38 b Fb(136)150 4466 y Fe(glob-list-expansions)30
+(:)g(:)g(:)38 b Fb(142)150 4590 y Fe(glob-list-expansions)30
b(\(C-x)d(g\))13 b Fc(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)27 b Fb(136)2021 294 y Fs(H)2025 422 y Fe
+(:)g(:)h(:)27 b Fb(142)2021 294 y Fs(H)2025 422 y Fe
(history-and-alias-expand-line)32 b(\(\))13 b Fc(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)28 b Fb(137)2025 513 y Fe(history-expand-line)i
+g(:)g(:)g(:)g(:)28 b Fb(143)2025 513 y Fe(history-expand-line)i
(\(M-^\))13 b Fc(:)h(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)28 b Fb(136)2025 604 y Fe(history-search-backward)j
+g(:)g(:)g(:)h(:)28 b Fb(143)2025 604 y Fe(history-search-backward)j
(\(\))11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)26 b Fb(129)2025 695 y Fe(history-search-forward)k(\(\))13
+(:)g(:)g(:)26 b Fb(135)2025 695 y Fe(history-search-forward)k(\(\))13
b Fc(:)h(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)28 b Fb(129)2025 786 y Fe(history-substring-search-backw)q(ard)k
-(\(\))20 b Fc(:)13 b(:)g(:)g(:)g(:)35 b Fb(129)2025 874
+h(:)28 b Fb(135)2025 786 y Fe(history-substring-search-backw)q(ard)k
+(\(\))20 b Fc(:)13 b(:)g(:)g(:)g(:)35 b Fb(135)2025 874
y Fe(history-substring-search-forwa)q(rd)d(\(\))22 b
-Fc(:)13 b(:)h(:)f(:)g(:)g(:)37 b Fb(129)2021 1200 y Fs(I)2025
+Fc(:)13 b(:)h(:)f(:)g(:)g(:)37 b Fb(135)2021 1200 y Fs(I)2025
1329 y Fe(insert-comment)29 b(\(M-#\))9 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-24 b Fb(136)2025 1420 y Fe(insert-completions)29 b(\(M-*\))16
+24 b Fb(142)2025 1420 y Fe(insert-completions)29 b(\(M-*\))16
b Fc(:)f(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)31 b Fb(133)2025 1507 y Fe(insert-last-argument)f(\(M-.)c(or)g
+g(:)g(:)31 b Fb(139)2025 1507 y Fe(insert-last-argument)f(\(M-.)c(or)g
(M-_\))7 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22
-b Fb(137)2021 1834 y Fs(K)2025 1962 y Fe(kill-line)27
+b Fb(143)2021 1834 y Fs(K)2025 1962 y Fe(kill-line)27
b(\(C-k\))c Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
-b Fb(131)2025 2053 y Fe(kill-region)28 b(\(\))7 b Fc(:)14
+b Fb(137)2025 2053 y Fe(kill-region)28 b(\(\))7 b Fc(:)14
b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)22
-b Fb(132)2025 2144 y Fe(kill-whole-line)29 b(\(\))14
+b Fb(138)2025 2144 y Fe(kill-whole-line)29 b(\(\))14
b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)29 b Fb(131)2025
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)29 b Fb(137)2025
2231 y Fe(kill-word)e(\(M-d\))c Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)37 b Fb(131)2021 2548 y Fs(M)2025 2676 y
+g(:)g(:)g(:)37 b Fb(137)2021 2548 y Fs(M)2025 2676 y
Fe(magic-space)28 b(\(\))7 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)22 b Fb(137)2025 2767 y Fe(menu-complete)28
+g(:)g(:)h(:)f(:)22 b Fb(143)2025 2767 y Fe(menu-complete)28
b(\(\))20 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)34
-b Fb(133)2025 2854 y Fe(menu-complete-backward)c(\(\))13
+b Fb(139)2025 2854 y Fe(menu-complete-backward)c(\(\))13
b Fc(:)h(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)28 b Fb(133)2021 3181 y Fs(N)2025 3309 y Fe(next-history)g(\(C-n\))
+h(:)28 b Fb(139)2021 3181 y Fs(N)2025 3309 y Fe(next-history)g(\(C-n\))
14 b Fc(:)h(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)29 b Fb(128)2025
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)29 b Fb(134)2025
3401 y Fe(next-screen-line)g(\(\))12 b Fc(:)h(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-27 b Fb(128)2025 3472 y Fe(non-incremental-forward-)2102
+27 b Fb(134)2025 3472 y Fe(non-incremental-forward-)2102
3560 y(search-history)h(\(M-n\))23 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
-b Fb(129)2025 3647 y Fe(non-incremental-reverse-)2102
+b Fb(135)2025 3647 y Fe(non-incremental-reverse-)2102
3734 y(search-history)28 b(\(M-p\))23 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37
-b Fb(128)2021 4070 y Fs(O)2025 4198 y Fe(operate-and-get-next)30
+b Fb(134)2021 4070 y Fs(O)2025 4198 y Fe(operate-and-get-next)30
b(\(C-o\))11 b Fc(:)j(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)26 b Fb(129)2025 4285 y Fe(overwrite-mode)j(\(\))17
+(:)g(:)g(:)g(:)26 b Fb(135)2025 4285 y Fe(overwrite-mode)j(\(\))17
b Fc(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)32 b Fb(131)p
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)32 b Fb(137)p
eop end
-%%Page: 181 187
-TeXDict begin 181 186 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(181)146 294 y Fs(P)150 411 y Fe
+%%Page: 188 194
+TeXDict begin 188 193 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(188)146 294 y Fs(P)150 411 y Fe
(possible-command-completions)32 b(\(C-x)26 b(!\))9 b
-Fc(:)14 b(:)g(:)f(:)g(:)g(:)24 b Fb(134)150 499 y Fe
+Fc(:)14 b(:)g(:)f(:)g(:)g(:)24 b Fb(140)150 499 y Fe
(possible-completions)30 b(\(M-?\))11 b Fc(:)j(:)f(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(133)150
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26 b Fb(139)150
586 y Fe(possible-filename-completions)32 b(\(C-x)27
-b(/\))7 b Fc(:)13 b(:)g(:)g(:)g(:)22 b Fb(133)150 674
+b(/\))7 b Fc(:)13 b(:)g(:)g(:)g(:)22 b Fb(140)150 674
y Fe(possible-hostname-completions)32 b(\(C-x)27 b(@\))7
-b Fc(:)13 b(:)g(:)g(:)g(:)22 b Fb(134)150 762 y Fe
+b Fc(:)13 b(:)g(:)g(:)g(:)22 b Fb(140)150 762 y Fe
(possible-username-completions)32 b(\(C-x)27 b(~\))7
-b Fc(:)13 b(:)g(:)g(:)g(:)22 b Fb(133)150 849 y Fe
+b Fc(:)13 b(:)g(:)g(:)g(:)22 b Fb(140)150 849 y Fe
(possible-variable-completions)32 b(\(C-x)27 b($\))7
-b Fc(:)13 b(:)g(:)g(:)g(:)22 b Fb(134)150 937 y Fe(prefix-meta)28
+b Fc(:)13 b(:)g(:)g(:)g(:)22 b Fb(140)150 937 y Fe(prefix-meta)28
b(\(ESC\))17 b Fc(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32
-b Fb(135)150 1025 y Fe(previous-history)d(\(C-p\))23
+b Fb(141)150 1025 y Fe(previous-history)d(\(C-p\))23
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)36 b Fb(128)150 1112 y Fe(previous-screen-line)30
+(:)f(:)g(:)g(:)g(:)36 b Fb(134)150 1112 y Fe(previous-screen-line)30
b(\(\))19 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(127)150 1199 y Fe
+(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(133)150 1200 y Fe
(print-last-kbd-macro)d(\(\))19 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(134)146
-1453 y Fs(Q)150 1570 y Fe(quoted-insert)c(\(C-q)d(or)g(C-v\))8
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)33 b Fb(141)146
+1454 y Fs(Q)150 1571 y Fe(quoted-insert)c(\(C-q)d(or)g(C-v\))8
b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)22 b Fb(130)146 1824 y Fs(R)150 1941 y Fe(re-read-init-file)29
+(:)g(:)22 b Fb(136)146 1825 y Fs(R)150 1943 y Fe(re-read-init-file)29
b(\(C-x)e(C-r\))15 b Fc(:)f(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)30 b Fb(135)150 2029 y Fe(redraw-current-line)g(\(\))22
+(:)g(:)g(:)g(:)30 b Fb(141)150 2030 y Fe(redraw-current-line)g(\(\))22
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)36 b Fb(128)150 2117 y Fe(reverse-search-history)31
+(:)f(:)g(:)g(:)g(:)36 b Fb(134)150 2118 y Fe(reverse-search-history)31
b(\(C-r\))24 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)38 b Fb(128)150 2204 y Fe(revert-line)28 b(\(M-r\))17
+g(:)38 b Fb(134)150 2205 y Fe(revert-line)28 b(\(M-r\))17
b Fc(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(135)146
-2447 y Fs(S)150 2565 y Fe(self-insert)c(\(a,)e(b,)g(A,)g(1,)h(!,)f
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(141)146
+2449 y Fs(S)150 2567 y Fe(self-insert)c(\(a,)e(b,)g(A,)g(1,)h(!,)f
(...\))13 b Fc(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)27
-b Fb(130)150 2652 y Fe(set-mark)g(\(C-@\))7 b Fc(:)15
+b Fb(136)150 2654 y Fe(set-mark)g(\(C-@\))7 b Fc(:)15
b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22
-b Fb(135)150 2740 y Fe(shell-backward-kill-word)31 b(\(\))8
+b Fb(141)150 2742 y Fe(shell-backward-kill-word)31 b(\(\))8
b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-23 b Fb(131)150 2828 y Fe(shell-backward-word)30 b(\(M-C-b\))8
+23 b Fb(138)150 2830 y Fe(shell-backward-word)30 b(\(M-C-b\))8
b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-23 b Fb(127)150 2915 y Fe(shell-expand-line)29 b(\(M-C-e\))13
+23 b Fb(133)150 2917 y Fe(shell-expand-line)29 b(\(M-C-e\))13
b Fc(:)j(:)d(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)28 b Fb(136)150 3003 y Fe(shell-forward-word)i(\(M-C-f\))11
+g(:)28 b Fb(143)150 3005 y Fe(shell-forward-word)i(\(M-C-f\))11
b Fc(:)j(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-26 b Fb(127)150 3091 y Fe(shell-kill-word)j(\(M-C-d\))20
+26 b Fb(133)150 3093 y Fe(shell-kill-word)j(\(M-C-d\))20
b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)33 b Fb(131)150 3178 y Fe(shell-transpose-words)d
+(:)g(:)h(:)f(:)33 b Fb(138)150 3180 y Fe(shell-transpose-words)d
(\(M-C-t\))22 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)35 b Fb(132)2025 264 y Fe(skip-csi-sequence)29 b(\(\))9
+(:)35 b Fb(138)2025 264 y Fe(skip-csi-sequence)29 b(\(\))9
b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(135)2025 351 y
-Fe(start-kbd-macro)29 b(\(C-x)d(\(\))8 b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23
-b Fb(134)2021 819 y Fs(T)2025 970 y Fe(tilde-expand)28
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(141)2025 361 y
+Fe(spell-correct-word)29 b(\(C-x)e(s\))18 b Fc(:)13 b(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)33 b Fb(142)2025
+448 y Fe(start-kbd-macro)c(\(C-x)d(\(\))8 b Fc(:)14 b(:)f(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)23
+b Fb(140)2021 891 y Fs(T)2025 1038 y Fe(tilde-expand)28
b(\(M-&\))14 b Fc(:)h(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)29
-b Fb(135)2025 1068 y Fe(transpose-chars)g(\(C-t\))7 b
+b Fb(141)2025 1135 y Fe(transpose-chars)g(\(C-t\))7 b
Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(130)2025 1155 y Fe(transpose-words)
+(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(136)2025 1222 y Fe(transpose-words)
29 b(\(M-t\))7 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(130)2021
-1634 y Fs(U)2025 1784 y Fe(undo)k(\(C-_)h(or)f(C-x)g(C-u\))10
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(137)2021
+1676 y Fs(U)2025 1823 y Fe(undo)k(\(C-_)h(or)f(C-x)g(C-u\))10
b Fc(:)k(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)25 b Fb(135)2025 1883 y Fe
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)25 b Fb(141)2025 1920 y Fe
(universal-argument)k(\(\))7 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)22
-b Fb(132)2025 1981 y Fe(unix-filename-rubout)30 b(\(\))19
+b Fb(139)2025 2017 y Fe(unix-filename-rubout)30 b(\(\))19
b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)34 b Fb(132)2025 2080 y Fe(unix-line-discard)29
+(:)g(:)g(:)g(:)34 b Fb(138)2025 2114 y Fe(unix-line-discard)29
b(\(C-u\))20 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(131)2025 2178 y Fe
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(137)2025 2211 y Fe
(unix-word-rubout)29 b(\(C-w\))22 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36
-b Fb(132)2025 2265 y Fe(upcase-word)28 b(\(M-u\))17 b
+b Fb(138)2025 2298 y Fe(upcase-word)28 b(\(M-u\))17 b
Fc(:)d(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)32 b Fb(131)2021
-2744 y Fs(Y)2025 2894 y Fe(yank)26 b(\(C-y\))18 b Fc(:)c(:)f(:)g(:)h(:)
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)32 b Fb(137)2021
+2752 y Fs(Y)2025 2899 y Fe(yank)26 b(\(C-y\))18 b Fc(:)c(:)f(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)33
-b Fb(132)2025 2993 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))8
+b Fb(138)2025 2996 y Fe(yank-last-arg)28 b(\(M-.)f(or)f(M-_\))8
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)22 b Fb(129)2025 3091 y Fe(yank-nth-arg)28 b(\(M-C-y\))9
+(:)h(:)22 b Fb(135)2025 3093 y Fe(yank-nth-arg)28 b(\(M-C-y\))9
b Fc(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(129)2025 3178
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)24 b Fb(135)2025 3180
y Fe(yank-pop)j(\(M-y\))7 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)22 b Fb(132)150 3927 y Fs(D.5)68 b(Concept)45
-b(Index)146 4520 y(A)150 4646 y Fb(alias)27 b(expansion)7
-b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21
-b Fb(94)150 4736 y(arithmetic)26 b(ev)l(aluation)d Fc(:)13
+g(:)g(:)h(:)f(:)22 b Fb(138)150 3929 y Fs(D.5)68 b(Concept)45
+b(Index)146 4523 y(A)150 4648 y Fb(alias)27 b(expansion)22
+b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37
+b Fb(100)150 4738 y(arithmetic)26 b(ev)l(aluation)d Fc(:)13
b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(93)150 4826 y(arithmetic)26
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(98)150 4828 y(arithmetic)26
b(expansion)11 b Fc(:)j(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)26
-b Fb(31)150 4917 y(arithmetic,)h(shell)6 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)
+b Fb(34)150 4919 y(arithmetic,)h(shell)6 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)20 b Fb(93)150 5004
-y(arra)n(ys)h Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35 b Fb(95)2021
-4520 y Fs(B)2025 4644 y Fb(bac)n(kground)13 b Fc(:)f(:)h(:)g(:)g(:)h(:)
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)20 b Fb(98)150 5006
+y(arra)n(ys)f Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(100)2021
+4523 y Fs(B)2025 4646 y Fb(bac)n(kground)13 b Fc(:)f(:)h(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)28 b Fb(107)2025
-4733 y(Bash)e(con\014guration)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)28 b Fb(113)2025
+4735 y(Bash)e(con\014guration)11 b Fc(:)j(:)f(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)26 b Fb(152)2025 4823 y(Bash)g(installation)9
+g(:)g(:)26 b Fb(158)2025 4825 y(Bash)g(installation)9
b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)24
-b Fb(152)2025 4913 y(Bourne)i(shell)20 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
+b Fb(158)2025 4914 y(Bourne)i(shell)20 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)35 b
-Fb(5)2025 5002 y(brace)26 b(expansion)9 b Fc(:)k(:)g(:)h(:)f(:)g(:)g(:)
+Fb(5)2025 5004 y(brace)26 b(expansion)9 b Fc(:)k(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)24 b Fb(23)2025 5089 y(builtin)15
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)24 b Fb(24)2025 5091 y(builtin)15
b Fc(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30 b Fb(3)p eop end
-%%Page: 182 188
-TeXDict begin 182 187 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(182)146 294 y Fs(C)150 415 y Fb(command)26
+%%Page: 189 195
+TeXDict begin 189 194 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(189)146 294 y Fs(C)150 415 y Fb(command)26
b(editing)19 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)34
-b Fb(112)150 503 y(command)26 b(execution)12 b Fc(:)h(:)g(:)g(:)g(:)g
+b Fb(118)150 503 y(command)26 b(execution)12 b Fc(:)h(:)g(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)26 b Fb(39)150 592 y(command)g(expansion)c
+g(:)h(:)f(:)g(:)g(:)26 b Fb(42)150 592 y(command)g(expansion)c
Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)36 b Fb(39)150
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)36 b Fb(42)150
681 y(command)26 b(history)18 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)33 b Fb(146)150 770 y(command)26 b(searc)n(h)16
+g(:)g(:)g(:)33 b Fb(152)150 770 y(command)26 b(searc)n(h)16
b Fc(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)30
-b Fb(39)150 859 y(command)c(substitution)21 b Fc(:)13
+b Fb(42)150 859 y(command)c(substitution)21 b Fc(:)13
b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(31)150 947 y(command)26
-b(timing)13 b Fc(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)28 b Fb(8)150 1036 y(commands,)e(comp)r(ound)c Fc(:)13
+(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fb(34)150 947 y(command)26
+b(timing)11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)25
+b Fb(10)150 1036 y(commands,)h(comp)r(ound)c Fc(:)13
b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(10)150 1125 y(commands,)26
+(:)g(:)g(:)g(:)g(:)g(:)g(:)37 b Fb(11)150 1125 y(commands,)26
b(conditional)10 b Fc(:)15 b(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)25
-b Fb(11)150 1214 y(commands,)h(grouping)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g
+b Fb(12)150 1214 y(commands,)h(grouping)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)29 b Fb(15)150 1302 y(commands,)d(lists)12
-b Fc(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)27
-b Fb(9)150 1391 y(commands,)f(lo)r(oping)e Fc(:)13 b(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)37 b Fb(10)150 1480 y(commands,)26
-b(pip)r(elines)18 b Fc(:)c(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)33
-b Fb(8)150 1569 y(commands,)26 b(shell)c Fc(:)13 b(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(8)150 1657 y(commands,)26
+g(:)g(:)g(:)29 b Fb(17)150 1302 y(commands,)d(lists)10
+b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)24
+b Fb(10)150 1391 y(commands,)i(lo)r(oping)e Fc(:)13 b(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
+g(:)g(:)g(:)g(:)g(:)37 b Fb(11)150 1480 y(commands,)26
+b(pip)r(elines)16 b Fc(:)e(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)30
+b Fb(10)150 1569 y(commands,)c(shell)c Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fb(9)150 1657 y(commands,)26
b(simple)e Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)38
-b Fb(8)150 1746 y(commen)n(ts,)26 b(shell)13 b Fc(:)i(:)e(:)g(:)g(:)g
+b Fb(9)150 1746 y(commen)n(ts,)26 b(shell)13 b Fc(:)i(:)e(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)28 b Fb(7)150
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)28 b Fb(9)150
1835 y(Compatibilit)n(y)f(Lev)n(el)10 b Fc(:)j(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)25 b Fb(104)150 1924 y(Compatibilit)n(y)i(Mo)r(de)22
+g(:)g(:)25 b Fb(110)150 1924 y(Compatibilit)n(y)i(Mo)r(de)22
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(104)150
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fb(110)150
2013 y(completion)27 b(builtins)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)36 b Fb(139)150 2101 y(con\014guration)22 b Fc(:)13
+g(:)g(:)36 b Fb(146)150 2101 y(con\014guration)22 b Fc(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36
-b Fb(152)150 2190 y(con)n(trol)26 b(op)r(erator)8 b Fc(:)15
+b Fb(158)150 2190 y(con)n(trol)26 b(op)r(erator)8 b Fc(:)15
b(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)23
b Fb(3)150 2277 y(copro)r(cess)18 b Fc(:)c(:)f(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)32 b
-Fb(15)146 2553 y Fs(D)150 2672 y Fb(directory)26 b(stac)n(k)11
-b Fc(:)i(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26
-b Fb(97)146 2948 y Fs(E)150 3069 y Fb(editing)g(command)g(lines)17
+Fb(18)146 2553 y Fs(D)150 2672 y Fb(directory)26 b(stac)n(k)9
+b Fc(:)k(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24
+b Fb(102)146 2948 y Fs(E)150 3069 y Fb(editing)i(command)g(lines)17
b Fc(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(112)150 3158 y(en)n(vironmen)n(t)18
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(118)150 3158 y(en)n(vironmen)n(t)18
b Fc(:)12 b(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)32 b Fb(41)150 3247 y(ev)l(aluation,)26 b(arithmetic)12
+f(:)32 b Fb(44)150 3247 y(ev)l(aluation,)26 b(arithmetic)12
b Fc(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(93)150 3335
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)26 b Fb(98)150 3335
y(ev)n(en)n(t)f(designators)c Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)34 b Fb(149)150 3424 y(execution)26 b(en)n(vironmen)n(t)17
+g(:)h(:)34 b Fb(155)150 3424 y(execution)26 b(en)n(vironmen)n(t)17
b Fc(:)12 b(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)31 b Fb(40)150 3513
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)31 b Fb(43)150 3513
y(exit)25 b(status)7 b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(3,)k(41)150 3602 y(expansion)9
+(:)f(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(3,)k(44)150 3602 y(expansion)9
b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)24 b Fb(22)150 3691 y(expansion,)i(arithmetic)18
+g(:)g(:)g(:)g(:)24 b Fb(24)150 3691 y(expansion,)i(arithmetic)18
b Fc(:)c(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)32 b Fb(31)150 3779
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)32 b Fb(34)150 3779
y(expansion,)26 b(brace)16 b Fc(:)d(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)30 b Fb(23)150 3868 y(expansion,)c(\014lename)18
+f(:)g(:)g(:)30 b Fb(24)150 3868 y(expansion,)c(\014lename)18
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)32 b Fb(33)150
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)32 b Fb(35)150
3957 y(expansion,)26 b(parameter)21 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)34 b Fb(25)150 4046 y(expansion,)26 b(pathname)7
+g(:)34 b Fb(26)150 4046 y(expansion,)26 b(pathname)7
b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(33)150
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)22 b Fb(35)150
4134 y(expansion,)k(tilde)14 b Fc(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)28 b Fb(24)150 4223 y(expressions,)f(arithmetic)13
+h(:)f(:)g(:)g(:)g(:)28 b Fb(25)150 4223 y(expressions,)f(arithmetic)13
b Fc(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)27 b Fb(93)150 4310 y(expressions,)g
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)27 b Fb(98)150 4310 y(expressions,)g
(conditional)17 b Fc(:)d(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(91)2021
-294 y Fs(F)2025 415 y Fb(\014eld)21 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)32 b Fb(96)2021
+294 y Fs(F)2025 414 y Fb(\014eld)21 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)36 b Fb(3)2025 504 y(\014lename)21 b Fc(:)14 b(:)f(:)g(:)g(:)g
+(:)h(:)36 b Fb(3)2025 503 y(\014lename)21 b Fc(:)14 b(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)36
-b Fb(3)2025 593 y(\014lename)26 b(expansion)11 b Fc(:)i(:)h(:)f(:)g(:)g
+b Fb(3)2025 591 y(\014lename)26 b(expansion)11 b Fc(:)i(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)26 b Fb(33)2025 682 y(foreground)9
+g(:)g(:)h(:)f(:)g(:)g(:)26 b Fb(35)2025 680 y(foreground)9
b Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)24 b Fb(107)2025 769 y(functions,)i(shell)9 b
+h(:)f(:)24 b Fb(113)2025 767 y(functions,)i(shell)9 b
Fc(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)24
-b Fb(18)2021 1048 y Fs(H)2025 1170 y Fb(history)h(builtins)20
+b Fb(19)2021 1038 y Fs(H)2025 1158 y Fb(history)h(builtins)20
b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)35
-b Fb(146)2025 1259 y(history)25 b(ev)n(en)n(ts)8 b Fc(:)13
+b Fb(152)2025 1247 y(history)25 b(ev)n(en)n(ts)8 b Fc(:)13
b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23
-b Fb(149)2025 1347 y(history)i(expansion)14 b Fc(:)g(:)f(:)g(:)g(:)h(:)
+b Fb(155)2025 1335 y(history)i(expansion)14 b Fc(:)g(:)f(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)29 b Fb(148)2025 1436 y(history)c(list)9
+(:)g(:)g(:)g(:)h(:)f(:)29 b Fb(154)2025 1424 y(history)c(list)9
b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)24 b Fb(146)2025 1524 y(History)-6 b(,)25 b(ho)n(w)h(to)g(use)
+g(:)g(:)24 b Fb(152)2025 1511 y(History)-6 b(,)25 b(ho)n(w)h(to)g(use)
19 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(145)2021
-1803 y Fs(I)2025 1924 y Fb(iden)n(ti\014er)12 b Fc(:)g(:)h(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 b Fb(151)2021
+1782 y Fs(I)2025 1903 y Fb(iden)n(ti\014er)12 b Fc(:)g(:)h(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)27
-b Fb(3)2025 2013 y(initialization)h(\014le,)e(readline)17
+b Fb(3)2025 1991 y(initialization)h(\014le,)e(readline)17
b Fc(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)32 b Fb(114)2025 2102 y(installation)21
+f(:)g(:)g(:)g(:)32 b Fb(120)2025 2080 y(installation)21
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)34 b Fb(152)2025 2191 y(in)n(teraction,)26 b(readline)7
+g(:)34 b Fb(158)2025 2168 y(in)n(teraction,)26 b(readline)7
b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(111)2025
-2280 y(in)n(teractiv)n(e)k(shell)20 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)22 b Fb(117)2025
+2257 y(in)n(teractiv)n(e)k(shell)20 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)34 b Fb(88,)27 b(89)2025 2367 y(in)n(ternationalization)22
+h(:)f(:)g(:)34 b Fb(93,)27 b(94)2025 2346 y(in)n(ternationalization)22
b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)35
-b Fb(7)2021 2637 y Fs(J)2025 2758 y Fb(job)23 b Fc(:)13
-b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fb(3)2025 2845
-y(job)26 b(con)n(trol)17 b Fc(:)d(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
+b Fb(7)2025 2433 y(in)n(ternationalized)27 b(scripts)13
+b Fc(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)28 b Fb(7)2021 2704 y
+Fs(J)2025 2824 y Fb(job)23 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)31 b Fb(3,)c(107)2021 3124 y Fs(K)2025
-3246 y Fb(kill)f(ring)7 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)22 b Fb(113)2025
-3333 y(killing)k(text)6 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b Fb(113)2021 3612
-y Fs(L)2025 3733 y Fb(lo)r(calization)i Fc(:)13 b(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)35
-b Fb(7)2025 3821 y(login)26 b(shell)6 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)21
-b Fb(88)2021 4100 y Fs(M)2025 4221 y Fb(matc)n(hing,)26
-b(pattern)9 b Fc(:)k(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)24
-b Fb(33)2025 4308 y(metac)n(haracter)7 b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)38 b Fb(3)2025 2911 y(job)26 b(con)n(trol)17 b Fc(:)d(:)f(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)31 b Fb(3,)c(113)2021
+3183 y Fs(K)2025 3303 y Fb(kill)f(ring)7 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)22
+b Fb(119)2025 3390 y(killing)k(text)6 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)22 b Fb(3)p
-eop end
-%%Page: 183 189
-TeXDict begin 183 188 bop 150 -116 a Fu(App)s(endix)29
-b(D:)i(Indexes)2623 b(183)146 294 y Fs(N)150 410 y Fb(name)19
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)21 b
+Fb(119)2021 3661 y Fs(L)2025 3782 y Fb(lo)r(calization)i
+Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)g(:)h(:)35 b Fb(7)2025 3869 y(login)26 b(shell)6
+b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
+(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)g(:)g(:)21 b Fb(93)2021 4140 y Fs(M)2025 4260
+y Fb(matc)n(hing,)26 b(pattern)9 b Fc(:)k(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)f(:)g(:)g(:)24 b Fb(36)2025 4347 y(metac)n(haracter)7
+b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
+(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
+h(:)22 b Fb(3)p eop end
+%%Page: 190 196
+TeXDict begin 190 195 bop 150 -116 a Fu(App)s(endix)29
+b(D:)i(Indexes)2623 b(190)146 294 y Fs(N)150 410 y Fb(name)19
b Fc(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fb(3)150 497
@@ -21838,121 +22517,124 @@ y(nativ)n(e)25 b(languages)c Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
h(:)f(:)g(:)g(:)g(:)34 b Fb(7)150 584 y(notation,)27
b(readline)13 b Fc(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)27
-b Fb(112)146 828 y Fs(O)150 944 y Fb(op)r(erator,)g(shell)c
+b Fb(118)146 826 y Fs(O)150 942 y Fb(op)r(erator,)g(shell)c
Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-37 b Fb(3)146 1187 y Fs(P)150 1303 y Fb(parameter)26
+37 b Fb(3)146 1184 y Fs(P)150 1300 y Fb(parameter)26
b(expansion)13 b Fc(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)28
-b Fb(25)150 1390 y(parameters)c Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+b Fb(26)150 1388 y(parameters)c Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)37 b Fb(20)150
-1478 y(parameters,)27 b(p)r(ositional)7 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)37 b Fb(21)150
+1475 y(parameters,)27 b(p)r(ositional)7 b Fc(:)15 b(:)e(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)21 b Fb(21)150 1565 y(parameters,)27 b(sp)r(ecial)7
+f(:)g(:)21 b Fb(23)150 1562 y(parameters,)27 b(sp)r(ecial)7
b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)21
-b Fb(21)150 1652 y(pathname)k(expansion)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g
+b Fb(23)150 1649 y(pathname)k(expansion)18 b Fc(:)c(:)f(:)g(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)32 b Fb(33)150 1739 y(pattern)25 b(matc)n(hing)c
+h(:)f(:)g(:)32 b Fb(35)150 1736 y(pattern)25 b(matc)n(hing)c
Fc(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)34
-b Fb(33)150 1827 y(pip)r(eline)12 b Fc(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)27
-b Fb(8)150 1914 y(POSIX)22 b Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)38
-b Fb(3)150 2001 y(POSIX)25 b(Mo)r(de)14 b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)
+b Fb(36)150 1824 y(pip)r(eline)10 b Fc(:)j(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)24
+b Fb(10)150 1911 y(POSIX)e Fc(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)38
+b Fb(3)150 1998 y(POSIX)25 b(Mo)r(de)14 b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)29 b Fb(101)150 2088
+(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)29 b Fb(106)150 2085
y(pro)r(cess)e(group)15 b Fc(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)30 b Fb(3)150 2176 y(pro)r(cess)d(group)e
+(:)g(:)g(:)g(:)g(:)h(:)f(:)30 b Fb(3)150 2172 y(pro)r(cess)d(group)e
(ID)11 b Fc(:)i(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)26
-b Fb(3)150 2263 y(pro)r(cess)h(substitution)11 b Fc(:)h(:)i(:)f(:)g(:)g
+b Fb(3)150 2259 y(pro)r(cess)h(substitution)11 b Fc(:)h(:)i(:)f(:)g(:)g
(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)25 b Fb(32)150 2350 y(programmable)i(completion)8
+g(:)h(:)f(:)g(:)g(:)25 b Fb(34)150 2347 y(programmable)i(completion)8
b Fc(:)14 b(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)23 b Fb(137)150 2437 y(prompting)17
-b Fc(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)31 b Fb(98)146 2681 y Fs(Q)150 2797 y Fb(quoting)16
+(:)h(:)f(:)g(:)g(:)23 b Fb(143)150 2434 y(prompting)15
+b Fc(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
+g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)30 b Fb(104)146 2676 y Fs(Q)150 2792 y Fb(quoting)16
b Fc(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)31 b Fb(6)150 2884 y(quoting,)26
+(:)g(:)h(:)f(:)g(:)g(:)g(:)31 b Fb(6)150 2879 y(quoting,)26
b(ANSI)18 b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-h(:)f(:)g(:)34 b Fb(6)146 3127 y Fs(R)150 3243 y Fb(Readline,)26
+h(:)f(:)g(:)34 b Fb(6)146 3121 y Fs(R)150 3237 y Fb(Readline,)26
b(ho)n(w)g(to)g(use)11 b Fc(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)26
-b Fb(110)150 3331 y(redirection)13 b Fc(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+b Fb(116)150 3325 y(redirection)13 b Fc(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)27 b Fb(35)150
-3418 y(reserv)n(ed)f(w)n(ord)13 b Fc(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)27 b Fb(38)150
+3412 y(reserv)n(ed)f(w)n(ord)13 b Fc(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)28 b Fb(3)150 3505
+(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)28 b Fb(3)150 3499
y(reserv)n(ed)e(w)n(ords)15 b Fc(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)30 b Fb(8)150 3592 y(restricted)c(shell)12
+(:)g(:)g(:)g(:)h(:)f(:)g(:)30 b Fb(9)150 3586 y(restricted)c(shell)12
b Fc(:)i(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)27
-b Fb(100)150 3679 y(return)e(status)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)g
+b Fb(105)150 3673 y(return)e(status)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)25 b Fb(4)2021
-294 y Fs(S)2025 430 y Fb(shell)h(arithmetic)17 b Fc(:)d(:)f(:)g(:)g(:)g
+294 y Fs(S)2025 427 y Fb(shell)h(arithmetic)17 b Fc(:)d(:)f(:)g(:)g(:)g
(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)31 b Fb(93)2025 524
+f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)31 b Fb(98)2025 520
y(shell)26 b(function)18 b Fc(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)h(:)32 b Fb(18)2025 617 y(shell)26
+(:)g(:)g(:)g(:)g(:)g(:)h(:)32 b Fb(19)2025 613 y(shell)26
b(script)10 b Fc(:)k(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(42)2025 711 y(shell)h(v)l(ariable)7
+(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(46)2025 706 y(shell)h(v)l(ariable)7
b Fc(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)22 b Fb(20)2025 805 y(shell,)k(in)n(teractiv)n(e)21
+g(:)22 b Fb(21)2025 798 y(shell,)k(in)n(teractiv)n(e)21
b Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)34
-b Fb(89)2025 899 y(signal)13 b Fc(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
+b Fb(94)2025 891 y(signal)13 b Fc(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)28
-b Fb(4)2025 992 y(signal)f(handling)6 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g
+b Fb(4)2025 984 y(signal)f(handling)6 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)21 b Fb(42)2025 1086
+g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)21 b Fb(45)2025 1077
y(sp)r(ecial)27 b(builtin)16 b Fc(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)g(:)31 b Fb(4,)26 b(72)2025 1180 y(startup)f(\014les)10
+g(:)g(:)g(:)g(:)31 b Fb(4,)26 b(77)2025 1170 y(startup)f(\014les)10
b Fc(:)k(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)g(:)25 b Fb(88)2025 1267 y(susp)r(ending)g(jobs)10
-b Fc(:)k(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)25
-b Fb(107)2021 1647 y Fs(T)2025 1783 y Fb(tilde)h(expansion)7
-b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)22
-b Fb(24)2025 1877 y(tok)n(en)17 b Fc(:)12 b(:)i(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)32
-b Fb(4)2025 1964 y(translation,)27 b(nativ)n(e)e(languages)c
-Fc(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)34 b Fb(7)2021 2344 y Fs(V)2025 2480 y
-Fb(v)l(ariable,)26 b(shell)14 b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)28 b Fb(20)2025 2567 y(v)l(ariables,)f
-(readline)7 b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)22
-b Fb(115)2021 2947 y Fs(W)2025 3083 y Fb(w)n(ord)10 b
+(:)g(:)25 b Fb(93)2025 1262 y(string)h(translations)8
+b Fc(:)14 b(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)23
+b Fb(7)2025 1350 y(susp)r(ending)i(jobs)10 b Fc(:)k(:)f(:)g(:)h(:)f(:)g
+(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)25 b Fb(113)2021 1710 y Fs(T)2025
+1843 y Fb(tilde)h(expansion)7 b Fc(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)22 b Fb(25)2025 1936 y(tok)n(en)17
+b Fc(:)12 b(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)
+f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)32 b Fb(4)2025 2023
+y(translation,)27 b(nativ)n(e)e(languages)c Fc(:)13 b(:)g(:)g(:)g(:)g
+(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)34
+b Fb(7)2021 2384 y Fs(V)2025 2517 y Fb(v)l(ariable,)26
+b(shell)14 b Fc(:)g(:)f(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
+g(:)g(:)28 b Fb(21)2025 2604 y(v)l(ariables,)f(readline)7
+b Fc(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
+(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)22
+b Fb(121)2021 2965 y Fs(W)2025 3098 y Fb(w)n(ord)10 b
Fc(:)j(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(4)2025 3170
+g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)25 b Fb(4)2025 3185
y(w)n(ord)h(splitting)9 b Fc(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(32)2021 3550 y Fs(Y)2025
-3679 y Fb(y)n(anking)h(text)13 b Fc(:)f(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g
+g(:)h(:)f(:)g(:)g(:)g(:)24 b Fb(35)2021 3545 y Fs(Y)2025
+3673 y Fb(y)n(anking)h(text)13 b Fc(:)f(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g
(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)28 b Fb(113)p eop end
+g(:)h(:)f(:)g(:)g(:)g(:)g(:)28 b Fb(119)p eop end
%%Trailer
userdict /end-hook known{end-hook}if
diff --git a/doc/bashref.texi b/doc/bashref.texi
index 9e23f586..b0dc2fad 100644
--- a/doc/bashref.texi
+++ b/doc/bashref.texi
@@ -14,7 +14,7 @@ This is Edition @value{EDITION}, last updated @value{UPDATED},
of @cite{The GNU Bash Reference Manual},
for @code{Bash}, Version @value{VERSION}.
-Copyright @copyright{} 1988--2020 Free Software Foundation, Inc.
+Copyright @copyright{} 1988--2022 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -420,12 +420,12 @@ has special meaning to the shell and must be quoted if it is to
represent itself.
When the command history expansion facilities are being used
(@pxref{History Interaction}), the
-@var{history expansion} character, usually @samp{!}, must be quoted
+@dfn{history expansion} character, usually @samp{!}, must be quoted
to prevent history expansion. @xref{Bash History Facilities}, for
more details concerning history expansion.
There are three quoting mechanisms: the
-@var{escape character}, single quotes, and double quotes.
+@dfn{escape character}, single quotes, and double quotes.
@node Escape Character
@subsubsection Escape Character
@@ -475,10 +475,11 @@ when in double quotes (@pxref{Shell Parameter Expansion}).
@subsubsection ANSI-C Quoting
@cindex quoting, ANSI
-Words of the form @code{$'@var{string}'} are treated specially. The
-word expands to @var{string}, with backslash-escaped characters replaced
-as specified by the ANSI C standard. Backslash escape sequences, if
-present, are decoded as follows:
+Character sequences of the form $'@var{string}' are treated as a special
+kind of single quotes.
+The sequence expands to @var{string}, with backslash-escaped characters
+in @var{string} replaced as specified by the ANSI C standard.
+Backslash escape sequences, if present, are decoded as follows:
@table @code
@item \a
@@ -532,30 +533,139 @@ been present.
@cindex internationalization
@cindex native languages
@cindex translation, native languages
+@menu
+* Creating Internationalized Scripts:: How to use translations and different
+ languages in your scripts.
+@end menu
-A double-quoted string preceded by a dollar sign (@samp{$})
+Prefixing a double-quoted string with a dollar sign (@samp{$}), such
+as @verb{|$"hello, world"|},
will cause the string to be translated according to the current locale.
-The @var{gettext} infrastructure performs the message catalog lookup and
-translation, using the @code{LC_MESSAGES} and @code{TEXTDOMAIN} shell
-variables, as explained below. See the gettext documentation for additional
-details.
+The @code{gettext} infrastructure performs the lookup and
+translation, using the @code{LC_MESSAGES}, @code{TEXTDOMAINDIR},
+and @code{TEXTDOMAIN} shell variables, as explained below.
+See the gettext documentation for additional details not covered here.
If the current locale is @code{C} or @code{POSIX},
-or if there are no translations available,
+if there are no translations available,
+of if the string is not translated,
the dollar sign is ignored.
-If the string is translated and replaced, the replacement is
-double-quoted.
+Since this is a form of double quoting, the string remains double-quoted
+by default, whether or not it is translated and replaced.
+If the @code{noexpand_translation} option is enabled
+using the @code{shopt} builtin (@pxref{The Shopt Builtin}),
+translated strings are single-quoted instead of double-quoted.
+
+The rest of this section is a brief overview of how you use gettext to
+create translations for strings in a shell script named @var{scriptname}.
+There are more details in the gettext documentation.
+
+@node Creating Internationalized Scripts
+@cindex internationalized scripts
+@cindex string translations
+Once you've marked the strings in your script
+that you want to translate using $"...",
+you create a gettext "template" file using the command
+
+@example
+bash --dump-po-strings @var{scriptname} > @var{domain}.pot
+@end example
+
+@noindent
+The @var{domain} is your @dfn{message domain}.
+It's just an arbitrary string that's used to identify the files gettext
+needs, like a package or script name.
+It needs to be unique among all
+the message domains on systems where you install the translations, so
+gettext knows which translations correspond to your script.
+You'll use the template file to create translations for each target language.
+The template file conventionally has the suffix @samp{.pot}.
+
+You copy this template file to a separate file for each target language
+you want to support (called "PO" files, which use the suffix @samp{.po}).
+PO files use various naming conventions, but
+when you are working to translate a template file into a particular
+language, you first copy the template file to a file whose name is the
+language you want to target, with the @samp{.po} suffix.
+For instance, the Spanish translations of your strings would be
+in a file named @samp{es.po}, and to get started using a message
+domain named "example," you would run
+
+@example
+cp example.pot es.po
+@end example
+
+@noindent
+Ultimately, PO files are often named @var{domain}.po and installed in
+directories that contain multiple translation files for a particular language.
+
+Whichever naming convention you choose, you will need to translate the
+strings in the PO files into the appropriate languages.
+This has to be done manually.
+
+When you have the translations and PO files complete, you'll use the
+gettext tools to produce what are called "MO" files, which are compiled
+versions of the PO files the gettext tools use to look up translations
+efficiently.
+MO files are also called "message catalog" files.
+You use the @command{msgfmt} program to do this.
+For instance, if you had a file with Spanish translations, you could run
+@example
+msgfmt -o es.mo es.po
+@end example
+
+@noindent
+to produce the corresponding MO file.
+
+Once you have the MO files, you decide where to install them and use the
+@code{TEXTDOMAINDIR} shell variable to tell the gettext tools where they are.
+Make sure to use the same message domain to name the MO files
+as you did for the PO files when you install them.
+
+@vindex LANG
@vindex LC_MESSAGES
@vindex TEXTDOMAIN
@vindex TEXTDOMAINDIR
-Some systems use the message catalog selected by the @env{LC_MESSAGES}
-shell variable. Others create the name of the message catalog from the
-value of the @env{TEXTDOMAIN} shell variable, possibly adding a
-suffix of @samp{.mo}. If you use the @env{TEXTDOMAIN} variable, you
-may need to set the @env{TEXTDOMAINDIR} variable to the location of
-the message catalog files. Still others use both variables in this
-fashion:
-@env{TEXTDOMAINDIR}/@env{LC_MESSAGES}/LC_MESSAGES/@env{TEXTDOMAIN}.mo.
+Your users will use the @env{LANG} or @env{LC_MESSAGES} shell variables to
+select the desired language.
+
+You set the @env{TEXTDOMAIN} variable to the script's message domain.
+As above, you use the message domain to name your translation files.
+
+You, or possibly your users, set the @env{TEXTDOMAINDIR} variable to the
+name of a directory where the message catalog files are stored.
+If you install the message files into the system's standard message catalog
+directory, you don't need to worry about this variable.
+
+The directory where the message catalog files are stored varies between
+systems.
+Some use the message catalog selected by the @env{LC_MESSAGES}
+shell variable.
+Others create the name of the message catalog from the value of the
+@env{TEXTDOMAIN} shell variable, possibly adding the @samp{.mo} suffix.
+If you use the @env{TEXTDOMAIN} variable, you may need to set the
+@env{TEXTDOMAINDIR} variable to the location of the message catalog files,
+as above.
+It's common to use both variables in this fashion:
+@env{$TEXTDOMAINDIR}/@env{$LC_MESSAGES}/LC_MESSAGES/@env{$TEXTDOMAIN}.mo.
+
+If you used that last convention, and you wanted to store the message
+catalog files with Spanish (es) and Esperanto (eo) translations into a
+local directory you use for custom translation files, you could run
+
+@example
+TEXTDOMAIN=example
+TEXTDOMAINDIR=/usr/local/share/locale
+
+cp es.mo $@{TEXTDOMAINDIR@}/es/LC_MESSAGES/$@{TEXTDOMAIN@}.mo
+cp eo.mo $@{TEXTDOMAINDIR@}/eo/LC_MESSAGES/$@{TEXTDOMAIN@}.mo
+@end example
+
+When all of this is done, and the message catalog files containing the
+compiled translations are installed in the correct location,
+your users will be able to see translated strings
+in any of the supported languages by setting the @env{LANG} or
+@env{LC_MESSAGES} environment variables before running your script.
@node Comments
@subsection Comments
@@ -656,15 +766,15 @@ The format for a pipeline is
The output of each command in the pipeline is connected via a pipe
to the input of the next command.
That is, each command reads the previous command's output. This
-connection is performed before any redirections specified by the
-command.
+connection is performed before any redirections specified by
+@var{command1}.
If @samp{|&} is used, @var{command1}'s standard error, in addition to
its standard output, is connected to
@var{command2}'s standard input through the pipe;
it is shorthand for @code{2>&1 |}.
This implicit redirection of the standard error to the standard output is
-performed after any redirections specified by the command.
+performed after any redirections specified by @var{command1}.
The reserved word @code{time} causes timing statistics
to be printed for the pipeline once it finishes.
@@ -691,11 +801,14 @@ the time information.
If the pipeline is not executed asynchronously (@pxref{Lists}), the
shell waits for all commands in the pipeline to complete.
-Each command in a pipeline is executed in its own subshell, which is a
+Each command in a multi-command pipeline,
+where pipes are created,
+is executed in its own @dfn{subshell}, which is a
separate process (@pxref{Command Execution Environment}).
If the @code{lastpipe} option is enabled using the @code{shopt} builtin
(@pxref{The Shopt Builtin}),
-the last element of a pipeline may be run by the shell process.
+the last element of a pipeline may be run by the shell process
+when job control is not active.
The exit
status of a pipeline is the exit status of the last command in the
@@ -728,8 +841,8 @@ to delimit commands, equivalent to a semicolon.
If a command is terminated by the control operator @samp{&},
the shell executes the command asynchronously in a subshell.
-This is known as executing the command in the @var{background},
-and these are referred to as @var{asynchronous} commands.
+This is known as executing the command in the @dfn{background},
+and these are referred to as @dfn{asynchronous} commands.
The shell does not wait for the command to finish, and the return
status is 0 (true).
When job control is not active (@pxref{Job Control}),
@@ -931,9 +1044,10 @@ Each clause must be terminated with @samp{;;}, @samp{;&}, or @samp{;;&}.
The @var{word} undergoes tilde expansion, parameter expansion, command
substitution, arithmetic expansion, and quote removal
(@pxref{Shell Parameter Expansion})
-before matching is
-attempted. Each @var{pattern} undergoes tilde expansion, parameter
-expansion, command substitution, and arithmetic expansion.
+before matching is attempted.
+Each @var{pattern} undergoes tilde expansion, parameter expansion,
+command substitution, arithmetic expansion, process substitution, and
+quote removal.
There may be an arbitrary number of @code{case} clauses, each terminated
by a @samp{;;}, @samp{;&}, or @samp{;;&}.
@@ -982,16 +1096,16 @@ select @var{name} [in @var{words} @dots{}]; do @var{commands}; done
@end example
The list of words following @code{in} 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
@samp{in @var{words}} is omitted, the positional parameters are printed,
as if @samp{in "$@@"} had been specified.
-The @env{PS3} prompt is then displayed and a line is read from the
-standard input.
+@code{select} then displays the @env{PS3}
+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} is set to that word.
If the line is empty, the words and prompt are displayed again.
-If @code{EOF} is read, the @code{select} command completes.
+If @code{EOF} is read, the @code{select} command completes and returns 1.
Any other value read causes @var{name} to be set to null.
The line read is saved in the variable @env{REPLY}.
@@ -1018,13 +1132,13 @@ done
The arithmetic @var{expression} is evaluated according to the rules
described below (@pxref{Shell Arithmetic}).
+The @var{expression} undergoes the same expansions
+as if it were within double quotes,
+but double quote characters in @var{expression} are not treated specially
+are removed.
If the value of the expression is non-zero, the return status is 0;
-otherwise the return status is 1. This is exactly equivalent to
-@example
-let "@var{expression}"
-@end example
-@noindent
-@xref{Bash Builtins}, for a full description of the @code{let} builtin.
+otherwise the return status is 1.
+
@item [[@dots{}]]
@rwindex [[
@@ -1037,10 +1151,12 @@ Return a status of 0 or 1 depending on the evaluation of
the conditional expression @var{expression}.
Expressions are composed of the primaries described below in
@ref{Bash Conditional Expressions}.
-Word splitting and filename expansion are not performed on the words
-between the @code{[[} and @code{]]}; tilde expansion, parameter and
+The words between the @code{[[} and @code{]]} do not undergo word splitting
+and filename expansion.
+The shell performs tilde expansion, parameter and
variable expansion, arithmetic expansion, command substitution, process
-substitution, and quote removal are performed.
+substitution, and quote removal on those words
+(the expansions that would occur if the words were enclosed in double quotes).
Conditional operators such as @samp{-f} must be unquoted to be recognized
as primaries.
@@ -1058,79 +1174,112 @@ is enabled, the match is performed without regard to the case
of alphabetic characters.
The return value is 0 if the string matches (@samp{==}) or does not
match (@samp{!=}) the pattern, and 1 otherwise.
-Any part of the pattern may be quoted to force the quoted portion
-to be matched as a string.
+
+If you quote any part of the pattern,
+using any of the shell's quoting mechanisms,
+the quoted portion is matched literally.
+This means every character in the quoted portion matches itself,
+instead of having any special pattern matching meaning.
An additional binary operator, @samp{=~}, is available, with the same
precedence as @samp{==} and @samp{!=}.
-When it is used, the string to the right of the operator is considered
-a @sc{posix} extended regular expression and matched accordingly
+When you use @samp{=~}, the string to the right of the operator is considered
+a @sc{posix} extended regular expression pattern and matched accordingly
(using the @sc{posix} @code{regcomp} and @code{regexec} interfaces
usually described in @i{regex}(3)).
-The return value is 0 if the string matches
-the pattern, and 1 otherwise.
+The return value is 0 if the string matches the pattern, and 1 if it does not.
If the regular expression is syntactically incorrect, the conditional
-expression's return value is 2.
+expression returns 2.
If the @code{nocasematch} shell option
(see the description of @code{shopt} in @ref{The Shopt Builtin})
is enabled, the match is performed without regard to the case
of alphabetic characters.
-Any part of the pattern may be quoted to force the quoted portion
-to be matched as a string.
-Bracket expressions in regular expressions must be treated carefully,
-since normal quoting characters lose their meanings between brackets.
+
+You can quote any part of the pattern
+to force the quoted portion to be matched literally
+instead of as a regular expression (see above).
If the pattern is stored in a shell variable, quoting the variable
-expansion forces the entire pattern to be matched as a string.
+expansion forces the entire pattern to be matched literally.
The pattern will match if it matches any part of the string.
-Anchor the pattern using the @samp{^} and @samp{$} regular expression
-operators to force it to match the entire string.
-The array variable @code{BASH_REMATCH} records which parts of the string
-matched the pattern.
-The element of @code{BASH_REMATCH} with index 0 contains the portion of
-the string matching the entire regular expression.
-Substrings matched by parenthesized subexpressions within the regular
-expression are saved in the remaining @code{BASH_REMATCH} indices.
-The element of @code{BASH_REMATCH} with index @var{n} is the portion of the
-string matching the @var{n}th parenthesized subexpression.
+If you want to force the pattern to match the entire string,
+anchor the pattern using the @samp{^} and @samp{$} regular expression
+operators.
For example, the following will match a line
-(stored in the shell variable @var{line})
+(stored in the shell variable @code{line})
if there is a sequence of characters anywhere in the value consisting of
any number, including zero, of
characters in the @code{space} character class,
-zero or one instances of @samp{a}, then a @samp{b}:
+immediately followed by zero or one instances of @samp{a},
+then a @samp{b}:
+
@example
[[ $line =~ [[:space:]]*(a)?b ]]
@end example
@noindent
-That means values like @samp{aab} and @samp{ aaaaaab} will match, as
-will a line containing a @samp{b} anywhere in its value.
+That means values for @code{line} like
+@samp{aab}, @samp{ aaaaaab}, @samp{xaby}, and @samp{ ab}
+will all match,
+as will a line containing a @samp{b} anywhere in its value.
+
+If you want to match a character that's special to the regular expression
+grammar (@samp{^$|[]()\.*+?}), it has to be quoted to remove its special
+meaning.
+This means that in the pattern @samp{xxx.txt}, the @samp{.} matches any
+character in the string (its usual regular expression meaning), but in the
+pattern @samp{"xxx.txt"}, it can only match a literal @samp{.}.
+
+Likewise, if you want to include a character in your pattern that has a
+special meaning to the regular expression grammar, you must make sure it's
+not quoted.
+If you want to anchor a pattern at the beginning or end of the string,
+for instance, you cannot quote the @samp{^} or @samp{$}
+characters using any form of shell quoting.
+
+If you want to match @samp{initial string} at the start of a line,
+the following will work:
+@example
+[[ $line =~ ^"initial string" ]]
+@end example
+@noindent
+but this will not:
+@example
+[[ $line =~ "^initial string" ]]
+@end example
+@noindent
+because in the second example the @samp{^} is quoted and doesn't have its
+usual special meaning.
+It is sometimes difficult to specify a regular expression properly
+without using quotes, or to keep track of the quoting used by regular
+expressions while paying attention to
+shell quoting and the shell's quote removal.
Storing the regular expression in a shell variable is often a useful
way to avoid problems with quoting characters that are special to the
shell.
-It is sometimes difficult to specify a regular expression literally
-without using quotes, or to keep track of the quoting used by regular
-expressions while paying attention to the shell's quote removal.
-Using a shell variable to store the pattern decreases these problems.
-For example, the following is equivalent to the above:
+For example, the following is equivalent to the pattern used above:
+
@example
pattern='[[:space:]]*(a)?b'
[[ $line =~ $pattern ]]
@end example
-@noindent
-If you want to match a character that's special to the regular expression
-grammar, it has to be quoted to remove its special meaning.
-This means that in the pattern @samp{xxx.txt}, the @samp{.} matches any
-character in the string (its usual regular expression meaning), but in the
-pattern @samp{"xxx.txt"} it can only match a literal @samp{.}.
-Shell programmers should take special care with backslashes, since backslashes
-are used both by the shell and regular expressions to remove the special
-meaning from the following character.
+Shell programmers should take special care with backslashes, since
+backslashes are used by both the shell and regular expressions to remove
+the special meaning from the following character.
+This means that after the shell's word expansions complete
+(@pxref{Shell Expansions}),
+any backslashes remaining in parts of the pattern
+that were originally not quoted can remove the
+special meaning of pattern characters.
+If any part of the pattern is quoted, the shell does its best to ensure that
+the regular expression treats those remaining backslashes as literal,
+if they appeared in a quoted portion.
+
The following two sets of commands are @emph{not} equivalent:
+
@example
pattern='\.'
@@ -1144,12 +1293,53 @@ pattern='\.'
@noindent
The first two matches will succeed, but the second two will not, because
in the second two the backslash will be part of the pattern to be matched.
-In the first two examples, the backslash removes the special meaning from
+In the first two examples, the pattern passed to the regular expression
+parser is @samp{\.}. The backslash removes the special meaning from
@samp{.}, so the literal @samp{.} matches.
+In the second two examples, the pattern passed to the regular expression
+parser has the backslash quoted (e.g., @samp{\\\.}), which will not match
+the string, since it does not contain a backslash.
If the string in the first examples were anything other than @samp{.}, say
@samp{a}, the pattern would not match, because the quoted @samp{.} in the
pattern loses its special meaning of matching any single character.
+Bracket expressions in regular expressions can be sources of errors as well,
+since characters that are normally special in regular expressions
+lose their special meanings between brackets.
+However, you can use bracket expressions to match special pattern characters
+without quoting them, so they are sometimes useful for this purpose.
+
+Though it might seem like a strange way to write it, the following pattern
+will match a @samp{.} in the string:
+
+@example
+[[ . =~ [.] ]]
+@end example
+
+The shell performs any word expansions before passing the pattern
+to the regular expression functions,
+so you can assume that the shell's quoting takes precedence.
+As noted above, the regular expression parser will interpret any
+unquoted backslashes remaining in the pattern after shell expansion
+according to its own rules.
+The intention is to avoid making shell programmers quote things twice
+as much as possible, so shell quoting should be sufficient to quote
+special pattern characters where that's necessary.
+
+The array variable @code{BASH_REMATCH} records which parts of the string
+matched the pattern.
+The element of @code{BASH_REMATCH} with index 0 contains the portion of
+the string matching the entire regular expression.
+Substrings matched by parenthesized subexpressions within the regular
+expression are saved in the remaining @code{BASH_REMATCH} indices.
+The element of @code{BASH_REMATCH} with index @var{n} is the portion of the
+string matching the @var{n}th parenthesized subexpression.
+
+Bash sets
+@code{BASH_REMATCH}
+in the global scope; declaring it as a local variable will lead to
+unexpected results.
+
Expressions may be combined using the following operators, listed
in decreasing order of precedence:
@@ -1189,11 +1379,11 @@ commands in the list may be redirected to a single stream.
( @var{list} )
@end example
-Placing a list of commands between parentheses causes a subshell
-environment to be created (@pxref{Command Execution Environment}), and each
-of the commands in @var{list} to be executed in that subshell. Since the
-@var{list} is executed in a subshell, variable assignments do not remain in
-effect after the subshell completes.
+Placing a list of commands between parentheses forces the shell to create
+a subshell (@pxref{Command Execution Environment}), and each
+of the commands in @var{list} is executed in that subshell environment.
+Since the @var{list} is executed in a subshell, variable assignments do not
+remain in effect after the subshell completes.
@item @{@}
@rwindex @{
@@ -1209,9 +1399,9 @@ The semicolon (or newline) following @var{list} is required.
In addition to the creation of a subshell, there is a subtle difference
between these two constructs due to historical reasons. The braces
-are @code{reserved words}, so they must be separated from the @var{list}
+are reserved words, so they must be separated from the @var{list}
by @code{blank}s or other shell metacharacters.
-The parentheses are @code{operators}, and are
+The parentheses are operators, and are
recognized as separate tokens by the shell even if they are not separated
from the @var{list} by whitespace.
@@ -1228,27 +1418,56 @@ A coprocess is executed asynchronously in a subshell, as if the command
had been terminated with the @samp{&} control operator, with a two-way pipe
established between the executing shell and the coprocess.
-The format for a coprocess is:
+The syntax for a coprocess is:
+
@example
coproc [@var{NAME}] @var{command} [@var{redirections}]
@end example
@noindent
This creates a coprocess named @var{NAME}.
-If @var{NAME} is not supplied, the default name is @var{COPROC}.
-@var{NAME} must not be supplied if @var{command} is a simple
-command (@pxref{Simple Commands}); otherwise, it is interpreted as
-the first word of the simple command.
+@var{command} may be either a simple command (@pxref{Simple Commands})
+or a compound command (@pxref{Compound Commands}).
+@var{NAME} is a shell variable name.
+If @var{NAME} is not supplied, the default name is @code{COPROC}.
+
+The recommended form to use for a coprocess is
+
+@example
+coproc @var{NAME} @{ @var{command}; @}
+@end example
+
+@noindent
+This form is recommended because simple commands result in the coprocess
+always being named @code{COPROC}, and it is simpler to use and more complete
+than the other compound commands.
+
+There are other forms of coprocesses:
+
+@example
+coproc @var{NAME} @var{compound-command}
+coproc @var{compound-command}
+coproc @var{simple-command}
+@end example
+
+@noindent
+If @var{command} is a compound command, @var{NAME} is optional. The
+word following @code{coproc} determines whether that word is interpreted
+as a variable name: it is interpreted as @var{NAME} if it is not a
+reserved word that introduces a compound command.
+If @var{command} is a simple command, @var{NAME} is not allowed; this
+is to avoid confusion between @var{NAME} and the first word of the simple
+command.
When the coprocess is executed, the shell creates an array variable
(@pxref{Arrays})
-named @env{NAME} in the context of the executing shell.
+named @var{NAME} in the context of the executing shell.
The standard output of @var{command}
is connected via a pipe to a file descriptor in the executing shell,
-and that file descriptor is assigned to @env{NAME}[0].
+and that file descriptor is assigned to @var{NAME}[0].
The standard input of @var{command}
is connected via a pipe to a file descriptor in the executing shell,
-and that file descriptor is assigned to @env{NAME}[1].
+and that file descriptor is assigned to @var{NAME}[1].
This pipe is established before any redirections specified by the
command (@pxref{Redirections}).
The file descriptors can be utilized as arguments to shell commands
@@ -1257,7 +1476,7 @@ Other than those created to execute command and process substitutions,
the file descriptors are not available in subshells.
The process ID of the shell spawned to execute the coprocess is
-available as the value of the variable @env{NAME}_PID.
+available as the value of the variable @env{@var{NAME}_PID}.
The @code{wait}
builtin command may be used to wait for the coprocess to terminate.
@@ -1279,117 +1498,9 @@ Parallel provides shorthand references to many of the most common operations
the input source, and so on). Parallel can replace @code{xargs} or feed
commands from its input sources to several different instances of Bash.
-For a complete description, refer to the GNU Parallel documentation. A few
-examples should provide a brief introduction to its use.
-
-For example, it is easy to replace @code{xargs} to gzip all html files in the
-current directory and its subdirectories:
-@example
-find . -type f -name '*.html' -print | parallel gzip
-@end example
-@noindent
-If you need to protect special characters such as newlines in file names,
-use find's @option{-print0} option and parallel's @option{-0} option.
-
-You can use Parallel to move files from the current directory when the
-number of files is too large to process with one @code{mv} invocation:
-@example
-printf '%s\n' * | parallel mv @{@} destdir
-@end example
-
-As you can see, the @{@} is replaced with each line read from standard input.
-While using @code{ls} will work in most instances, it is not sufficient to
-deal with all filenames. @code{printf} is a shell builtin, and therefore is
-not subject to the kernel's limit on the number of arguments to a program,
-so you can use @samp{*} (but see below about the @code{dotglob} shell option).
-If you need to accommodate special characters in filenames, you can use
-
-@example
-printf '%s\0' * | parallel -0 mv @{@} destdir
-@end example
-
-@noindent
-as alluded to above.
-
-This will run as many @code{mv} commands as there are files in the current
-directory.
-You can emulate a parallel @code{xargs} by adding the @option{-X} option:
-@example
-printf '%s\0' * | parallel -0 -X mv @{@} destdir
-@end example
-
-(You may have to modify the pattern if you have the @code{dotglob} option
-enabled.)
-
-GNU Parallel can replace certain common idioms that operate on lines read
-from a file (in this case, filenames listed one per line):
-@example
- while IFS= read -r x; do
- do-something1 "$x" "config-$x"
- do-something2 < "$x"
- done < file | process-output
-@end example
-
-@noindent
-with a more compact syntax reminiscent of lambdas:
-@example
-cat list | parallel "do-something1 @{@} config-@{@} ; do-something2 < @{@}" |
- process-output
-@end example
-
-Parallel provides a built-in mechanism to remove filename extensions, which
-lends itself to batch file transformations or renaming:
-@example
-ls *.gz | parallel -j+0 "zcat @{@} | bzip2 >@{.@}.bz2 && rm @{@}"
-@end example
-@noindent
-This will recompress all files in the current directory with names ending
-in .gz using bzip2, running one job per CPU (-j+0) in parallel.
-(We use @code{ls} for brevity here; using @code{find} as above is more
-robust in the face of filenames containing unexpected characters.)
-Parallel can take arguments from the command line; the above can also be
-written as
-
-@example
-parallel "zcat @{@} | bzip2 >@{.@}.bz2 && rm @{@}" ::: *.gz
-@end example
-
-If a command generates output, you may want to preserve the input order in
-the output. For instance, the following command
-@example
-@{
- echo foss.org.my ;
- echo debian.org ;
- echo freenetproject.org ;
-@} | parallel traceroute
-@end example
-@noindent
-will display as output the traceroute invocation that finishes first.
-Adding the @option{-k} option
-@example
-@{
- echo foss.org.my ;
- echo debian.org ;
- echo freenetproject.org ;
-@} | parallel -k traceroute
-@end example
-@noindent
-will ensure that the output of @code{traceroute foss.org.my} is displayed first.
-
-Finally, Parallel can be used to run a sequence of shell commands in parallel,
-similar to @samp{cat file | bash}.
-It is not uncommon to take a list of filenames, create a series of shell
-commands to operate on them, and feed that list of commands to a shell.
-Parallel can speed this up. Assuming that @file{file} contains a list of
-shell commands, one per line,
-
-@example
-parallel -j 10 < file
-@end example
-
-@noindent
-will evaluate the commands using the shell (since no explicit command is
-supplied as an argument), in blocks of ten shell jobs at a time.
+For a complete description, refer to the GNU Parallel documentation, which
+is available at
+@url{https://www.gnu.org/software/parallel/parallel_tutorial.html}.
@node Shell Functions
@section Shell Functions
@@ -1420,16 +1531,16 @@ This defines a shell function named @var{fname}. The reserved
word @code{function} is optional.
If the @code{function} reserved
word is supplied, the parentheses are optional.
-The @var{body} of the function is the compound command
+The @dfn{body} of the function is the compound command
@var{compound-command} (@pxref{Compound Commands}).
That command is usually a @var{list} enclosed between @{ and @}, but
-may be any compound command listed above,
-with one exception: If the @code{function} reserved word is used, but the
-parentheses are not supplied, the braces are required.
+may be any compound command listed above.
+If the @code{function} reserved word is used, but the
+parentheses are not supplied, the braces are recommended.
@var{compound-command} is executed whenever @var{fname} is specified as the
-name of a command.
+name of a simple command.
When the shell is in @sc{posix} mode (@pxref{Bash POSIX Mode}),
-@var{fname} must be a valid shell @var{name} and
+@var{fname} must be a valid shell name and
may not be the same as one of the special builtins
(@pxref{Special Builtins}).
In default mode, a function name can be any unquoted shell word that does
@@ -1496,17 +1607,29 @@ return status is the exit status of the last command executed
before the @code{return}.
Variables local to the function may be declared with the
-@code{local} builtin. These variables are visible only to
+@code{local} builtin (@dfn{local variables}).
+Ordinarily, variables and their values
+are shared between a function and its caller.
+These variables are visible only to
the function and the commands it invokes. This is particularly
important when a shell function calls other functions.
+In the following description, the @dfn{current scope} is a currently-
+executing function.
+Previous scopes consist of that function's caller and so on,
+back to the "global" scope, where the shell is not executing
+any shell function.
+Consequently, a local variable at the current local scope is a variable
+declared using the @code{local} or @code{declare} builtins in the
+function that is currently executing.
+
Local variables "shadow" variables with the same name declared at
previous scopes. For instance, a local variable declared in a function
hides a global variable of the same name: references and assignments
refer to the local variable, leaving the global variable unmodified.
When the function returns, the global variable is once again visible.
-The shell uses @var{dynamic scoping} to control a variable's visibility
+The shell uses @dfn{dynamic scoping} to control a variable's visibility
within functions.
With dynamic scoping, visible variables and their values
are a result of the sequence of function calls that caused execution
@@ -1518,11 +1641,11 @@ This is also the value that a local variable
declaration "shadows", and the value that is restored when the function
returns.
-For example, if a variable @var{var} is declared as local in function
-@var{func1}, and @var{func1} calls another function @var{func2},
-references to @var{var} made from within @var{func2} will resolve to the
-local variable @var{var} from @var{func1}, shadowing any global variable
-named @var{var}.
+For example, if a variable @env{var} is declared as local in function
+@code{func1}, and @code{func1} calls another function @code{func2},
+references to @env{var} made from within @code{func2} will resolve to the
+local variable @env{var} from @code{func1}, shadowing any global variable
+named @env{var}.
The following script demonstrates this behavior.
When executed, the script displays
@@ -1552,11 +1675,13 @@ variable is local to the current scope, @code{unset} will unset it;
otherwise the unset will refer to the variable found in any calling scope
as described above.
If a variable at the current local scope is unset, it will remain so
+(appearing as unset)
until it is reset in that scope or until the function returns.
Once the function returns, any instance of the variable at a previous
scope will become visible.
If the unset acts on a variable at a previous scope, any instance of a
-variable with that name that had been shadowed will become visible.
+variable with that name that had been shadowed will become visible
+(see below how @code{localvar_unset}shell option changes this behavior).
Function names and definitions may be listed with the
@option{-f} option to the @code{declare} (@code{typeset})
@@ -1565,7 +1690,8 @@ The @option{-F} option to @code{declare} or @code{typeset}
will list the function names only
(and optionally the source file and line number, if the @code{extdebug}
shell option is enabled).
-Functions may be exported so that subshells
+Functions may be exported so that child shell processes
+(those created when executing a separate shell invocation)
automatically have them defined with the
@option{-f} option to the @code{export} builtin
(@pxref{Bourne Shell Builtins}).
@@ -1586,11 +1712,11 @@ By default, no limit is placed on the number of recursive calls.
* Special Parameters:: Parameters denoted by special characters.
@end menu
-A @var{parameter} is an entity that stores values.
+A @dfn{parameter} is an entity that stores values.
It can be a @code{name}, a number, or one of the special characters
listed below.
-A @var{variable} is a parameter denoted by a @code{name}.
-A variable has a @var{value} and zero or more @var{attributes}.
+A @dfn{variable} is a parameter denoted by a @code{name}.
+A variable has a @code{value} and zero or more @code{attributes}.
Attributes are assigned using the @code{declare} builtin command
(see the description of the @code{declare} builtin in @ref{Bash Builtins}).
@@ -1607,17 +1733,16 @@ If @var{value}
is not given, the variable is assigned the null string. All
@var{value}s undergo tilde expansion, parameter and variable expansion,
command substitution, arithmetic expansion, and quote
-removal (detailed below). If the variable has its @code{integer}
+removal (@pxref{Shell Parameter Expansion}).
+If the variable has its @code{integer}
attribute set, then @var{value}
is evaluated as an arithmetic expression even if the @code{$((@dots{}))}
expansion is not used (@pxref{Arithmetic Expansion}).
-Word splitting is not performed, with the exception
-of @code{"$@@"} as explained below.
-Filename expansion is not performed.
+Word splitting and filename expansion are not performed.
Assignment statements may also appear as arguments to the
@code{alias},
@code{declare}, @code{typeset}, @code{export}, @code{readonly},
-and @code{local} builtin commands (@var{declaration} commands).
+and @code{local} builtin commands (@dfn{declaration} commands).
When in @sc{posix} mode (@pxref{Bash POSIX Mode}), these builtins may appear
in a command after one or more instances of the @code{command} builtin
and retain these assignment statement properties.
@@ -1627,8 +1752,8 @@ to a shell variable or array index (@pxref{Arrays}), the @samp{+=}
operator can be used to
append to or add to the variable's previous value.
This includes arguments to builtin commands such as @code{declare} that
-accept assignment statements (@var{declaration} commands).
-When @samp{+=} is applied to a variable for which the @var{integer} attribute
+accept assignment statements (declaration commands).
+When @samp{+=} is applied to a variable for which the @code{integer} attribute
has been set, @var{value} is evaluated as an arithmetic expression and
added to the variable's current value, which is also evaluated.
When @samp{+=} is applied to an array variable using compound assignment
@@ -1640,10 +1765,10 @@ in an associative array.
When applied to a string-valued variable, @var{value} is expanded and
appended to the variable's value.
-A variable can be assigned the @var{nameref} attribute using the
+A variable can be assigned the @code{nameref} attribute using the
@option{-n} option to the @code{declare} or @code{local} builtin commands
(@pxref{Bash Builtins})
-to create a @var{nameref}, or a reference to another variable.
+to create a @dfn{nameref}, or a reference to another variable.
This allows variables to be manipulated indirectly.
Whenever the nameref variable is referenced, assigned to, unset, or has
its attributes modified (other than using or changing the nameref
@@ -1658,9 +1783,9 @@ argument, running
declare -n ref=$1
@end example
@noindent
-inside the function creates a nameref variable @var{ref} whose value is
+inside the function creates a nameref variable @env{ref} whose value is
the variable name passed as the first argument.
-References and assignments to @var{ref}, and changes to its attributes,
+References and assignments to @env{ref}, and changes to its attributes,
are treated as references, assignments, and attribute modifications
to the variable whose name was passed as @code{$1}.
@@ -1680,7 +1805,7 @@ as an argument, the variable referenced by the nameref variable will be unset.
@subsection Positional Parameters
@cindex parameters, positional
-A @var{positional parameter} is a parameter denoted by one or more
+A @dfn{positional parameter} is a parameter denoted by one or more
digits, other than the single digit @code{0}. Positional parameters are
assigned from the shell's arguments when it is invoked,
and may be reassigned using the @code{set} builtin command.
@@ -1762,7 +1887,7 @@ builtin command, or those set by the shell itself
@item $
@vindex $$
-($$) Expands to the process @sc{id} of the shell. In a @code{()} subshell, it
+($$) Expands to the process @sc{id} of the shell. In a subshell, it
expands to the process @sc{id} of the invoking shell, not the subshell.
@item !
@@ -1822,14 +1947,14 @@ word splitting;
and filename expansion.
On systems that can support it, there is an additional expansion
-available: @var{process substitution}.
+available: @dfn{process substitution}.
This is performed at the
same time as tilde, parameter, variable, and arithmetic expansion and
command substitution.
After these expansions are performed, quote characters present in the
original word are removed unless they have been quoted themselves
-(@var{quote removal}).
+(@dfn{quote removal}).
Only brace expansion, word splitting, and filename expansion
can increase the number of words of the expansion; other expansions
@@ -1849,7 +1974,7 @@ is performed.
Brace expansion is a mechanism by which arbitrary strings may be generated.
This mechanism is similar to
-@var{filename expansion} (@pxref{Filename Expansion}),
+@dfn{filename expansion} (@pxref{Filename Expansion}),
but the filenames generated need not exist.
Patterns to be brace expanded take the form of an optional @var{preamble},
followed by either a series of comma-separated strings or a sequence expression
@@ -1869,7 +1994,7 @@ ade ace abe
@end example
A sequence expression takes the form @code{@{@var{x}..@var{y}[..@var{incr}]@}},
-where @var{x} and @var{y} are either integers or single characters,
+where @var{x} and @var{y} are either integers or letters,
and @var{incr}, an optional increment, is an integer.
When integers are supplied, the expression expands to each number between
@var{x} and @var{y}, inclusive.
@@ -1878,10 +2003,11 @@ same width.
When either @var{x} or @var{y} begins with a zero, the shell
attempts to force all generated terms to contain the same number of digits,
zero-padding where necessary.
-When characters are supplied, the expression expands to each character
+When letters are supplied, the expression expands to each character
lexicographically between @var{x} and @var{y}, inclusive,
using the default C locale.
-Note that both @var{x} and @var{y} must be of the same type.
+Note that both @var{x} and @var{y} must be of the same type
+(integer or letter).
When the increment is supplied, it is used as the difference between
each term. The default increment is 1 or -1 as appropriate.
@@ -1920,10 +2046,10 @@ chown root /usr/@{ucb/@{ex,edit@},lib/@{ex?.?*,how_ex@}@}
If a word begins with an unquoted tilde character (@samp{~}), all of the
characters up to the first unquoted slash (or all characters,
-if there is no unquoted slash) are considered a @var{tilde-prefix}.
+if there is no unquoted slash) are considered a @dfn{tilde-prefix}.
If none of the characters in the tilde-prefix are quoted, the
characters in the tilde-prefix following the tilde are treated as a
-possible @var{login name}.
+possible @dfn{login name}.
If this login name is the null string, the tilde is replaced with the
value of the @env{HOME} shell variable.
If @env{HOME} is unset, the home directory of the user executing the
@@ -1986,7 +2112,7 @@ The string that would be displayed by @samp{dirs -@var{N}}
Bash also performs tilde expansion on words satisfying the conditions of
variable assignments (@pxref{Shell Parameters})
when they appear as arguments to simple commands.
-Bash does not do this, except for the @var{declaration} commands listed
+Bash does not do this, except for the declaration commands listed
above, when in @sc{posix} mode.
@node Shell Parameter Expansion
@@ -2016,7 +2142,7 @@ or when @var{parameter} is followed by a character that is not to be
interpreted as part of its name.
If the first character of @var{parameter} is an exclamation point (!),
-and @var{parameter} is not a @var{nameref},
+and @var{parameter} is not a nameref,
it introduces a level of indirection.
Bash uses the value formed by expanding the rest of
@var{parameter} as the new @var{parameter}; this is then
@@ -2051,6 +2177,12 @@ If @var{parameter} is unset or null, the expansion of
@var{word} is substituted. Otherwise, the value of
@var{parameter} is substituted.
+@example
+$ v=123
+$ echo $@{v-unset@}
+123
+@end example
+
@item $@{@var{parameter}:=@var{word}@}
If @var{parameter}
is unset or null, the expansion of @var{word}
@@ -2059,6 +2191,13 @@ The value of @var{parameter} is then substituted.
Positional parameters and special parameters may not be assigned to
in this way.
+@example
+$ var=
+$ : $@{var:=DEFAULT@}
+$ echo $var
+DEFAULT
+@end example
+
@item $@{@var{parameter}:?@var{word}@}
If @var{parameter}
is null or unset, the expansion of @var{word} (or a message
@@ -2067,17 +2206,29 @@ is not present) is written to the standard error and the shell, if it
is not interactive, exits. Otherwise, the value of @var{parameter} is
substituted.
+@example
+$ var=
+$ : $@{var:?var is unset or null@}
+bash: var: var is unset or null
+@end example
+
@item $@{@var{parameter}:+@var{word}@}
If @var{parameter}
is null or unset, nothing is substituted, otherwise the expansion of
@var{word} is substituted.
+@example
+$ var=123
+$ echo $@{var:+var is set and not null@}
+var is set and not null
+@end example
+
@item $@{@var{parameter}:@var{offset}@}
@itemx $@{@var{parameter}:@var{offset}:@var{length}@}
This is referred to as Substring Expansion.
It expands to up to @var{length} characters of the value of @var{parameter}
starting at the character specified by @var{offset}.
-If @var{parameter} is @samp{@@}, an indexed array subscripted by
+If @var{parameter} is @samp{@@} or @samp{*}, an indexed array subscripted by
@samp{@@} or @samp{*}, or an associative array name, the results differ as
described below.
If @var{length} is omitted, it expands to the substring of the value of
@@ -2154,8 +2305,8 @@ $ echo ${array[0]: -7:-2}
bcdef
@end verbatim
-If @var{parameter} is @samp{@@}, the result is @var{length} positional
-parameters beginning at @var{offset}.
+If @var{parameter} is @samp{@@} or @samp{*}, the result is @var{length}
+positional parameters beginning at @var{offset}.
A negative @var{offset} is taken relative to one greater than the greatest
positional parameter, so an offset of -1 evaluates to the last positional
parameter.
@@ -2284,21 +2435,100 @@ the pattern removal operation is applied to each member of the
array in turn, and the expansion is the resultant list.
@item $@{@var{parameter}/@var{pattern}/@var{string}@}
-
+@itemx $@{@var{parameter}//@var{pattern}/@var{string}@}
+@itemx $@{@var{parameter}/#@var{pattern}/@var{string}@}
+@itemx $@{@var{parameter}/%@var{pattern}/@var{string}@}
The @var{pattern} is expanded to produce a pattern just as in
filename expansion.
@var{Parameter} is expanded and the longest match of @var{pattern}
against its value is replaced with @var{string}.
+@var{string} undergoes tilde expansion, parameter and variable expansion,
+arithmetic expansion, command and process substitution, and quote removal.
The match is performed according to the rules described below
(@pxref{Pattern Matching}).
-If @var{pattern} begins with @samp{/}, all matches of @var{pattern} are
-replaced with @var{string}. Normally only the first match is replaced.
-If @var{pattern} begins with @samp{#}, it must match at the beginning
-of the expanded value of @var{parameter}.
-If @var{pattern} begins with @samp{%}, it must match at the end
-of the expanded value of @var{parameter}.
-If @var{string} is null, matches of @var{pattern} are deleted
-and the @code{/} following @var{pattern} may be omitted.
+
+In the first form above, only the first match is replaced.
+If there are two slashes separating @var{parameter} and @var{pattern}
+(the second form above), all matches of @var{pattern} are
+replaced with @var{string}.
+If @var{pattern} is preceded by @samp{#} (the third form above),
+it must match at the beginning of the expanded value of @var{parameter}.
+If @var{pattern} is preceded by @samp{%} (the fourth form above),
+it must match at the end of the expanded value of @var{parameter}.
+If the expansion of @var{string} is null,
+matches of @var{pattern} are deleted.
+If @var{string} is null,
+matches of @var{pattern} are deleted
+and the @samp{/} following @var{pattern} may be omitted.
+
+If the @code{patsub_replacement} shell option is enabled using @code{shopt},
+any unquoted instances of @samp{&} in @var{string} are replaced with the
+matching portion of @var{pattern}.
+This is intended to duplicate a common @code{sed} idiom.
+
+Quoting any part of @var{string} inhibits replacement in the
+expansion of the quoted portion, including replacement strings stored
+in shell variables.
+Backslash will escape @samp{&} in @var{string}; the backslash is removed
+in order to permit a literal @samp{&} in the replacement string.
+Users should take care if @var{string} is double-quoted to avoid
+unwanted interactions between the backslash and double-quoting, since
+backslash has special meaning within double quotes.
+Pattern substitution performs the check for unquoted @samp{&} after
+expanding @var{string},
+so users should ensure to properly quote any occurrences of @samp{&}
+they want to be taken literally in the replacement
+and ensure any instances of @samp{&} they want to be replaced are unquoted.
+
+For instance,
+
+@example
+var=abcdef
+rep='& '
+echo $@{var/abc/& @}
+echo "$@{var/abc/& @}"
+echo $@{var/abc/$rep@}
+echo "$@{var/abc/$rep@}"
+@end example
+
+@noindent
+will display four lines of "abc def", while
+
+@example
+var=abcdef
+rep='& '
+echo $@{var/abc/\& @}
+echo "$@{var/abc/\& @}"
+echo $@{var/abc/"& "@}
+echo $@{var/abc/"$rep"@}
+@end example
+
+@noindent
+will display four lines of "& def".
+Like the pattern removal operators, double quotes surrounding the
+replacement string quote the expanded characters, while double quotes
+enclosing the entire parameter substitution do not, since
+the expansion is performed in a
+context that doesn't take any enclosing double quotes into account.
+
+Since backslash can escape @samp{&}, it can also escape a backslash in
+the replacement string.
+This means that @samp{\\} will insert a literal
+backslash into the replacement, so these two @code{echo} commands
+
+@example
+var=abcdef
+rep='\\&xyz'
+echo $@{var/abc/\\&xyz@}
+echo $@{var/abc/$rep@}
+@end example
+
+@noindent
+will both output @samp{\abcxyzdef}.
+
+It should rarely be necessary to enclose only @var{string} in double
+quotes.
+
If the @code{nocasematch} shell option
(see the description of @code{shopt} in @ref{The Shopt Builtin})
is enabled, the match is performed without regard to the case
@@ -2321,6 +2551,7 @@ filename expansion.
Each character in the expanded value of @var{parameter} is tested against
@var{pattern}, and, if it matches the pattern, its case is converted.
The pattern should not attempt to match more than one character.
+
The @samp{^} operator converts lowercase letters matching @var{pattern}
to uppercase; the @samp{,} operator converts matching uppercase letters
to lowercase.
@@ -2329,6 +2560,7 @@ expanded value; the @samp{^} and @samp{,} expansions match and convert only
the first character in the expanded value.
If @var{pattern} is omitted, it is treated like a @samp{?}, which matches
every character.
+
If @var{parameter} is @samp{@@} or @samp{*},
the case modification operation is applied to each positional
parameter in turn, and the expansion is the resultant list.
@@ -2373,6 +2605,9 @@ indexed and associative arrays as a sequence of quoted key-value pairs
@item a
The expansion is a string consisting of flag values representing
@var{parameter}'s attributes.
+@item k
+Like the @samp{K} transformation, but expands the keys and values of
+indexed and associative arrays to separate words after word splitting.
@end table
If @var{parameter} is @samp{@@} or @samp{*},
@@ -2438,8 +2673,10 @@ and the substitution of the result. The format for arithmetic expansion is:
$(( @var{expression} ))
@end example
-The expression is treated as if it were within double quotes, but
-a double quote inside the parentheses is not treated specially.
+The @var{expression} undergoes the same expansions
+as if it were within double quotes,
+but double quote characters in @var{expression} are not treated specially
+and are removed.
All tokens in the expression undergo parameter and variable expansion,
command substitution, and quote removal.
The result is treated as the arithmetic expression to be evaluated.
@@ -2559,9 +2796,13 @@ without regard to the case of alphabetic characters.
When a pattern is used for filename expansion, the character @samp{.}
at the start of a filename or immediately following a slash
must be matched explicitly, unless the shell option @code{dotglob} is set.
-The filenames @samp{.} and @samp{..} must always be matched explicitly,
+In order to match the filenames @samp{.} and @samp{..},
+the pattern must begin with @samp{.} (for example, @samp{.?}),
even if @code{dotglob} is set.
-In other cases, the @samp{.} character is not treated specially.
+If the @code{globskipdots} shell option is enabled, the filenames
+@samp{.} and @samp{..} are never matched, even if the pattern begins
+with a @samp{.}.
+When not matching filenames, the @samp{.} character is not treated specially.
When matching a filename, the slash character must always be
matched explicitly by a slash in the pattern, but in other matching
@@ -2570,6 +2811,7 @@ below (@pxref{Pattern Matching}).
See the description of @code{shopt} in @ref{The Shopt Builtin},
for a description of the @code{nocaseglob}, @code{nullglob},
+@code{globskipdots},
@code{failglob}, and @code{dotglob} options.
The @env{GLOBIGNORE}
@@ -2628,20 +2870,22 @@ then any character not enclosed is matched. A @samp{@minus{}}
may be matched by including it as the first or last character
in the set. A @samp{]} may be matched by including it as the first
character in the set.
-The sorting order of characters in range expressions is determined by
+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
@env{LC_COLLATE} and @env{LC_ALL} shell variables, if set.
For example, in the default C locale, @samp{[a-dx-z]} is equivalent to
@samp{[abcdxyz]}. Many locales sort characters in dictionary order, and in
these locales @samp{[a-dx-z]} is typically not equivalent to @samp{[abcdxyz]};
-it might be equivalent to @samp{[aBbCcDdxXyYz]}, for example. To obtain
+it might be equivalent to @samp{[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 @env{LC_COLLATE} or
@env{LC_ALL} environment variable to the value @samp{C}, or enable the
@code{globasciiranges} shell option.
-Within @samp{[} and @samp{]}, @var{character classes} can be specified
+Within @samp{[} and @samp{]}, @dfn{character classes} can be specified
using the syntax
@code{[:}@var{class}@code{:]}, where @var{class} is one of the
following classes defined in the @sc{posix} standard:
@@ -2654,7 +2898,7 @@ A character class matches any character belonging to that class.
The @code{word} character class matches letters, digits, and the character
@samp{_}.
-Within @samp{[} and @samp{]}, an @var{equivalence class} can be
+Within @samp{[} and @samp{]}, an @dfn{equivalence class} can be
specified using the syntax @code{[=}@var{c}@code{=]}, which
matches all characters with the same collation weight (as defined
by the current locale) as the character @var{c}.
@@ -2664,9 +2908,11 @@ matches the collating symbol @var{symbol}.
@end table
If the @code{extglob} shell option is enabled using the @code{shopt}
-builtin, several extended pattern matching operators are recognized.
+builtin, the shell recognizes several extended pattern matching operators.
In the following description, a @var{pattern-list} is a list of one
or more patterns separated by a @samp{|}.
+When matching filenames, the @code{dotglob} shell option determines
+the set of filenames that are tested, as described above.
Composite patterns may be formed using one or more of the following
sub-patterns:
@@ -2687,6 +2933,23 @@ 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
+beginning with @samp{.}, but the filenames
+@samp{.} and @samp{..} must be matched by a
+pattern or sub-pattern that begins with a dot;
+when it is disabled, the set does not
+include any filenames beginning with ``.'' unless the pattern
+or sub-pattern begins with a @samp{.}.
+As above, @samp{.} only has a special meaning when matching filenames.
+
Complicated extended pattern matching against long strings is slow,
especially when the patterns contain alternations and the strings
contain multiple matches.
@@ -2705,9 +2968,9 @@ result from one of the above expansions are removed.
@cindex redirection
Before a command is executed, its input and output
-may be @var{redirected}
+may be @dfn{redirected}
using a special notation interpreted by the shell.
-Redirection allows commands' file handles to be
+@dfn{Redirection} allows commands' file handles to be
duplicated, opened, closed,
made to refer to different files,
and can change the files the command reads from and writes to.
@@ -2728,6 +2991,8 @@ descriptor to close.
If @{@var{varname}@} is supplied, the redirection persists beyond
the scope of the command, allowing the shell programmer to manage
the file descriptor's lifetime manually.
+The @code{varredir_close} shell option manages this behavior
+(@pxref{The Shopt Builtin}).
In the following descriptions, if the file descriptor number is
omitted, and the first character of the redirection operator is
@@ -3040,7 +3305,11 @@ and quote removal before being assigned to the variable.
@end enumerate
If no command name results, the variable assignments affect the current
-shell environment. Otherwise, the variables are added to the environment
+shell environment.
+In the case of such a command (one that consists only of assignment
+statements and redirections), assignment statements are performed before
+redirections.
+Otherwise, the variables are added to the environment
of the executed command and do not affect the current shell environment.
If any of the assignments attempts to assign a value to a readonly variable,
an error occurs, and the command exits with a non-zero status.
@@ -3103,7 +3372,7 @@ to the command are set to the arguments supplied, if any.
@item
If this execution fails because the file is not in executable
format, and the file is not a directory, it is assumed to be a
-@var{shell script} and the shell executes it as described in
+@dfn{shell script} and the shell executes it as described in
@ref{Shell Scripts}.
@item
@@ -3116,7 +3385,7 @@ the command to complete and collects its exit status.
@subsection Command Execution Environment
@cindex execution environment
-The shell has an @var{execution environment}, which consists of the
+The shell has an @dfn{execution environment}, which consists of the
following:
@itemize @bullet
@@ -3190,6 +3459,8 @@ shell's parent, and traps ignored by the shell are ignored
A command invoked in this separate environment cannot affect the
shell's execution environment.
+A @dfn{subshell} is a copy of the shell process.
+
Command substitution, commands grouped with parentheses,
and asynchronous commands are invoked in a
subshell environment that is a duplicate of the shell environment,
@@ -3213,13 +3484,13 @@ shell as modified by redirections.
@cindex environment
When a program is invoked it is given an array of strings
-called the @var{environment}.
+called the @dfn{environment}.
This is a list of name-value pairs, of the form @code{name=value}.
Bash provides several ways to manipulate the environment.
On invocation, the shell scans its own environment and
creates a parameter for each name found, automatically marking
-it for @var{export}
+it for @code{export}
to child processes. Executed commands inherit the environment.
The @code{export} and @samp{declare -x}
commands allow parameters and functions to be added to and
@@ -3251,7 +3522,7 @@ command in its environment.
@cindex exit status
The exit status of an executed command is the value returned by the
-@var{waitpid} system call or equivalent function. Exit statuses
+@code{waitpid} system call or equivalent function. Exit statuses
fall between 0 and 255, though, as explained below, the shell may
use values above 125 specially. Exit statuses from shell builtins and
compound commands are also limited to this range. Under certain
@@ -3284,6 +3555,9 @@ conditional and list constructs.
All builtins return an exit status of 2 to indicate incorrect usage,
generally invalid options or missing arguments.
+The exit status of the last command is available in the special
+parameter $? (@pxref{Special Parameters}).
+
@node Signals
@subsection Signals
@cindex signal handling
@@ -3330,6 +3604,37 @@ which a trap has been set will cause the @code{wait} builtin to return
immediately with an exit status greater than 128, immediately after
which the trap is executed.
+When job control is not enabled, and Bash is waiting for a foreground
+command to complete, the shell receives keyboard-generated signals
+such as @code{SIGINT} (usually generated by @samp{^C}) that users
+commonly intend to send to that command.
+This happens because the shell and the command are in the same process
+group as the terminal, and @samp{^C} sends @code{SIGINT} to all processes
+in that process group.
+See @ref{Job Control}, for a more in-depth discussion of process groups.
+
+When Bash is running without job control enabled and receives @code{SIGINT}
+while waiting for a foreground command, it waits until that foreground
+command terminates and then decides what to do about the @code{SIGINT}:
+
+@enumerate
+@item
+If the command terminates due to the @code{SIGINT}, Bash concludes
+that the user meant to end the entire script, and acts on the
+@code{SIGINT} (e.g., by running a @code{SIGINT} trap or exiting itself);
+
+@item
+If the pipeline does not terminate due to @code{SIGINT}, the program
+handled the @code{SIGINT} itself and did not treat it as a fatal signal.
+In that case, Bash does not treat @code{SIGINT} as a fatal signal,
+either, instead assuming that the @code{SIGINT} was used as part of the
+program's normal operation (e.g., @command{emacs} uses it to abort editing
+commands) or deliberately discarded. However, Bash will run any
+trap set on @code{SIGINT}, as it does with any other trapped signal it
+receives while it is waiting for the foreground command to
+complete, for compatibility.
+@end enumerate
+
@node Shell Scripts
@section Shell Scripts
@cindex shell script
@@ -3352,8 +3657,10 @@ are unset.
A shell script may be made executable by using the @code{chmod} command
to turn on the execute bit. When Bash finds such a file while
-searching the @env{$PATH} for a command, it spawns a subshell to
-execute it. In other words, executing
+searching the @env{$PATH} for a command, it creates a
+new instance of itself
+to execute it.
+In other words, executing
@example
filename @var{arguments}
@end example
@@ -3470,18 +3777,19 @@ The return status is zero.
Read and execute commands from the @var{filename} argument in the
current shell context. If @var{filename} does not contain a slash,
-the @env{PATH} variable is used to find @var{filename}.
-When Bash is not in @sc{posix} mode, the current directory is searched
+the @env{PATH} variable is used to find @var{filename},
+but @var{filename} does not need to be executable.
+When Bash is not in @sc{posix} mode, it searches the current directory
if @var{filename} is not found in @env{$PATH}.
If any @var{arguments} are supplied, they become the positional
parameters when @var{filename} is executed. Otherwise the positional
parameters are unchanged.
-If the @option{-T} option is enabled, @code{source} inherits any trap on
+If the @option{-T} option is enabled, @code{.} inherits any trap on
@code{DEBUG}; if it is not, any @code{DEBUG} trap string is saved and
-restored around the call to @code{source}, and @code{source} unsets the
+restored around the call to @code{.}, and @code{.} unsets the
@code{DEBUG} trap while it executes.
If @option{-T} is not set, and the sourced file changes
-the @code{DEBUG} trap, the new value is retained when @code{source} completes.
+the @code{DEBUG} trap, the new value is retained when @code{.} completes.
The return status is the exit status of the last command executed, or
zero if no commands are executed. If @var{filename} is not found, or
cannot be read, the return status is non-zero.
@@ -3507,7 +3815,6 @@ cd [-L|[-P [-e]] [-@@] [@var{directory}]
Change the current working directory to @var{directory}.
If @var{directory} is not supplied, the value of the @env{HOME}
shell variable is used.
-Any additional arguments following @var{directory} are ignored.
If the shell variable
@env{CDPATH} exists, it is used as a search path:
each directory name in @env{CDPATH} is searched for
@@ -3543,6 +3850,11 @@ If a non-empty directory name from @env{CDPATH} is used, or if
successful, the absolute pathname of the new working directory is
written to the standard output.
+If the directory change is successful, @code{cd} sets the value of the
+@env{PWD} environment variable to the new directory name, and sets the
+@env{OLDPWD} environment variable to the value of the current working
+directory before the change.
+
The return status is zero if the directory is successfully changed,
non-zero otherwise.
@@ -3616,7 +3928,7 @@ Mark each @var{name} to be passed to child processes
in the environment. If the @option{-f} option is supplied, the @var{name}s
refer to shell functions; otherwise the names refer to shell variables.
The @option{-n} option means to no longer mark each @var{name} for export.
-If no @var{names} are supplied, or if the @option{-p} option is given, a
+If no @var{name}s are supplied, or if the @option{-p} option is given, a
list of names of all exported variables is displayed.
The @option{-p} option displays output in a form that may be reused as input.
If a variable name is followed by =@var{value}, the value of
@@ -3877,10 +4189,20 @@ Otherwise, the expression is false.
@end enumerate
@item 4 arguments
+The following conditions are applied in the order listed.
+
+@enumerate
+@item
If the first argument is @samp{!}, the result is the negation of
the three-argument expression composed of the remaining arguments.
+@item
+If the first argument is exactly @samp{(} and the fourth argument is
+exactly @samp{)}, the result is the two-argument test of the second
+and third arguments.
+@item
Otherwise, the expression is parsed and evaluated according to
precedence using the rules listed above.
+@end enumerate
@item 5 or more arguments
The expression is parsed and evaluated according to precedence
@@ -3994,7 +4316,7 @@ If the @option{-v} option is given, each
If the @option{-f} option is given, the @var{name}s refer to shell
functions, and the function definition is removed.
If the @option{-n} option is supplied, and @var{name} is a variable with
-the @var{nameref} attribute, @var{name} will be unset rather than the
+the @code{nameref} attribute, @var{name} will be unset rather than the
variable it references.
@option{-n} has no effect if the @option{-f} option is supplied.
If no options are supplied, each @var{name} refers to a variable; if
@@ -4003,7 +4325,7 @@ unset.
Readonly variables and functions may not be unset.
Some shell variables lose their special behavior if they are unset; such
behavior is noted in the description of the individual variables.
-The return status is zero unless a @var{name} is readonly.
+The return status is zero unless a @var{name} is readonly or may not be unset.
@end table
@node Bash Builtins
@@ -4038,6 +4360,7 @@ bind [-m @var{keymap}] -f @var{filename}
bind [-m @var{keymap}] -x @var{keyseq:shell-command}
bind [-m @var{keymap}] @var{keyseq:function-name}
bind [-m @var{keymap}] @var{keyseq:readline-command}
+bind @var{readline-command-line}
@end example
Display current Readline (@pxref{Command Line Editing})
@@ -4112,6 +4435,9 @@ When @var{shell-command} is executed, the shell sets the
buffer and the @code{READLINE_POINT} and @code{READLINE_MARK} variables
to the current location of the insertion point and the saved insertion
point (the @var{mark}), respectively.
+The shell assigns any numeric argument the user supplied to the
+@code{READLINE_ARGUMENT} variable.
+If there was no argument, that variable is not set.
If the executed command changes the value of any of @code{READLINE_LINE},
@code{READLINE_POINT}, or @code{READLINE_MARK}, those new values will be
reflected in the editing state.
@@ -4218,7 +4544,7 @@ the global scope, even when @code{declare} is executed in a shell function.
It is ignored in all other cases.
The @option{-I} option causes local variables to inherit the attributes
-(except the @var{nameref} attribute)
+(except the @code{nameref} attribute)
and value of any existing variable with the same
@var{name} at a surrounding scope.
If there is no existing variable, the local variable is initially unset.
@@ -4247,7 +4573,7 @@ converted to lower-case.
The upper-case attribute is disabled.
@item -n
-Give each @var{name} the @var{nameref} attribute, making
+Give each @var{name} the @code{nameref} attribute, making
it a name reference to another variable.
That other variable is defined by the value of @var{name}.
All references, assignments, and attribute modifications
@@ -4294,7 +4620,7 @@ an attempt is made to define a function using @samp{-f foo=bar},
an attempt is made to assign a value to a readonly variable,
an attempt is made to assign a value to an array variable without
using the compound assignment syntax (@pxref{Arrays}),
-one of the @var{names} is not a valid shell variable name,
+one of the @var{name}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 @option{-f}.
@@ -4378,6 +4704,9 @@ each builtin with an indication of whether or not it is enabled.
The @option{-f} option means to load the new builtin command @var{name}
from shared object @var{filename}, on systems that support dynamic loading.
+Bash will use the value of the @env{BASH_LOADABLES_PATH} variable as a
+colon-separated list of directories in which to search for @var{filename}.
+The default is system-dependent.
The @option{-d} option will delete a builtin loaded with @option{-f}.
If there are no options, a list of the shell builtins is displayed.
@@ -4385,6 +4714,11 @@ The @option{-s} option restricts @code{enable} to the @sc{posix} special
builtins. If @option{-s} is used with @option{-f}, the new builtin becomes
a special builtin (@pxref{Special Builtins}).
+If no options are supplied and a @var{name} is not a shell builtin,
+@code{enable} will attempt to load @var{name} from a shared object named
+@var{name}, as if the command were
+@samp{enable -f @var{name} @var{name}}.
+
The return status is zero unless a @var{name} is not a shell builtin
or there is an error loading a new builtin from a shared object.
@@ -4535,6 +4869,9 @@ corresponding @var{argument} in the same way as @code{echo -e}
@item %q
Causes @code{printf} to output the
corresponding @var{argument} in a format that can be reused as shell input.
+@item %Q
+like @code{%q}, but applies any supplied precision to the @var{argument}
+before quoting it.
@item %(@var{datefmt})T
Causes @code{printf} to output the date-time string resulting from using
@var{datefmt} as a format string for @code{strftime}(3).
@@ -4654,8 +4991,10 @@ from regular files.
If @code{read} times out, @code{read} saves any partial input read into
the specified variable @var{name}.
If @var{timeout} is 0, @code{read} returns immediately, without trying to
-read any data. The exit status is 0 if input is available on
-the specified file descriptor, non-zero otherwise.
+read any data.
+The exit status is 0 if input is available on the specified file descriptor,
+or the read will return EOF,
+non-zero otherwise.
The exit status is greater than 128 if the timeout is exceeded.
@item -u @var{fd}
@@ -4727,7 +5066,7 @@ is not also used.
If the @option{-f} option is used, @code{type} does not attempt to find
shell functions, as with the @code{command} builtin.
-The return status is zero if all of the @var{names} are found, non-zero
+The return status is zero if all of the @var{name}s are found, non-zero
if any are not found.
@item typeset
@@ -4888,8 +5227,8 @@ parameters, or to display the names and values of shell variables.
@item set
@btindex set
@example
-set [--abefhkmnptuvxBCEHPT] [-o @var{option-name}] [@var{argument} @dots{}]
-set [+abefhkmnptuvxBCEHPT] [+o @var{option-name}] [@var{argument} @dots{}]
+set [-abefhkmnptuvxBCEHPT] [-o @var{option-name}] [--] [-] [@var{argument} @dots{}]
+set [+abefhkmnptuvxBCEHPT] [+o @var{option-name}] [--] [-] [@var{argument} @dots{}]
@end example
If no options or arguments are supplied, @code{set} displays the names
@@ -5076,12 +5415,18 @@ not reset.
Turning this option off causes the effective user
and group ids to be set to the real user and group ids.
+@item -r
+Enable restricted shell mode.
+This option cannot be unset once it has been set.
+
@item -t
Exit after reading and executing one command.
@item -u
Treat unset variables and parameters other than the special parameters
-@samp{@@} or @samp{*} as an error when performing parameter expansion.
+@samp{@@} or @samp{*},
+or array variables subscripted with @samp{@@} or @samp{*},
+as an error when performing parameter expansion.
An error message will be written to the standard error, and a non-interactive
shell will exit.
@@ -5187,7 +5532,7 @@ The settings can be either those listed below, or, if the
option to the @code{set} builtin command (@pxref{The Set Builtin}).
With no options, or with the @option{-p} option, a list of all settable
options is displayed, with an indication of whether or not each is set;
-if @var{optnames} are supplied, the output is restricted to those options.
+if @var{optname}s are supplied, the output is restricted to those options.
The @option{-p} option causes output to be displayed in a form that
may be reused as input.
Other options have the following meanings:
@@ -5203,7 +5548,7 @@ Disable (unset) each @var{optname}.
Suppresses normal output; the return status
indicates whether the @var{optname} is set or unset.
If multiple @var{optname} arguments are given with @option{-q},
-the return status is zero if all @var{optnames} are enabled;
+the return status is zero if all @var{optname}s are enabled;
non-zero otherwise.
@item -o
@@ -5219,7 +5564,7 @@ those options which are set or unset, respectively.
Unless otherwise noted, the @code{shopt} options are disabled (off)
by default.
-The return status when listing options is zero if all @var{optnames}
+The return status when listing options is zero if all @var{optname}s
are enabled, non-zero otherwise. When setting or unsetting options,
the return status is zero unless an @var{optname} is not a valid shell
option.
@@ -5308,7 +5653,7 @@ versions through 4.2.
@item direxpand
If set, Bash
replaces directory names with the results of word expansion when performing
-filename completion. This changes the contents of the readline editing
+filename completion. This changes the contents of the Readline editing
buffer.
If not set, Bash attempts to preserve what the user typed.
@@ -5401,6 +5746,12 @@ is not taken into account, so
@samp{b} will not collate between @samp{A} and @samp{B},
and upper-case and lower-case ASCII characters will collate together.
+@item globskipdots
+If set, filename expansion will never match the filenames
+@samp{.} and @samp{..},
+even if the pattern begins with a @samp{.}.
+This option is enabled by default.
+
@item globstar
If set, the pattern @samp{**} used in a filename expansion context will
match all files and zero or more directories and subdirectories.
@@ -5460,7 +5811,7 @@ embedded newlines rather than using semicolon separators where possible.
@item localvar_inherit
If set, local variables inherit the value and attributes of a variable of
the same name that exists at a previous scope before any new value is
-assigned. The @var{nameref} attribute is not inherited.
+assigned. The @code{nameref} attribute is not inherited.
@item localvar_unset
If set, calling @code{unset} on local variables in previous function scopes
@@ -5490,14 +5841,27 @@ performing filename expansion.
@item nocasematch
If set, Bash matches patterns in a case-insensitive fashion when
performing matching while executing @code{case} or @code{[[}
-conditional commands,
+conditional commands (@pxref{Conditional Constructs},
when performing pattern substitution word expansions,
or when filtering possible completions as part of programmable completion.
+@item noexpand_translation
+If set, Bash
+encloses the translated results of $"..." quoting in single quotes
+instead of double quotes.
+If the string is not translated, this has no effect.
+
@item nullglob
If set, Bash allows filename patterns which match no
files to expand to a null string, rather than themselves.
+@item patsub_replacement
+If set, Bash
+expands occurrences of @samp{&} in the replacement string of pattern
+substitution to the text matched by the pattern, as described
+above (@pxref{Shell Parameter Expansion}).
+This option is enabled by default.
+
@item progcomp
If set, the programmable completion facilities
(@pxref{Programmable Completion}) are enabled.
@@ -5529,10 +5893,15 @@ builtin prints an error message when the shift count exceeds the
number of positional parameters.
@item sourcepath
-If set, the @code{source} builtin uses the value of @env{PATH}
+If set, the @code{.} (@code{source}) builtin uses the value of @env{PATH}
to find the directory containing the file supplied as an argument.
This option is enabled by default.
+@item varredir_close
+If set, the shell automatically closes file descriptors assigned using the
+@code{@{varname@}} redirection syntax (@pxref{Redirections}) instead of
+leaving them open when the command completes.
+
@item xpg_echo
If set, the @code{echo} builtin expands backslash-escape sequences
by default.
@@ -5789,7 +6158,7 @@ The command argument to the @option{-c} invocation option.
@item BASH_LINENO
An array variable whose members are the line numbers in source files
-where each corresponding member of @var{FUNCNAME} was invoked.
+where each corresponding member of @env{FUNCNAME} was invoked.
@code{$@{BASH_LINENO[$i]@}} is the line number in the source file
(@code{$@{BASH_SOURCE[$i+1]@}}) where
@code{$@{FUNCNAME[$i]@}} was called (or @code{$@{BASH_LINENO[$i-1]@}} if
@@ -5833,10 +6202,10 @@ The values assigned to the array members are as follows:
@table @code
@item BASH_VERSINFO[0]
-The major version number (the @var{release}).
+The major version number (the @dfn{release}).
@item BASH_VERSINFO[1]
-The minor version number (the @var{version}).
+The minor version number (the @dfn{version}).
@item BASH_VERSINFO[2]
The patch level.
@@ -5845,7 +6214,7 @@ The patch level.
The build version.
@item BASH_VERSINFO[4]
-The release status (e.g., @var{beta1}).
+The release status (e.g., @code{beta1}).
@item BASH_VERSINFO[5]
The value of @env{MACHTYPE}.
@@ -5906,7 +6275,7 @@ programmable completion facilities (@pxref{Programmable Completion}).
@item COMP_TYPE
Set to an integer value corresponding to the type of completion attempted
that caused a completion function to be called:
-@var{TAB}, for normal completion,
+@key{TAB}, for normal completion,
@samp{?}, for listing completions after successive tabs,
@samp{!}, for listing alternatives on partial word completion,
@samp{@@}, to list completions if the word is not unmodified,
@@ -5963,7 +6332,7 @@ starts with value @samp{t}, it assumes that the shell is running in an
Emacs shell buffer and disables line editing.
@item ENV
-Expanded and executed similarlty to @code{BASH_ENV}
+Expanded and executed similarly to @code{BASH_ENV}
(@pxref{Bash Startup Files})
when an interactive shell is invoked in
@sc{posix} Mode (@pxref{Bash POSIX Mode}).
@@ -5971,7 +6340,7 @@ when an interactive shell is invoked in
@item EPOCHREALTIME
Each time this parameter is referenced, it expands to the number of seconds
since the Unix Epoch as a floating point value with micro-second granularity
-(see the documentation for the C library function @var{time} for the
+(see the documentation for the C library function @code{time} for the
definition of Epoch).
Assignments to @env{EPOCHREALTIME} are ignored.
If @env{EPOCHREALTIME}
@@ -5981,7 +6350,7 @@ it is subsequently reset.
@item EPOCHSECONDS
Each time this parameter is referenced, it expands to the number of seconds
since the Unix Epoch (see the documentation for the C library function
-@var{time} for the definition of Epoch).
+@code{time} for the definition of Epoch).
Assignments to @env{EPOCHSECONDS} are ignored.
If @env{EPOCHSECONDS}
is unset, it loses its special properties, even if
@@ -6065,7 +6434,7 @@ subsequently reset.
Up to three characters which control history expansion, quick
substitution, and tokenization (@pxref{History Interaction}).
The first character is the
-@var{history expansion} character, that is, the character which signifies the
+@dfn{history expansion} character, that is, the character which signifies the
start of a history expansion, normally @samp{!}. The second character is the
character which signifies `quick substitution' when seen as the first
character on a line, normally @samp{^}. The optional third character is the
@@ -6150,7 +6519,7 @@ The shell sets the default value to 500 after reading any startup files.
@item HISTTIMEFORMAT
If this variable is set and not null, its value is used as a format string
-for @var{strftime} to print the time stamp associated with each history
+for @code{strftime} to print the time stamp associated with each history
entry displayed by the @code{history} builtin.
If this variable is set, time stamps are written to the history file so
they may be preserved across shell sessions.
@@ -6313,7 +6682,7 @@ The value of this variable is used as the prompt for the
@code{select} command prompts with @samp{#? }
@item PS4
-The value of this parameter is expanded like @var{PS1}
+The value of this parameter is expanded like @env{PS1}
and the expanded value is the prompt printed before the command line
is echoed when the @option{-x} option is set (@pxref{The Set Builtin}).
The first character of the expanded value is replicated multiple times,
@@ -6331,16 +6700,21 @@ If @env{RANDOM}
is unset, it loses its special properties, even if it is
subsequently reset.
+@item READLINE_ARGUMENT
+Any numeric argument given to a Readline command that was defined using
+@samp{bind -x} (@pxref{Bash Builtins}
+when it was invoked.
+
@item READLINE_LINE
The contents of the Readline line buffer, for use
with @samp{bind -x} (@pxref{Bash Builtins}).
@item READLINE_MARK
-The position of the @var{mark} (saved insertion point) in the
+The position of the @dfn{mark} (saved insertion point) in the
Readline line buffer, for use
with @samp{bind -x} (@pxref{Bash Builtins}).
The characters between the insertion point and the mark are often
-called the @var{region}.
+called the @dfn{region}.
@item READLINE_POINT
The position of the insertion point in the Readline line buffer, for use
@@ -6350,12 +6724,11 @@ with @samp{bind -x} (@pxref{Bash Builtins}).
The default variable for the @code{read} builtin.
@item SECONDS
-This variable expands to the number of seconds since the
-shell was started. Assignment to this variable resets
-the count to the value assigned, and the expanded value
-becomes the value assigned plus the number of seconds
+This variable expands to the number of seconds since the shell was started.
+Assignment to this variable resets the count to the value assigned, and the
+expanded value becomes the value assigned plus the number of seconds
since the assignment.
-The number of seconds at shell invocation and the current time is always
+The number of seconds at shell invocation and the current time are always
determined by querying the system clock.
If @env{SECONDS}
is unset, it loses its special properties,
@@ -6743,10 +7116,12 @@ No other startup files are read.
@subsubheading Invoked by remote shell daemon
Bash attempts to determine when it is being run with its standard input
-connected to a network connection, as when executed by the remote shell
-daemon, usually @code{rshd}, or the secure shell daemon @code{sshd}.
-If Bash determines it is being run in
-this fashion, it reads and executes commands from @file{~/.bashrc}, if that
+connected to a network connection, as when executed by
+the historical remote shell daemon, usually @code{rshd},
+or the secure shell daemon @code{sshd}.
+If Bash
+determines it is being run non-interactively in this fashion,
+it reads and executes commands from @file{~/.bashrc}, if that
file exists and is readable.
It will not do this if invoked as @code{sh}.
The @option{--norc} option may be used to inhibit this behavior, and the
@@ -6773,15 +7148,16 @@ the same, but the effective user id is not reset.
@menu
* What is an Interactive Shell?:: What determines whether a shell is Interactive.
* Is this Shell Interactive?:: How to tell if a shell is interactive.
-* Interactive Shell Behavior:: What changes in a interactive shell?
+* Interactive Shell Behavior:: What changes in an interactive shell?
@end menu
@node What is an Interactive Shell?
@subsection What is an Interactive Shell?
An interactive shell
-is one started without non-option arguments, unless @option{-s} is
-specified, without specifying the @option{-c} option, and
+is one started without non-option arguments
+(unless @option{-s} is specified)
+and without specifying the @option{-c} option,
whose input and error output are both
connected to terminals (as determined by @code{isatty(3)}),
or one started with the @option{-i} option.
@@ -6844,7 +7220,7 @@ See @ref{Controlling the Prompt}, for a complete list of prompt
string escape sequences.
@item
-Bash executes the values of the set elements of the @env{PROMPT_COMMANDS}
+Bash executes the values of the set elements of the @env{PROMPT_COMMAND}
array variable as commands before printing the primary prompt, @env{$PS1}
(@pxref{Bash Variables}).
@@ -6915,9 +7291,11 @@ A failed @code{exec} will not cause the shell to exit
Parser syntax errors will not cause the shell to exit.
@item
-Simple spelling correction for directory arguments to the @code{cd}
-builtin is enabled by default (see the description of the @code{cdspell}
+If the @code{cdspell} shell option is enabled, the shell will attempt
+simple spelling correction for directory arguments to the @code{cd}
+builtin (see the description of the @code{cdspell}
option to the @code{shopt} builtin in @ref{The Shopt Builtin}).
+The @code{cdspell} option is only effective in interactive shells.
@item
The shell will check the value of the @env{TMOUT} variable and exit
@@ -6931,7 +7309,10 @@ printing @env{$PS1} (@pxref{Bash Variables}).
@cindex expressions, conditional
Conditional expressions are used by the @code{[[} compound command
-and the @code{test} and @code{[} builtin commands. The @code{test}
+(@pxref{Conditional Constructs})
+and the @code{test} and @code{[} builtin commands
+(@pxref{Bourne Shell Builtins}).
+The @code{test}
and @code{[} commands determine their behavior based on the number
of arguments; see the descriptions of those commands for any other
command-specific actions.
@@ -7166,9 +7547,9 @@ A shell variable that is null or unset evaluates to 0 when referenced
by name without using the parameter expansion syntax.
The value of a variable is evaluated as an arithmetic expression
when it is referenced, or when a variable which has been given the
-@var{integer} attribute using @samp{declare -i} is assigned a value.
+@code{integer} attribute using @samp{declare -i} is assigned a value.
A null value evaluates to 0.
-A shell variable need not have its @var{integer} attribute turned on
+A shell variable need not have its @code{integer} attribute turned on
to be used in an expression.
Integer constants follow the C language definition, without suffixes or
@@ -7195,7 +7576,7 @@ rules above.
@section Aliases
@cindex alias expansion
-@var{Aliases} allow a string to be substituted for a word when it is used
+@dfn{Aliases} allow a string to be substituted for a word when it is used
as the first word of a simple command.
The shell maintains a list of aliases that may be set and unset with
the @code{alias} and @code{unalias} builtin commands.
@@ -7215,7 +7596,7 @@ This means that one may alias @code{ls} to @code{"ls -F"},
for instance, and Bash does not try to recursively expand the
replacement text.
If the last character of the alias value is a
-@var{blank}, then the next command word following the
+@code{blank}, then the next command word following the
alias is also checked for alias expansion.
Aliases are created and listed with the @code{alias}
@@ -7223,7 +7604,7 @@ command, and removed with the @code{unalias} command.
There is no mechanism for using arguments in the replacement text,
as in @code{csh}.
-If arguments are needed, a shell function should be used
+If arguments are needed, use a shell function
(@pxref{Shell Functions}).
Aliases are not expanded when the shell is not interactive,
@@ -7337,6 +7718,9 @@ interpreted as relative to one greater than the maximum index of
@var{name}, so negative indices count back from the end of the
array, and an index of -1 references the last element.
+The @samp{+=} operator will append to an array variable when assigning
+using the compound assignment syntax; see @ref{Shell Parameters} above.
+
Any element of an array may be referenced using
@code{$@{@var{name}[@var{subscript}]@}}.
The braces are required to avoid
@@ -7387,8 +7771,14 @@ destroys the array element at index @var{subscript}.
Negative subscripts to indexed arrays are interpreted as described above.
Unsetting the last element of an array variable does not unset the variable.
@code{unset @var{name}}, where @var{name} is an array, removes the
-entire array. A subscript of @samp{*} or @samp{@@} also removes the
entire array.
+@code{unset @var{name}[@var{subscript}]} behaves differently
+depending on the array type when given a
+subscript of @samp{*} or @samp{@@}.
+When @var{name} is an associative array, it removes the element with key
+@samp{*} or @samp{@@}.
+If @var{name} is an indexed array, @code{unset} removes all of the elements,
+but does not remove the array itself.
When using a variable name with a subscript as an argument to a command,
such as with @code{unset}, without using the word expansion syntax
@@ -7470,11 +7860,16 @@ with zero.
popd [-n] [+@var{N} | -@var{N}]
@end example
-When no arguments are given, @code{popd}
-removes the top directory from the stack and
-performs a @code{cd} to the new top directory.
+Removes elements from the directory stack.
The elements are numbered from 0 starting at the first directory
-listed with @code{dirs}; that is, @code{popd} is equivalent to @code{popd +0}.
+listed by @code{dirs};
+that is, @code{popd} is equivalent to @code{popd +0}.
+
+When no arguments are given, @code{popd}
+removes the top directory from the stack and changes to
+the new top directory.
+
+Arguments, if supplied, have the following meanings:
@table @code
@item -n
@@ -7482,22 +7877,38 @@ Suppresses the normal change of directory when removing directories
from the stack, so that only the stack is manipulated.
@item +@var{N}
Removes the @var{N}th directory (counting from the left of the
-list printed by @code{dirs}), starting with zero.
+list printed by @code{dirs}), starting with zero, from the stack.
@item -@var{N}
Removes the @var{N}th directory (counting from the right of the
-list printed by @code{dirs}), starting with zero.
+list printed by @code{dirs}), starting with zero, from the stack.
@end table
+If the top element of the directory stack is modified, and
+the @option{-n} option was not supplied, @code{popd} uses the @code{cd}
+builtin to change to the directory at the top of the stack.
+If the @code{cd} fails, @code{popd} returns a non-zero value.
+
+Otherwise, @code{popd} returns an unsuccessful status if
+an invalid option is encountered, the directory stack
+is empty, or a non-existent directory stack entry is specified.
+
+If the @code{popd} command is successful,
+Bash runs @code{dirs} to show the final contents of the directory stack,
+and the return status is 0.
+
@btindex pushd
@item pushd
@example
pushd [-n] [@var{+N} | @var{-N} | @var{dir}]
@end example
-Save the current directory on the top of the directory stack
-and then @code{cd} to @var{dir}.
-With no arguments, @code{pushd} exchanges the top two directories
-and makes the new top the current directory.
+Adds a directory to the top of the directory stack, or rotates
+the stack, making the new top of the stack the current working
+directory.
+With no arguments, @code{pushd} exchanges the top two elements
+of the directory stack.
+
+Arguments, if supplied, have the following meanings:
@table @code
@item -n
@@ -7512,19 +7923,32 @@ Brings the @var{N}th directory (counting from the right of the
list printed by @code{dirs}, starting with zero) to the top of
the list by rotating the stack.
@item @var{dir}
-Makes @var{dir} be the top of the stack, making
-it the new current directory as if it had been supplied as an argument
-to the @code{cd} builtin.
+Makes @var{dir} be the top of the stack.
@end table
+
+After the stack has been modified, if the @option{-n} option was not
+supplied, @code{pushd} uses the @code{cd} builtin to change to the
+directory at the top of the stack.
+If the @code{cd} fails, @code{pushd} returns a non-zero value.
+
+Otherwise, if no arguments are supplied, @code{pushd} returns 0 unless the
+directory stack is empty.
+When rotating the directory stack, @code{pushd} returns 0 unless
+the directory stack is empty or a non-existent directory stack element
+is specified.
+
+If the @code{pushd} command is successful,
+Bash runs @code{dirs} to show the final contents of the directory stack.
+
@end table
@node Controlling the Prompt
@section Controlling the Prompt
@cindex prompting
-Bash examines the value of the array variable @env{PROMPT_COMMANDS} just before
+Bash examines the value of the array variable @env{PROMPT_COMMAND} just before
printing each primary prompt.
-If any elements in @env{PROMPT_COMMANDS} are set and non-null, Bash
+If any elements in @env{PROMPT_COMMAND} are set and non-null, Bash
executes each value, in numeric order,
just as if it had been typed on the command line.
@@ -7573,7 +7997,8 @@ The version of Bash (e.g., 2.00)
@item \V
The release of Bash, version + patchlevel (e.g., 2.00.0)
@item \w
-The current working directory, with @env{$HOME} abbreviated with a tilde
+The value of the @code{PWD} shell variable (@env{$PWD}),
+with @env{$HOME} abbreviated with a tilde
(uses the @env{$PROMPT_DIRTRIM} variable).
@item \W
The basename of @env{$PWD}, with @env{$HOME} abbreviated with a tilde.
@@ -7658,7 +8083,7 @@ Using the @code{enable} builtin command to enable disabled shell builtins.
@item
Specifying the @option{-p} option to the @code{command} builtin.
@item
-Turning off restricted mode with @samp{set +r} or @samp{set +o restricted}.
+Turning off restricted mode with @samp{set +r} or @samp{shopt -u restricted_shell}.
@end itemize
These restrictions are enforced after any startup files are read.
@@ -7670,8 +8095,8 @@ the shell spawned to execute the script.
The restricted shell mode is only one component of a useful restricted
environment. It should be accompanied by setting @env{PATH} to a value
that allows execution of only a few verified commands (commands that
-allow shell escapes are particularly vulnerable), leaving the user
-in a non-writable directory other than his home directory after login,
+allow shell escapes are particularly vulnerable), changing the current
+directory to a non-writable directory other than @env{$HOME} after login,
not allowing the restricted shell to execute shell scripts, and cleaning
the environment of variables that cause some commands to modify their
behavior (e.g., @env{VISUAL} or @env{PAGER}).
@@ -7725,6 +8150,13 @@ Reserved words appearing in a context where reserved words are recognized
do not undergo alias expansion.
@item
+Alias expansion is performed when initially parsing a command substitution.
+The default mode generally defers it, when enabled, until the command
+substitution is executed. This means that command substitution will not
+expand aliases that are defined after the command substitution is initially
+parsed (e.g., as part of a function definition).
+
+@item
The @sc{posix} @env{PS1} and @env{PS2} expansions of @samp{!} to
the history number and @samp{!!} to @samp{!} are enabled,
and parameter expansion is performed on the values of @env{PS1} and
@@ -7818,7 +8250,10 @@ a value to a readonly variable.
@item
A non-interactive shell exits with an error status if a variable
assignment error occurs in an assignment statement preceding a special
-builtin, but not with any other simple command.
+builtin, but not with any other simple command. For any other simple
+command, the shell aborts execution of that command, and execution continues
+at the top level ("the shell shall not perform any further processing of the
+command in which the error occurred").
@item
A non-interactive shell exits with an error status if the iteration
@@ -7846,7 +8281,7 @@ While variable indirection is available, it may not be applied to the
@samp{#} and @samp{?} special parameters.
@item
-When expanding the @samp{*} special parameter in a pattern context where the
+Expanding the @samp{*} special parameter in a pattern context where the
expansion is double-quoted does not treat the @code{$*} as if it were
double-quoted.
@@ -7926,16 +8361,16 @@ variable values without quotes, unless they contain shell metacharacters,
even if the result contains nonprinting characters.
@item
-When the @code{cd} builtin is invoked in @var{logical} mode, and the pathname
+When the @code{cd} builtin is invoked in logical mode, and the pathname
constructed from @code{$PWD} and the directory name supplied as an argument
does not refer to an existing directory, @code{cd} will fail instead of
-falling back to @var{physical} mode.
+falling back to physical mode.
@item
When the @code{cd} builtin cannot change a directory because the
length of the pathname
constructed from @code{$PWD} and the directory name supplied as an argument
-exceeds @var{PATH_MAX} when all symbolic links are expanded, @code{cd} will
+exceeds @code{PATH_MAX} when all symbolic links are expanded, @code{cd} will
fail instead of attempting to use only the supplied directory name.
@item
@@ -7981,6 +8416,12 @@ If Bash receives a trapped signal while executing @code{read}, the trap
handler executes and @code{read} returns an exit status greater than 128.
@item
+The @code{printf} builtin uses @code{double} (via @code{strtod}) to convert
+arguments corresponding to floating point conversion specifiers, instead of
+@code{long double} if it's available. The @samp{L} length modifier forces
+@code{printf} to use @code{long double} if it's available.
+
+@item
Bash removes an exited background process's status from the list of such
statuses after the @code{wait} builtin is used to obtain it.
@@ -8012,8 +8453,8 @@ the @option{--enable-strict-posix-default} to @code{configure} when building
@cindex Compatibility Level
@cindex Compatibility Mode
-Bash-4.0 introduced the concept of a `shell compatibility level', specified
-as a set of options to the shopt builtin
+Bash-4.0 introduced the concept of a @dfn{shell compatibility level},
+specified as a set of options to the shopt builtin
(@code{compat31},
@code{compat32},
@code{compat40},
@@ -8029,7 +8470,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 @code{compat32} 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).
If a user enables, say, @code{compat32}, it may affect the behavior of other
compatibility levels up to and including the current compatibility level.
@@ -8129,7 +8570,7 @@ are not special within double-quoted word expansions
@item
the shell does not print a warning message if an attempt is made to
use a quoted compound assignment as an argument to declare
-(declare -a foo='(1 2)'). Later versions warn that this usage is
+(e.g., declare -a foo='(1 2)'). Later versions warn that this usage is
deprecated
@item
word expansion errors are considered non-fatal errors that cause the
@@ -8174,6 +8615,49 @@ printed an informational message to that effect, even when producing
output that can be reused as input. Bash-5.1 suppresses that message
when the @option{-l} option is supplied.
@end itemize
+
+@item compat51 (set using BASH_COMPAT)
+@itemize @bullet
+@item
+The @code{unset} builtin will unset the array @code{a} given an argument like
+@samp{a[@@]}.
+Bash-5.2 will unset an element with key @samp{@@} (associative arrays)
+or remove all the elements without unsetting the array (indexed arrays)
+@item
+arithmetic commands ( ((...)) ) and the expressions in an arithmetic for
+statement can be expanded more than once
+@item
+expressions used as arguments to arithmetic operators in the @code{[[}
+conditional command can be expanded more than once
+@item
+the expressions in substring parameter brace expansion can be
+expanded more than once
+@item
+the expressions in the $(( ... )) word expansion can be expanded
+more than once
+@item
+arithmetic expressions used as indexed array subscripts can be
+expanded more than once
+@item
+@code{test -v}, when given an argument of @samp{A[@@]}, where @var{A} is
+an existing associative array, will return true if the array has any set
+elements.
+Bash-5.2 will look for and report on a key named @samp{@@}
+@item
+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
@node Job Control
@@ -8237,9 +8721,9 @@ which, unless caught, suspends the process.
If the operating system on which Bash is running supports
job control, Bash contains facilities to use it. Typing the
-@var{suspend} character (typically @samp{^Z}, Control-Z) while a
+@dfn{suspend} character (typically @samp{^Z}, Control-Z) while a
process is running causes that process to be stopped and returns
-control to Bash. Typing the @var{delayed suspend} character
+control to Bash. Typing the @dfn{delayed suspend} character
(typically @samp{^Y}, Control-Y) causes the process to be stopped
when it attempts to read input from the terminal, and control to
be returned to Bash. The user then manipulates the state of
@@ -8250,7 +8734,7 @@ takes effect immediately, and has the additional side effect of
causing pending output and typeahead to be discarded.
There are a number of ways to refer to a job in the shell. The
-character @samp{%} introduces a job specification (@var{jobspec}).
+character @samp{%} introduces a job specification (@dfn{jobspec}).
Job number @code{n} may be referred to as @samp{%n}.
The symbols @samp{%%} and @samp{%+} refer to the shell's notion of the
@@ -8410,7 +8894,7 @@ the last-executed process substitution, if its process id is the same as
@var{$!},
and the return status is zero.
If the @option{-n} option is supplied, @code{wait} waits for a single job
-from the list of @var{pids} or @var{jobspecs} or, if no arguments are
+from the list of @var{pid}s or @var{jobspec}s or, if no arguments are
supplied, any job,
to complete and returns its exit status.
If none of the supplied arguments is a child of the shell, or if no arguments
@@ -8423,10 +8907,14 @@ The variable will be unset initially, before any assignment.
This is useful only when the @option{-n} option is supplied.
Supplying the @option{-f} option, when job control is enabled,
forces @code{wait} to wait for each @var{pid} or @var{jobspec} 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} nor @var{pid} specifies an active child process
of the shell, the return status is 127.
+If @code{wait} is interrupted by a signal, the return status will be greater
+than 128, as described above (@pxref{Signals}).
+Otherwise, the return status is the exit status
+of the last process or job waited for.
@item disown
@btindex disown
@@ -8453,8 +8941,16 @@ suspend [-f]
Suspend the execution of this shell until it receives a
@code{SIGCONT} signal.
-A login shell cannot be suspended; the @option{-f}
+A login shell,
+or a shell without job control enabled,
+cannot be suspended; the @option{-f}
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
+@option{-f}
+is not supplied.
+
@end table
When job control is not active, the @code{kill} and @code{wait}
@@ -8553,7 +9049,14 @@ Optionally, type @samp{make tests} to run the Bash test suite.
@item
Type @samp{make install} to install @code{bash} and @code{bashbug}.
-This will also install the manual pages and Info file.
+This will also install the manual pages and Info file, message translation
+files, some supplemental documentation, a number of example loadable
+builtin commands, and a set of header files for developing loadable
+builtins.
+You may need additional privileges to install @code{bash} to your
+desired destination, so @samp{sudo make install} might be required.
+More information about controlling the locations where @code{bash} and
+other files are installed is below (@pxref{Installation Names}).
@end enumerate
@@ -8561,7 +9064,7 @@ The @code{configure} shell script attempts to guess correct
values for various system-dependent variables used during
compilation. It uses those values to create a @file{Makefile} in
each directory of the package (the top directory, the
-@file{builtins}, @file{doc}, and @file{support} directories,
+@file{builtins}, @file{doc}, @file{po}, and @file{support} directories,
each directory under @file{lib}, and several others). It also creates a
@file{config.h} file containing system-dependent definitions.
Finally, it creates a shell script named @code{config.status} that you
@@ -8606,10 +9109,10 @@ to do them, and mail diffs or instructions to
considered for the next release.
The file @file{configure.ac} is used to create @code{configure}
-by a program called Autoconf. You only need
-@file{configure.ac} if you want to change it or regenerate
-@code{configure} using a newer version of Autoconf. If
-you do this, make sure you are using Autoconf version 2.50 or
+by a program called Autoconf.
+You only need @file{configure.ac} if you want to change it or regenerate
+@code{configure} using a newer version of Autoconf.
+If you do this, make sure you are using Autoconf version 2.69 or
newer.
You can remove the program binaries and object files from the
@@ -8655,7 +9158,7 @@ supply the @option{--srcdir=PATH} argument to tell @code{configure} where the
source files are. @code{configure} automatically checks for the
source code in the directory that @code{configure} is in and in `..'.
-If you have to use a @code{make} that does not supports the @code{VPATH}
+If you have to use a @code{make} that does not support the @code{VPATH}
variable, you can compile Bash for one architecture at a
time in the source code directory. After you have installed
Bash for one architecture, use @samp{make distclean} before
@@ -8680,24 +9183,55 @@ directories for other architectures.
@section Installation Names
By default, @samp{make install} will install into
-@file{/usr/local/bin}, @file{/usr/local/man}, etc. You can
-specify an installation prefix other than @file{/usr/local} by
+@file{/usr/local/bin}, @file{/usr/local/man}, etc.;
+that is, the @dfn{installation prefix} defaults to @file{/usr/local}.
+You can specify an installation prefix other than @file{/usr/local} by
giving @code{configure} the option @option{--prefix=@var{PATH}},
-or by specifying a value for the @code{DESTDIR} @samp{make}
-variable when running @samp{make install}.
+or by specifying a value for the @env{prefix} @samp{make}
+variable when running @samp{make install}
+(e.g., @samp{make install prefix=@var{PATH}}).
+The @env{prefix} variable provides a default for @env{exec_prefix} and
+other variables used when installing bash.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files.
If you give @code{configure} the option
@option{--exec-prefix=@var{PATH}}, @samp{make install} will use
@var{PATH} as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
+Documentation and other data files will still use the regular prefix.
+
+If you would like to change the installation locations for a single run,
+you can specify these variables as arguments to @code{make}:
+@samp{make install exec_prefix=/} will install @code{bash} and
+@code{bashbug} into @file{/bin} instead of the default @file{/usr/local/bin}.
+
+If you want to see the files bash will install and where it will install
+them without changing anything on your system, specify the variable
+@env{DESTDIR} as an argument to @code{make}. Its value should be the
+absolute directory path you'd like to use as the root of your sample
+installation tree. For example,
+
+@example
+mkdir /fs1/bash-install
+make install DESTDIR=/fs1/bash-install
+@end example
+
+@noindent
+will install @code{bash} into @file{/fs1/bash-install/usr/local/bin/bash},
+the documentation into directories within
+@file{/fs1/bash-install/usr/local/share}, the example loadable builtins into
+@file{/fs1/bash-install/usr/local/lib/bash}, and so on.
+You can use the usual @env{exec_prefix} and @env{prefix} variables to alter
+the directory paths beneath the value of @env{DESTDIR}.
+
+The GNU Makefile standards provide a more complete description of these
+variables and their effects.
@node Specifying the System Type
@section Specifying the System Type
There may be some features @code{configure} can not figure out
-automatically, but need to determine by the type of host Bash
+automatically, but needs to determine by the type of host Bash
will run on. Usually @code{configure} can figure that
out, but if it prints a message saying it can not guess the host
type, give it the @option{--host=TYPE} option. @samp{TYPE} can
@@ -8808,9 +9342,13 @@ the installed version of Readline in subdirectories of that directory
(include files in @var{PREFIX}/@code{include} and the library in
@var{PREFIX}/@code{lib}).
-@item --with-purify
-Define this to use the Purify memory allocation checker from Rational
-Software.
+@item --with-libintl-prefix[=@var{PREFIX}]
+Define this to make Bash link with a locally-installed version of the
+libintl library instead of the version in @file{lib/intl}.
+
+@item --with-libiconv-prefix[=@var{PREFIX}]
+Define this to make Bash look for libiconv in @var{PREFIX} instead of the
+standard system locations. There is no version included with Bash.
@item --enable-minimal-config
This produces a shell with minimal features, close to the historical
@@ -8818,7 +9356,7 @@ Bourne shell.
@end table
There are several @option{--enable-} options that alter how Bash is
-compiled and linked, rather than changing run-time features.
+compiled, linked, and installed, rather than changing run-time features.
@table @code
@item --enable-largefile
@@ -8831,17 +9369,26 @@ default, if the operating system provides large file support.
This builds a Bash binary that produces profiling information to be
processed by @code{gprof} each time it is executed.
+@item --enable-separate-helpfiles
+Use external files for the documentation displayed by the @code{help} builtin
+instead of storing the text internally.
+
@item --enable-static-link
This causes Bash to be linked statically, if @code{gcc} is being used.
This could be used to build a version to use as root's shell.
+
@end table
The @samp{minimal-config} option can be used to disable all of
the following options, but it is processed first, so individual
options may be enabled using @samp{enable-@var{feature}}.
-All of the following options except for @samp{disabled-builtins},
-@samp{direxpand-default}, and
+All of the following options except for
+@samp{alt-array-implementation},
+@samp{disabled-builtins},
+@samp{direxpand-default},
+@samp{strict-posix-default},
+and
@samp{xpg-echo-default} are
enabled by default, unless the operating system does not provide the
necessary support.
@@ -8851,6 +9398,11 @@ necessary support.
Allow alias expansion and include the @code{alias} and @code{unalias}
builtins (@pxref{Aliases}).
+@item --enable-alt-array-implementation
+This builds bash using an alternate implementation of arrays
+(@pxref{Arrays}) that provides faster access at the expense of using
+more memory (sometimes many times more, depending on how sparse an array is).
+
@item --enable-arith-for-command
Include support for the alternate form of the @code{for} command
that behaves like the C language @code{for} statement
@@ -8871,7 +9423,7 @@ See @ref{Brace Expansion}, for a complete description.
@item --enable-casemod-attributes
Include support for case-modifying attributes in the @code{declare} builtin
-and assignment statements. Variables with the @var{uppercase} attribute,
+and assignment statements. Variables with the @code{uppercase} attribute,
for example, will have their values converted to uppercase upon assignment.
@item --enable-casemod-expansion
@@ -8930,7 +9482,7 @@ Include support for the extended pattern matching features described
above under @ref{Pattern Matching}.
@item --enable-extended-glob-default
-Set the default value of the @var{extglob} shell option described
+Set the default value of the @code{extglob} shell option described
above under @ref{The Shopt Builtin} to be enabled.
@item --enable-function-import
@@ -8939,7 +9491,7 @@ instance of the shell from the environment. This option is enabled by
default.
@item --enable-glob-asciirange-default
-Set the default value of the @var{globasciiranges} shell option described
+Set the default value of the @code{globasciiranges} shell option described
above under @ref{The Shopt Builtin} to be enabled.
This controls the behavior of character ranges when used in pattern matching
bracket expressions.
@@ -8994,10 +9546,6 @@ when called as @code{rbash}, enters a restricted mode. See
Include the @code{select} compound command, which allows the generation of
simple menus (@pxref{Conditional Constructs}).
-@item --enable-separate-helpfiles
-Use external files for the documentation displayed by the @code{help} builtin
-instead of storing the text internally.
-
@item --enable-single-help-strings
Store the text displayed by the @code{help} builtin as a single string for
each help topic. This aids in translating the text to different languages.
@@ -9007,6 +9555,10 @@ literals.
@item --enable-strict-posix-default
Make Bash @sc{posix}-conformant by default (@pxref{Bash POSIX Mode}).
+@item --enable-translatable-strings
+Enable support for @code{$"@var{string}"} translatable strings
+(@pxref{Locale Translation}).
+
@item --enable-usg-echo-default
A synonym for @code{--enable-xpg-echo-default}.
@@ -9036,7 +9588,8 @@ But first, you should
make sure that it really is a bug, and that it appears in the latest
version of Bash.
The latest version of Bash is always available for FTP from
-@uref{ftp://ftp.gnu.org/pub/gnu/bash/}.
+@uref{ftp://ftp.gnu.org/pub/gnu/bash/} and from
+@uref{http://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz}.
Once you have determined that a bug actually exists, use the
@code{bashbug} command to submit a bug report.
@@ -9197,9 +9750,9 @@ which expands to the substring of @code{var}'s value of length
@item
The expansion
-@code{$@{var/[/]}@var{pattern}@code{[/}@var{replacement}@code{]@}},
+@code{$@{@var{var}/[/]}@var{pattern}@code{[/}@var{replacement}@code{]@}},
which matches @var{pattern} and replaces it with @var{replacement} in
-the value of @code{var}, is available (@pxref{Shell Parameter Expansion}).
+the value of @var{var}, is available (@pxref{Shell Parameter Expansion}).
@item
The expansion @code{$@{!@var{prefix}*@}} expansion, which expands to
@@ -9207,7 +9760,7 @@ the names of all shell variables whose names begin with @var{prefix},
is available (@pxref{Shell Parameter Expansion}).
@item
-Bash has @var{indirect} variable expansion using @code{$@{!word@}}
+Bash has indirect variable expansion using @code{$@{!word@}}
(@pxref{Shell Parameter Expansion}).
@item
@@ -9243,8 +9796,8 @@ The Bourne shell uses only @samp{!}.
@item
Bash implements the full set of @sc{posix} filename expansion operators,
-including @var{character classes}, @var{equivalence classes}, and
-@var{collating symbols} (@pxref{Filename Expansion}).
+including character classes, equivalence classes, and
+collating symbols (@pxref{Filename Expansion}).
@item
Bash implements extended pattern matching features when the @code{extglob}
@@ -9390,7 +9943,7 @@ which specifies the behavior based on the number of arguments.
@item
Bash includes the @code{caller} builtin, which displays the context of
any active subroutine call (a shell function or a script executed with
-the @code{.} or @code{source} builtins). This supports the bash
+the @code{.} or @code{source} builtins). This supports the Bash
debugger.
@item
@@ -9416,7 +9969,7 @@ The @code{ERR} trap is not inherited by shell functions unless the
The @code{trap} builtin (@pxref{Bourne Shell Builtins}) allows a
@code{RETURN} pseudo-signal specification, similar to
@code{EXIT} and @code{DEBUG}.
-Commands specified with an @code{RETURN} trap are executed before
+Commands specified with a @code{RETURN} trap are executed before
execution resumes after a shell function or a shell script executed with
@code{.} or @code{source} returns.
The @code{RETURN} trap is not inherited by shell functions unless the
diff --git a/doc/builtins.0 b/doc/builtins.0
index 614524eb..1a9b3ede 100644
--- a/doc/builtins.0
+++ b/doc/builtins.0
@@ -3,11 +3,11 @@ BASH_BUILTINS(1) General Commands Manual BASH_BUILTINS(1)
NNAAMMEE
- bash, :, ., [, alias, bg, bind, break, builtin, caller, cd, command,
- compgen, complete, compopt, continue, declare, dirs, disown, echo, en-
- able, eval, exec, exit, export, false, fc, fg, getopts, hash, help,
- history, jobs, kill, let, local, logout, mapfile, popd, printf, pushd,
- pwd, read, readonly, return, set, shift, shopt, source, suspend, test,
+ :, ., [, alias, bg, bind, break, builtin, caller, cd, command, compgen,
+ complete, compopt, continue, declare, dirs, disown, echo, enable, eval,
+ exec, exit, export, false, fc, fg, getopts, hash, help, history, jobs,
+ kill, let, local, logout, mapfile, popd, printf, pushd, pwd, read,
+ readarray, readonly, return, set, shift, shopt, source, suspend, test,
times, trap, true, type, typeset, ulimit, umask, unalias, unset, wait -
bash built-in commands, see bbaasshh(1)
@@ -32,21 +32,21 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
vironment and return the exit status of the last command exe-
cuted from _f_i_l_e_n_a_m_e. If _f_i_l_e_n_a_m_e does not contain a slash,
filenames in PPAATTHH are used to find the directory containing
- _f_i_l_e_n_a_m_e. The file searched for in PPAATTHH need not be executable.
- When bbaasshh is not in _p_o_s_i_x _m_o_d_e, the current directory is
- searched if no file is found in PPAATTHH. If the ssoouurrcceeppaatthh option
- to the sshhoopptt builtin command is turned off, the PPAATTHH is not
- searched. If any _a_r_g_u_m_e_n_t_s are supplied, they become the posi-
- tional parameters when _f_i_l_e_n_a_m_e is executed. Otherwise the po-
- sitional parameters are unchanged. If the --TT option is enabled,
- ssoouurrccee inherits any trap on DDEEBBUUGG; if it is not, any DDEEBBUUGG trap
- string is saved and restored around the call to ssoouurrccee, and
- ssoouurrccee unsets the DDEEBBUUGG trap while it executes. If --TT is not
- set, and the sourced file changes the DDEEBBUUGG trap, the new value
- is retained when ssoouurrccee completes. The return status is the
- status of the last command exited within the script (0 if no
- commands are executed), and false if _f_i_l_e_n_a_m_e is not found or
- cannot be read.
+ _f_i_l_e_n_a_m_e, but _f_i_l_e_n_a_m_e does not need to be executable. The file
+ searched for in PPAATTHH need not be executable. When bbaasshh is not
+ in _p_o_s_i_x _m_o_d_e, it searches the current directory if no file is
+ found in PPAATTHH. If the ssoouurrcceeppaatthh option to the sshhoopptt builtin
+ command is turned off, the PPAATTHH is not searched. If any _a_r_g_u_-
+ _m_e_n_t_s are supplied, they become the positional parameters when
+ _f_i_l_e_n_a_m_e is executed. Otherwise the positional parameters are
+ unchanged. If the --TT option is enabled, .. inherits any trap on
+ DDEEBBUUGG; if it is not, any DDEEBBUUGG trap string is saved and restored
+ around the call to .., and .. unsets the DDEEBBUUGG trap while it exe-
+ cutes. If --TT is not set, and the sourced file changes the DDEEBBUUGG
+ trap, the new value is retained when .. completes. The return
+ status is the status of the last command exited within the
+ script (0 if no commands are executed), and false if _f_i_l_e_n_a_m_e is
+ not found or cannot be read.
aalliiaass [--pp] [_n_a_m_e[=_v_a_l_u_e] ...]
AAlliiaass with no arguments or with the --pp option prints the list of
@@ -73,29 +73,31 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
bbiinndd [--mm _k_e_y_m_a_p] --xx _k_e_y_s_e_q:_s_h_e_l_l_-_c_o_m_m_a_n_d
bbiinndd [--mm _k_e_y_m_a_p] _k_e_y_s_e_q:_f_u_n_c_t_i_o_n_-_n_a_m_e
bbiinndd [--mm _k_e_y_m_a_p] _k_e_y_s_e_q:_r_e_a_d_l_i_n_e_-_c_o_m_m_a_n_d
+ bbiinndd _r_e_a_d_l_i_n_e_-_c_o_m_m_a_n_d_-_l_i_n_e
Display current rreeaaddlliinnee key and function bindings, bind a key
sequence to a rreeaaddlliinnee function or macro, or set a rreeaaddlliinnee
variable. Each non-option argument is a command as it would ap-
- pear in _._i_n_p_u_t_r_c, but each binding or command must be passed as
- a separate argument; e.g., '"\C-x\C-r": re-read-init-file'. Op-
- tions, if supplied, have the following meanings:
+ pear in a rreeaaddlliinnee initialization file such as _._i_n_p_u_t_r_c, but
+ each binding or command must be passed as a separate argument;
+ e.g., '"\C-x\C-r": re-read-init-file'. Options, if supplied,
+ have the following meanings:
--mm _k_e_y_m_a_p
Use _k_e_y_m_a_p as the keymap to be affected by the subsequent
bindings. Acceptable _k_e_y_m_a_p names are _e_m_a_c_s_, _e_m_a_c_s_-_s_t_a_n_-
- _d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_m_o_v_e_, _v_i_-_c_o_m_m_a_n_d,
- and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d (_v_i_-_m_o_v_e
- is also a synonym); _e_m_a_c_s is equivalent to _e_m_a_c_s_-_s_t_a_n_-
+ _d_a_r_d_, _e_m_a_c_s_-_m_e_t_a_, _e_m_a_c_s_-_c_t_l_x_, _v_i_, _v_i_-_m_o_v_e_, _v_i_-_c_o_m_m_a_n_d,
+ and _v_i_-_i_n_s_e_r_t. _v_i is equivalent to _v_i_-_c_o_m_m_a_n_d (_v_i_-_m_o_v_e
+ is also a synonym); _e_m_a_c_s is equivalent to _e_m_a_c_s_-_s_t_a_n_-
_d_a_r_d.
--ll List the names of all rreeaaddlliinnee functions.
- --pp Display rreeaaddlliinnee function names and bindings in such a
+ --pp Display rreeaaddlliinnee function names and bindings in such a
way that they can be re-read.
--PP List current rreeaaddlliinnee function names and bindings.
- --ss Display rreeaaddlliinnee key sequences bound to macros and the
- strings they output in such a way that they can be re-
+ --ss Display rreeaaddlliinnee key sequences bound to macros and the
+ strings they output in such a way that they can be re-
read.
- --SS Display rreeaaddlliinnee key sequences bound to macros and the
+ --SS Display rreeaaddlliinnee key sequences bound to macros and the
strings they output.
- --vv Display rreeaaddlliinnee variable names and values in such a way
+ --vv Display rreeaaddlliinnee variable names and values in such a way
that they can be re-read.
--VV List current rreeaaddlliinnee variable names and values.
--ff _f_i_l_e_n_a_m_e
@@ -108,14 +110,17 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
Remove any current binding for _k_e_y_s_e_q.
--xx _k_e_y_s_e_q::_s_h_e_l_l_-_c_o_m_m_a_n_d
Cause _s_h_e_l_l_-_c_o_m_m_a_n_d to be executed whenever _k_e_y_s_e_q is en-
- tered. When _s_h_e_l_l_-_c_o_m_m_a_n_d is executed, the shell sets
- the RREEAADDLLIINNEE__LLIINNEE variable to the contents of the rreeaadd--
+ tered. When _s_h_e_l_l_-_c_o_m_m_a_n_d is executed, the shell sets
+ the RREEAADDLLIINNEE__LLIINNEE variable to the contents of the rreeaadd--
lliinnee line buffer and the RREEAADDLLIINNEE__PPOOIINNTT and RREEAADDLLIINNEE__MMAARRKK
- variables to the current location of the insertion point
- and the saved insertion point (the mark), respectively.
- If the executed command changes the value of any of RREEAADD--
- LLIINNEE__LLIINNEE, RREEAADDLLIINNEE__PPOOIINNTT, or RREEAADDLLIINNEE__MMAARRKK, those new
- values will be reflected in the editing state.
+ variables to the current location of the insertion point
+ and the saved insertion point (the mark), respectively.
+ The shell assigns any numeric argument the user supplied
+ to the RREEAADDLLIINNEE__AARRGGUUMMEENNTT variable. If there was no argu-
+ ment, that variable is not set. If the executed command
+ changes the value of any of RREEAADDLLIINNEE__LLIINNEE, RREEAADD--
+ LLIINNEE__PPOOIINNTT, or RREEAADDLLIINNEE__MMAARRKK, those new values will be
+ reflected in the editing state.
--XX List all key sequences bound to shell commands and the
associated commands in a format that can be reused as in-
put.
@@ -153,92 +158,94 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
ccdd [--LL|[--PP [--ee]] [-@]] [_d_i_r]
Change the current directory to _d_i_r. if _d_i_r is not supplied,
- the value of the HHOOMMEE shell variable is the default. Any addi-
- tional arguments following _d_i_r are ignored. The variable CCDDPPAATTHH
- defines the search path for the directory containing _d_i_r: each
- directory name in CCDDPPAATTHH is searched for _d_i_r. Alternative di-
- rectory names in CCDDPPAATTHH are separated by a colon (:). A null
- directory name in CCDDPPAATTHH is the same as the current directory,
- i.e., ``..''. If _d_i_r begins with a slash (/), then CCDDPPAATTHH is not
- used. The --PP option causes ccdd to use the physical directory
- structure by resolving symbolic links while traversing _d_i_r and
- before processing instances of _._. in _d_i_r (see also the --PP option
- to the sseett builtin command); the --LL option forces symbolic links
- to be followed by resolving the link after processing instances
- of _._. in _d_i_r. If _._. appears in _d_i_r, it is processed by removing
- the immediately previous pathname component from _d_i_r, back to a
- slash or the beginning of _d_i_r. If the --ee option is supplied
- with --PP, and the current working directory cannot be success-
- fully determined after a successful directory change, ccdd will
- return an unsuccessful status. On systems that support it, the
- --@@ option presents the extended attributes associated with a
- file as a directory. An argument of -- is converted to $$OOLLDDPPWWDD
- before the directory change is attempted. If a non-empty direc-
- tory name from CCDDPPAATTHH is used, or if -- is the first argument,
- and the directory change is successful, the absolute pathname of
- the new working directory is written to the standard output.
- The return value is true if the directory was successfully
- changed; false otherwise.
+ the value of the HHOOMMEE shell variable is the default. The vari-
+ able CCDDPPAATTHH defines the search path for the directory containing
+ _d_i_r: each directory name in CCDDPPAATTHH is searched for _d_i_r. Alter-
+ native directory names in CCDDPPAATTHH are separated by a colon (:).
+ A null directory name in CCDDPPAATTHH is the same as the current di-
+ rectory, i.e., ``..''. If _d_i_r begins with a slash (/), then CCDD--
+ PPAATTHH is not used. The --PP option causes ccdd to use the physical
+ directory structure by resolving symbolic links while traversing
+ _d_i_r and before processing instances of _._. in _d_i_r (see also the
+ --PP option to the sseett builtin command); the --LL option forces sym-
+ bolic links to be followed by resolving the link after process-
+ ing instances of _._. in _d_i_r. If _._. appears in _d_i_r, it is pro-
+ cessed by removing the immediately previous pathname component
+ from _d_i_r, back to a slash or the beginning of _d_i_r. If the --ee
+ option is supplied with --PP, and the current working directory
+ cannot be successfully determined after a successful directory
+ change, ccdd will return an unsuccessful status. On systems that
+ support it, the --@@ option presents the extended attributes asso-
+ ciated with a file as a directory. An argument of -- is con-
+ verted to $$OOLLDDPPWWDD before the directory change is attempted. If
+ a non-empty directory name from CCDDPPAATTHH is used, or if -- is the
+ first argument, and the directory change is successful, the ab-
+ solute pathname of the new working directory is written to the
+ standard output. If the directory change is successful, ccdd sets
+ the value of the PPWWDD environment variable to the new directory
+ name, and sets the OOLLDDPPWWDD environment variable to the value of
+ the current working directory before the change. The return
+ value is true if the directory was successfully changed; false
+ otherwise.
ccoommmmaanndd [--ppVVvv] _c_o_m_m_a_n_d [_a_r_g ...]
- Run _c_o_m_m_a_n_d with _a_r_g_s suppressing the normal shell function
+ Run _c_o_m_m_a_n_d with _a_r_g_s suppressing the normal shell function
lookup. Only builtin commands or commands found in the PPAATTHH are
- executed. If the --pp option is given, the search for _c_o_m_m_a_n_d is
- performed using a default value for PPAATTHH that is guaranteed to
- find all of the standard utilities. If either the --VV or --vv op-
- tion is supplied, a description of _c_o_m_m_a_n_d is printed. The --vv
- option causes a single word indicating the command or filename
+ executed. If the --pp option is given, the search for _c_o_m_m_a_n_d is
+ performed using a default value for PPAATTHH that is guaranteed to
+ find all of the standard utilities. If either the --VV or --vv op-
+ tion is supplied, a description of _c_o_m_m_a_n_d is printed. The --vv
+ option causes a single word indicating the command or filename
used to invoke _c_o_m_m_a_n_d to be displayed; the --VV option produces a
- more verbose description. If the --VV or --vv option is supplied,
- the exit status is 0 if _c_o_m_m_a_n_d was found, and 1 if not. If
+ more verbose description. If the --VV or --vv option is supplied,
+ the exit status is 0 if _c_o_m_m_a_n_d was found, and 1 if not. If
neither option is supplied and an error occurred or _c_o_m_m_a_n_d can-
- not be found, the exit status is 127. Otherwise, the exit sta-
+ not be found, the exit status is 127. Otherwise, the exit sta-
tus of the ccoommmmaanndd builtin is the exit status of _c_o_m_m_a_n_d.
ccoommppggeenn [_o_p_t_i_o_n] [_w_o_r_d]
- Generate possible completion matches for _w_o_r_d according to the
- _o_p_t_i_o_ns, which may be any option accepted by the ccoommpplleettee
- builtin with the exception of --pp and --rr, and write the matches
- to the standard output. When using the --FF or --CC options, the
- various shell variables set by the programmable completion fa-
+ Generate possible completion matches for _w_o_r_d according to the
+ _o_p_t_i_o_ns, which may be any option accepted by the ccoommpplleettee
+ builtin with the exception of --pp and --rr, and write the matches
+ to the standard output. When using the --FF or --CC options, the
+ various shell variables set by the programmable completion fa-
cilities, while available, will not have useful values.
The matches will be generated in the same way as if the program-
mable completion code had generated them directly from a comple-
- tion specification with the same flags. If _w_o_r_d is specified,
+ tion specification with the same flags. If _w_o_r_d is specified,
only those completions matching _w_o_r_d will be displayed.
- The return value is true unless an invalid option is supplied,
+ The return value is true unless an invalid option is supplied,
or no matches were generated.
- ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--DDEEII] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_-
+ ccoommpplleettee [--aabbccddeeffggjjkkssuuvv] [--oo _c_o_m_p_-_o_p_t_i_o_n] [--DDEEII] [--AA _a_c_t_i_o_n] [--GG _g_l_o_b_-
_p_a_t] [--WW _w_o_r_d_l_i_s_t]
- [--FF _f_u_n_c_t_i_o_n] [--CC _c_o_m_m_a_n_d] [--XX _f_i_l_t_e_r_p_a_t] [--PP _p_r_e_f_i_x] [--SS _s_u_f_-
+ [--FF _f_u_n_c_t_i_o_n] [--CC _c_o_m_m_a_n_d] [--XX _f_i_l_t_e_r_p_a_t] [--PP _p_r_e_f_i_x] [--SS _s_u_f_-
_f_i_x] _n_a_m_e [_n_a_m_e _._._.]
ccoommpplleettee --pprr [--DDEEII] [_n_a_m_e ...]
- Specify how arguments to each _n_a_m_e should be completed. If the
- --pp option is supplied, or if no options are supplied, existing
- completion specifications are printed in a way that allows them
+ Specify how arguments to each _n_a_m_e should be completed. If the
+ --pp option is supplied, or if no options are supplied, existing
+ completion specifications are printed in a way that allows them
to be reused as input. The --rr option removes a completion spec-
- ification for each _n_a_m_e, or, if no _n_a_m_es are supplied, all com-
+ ification for each _n_a_m_e, or, if no _n_a_m_es are supplied, all com-
pletion specifications. The --DD option indicates that other sup-
- plied options and actions should apply to the ``default'' com-
- mand completion; that is, completion attempted on a command for
- which no completion has previously been defined. The --EE option
- indicates that other supplied options and actions should apply
- to ``empty'' command completion; that is, completion attempted
- on a blank line. The --II option indicates that other supplied
- options and actions should apply to completion on the initial
- non-assignment word on the line, or after a command delimiter
- such as ;; or ||, which is usually command name completion. If
- multiple options are supplied, the --DD option takes precedence
+ plied options and actions should apply to the ``default'' com-
+ mand completion; that is, completion attempted on a command for
+ which no completion has previously been defined. The --EE option
+ indicates that other supplied options and actions should apply
+ to ``empty'' command completion; that is, completion attempted
+ on a blank line. The --II option indicates that other supplied
+ options and actions should apply to completion on the initial
+ non-assignment word on the line, or after a command delimiter
+ such as ;; or ||, which is usually command name completion. If
+ multiple options are supplied, the --DD option takes precedence
over --EE, and both take precedence over --II. If any of --DD, --EE, or
- --II are supplied, any other _n_a_m_e arguments are ignored; these
+ --II are supplied, any other _n_a_m_e arguments are ignored; these
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.
+ The process of applying these completion specifications when
+ 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
@@ -320,196 +327,197 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
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.
+ 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
+ The shell function _f_u_n_c_t_i_o_n is executed in the current
+ shell environment. When the function is executed, the
first argument ($$11) is the name of the command whose ar-
guments are being completed, the second argument ($$22) is
the word being completed, and the third argument ($$33) is
- the word preceding the word being completed on the cur-
- rent command line. When it finishes, the possible com-
- pletions are retrieved from the value of the CCOOMMPPRREEPPLLYY
+ the word preceding the word being completed on the cur-
+ rent command line. When it finishes, the possible com-
+ pletions are retrieved from the value of the CCOOMMPPRREEPPLLYY
array variable.
--GG _g_l_o_b_p_a_t
- The pathname expansion pattern _g_l_o_b_p_a_t is expanded to
+ The pathname expansion pattern _g_l_o_b_p_a_t is expanded to
generate the possible completions.
--PP _p_r_e_f_i_x
- _p_r_e_f_i_x is added at the beginning of each possible com-
+ _p_r_e_f_i_x is added at the beginning of each possible com-
pletion after all other options have been applied.
--SS _s_u_f_f_i_x
_s_u_f_f_i_x is appended to each possible completion after all
other options have been applied.
--WW _w_o_r_d_l_i_s_t
- The _w_o_r_d_l_i_s_t is split using the characters in the IIFFSS
- special variable as delimiters, and each resultant word
- is expanded. Shell quoting is honored within _w_o_r_d_l_i_s_t,
+ The _w_o_r_d_l_i_s_t is split using the characters in the IIFFSS
+ special variable as delimiters, and each resultant word
+ is expanded. Shell quoting is honored within _w_o_r_d_l_i_s_t,
in order to provide a mechanism for the words to contain
- shell metacharacters or characters in the value of IIFFSS.
- The possible completions are the members of the resul-
+ shell metacharacters or characters in the value of IIFFSS.
+ The possible completions are the members of the resul-
tant list which match the word being completed.
--XX _f_i_l_t_e_r_p_a_t
- _f_i_l_t_e_r_p_a_t is a pattern as used for pathname expansion.
+ _f_i_l_t_e_r_p_a_t is a pattern as used for pathname expansion.
It is applied to the list of possible completions gener-
- ated by the preceding options and arguments, and each
- completion matching _f_i_l_t_e_r_p_a_t is removed from the list.
- A leading !! in _f_i_l_t_e_r_p_a_t negates the pattern; in this
+ ated by the preceding options and arguments, and each
+ completion matching _f_i_l_t_e_r_p_a_t is removed from the list.
+ A leading !! in _f_i_l_t_e_r_p_a_t negates the pattern; in this
case, any completion not matching _f_i_l_t_e_r_p_a_t is removed.
- The return value is true unless an invalid option is supplied,
- an option other than --pp or --rr is supplied without a _n_a_m_e argu-
- ment, an attempt is made to remove a completion specification
+ The return value is true unless an invalid option is supplied,
+ an option other than --pp or --rr is supplied without a _n_a_m_e argu-
+ ment, an attempt is made to remove a completion specification
for a _n_a_m_e for which no specification exists, or an error occurs
adding a completion specification.
ccoommppoopptt [--oo _o_p_t_i_o_n] [--DDEEII] [++oo _o_p_t_i_o_n] [_n_a_m_e]
- Modify completion options for each _n_a_m_e according to the _o_p_-
+ Modify completion options for each _n_a_m_e according to the _o_p_-
_t_i_o_ns, or for the currently-executing completion if no _n_a_m_es are
- supplied. If no _o_p_t_i_o_ns are given, display the completion op-
- tions for each _n_a_m_e or the current completion. The possible
- values of _o_p_t_i_o_n are those valid for the ccoommpplleettee builtin de-
- scribed above. The --DD option indicates that other supplied op-
- tions should apply to the ``default'' command completion; that
- is, completion attempted on a command for which no completion
+ supplied. If no _o_p_t_i_o_ns are given, display the completion op-
+ tions for each _n_a_m_e or the current completion. The possible
+ values of _o_p_t_i_o_n are those valid for the ccoommpplleettee builtin de-
+ scribed above. The --DD option indicates that other supplied op-
+ tions should apply to the ``default'' command completion; that
+ is, completion attempted on a command for which no completion
has previously been defined. The --EE option indicates that other
- supplied options should apply to ``empty'' command completion;
- that is, completion attempted on a blank line. The --II option
+ supplied options should apply to ``empty'' command completion;
+ that is, completion attempted on a blank line. The --II option
indicates that other supplied options should apply to completion
- on the initial non-assignment word on the line, or after a com-
- mand delimiter such as ;; or ||, which is usually command name
+ on the initial non-assignment word on the line, or after a com-
+ mand delimiter such as ;; or ||, which is usually command name
completion.
- The return value is true unless an invalid option is supplied,
+ The return value is true unless an invalid option is supplied,
an attempt is made to modify the options for a _n_a_m_e for which no
completion specification exists, or an output error occurs.
ccoonnttiinnuuee [_n]
Resume the next iteration of the enclosing ffoorr, wwhhiillee, uunnttiill, or
- sseelleecctt loop. If _n is specified, resume at the _nth enclosing
- loop. _n must be >= 1. If _n is greater than the number of en-
- closing loops, the last enclosing loop (the ``top-level'' loop)
- is resumed. The return value is 0 unless _n is not greater than
+ sseelleecctt loop. If _n is specified, resume at the _nth enclosing
+ loop. _n must be >= 1. If _n is greater than the number of en-
+ closing loops, the last enclosing loop (the ``top-level'' loop)
+ is resumed. The return value is 0 unless _n is not greater than
or equal to 1.
ddeeccllaarree [--aaAAffFFggiiIIllnnrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...]
ttyyppeesseett [--aaAAffFFggiiIIllnnrrttuuxx] [--pp] [_n_a_m_e[=_v_a_l_u_e] ...]
- Declare variables and/or give them attributes. If no _n_a_m_es are
- given then display the values of variables. The --pp option will
+ Declare variables and/or give them attributes. If no _n_a_m_es are
+ given then display the values of variables. The --pp option will
display the attributes and values of each _n_a_m_e. When --pp is used
- with _n_a_m_e arguments, additional options, other than --ff and --FF,
- are ignored. When --pp is supplied without _n_a_m_e arguments, it
- will display the attributes and values of all variables having
+ with _n_a_m_e arguments, additional options, other than --ff and --FF,
+ are ignored. When --pp is supplied without _n_a_m_e arguments, it
+ will display the attributes and values of all variables having
the attributes specified by the additional options. If no other
- options are supplied with --pp, ddeeccllaarree will display the at-
- tributes and values of all shell variables. The --ff option will
+ options are supplied with --pp, ddeeccllaarree will display the at-
+ tributes and values of all shell variables. The --ff option will
restrict the display to shell functions. The --FF option inhibits
- the display of function definitions; only the function name and
+ the display of function definitions; only the function name and
attributes are printed. If the eexxttddeebbuugg shell option is enabled
- using sshhoopptt, the source file name and line number where each
- _n_a_m_e is defined are displayed as well. The --FF option implies
+ using sshhoopptt, the source file name and line number where each
+ _n_a_m_e is defined are displayed as well. The --FF option implies
--ff. The --gg option forces variables to be created or modified at
the global scope, even when ddeeccllaarree is executed in a shell func-
- tion. It is ignored in all other cases. The --II option causes
- local variables to inherit the attributes (except the _n_a_m_e_r_e_f
+ tion. It is ignored in all other cases. The --II option causes
+ local variables to inherit the attributes (except the _n_a_m_e_r_e_f
attribute) and value of any existing variable with the same _n_a_m_e
- at a surrounding scope. If there is no existing variable, the
+ at a surrounding scope. If there is no existing variable, the
local variable is initially unset. The following options can be
- used to restrict output to variables with the specified attri-
+ 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.
- --ll When the variable is assigned a value, all upper-case
- characters are converted to lower-case. The upper-case
+ 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.
- --nn Give each _n_a_m_e the _n_a_m_e_r_e_f attribute, making it a name
- reference to another variable. That other variable is
- defined by the value of _n_a_m_e. All references, assign-
- ments, and attribute modifications to _n_a_m_e, except those
- using or changing the --nn attribute itself, are performed
- on the variable referenced by _n_a_m_e's value. The nameref
+ --nn Give each _n_a_m_e the _n_a_m_e_r_e_f attribute, making it a name
+ reference to another variable. That other variable is
+ defined by the value of _n_a_m_e. All references, assign-
+ ments, and attribute modifications to _n_a_m_e, except those
+ using or changing the --nn attribute itself, are performed
+ on the variable referenced by _n_a_m_e's value. The nameref
attribute cannot be applied to array variables.
--rr Make _n_a_m_es readonly. These names cannot then be assigned
values by subsequent assignment statements or unset.
--tt Give each _n_a_m_e the _t_r_a_c_e attribute. Traced functions in-
- herit the DDEEBBUUGG and RREETTUURRNN traps from the calling shell.
+ herit the DDEEBBUUGG and RREETTUURRNN traps from the calling shell.
The trace attribute has no special meaning for variables.
- --uu When the variable is assigned a value, all lower-case
- characters are converted to upper-case. The lower-case
+ --uu When the variable is assigned a value, all lower-case
+ characters are converted to upper-case. The lower-case
attribute is disabled.
- --xx Mark _n_a_m_es for export to subsequent commands via the en-
+ --xx Mark _n_a_m_es for export to subsequent commands via the en-
vironment.
- Using `+' instead of `-' turns off the attribute instead, with
- the exceptions that ++aa and ++AA may not be used to destroy array
- variables and ++rr will not remove the readonly attribute. When
+ Using `+' instead of `-' turns off the attribute instead, with
+ the exceptions that ++aa and ++AA may not be used to destroy array
+ variables and ++rr will not remove the readonly attribute. When
used in a function, ddeeccllaarree and ttyyppeesseett make each _n_a_m_e local, as
- with the llooccaall command, unless the --gg option is supplied. If a
- variable name is followed by =_v_a_l_u_e, the value of the variable
- is set to _v_a_l_u_e. When using --aa or --AA and the compound assign-
- ment syntax to create array variables, additional attributes do
- not take effect until subsequent assignments. The return value
+ with the llooccaall command, unless the --gg option is supplied. If a
+ variable name is followed by =_v_a_l_u_e, the value of the variable
+ is set to _v_a_l_u_e. When using --aa or --AA and the compound assign-
+ ment syntax to create array variables, additional attributes do
+ not take effect until subsequent assignments. The return value
is 0 unless an invalid option is encountered, an attempt is made
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-
- rectories. The default display is on a single line with direc-
- tory names separated by spaces. Directories are added to the
- list with the ppuusshhdd command; the ppooppdd command removes entries
+ Without options, displays the list of currently remembered di-
+ rectories. The default display is on a single line with direc-
+ tory names separated by spaces. Directories are added to the
+ list with the ppuusshhdd command; the ppooppdd command removes entries
from the list. The current directory is always the first direc-
tory in the stack.
- --cc Clears the directory stack by deleting all of the en-
+ --cc Clears the directory stack by deleting all of the en-
tries.
- --ll Produces a listing using full pathnames; the default
+ --ll Produces a listing using full pathnames; the default
listing format uses a tilde to denote the home directory.
--pp Print the directory stack with one entry per line.
- --vv Print the directory stack with one entry per line, pre-
+ --vv Print the directory stack with one entry per line, pre-
fixing each entry with its index in the stack.
++_n Displays the _nth entry counting from the left of the list
shown by ddiirrss when invoked without options, starting with
zero.
- --_n Displays the _nth entry counting from the right of the
+ --_n Displays the _nth entry counting from the right of the
list shown by ddiirrss when invoked without options, starting
with zero.
- The return value is 0 unless an invalid option is supplied or _n
+ The return value is 0 unless an invalid option is supplied or _n
indexes beyond the end of the directory stack.
ddiissoowwnn [--aarr] [--hh] [_j_o_b_s_p_e_c ... | _p_i_d ... ]
- Without options, remove each _j_o_b_s_p_e_c from the table of active
- jobs. If _j_o_b_s_p_e_c is not present, and neither the --aa nor the --rr
- option is supplied, the _c_u_r_r_e_n_t _j_o_b is used. If the --hh option
- is given, each _j_o_b_s_p_e_c is not removed from the table, but is
- marked so that SSIIGGHHUUPP is not sent to the job if the shell re-
+ Without options, remove each _j_o_b_s_p_e_c from the table of active
+ jobs. If _j_o_b_s_p_e_c is not present, and neither the --aa nor the --rr
+ option is supplied, the _c_u_r_r_e_n_t _j_o_b is used. If the --hh option
+ is given, each _j_o_b_s_p_e_c is not removed from the table, but is
+ marked so that SSIIGGHHUUPP is not sent to the job if the shell re-
ceives a SSIIGGHHUUPP. If no _j_o_b_s_p_e_c is supplied, the --aa option means
- to remove or mark all jobs; the --rr option without a _j_o_b_s_p_e_c ar-
+ to remove or mark all jobs; the --rr option without a _j_o_b_s_p_e_c ar-
gument restricts operation to running jobs. The return value is
0 unless a _j_o_b_s_p_e_c does not specify a valid job.
eecchhoo [--nneeEE] [_a_r_g ...]
- Output the _a_r_gs, separated by spaces, followed by a newline.
- The return status is 0 unless a write error occurs. If --nn is
+ Output the _a_r_gs, separated by spaces, followed by a newline.
+ The return status is 0 unless a write error occurs. If --nn is
specified, the trailing newline is suppressed. If the --ee option
- is given, interpretation of the following backslash-escaped
- characters is enabled. The --EE option disables the interpreta-
- tion of these escape characters, even on systems where they are
- interpreted by default. The xxppgg__eecchhoo shell option may be used
- to dynamically determine whether or not eecchhoo expands these es-
- cape characters by default. eecchhoo does not interpret ---- to mean
- the end of options. eecchhoo interprets the following escape se-
+ is given, interpretation of the following backslash-escaped
+ characters is enabled. The --EE option disables the interpreta-
+ tion of these escape characters, even on systems where they are
+ interpreted by default. The xxppgg__eecchhoo shell option may be used
+ to dynamically determine whether or not eecchhoo expands these es-
+ cape characters by default. eecchhoo does not interpret ---- to mean
+ the end of options. eecchhoo interprets the following escape se-
quences:
\\aa alert (bell)
\\bb backspace
@@ -522,194 +530,200 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
\\tt horizontal tab
\\vv vertical tab
\\\\ backslash
- \\00_n_n_n the eight-bit character whose value is the octal value
+ \\00_n_n_n the eight-bit character whose value is the octal value
_n_n_n (zero to three octal digits)
- \\xx_H_H the eight-bit character whose value is the hexadecimal
+ \\xx_H_H the eight-bit character whose value is the hexadecimal
value _H_H (one or two hex digits)
- \\uu_H_H_H_H the Unicode (ISO/IEC 10646) character whose value is the
+ \\uu_H_H_H_H the Unicode (ISO/IEC 10646) character whose value is the
hexadecimal value _H_H_H_H (one to four hex digits)
\\UU_H_H_H_H_H_H_H_H
- the Unicode (ISO/IEC 10646) character whose value is the
+ the Unicode (ISO/IEC 10646) character whose value is the
hexadecimal value _H_H_H_H_H_H_H_H (one to eight hex digits)
eennaabbllee [--aa] [--ddnnppss] [--ff _f_i_l_e_n_a_m_e] [_n_a_m_e ...]
- Enable and disable builtin shell commands. Disabling a builtin
+ Enable and disable builtin shell commands. Disabling a builtin
allows a disk command which has the same name as a shell builtin
- to be executed without specifying a full pathname, even though
- the shell normally searches for builtins before disk commands.
- If --nn is used, each _n_a_m_e is disabled; otherwise, _n_a_m_e_s are en-
- abled. For example, to use the tteesstt binary found via the PPAATTHH
- instead of the shell builtin version, run ``enable -n test''.
- The --ff option means to load the new builtin command _n_a_m_e from
+ to be executed without specifying a full pathname, even though
+ the shell normally searches for builtins before disk commands.
+ If --nn is used, each _n_a_m_e is disabled; otherwise, _n_a_m_e_s are en-
+ abled. For example, to use the tteesstt binary found via the PPAATTHH
+ instead of the shell builtin version, run ``enable -n test''.
+ The --ff option means to load the new builtin command _n_a_m_e from
shared object _f_i_l_e_n_a_m_e, on systems that support dynamic loading.
- The --dd option will delete a builtin previously loaded with --ff.
- If no _n_a_m_e arguments are given, or if the --pp option is supplied,
- a list of shell builtins is printed. With no other option argu-
- ments, the list consists of all enabled shell builtins. If --nn
- is supplied, only disabled builtins are printed. If --aa is sup-
- plied, the list printed includes all builtins, with an indica-
- tion of whether or not each is enabled. If --ss is supplied, the
- output is restricted to the POSIX _s_p_e_c_i_a_l builtins. The return
- value is 0 unless a _n_a_m_e is not a shell builtin or there is an
- error loading a new builtin from a shared object.
+ Bash will use the value of the BBAASSHH__LLOOAADDAABBLLEESS__PPAATTHH variable as a
+ colon-separated list of directories in which to search for _f_i_l_e_-
+ _n_a_m_e. The default is system-dependent. The --dd option will
+ delete a builtin previously loaded with --ff. If no _n_a_m_e argu-
+ ments are given, or if the --pp option is supplied, a list of
+ shell builtins is printed. With no other option arguments, the
+ list consists of all enabled shell builtins. If --nn is supplied,
+ only disabled builtins are printed. If --aa is supplied, the list
+ printed includes all builtins, with an indication of whether or
+ not each is enabled. If --ss is supplied, the output is re-
+ stricted to the POSIX _s_p_e_c_i_a_l builtins. If no options are sup-
+ plied and a _n_a_m_e is not a shell builtin, eennaabbllee will attempt to
+ load _n_a_m_e from a shared object named _n_a_m_e, as if the command
+ were ``enable -f _n_a_m_e _n_a_m_e . The return value is 0 unless a
+ _n_a_m_e is not a shell builtin or there is an error loading a new
+ builtin from a shared object.
eevvaall [_a_r_g ...]
- The _a_r_gs are read and concatenated together into a single com-
- mand. This command is then read and executed by the shell, and
- its exit status is returned as the value of eevvaall. If there are
+ The _a_r_gs are read and concatenated together into a single com-
+ mand. This command is then read and executed by the shell, and
+ its exit status is returned as the value of eevvaall. If there are
no _a_r_g_s, or only null arguments, eevvaall returns 0.
eexxeecc [--ccll] [--aa _n_a_m_e] [_c_o_m_m_a_n_d [_a_r_g_u_m_e_n_t_s]]
- If _c_o_m_m_a_n_d is specified, it replaces the shell. No new process
- is created. The _a_r_g_u_m_e_n_t_s become the arguments to _c_o_m_m_a_n_d. If
+ If _c_o_m_m_a_n_d is specified, it replaces the shell. No new process
+ is created. The _a_r_g_u_m_e_n_t_s become the arguments to _c_o_m_m_a_n_d. If
the --ll option is supplied, the shell places a dash at the begin-
ning of the zeroth argument passed to _c_o_m_m_a_n_d. This is what _l_o_-
- _g_i_n(1) does. The --cc option causes _c_o_m_m_a_n_d to be executed with
- an empty environment. If --aa is supplied, the shell passes _n_a_m_e
+ _g_i_n(1) does. The --cc option causes _c_o_m_m_a_n_d to be executed with
+ an empty environment. If --aa is supplied, the shell passes _n_a_m_e
as the zeroth argument to the executed command. If _c_o_m_m_a_n_d can-
- not be executed for some reason, a non-interactive shell exits,
- unless the eexxeeccffaaiill shell option is enabled. In that case, it
- returns failure. An interactive shell returns failure if the
- file cannot be executed. A subshell exits unconditionally if
- eexxeecc fails. If _c_o_m_m_a_n_d is not specified, any redirections take
- effect in the current shell, and the return status is 0. If
+ not be executed for some reason, a non-interactive shell exits,
+ unless the eexxeeccffaaiill shell option is enabled. In that case, it
+ returns failure. An interactive shell returns failure if the
+ file cannot be executed. A subshell exits unconditionally if
+ eexxeecc fails. If _c_o_m_m_a_n_d is not specified, any redirections take
+ effect in the current shell, and the return status is 0. If
there is a redirection error, the return status is 1.
eexxiitt [_n]
- Cause the shell to exit with a status of _n. If _n is omitted,
+ Cause the shell to exit with a status of _n. If _n is omitted,
the exit status is that of the last command executed. A trap on
EEXXIITT is executed before the shell terminates.
eexxppoorrtt [--ffnn] [_n_a_m_e[=_w_o_r_d]] ...
eexxppoorrtt --pp
- The supplied _n_a_m_e_s are marked for automatic export to the envi-
- ronment of subsequently executed commands. If the --ff option is
- given, the _n_a_m_e_s refer to functions. If no _n_a_m_e_s are given, or
- if the --pp option is supplied, a list of names of all exported
- variables is printed. The --nn option causes the export property
+ The supplied _n_a_m_e_s are marked for automatic export to the envi-
+ ronment of subsequently executed commands. If the --ff option is
+ given, the _n_a_m_e_s refer to functions. If no _n_a_m_e_s are given, or
+ if the --pp option is supplied, a list of names of all exported
+ variables is printed. The --nn option causes the export property
to be removed from each _n_a_m_e. If a variable name is followed by
=_w_o_r_d, the value of the variable is set to _w_o_r_d. eexxppoorrtt returns
an exit status of 0 unless an invalid option is encountered, one
- of the _n_a_m_e_s is not a valid shell variable name, or --ff is sup-
+ of the _n_a_m_e_s is not a valid shell variable name, or --ff is sup-
plied with a _n_a_m_e that is not a function.
ffcc [--ee _e_n_a_m_e] [--llnnrr] [_f_i_r_s_t] [_l_a_s_t]
ffcc --ss [_p_a_t=_r_e_p] [_c_m_d]
- The first form selects a range of commands from _f_i_r_s_t to _l_a_s_t
- from the history list and displays or edits and re-executes
- them. _F_i_r_s_t and _l_a_s_t may be specified as a string (to locate
- the last command beginning with that string) or as a number (an
- index into the history list, where a negative number is used as
- an offset from the current command number). When listing, a
- _f_i_r_s_t or _l_a_s_t of 0 is equivalent to -1 and -0 is equivalent to
- the current command (usually the ffcc command); otherwise 0 is
- equivalent to -1 and -0 is invalid. If _l_a_s_t is not specified,
- it is set to the current command for listing (so that ``fc -l
- -10'' prints the last 10 commands) and to _f_i_r_s_t otherwise. If
- _f_i_r_s_t is not specified, it is set to the previous command for
+ The first form selects a range of commands from _f_i_r_s_t to _l_a_s_t
+ from the history list and displays or edits and re-executes
+ them. _F_i_r_s_t and _l_a_s_t may be specified as a string (to locate
+ the last command beginning with that string) or as a number (an
+ index into the history list, where a negative number is used as
+ an offset from the current command number). When listing, a
+ _f_i_r_s_t or _l_a_s_t of 0 is equivalent to -1 and -0 is equivalent to
+ the current command (usually the ffcc command); otherwise 0 is
+ equivalent to -1 and -0 is invalid. If _l_a_s_t is not specified,
+ it is set to the current command for listing (so that ``fc -l
+ -10'' prints the last 10 commands) and to _f_i_r_s_t otherwise. If
+ _f_i_r_s_t is not specified, it is set to the previous command for
editing and -16 for listing.
- The --nn option suppresses the command numbers when listing. The
- --rr option reverses the order of the commands. If the --ll option
- is given, the commands are listed on standard output. Other-
- wise, the editor given by _e_n_a_m_e is invoked on a file containing
- those commands. If _e_n_a_m_e is not given, the value of the FFCCEEDDIITT
- variable is used, and the value of EEDDIITTOORR if FFCCEEDDIITT is not set.
- If neither variable is set, _v_i is used. When editing is com-
+ The --nn option suppresses the command numbers when listing. The
+ --rr option reverses the order of the commands. If the --ll option
+ is given, the commands are listed on standard output. Other-
+ wise, the editor given by _e_n_a_m_e is invoked on a file containing
+ those commands. If _e_n_a_m_e is not given, the value of the FFCCEEDDIITT
+ variable is used, and the value of EEDDIITTOORR if FFCCEEDDIITT is not set.
+ If neither variable is set, _v_i is used. When editing is com-
plete, the edited commands are echoed and executed.
- In the second form, _c_o_m_m_a_n_d is re-executed after each instance
- of _p_a_t is replaced by _r_e_p. _C_o_m_m_a_n_d is interpreted the same as
- _f_i_r_s_t above. A useful alias to use with this is ``r="fc -s"'',
- so that typing ``r cc'' runs the last command beginning with
+ In the second form, _c_o_m_m_a_n_d is re-executed after each instance
+ of _p_a_t is replaced by _r_e_p. _C_o_m_m_a_n_d is interpreted the same as
+ _f_i_r_s_t above. A useful alias to use with this is ``r="fc -s"'',
+ so that typing ``r cc'' runs the last command beginning with
``cc'' and typing ``r'' re-executes the last command.
- If the first form is used, the return value is 0 unless an in-
- valid option is encountered or _f_i_r_s_t or _l_a_s_t specify history
- lines out of range. If the --ee option is supplied, the return
+ If the first form is used, the return value is 0 unless an in-
+ valid option is encountered or _f_i_r_s_t or _l_a_s_t specify history
+ lines out of range. If the --ee option is supplied, the return
value is the value of the last command executed or failure if an
error occurs with the temporary file of commands. If the second
- form is used, the return status is that of the command re-exe-
- cuted, unless _c_m_d does not specify a valid history line, in
+ form is used, the return status is that of the command re-exe-
+ cuted, unless _c_m_d does not specify a valid history line, in
which case ffcc returns failure.
ffgg [_j_o_b_s_p_e_c]
- Resume _j_o_b_s_p_e_c in the foreground, and make it the current job.
+ Resume _j_o_b_s_p_e_c in the foreground, and make it the current job.
If _j_o_b_s_p_e_c is not present, the shell's notion of the _c_u_r_r_e_n_t _j_o_b
- is used. The return value is that of the command placed into
- the foreground, or failure if run when job control is disabled
+ is used. The return value is that of the command placed into
+ the foreground, or failure if run when job control is disabled
or, when run with job control enabled, if _j_o_b_s_p_e_c does not spec-
- ify a valid job or _j_o_b_s_p_e_c specifies a job that was started
+ ify a valid job or _j_o_b_s_p_e_c specifies a job that was started
without job control.
ggeettooppttss _o_p_t_s_t_r_i_n_g _n_a_m_e [_a_r_g _._._.]
- ggeettooppttss is used by shell procedures to parse positional parame-
- ters. _o_p_t_s_t_r_i_n_g contains the option characters to be recog-
- nized; if a character is followed by a colon, the option is ex-
+ ggeettooppttss is used by shell procedures to parse positional parame-
+ ters. _o_p_t_s_t_r_i_n_g contains the option characters to be recog-
+ nized; if a character is followed by a colon, the option is ex-
pected to have an argument, which should be separated from it by
- white space. The colon and question mark characters may not be
- used as option characters. Each time it is invoked, ggeettooppttss
- places the next option in the shell variable _n_a_m_e, initializing
+ white space. The colon and question mark characters may not be
+ used as option characters. Each time it is invoked, ggeettooppttss
+ places the next option in the shell variable _n_a_m_e, initializing
_n_a_m_e if it does not exist, and the index of the next argument to
be processed into the variable OOPPTTIINNDD. OOPPTTIINNDD is initialized to
1 each time the shell or a shell script is invoked. When an op-
tion requires an argument, ggeettooppttss places that argument into the
variable OOPPTTAARRGG. The shell does not reset OOPPTTIINNDD automatically;
- it must be manually reset between multiple calls to ggeettooppttss
- within the same shell invocation if a new set of parameters is
+ it must be manually reset between multiple calls to ggeettooppttss
+ within the same shell invocation if a new set of parameters is
to be used.
When the end of options is encountered, ggeettooppttss exits with a re-
turn value greater than zero. OOPPTTIINNDD is set to the index of the
first non-option argument, and _n_a_m_e is set to ?.
- ggeettooppttss normally parses the positional parameters, but if more
- arguments are supplied as _a_r_g values, ggeettooppttss parses those in-
+ ggeettooppttss normally parses the positional parameters, but if more
+ arguments are supplied as _a_r_g values, ggeettooppttss parses those in-
stead.
- ggeettooppttss can report errors in two ways. If the first character
- of _o_p_t_s_t_r_i_n_g is a colon, _s_i_l_e_n_t error reporting is used. In
- normal operation, diagnostic messages are printed when invalid
- options or missing option arguments are encountered. If the
- variable OOPPTTEERRRR is set to 0, no error messages will be dis-
+ ggeettooppttss can report errors in two ways. If the first character
+ of _o_p_t_s_t_r_i_n_g is a colon, _s_i_l_e_n_t error reporting is used. In
+ normal operation, diagnostic messages are printed when invalid
+ options or missing option arguments are encountered. If the
+ variable OOPPTTEERRRR is set to 0, no error messages will be dis-
played, even if the first character of _o_p_t_s_t_r_i_n_g is not a colon.
If an invalid option is seen, ggeettooppttss places ? into _n_a_m_e and, if
- not silent, prints an error message and unsets OOPPTTAARRGG. If
- ggeettooppttss is silent, the option character found is placed in OOPP--
+ not silent, prints an error message and unsets OOPPTTAARRGG. If
+ ggeettooppttss is silent, the option character found is placed in OOPP--
TTAARRGG and no diagnostic message is printed.
- If a required argument is not found, and ggeettooppttss is not silent,
- a question mark (??) is placed in _n_a_m_e, OOPPTTAARRGG is unset, and a
- diagnostic message is printed. If ggeettooppttss is silent, then a
- colon (::) is placed in _n_a_m_e and OOPPTTAARRGG is set to the option
+ If a required argument is not found, and ggeettooppttss is not silent,
+ a question mark (??) is placed in _n_a_m_e, OOPPTTAARRGG is unset, and a
+ diagnostic message is printed. If ggeettooppttss is silent, then a
+ colon (::) is placed in _n_a_m_e and OOPPTTAARRGG is set to the option
character found.
- ggeettooppttss returns true if an option, specified or unspecified, is
+ ggeettooppttss returns true if an option, specified or unspecified, is
found. It returns false if the end of options is encountered or
an error occurs.
hhaasshh [--llrr] [--pp _f_i_l_e_n_a_m_e] [--ddtt] [_n_a_m_e]
Each time hhaasshh is invoked, the full pathname of the command _n_a_m_e
- is determined by searching the directories in $$PPAATTHH and remem-
+ is determined by searching the directories in $$PPAATTHH and remem-
bered. Any previously-remembered pathname is discarded. If the
--pp option is supplied, no path search is performed, and _f_i_l_e_n_a_m_e
- is used as the full filename of the command. The --rr option
+ is used as the full filename of the command. The --rr option
causes the shell to forget all remembered locations. The --dd op-
- tion causes the shell to forget the remembered location of each
- _n_a_m_e. If the --tt option is supplied, the full pathname to which
- each _n_a_m_e corresponds is printed. If multiple _n_a_m_e arguments
+ tion causes the shell to forget the remembered location of each
+ _n_a_m_e. If the --tt option is supplied, the full pathname to which
+ each _n_a_m_e corresponds is printed. If multiple _n_a_m_e arguments
are supplied with --tt, the _n_a_m_e is printed before the hashed full
pathname. The --ll option causes output to be displayed in a for-
- mat that may be reused as input. If no arguments are given, or
+ mat that may be reused as input. If no arguments are given, or
if only --ll is supplied, information about remembered commands is
- printed. The return status is true unless a _n_a_m_e is not found
+ printed. The return status is true unless a _n_a_m_e is not found
or an invalid option is supplied.
hheellpp [--ddmmss] [_p_a_t_t_e_r_n]
- Display helpful information about builtin commands. If _p_a_t_t_e_r_n
- is specified, hheellpp gives detailed help on all commands matching
- _p_a_t_t_e_r_n; otherwise help for all the builtins and shell control
+ Display helpful information about builtin commands. If _p_a_t_t_e_r_n
+ is specified, hheellpp gives detailed help on all commands matching
+ _p_a_t_t_e_r_n; otherwise help for all the builtins and shell control
structures is printed.
--dd Display a short description of each _p_a_t_t_e_r_n
--mm Display the description of each _p_a_t_t_e_r_n in a manpage-like
@@ -727,70 +741,70 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
hhiissttoorryy --ss _a_r_g [_a_r_g _._._.]
With no options, display the command history list with line num-
bers. Lines listed with a ** have been modified. An argument of
- _n lists only the last _n lines. If the shell variable HHIISSTTTTIIMMEE--
- FFOORRMMAATT is set and not null, it is used as a format string for
- _s_t_r_f_t_i_m_e(3) to display the time stamp associated with each dis-
- played history entry. No intervening blank is printed between
- the formatted time stamp and the history line. If _f_i_l_e_n_a_m_e is
- supplied, it is used as the name of the history file; if not,
- the value of HHIISSTTFFIILLEE is used. Options, if supplied, have the
+ _n lists only the last _n lines. If the shell variable HHIISSTTTTIIMMEE--
+ FFOORRMMAATT is set and not null, it is used as a format string for
+ _s_t_r_f_t_i_m_e(3) to display the time stamp associated with each dis-
+ played history entry. No intervening blank is printed between
+ the formatted time stamp and the history line. If _f_i_l_e_n_a_m_e is
+ supplied, it is used as the name of the history file; if not,
+ the value of HHIISSTTFFIILLEE is used. Options, if supplied, have the
following meanings:
--cc Clear the history list by deleting all the entries.
--dd _o_f_f_s_e_t
- Delete the history entry at position _o_f_f_s_e_t. If _o_f_f_s_e_t
+ Delete the history entry at position _o_f_f_s_e_t. If _o_f_f_s_e_t
is negative, it is interpreted as relative to one greater
than the last history position, so negative indices count
- back from the end of the history, and an index of -1
+ back from the end of the history, and an index of -1
refers to the current hhiissttoorryy --dd command.
--dd _s_t_a_r_t-_e_n_d
- Delete the history entries between positions _s_t_a_r_t and
- _e_n_d, inclusive. Positive and negative values for _s_t_a_r_t
- and _e_n_d are interpreted as described above.
- --aa Append the ``new'' history lines to the history file.
- These are history lines entered since the beginning of
+ Delete the range of history entries between positions
+ _s_t_a_r_t and _e_n_d, inclusive. Positive and negative values
+ for _s_t_a_r_t and _e_n_d are interpreted as described above.
+ --aa Append the ``new'' history lines to the history file.
+ These are history lines entered since the beginning of
the current bbaasshh session, but not already appended to the
history file.
- --nn Read the history lines not already read from the history
- file into the current history list. These are lines ap-
- pended to the history file since the beginning of the
+ --nn Read the history lines not already read from the history
+ file into the current history list. These are lines ap-
+ pended to the history file since the beginning of the
current bbaasshh session.
- --rr Read the contents of the history file and append them to
+ --rr Read the contents of the history file and append them to
the current history list.
--ww Write the current history list to the history file, over-
writing the history file's contents.
- --pp Perform history substitution on the following _a_r_g_s and
- display the result on the standard output. Does not
- store the results in the history list. Each _a_r_g must be
+ --pp Perform history substitution on the following _a_r_g_s and
+ display the result on the standard output. Does not
+ store the results in the history list. Each _a_r_g must be
quoted to disable normal history expansion.
- --ss Store the _a_r_g_s in the history list as a single entry.
- The last command in the history list is removed before
+ --ss Store the _a_r_g_s in the history list as a single entry.
+ The last command in the history list is removed before
the _a_r_g_s are added.
- If the HHIISSTTTTIIMMEEFFOORRMMAATT variable is set, the time stamp informa-
- tion associated with each history entry is written to the his-
- tory file, marked with the history comment character. When the
- history file is read, lines beginning with the history comment
- character followed immediately by a digit are interpreted as
+ If the HHIISSTTTTIIMMEEFFOORRMMAATT variable is set, the time stamp informa-
+ tion associated with each history entry is written to the his-
+ tory file, marked with the history comment character. When the
+ history file is read, lines beginning with the history comment
+ character followed immediately by a digit are interpreted as
timestamps for the following history entry. The return value is
0 unless an invalid option is encountered, an error occurs while
- reading or writing the history file, an invalid _o_f_f_s_e_t is sup-
- plied as an argument to --dd, or the history expansion supplied as
- an argument to --pp fails.
+ reading or writing the history file, an invalid _o_f_f_s_e_t or range
+ is supplied as an argument to --dd, or the history expansion sup-
+ plied as an argument to --pp fails.
jjoobbss [--llnnpprrss] [ _j_o_b_s_p_e_c ... ]
jjoobbss --xx _c_o_m_m_a_n_d [ _a_r_g_s ... ]
The first form lists the active jobs. The options have the fol-
lowing meanings:
--ll List process IDs in addition to the normal information.
- --nn Display information only about jobs that have changed
+ --nn Display information only about jobs that have changed
status since the user was last notified of their status.
- --pp List only the process ID of the job's process group
+ --pp List only the process ID of the job's process group
leader.
--rr Display only running jobs.
--ss Display only stopped jobs.
- If _j_o_b_s_p_e_c is given, output is restricted to information about
- that job. The return status is 0 unless an invalid option is
+ If _j_o_b_s_p_e_c is given, output is restricted to information about
+ that job. The return status is 0 unless an invalid option is
encountered or an invalid _j_o_b_s_p_e_c is supplied.
If the --xx option is supplied, jjoobbss replaces any _j_o_b_s_p_e_c found in
@@ -799,104 +813,113 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
kkiillll [--ss _s_i_g_s_p_e_c | --nn _s_i_g_n_u_m | --_s_i_g_s_p_e_c] [_p_i_d | _j_o_b_s_p_e_c] ...
kkiillll --ll|--LL [_s_i_g_s_p_e_c | _e_x_i_t___s_t_a_t_u_s]
- Send the signal named by _s_i_g_s_p_e_c or _s_i_g_n_u_m to the processes
- named by _p_i_d or _j_o_b_s_p_e_c. _s_i_g_s_p_e_c is either a case-insensitive
- signal name such as SSIIGGKKIILLLL (with or without the SSIIGG prefix) or
- a signal number; _s_i_g_n_u_m is a signal number. If _s_i_g_s_p_e_c is not
- present, then SSIIGGTTEERRMM is assumed. An argument of --ll lists the
- signal names. If any arguments are supplied when --ll is given,
- the names of the signals corresponding to the arguments are
+ Send the signal named by _s_i_g_s_p_e_c or _s_i_g_n_u_m to the processes
+ named by _p_i_d or _j_o_b_s_p_e_c. _s_i_g_s_p_e_c is either a case-insensitive
+ signal name such as SSIIGGKKIILLLL (with or without the SSIIGG prefix) or
+ a signal number; _s_i_g_n_u_m is a signal number. If _s_i_g_s_p_e_c is not
+ present, then SSIIGGTTEERRMM is assumed. An argument of --ll lists the
+ signal names. If any arguments are supplied when --ll is given,
+ the names of the signals corresponding to the arguments are
listed, and the return status is 0. The _e_x_i_t___s_t_a_t_u_s argument to
- --ll is a number specifying either a signal number or the exit
- status of a process terminated by a signal. The --LL option is
- equivalent to --ll. kkiillll returns true if at least one signal was
+ --ll is a number specifying either a signal number or the exit
+ status of a process terminated by a signal. The --LL option is
+ equivalent to --ll. kkiillll returns true if at least one signal was
successfully sent, or false if an error occurs or an invalid op-
tion is encountered.
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
- assigned _v_a_l_u_e. The _o_p_t_i_o_n can be any of the options accepted
+ For each argument, a local variable named _n_a_m_e is created, and
+ assigned _v_a_l_u_e. The _o_p_t_i_o_n can be any of the options accepted
by ddeeccllaarree. When llooccaall is used within a function, it causes the
- variable _n_a_m_e to have a visible scope restricted to that func-
- tion and its children. If _n_a_m_e is -, the set of shell options
- is made local to the function in which llooccaall is invoked: shell
- options changed using the sseett builtin inside the function are
- restored to their original values when the function returns.
+ variable _n_a_m_e to have a visible scope restricted to that func-
+ tion and its children. If _n_a_m_e is -, the set of shell options
+ is made local to the function in which llooccaall is invoked: shell
+ options changed using the sseett builtin inside the function are
+ restored to their original values when the function returns.
The restore is effected as if a series of sseett commands were exe-
- cuted to restore the values that were in place before the func-
- tion. With no operands, llooccaall writes a list of local variables
- to the standard output. It is an error to use llooccaall when not
- within a function. The return status is 0 unless llooccaall is used
- outside a function, an invalid _n_a_m_e is supplied, or _n_a_m_e is a
+ cuted to restore the values that were in place before the func-
+ tion. With no operands, llooccaall writes a list of local variables
+ to the standard output. It is an error to use llooccaall when not
+ within a function. The return status is 0 unless llooccaall is used
+ outside a function, an invalid _n_a_m_e is supplied, or _n_a_m_e is a
readonly variable.
llooggoouutt Exit a login shell.
- mmaappffiillee [--dd _d_e_l_i_m] [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC
+ mmaappffiillee [--dd _d_e_l_i_m] [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC
_c_a_l_l_b_a_c_k] [--cc _q_u_a_n_t_u_m] [_a_r_r_a_y]
rreeaaddaarrrraayy [--dd _d_e_l_i_m] [--nn _c_o_u_n_t] [--OO _o_r_i_g_i_n] [--ss _c_o_u_n_t] [--tt] [--uu _f_d] [--CC
_c_a_l_l_b_a_c_k] [--cc _q_u_a_n_t_u_m] [_a_r_r_a_y]
- Read lines from the standard input into the indexed array vari-
- able _a_r_r_a_y, or from file descriptor _f_d if the --uu option is sup-
- plied. The variable MMAAPPFFIILLEE is the default _a_r_r_a_y. Options, if
+ Read lines from the standard input into the indexed array vari-
+ able _a_r_r_a_y, or from file descriptor _f_d if the --uu option is sup-
+ plied. The variable MMAAPPFFIILLEE is the default _a_r_r_a_y. Options, if
supplied, have the following meanings:
- --dd The first character of _d_e_l_i_m is used to terminate each
- input line, rather than newline. If _d_e_l_i_m is the empty
+ --dd The first character of _d_e_l_i_m is used to terminate each
+ input line, rather than newline. If _d_e_l_i_m is the empty
string, mmaappffiillee will terminate a line when it reads a NUL
character.
- --nn Copy at most _c_o_u_n_t lines. If _c_o_u_n_t is 0, all lines are
+ --nn Copy at most _c_o_u_n_t lines. If _c_o_u_n_t is 0, all lines are
copied.
- --OO Begin assigning to _a_r_r_a_y at index _o_r_i_g_i_n. The default
+ --OO Begin assigning to _a_r_r_a_y at index _o_r_i_g_i_n. The default
index is 0.
--ss Discard the first _c_o_u_n_t lines read.
- --tt Remove a trailing _d_e_l_i_m (default newline) from each line
+ --tt Remove a trailing _d_e_l_i_m (default newline) from each line
read.
- --uu Read lines from file descriptor _f_d instead of the stan-
+ --uu Read lines from file descriptor _f_d instead of the stan-
dard input.
- --CC Evaluate _c_a_l_l_b_a_c_k each time _q_u_a_n_t_u_m lines are read. The
+ --CC Evaluate _c_a_l_l_b_a_c_k each time _q_u_a_n_t_u_m lines are read. The
--cc option specifies _q_u_a_n_t_u_m.
- --cc Specify the number of lines read between each call to
+ --cc Specify the number of lines read between each call to
_c_a_l_l_b_a_c_k.
- If --CC is specified without --cc, the default quantum is 5000.
+ If --CC is specified without --cc, the default quantum is 5000.
When _c_a_l_l_b_a_c_k is evaluated, it is supplied the index of the next
array element to be assigned and the line to be assigned to that
- element as additional arguments. _c_a_l_l_b_a_c_k is evaluated after
+ element as additional arguments. _c_a_l_l_b_a_c_k is evaluated after
the line is read but before the array element is assigned.
- If not supplied with an explicit origin, mmaappffiillee will clear _a_r_-
+ If not supplied with an explicit origin, mmaappffiillee will clear _a_r_-
_r_a_y before assigning to it.
- mmaappffiillee returns successfully unless an invalid option or option
- argument is supplied, _a_r_r_a_y is invalid or unassignable, or if
+ mmaappffiillee returns successfully unless an invalid option or option
+ argument is supplied, _a_r_r_a_y is invalid or unassignable, or if
_a_r_r_a_y is not an indexed array.
ppooppdd [-nn] [+_n] [-_n]
- Removes entries from the directory stack. With no arguments,
- removes the top directory from the stack, and performs a ccdd to
- the new top directory. Arguments, if supplied, have the follow-
- ing meanings:
+ Removes entries from the directory stack. The elements are num-
+ bered from 0 starting at the first directory listed by ddiirrss.
+ With no arguments, ppooppdd removes the top directory from the
+ stack, and changes to the new top directory. Arguments, if sup-
+ plied, have the following meanings:
--nn Suppresses the normal change of directory when removing
directories from the stack, so that only the stack is ma-
nipulated.
++_n Removes the _nth entry counting from the left of the list
- shown by ddiirrss, starting with zero. For example: ``popd
- +0'' removes the first directory, ``popd +1'' the second.
+ shown by ddiirrss, starting with zero, from the stack. For
+ example: ``popd +0'' removes the first directory, ``popd
+ +1'' the second.
--_n Removes the _nth entry counting from the right of the list
- shown by ddiirrss, starting with zero. For example: ``popd
- -0'' removes the last directory, ``popd -1'' the next to
+ shown by ddiirrss, starting with zero. For example: ``popd
+ -0'' removes the last directory, ``popd -1'' the next to
last.
- If the ppooppdd command is successful, a ddiirrss is performed as well,
- and the return status is 0. ppooppdd returns false if an invalid
- option is encountered, the directory stack is empty, a non-exis-
- tent directory stack entry is specified, or the directory change
- fails.
+ If the top element of the directory stack is modified, and the
+ _-_n option was not supplied, ppooppdd uses the ccdd builtin to change
+ to the directory at the top of the stack. If the ccdd fails, ppooppdd
+ returns a non-zero value.
+
+ Otherwise, ppooppdd returns false if an invalid option is encoun-
+ tered, the directory stack is empty, or a non-existent directory
+ stack entry is specified.
+
+ If the ppooppdd command is successful, bash runs ddiirrss to show the
+ final contents of the directory stack, and the return status is
+ 0.
pprriinnttff [--vv _v_a_r] _f_o_r_m_a_t [_a_r_g_u_m_e_n_t_s]
Write the formatted _a_r_g_u_m_e_n_t_s to the standard output under the
@@ -915,15 +938,17 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
corresponding _a_r_g_u_m_e_n_t in the same way as eecchhoo --ee.
%%qq causes pprriinnttff to output the corresponding _a_r_g_u_m_e_n_t in a
format that can be reused as shell input.
+ %%QQ like %%qq, but applies any supplied precision to the _a_r_g_u_-
+ _m_e_n_t before quoting it.
%%((_d_a_t_e_f_m_t))TT
- causes pprriinnttff to output the date-time string resulting
- from using _d_a_t_e_f_m_t as a format string for _s_t_r_f_t_i_m_e(3).
+ causes pprriinnttff to output the date-time string resulting
+ from using _d_a_t_e_f_m_t as a format string for _s_t_r_f_t_i_m_e(3).
The corresponding _a_r_g_u_m_e_n_t is an integer representing the
- number of seconds since the epoch. Two special argument
- values may be used: -1 represents the current time, and
- -2 represents the time the shell was invoked. If no ar-
+ number of seconds since the epoch. Two special argument
+ values may be used: -1 represents the current time, and
+ -2 represents the time the shell was invoked. If no ar-
gument is specified, conversion behaves as if -1 had been
- given. This is an exception to the usual pprriinnttff behav-
+ given. This is an exception to the usual pprriinnttff behav-
ior.
The %b, %q, and %T directives all use the field width and preci-
@@ -931,100 +956,104 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
bytes from (or use that wide a field for) the expanded argument,
which usually contains more characters than the original.
- Arguments to non-string format specifiers are treated as C con-
+ Arguments to non-string format specifiers are treated as C con-
stants, except that a leading plus or minus sign is allowed, and
- if the leading character is a single or double quote, the value
+ if the leading character is a single or double quote, the value
is the ASCII value of the following character.
- The _f_o_r_m_a_t is reused as necessary to consume all of the _a_r_g_u_-
+ The _f_o_r_m_a_t is reused as necessary to consume all of the _a_r_g_u_-
_m_e_n_t_s. If the _f_o_r_m_a_t requires more _a_r_g_u_m_e_n_t_s than are supplied,
- the extra format specifications behave as if a zero value or
- null string, as appropriate, had been supplied. The return
+ the extra format specifications behave as if a zero value or
+ null string, as appropriate, had been supplied. The return
value is zero on success, non-zero on failure.
ppuusshhdd [--nn] [+_n] [-_n]
ppuusshhdd [--nn] [_d_i_r]
- Adds a directory to the top of the directory stack, or rotates
- the stack, making the new top of the stack the current working
- directory. With no arguments, ppuusshhdd exchanges the top two di-
- rectories and returns 0, unless the directory stack is empty.
- Arguments, if supplied, have the following meanings:
- --nn Suppresses the normal change of directory when rotating
- or adding directories to the stack, so that only the
+ Adds a directory to the top of the directory stack, or rotates
+ the stack, making the new top of the stack the current working
+ directory. With no arguments, ppuusshhdd exchanges the top two ele-
+ ments of the directory stack. Arguments, if supplied, have the
+ following meanings:
+ --nn Suppresses the normal change of directory when rotating
+ or adding directories to the stack, so that only the
stack is manipulated.
- ++_n Rotates the stack so that the _nth directory (counting
- from the left of the list shown by ddiirrss, starting with
+ ++_n Rotates the stack so that the _nth directory (counting
+ from the left of the list shown by ddiirrss, starting with
zero) is at the top.
- --_n Rotates the stack so that the _nth directory (counting
- from the right of the list shown by ddiirrss, starting with
+ --_n Rotates the stack so that the _nth directory (counting
+ from the right of the list shown by ddiirrss, starting with
zero) is at the top.
- _d_i_r Adds _d_i_r to the directory stack at the top, making it the
- new current working directory as if it had been supplied
- as the argument to the ccdd builtin.
+ _d_i_r Adds _d_i_r to the directory stack at the top
+
+ After the stack has been modified, if the --nn option was not sup-
+ plied, ppuusshhdd uses the ccdd builtin to change to the directory at
+ the top of the stack. If the ccdd fails, ppuusshhdd returns a non-zero
+ value.
- If the ppuusshhdd command is successful, a ddiirrss is performed as well.
- If the first form is used, ppuusshhdd returns 0 unless the cd to _d_i_r
- fails. With the second form, ppuusshhdd returns 0 unless the direc-
- tory stack is empty, a non-existent directory stack element is
- specified, or the directory change to the specified new current
- directory fails.
+ Otherwise, if no arguments are supplied, ppuusshhdd returns 0 unless
+ the directory stack is empty. When rotating the directory
+ stack, ppuusshhdd returns 0 unless the directory stack is empty or a
+ non-existent directory stack element is specified.
+
+ If the ppuusshhdd command is successful, bash runs ddiirrss to show the
+ final contents of the directory stack.
ppwwdd [--LLPP]
- Print the absolute pathname of the current working directory.
+ Print the absolute pathname of the current working directory.
The pathname printed contains no symbolic links if the --PP option
is supplied or the --oo pphhyyssiiccaall option to the sseett builtin command
- is enabled. If the --LL option is used, the pathname printed may
- contain symbolic links. The return status is 0 unless an error
+ is enabled. If the --LL option is used, the pathname printed may
+ contain symbolic links. The return status is 0 unless an error
occurs while reading the name of the current directory or an in-
valid option is supplied.
rreeaadd [--eerrss] [--aa _a_n_a_m_e] [--dd _d_e_l_i_m] [--ii _t_e_x_t] [--nn _n_c_h_a_r_s] [--NN _n_c_h_a_r_s] [--pp
_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-
+ 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,
+ 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 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
variable _a_n_a_m_e, starting at 0. _a_n_a_m_e is unset before any
- new values are assigned. Other _n_a_m_e arguments are ig-
+ new values are assigned. Other _n_a_m_e arguments are ig-
nored.
--dd _d_e_l_i_m
The first character of _d_e_l_i_m is used to terminate the in-
- put line, rather than newline. If _d_e_l_i_m is the empty
- string, rreeaadd will terminate a line when it reads a NUL
+ put line, rather than newline. If _d_e_l_i_m is the empty
+ 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
+ If rreeaaddlliinnee is being used to read the line, _t_e_x_t is
placed into the editing buffer before editing begins.
--nn _n_c_h_a_r_s
- rreeaadd returns after reading _n_c_h_a_r_s characters rather than
+ rreeaadd returns after reading _n_c_h_a_r_s characters rather than
waiting for a complete line of input, but honors a delim-
- iter if fewer than _n_c_h_a_r_s characters are read before the
+ iter if fewer than _n_c_h_a_r_s characters are read before the
delimiter.
--NN _n_c_h_a_r_s
- rreeaadd returns after reading exactly _n_c_h_a_r_s characters
- rather than waiting for a complete line of input, unless
- EOF is encountered or rreeaadd times out. Delimiter charac-
- ters encountered in the input are not treated specially
- and do not cause rreeaadd to return until _n_c_h_a_r_s characters
- are read. The result is not split on the characters in
- IIFFSS; the intent is that the variable is assigned exactly
+ rreeaadd returns after reading exactly _n_c_h_a_r_s characters
+ rather than waiting for a complete line of input, unless
+ EOF is encountered or rreeaadd times out. Delimiter charac-
+ ters encountered in the input are not treated specially
+ and do not cause rreeaadd to return until _n_c_h_a_r_s characters
+ are read. The result is not split on the characters in
+ IIFFSS; the intent is that the variable is assigned exactly
the characters read (with the exception of backslash; see
the --rr option below).
--pp _p_r_o_m_p_t
@@ -1032,25 +1061,26 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
line, before attempting to read any input. The prompt is
displayed only if input is coming from a terminal.
--rr Backslash does not act as an escape character. The back-
- slash is considered to be part of the line. In particu-
- lar, a backslash-newline pair may not then be used as a
+ slash is considered to be part of the line. In particu-
+ lar, a backslash-newline pair may not then be used as a
line continuation.
--ss Silent mode. If input is coming from a terminal, charac-
ters are not echoed.
--tt _t_i_m_e_o_u_t
- Cause rreeaadd to time out and return failure if a complete
- line of input (or a specified number of characters) is
- not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_o_u_t may be a deci-
- mal number with a fractional portion following the deci-
- mal point. This option is only effective if rreeaadd is
- reading input from a terminal, pipe, or other special
- file; it has no effect when reading from regular files.
+ Cause rreeaadd to time out and return failure if a complete
+ line of input (or a specified number of characters) is
+ not read within _t_i_m_e_o_u_t seconds. _t_i_m_e_o_u_t may be a deci-
+ mal number with a fractional portion following the deci-
+ mal point. This option is only effective if rreeaadd is
+ reading input from a terminal, pipe, or other special
+ file; it has no effect when reading from regular files.
If rreeaadd times out, rreeaadd saves any partial input read into
- the specified variable _n_a_m_e. If _t_i_m_e_o_u_t is 0, rreeaadd re-
- turns immediately, without trying to read any data. The
- exit status is 0 if input is available on the specified
- file descriptor, non-zero otherwise. The exit status is
- greater than 128 if the timeout is exceeded.
+ the specified variable _n_a_m_e. If _t_i_m_e_o_u_t is 0, rreeaadd re-
+ turns immediately, without trying to read any data. The
+ exit status is 0 if input is available on the specified
+ file descriptor, or the read will return EOF, non-zero
+ otherwise. The exit status is greater than 128 if the
+ timeout is exceeded.
--uu _f_d Read input from file descriptor _f_d.
If no _n_a_m_e_s are supplied, the line read, without the ending de-
@@ -1098,18 +1128,18 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
associated with the RREETTUURRNN trap is executed before execution re-
sumes after the function or script.
- sseett [----aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [--oo _o_p_t_i_o_n_-_n_a_m_e] [_a_r_g ...]
- sseett [++aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [++oo _o_p_t_i_o_n_-_n_a_m_e] [_a_r_g ...]
- Without options, the name and value of each shell variable are
- displayed in a format that can be reused as input for setting or
- resetting the currently-set variables. Read-only variables can-
- not be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed.
- The output is sorted according to the current locale. When op-
- tions are specified, they set or unset shell attributes. Any
- arguments remaining after option processing are treated as val-
- ues for the positional parameters and are assigned, in order, to
- $$11, $$22, ...... $$_n. Options, if specified, have the following
- meanings:
+ sseett [--aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [--oo _o_p_t_i_o_n_-_n_a_m_e] [----] [--] [_a_r_g ...]
+ sseett [++aabbeeffhhkkmmnnppttuuvvxxBBCCEEHHPPTT] [++oo _o_p_t_i_o_n_-_n_a_m_e] [----] [--] [_a_r_g ...]
+ Without options, display the name and value of each shell vari-
+ able in a format that can be reused as input for setting or re-
+ setting the currently-set variables. Read-only variables cannot
+ be reset. In _p_o_s_i_x _m_o_d_e, only shell variables are listed. The
+ output is sorted according to the current locale. When options
+ are specified, they set or unset shell attributes. Any argu-
+ ments remaining after option processing are treated as values
+ for the positional parameters and are assigned, in order, to $$11,
+ $$22, ...... $$_n. Options, if specified, have the following mean-
+ ings:
--aa Each variable or function that is created or modified is
given the export attribute and marked for export to the
environment of subsequent commands.
@@ -1118,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
@@ -1152,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.
@@ -1178,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
@@ -1206,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.
@@ -1232,9 +1262,12 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
plied at startup, the effective user id is not reset.
Turning this option off causes the effective user and
group ids to be set to the real user and group ids.
+ --rr Enable restricted shell mode. This option cannot be un-
+ set once it has been set.
--tt Exit after reading and executing one command.
--uu Treat unset variables and parameters other than the spe-
- cial parameters "@" and "*" as an error when performing
+ cial parameters "@" and "*", or array variables sub-
+ scripted with "@" or "*", as an error when performing
parameter expansion. If expansion is attempted on an
unset variable or parameter, the shell prints an error
message, and, if not interactive, exits with a non-zero
@@ -1245,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-
@@ -1353,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
@@ -1364,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
@@ -1372,117 +1406,123 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
ccoommppaatt4422
ccoommppaatt4433
ccoommppaatt4444
- These control aspects of the shell's compatibility mode
- (see SSHHEELLLL CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE below).
+ ccoommppaatt5500
+ 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-
+ 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
@@ -1490,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.
@@ -1543,49 +1583,60 @@ 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
+ 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 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
@@ -1597,15 +1648,15 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
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.
+ 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.
+ 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
@@ -1613,38 +1664,44 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
ters.
ssoouurrcceeppaatthh
- If set, the ssoouurrccee (..) builtin uses the value of PPAATTHH to
+ If set, the .. (ssoouurrccee) builtin uses the value of PPAATTHH to
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
+ assigned using the _{_v_a_r_n_a_m_e_} redirection syntax (see RREE--
+ 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 cannot be suspended; the --ff option can be
- used to override this and force the suspension. The return sta-
- tus is 0 unless the shell is a login shell and --ff is not sup-
- plied, or if job control is not enabled.
+ 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.
-
- Expressions may be combined using the following operators,
- listed in decreasing order of precedence. The evaluation de-
- pends on the number of arguments; see below. Operator prece-
+ 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-
+ pends on the number of arguments; see below. Operator prece-
dence is used when there are five or more arguments.
!! _e_x_p_r True if _e_x_p_r is false.
(( _e_x_p_r ))
- Returns the value of _e_x_p_r. This may be used to override
+ Returns the value of _e_x_p_r. This may be used to override
the normal precedence of operators.
_e_x_p_r_1 -aa _e_x_p_r_2
True if both _e_x_p_r_1 and _e_x_p_r_2 are true.
@@ -1661,135 +1718,139 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
null.
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
+ only if the second argument is null. If the first argu-
+ 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.
+ If the second argument is one of the binary conditional
+ 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
the three-argument expression composed of the remaining
- arguments. Otherwise, the expression is parsed and eval-
- uated according to precedence using the rules listed
- above.
+ arguments. the two-argument test using the second and
+ third arguments. If the first argument is exactly (( and
+ the fourth argument is exactly )), the result is the two-
+ argument test of the second and third arguments. Other-
+ wise, the expression is parsed and evaluated according to
+ precedence using the rules listed above.
5 or more arguments
- The expression is parsed and evaluated according to
+ The expression is parsed and evaluated according to
precedence using the rules listed above.
- When used with tteesstt or [[, the << and >> operators sort lexico-
+ When used with tteesstt or [[, the << and >> operators sort lexico-
graphically using ASCII ordering.
- ttiimmeess Print the accumulated user and system times for the shell and
+ ttiimmeess Print the accumulated user and system times for the shell and
for processes run from the shell. The return status is 0.
ttrraapp [--llpp] [[_a_r_g] _s_i_g_s_p_e_c ...]
- The command _a_r_g is to be read and executed when the shell re-
+ The command _a_r_g is to be read and executed when the shell re-
ceives signal(s) _s_i_g_s_p_e_c. If _a_r_g is absent (and there is a sin-
- gle _s_i_g_s_p_e_c) or --, each specified signal is reset to its origi-
- nal disposition (the value it had upon entrance to the shell).
- If _a_r_g is the null string the signal specified by each _s_i_g_s_p_e_c
- is ignored by the shell and by the commands it invokes. If _a_r_g
- is not present and --pp has been supplied, then the trap commands
+ gle _s_i_g_s_p_e_c) or --, each specified signal is reset to its origi-
+ nal disposition (the value it had upon entrance to the shell).
+ If _a_r_g is the null string the signal specified by each _s_i_g_s_p_e_c
+ is ignored by the shell and by the commands it invokes. If _a_r_g
+ is not present and --pp has been supplied, then the trap commands
associated with each _s_i_g_s_p_e_c are displayed. If no arguments are
- supplied or if only --pp is given, ttrraapp prints the list of com-
- mands associated with each signal. The --ll option causes the
- shell to print a list of signal names and their corresponding
- numbers. Each _s_i_g_s_p_e_c is either a signal name defined in <_s_i_g_-
- _n_a_l_._h>, or a signal number. Signal names are case insensitive
+ supplied or if only --pp is given, ttrraapp prints the list of com-
+ mands associated with each signal. The --ll option causes the
+ shell to print a list of signal names and their corresponding
+ numbers. Each _s_i_g_s_p_e_c is either a signal name defined in <_s_i_g_-
+ _n_a_l_._h>, or a signal number. Signal names are case insensitive
and the SSIIGG prefix is optional.
- If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit
- 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.
-
- If a _s_i_g_s_p_e_c is EERRRR, the command _a_r_g is executed whenever a
+ If a _s_i_g_s_p_e_c is EEXXIITT (0) the command _a_r_g is executed on exit
+ 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 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,
or a compound command returns a non-zero exit status, subject to
- the following conditions. The EERRRR trap is not executed if the
+ the following conditions. The EERRRR trap is not executed if the
failed command is part of the command list immediately following
- a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement,
+ a wwhhiillee or uunnttiill keyword, part of the test in an _i_f statement,
part of a command executed in a &&&& or |||| list except the command
- following the final &&&& or ||||, any command in a pipeline but the
- last, or if the command's return value is being inverted using
+ following the final &&&& or ||||, any command in a pipeline but the
+ last, or if the command's return value is being inverted using
!!. These are the same conditions obeyed by the eerrrreexxiitt (--ee) op-
tion.
Signals ignored upon entry to the shell cannot be trapped or re-
- set. Trapped signals that are not being ignored are reset to
+ set. Trapped signals that are not being ignored are reset to
their original values in a subshell or subshell environment when
- one is created. The return status is false if any _s_i_g_s_p_e_c is
+ one is created. The return status is false if any _s_i_g_s_p_e_c is
invalid; otherwise ttrraapp returns true.
ttyyppee [--aaffttppPP] _n_a_m_e [_n_a_m_e ...]
- With no options, indicate how each _n_a_m_e would be interpreted if
+ With no options, indicate how each _n_a_m_e would be interpreted if
used as a command name. If the --tt option is used, ttyyppee prints a
- string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
- _f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
- builtin, or disk file, respectively. If the _n_a_m_e is not found,
- then nothing is printed, and an exit status of false is re-
- turned. If the --pp option is used, ttyyppee either returns the name
- of the disk file that would be executed if _n_a_m_e were specified
- as a command name, or nothing if ``type -t name'' would not re-
- turn _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
+ string which is one of _a_l_i_a_s, _k_e_y_w_o_r_d, _f_u_n_c_t_i_o_n, _b_u_i_l_t_i_n, or
+ _f_i_l_e if _n_a_m_e is an alias, shell reserved word, function,
+ builtin, or disk file, respectively. If the _n_a_m_e is not found,
+ then nothing is printed, and an exit status of false is re-
+ turned. If the --pp option is used, ttyyppee either returns the name
+ of the disk file that would be executed if _n_a_m_e were specified
+ as a command name, or nothing if ``type -t name'' would not re-
+ turn _f_i_l_e. The --PP option forces a PPAATTHH search for each _n_a_m_e,
even if ``type -t name'' would not return _f_i_l_e. If a command is
hashed, --pp and --PP print the hashed value, which is not necessar-
- ily the file that appears first in PPAATTHH. If the --aa option is
- used, ttyyppee prints all of the places that contain an executable
+ ily the file that appears first in PPAATTHH. If the --aa option is
+ used, ttyyppee prints all of the places that contain an executable
named _n_a_m_e. This includes aliases and functions, if and only if
the --pp option is not also used. The table of hashed commands is
- not consulted when using --aa. The --ff option suppresses shell
+ not consulted when using --aa. The --ff option suppresses shell
function lookup, as with the ccoommmmaanndd builtin. ttyyppee returns true
if all of the arguments are found, false if any are not found.
uulliimmiitt [--HHSS] --aa
uulliimmiitt [--HHSS] [--bbccddeeffiikkllmmnnppqqrrssttuuvvxxPPRRTT [_l_i_m_i_t]]
- Provides control over the resources available to the shell and
- to processes started by it, on systems that allow such control.
+ Provides control over the resources available to the shell and
+ to processes started by it, on systems that allow such control.
The --HH and --SS options specify that the hard or soft limit is set
- for the given resource. A hard limit cannot be increased by a
- non-root user once it is set; a soft limit may be increased up
- to the value of the hard limit. If neither --HH nor --SS is speci-
+ for the given resource. A hard limit cannot be increased by a
+ non-root user once it is set; a soft limit may be increased up
+ to the value of the hard limit. If neither --HH nor --SS is speci-
fied, both the soft and hard limits are set. The value of _l_i_m_i_t
can be a number in the unit specified for the resource or one of
the special values hhaarrdd, ssoofftt, or uunnlliimmiitteedd, which stand for the
- current hard limit, the current soft limit, and no limit, re-
- spectively. If _l_i_m_i_t is omitted, the current value of the soft
+ current hard limit, the current soft limit, and no limit, re-
+ spectively. If _l_i_m_i_t is omitted, the current value of the soft
limit of the resource is printed, unless the --HH option is given.
- When more than one resource is specified, the limit name and
- unit, if appropriate, are printed before the value. Other op-
+ When more than one resource is specified, the limit name and
+ unit, if appropriate, are printed before the value. Other op-
tions are interpreted as follows:
--aa All current limits are reported; no limits are set
--bb The maximum socket buffer size
--cc The maximum size of core files created
--dd The maximum size of a process's data segment
--ee The maximum scheduling priority ("nice")
- --ff The maximum size of files written by the shell and its
+ --ff The maximum size of files written by the shell and its
children
--ii The maximum number of pending signals
--kk The maximum number of kqueues that may be allocated
--ll The maximum size that may be locked into memory
- --mm The maximum resident set size (many systems do not honor
+ --mm The maximum resident set size (many systems do not honor
this limit)
--nn The maximum number of open file descriptors (most systems
do not allow this value to be set)
@@ -1798,132 +1859,134 @@ BBAASSHH BBUUIILLTTIINN CCOOMMMMAANNDDSS
--rr The maximum real-time scheduling priority
--ss The maximum stack size
--tt The maximum amount of cpu time in seconds
- --uu The maximum number of processes available to a single
+ --uu The maximum number of processes available to a single
user
- --vv The maximum amount of virtual memory available to the
+ --vv The maximum amount of virtual memory available to the
shell and, on some systems, to its children
--xx The maximum number of file locks
--PP The maximum number of pseudoterminals
- --RR The maximum time a real-time process can run before
+ --RR The maximum time a real-time process can run before
blocking, in microseconds
--TT The maximum number of threads
- If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the
- new value of the specified resource. If no option is given,
- then --ff is assumed. Values are in 1024-byte increments, except
- for --tt, which is in seconds; --RR, which is in microseconds; --pp,
- which is in units of 512-byte blocks; --PP, --TT, --bb, --kk, --nn, and
- --uu, which are unscaled values; and, when in posix mode, --cc and
- --ff, which are in 512-byte increments. The return status is 0
- unless an invalid option or argument is supplied, or an error
+ If _l_i_m_i_t is given, and the --aa option is not used, _l_i_m_i_t is the
+ new value of the specified resource. If no option is given,
+ then --ff is assumed. Values are in 1024-byte increments, except
+ for --tt, which is in seconds; --RR, which is in microseconds; --pp,
+ which is in units of 512-byte blocks; --PP, --TT, --bb, --kk, --nn, and
+ --uu, which are unscaled values; and, when in posix mode, --cc and
+ --ff, which are in 512-byte increments. The return status is 0
+ unless an invalid option or argument is supplied, or an error
occurs while setting a new limit.
uummaasskk [--pp] [--SS] [_m_o_d_e]
The user file-creation mask is set to _m_o_d_e. If _m_o_d_e begins with
- a digit, it is interpreted as an octal number; otherwise it is
- interpreted as a symbolic mode mask similar to that accepted by
- _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is
- printed. The --SS option causes the mask to be printed in sym-
- bolic form; the default output is an octal number. If the --pp
+ a digit, it is interpreted as an octal number; otherwise it is
+ interpreted as a symbolic mode mask similar to that accepted by
+ _c_h_m_o_d(1). If _m_o_d_e is omitted, the current value of the mask is
+ printed. The --SS option causes the mask to be printed in sym-
+ bolic form; the default output is an octal number. If the --pp
option is supplied, and _m_o_d_e is omitted, the output is in a form
that may be reused as input. The return status is 0 if the mode
- was successfully changed or if no _m_o_d_e argument was supplied,
+ was successfully changed or if no _m_o_d_e argument was supplied,
and false otherwise.
uunnaalliiaass [-aa] [_n_a_m_e ...]
- Remove each _n_a_m_e from the list of defined aliases. If --aa is
- supplied, all alias definitions are removed. The return value
+ Remove each _n_a_m_e from the list of defined aliases. If --aa is
+ supplied, all alias definitions are removed. The return value
is true unless a supplied _n_a_m_e is not a defined alias.
uunnsseett [-ffvv] [-nn] [_n_a_m_e ...]
- For each _n_a_m_e, remove the corresponding variable or function.
+ For each _n_a_m_e, remove the corresponding variable or function.
If the --vv option is given, each _n_a_m_e refers to a shell variable,
- and that variable is removed. Read-only variables may not be
- unset. If --ff is specified, each _n_a_m_e refers to a shell func-
- tion, and the function definition is removed. If the --nn option
- is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute,
- _n_a_m_e will be unset rather than the variable it references. --nn
- has no effect if the --ff option is supplied. If no options are
- supplied, each _n_a_m_e refers to a variable; if there is no vari-
- able by that name, a function with that name, if any, is unset.
- Each unset variable or function is removed from the environment
- passed to subsequent commands. If any of BBAASSHH__AALLIIAASSEESS,
+ and that variable is removed. Read-only variables may not be
+ unset. If --ff is specified, each _n_a_m_e refers to a shell func-
+ tion, and the function definition is removed. If the --nn option
+ is supplied, and _n_a_m_e is a variable with the _n_a_m_e_r_e_f attribute,
+ _n_a_m_e will be unset rather than the variable it references. --nn
+ has no effect if the --ff option is supplied. If no options are
+ supplied, each _n_a_m_e refers to a variable; if there is no vari-
+ able by that name, a function with that name, if any, is unset.
+ Each unset variable or function is removed from the environment
+ passed to subsequent commands. If any of BBAASSHH__AALLIIAASSEESS,
BBAASSHH__AARRGGVV00, BBAASSHH__CCMMDDSS, BBAASSHH__CCOOMMMMAANNDD, BBAASSHH__SSUUBBSSHHEELLLL, BBAASSHHPPIIDD,
- CCOOMMPP__WWOORRDDBBRREEAAKKSS, DDIIRRSSTTAACCKK, EEPPOOCCHHRREEAALLTTIIMMEE, EEPPOOCCHHSSEECCOONNDDSS, FFUUNNCC--
- NNAAMMEE, GGRROOUUPPSS, HHIISSTTCCMMDD, LLIINNEENNOO, RRAANNDDOOMM, SSEECCOONNDDSS, or SSRRAANNDDOOMM are
+ CCOOMMPP__WWOORRDDBBRREEAAKKSS, DDIIRRSSTTAACCKK, EEPPOOCCHHRREEAALLTTIIMMEE, EEPPOOCCHHSSEECCOONNDDSS, FFUUNNCC--
+ NNAAMMEE, GGRROOUUPPSS, HHIISSTTCCMMDD, LLIINNEENNOO, RRAANNDDOOMM, SSEECCOONNDDSS, or SSRRAANNDDOOMM are
unset, they lose their special properties, even if they are sub-
sequently reset. The exit status is true unless a _n_a_m_e is read-
- only.
+ only or may not be unset.
wwaaiitt [--ffnn] [--pp _v_a_r_n_a_m_e] [_i_d _._._.]
Wait for each specified child process and return its termination
- status. Each _i_d may be a process ID or a job specification; if
- a job spec is given, all processes in that job's pipeline are
- waited for. If _i_d is not given, wwaaiitt waits for all running
- background jobs and the last-executed process substitution, if
+ status. Each _i_d may be a process ID or a job specification; if
+ a job spec is given, all processes in that job's pipeline are
+ waited for. If _i_d is not given, wwaaiitt waits for all running
+ background jobs and the last-executed process substitution, if
its process id is the same as $$!!, and the return status is zero.
- If the --nn option is supplied, wwaaiitt waits for a single job from
+ If the --nn option is supplied, wwaaiitt waits for a single job from
the list of _i_ds or, if no _i_ds are supplied, any job, to complete
- and returns its exit status. If none of the supplied arguments
+ and returns its exit status. If none of the supplied arguments
is a child of the shell, or if no arguments are supplied and the
- shell has no unwaited-for children, the exit status is 127. If
- the --pp option is supplied, the process or job identifier of the
- job for which the exit status is returned is assigned to the
- variable _v_a_r_n_a_m_e named by the option argument. The variable
- will be unset initially, before any assignment. This is useful
- only when the --nn option is supplied. Supplying the --ff option,
- when job control is enabled, forces wwaaiitt to wait for _i_d to ter-
+ shell has no unwaited-for children, the exit status is 127. If
+ the --pp option is supplied, the process or job identifier of the
+ job for which the exit status is returned is assigned to the
+ variable _v_a_r_n_a_m_e named by the option argument. The variable
+ will be unset initially, before any assignment. This is useful
+ only when the --nn option is supplied. Supplying the --ff option,
+ 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.
+ changes status. If _i_d specifies a non-existent process or job,
+ 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 `shell compatibility level', spec-
- ified as a set of options to the shopt builtin ccoommppaatt3311, ccoommppaatt3322, ccoomm--
- ppaatt4400, ccoommppaatt4411, and so on). There is only one current compatibility
- level -- each option is mutually exclusive. The compatibility level is
- intended to allow users to select behavior from previous versions that
- is incompatible with newer versions while they migrate scripts to use
- current features and behavior. It's intended to be a temporary solu-
- tion.
-
- 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).
-
- If a user enables, say, ccoommppaatt3322, it may affect the behavior of other
- compatibility levels up to and including the current compatibility
- level. The idea is that each compatibility level controls behavior
- that changed in that version of bbaasshh, but that behavior may have been
- present in earlier versions. For instance, the change to use locale-
- based comparisons with the [[[[ command came in bash-4.1, and earlier
+ Bash-4.0 introduced the concept of a _s_h_e_l_l _c_o_m_p_a_t_i_b_i_l_i_t_y _l_e_v_e_l, speci-
+ fied as a set of options to the shopt builtin ( ccoommppaatt3311, ccoommppaatt3322,
+ ccoommppaatt4400, ccoommppaatt4411, and so on). There is only one current compatibil-
+ ity level -- each option is mutually exclusive. The compatibility
+ level is intended to allow users to select behavior from previous ver-
+ sions that is incompatible with newer versions while they migrate
+ scripts to use current features and behavior. It's intended to be a
+ temporary solution.
+
+ 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 subsequent versions).
+
+ If a user enables, say, ccoommppaatt3322, it may affect the behavior of other
+ compatibility levels up to and including the current compatibility
+ level. The idea is that each compatibility level controls behavior
+ that changed in that version of bbaasshh, but that behavior may have been
+ present in earlier versions. For instance, the change to use locale-
+ based comparisons with the [[[[ command came in bash-4.1, and earlier
versions used ASCII-based comparisons, so enabling ccoommppaatt3322 will enable
- ASCII-based comparisons as well. That granularity may not be suffi-
- cient for all uses, and as a result users should employ compatibility
- levels carefully. Read the documentation for a particular feature to
+ ASCII-based comparisons as well. That granularity may not be suffi-
+ cient for all uses, and as a result users should employ compatibility
+ levels carefully. Read the documentation for a particular feature to
find out the current behavior.
- Bash-4.3 introduced a new shell variable: BBAASSHH__CCOOMMPPAATT. The value as-
+ Bash-4.3 introduced a new shell variable: BBAASSHH__CCOOMMPPAATT. The value as-
signed to this variable (a decimal version number like 4.2, or an inte-
- ger corresponding to the ccoommppaatt_N_N option, like 42) determines the com-
+ ger corresponding to the ccoommppaatt_N_N option, like 42) determines the com-
patibility level.
- Starting with bash-4.4, Bash has begun deprecating older compatibility
- levels. Eventually, the options will be removed in favor of BBAASSHH__CCOOMM--
+ Starting with bash-4.4, Bash has begun deprecating older compatibility
+ levels. Eventually, the options will be removed in favor of BBAASSHH__CCOOMM--
PPAATT.
- Bash-5.0 is the final version for which there will be an individual
- shopt option for the previous version. Users should use BBAASSHH__CCOOMMPPAATT on
+ Bash-5.0 is the final version for which there will be an individual
+ shopt option for the previous version. Users should use BBAASSHH__CCOOMMPPAATT on
bash-5.0 and later versions.
- The following table describes the behavior changes controlled by each
+ The following table describes the behavior changes controlled by each
compatibility level setting. The ccoommppaatt_N_N tag is used as shorthand for
setting the compatibility level to _N_N using one of the following mecha-
- nisms. For versions prior to bash-5.0, the compatibility level may be
- set using the corresponding ccoommppaatt_N_N shopt option. For bash-4.3 and
- later versions, the BBAASSHH__CCOOMMPPAATT variable is preferred, and it is re-
+ nisms. For versions prior to bash-5.0, the compatibility level may be
+ set using the corresponding ccoommppaatt_N_N shopt option. For bash-4.3 and
+ later versions, the BBAASSHH__CCOOMMPPAATT variable is preferred, and it is re-
quired for bash-5.1 and later versions.
ccoommppaatt3311
@@ -1931,84 +1994,90 @@ SSHHEELLLL CCOOMMPPAATTIIBBIILLIITTYY MMOODDEE
ator (=~) has no special effect
ccoommppaatt3322
- +o interrupting a command list such as "a ; b ; c" causes
- the execution of the next command in the list (in
- bash-4.0 and later versions, the shell acts as if it re-
- ceived the interrupt, so interrupting one command in a
+ +o interrupting a command list such as "a ; b ; c" causes
+ the execution of the next command in the list (in
+ bash-4.0 and later versions, the shell acts as if it re-
+ ceived the interrupt, so interrupting one command in a
list aborts the execution of the entire list)
ccoommppaatt4400
- +o the << and >> operators to the [[[[ command do not consider
+ +o the << and >> operators to the [[[[ command do not consider
the current locale when comparing strings; they use ASCII
ordering. Bash versions prior to bash-4.1 use ASCII col-
- lation and _s_t_r_c_m_p(3); bash-4.1 and later use the current
+ lation and _s_t_r_c_m_p(3); bash-4.1 and later use the current
locale's collation sequence and _s_t_r_c_o_l_l(3).
ccoommppaatt4411
- +o in _p_o_s_i_x mode, ttiimmee may be followed by options and still
+ +o in _p_o_s_i_x mode, ttiimmee may be followed by options and still
be recognized as a reserved word (this is POSIX interpre-
tation 267)
+o in _p_o_s_i_x mode, the parser requires that an even number of
- single quotes occur in the _w_o_r_d portion of a double-
- quoted parameter expansion and treats them specially, so
- that characters within the single quotes are considered
+ single quotes occur in the _w_o_r_d portion of a double-
+ quoted parameter expansion and treats them specially, so
+ that characters within the single quotes are considered
quoted (this is POSIX interpretation 221)
ccoommppaatt4422
+o the replacement string in double-quoted pattern substitu-
- tion does not undergo quote removal, as it does in ver-
+ tion does not undergo quote removal, as it does in ver-
sions after bash-4.2
- +o in posix mode, single quotes are considered special when
- expanding the _w_o_r_d portion of a double-quoted parameter
- expansion and can be used to quote a closing brace or
- other special character (this is part of POSIX interpre-
- tation 221); in later versions, single quotes are not
+ +o in posix mode, single quotes are considered special when
+ expanding the _w_o_r_d portion of a double-quoted parameter
+ expansion and can be used to quote a closing brace or
+ other special character (this is part of POSIX interpre-
+ tation 221); in later versions, single quotes are not
special within double-quoted word expansions
ccoommppaatt4433
- +o the shell does not print a warning message if an attempt
- is made to use a quoted compound assignment as an argu-
- ment to declare (declare -a foo='(1 2)'). Later versions
- warn that this usage is deprecated
- +o word expansion errors are considered non-fatal errors
- that cause the current command to fail, even in posix
- mode (the default behavior is to make them fatal errors
+ +o the shell does not print a warning message if an attempt
+ is made to use a quoted compound assignment as an argu-
+ ment to declare (e.g., declare -a foo='(1 2)'). Later
+ versions warn that this usage is deprecated
+ +o word expansion errors are considered non-fatal errors
+ that cause the current command to fail, even in posix
+ mode (the default behavior is to make them fatal errors
that cause the shell to exit)
- +o when executing a shell function, the loop state
+ +o when executing a shell function, the loop state
(while/until/etc.) is not reset, so bbrreeaakk or ccoonnttiinnuuee in
that function will break or continue loops in the calling
- context. Bash-4.4 and later reset the loop state to pre-
+ context. Bash-4.4 and later reset the loop state to pre-
vent this
ccoommppaatt4444
- +o the shell sets up the values used by BBAASSHH__AARRGGVV and
- BBAASSHH__AARRGGCC so they can expand to the shell's positional
+ +o the shell sets up the values used by BBAASSHH__AARRGGVV and
+ BBAASSHH__AARRGGCC so they can expand to the shell's positional
parameters even if extended debugging mode is not enabled
- +o a subshell inherits loops from its parent context, so
- bbrreeaakk or ccoonnttiinnuuee will cause the subshell to exit.
- Bash-5.0 and later reset the loop state to prevent the
+ +o a subshell inherits loops from its parent context, so
+ bbrreeaakk or ccoonnttiinnuuee will cause the subshell to exit.
+ Bash-5.0 and later reset the loop state to prevent the
exit
- +o variable assignments preceding builtins like eexxppoorrtt and
+ +o variable assignments preceding builtins like eexxppoorrtt and
rreeaaddoonnllyy that set attributes continue to affect variables
with the same name in the calling environment even if the
shell is not in posix mode
ccoommppaatt5500
- +o Bash-5.1 changed the way $$RRAANNDDOOMM is generated to intro-
+ +o Bash-5.1 changed the way $$RRAANNDDOOMM is generated to intro-
duce slightly more randomness. If the shell compatibility
- level is set to 50 or lower, it reverts to the method
- from bash-5.0 and previous versions, so seeding the ran-
- dom number generator by assigning a value to RRAANNDDOOMM will
+ level is set to 50 or lower, it reverts to the method
+ from bash-5.0 and previous versions, so seeding the ran-
+ dom number generator by assigning a value to RRAANNDDOOMM will
produce the same sequence as in bash-5.0
- +o If the command hash table is empty, bash versions prior
- to bash-5.1 printed an informational message to that ef-
- fect, even when producing output that can be reused as
- input. Bash-5.1 suppresses that message when the --ll op-
+ +o If the command hash table is empty, bash versions prior
+ to bash-5.1 printed an informational message to that ef-
+ fect, even when producing output that can be reused as
+ input. Bash-5.1 suppresses that message when the --ll op-
tion is supplied.
+ ccoommppaatt5511
+ +o The uunnsseett builtin treats attempts to unset array sub-
+ scripts @@ and ** differently depending on whether the ar-
+ ray is indexed or associative, and differently than in
+ previous versions.
+
SSEEEE AALLSSOO
bash(1), sh(1)
-GNU Bash 5.0 2004 Apr 20 BASH_BUILTINS(1)
+GNU Bash 5.2 2021 November 22 BASH_BUILTINS(1)
diff --git a/doc/builtins.1 b/doc/builtins.1
index 4413c76f..43d92a2f 100644
--- a/doc/builtins.1
+++ b/doc/builtins.1
@@ -7,14 +7,14 @@
.de FN
\fI\|\\$1\|\fP
..
-.TH BASH_BUILTINS 1 "2004 Apr 20" "GNU Bash 5.0"
+.TH BASH_BUILTINS 1 "2021 November 22" "GNU Bash 5.2"
.SH NAME
-bash, :, ., [, alias, bg, bind, break, builtin, caller,
-cd, command, compgen, complete,
-compopt, continue, declare, dirs, disown, echo, enable, eval, exec, exit,
+:, ., [, alias, bg, bind, break, builtin, caller,
+cd, command, compgen, complete, compopt,
+continue, declare, dirs, disown, echo, enable, eval, exec, exit,
export, false, fc, fg, getopts, hash, help, history, jobs, kill,
let, local, logout, mapfile, popd, printf, pushd, pwd, read,
-readonly, return, set,
+readarray, readonly, return, set,
shift, shopt, source, suspend, test, times, trap, true, type, typeset,
ulimit, umask, unalias, unset, wait \- bash built-in commands, see \fBbash\fR(1)
.SH BASH BUILTIN COMMANDS
diff --git a/doc/builtins.ps b/doc/builtins.ps
index ae11c544..1becc2a2 100644
--- a/doc/builtins.ps
+++ b/doc/builtins.ps
@@ -1,13 +1,13 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.22.4
-%%CreationDate: Wed Nov 18 15:13:06 2020
+%%CreationDate: Mon Sep 19 12:02:42 2022
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
%%+ font Symbol
%%+ font Courier
%%DocumentSuppliedResources: procset grops 1.22 4
-%%Pages: 26
+%%Pages: 27
%%PageOrder: Ascend
%%DocumentMedia: Default 612 792 0 () ()
%%Orientation: Portrait
@@ -242,19 +242,20 @@ BP
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10.95/Times-Bold@0 SF -.219(NA)72 84 S
-(ME).219 E F0 .288(bash, :, ., [, alias, bg, bind, break, b)108 96 R
-.287(uiltin, caller)-.2 F 2.787(,c)-.4 G .287
-(d, command, compgen, complete, compopt, continue, de-)-2.787 F .327
-(clare, dirs, diso)108 108 R .327(wn, echo, enable, e)-.25 F -.25(va)
--.25 G .327(l, e).25 F -.15(xe)-.15 G .327(c, e).15 F .327(xit, e)-.15 F
-.327(xport, f)-.15 F .327(alse, fc, fg, getopts, hash, help, history)-.1
-F 2.827(,j)-.65 G .328(obs, kill,)-2.827 F .124(let, local, logout, map\
-\214le, popd, printf, pushd, pwd, read, readonly)108 120 R 2.624(,r)-.65
-G .124(eturn, set, shift, shopt, source, suspend,)-2.624 F 1.926(test, \
-times, trap, true, type, typeset, ulimit, umask, unalias, unset, w)108
-132 R 1.927(ait \255 bash b)-.1 F 1.927(uilt-in commands, see)-.2 F/F2
-10/Times-Bold@0 SF(bash)108 144 Q F0(\(1\))A F1 -.329(BA)72 160.8 S
-(SH B).329 E(UIL)-.11 E(TIN COMMANDS)-1.007 E F0 .063
+(ME).219 E F0 .622(:, ., [, alias, bg, bind, break, b)108 96 R .622
+(uiltin, caller)-.2 F 3.122(,c)-.4 G .622
+(d, command, compgen, complete, compopt, continue, declare,)-3.122 F
+.076(dirs, diso)108 108 R .076(wn, echo, enable, e)-.25 F -.25(va)-.25 G
+.076(l, e).25 F -.15(xe)-.15 G .076(c, e).15 F .077(xit, e)-.15 F .077
+(xport, f)-.15 F .077(alse, fc, fg, getopts, hash, help, history)-.1 F
+2.577(,j)-.65 G .077(obs, kill, let, lo-)-2.577 F .077
+(cal, logout, map\214le, popd, printf, pushd, pwd, read, readarray)108
+120 R 2.577(,r)-.65 G(eadonly)-2.577 E 2.577(,r)-.65 G .076
+(eturn, set, shift, shopt, source, sus-)-2.577 F .279(pend, test, times\
+, trap, true, type, typeset, ulimit, umask, unalias, unset, w)108 132 R
+.279(ait \255 bash b)-.1 F .279(uilt-in commands, see)-.2 F/F2 10
+/Times-Bold@0 SF(bash)108 144 Q F0(\(1\))A F1 -.329(BA)72 160.8 S(SH B)
+.329 E(UIL)-.11 E(TIN COMMANDS)-1.007 E F0 .063
(Unless otherwise noted, each b)108 172.8 R .062(uiltin command documen\
ted in this section as accepting options preceded by)-.2 F F2<ad>108
184.8 Q F0(accepts)3.077 E F2<adad>3.077 E F0 .577
@@ -288,38 +289,39 @@ F2(sour)108 303.6 Q(ce)-.18 E F3(\214lename)2.5 E F0([)2.5 E F3(ar)A
(xit)-.15 E 1.33(status of the last command e)144 327.6 R -.15(xe)-.15 G
1.331(cuted from).15 F F3(\214lename)5.741 E F0 6.331(.I).18 G(f)-6.331
E F3(\214lename)5.741 E F0 1.331(does not contain a slash, \214le-)4.011
-F .489(names in)144 339.6 R/F4 9/Times-Bold@0 SF -.666(PA)2.989 G(TH)
--.189 E F0 .489(are used to \214nd the directory containing)2.739 F F3
-(\214lename)4.899 E F0 5.488(.T).18 G .488(he \214le searched for in)
--5.488 F F4 -.666(PA)2.988 G(TH)-.189 E F0 .832(need not be e)144 351.6
-R -.15(xe)-.15 G 3.332(cutable. When).15 F F2(bash)3.332 E F0 .832
-(is not in)3.332 F F3 .832(posix mode)3.332 F F0 3.332(,t)C .833
-(he current directory is searched if no)-3.332 F .982
-(\214le is found in)144 363.6 R F4 -.666(PA)3.481 G(TH)-.189 E/F5 9
-/Times-Roman@0 SF(.)A F0 .981(If the)5.481 F F2(sour)3.481 E(cepath)-.18
-E F0 .981(option to the)3.481 F F2(shopt)3.481 E F0 -.2(bu)3.481 G .981
-(iltin command is turned of).2 F .981(f, the)-.25 F F4 -.666(PA)144
-375.6 S(TH)-.189 E F0 .112(is not searched.)2.362 F .112(If an)5.112 F
-(y)-.15 E F3(ar)2.612 E(guments)-.37 E F0 .112(are supplied, the)2.612 F
-2.612(yb)-.15 G .112(ecome the positional parameters when)-2.612 F F3
-(\214lename)144 387.6 Q F0 .485(is e)2.985 F -.15(xe)-.15 G 2.985
-(cuted. Otherwise).15 F .485(the positional parameters are unchanged.)
-2.985 F .485(If the)5.485 F F2<ad54>2.985 E F0 .485(option is en-)2.985
-F(abled,)144 399.6 Q F2(sour)3.324 E(ce)-.18 E F0 .824(inherits an)3.324
-F 3.324(yt)-.15 G .824(rap on)-3.324 F F2(DEB)3.324 E(UG)-.1 E F0 3.324
-(;i)C 3.324(fi)-3.324 G 3.324(ti)-3.324 G 3.324(sn)-3.324 G .825(ot, an)
--3.324 F(y)-.15 E F2(DEB)3.325 E(UG)-.1 E F0 .825(trap string is sa)
-3.325 F -.15(ve)-.2 G 3.325(da).15 G .825(nd re-)-3.325 F .817
-(stored around the call to)144 411.6 R F2(sour)3.317 E(ce)-.18 E F0
-3.317(,a)C(nd)-3.317 E F2(sour)3.317 E(ce)-.18 E F0 .817(unsets the)
-3.317 F F2(DEB)3.317 E(UG)-.1 E F0 .817(trap while it e)3.317 F -.15(xe)
--.15 G 3.317(cutes. If).15 F F2<ad54>3.317 E F0(is)3.317 E 1.435
-(not set, and the sourced \214le changes the)144 423.6 R F2(DEB)3.935 E
-(UG)-.1 E F0 1.435(trap, the ne)3.935 F 3.935(wv)-.25 G 1.435
-(alue is retained when)-4.185 F F2(sour)3.935 E(ce)-.18 E F0 3.763
-(completes. The)144 435.6 R 1.262
-(return status is the status of the last command e)3.763 F 1.262
-(xited within the script \(0 if no)-.15 F(commands are e)144 447.6 Q
+F .023(names in)144 339.6 R/F4 9/Times-Bold@0 SF -.666(PA)2.523 G(TH)
+-.189 E F0 .022(are used to \214nd the directory containing)2.273 F F3
+(\214lename)4.432 E F0 2.522(,b).18 G(ut)-2.722 E F3(\214lename)2.522 E
+F0 .022(does not need to be)2.522 F -.15(exe)144 351.6 S 3.86
+(cutable. The).15 F 1.36(\214le searched for in)3.86 F F4 -.666(PA)3.86
+G(TH)-.189 E F0 1.361(need not be e)3.61 F -.15(xe)-.15 G 3.861
+(cutable. When).15 F F2(bash)3.861 E F0 1.361(is not in)3.861 F F3
+(posix)3.861 E(mode)144 363.6 Q F0 2.772(,i)C 2.772(ts)-2.772 G .272
+(earches the current directory if no \214le is found in)-2.772 F F4
+-.666(PA)2.771 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .271(If the)
+4.771 F F2(sour)2.771 E(cepath)-.18 E F0 .271(option to the)2.771 F F2
+(shopt)144 375.6 Q F0 -.2(bu)3.659 G 1.159(iltin command is turned of).2
+F 1.159(f, the)-.25 F F4 -.666(PA)3.659 G(TH)-.189 E F0 1.159
+(is not searched.)3.409 F 1.16(If an)6.159 F(y)-.15 E F3(ar)3.66 E
+(guments)-.37 E F0 1.16(are supplied,)3.66 F(the)144 387.6 Q 3.692(yb)
+-.15 G 1.192(ecome the positional parameters when)-3.692 F F3
+(\214lename)3.692 E F0 1.192(is e)3.692 F -.15(xe)-.15 G 3.691
+(cuted. Otherwise).15 F 1.191(the positional pa-)3.691 F .82
+(rameters are unchanged.)144 399.6 R .82(If the)5.82 F F2<ad54>3.32 E F0
+.82(option is enabled,)3.32 F F2(.)3.32 E F0 .82(inherits an)3.32 F 3.32
+(yt)-.15 G .82(rap on)-3.32 F F2(DEB)3.32 E(UG)-.1 E F0 3.32(;i)C 3.32
+(fi)-3.32 G 3.32(ti)-3.32 G 3.32(sn)-3.32 G(ot,)-3.32 E(an)144 411.6 Q
+(y)-.15 E F2(DEB)3.323 E(UG)-.1 E F0 .823(trap string is sa)3.323 F -.15
+(ve)-.2 G 3.322(da).15 G .822(nd restored around the call to)-3.322 F F2
+(.)3.322 E F0 3.322(,a)C(nd)-3.322 E F2(.)3.322 E F0 .822(unsets the)
+3.322 F F2(DEB)3.322 E(UG)-.1 E F0(trap)3.322 E .226(while it e)144
+423.6 R -.15(xe)-.15 G 2.726(cutes. If).15 F F2<ad54>2.727 E F0 .227
+(is not set, and the sourced \214le changes the)2.727 F F2(DEB)2.727 E
+(UG)-.1 E F0 .227(trap, the ne)2.727 F 2.727(wv)-.25 G .227(alue is)
+-2.977 F .891(retained when)144 435.6 R F2(.)3.391 E F0 3.391
+(completes. The)3.391 F .891
+(return status is the status of the last command e)3.391 F .89
+(xited within the)-.15 F(script \(0 if no commands are e)144 447.6 Q
-.15(xe)-.15 G(cuted\), and f).15 E(alse if)-.1 E F3(\214lename)4.41 E
F0(is not found or cannot be read.)2.68 E F2(alias)108 464.4 Q F0([)2.5
E F2<ad70>A F0 2.5(][)C F3(name)-2.5 E F0([=)A F3(value)A F0 2.5(].)C
@@ -364,2955 +366,3070 @@ F2<ad72>-2.5 E F3 -.1(ke)2.5 G(yseq)-.2 E F0(])A F2(bind)108 642 Q F0([)
G(ymap)-.2 E F0(])A F3 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F3
(function\255name)A F2(bind)108 678 Q F0([)2.5 E F2<ad6d>A F3 -.1(ke)2.5
G(ymap)-.2 E F0(])A F3 -.1(ke)2.5 G(yseq)-.2 E F0(:)A F3 -.37(re)C
-(adline\255command).37 E F0 .238(Display current)144 690 R F2 -.18(re)
+(adline\255command).37 E F2(bind)108 690 Q F3 -.37(re)2.5 G
+(adline-command-line).37 E F0 .238(Display current)144 702 R F2 -.18(re)
2.738 G(adline).18 E F0 -.1(ke)2.738 G 2.738(ya)-.05 G .239
(nd function bindings, bind a k)-2.738 F .539 -.15(ey s)-.1 H .239
(equence to a).15 F F2 -.18(re)2.739 G(adline).18 E F0 .239(function or)
-2.739 F .476(macro, or set a)144 702 R F2 -.18(re)2.976 G(adline).18 E
-F0 -.25(va)2.976 G 2.976(riable. Each).25 F .476(non-option ar)2.976 F
-.475(gument is a command as it w)-.18 F .475(ould appear in)-.1 F F3
-(.inputr)144.23 714 Q(c)-.37 E F0 2.967(,b).31 G .467
-(ut each binding or command must be passed as a separate ar)-3.167 F
-.468(gument; e.g., '"\\C\255x\\C\255r":)-.18 F 2.5
-(re\255read\255init\255\214le'. Options,)144 726 R(if supplied, ha)2.5 E
-.3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E(GNU Bash 5.0)72
-768 Q(2004 Apr 20)149.565 E(1)203.725 E 0 Cg EP
+2.739 F .04(macro, or set a)144 714 R F2 -.18(re)2.54 G(adline).18 E F0
+-.25(va)2.54 G 2.54(riable. Each).25 F .039(non-option ar)2.54 F .039
+(gument is a command as it w)-.18 F .039(ould appear in a)-.1 F F2 -.18
+(re)144 726 S(adline).18 E F0 1.471(initialization \214le such as)3.971
+F F3(.inputr)4.201 E(c)-.37 E F0 3.971(,b).31 G 1.472
+(ut each binding or command must be passed as a)-4.171 F(GNU Bash 5.2)72
+768 Q(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(1)190.545 E 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF<ad6d>144 84 Q/F2 10
-/Times-Italic@0 SF -.1(ke)2.5 G(ymap)-.2 E F0(Use)180 96 Q F2 -.1(ke)
-5.159 G(ymap)-.2 E F0 2.659(as the k)5.349 F -.15(ey)-.1 G 2.658
-(map to be af).15 F 2.658(fected by the subsequent bindings.)-.25 F
-(Acceptable)7.658 E F2 -.1(ke)180 108 S(ymap)-.2 E F0 3.192(names are)
-5.882 F F2 3.192(emacs, emacs\255standar)5.692 F 3.193
+E(UIL)-.1 E(TINS\(1\))-.92 E .574(separate ar)144 84 R .574
+(gument; e.g., '"\\C\255x\\C\255r": re\255read\255init\255\214le'.)-.18
+F .574(Options, if supplied, ha)5.574 F .874 -.15(ve t)-.2 H .574
+(he follo).15 F(wing)-.25 E(meanings:)144 96 Q/F1 10/Times-Bold@0 SF
+<ad6d>144 108 Q/F2 10/Times-Italic@0 SF -.1(ke)2.5 G(ymap)-.2 E F0(Use)
+180 120 Q F2 -.1(ke)5.158 G(ymap)-.2 E F0 2.658(as the k)5.348 F -.15
+(ey)-.1 G 2.658(map to be af).15 F 2.659
+(fected by the subsequent bindings.)-.25 F(Acceptable)7.659 E F2 -.1(ke)
+180 132 S(ymap)-.2 E F0 3.193(names are)5.883 F F2 3.193
+(emacs, emacs\255standar)5.693 F 3.192
(d, emacs\255meta, emacs\255ctlx, vi, vi\255mo)-.37 F(ve)-.1 E(,)-.1 E
-(vi\255command)180 120 Q F0 4.09(,a)C(nd)-4.09 E F2(vi\255insert)4.38 E
-F0(.).68 E F2(vi)6.589 E F0 1.589(is equi)4.089 F -.25(va)-.25 G 1.589
+(vi\255command)180 144 Q F0 4.089(,a)C(nd)-4.089 E F2(vi\255insert)4.379
+E F0(.).68 E F2(vi)6.589 E F0 1.589(is equi)4.089 F -.25(va)-.25 G 1.589
(lent to).25 F F2(vi\255command)4.089 E F0(\()4.089 E F2(vi\255mo)A(ve)
--.1 E F0 1.589(is also a syn-)4.089 F(on)180 132 Q(ym\);)-.15 E F2
-(emacs)2.5 E F0(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F2
-(emacs\255standar)2.5 E(d)-.37 E F0(.)A F1<ad6c>144 144 Q F0
-(List the names of all)180 144 Q F1 -.18(re)2.5 G(adline).18 E F0
-(functions.)2.5 E F1<ad70>144 156 Q F0(Display)180 156 Q F1 -.18(re)2.5
-G(adline).18 E F0(function names and bindings in such a w)2.5 E
-(ay that the)-.1 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad50>144 168 Q
-F0(List current)180 168 Q F1 -.18(re)2.5 G(adline).18 E F0
-(function names and bindings.)2.5 E F1<ad73>144 180 Q F0(Display)180 180
-Q F1 -.18(re)3.655 G(adline).18 E F0 -.1(ke)3.655 G 3.655(ys)-.05 G
-1.155(equences bound to macros and the strings the)-3.655 F 3.655(yo)
--.15 G 1.155(utput in such a)-3.655 F -.1(wa)180 192 S 2.5(yt).1 G
-(hat the)-2.5 E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad53>144 204 Q F0
-(Display)180 204 Q F1 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys)
--.05 G(equences bound to macros and the strings the)-2.5 E 2.5(yo)-.15 G
-(utput.)-2.5 E F1<ad76>144 216 Q F0(Display)180 216 Q F1 -.18(re)2.5 G
+-.1 E F0 1.59(is also a syn-)4.089 F(on)180 156 Q(ym\);)-.15 E F2(emacs)
+2.5 E F0(is equi)2.5 E -.25(va)-.25 G(lent to).25 E F2(emacs\255standar)
+2.5 E(d)-.37 E F0(.)A F1<ad6c>144 168 Q F0(List the names of all)180 168
+Q F1 -.18(re)2.5 G(adline).18 E F0(functions.)2.5 E F1<ad70>144 180 Q F0
+(Display)180 180 Q F1 -.18(re)2.5 G(adline).18 E F0
+(function names and bindings in such a w)2.5 E(ay that the)-.1 E 2.5(yc)
+-.15 G(an be re-read.)-2.5 E F1<ad50>144 192 Q F0(List current)180 192 Q
+F1 -.18(re)2.5 G(adline).18 E F0(function names and bindings.)2.5 E F1
+<ad73>144 204 Q F0(Display)180 204 Q F1 -.18(re)3.655 G(adline).18 E F0
+-.1(ke)3.655 G 3.655(ys)-.05 G 1.155
+(equences bound to macros and the strings the)-3.655 F 3.655(yo)-.15 G
+1.155(utput in such a)-3.655 F -.1(wa)180 216 S 2.5(yt).1 G(hat the)-2.5
+E 2.5(yc)-.15 G(an be re-read.)-2.5 E F1<ad53>144 228 Q F0(Display)180
+228 Q F1 -.18(re)2.5 G(adline).18 E F0 -.1(ke)2.5 G 2.5(ys)-.05 G
+(equences bound to macros and the strings the)-2.5 E 2.5(yo)-.15 G
+(utput.)-2.5 E F1<ad76>144 240 Q F0(Display)180 240 Q F1 -.18(re)2.5 G
(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E
(alues in such a w)-.25 E(ay that the)-.1 E 2.5(yc)-.15 G
-(an be re-read.)-2.5 E F1<ad56>144 228 Q F0(List current)180 228 Q F1
+(an be re-read.)-2.5 E F1<ad56>144 252 Q F0(List current)180 252 Q F1
-.18(re)2.5 G(adline).18 E F0 -.25(va)2.5 G(riable names and v).25 E
-(alues.)-.25 E F1<ad66>144 240 Q F2(\214lename)2.5 E F0(Read k)180 252 Q
+(alues.)-.25 E F1<ad66>144 264 Q F2(\214lename)2.5 E F0(Read k)180 276 Q
.3 -.15(ey b)-.1 H(indings from).15 E F2(\214lename)2.5 E F0(.)A F1
-<ad71>144 264 Q F2(function)2.5 E F0(Query about which k)180 276 Q -.15
+<ad71>144 288 Q F2(function)2.5 E F0(Query about which k)180 300 Q -.15
(ey)-.1 G 2.5(si).15 G -1.9 -.4(nv o)-2.5 H .2 -.1(ke t).4 H(he named).1
-E F2(function)2.5 E F0(.)A F1<ad75>144 288 Q F2(function)2.5 E F0
-(Unbind all k)180 300 Q -.15(ey)-.1 G 2.5(sb).15 G(ound to the named)
--2.5 E F2(function)2.5 E F0(.)A F1<ad72>144 312 Q F2 -.1(ke)2.5 G(yseq)
--.2 E F0(Remo)180 324 Q .3 -.15(ve a)-.15 H .3 -.15(ny c).15 H
+E F2(function)2.5 E F0(.)A F1<ad75>144 312 Q F2(function)2.5 E F0
+(Unbind all k)180 324 Q -.15(ey)-.1 G 2.5(sb).15 G(ound to the named)
+-2.5 E F2(function)2.5 E F0(.)A F1<ad72>144 336 Q F2 -.1(ke)2.5 G(yseq)
+-.2 E F0(Remo)180 348 Q .3 -.15(ve a)-.15 H .3 -.15(ny c).15 H
(urrent binding for).15 E F2 -.1(ke)2.5 G(yseq)-.2 E F0(.)A F1<ad78>144
-336 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2(shell\255command)A F0(Cause)
-180 348 Q F2(shell\255command)4.325 E F0 1.825(to be e)4.325 F -.15(xe)
+360 Q F2 -.1(ke)2.5 G(yseq)-.2 E F1(:)A F2(shell\255command)A F0(Cause)
+180 372 Q F2(shell\255command)4.325 E F0 1.825(to be e)4.325 F -.15(xe)
-.15 G 1.825(cuted whene).15 F -.15(ve)-.25 G(r).15 E F2 -.1(ke)4.325 G
(yseq)-.2 E F0 1.825(is entered.)4.325 F(When)6.825 E F2(shell\255com-)
-4.325 E(mand)180 360 Q F0 1.764(is e)4.264 F -.15(xe)-.15 G 1.765
+4.325 E(mand)180 384 Q F0 1.765(is e)4.265 F -.15(xe)-.15 G 1.765
(cuted, the shell sets the).15 F/F3 9/Times-Bold@0 SF(READLINE_LINE)
4.265 E F0 -.25(va)4.015 G 1.765(riable to the contents of the).25 F F1
--.18(re)180 372 S(adline).18 E F0 .375(line b)2.875 F(uf)-.2 E .375
+-.18(re)180 396 S(adline).18 E F0 .375(line b)2.874 F(uf)-.2 E .375
(fer and the)-.25 F F3(READLINE_POINT)2.875 E F0(and)2.625 E F3
(READLINE_MARK)2.875 E F0 -.25(va)2.625 G .375(riables to the).25 F
-1.185(current location of the insertion point and the sa)180 384 R -.15
-(ve)-.2 G 3.686(di).15 G 1.186(nsertion point \(the mark\), respec-)
--3.686 F(ti)180 396 Q -.15(ve)-.25 G(ly).15 E 5.702(.I)-.65 G 3.202(ft)
--5.702 G .702(he e)-3.202 F -.15(xe)-.15 G .702
-(cuted command changes the v).15 F .701(alue of an)-.25 F 3.201(yo)-.15
-G(f)-3.201 E F3(READLINE_LINE)3.201 E/F4 9/Times-Roman@0 SF(,)A F3
-(READ-)2.951 E(LINE_POINT)180 408 Q F4(,)A F0(or)3.58 E F3
-(READLINE_MARK)3.83 E F4(,)A F0 1.33(those ne)3.58 F 3.83(wv)-.25 G
-1.331(alues will be re\215ected in the editing)-4.08 F(state.)180 420 Q
-F1<ad58>144 432 Q F0 .83(List all k)180 432 R 1.13 -.15(ey s)-.1 H .829
+1.186(current location of the insertion point and the sa)180 408 R -.15
+(ve)-.2 G 3.685(di).15 G 1.185(nsertion point \(the mark\), respec-)
+-3.685 F(ti)180 420 Q -.15(ve)-.25 G(ly).15 E 5.377(.T)-.65 G .377
+(he shell assigns an)-5.377 F 2.877(yn)-.15 G .377(umeric ar)-2.877 F
+.377(gument the user supplied to the)-.18 F F3(READLINE_AR-)2.878 E
+(GUMENT)180 432 Q F0 -.25(va)3.605 G 3.855(riable. If).25 F 1.355
+(there w)3.855 F 1.354(as no ar)-.1 F 1.354(gument, that v)-.18 F 1.354
+(ariable is not set.)-.25 F 1.354(If the e)6.354 F -.15(xe)-.15 G(cuted)
+.15 E .343(command changes the v)180 444 R .343(alue of an)-.25 F 2.843
+(yo)-.15 G(f)-2.843 E F3(READLINE_LINE)2.844 E/F4 9/Times-Roman@0 SF(,)A
+F3(READLINE_POINT)2.594 E F4(,)A F0(or)2.594 E F3(READ-)2.844 E
+(LINE_MARK)180 456 Q F4(,)A F0(those ne)2.25 E 2.5(wv)-.25 G
+(alues will be re\215ected in the editing state.)-2.75 E F1<ad58>144 468
+Q F0 .83(List all k)180 468 R 1.13 -.15(ey s)-.1 H .829
(equences bound to shell commands and the associated commands in a for)
-.15 F(-)-.2 E(mat that can be reused as input.)180 444 Q(The return v)
-144 460.8 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
+.15 F(-)-.2 E(mat that can be reused as input.)180 480 Q(The return v)
+144 496.8 Q(alue is 0 unless an unrecognized option is gi)-.25 E -.15
(ve)-.25 G 2.5(no).15 G 2.5(ra)-2.5 G 2.5(ne)-2.5 G(rror occurred.)-2.5
-E F1(br)108 477.6 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .054
-(Exit from within a)144 489.6 R F1 -.25(fo)2.554 G(r).25 E F0(,)A F1
+E F1(br)108 513.6 Q(eak)-.18 E F0([)2.5 E F2(n)A F0(])A .054
+(Exit from within a)144 525.6 R F1 -.25(fo)2.554 G(r).25 E F0(,)A F1
(while)2.554 E F0(,)A F1(until)2.555 E F0 2.555(,o)C(r)-2.555 E F1
(select)2.555 E F0 2.555(loop. If)2.555 F F2(n)2.555 E F0 .055
(is speci\214ed, break)2.555 F F2(n)2.555 E F0(le)2.555 E -.15(ve)-.25 G
(ls.).15 E F2(n)5.415 E F0 .055(must be)2.795 F/F5 10/Symbol SF<b3>2.555
-E F0(1.)2.555 E(If)144 501.6 Q F2(n)3.075 E F0 .215(is greater than the\
+E F0(1.)2.555 E(If)144 537.6 Q F2(n)3.075 E F0 .215(is greater than the\
number of enclosing loops, all enclosing loops are e)2.955 F 2.714
(xited. The)-.15 F .214(return v)2.714 F(alue)-.25 E(is 0 unless)144
-513.6 Q F2(n)2.5 E F0(is not greater than or equal to 1.)2.5 E F1 -.2
-(bu)108 530.4 S(iltin).2 E F2(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E
-F2(ar)A(guments)-.37 E F0(])A(Ex)144 542.4 Q .77
+549.6 Q F2(n)2.5 E F0(is not greater than or equal to 1.)2.5 E F1 -.2
+(bu)108 566.4 S(iltin).2 E F2(shell\255b)2.5 E(uiltin)-.2 E F0([)2.5 E
+F2(ar)A(guments)-.37 E F0(])A(Ex)144 578.4 Q .77
(ecute the speci\214ed shell b)-.15 F .77(uiltin, passing it)-.2 F F2
(ar)3.601 E(guments)-.37 E F0 3.271(,a).27 G .771(nd return its e)-3.271
F .771(xit status.)-.15 F .771(This is useful)5.771 F .616
(when de\214ning a function whose name is the same as a shell b)144
-554.4 R .615(uiltin, retaining the functionality of)-.2 F .57(the b)144
-566.4 R .57(uiltin within the function.)-.2 F(The)5.57 E F1(cd)3.07 E F0
+590.4 R .615(uiltin, retaining the functionality of)-.2 F .57(the b)144
+602.4 R .57(uiltin within the function.)-.2 F(The)5.57 E F1(cd)3.07 E F0
-.2(bu)3.07 G .57(iltin is commonly rede\214ned this w).2 F(ay)-.1 E
-5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 578.4 Q(alse if)-.1
+5.57(.T)-.65 G .57(he return status)-5.57 F(is f)144 614.4 Q(alse if)-.1
E F2(shell\255b)2.84 E(uiltin)-.2 E F0(is not a shell b)2.74 E
-(uiltin command.)-.2 E F1(caller)108 595.2 Q F0([)2.5 E F2 -.2(ex)C(pr)
-.2 E F0(])A .254(Returns the conte)144 607.2 R .254(xt of an)-.15 F
+(uiltin command.)-.2 E F1(caller)108 631.2 Q F0([)2.5 E F2 -.2(ex)C(pr)
+.2 E F0(])A .254(Returns the conte)144 643.2 R .254(xt of an)-.15 F
2.754(ya)-.15 G(cti)-2.754 E .554 -.15(ve s)-.25 H .254
(ubroutine call \(a shell function or a script e).15 F -.15(xe)-.15 G
-.254(cuted with the).15 F F1(.)2.753 E F0(or)2.753 E F1(sour)144 619.2 Q
+.254(cuted with the).15 F F1(.)2.753 E F0(or)2.753 E F1(sour)144 655.2 Q
(ce)-.18 E F0 -.2(bu)2.824 G 2.824(iltins\). W).2 F(ithout)-.4 E F2 -.2
(ex)2.824 G(pr).2 E F0(,)A F1(caller)2.824 E F0 .324
(displays the line number and source \214lename of the current)2.824 F
-.254(subroutine call.)144 631.2 R .254(If a non-ne)5.254 F -.05(ga)-.15
+.254(subroutine call.)144 667.2 R .254(If a non-ne)5.254 F -.05(ga)-.15
G(ti).05 E .554 -.15(ve i)-.25 H(nte).15 E .253(ger is supplied as)-.15
F F2 -.2(ex)2.753 G(pr).2 E F0(,)A F1(caller)2.753 E F0 .253
(displays the line number)2.753 F 2.753(,s)-.4 G(ub-)-2.753 E 1.327(rou\
tine name, and source \214le corresponding to that position in the curr\
-ent e)144 643.2 R -.15(xe)-.15 G 1.328(cution call stack.).15 F .001
-(This e)144 655.2 R .001(xtra information may be used, for e)-.15 F .001
+ent e)144 679.2 R -.15(xe)-.15 G 1.328(cution call stack.).15 F .001
+(This e)144 691.2 R .001(xtra information may be used, for e)-.15 F .001
(xample, to print a stack trace.)-.15 F(The current frame is frame)5 E
-3.019(0. The)144 667.2 R .519(return v)3.019 F .519
+3.019(0. The)144 703.2 R .519(return v)3.019 F .519
(alue is 0 unless the shell is not e)-.25 F -.15(xe)-.15 G .52
(cuting a subroutine call or).15 F F2 -.2(ex)3.02 G(pr).2 E F0 .52
-(does not corre-)3.02 F(spond to a v)144 679.2 Q
-(alid position in the call stack.)-.25 E F1(cd)108 696 Q F0([)2.5 E F1
-<ad4c>A F0(|[)A F1<ad50>A F0([)2.5 E F1<ad65>A F0(]] [\255@]] [)A F2
-(dir)A F0(])A .322(Change the current directory to)144 708 R F2(dir)
-2.822 E F0 5.322(.i)C(f)-5.322 E F2(dir)2.822 E F0 .321
-(is not supplied, the v)2.822 F .321(alue of the)-.25 F F3(HOME)2.821 E
-F0 .321(shell v)2.571 F .321(ariable is)-.25 F 1.035(the def)144 720 R
-3.535(ault. An)-.1 F 3.535(ya)-.15 G 1.035(dditional ar)-3.535 F 1.035
-(guments follo)-.18 F(wing)-.25 E F2(dir)3.535 E F0 1.035(are ignored.)
-3.535 F 1.036(The v)6.035 F(ariable)-.25 E F3(CDP)3.536 E -.855(AT)-.666
-G(H).855 E F0(de\214nes)3.286 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)
-149.565 E(2)203.725 E 0 Cg EP
+(does not corre-)3.02 F(spond to a v)144 715.2 Q
+(alid position in the call stack.)-.25 E(GNU Bash 5.2)72 768 Q(2021 No)
+136.385 E -.15(ve)-.15 G(mber 22).15 E(2)190.545 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E .827
-(the search path for the directory containing)144 84 R/F1 10
-/Times-Italic@0 SF(dir)3.676 E F0 3.326(:e).73 G .826
-(ach directory name in)-3.326 F/F2 9/Times-Bold@0 SF(CDP)3.326 E -.855
-(AT)-.666 G(H).855 E F0 .826(is searched for)3.076 F F1(dir)144 96 Q F0
-5.664(.A)C(lternati)-5.664 E .964 -.15(ve d)-.25 H .665
-(irectory names in).15 F F2(CDP)3.165 E -.855(AT)-.666 G(H).855 E F0
-.665(are separated by a colon \(:\).)2.915 F 3.165(An)5.665 G .665
-(ull directory name)-3.165 F(in)144 108 Q F2(CDP)3.102 E -.855(AT)-.666
-G(H).855 E F0 .602(is the same as the current directory)2.852 F 3.102
-(,i)-.65 G .602(.e., `)-3.102 F(`)-.74 E/F3 10/Times-Bold@0 SF(.)A F0
--.74('')C 5.602(.I).74 G(f)-5.602 E F1(dir)3.451 E F0(be)3.831 E .601
-(gins with a slash \(/\), then)-.15 F F2(CD-)3.101 E -.666(PA)144 120 S
-(TH)-.189 E F0 1.003(is not used.)3.253 F(The)6.003 E F3<ad50>3.503 E F0
-1.003(option causes)3.503 F F3(cd)3.503 E F0 1.003(to use the ph)3.503 F
-1.003(ysical directory structure by resolving)-.05 F .123
-(symbolic links while tra)144 132 R -.15(ve)-.2 G(rsing).15 E F1(dir)
-2.623 E F0 .123(and before processing instances of)2.623 F F1(..)2.623 E
-F0(in)2.623 E F1(dir)2.623 E F0 .123(\(see also the)2.623 F F3<ad50>
-2.623 E F0(op-)2.622 E .429(tion to the)144 144 R F3(set)2.929 E F0 -.2
-(bu)2.929 G .429(iltin command\); the).2 F F3<ad4c>2.929 E F0 .43
-(option forces symbolic links to be follo)2.929 F .43(wed by resolving)
--.25 F .473(the link after processing instances of)144 156 R F1(..)2.973
-E F0(in)2.973 E F1(dir)2.973 E F0 5.473(.I)C(f)-5.473 E F1(..)2.973 E F0
-.473(appears in)2.973 F F1(dir)2.972 E F0 2.972(,i)C 2.972(ti)-2.972 G
-2.972(sp)-2.972 G .472(rocessed by remo)-2.972 F .472(ving the)-.15 F
-.948(immediately pre)144 168 R .948(vious pathname component from)-.25 F
-F1(dir)3.448 E F0 3.448(,b)C .948(ack to a slash or the be)-3.448 F .948
-(ginning of)-.15 F F1(dir)3.448 E F0 5.948(.I)C(f)-5.948 E(the)144 180 Q
-F3<ad65>2.868 E F0 .368(option is supplied with)2.868 F F3<ad50>2.868 E
-F0 2.868(,a)C .368(nd the current w)-2.868 F .368
-(orking directory cannot be successfully deter)-.1 F(-)-.2 E .612
-(mined after a successful directory change,)144 192 R F3(cd)3.112 E F0
-.612(will return an unsuccessful status.)3.112 F .613(On systems that)
-5.612 F .354(support it, the)144 204 R F3<ad40>2.854 E F0 .354
-(option presents the e)2.854 F .354(xtended attrib)-.15 F .354
-(utes associated with a \214le as a directory)-.2 F 5.353(.A)-.65 G(n)
--5.353 E(ar)144 216 Q .072(gument of)-.18 F F3<ad>2.572 E F0 .072
-(is con)2.572 F -.15(ve)-.4 G .072(rted to).15 F F2($OLDPWD)2.572 E F0
-.072(before the directory change is attempted.)2.322 F .072
-(If a non-empty)5.072 F .055(directory name from)144 228 R F2(CDP)2.555
-E -.855(AT)-.666 G(H).855 E F0 .055(is used, or if)2.305 F F3<ad>2.555 E
-F0 .055(is the \214rst ar)2.555 F .054
-(gument, and the directory change is suc-)-.18 F .168
-(cessful, the absolute pathname of the ne)144 240 R 2.668(ww)-.25 G .168
-(orking directory is written to the standard output.)-2.768 F(The)5.168
-E(return v)144 252 Q(alue is true if the directory w)-.25 E
-(as successfully changed; f)-.1 E(alse otherwise.)-.1 E F3(command)108
-268.8 Q F0([)2.5 E F3(\255pVv)A F0(])A F1(command)2.5 E F0([)2.5 E F1
-(ar)A(g)-.37 E F0(...])2.5 E(Run)144 280.8 Q F1(command)2.765 E F0(with)
-3.335 E F1(ar)2.895 E(gs)-.37 E F0 .065
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(cd)108 84 Q F0([)2.5
+E F1<ad4c>A F0(|[)A F1<ad50>A F0([)2.5 E F1<ad65>A F0(]] [\255@]] [)A/F2
+10/Times-Italic@0 SF(dir)A F0(])A .322(Change the current directory to)
+144 96 R F2(dir)2.822 E F0 5.322(.i)C(f)-5.322 E F2(dir)2.822 E F0 .321
+(is not supplied, the v)2.822 F .321(alue of the)-.25 F/F3 9
+/Times-Bold@0 SF(HOME)2.821 E F0 .321(shell v)2.571 F .321(ariable is)
+-.25 F .929(the def)144 108 R 3.429(ault. The)-.1 F -.25(va)3.429 G
+(riable).25 E F3(CDP)3.429 E -.855(AT)-.666 G(H).855 E F0 .93
+(de\214nes the search path for the directory containing)3.179 F F2(dir)
+3.78 E F0 3.43(:e).73 G(ach)-3.43 E .407(directory name in)144 120 R F3
+(CDP)2.907 E -.855(AT)-.666 G(H).855 E F0 .407(is searched for)2.657 F
+F2(dir)2.907 E F0 5.407(.A)C(lternati)-5.407 E .707 -.15(ve d)-.25 H
+.407(irectory names in).15 F F3(CDP)2.907 E -.855(AT)-.666 G(H).855 E F0
+.406(are sepa-)2.656 F .799(rated by a colon \(:\).)144 132 R 3.299(An)
+5.799 G .799(ull directory name in)-3.299 F F3(CDP)3.299 E -.855(AT)
+-.666 G(H).855 E F0 .799(is the same as the current directory)3.049 F
+3.3(,i)-.65 G(.e.,)-3.3 E -.74(``)144 144 S F1(.).74 E F0 -.74('')C
+5.428(.I).74 G(f)-5.428 E F2(dir)3.278 E F0(be)3.658 E .428
+(gins with a slash \(/\), then)-.15 F F3(CDP)2.928 E -.855(AT)-.666 G(H)
+.855 E F0 .428(is not used.)2.678 F(The)5.428 E F1<ad50>2.927 E F0 .427
+(option causes)2.927 F F1(cd)2.927 E F0 .427(to use the)2.927 F(ph)144
+156 Q .167
+(ysical directory structure by resolving symbolic links while tra)-.05 F
+-.15(ve)-.2 G(rsing).15 E F2(dir)2.668 E F0 .168(and before processing)
+2.668 F 1.225(instances of)144 168 R F2(..)3.725 E F0(in)3.725 E F2(dir)
+3.725 E F0 1.225(\(see also the)3.725 F F1<ad50>3.725 E F0 1.225
+(option to the)3.725 F F1(set)3.725 E F0 -.2(bu)3.725 G 1.225
+(iltin command\); the).2 F F1<ad4c>3.725 E F0 1.225(option forces)3.725
+F .411(symbolic links to be follo)144 180 R .411
+(wed by resolving the link after processing instances of)-.25 F F2(..)
+2.911 E F0(in)2.911 E F2(dir)2.911 E F0 5.411(.I)C(f)-5.411 E F2(..)
+2.912 E F0(ap-)2.912 E .341(pears in)144 192 R F2(dir)2.841 E F0 2.841
+(,i)C 2.841(ti)-2.841 G 2.841(sp)-2.841 G .341(rocessed by remo)-2.841 F
+.341(ving the immediately pre)-.15 F .34(vious pathname component from)
+-.25 F F2(dir)2.84 E F0(,)A .175(back to a slash or the be)144 204 R
+.175(ginning of)-.15 F F2(dir)2.675 E F0 5.175(.I)C 2.675(ft)-5.175 G
+(he)-2.675 E F1<ad65>2.676 E F0 .176(option is supplied with)2.676 F F1
+<ad50>2.676 E F0 2.676(,a)C .176(nd the current w)-2.676 F(ork-)-.1 E
+.341(ing directory cannot be successfully determined after a successful\
+ directory change,)144 216 R F1(cd)2.84 E F0 .34(will return)2.84 F .356
+(an unsuccessful status.)144 228 R .356(On systems that support it, the)
+5.356 F F1<ad40>2.857 E F0 .357(option presents the e)2.857 F .357
+(xtended attrib)-.15 F(utes)-.2 E .07
+(associated with a \214le as a directory)144 240 R 5.07(.A)-.65 G 2.569
+(na)-5.07 G -.18(rg)-2.569 G .069(ument of).18 F F1<ad>2.569 E F0 .069
+(is con)2.569 F -.15(ve)-.4 G .069(rted to).15 F F3($OLDPWD)2.569 E F0
+.069(before the direc-)2.319 F .306(tory change is attempted.)144 252 R
+.306(If a non-empty directory name from)5.306 F F3(CDP)2.806 E -.855(AT)
+-.666 G(H).855 E F0 .306(is used, or if)2.556 F F1<ad>2.807 E F0 .307
+(is the \214rst)2.807 F(ar)144 264 Q .116(gument, and the directory cha\
+nge is successful, the absolute pathname of the ne)-.18 F 2.615(ww)-.25
+G .115(orking direc-)-2.715 F .15
+(tory is written to the standard output.)144 276 R .15
+(If the directory change is successful,)5.15 F F1(cd)2.65 E F0 .15
+(sets the v)2.65 F .15(alue of the)-.25 F F1(PWD)144 288 Q F0(en)2.958 E
+.458(vironment v)-.4 F .458(ariable to the ne)-.25 F 2.958(wd)-.25 G
+.458(irectory name, and sets the)-2.958 F F1(OLDPWD)2.957 E F0(en)2.957
+E .457(vironment v)-.4 F(ari-)-.25 E .125(able to the v)144 300 R .125
+(alue of the current w)-.25 F .126(orking directory before the change.)
+-.1 F .126(The return v)5.126 F .126(alue is true if the)-.25 F
+(directory w)144 312 Q(as successfully changed; f)-.1 E(alse otherwise.)
+-.1 E F1(command)108 328.8 Q F0([)2.5 E F1(\255pVv)A F0(])A F2(command)
+2.5 E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(Run)144 340.8 Q F2
+(command)2.765 E F0(with)3.335 E F2(ar)2.895 E(gs)-.37 E F0 .065
(suppressing the normal shell function lookup.)2.835 F .064(Only b)5.064
-F .064(uiltin commands or)-.2 F .501(commands found in the)144 292.8 R
-F2 -.666(PA)3.001 G(TH)-.189 E F0 .502(are e)2.751 F -.15(xe)-.15 G
-3.002(cuted. If).15 F(the)3.002 E F3<ad70>3.002 E F0 .502(option is gi)
-3.002 F -.15(ve)-.25 G .502(n, the search for).15 F F1(command)3.202 E
-F0(is)3.772 E .4(performed using a def)144 304.8 R .4(ault v)-.1 F .4
-(alue for)-.25 F F2 -.666(PA)2.9 G(TH)-.189 E F0 .399
+F .064(uiltin commands or)-.2 F .501(commands found in the)144 352.8 R
+F3 -.666(PA)3.001 G(TH)-.189 E F0 .502(are e)2.751 F -.15(xe)-.15 G
+3.002(cuted. If).15 F(the)3.002 E F1<ad70>3.002 E F0 .502(option is gi)
+3.002 F -.15(ve)-.25 G .502(n, the search for).15 F F2(command)3.202 E
+F0(is)3.772 E .4(performed using a def)144 364.8 R .4(ault v)-.1 F .4
+(alue for)-.25 F F3 -.666(PA)2.9 G(TH)-.189 E F0 .399
(that is guaranteed to \214nd all of the standard utilities.)2.649 F(If)
-5.399 E .174(either the)144 316.8 R F3<ad56>2.674 E F0(or)2.674 E F3
-<ad76>2.674 E F0 .175(option is supplied, a description of)2.674 F F1
-(command)2.875 E F0 .175(is printed.)3.445 F(The)5.175 E F3<ad76>2.675 E
-F0 .175(option causes)2.675 F 3.318(as)144 328.8 S .818(ingle w)-3.318 F
+5.399 E .174(either the)144 376.8 R F1<ad56>2.674 E F0(or)2.674 E F1
+<ad76>2.674 E F0 .175(option is supplied, a description of)2.674 F F2
+(command)2.875 E F0 .175(is printed.)3.445 F(The)5.175 E F1<ad76>2.675 E
+F0 .175(option causes)2.675 F 3.318(as)144 388.8 S .818(ingle w)-3.318 F
.817(ord indicating the command or \214lename used to in)-.1 F -.2(vo)
--.4 G -.1(ke).2 G F1(command)3.617 E F0 .817(to be displayed; the)4.087
-F F3<ad56>144 340.8 Q F0 .249(option produces a more v)2.749 F .249
-(erbose description.)-.15 F .249(If the)5.249 F F3<ad56>2.749 E F0(or)
-2.749 E F3<ad76>2.75 E F0 .25(option is supplied, the e)2.75 F .25
-(xit status)-.15 F 1.005(is 0 if)144 352.8 R F1(command)3.705 E F0 -.1
+-.4 G -.1(ke).2 G F2(command)3.617 E F0 .817(to be displayed; the)4.087
+F F1<ad56>144 400.8 Q F0 .249(option produces a more v)2.749 F .249
+(erbose description.)-.15 F .249(If the)5.249 F F1<ad56>2.749 E F0(or)
+2.749 E F1<ad76>2.75 E F0 .25(option is supplied, the e)2.75 F .25
+(xit status)-.15 F 1.005(is 0 if)144 412.8 R F2(command)3.705 E F0 -.1
(wa)4.275 G 3.505(sf).1 G 1.005(ound, and 1 if not.)-3.505 F 1.004
-(If neither option is supplied and an error occurred or)6.005 F F1
-(command)144.2 364.8 Q F0 1.598(cannot be found, the e)4.868 F 1.599
+(If neither option is supplied and an error occurred or)6.005 F F2
+(command)144.2 424.8 Q F0 1.598(cannot be found, the e)4.868 F 1.599
(xit status is 127.)-.15 F 1.599(Otherwise, the e)6.599 F 1.599
-(xit status of the)-.15 F F3(command)4.099 E F0 -.2(bu)144 376.8 S
-(iltin is the e).2 E(xit status of)-.15 E F1(command)2.7 E F0(.).77 E F3
-(compgen)108 393.6 Q F0([)2.5 E F1(option)A F0 2.5(][)C F1(wor)-2.5 E(d)
--.37 E F0(])A .013(Generate possible completion matches for)144 405.6 R
-F1(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F1(option)2.513
+(xit status of the)-.15 F F1(command)4.099 E F0 -.2(bu)144 436.8 S
+(iltin is the e).2 E(xit status of)-.15 E F2(command)2.7 E F0(.).77 E F1
+(compgen)108 453.6 Q F0([)2.5 E F2(option)A F0 2.5(][)C F2(wor)-2.5 E(d)
+-.37 E F0(])A .013(Generate possible completion matches for)144 465.6 R
+F2(wor)2.513 E(d)-.37 E F0 .013(according to the)2.513 F F2(option)2.513
E F0 .013(s, which may be an)B 2.512(yo)-.15 G(ption)-2.512 E .981
-(accepted by the)144 417.6 R F3(complete)3.481 E F0 -.2(bu)3.481 G .981
-(iltin with the e).2 F .981(xception of)-.15 F F3<ad70>3.481 E F0(and)
-3.481 E F3<ad72>3.481 E F0 3.481(,a)C .982(nd write the matches to the)
--3.481 F .131(standard output.)144 429.6 R .131(When using the)5.131 F
-F3<ad46>2.631 E F0(or)2.631 E F3<ad43>2.631 E F0 .131(options, the v)
+(accepted by the)144 477.6 R F1(complete)3.481 E F0 -.2(bu)3.481 G .981
+(iltin with the e).2 F .981(xception of)-.15 F F1<ad70>3.481 E F0(and)
+3.481 E F1<ad72>3.481 E F0 3.481(,a)C .982(nd write the matches to the)
+-3.481 F .131(standard output.)144 489.6 R .131(When using the)5.131 F
+F1<ad46>2.631 E F0(or)2.631 E F1<ad43>2.631 E F0 .131(options, the v)
2.631 F .13(arious shell v)-.25 F .13(ariables set by the program-)-.25
-F(mable completion f)144 441.6 Q(acilities, while a)-.1 E -.25(va)-.2 G
+F(mable completion f)144 501.6 Q(acilities, while a)-.1 E -.25(va)-.2 G
(ilable, will not ha).25 E .3 -.15(ve u)-.2 H(seful v).15 E(alues.)-.25
-E .352(The matches will be generated in the same w)144 465.6 R .352
+E .352(The matches will be generated in the same w)144 525.6 R .352
(ay as if the programmable completion code had gen-)-.1 F .02(erated th\
em directly from a completion speci\214cation with the same \215ags.)144
-477.6 R(If)5.02 E F1(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)
-2.52 F(those completions matching)144 489.6 Q F1(wor)2.5 E(d)-.37 E F0
-(will be displayed.)2.5 E(The return v)144 513.6 Q
+537.6 R(If)5.02 E F2(wor)2.52 E(d)-.37 E F0 .02(is speci\214ed, only)
+2.52 F(those completions matching)144 549.6 Q F2(wor)2.5 E(d)-.37 E F0
+(will be displayed.)2.5 E(The return v)144 573.6 Q
(alue is true unless an in)-.25 E -.25(va)-.4 G
-(lid option is supplied, or no matches were generated.).25 E F3
-(complete)108 530.4 Q F0([)2.5 E F3(\255abcdefgjksuv)A F0 2.5(][)C F3
-<ad6f>-2.5 E F1(comp-option)2.5 E F0 2.5(][)C F3(\255DEI)-2.5 E F0 2.5
-(][)C F3<ad41>-2.5 E F1(action)2.5 E F0 2.5(][)C F3<ad47>-2.5 E F1
-(globpat)2.5 E F0 2.5(][)C F3<ad57>-2.5 E F1(wor)2.5 E(dlist)-.37 E F0
-(])A([)144 542.4 Q F3<ad46>A F1(function)2.5 E F0 2.5(][)C F3<ad43>-2.5
-E F1(command)2.5 E F0 2.5(][)C F3<ad58>-2.5 E F1(\214lterpat)2.5 E F0
-2.5(][)C F3<ad50>-2.5 E F1(pr)2.5 E(e\214x)-.37 E F0 2.5(][)C F3<ad53>
--2.5 E F1(suf)2.5 E<8c78>-.18 E F0(])A F1(name)2.5 E F0([)2.5 E F1
-(name ...)A F0(])A F3(complete \255pr)108 554.4 Q F0([)2.5 E F3(\255DEI)
-A F0 2.5(][)C F1(name)-2.5 E F0(...])2.5 E .633(Specify ho)144 566.4 R
-3.133(wa)-.25 G -.18(rg)-3.133 G .633(uments to each).18 F F1(name)3.133
-E F0 .633(should be completed.)3.133 F .634(If the)5.634 F F3<ad70>3.134
+(lid option is supplied, or no matches were generated.).25 E F1
+(complete)108 590.4 Q F0([)2.5 E F1(\255abcdefgjksuv)A F0 2.5(][)C F1
+<ad6f>-2.5 E F2(comp-option)2.5 E F0 2.5(][)C F1(\255DEI)-2.5 E F0 2.5
+(][)C F1<ad41>-2.5 E F2(action)2.5 E F0 2.5(][)C F1<ad47>-2.5 E F2
+(globpat)2.5 E F0 2.5(][)C F1<ad57>-2.5 E F2(wor)2.5 E(dlist)-.37 E F0
+(])A([)144 602.4 Q F1<ad46>A F2(function)2.5 E F0 2.5(][)C F1<ad43>-2.5
+E F2(command)2.5 E F0 2.5(][)C F1<ad58>-2.5 E F2(\214lterpat)2.5 E F0
+2.5(][)C F1<ad50>-2.5 E F2(pr)2.5 E(e\214x)-.37 E F0 2.5(][)C F1<ad53>
+-2.5 E F2(suf)2.5 E<8c78>-.18 E F0(])A F2(name)2.5 E F0([)2.5 E F2
+(name ...)A F0(])A F1(complete \255pr)108 614.4 Q F0([)2.5 E F1(\255DEI)
+A F0 2.5(][)C F2(name)-2.5 E F0(...])2.5 E .633(Specify ho)144 626.4 R
+3.133(wa)-.25 G -.18(rg)-3.133 G .633(uments to each).18 F F2(name)3.133
+E F0 .633(should be completed.)3.133 F .634(If the)5.634 F F1<ad70>3.134
E F0 .634(option is supplied, or if no)3.134 F .14
-(options are supplied, e)144 578.4 R .139
+(options are supplied, e)144 638.4 R .139
(xisting completion speci\214cations are printed in a w)-.15 F .139
(ay that allo)-.1 F .139(ws them to be)-.25 F .31(reused as input.)144
-590.4 R(The)5.31 E F3<ad72>2.81 E F0 .31(option remo)2.81 F -.15(ve)-.15
-G 2.81(sac).15 G .31(ompletion speci\214cation for each)-2.81 F F1(name)
-2.81 E F0 2.81(,o)C 1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E F1
+650.4 R(The)5.31 E F1<ad72>2.81 E F0 .31(option remo)2.81 F -.15(ve)-.15
+G 2.81(sac).15 G .31(ompletion speci\214cation for each)-2.81 F F2(name)
+2.81 E F0 2.81(,o)C 1.11 -.4(r, i)-2.81 H 2.81(fn).4 G(o)-2.81 E F2
(name)2.81 E F0(s)A 1.208
-(are supplied, all completion speci\214cations.)144 602.4 R(The)6.208 E
-F3<ad44>3.708 E F0 1.207(option indicates that other supplied options)
-3.707 F .5(and actions should apply to the `)144 614.4 R(`def)-.74 E
+(are supplied, all completion speci\214cations.)144 662.4 R(The)6.208 E
+F1<ad44>3.708 E F0 1.207(option indicates that other supplied options)
+3.707 F .5(and actions should apply to the `)144 674.4 R(`def)-.74 E
(ault')-.1 E 3('c)-.74 G .5
(ommand completion; that is, completion attempted on)-3 F 3.455(ac)144
-626.4 S .955(ommand for which no completion has pre)-3.455 F .955
-(viously been de\214ned.)-.25 F(The)5.955 E F3<ad45>3.455 E F0 .955
+686.4 S .955(ommand for which no completion has pre)-3.455 F .955
+(viously been de\214ned.)-.25 F(The)5.955 E F1<ad45>3.455 E F0 .955
(option indicates that)3.455 F .876
-(other supplied options and actions should apply to `)144 638.4 R
+(other supplied options and actions should apply to `)144 698.4 R
(`empty')-.74 E 3.376('c)-.74 G .876(ommand completion; that is, com-)
--3.376 F .448(pletion attempted on a blank line.)144 650.4 R(The)5.447 E
-F3<ad49>2.947 E F0 .447
-(option indicates that other supplied options and actions)2.947 F .123
-(should apply to completion on the initial non-assignment w)144 662.4 R
-.123(ord on the line, or after a command de-)-.1 F 1.021
-(limiter such as)144 674.4 R F3(;)3.521 E F0(or)3.521 E F3(|)3.521 E F0
-3.521(,w)C 1.021(hich is usually command name completion.)-3.521 F 1.02
-(If multiple options are sup-)6.02 F .707(plied, the)144 686.4 R F3
-<ad44>3.207 E F0 .707(option tak)3.207 F .707(es precedence o)-.1 F -.15
-(ve)-.15 G(r).15 E F3<ad45>3.208 E F0 3.208(,a)C .708(nd both tak)-3.208
-F 3.208(ep)-.1 G .708(recedence o)-3.208 F -.15(ve)-.15 G(r).15 E F3
-<ad49>3.208 E F0 5.708(.I)C 3.208(fa)-5.708 G 1.008 -.15(ny o)-3.208 H
-(f).15 E F3<ad44>3.208 E F0(,)A F3<ad45>144 698.4 Q F0 2.604(,o)C(r)
--2.604 E F3<ad49>2.604 E F0 .103(are supplied, an)2.603 F 2.603(yo)-.15
-G(ther)-2.603 E F1(name)2.603 E F0(ar)2.603 E .103
-(guments are ignored; these completions only apply to the)-.18 F
-(case speci\214ed by the option.)144 710.4 Q(GNU Bash 5.0)72 768 Q
-(2004 Apr 20)149.565 E(3)203.725 E 0 Cg EP
+-3.376 F .448(pletion attempted on a blank line.)144 710.4 R(The)5.447 E
+F1<ad49>2.947 E F0 .447
+(option indicates that other supplied options and actions)2.947 F 1.149
+(should apply to completion on the initial non-assignment w)144 722.4 R
+1.15(ord on the line, or after a command)-.1 F(GNU Bash 5.2)72 768 Q
+(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(3)190.545 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E .152
-(The process of applying these completion speci\214cations when w)144 84
-R .153(ord completion is attempted is de-)-.1 F(scribed abo)144 96 Q .3
--.15(ve u)-.15 H(nder).15 E/F1 10/Times-Bold@0 SF(Pr)2.5 E
-(ogrammable Completion)-.18 E F0(.)A .556
-(Other options, if speci\214ed, ha)144 120 R .856 -.15(ve t)-.2 H .555
-(he follo).15 F .555(wing meanings.)-.25 F .555(The ar)5.555 F .555
-(guments to the)-.18 F F1<ad47>3.055 E F0(,)A F1<ad57>3.055 E F0 3.055
-(,a)C(nd)-3.055 E F1<ad58>3.055 E F0 .722(options \(and, if necessary)
-144 132 R 3.222(,t)-.65 G(he)-3.222 E F1<ad50>3.222 E F0(and)3.222 E F1
-<ad53>3.222 E F0 .723(options\) should be quoted to protect them from e)
-3.222 F(xpan-)-.15 E(sion before the)144 144 Q F1(complete)2.5 E F0 -.2
-(bu)2.5 G(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1<ad6f>144
-156 Q/F2 10/Times-Italic@0 SF(comp-option)2.5 E F0(The)184 168 Q F2
-(comp-option)2.791 E F0 .291(controls se)2.791 F -.15(ve)-.25 G .291
-(ral aspects of the compspec').15 F 2.791(sb)-.55 G(eha)-2.791 E .291
-(vior be)-.2 F .291(yond the simple)-.15 F(generation of completions.)
-184 180 Q F2(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184
-192 Q F0 .281(Perform the rest of the def)224 204 R(ault)-.1 E F1(bash)
-2.781 E F0 .281(completions if the compspec generates no)2.781 F
-(matches.)224 216 Q F1(default)184 228 Q F0 2.876(Use readline')224 228
-R 5.376(sd)-.55 G(ef)-5.376 E 2.875
+E(UIL)-.1 E(TINS\(1\))-.92 E .431(delimiter such as)144 84 R/F1 10
+/Times-Bold@0 SF(;)2.931 E F0(or)2.931 E F1(|)2.931 E F0 2.931(,w)C .431
+(hich is usually command name completion.)-2.931 F .43
+(If multiple options are sup-)5.43 F .707(plied, the)144 96 R F1<ad44>
+3.207 E F0 .707(option tak)3.207 F .707(es precedence o)-.1 F -.15(ve)
+-.15 G(r).15 E F1<ad45>3.208 E F0 3.208(,a)C .708(nd both tak)-3.208 F
+3.208(ep)-.1 G .708(recedence o)-3.208 F -.15(ve)-.15 G(r).15 E F1<ad49>
+3.208 E F0 5.708(.I)C 3.208(fa)-5.708 G 1.008 -.15(ny o)-3.208 H(f).15 E
+F1<ad44>3.208 E F0(,)A F1<ad45>144 108 Q F0 2.604(,o)C(r)-2.604 E F1
+<ad49>2.604 E F0 .103(are supplied, an)2.603 F 2.603(yo)-.15 G(ther)
+-2.603 E/F2 10/Times-Italic@0 SF(name)2.603 E F0(ar)2.603 E .103
+(guments are ignored; these completions only apply to the)-.18 F
+(case speci\214ed by the option.)144 120 Q .152
+(The process of applying these completion speci\214cations when w)144
+144 R .153(ord completion is attempted is de-)-.1 F(scribed in)144 156 Q
+F2(bash\(1\))2.5 E F0(.)A .556(Other options, if speci\214ed, ha)144 180
+R .856 -.15(ve t)-.2 H .555(he follo).15 F .555(wing meanings.)-.25 F
+.555(The ar)5.555 F .555(guments to the)-.18 F F1<ad47>3.055 E F0(,)A F1
+<ad57>3.055 E F0 3.055(,a)C(nd)-3.055 E F1<ad58>3.055 E F0 .722
+(options \(and, if necessary)144 192 R 3.222(,t)-.65 G(he)-3.222 E F1
+<ad50>3.222 E F0(and)3.222 E F1<ad53>3.222 E F0 .723
+(options\) should be quoted to protect them from e)3.222 F(xpan-)-.15 E
+(sion before the)144 204 Q F1(complete)2.5 E F0 -.2(bu)2.5 G
+(iltin is in).2 E -.2(vo)-.4 G -.1(ke).2 G(d.).1 E F1<ad6f>144 216 Q F2
+(comp-option)2.5 E F0(The)184 228 Q F2(comp-option)2.791 E F0 .291
+(controls se)2.791 F -.15(ve)-.25 G .291(ral aspects of the compspec')
+.15 F 2.791(sb)-.55 G(eha)-2.791 E .291(vior be)-.2 F .291
+(yond the simple)-.15 F(generation of completions.)184 240 Q F2
+(comp-option)5 E F0(may be one of:)2.5 E F1(bashdefault)184 252 Q F0
+.281(Perform the rest of the def)224 264 R(ault)-.1 E F1(bash)2.781 E F0
+.281(completions if the compspec generates no)2.781 F(matches.)224 276 Q
+F1(default)184 288 Q F0 2.876(Use readline')224 288 R 5.376(sd)-.55 G
+(ef)-5.376 E 2.875
(ault \214lename completion if the compspec generates no)-.1 F(matches.)
-224 240 Q F1(dir)184 252 Q(names)-.15 E F0(Perform directory name compl\
-etion if the compspec generates no matches.)224 264 Q F1(\214lenames)184
-276 Q F0 -.7(Te)224 288 S .137(ll readline that the compspec generates \
+224 300 Q F1(dir)184 312 Q(names)-.15 E F0(Perform directory name compl\
+etion if the compspec generates no matches.)224 324 Q F1(\214lenames)184
+336 Q F0 -.7(Te)224 348 S .137(ll readline that the compspec generates \
\214lenames, so it can perform an).7 F 2.637<798c>-.15 G(le-)-2.637 E
-.134(name\255speci\214c processing \(lik)224 300 R 2.634(ea)-.1 G .134
+.134(name\255speci\214c processing \(lik)224 360 R 2.634(ea)-.1 G .134
(dding a slash to directory names, quoting spe-)-2.634 F .45
-(cial characters, or suppressing trailing spaces\).)224 312 R .45
-(Intended to be used with shell)5.45 F(functions.)224 324 Q F1(noquote)
-184 336 Q F0 -.7(Te)224 336 S .814
+(cial characters, or suppressing trailing spaces\).)224 372 R .45
+(Intended to be used with shell)5.45 F(functions.)224 384 Q F1(noquote)
+184 396 Q F0 -.7(Te)224 396 S .814
(ll readline not to quote the completed w).7 F .814(ords if the)-.1 F
3.314(ya)-.15 G .814(re \214lenames \(quoting)-3.314 F
-(\214lenames is the def)224 348 Q(ault\).)-.1 E F1(nosort)184 360 Q F0
--.7(Te)224 360 S(ll readline not to sort the list of possible completio\
-ns alphabetically).7 E(.)-.65 E F1(nospace)184 372 Q F0 -.7(Te)224 372 S
+(\214lenames is the def)224 408 Q(ault\).)-.1 E F1(nosort)184 420 Q F0
+-.7(Te)224 420 S(ll readline not to sort the list of possible completio\
+ns alphabetically).7 E(.)-.65 E F1(nospace)184 432 Q F0 -.7(Te)224 432 S
.22(ll readline not to append a space \(the def).7 F .22(ault\) to w)-.1
-F .22(ords completed at the end)-.1 F(of the line.)224 384 Q F1
-(plusdirs)184 396 Q F0 1.985(After an)224 396 R 4.485(ym)-.15 G 1.985
+F .22(ords completed at the end)-.1 F(of the line.)224 444 Q F1
+(plusdirs)184 456 Q F0 1.985(After an)224 456 R 4.485(ym)-.15 G 1.985
(atches de\214ned by the compspec are generated, directory name)-4.485 F
-.583(completion is attempted and an)224 408 R 3.084(ym)-.15 G .584
-(atches are added to the results of the other)-3.084 F(actions.)224 420
-Q F1<ad41>144 432 Q F2(action)2.5 E F0(The)184 444 Q F2(action)2.5 E F0
+.583(completion is attempted and an)224 468 R 3.084(ym)-.15 G .584
+(atches are added to the results of the other)-3.084 F(actions.)224 480
+Q F1<ad41>144 492 Q F2(action)2.5 E F0(The)184 504 Q F2(action)2.5 E F0
(may be one of the follo)2.5 E
(wing to generate a list of possible completions:)-.25 E F1(alias)184
-456 Q F0(Alias names.)224 456 Q(May also be speci\214ed as)5 E F1<ad61>
-2.5 E F0(.)A F1(arrayv)184 468 Q(ar)-.1 E F0(Array v)224 480 Q
-(ariable names.)-.25 E F1(binding)184 492 Q(Readline)224 492 Q F0 -.1
-(ke)2.5 G 2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 504 S(iltin)
-.2 E F0(Names of shell b)224 504 Q(uiltin commands.)-.2 E
-(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 516
-Q F0(Command names.)224 528 Q(May also be speci\214ed as)5 E F1<ad63>2.5
-E F0(.)A F1(dir)184 540 Q(ectory)-.18 E F0(Directory names.)224 552 Q
-(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 564
-Q F0(Names of disabled shell b)224 576 Q(uiltins.)-.2 E F1(enabled)184
-588 Q F0(Names of enabled shell b)224 588 Q(uiltins.)-.2 E F1(export)184
-600 Q F0(Names of e)224 600 Q(xported shell v)-.15 E 2.5(ariables. May)
+516 Q F0(Alias names.)224 516 Q(May also be speci\214ed as)5 E F1<ad61>
+2.5 E F0(.)A F1(arrayv)184 528 Q(ar)-.1 E F0(Array v)224 540 Q
+(ariable names.)-.25 E F1(binding)184 552 Q(Readline)224 552 Q F0 -.1
+(ke)2.5 G 2.5(yb)-.05 G(inding names.)-2.5 E F1 -.2(bu)184 564 S(iltin)
+.2 E F0(Names of shell b)224 564 Q(uiltin commands.)-.2 E
+(May also be speci\214ed as)5 E F1<ad62>2.5 E F0(.)A F1(command)184 576
+Q F0(Command names.)224 588 Q(May also be speci\214ed as)5 E F1<ad63>2.5
+E F0(.)A F1(dir)184 600 Q(ectory)-.18 E F0(Directory names.)224 612 Q
+(May also be speci\214ed as)5 E F1<ad64>2.5 E F0(.)A F1(disabled)184 624
+Q F0(Names of disabled shell b)224 636 Q(uiltins.)-.2 E F1(enabled)184
+648 Q F0(Names of enabled shell b)224 648 Q(uiltins.)-.2 E F1(export)184
+660 Q F0(Names of e)224 660 Q(xported shell v)-.15 E 2.5(ariables. May)
-.25 F(also be speci\214ed as)2.5 E F1<ad65>2.5 E F0(.)A F1(\214le)184
-612 Q F0(File names.)224 612 Q(May also be speci\214ed as)5 E F1<ad66>
-2.5 E F0(.)A F1(function)184 624 Q F0(Names of shell functions.)224 636
-Q F1(gr)184 648 Q(oup)-.18 E F0(Group names.)224 648 Q
-(May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)A F1(helptopic)184
-660 Q F0(Help topics as accepted by the)224 672 Q F1(help)2.5 E F0 -.2
-(bu)2.5 G(iltin.).2 E F1(hostname)184 684 Q F0(Hostnames, as tak)224 696
-Q(en from the \214le speci\214ed by the)-.1 E/F3 9/Times-Bold@0 SF
-(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 708 Q F0
-(Job names, if job control is acti)224 708 Q -.15(ve)-.25 G 5(.M).15 G
-(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A(GNU Bash 5.0)72 768
-Q(2004 Apr 20)149.565 E(4)203.725 E 0 Cg EP
+672 Q F0(File names.)224 672 Q(May also be speci\214ed as)5 E F1<ad66>
+2.5 E F0(.)A F1(function)184 684 Q F0(Names of shell functions.)224 696
+Q F1(gr)184 708 Q(oup)-.18 E F0(Group names.)224 708 Q
+(May also be speci\214ed as)5 E F1<ad67>2.5 E F0(.)A(GNU Bash 5.2)72 768
+Q(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(4)190.545 E 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF -.1(ke)184 84 S(yw).1
-E(ord)-.1 E F0(Shell reserv)224 96 Q(ed w)-.15 E 2.5(ords. May)-.1 F
-(also be speci\214ed as)2.5 E F1<ad6b>2.5 E F0(.)A F1(running)184 108 Q
-F0(Names of running jobs, if job control is acti)224 108 Q -.15(ve)-.25
-G(.).15 E F1(ser)184 120 Q(vice)-.1 E F0(Service names.)224 120 Q
-(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 132 Q
-F0 -1.11(Va)224 132 S(lid ar)1.11 E(guments for the)-.18 E F1<ad6f>2.5 E
-F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1
-(shopt)184 144 Q F0(Shell option names as accepted by the)224 144 Q F1
-(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 156 Q F0
-(Signal names.)224 156 Q F1(stopped)184 168 Q F0
-(Names of stopped jobs, if job control is acti)224 168 Q -.15(ve)-.25 G
-(.).15 E F1(user)184 180 Q F0(User names.)224 180 Q
-(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 192 S
-(riable).1 E F0(Names of all shell v)224 192 Q 2.5(ariables. May)-.25 F
-(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad43>144 204 Q/F2
-10/Times-Italic@0 SF(command)2.5 E(command)184 216 Q F0 1.056(is e)3.556
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(helptopic)184 84 Q F0
+(Help topics as accepted by the)224 96 Q F1(help)2.5 E F0 -.2(bu)2.5 G
+(iltin.).2 E F1(hostname)184 108 Q F0(Hostnames, as tak)224 120 Q
+(en from the \214le speci\214ed by the)-.1 E/F2 9/Times-Bold@0 SF
+(HOSTFILE)2.5 E F0(shell v)2.25 E(ariable.)-.25 E F1(job)184 132 Q F0
+(Job names, if job control is acti)224 132 Q -.15(ve)-.25 G 5(.M).15 G
+(ay also be speci\214ed as)-5 E F1<ad6a>2.5 E F0(.)A F1 -.1(ke)184 144 S
+(yw).1 E(ord)-.1 E F0(Shell reserv)224 156 Q(ed w)-.15 E 2.5(ords. May)
+-.1 F(also be speci\214ed as)2.5 E F1<ad6b>2.5 E F0(.)A F1(running)184
+168 Q F0(Names of running jobs, if job control is acti)224 168 Q -.15
+(ve)-.25 G(.).15 E F1(ser)184 180 Q(vice)-.1 E F0(Service names.)224 180
+Q(May also be speci\214ed as)5 E F1<ad73>2.5 E F0(.)A F1(setopt)184 192
+Q F0 -1.11(Va)224 192 S(lid ar)1.11 E(guments for the)-.18 E F1<ad6f>2.5
+E F0(option to the)2.5 E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1
+(shopt)184 204 Q F0(Shell option names as accepted by the)224 204 Q F1
+(shopt)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E F1(signal)184 216 Q F0
+(Signal names.)224 216 Q F1(stopped)184 228 Q F0
+(Names of stopped jobs, if job control is acti)224 228 Q -.15(ve)-.25 G
+(.).15 E F1(user)184 240 Q F0(User names.)224 240 Q
+(May also be speci\214ed as)5 E F1<ad75>2.5 E F0(.)A F1 -.1(va)184 252 S
+(riable).1 E F0(Names of all shell v)224 252 Q 2.5(ariables. May)-.25 F
+(also be speci\214ed as)2.5 E F1<ad76>2.5 E F0(.)A F1<ad43>144 264 Q/F3
+10/Times-Italic@0 SF(command)2.5 E(command)184 276 Q F0 1.056(is e)3.556
F -.15(xe)-.15 G 1.056(cuted in a subshell en).15 F 1.056
-(vironment, and its output is used as the possible)-.4 F(completions.)
-184 228 Q F1<ad46>144 240 Q F2(function)2.5 E F0 .113
-(The shell function)184 252 R F2(function)2.614 E F0 .114(is e)2.614 F
+(vironment, and its output is used as the possible)-.4 F 2.5
+(completions. Ar)184 288 R(guments are passed as with the)-.18 E F1
+<ad46>2.5 E F0(option.)2.5 E F1<ad46>144 300 Q F3(function)2.5 E F0 .113
+(The shell function)184 312 R F3(function)2.614 E F0 .114(is e)2.614 F
-.15(xe)-.15 G .114(cuted in the current shell en).15 F 2.614
-(vironment. When)-.4 F .114(the func-)2.614 F .817(tion is e)184 264 R
+(vironment. When)-.4 F .114(the func-)2.614 F .817(tion is e)184 324 R
-.15(xe)-.15 G .817(cuted, the \214rst ar).15 F .817(gument \()-.18 F F1
($1)A F0 3.316(\)i)C 3.316(st)-3.316 G .816
(he name of the command whose ar)-3.316 F(guments)-.18 E 1.407
-(are being completed, the second ar)184 276 R 1.407(gument \()-.18 F F1
+(are being completed, the second ar)184 336 R 1.407(gument \()-.18 F F1
($2)A F0 3.907(\)i)C 3.907(st)-3.907 G 1.407(he w)-3.907 F 1.407
-(ord being completed, and the)-.1 F .104(third ar)184 288 R .104
+(ord being completed, and the)-.1 F .104(third ar)184 348 R .104
(gument \()-.18 F F1($3)A F0 2.604(\)i)C 2.604(st)-2.604 G .104(he w)
-2.604 F .104(ord preceding the w)-.1 F .103
-(ord being completed on the current com-)-.1 F .101(mand line.)184 300 R
+(ord being completed on the current com-)-.1 F .101(mand line.)184 360 R
.101(When it \214nishes, the possible completions are retrie)5.101 F
-.15(ve)-.25 G 2.602(df).15 G .102(rom the v)-2.602 F .102(alue of the)
--.25 F/F3 9/Times-Bold@0 SF(COMPREPL)184 312 Q(Y)-.828 E F0(array v)2.25
-E(ariable.)-.25 E F1<ad47>144 324 Q F2(globpat)2.5 E F0 1.008
-(The pathname e)184 336 R 1.008(xpansion pattern)-.15 F F2(globpat)3.507
-E F0 1.007(is e)3.507 F 1.007(xpanded to generate the possible comple-)
--.15 F(tions.)184 348 Q F1<ad50>144 360 Q F2(pr)2.5 E(e\214x)-.37 E(pr)
-184 372 Q(e\214x)-.37 E F0 .534(is added at the be)3.034 F .534
+-.25 F F2(COMPREPL)184 372 Q(Y)-.828 E F0(array v)2.25 E(ariable.)-.25 E
+F1<ad47>144 384 Q F3(globpat)2.5 E F0 1.008(The pathname e)184 396 R
+1.008(xpansion pattern)-.15 F F3(globpat)3.507 E F0 1.007(is e)3.507 F
+1.007(xpanded to generate the possible comple-)-.15 F(tions.)184 408 Q
+F1<ad50>144 420 Q F3(pr)2.5 E(e\214x)-.37 E(pr)184 432 Q(e\214x)-.37 E
+F0 .534(is added at the be)3.034 F .534
(ginning of each possible completion after all other options ha)-.15 F
--.15(ve)-.2 G(been applied.)184 384 Q F1<ad53>144 396 Q F2(suf)2.5 E
-<8c78>-.18 E(suf)184 396 Q<8c78>-.18 E F0
+-.15(ve)-.2 G(been applied.)184 444 Q F1<ad53>144 456 Q F3(suf)2.5 E
+<8c78>-.18 E(suf)184 456 Q<8c78>-.18 E F0
(is appended to each possible completion after all other options ha)2.5
-E .3 -.15(ve b)-.2 H(een applied.).15 E F1<ad57>144 408 Q F2(wor)2.5 E
-(dlist)-.37 E F0(The)184 420 Q F2(wor)3.64 E(dlist)-.37 E F0 1.14
-(is split using the characters in the)3.64 F F3(IFS)3.64 E F0 1.139
+E .3 -.15(ve b)-.2 H(een applied.).15 E F1<ad57>144 468 Q F3(wor)2.5 E
+(dlist)-.37 E F0(The)184 480 Q F3(wor)3.64 E(dlist)-.37 E F0 1.14
+(is split using the characters in the)3.64 F F2(IFS)3.64 E F0 1.139
(special v)3.39 F 1.139(ariable as delimiters, and)-.25 F .98
-(each resultant w)184 432 R .98(ord is e)-.1 F 3.481(xpanded. Shell)-.15
-F .981(quoting is honored within)3.481 F F2(wor)3.481 E(dlist)-.37 E F0
-3.481(,i)C 3.481(no)-3.481 G .981(rder to)-3.481 F(pro)184 444 Q .766
+(each resultant w)184 492 R .98(ord is e)-.1 F 3.481(xpanded. Shell)-.15
+F .981(quoting is honored within)3.481 F F3(wor)3.481 E(dlist)-.37 E F0
+3.481(,i)C 3.481(no)-3.481 G .981(rder to)-3.481 F(pro)184 504 Q .766
(vide a mechanism for the w)-.15 F .765
(ords to contain shell metacharacters or characters in the)-.1 F -.25
-(va)184 456 S 1.964(lue of).25 F F3(IFS)4.464 E/F4 9/Times-Roman@0 SF(.)
+(va)184 516 S 1.964(lue of).25 F F2(IFS)4.464 E/F4 9/Times-Roman@0 SF(.)
A F0 1.964
(The possible completions are the members of the resultant list which)
-6.464 F(match the w)184 468 Q(ord being completed.)-.1 E F1<ad58>144 480
-Q F2(\214lterpat)2.5 E(\214lterpat)184 492 Q F0 .456
+6.464 F(match the w)184 528 Q(ord being completed.)-.1 E F1<ad58>144 540
+Q F3(\214lterpat)2.5 E(\214lterpat)184 552 Q F0 .456
(is a pattern as used for pathname e)2.956 F 2.956(xpansion. It)-.15 F
.455(is applied to the list of possible)2.956 F 1.596
-(completions generated by the preceding options and ar)184 504 R 1.596
-(guments, and each completion)-.18 F(matching)184 516 Q F2(\214lterpat)
+(completions generated by the preceding options and ar)184 564 R 1.596
+(guments, and each completion)-.18 F(matching)184 576 Q F3(\214lterpat)
3.205 E F0 .705(is remo)3.205 F -.15(ve)-.15 G 3.205(df).15 G .704
(rom the list.)-3.205 F 3.204(Al)5.704 G(eading)-3.204 E F1(!)3.204 E F0
-(in)3.204 E F2(\214lterpat)3.204 E F0(ne)3.204 E -.05(ga)-.15 G .704
-(tes the pattern;).05 F(in this case, an)184 528 Q 2.5(yc)-.15 G
-(ompletion not matching)-2.5 E F2(\214lterpat)2.5 E F0(is remo)2.5 E
--.15(ve)-.15 G(d.).15 E .466(The return v)144 544.8 R .466
+(in)3.204 E F3(\214lterpat)3.204 E F0(ne)3.204 E -.05(ga)-.15 G .704
+(tes the pattern;).05 F(in this case, an)184 588 Q 2.5(yc)-.15 G
+(ompletion not matching)-2.5 E F3(\214lterpat)2.5 E F0(is remo)2.5 E
+-.15(ve)-.15 G(d.).15 E .466(The return v)144 604.8 R .466
(alue is true unless an in)-.25 F -.25(va)-.4 G .466
(lid option is supplied, an option other than).25 F F1<ad70>2.967 E F0
(or)2.967 E F1<ad72>2.967 E F0 .467(is sup-)2.967 F 1.362
-(plied without a)144 556.8 R F2(name)3.862 E F0(ar)3.862 E 1.361
+(plied without a)144 616.8 R F3(name)3.862 E F0(ar)3.862 E 1.361
(gument, an attempt is made to remo)-.18 F 1.661 -.15(ve a c)-.15 H
-1.361(ompletion speci\214cation for a).15 F F2(name)144 568.8 Q F0
+1.361(ompletion speci\214cation for a).15 F F3(name)144 628.8 Q F0
(for which no speci\214cation e)2.5 E
(xists, or an error occurs adding a completion speci\214cation.)-.15 E
-F1(compopt)108 585.6 Q F0([)2.5 E F1<ad6f>A F2(option)2.5 E F0 2.5(][)C
-F1(\255DEI)-2.5 E F0 2.5(][)C F1(+o)-2.5 E F2(option)2.5 E F0 2.5(][)C
-F2(name)-2.5 E F0(])A .447(Modify completion options for each)144 597.6
-R F2(name)2.947 E F0 .447(according to the)2.947 F F2(option)2.947 E F0
+F1(compopt)108 645.6 Q F0([)2.5 E F1<ad6f>A F3(option)2.5 E F0 2.5(][)C
+F1(\255DEI)-2.5 E F0 2.5(][)C F1(+o)-2.5 E F3(option)2.5 E F0 2.5(][)C
+F3(name)-2.5 E F0(])A .447(Modify completion options for each)144 657.6
+R F3(name)2.947 E F0 .447(according to the)2.947 F F3(option)2.947 E F0
.447(s, or for the currently-e)B -.15(xe)-.15 G(cuting).15 E .726
-(completion if no)144 609.6 R F2(name)3.226 E F0 3.226(sa)C .726
-(re supplied.)-3.226 F .725(If no)5.725 F F2(option)3.225 E F0 3.225(sa)
+(completion if no)144 669.6 R F3(name)3.226 E F0 3.226(sa)C .726
+(re supplied.)-3.226 F .725(If no)5.725 F F3(option)3.225 E F0 3.225(sa)
C .725(re gi)-3.225 F -.15(ve)-.25 G .725
-(n, display the completion options for).15 F(each)144 621.6 Q F2(name)
+(n, display the completion options for).15 F(each)144 681.6 Q F3(name)
3.223 E F0 .723(or the current completion.)3.223 F .724(The possible v)
-5.724 F .724(alues of)-.25 F F2(option)3.224 E F0 .724(are those v)3.224
-F .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 633.6 Q F0 -.2(bu)
+5.724 F .724(alues of)-.25 F F3(option)3.224 E F0 .724(are those v)3.224
+F .724(alid for the)-.25 F F1(com-)3.224 E(plete)144 693.6 Q F0 -.2(bu)
2.678 G .178(iltin described abo).2 F -.15(ve)-.15 G 5.178(.T).15 G(he)
-5.178 E F1<ad44>2.678 E F0 .178
(option indicates that other supplied options should apply to)2.678 F
-1.227(the `)144 645.6 R(`def)-.74 E(ault')-.1 E 3.727('c)-.74 G 1.228(o\
+1.227(the `)144 705.6 R(`def)-.74 E(ault')-.1 E 3.727('c)-.74 G 1.228(o\
mmand completion; that is, completion attempted on a command for which \
-no)-3.727 F 2.039(completion has pre)144 657.6 R 2.039
+no)-3.727 F 2.039(completion has pre)144 717.6 R 2.039
(viously been de\214ned.)-.25 F(The)7.038 E F1<ad45>4.538 E F0 2.038
(option indicates that other supplied options)4.538 F 1.538
-(should apply to `)144 669.6 R(`empty')-.74 E 4.038('c)-.74 G 1.539
+(should apply to `)144 729.6 R(`empty')-.74 E 4.038('c)-.74 G 1.539
(ommand completion; that is, completion attempted on a blank line.)
--4.038 F(The)144 681.6 Q F1<ad49>3.02 E F0 .52(option indicates that ot\
-her supplied options should apply to completion on the initial non-)3.02
-F .867(assignment w)144 693.6 R .868
-(ord on the line, or after a command delimiter such as)-.1 F F1(;)3.368
-E F0(or)3.368 E F1(|)3.368 E F0 3.368(,w)C .868(hich is usually com-)
--3.368 F(mand name completion.)144 705.6 Q 1.388(The return v)144 729.6
-R 1.388(alue is true unless an in)-.25 F -.25(va)-.4 G 1.387
-(lid option is supplied, an attempt is made to modify the).25 F
-(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(5)203.725 E 0 Cg EP
+-4.038 F(GNU Bash 5.2)72 768 Q(2021 No)136.385 E -.15(ve)-.15 G(mber 22)
+.15 E(5)190.545 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E(options for a)144 84 Q/F1 10/Times-Italic@0
-SF(name)2.5 E F0(for which no completion speci\214cation e)2.5 E
-(xists, or an output error occurs.)-.15 E/F2 10/Times-Bold@0 SF
-(continue)108 100.8 Q F0([)2.5 E F1(n)A F0(])A .85(Resume the ne)144
-112.8 R .85(xt iteration of the enclosing)-.15 F F2 -.25(fo)3.35 G(r).25
-E F0(,)A F2(while)3.351 E F0(,)A F2(until)3.351 E F0 3.351(,o)C(r)-3.351
-E F2(select)3.351 E F0 3.351(loop. If)3.351 F F1(n)3.711 E F0 .851
-(is speci\214ed, re-)3.591 F .204(sume at the)144 124.8 R F1(n)2.704 E
-F0 .204(th enclosing loop.)B F1(n)5.564 E F0 .204(must be)2.944 F/F3 10
-/Symbol SF<b3>2.704 E F0 2.703(1. If)2.704 F F1(n)3.063 E F0 .203
+E(UIL)-.1 E(TINS\(1\))-.92 E(The)144 84 Q/F1 10/Times-Bold@0 SF<ad49>
+3.02 E F0 .52(option indicates that other supplied options should apply\
+ to completion on the initial non-)3.02 F .867(assignment w)144 96 R
+.868(ord on the line, or after a command delimiter such as)-.1 F F1(;)
+3.368 E F0(or)3.368 E F1(|)3.368 E F0 3.368(,w)C .868
+(hich is usually com-)-3.368 F(mand name completion.)144 108 Q .432
+(The return v)144 132 R .431(alue is true unless an in)-.25 F -.25(va)
+-.4 G .431(lid option is supplied, an attempt is made to modify the op-)
+.25 F(tions for a)144 144 Q/F2 10/Times-Italic@0 SF(name)2.5 E F0
+(for which no completion speci\214cation e)2.5 E
+(xists, or an output error occurs.)-.15 E F1(continue)108 160.8 Q F0([)
+2.5 E F2(n)A F0(])A .85(Resume the ne)144 172.8 R .85
+(xt iteration of the enclosing)-.15 F F1 -.25(fo)3.35 G(r).25 E F0(,)A
+F1(while)3.351 E F0(,)A F1(until)3.351 E F0 3.351(,o)C(r)-3.351 E F1
+(select)3.351 E F0 3.351(loop. If)3.351 F F2(n)3.711 E F0 .851
+(is speci\214ed, re-)3.591 F .204(sume at the)144 184.8 R F2(n)2.704 E
+F0 .204(th enclosing loop.)B F2(n)5.564 E F0 .204(must be)2.944 F/F3 10
+/Symbol SF<b3>2.704 E F0 2.703(1. If)2.704 F F2(n)3.063 E F0 .203
(is greater than the number of enclosing loops,)2.943 F 1.183
-(the last enclosing loop \(the `)144 136.8 R(`top-le)-.74 E -.15(ve)-.25
+(the last enclosing loop \(the `)144 196.8 R(`top-le)-.74 E -.15(ve)-.25
G(l').15 E 3.683('l)-.74 G 1.183(oop\) is resumed.)-3.683 F 1.184
-(The return v)6.184 F 1.184(alue is 0 unless)-.25 F F1(n)3.684 E F0
-1.184(is not)3.684 F(greater than or equal to 1.)144 148.8 Q F2(declar)
-108 165.6 Q(e)-.18 E F0([)2.5 E F2(\255aAfFgiIlnrtux)A F0 2.5(][)C F2
-<ad70>-2.5 E F0 2.5(][)C F1(name)-2.5 E F0([=)A F1(value)A F0 2.5(].)C
-(..])-2.5 E F2(typeset)108 177.6 Q F0([)2.5 E F2(\255aAfFgiIlnrtux)A F0
-2.5(][)C F2<ad70>-2.5 E F0 2.5(][)C F1(name)-2.5 E F0([=)A F1(value)A F0
-2.5(].)C(..])-2.5 E 1.265(Declare v)144 189.6 R 1.265
+(The return v)6.184 F 1.184(alue is 0 unless)-.25 F F2(n)3.684 E F0
+1.184(is not)3.684 F(greater than or equal to 1.)144 208.8 Q F1(declar)
+108 225.6 Q(e)-.18 E F0([)2.5 E F1(\255aAfFgiIlnrtux)A F0 2.5(][)C F1
+<ad70>-2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5(].)C
+(..])-2.5 E F1(typeset)108 237.6 Q F0([)2.5 E F1(\255aAfFgiIlnrtux)A F0
+2.5(][)C F1<ad70>-2.5 E F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0
+2.5(].)C(..])-2.5 E 1.265(Declare v)144 249.6 R 1.265
(ariables and/or gi)-.25 F 1.565 -.15(ve t)-.25 H 1.265(hem attrib).15 F
-3.765(utes. If)-.2 F(no)3.765 E F1(name)3.765 E F0 3.765(sa)C 1.265
+3.765(utes. If)-.2 F(no)3.765 E F2(name)3.765 E F0 3.765(sa)C 1.265
(re gi)-3.765 F -.15(ve)-.25 G 3.764(nt).15 G 1.264(hen display the v)
--3.764 F 1.264(alues of)-.25 F -.25(va)144 201.6 S 3.46(riables. The).25
-F F2<ad70>3.46 E F0 .96(option will display the attrib)3.46 F .96
-(utes and v)-.2 F .96(alues of each)-.25 F F1(name)3.82 E F0 5.96(.W).18
-G(hen)-5.96 E F2<ad70>3.46 E F0 .96(is used)3.46 F(with)144 213.6 Q F1
+-3.764 F 1.264(alues of)-.25 F -.25(va)144 261.6 S 3.46(riables. The).25
+F F1<ad70>3.46 E F0 .96(option will display the attrib)3.46 F .96
+(utes and v)-.2 F .96(alues of each)-.25 F F2(name)3.82 E F0 5.96(.W).18
+G(hen)-5.96 E F1<ad70>3.46 E F0 .96(is used)3.46 F(with)144 273.6 Q F2
(name)2.775 E F0(ar)2.775 E .275
-(guments, additional options, other than)-.18 F F2<ad66>2.775 E F0(and)
-2.775 E F2<ad46>2.775 E F0 2.775(,a)C .274(re ignored.)-2.775 F(When)
-5.274 E F2<ad70>2.774 E F0 .274(is supplied)2.774 F(without)144 225.6 Q
-F1(name)3.789 E F0(ar)3.789 E 1.289(guments, it will display the attrib)
+(guments, additional options, other than)-.18 F F1<ad66>2.775 E F0(and)
+2.775 E F1<ad46>2.775 E F0 2.775(,a)C .274(re ignored.)-2.775 F(When)
+5.274 E F1<ad70>2.774 E F0 .274(is supplied)2.774 F(without)144 285.6 Q
+F2(name)3.789 E F0(ar)3.789 E 1.289(guments, it will display the attrib)
-.18 F 1.289(utes and v)-.2 F 1.29(alues of all v)-.25 F 1.29
-(ariables ha)-.25 F 1.29(ving the at-)-.2 F(trib)144 237.6 Q .38
+(ariables ha)-.25 F 1.29(ving the at-)-.2 F(trib)144 297.6 Q .38
(utes speci\214ed by the additional options.)-.2 F .38
-(If no other options are supplied with)5.38 F F2<ad70>2.88 E F0(,)A F2
+(If no other options are supplied with)5.38 F F1<ad70>2.88 E F0(,)A F1
(declar)2.88 E(e)-.18 E F0(will)2.88 E 1.106(display the attrib)144
-249.6 R 1.106(utes and v)-.2 F 1.106(alues of all shell v)-.25 F 3.606
-(ariables. The)-.25 F F2<ad66>3.606 E F0 1.107
+309.6 R 1.106(utes and v)-.2 F 1.106(alues of all shell v)-.25 F 3.606
+(ariables. The)-.25 F F1<ad66>3.606 E F0 1.107
(option will restrict the display to)3.606 F .3(shell functions.)144
-261.6 R(The)5.3 E F2<ad46>2.8 E F0 .299(option inhibits the display of \
+321.6 R(The)5.3 E F1<ad46>2.8 E F0 .299(option inhibits the display of \
function de\214nitions; only the function name)2.8 F 1.54(and attrib)144
-273.6 R 1.54(utes are printed.)-.2 F 1.54(If the)6.54 F F2(extdeb)4.04 E
-(ug)-.2 E F0 1.54(shell option is enabled using)4.04 F F2(shopt)4.04 E
+333.6 R 1.54(utes are printed.)-.2 F 1.54(If the)6.54 F F1(extdeb)4.04 E
+(ug)-.2 E F0 1.54(shell option is enabled using)4.04 F F1(shopt)4.04 E
F0 4.04(,t)C 1.54(he source \214le)-4.04 F .648
-(name and line number where each)144 285.6 R F1(name)3.148 E F0 .648
-(is de\214ned are displayed as well.)3.148 F(The)5.648 E F2<ad46>3.148 E
-F0 .648(option implies)3.148 F F2<ad66>144 297.6 Q F0 5.836(.T)C(he)
--5.836 E F2<ad67>3.336 E F0 .836(option forces v)3.336 F .837
+(name and line number where each)144 345.6 R F2(name)3.148 E F0 .648
+(is de\214ned are displayed as well.)3.148 F(The)5.648 E F1<ad46>3.148 E
+F0 .648(option implies)3.148 F F1<ad66>144 357.6 Q F0 5.836(.T)C(he)
+-5.836 E F1<ad67>3.336 E F0 .836(option forces v)3.336 F .837
(ariables to be created or modi\214ed at the global scope, e)-.25 F -.15
-(ve)-.25 G 3.337(nw).15 G(hen)-3.337 E F2(de-)3.337 E(clar)144 309.6 Q
+(ve)-.25 G 3.337(nw).15 G(hen)-3.337 E F1(de-)3.337 E(clar)144 369.6 Q
(e)-.18 E F0 .819(is e)3.319 F -.15(xe)-.15 G .819
(cuted in a shell function.).15 F .818
-(It is ignored in all other cases.)5.818 F(The)5.818 E F2<ad49>3.318 E
-F0 .818(option causes local)3.318 F -.25(va)144 321.6 S .693
+(It is ignored in all other cases.)5.818 F(The)5.818 E F1<ad49>3.318 E
+F0 .818(option causes local)3.318 F -.25(va)144 381.6 S .693
(riables to inherit the attrib).25 F .693(utes \(e)-.2 F .693(xcept the)
--.15 F F1(namer)3.194 E(ef)-.37 E F0(attrib)3.194 E .694(ute\) and v)-.2
+-.15 F F2(namer)3.194 E(ef)-.37 E F0(attrib)3.194 E .694(ute\) and v)-.2
F .694(alue of an)-.25 F 3.194(ye)-.15 G .694(xisting v)-3.344 F
-(ariable)-.25 E .82(with the same)144 333.6 R F1(name)3.32 E F0 .82
+(ariable)-.25 E .82(with the same)144 393.6 R F2(name)3.32 E F0 .82
(at a surrounding scope.)3.32 F .82(If there is no e)5.82 F .82
(xisting v)-.15 F .82(ariable, the local v)-.25 F .82(ariable is)-.25 F
-.379(initially unset.)144 345.6 R .379(The follo)5.379 F .379
+.379(initially unset.)144 405.6 R .379(The follo)5.379 F .379
(wing options can be used to restrict output to v)-.25 F .38
-(ariables with the speci\214ed)-.25 F(attrib)144 357.6 Q(ute or to gi)
--.2 E .3 -.15(ve v)-.25 H(ariables attrib)-.1 E(utes:)-.2 E F2<ad61>144
-369.6 Q F0(Each)180 369.6 Q F1(name)2.5 E F0(is an inde)2.5 E -.15(xe)
--.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F2(Arrays)2.5 E
-F0(abo)2.5 E -.15(ve)-.15 G(\).).15 E F2<ad41>144 381.6 Q F0(Each)180
-381.6 Q F1(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25 H
-(rray v).15 E(ariable \(see)-.25 E F2(Arrays)2.5 E F0(abo)2.5 E -.15(ve)
--.15 G(\).).15 E F2<ad66>144 393.6 Q F0(Use function names only)180
-393.6 Q(.)-.65 E F2<ad69>144 405.6 Q F0 .558(The v)180 405.6 R .558
-(ariable is treated as an inte)-.25 F .558(ger; arithmetic e)-.15 F -.25
-(va)-.25 G .558(luation \(see).25 F/F4 9/Times-Bold@0 SF .557
-(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION)180 417.6 Q F0(abo)
-2.25 E -.15(ve)-.15 G 2.5(\)i).15 G 2.5(sp)-2.5 G(erformed when the v)
--2.5 E(ariable is assigned a v)-.25 E(alue.)-.25 E F2<ad6c>144 429.6 Q
-F0 .909(When the v)180 429.6 R .909(ariable is assigned a v)-.25 F .909
-(alue, all upper)-.25 F .909(-case characters are con)-.2 F -.15(ve)-.4
-G .91(rted to lo).15 F(wer)-.25 E(-)-.2 E 2.5(case. The)180 441.6 R
-(upper)2.5 E(-case attrib)-.2 E(ute is disabled.)-.2 E F2<ad6e>144 453.6
-Q F0(Gi)180 453.6 Q 1.62 -.15(ve e)-.25 H(ach).15 E F1(name)3.82 E F0
-(the)3.82 E F1(namer)3.819 E(ef)-.37 E F0(attrib)3.819 E 1.319
+(ariables with the speci\214ed)-.25 F(attrib)144 417.6 Q(ute or to gi)
+-.2 E .3 -.15(ve v)-.25 H(ariables attrib)-.1 E(utes:)-.2 E F1<ad61>144
+429.6 Q F0(Each)180 429.6 Q F2(name)2.5 E F0(is an inde)2.5 E -.15(xe)
+-.15 G 2.5(da).15 G(rray v)-2.5 E(ariable \(see)-.25 E F1(Arrays)2.5 E
+F0(in)2.5 E F2(bash\(1\))2.5 E F0(\).)A F1<ad41>144 441.6 Q F0(Each)180
+441.6 Q F2(name)2.5 E F0(is an associati)2.5 E .3 -.15(ve a)-.25 H
+(rray v).15 E(ariable \(see)-.25 E F1(Arrays)2.5 E F0(in)2.5 E F2
+(bash\(1\))2.5 E F0(\).)A F1<ad66>144 453.6 Q F0
+(Use function names only)180 453.6 Q(.)-.65 E F1<ad69>144 465.6 Q F0
+.558(The v)180 465.6 R .558(ariable is treated as an inte)-.25 F .558
+(ger; arithmetic e)-.15 F -.25(va)-.25 G .558(luation \(see).25 F/F4 9
+/Times-Bold@0 SF .557(ARITHMETIC EV)3.058 F(ALU)-1.215 E(A-)-.54 E(TION)
+180 477.6 Q F0(in)2.25 E F2(bash\(1\))2.5 E F0 2.5(\)i)C 2.5(sp)-2.5 G
+(erformed when the v)-2.5 E(ariable is assigned a v)-.25 E(alue.)-.25 E
+F1<ad6c>144 489.6 Q F0 .909(When the v)180 489.6 R .909
+(ariable is assigned a v)-.25 F .909(alue, all upper)-.25 F .909
+(-case characters are con)-.2 F -.15(ve)-.4 G .91(rted to lo).15 F(wer)
+-.25 E(-)-.2 E 2.5(case. The)180 501.6 R(upper)2.5 E(-case attrib)-.2 E
+(ute is disabled.)-.2 E F1<ad6e>144 513.6 Q F0(Gi)180 513.6 Q 1.62 -.15
+(ve e)-.25 H(ach).15 E F2(name)3.82 E F0(the)3.82 E F2(namer)3.819 E(ef)
+-.37 E F0(attrib)3.819 E 1.319
(ute, making it a name reference to another v)-.2 F(ariable.)-.25 E .477
-(That other v)180 465.6 R .478(ariable is de\214ned by the v)-.25 F .478
-(alue of)-.25 F F1(name)2.978 E F0 5.478(.A)C .478
-(ll references, assignments, and at-)-5.478 F(trib)180 477.6 Q .782
-(ute modi\214cations to)-.2 F F1(name)3.282 E F0 3.282(,e)C .782
-(xcept those using or changing the)-3.432 F F2<ad6e>3.281 E F0(attrib)
-3.281 E .781(ute itself, are)-.2 F .808(performed on the v)180 489.6 R
-.808(ariable referenced by)-.25 F F1(name)3.308 E F0 1.908 -.55('s v)D
+(That other v)180 525.6 R .478(ariable is de\214ned by the v)-.25 F .478
+(alue of)-.25 F F2(name)2.978 E F0 5.478(.A)C .478
+(ll references, assignments, and at-)-5.478 F(trib)180 537.6 Q .782
+(ute modi\214cations to)-.2 F F2(name)3.282 E F0 3.282(,e)C .782
+(xcept those using or changing the)-3.432 F F1<ad6e>3.281 E F0(attrib)
+3.281 E .781(ute itself, are)-.2 F .808(performed on the v)180 549.6 R
+.808(ariable referenced by)-.25 F F2(name)3.308 E F0 1.908 -.55('s v)D
3.308(alue. The).3 F .809(nameref attrib)3.309 F .809(ute cannot be)-.2
-F(applied to array v)180 501.6 Q(ariables.)-.25 E F2<ad72>144 513.6 Q F0
-(Mak)180 513.6 Q(e)-.1 E F1(name)3.655 E F0 3.655(sr)C(eadonly)-3.655 E
+F(applied to array v)180 561.6 Q(ariables.)-.25 E F1<ad72>144 573.6 Q F0
+(Mak)180 573.6 Q(e)-.1 E F2(name)3.655 E F0 3.655(sr)C(eadonly)-3.655 E
6.154(.T)-.65 G 1.154(hese names cannot then be assigned v)-6.154 F
1.154(alues by subsequent as-)-.25 F(signment statements or unset.)180
-525.6 Q F2<ad74>144 537.6 Q F0(Gi)180 537.6 Q .729 -.15(ve e)-.25 H(ach)
-.15 E F1(name)2.929 E F0(the)2.929 E F1(tr)2.929 E(ace)-.15 E F0(attrib)
-2.929 E 2.929(ute. T)-.2 F .429(raced functions inherit the)-.35 F F2
-(DEB)2.929 E(UG)-.1 E F0(and)2.93 E F2(RETURN)2.93 E F0
-(traps from the calling shell.)180 549.6 Q(The trace attrib)5 E
-(ute has no special meaning for v)-.2 E(ariables.)-.25 E F2<ad75>144
-561.6 Q F0 .91(When the v)180 561.6 R .909(ariable is assigned a v)-.25
+585.6 Q F1<ad74>144 597.6 Q F0(Gi)180 597.6 Q .729 -.15(ve e)-.25 H(ach)
+.15 E F2(name)2.929 E F0(the)2.929 E F2(tr)2.929 E(ace)-.15 E F0(attrib)
+2.929 E 2.929(ute. T)-.2 F .429(raced functions inherit the)-.35 F F1
+(DEB)2.929 E(UG)-.1 E F0(and)2.93 E F1(RETURN)2.93 E F0
+(traps from the calling shell.)180 609.6 Q(The trace attrib)5 E
+(ute has no special meaning for v)-.2 E(ariables.)-.25 E F1<ad75>144
+621.6 Q F0 .91(When the v)180 621.6 R .909(ariable is assigned a v)-.25
F .909(alue, all lo)-.25 F(wer)-.25 E .909(-case characters are con)-.2
-F -.15(ve)-.4 G .909(rted to upper).15 F(-)-.2 E 2.5(case. The)180 573.6
-R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E(ute is disabled.)-.2 E F2<ad78>
-144 585.6 Q F0(Mark)180 585.6 Q F1(name)2.5 E F0 2.5(sf)C(or e)-2.5 E
+F -.15(ve)-.4 G .909(rted to upper).15 F(-)-.2 E 2.5(case. The)180 633.6
+R(lo)2.5 E(wer)-.25 E(-case attrib)-.2 E(ute is disabled.)-.2 E F1<ad78>
+144 645.6 Q F0(Mark)180 645.6 Q F2(name)2.5 E F0 2.5(sf)C(or e)-2.5 E
(xport to subsequent commands via the en)-.15 E(vironment.)-.4 E .143
-(Using `+' instead of `\255' turns of)144 602.4 R 2.643(ft)-.25 G .143
+(Using `+' instead of `\255' turns of)144 662.4 R 2.643(ft)-.25 G .143
(he attrib)-2.643 F .143(ute instead, with the e)-.2 F .144
-(xceptions that)-.15 F F2(+a)2.644 E F0(and)2.644 E F2(+A)2.644 E F0
-.144(may not)2.644 F .579(be used to destro)144 614.4 R 3.079(ya)-.1 G
-.579(rray v)-3.079 F .579(ariables and)-.25 F F2(+r)3.079 E F0 .579
+(xceptions that)-.15 F F1(+a)2.644 E F0(and)2.644 E F1(+A)2.644 E F0
+.144(may not)2.644 F .579(be used to destro)144 674.4 R 3.079(ya)-.1 G
+.579(rray v)-3.079 F .579(ariables and)-.25 F F1(+r)3.079 E F0 .579
(will not remo)3.079 F .879 -.15(ve t)-.15 H .579(he readonly attrib).15
-F 3.079(ute. When)-.2 F .578(used in a)3.078 F(function,)144 626.4 Q F2
-(declar)3.543 E(e)-.18 E F0(and)3.543 E F2(typeset)3.543 E F0(mak)3.543
-E 3.543(ee)-.1 G(ach)-3.543 E F1(name)3.543 E F0 1.043
-(local, as with the)3.543 F F2(local)3.544 E F0 1.044
-(command, unless the)3.544 F F2<ad67>3.544 E F0 1.205
-(option is supplied.)144 638.4 R 1.205(If a v)6.205 F 1.205
-(ariable name is follo)-.25 F 1.205(wed by =)-.25 F F1(value)A F0 3.705
+F 3.079(ute. When)-.2 F .578(used in a)3.078 F(function,)144 686.4 Q F1
+(declar)3.543 E(e)-.18 E F0(and)3.543 E F1(typeset)3.543 E F0(mak)3.543
+E 3.543(ee)-.1 G(ach)-3.543 E F2(name)3.543 E F0 1.043
+(local, as with the)3.543 F F1(local)3.544 E F0 1.044
+(command, unless the)3.544 F F1<ad67>3.544 E F0 1.205
+(option is supplied.)144 698.4 R 1.205(If a v)6.205 F 1.205
+(ariable name is follo)-.25 F 1.205(wed by =)-.25 F F2(value)A F0 3.705
(,t)C 1.205(he v)-3.705 F 1.205(alue of the v)-.25 F 1.205
-(ariable is set to)-.25 F F1(value)144 650.4 Q F0 5.217(.W)C .217
-(hen using)-5.217 F F2<ad61>2.717 E F0(or)2.717 E F2<ad41>2.717 E F0
+(ariable is set to)-.25 F F2(value)144 710.4 Q F0 5.217(.W)C .217
+(hen using)-5.217 F F1<ad61>2.717 E F0(or)2.717 E F1<ad41>2.717 E F0
.217(and the compound assignment syntax to create array v)2.717 F .218
-(ariables, addi-)-.25 F .882(tional attrib)144 662.4 R .882
+(ariables, addi-)-.25 F .882(tional attrib)144 722.4 R .882
(utes do not tak)-.2 F 3.382(ee)-.1 G -.25(ff)-3.382 G .882
(ect until subsequent assignments.).25 F .882(The return v)5.882 F .882
-(alue is 0 unless an)-.25 F(in)144 674.4 Q -.25(va)-.4 G .365(lid optio\
-n is encountered, an attempt is made to de\214ne a function using).25 F
-/F5 10/Courier@0 SF .366(\255f foo=bar)2.866 F F0 2.866(,a)C 2.866(na)
--2.866 G(t-)-2.866 E .549(tempt is made to assign a v)144 686.4 R .549
-(alue to a readonly v)-.25 F .548
-(ariable, an attempt is made to assign a v)-.25 F .548(alue to an)-.25 F
-1.748(array v)144 698.4 R 1.748
-(ariable without using the compound assignment syntax \(see)-.25 F F2
-(Arrays)4.249 E F0(abo)4.249 E -.15(ve)-.15 G 1.749(\), one of the).15 F
-F1(names)144 710.4 Q F0 .359(is not a v)2.859 F .359(alid shell v)-.25 F
-.359(ariable name, an attempt is made to turn of)-.25 F 2.859(fr)-.25 G
-.359(eadonly status for a read-)-2.859 F 1.212(only v)144 722.4 R 1.213
-(ariable, an attempt is made to turn of)-.25 F 3.713(fa)-.25 G 1.213
-(rray status for an array v)-3.713 F 1.213(ariable, or an attempt is)
--.25 F(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(6)203.725 E 0 Cg EP
+(alue is 0 unless an)-.25 F(GNU Bash 5.2)72 768 Q(2021 No)136.385 E -.15
+(ve)-.15 G(mber 22).15 E(6)190.545 E 0 Cg EP
%%Page: 7 7
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E(made to display a non-e)144 84 Q
-(xistent function with)-.15 E/F1 10/Times-Bold@0 SF<ad66>2.5 E F0(.)A F1
-(dirs [\255clpv] [+)108 100.8 Q/F2 10/Times-Italic@0 SF(n)A F1 2.5(][)C
-<ad>-2.5 E F2(n)A F1(])A F0 -.4(Wi)144 112.8 S .329
+E(UIL)-.1 E(TINS\(1\))-.92 E(in)144 84 Q -.25(va)-.4 G .365(lid option \
+is encountered, an attempt is made to de\214ne a function using).25 F/F1
+10/Courier@0 SF .366(\255f foo=bar)2.866 F F0 2.866(,a)C 2.866(na)-2.866
+G(t-)-2.866 E .549(tempt is made to assign a v)144 96 R .549
+(alue to a readonly v)-.25 F .548
+(ariable, an attempt is made to assign a v)-.25 F .548(alue to an)-.25 F
+.391(array v)144 108 R .391
+(ariable without using the compound assignment syntax \(see)-.25 F/F2 10
+/Times-Bold@0 SF(Arrays)2.892 E F0(in)2.892 E/F3 10/Times-Italic@0 SF
+(bash\(1\))2.892 E F0 .392(\), one of the)B F3(names)144 120 Q F0 .359
+(is not a v)2.859 F .359(alid shell v)-.25 F .359
+(ariable name, an attempt is made to turn of)-.25 F 2.859(fr)-.25 G .359
+(eadonly status for a read-)-2.859 F 1.212(only v)144 132 R 1.213
+(ariable, an attempt is made to turn of)-.25 F 3.713(fa)-.25 G 1.213
+(rray status for an array v)-3.713 F 1.213(ariable, or an attempt is)
+-.25 F(made to display a non-e)144 144 Q(xistent function with)-.15 E F2
+<ad66>2.5 E F0(.)A F2(dirs [\255clpv] [+)108 160.8 Q F3(n)A F2 2.5(][)C
+<ad>-2.5 E F3(n)A F2(])A F0 -.4(Wi)144 172.8 S .329
(thout options, displays the list of currently remembered directories.)
.4 F .328(The def)5.328 F .328(ault display is on a)-.1 F 1.238
-(single line with directory names separated by spaces.)144 124.8 R 1.238
-(Directories are added to the list with the)6.238 F F1(pushd)144 136.8 Q
-F0 .928(command; the)3.428 F F1(popd)3.428 E F0 .928(command remo)3.428
+(single line with directory names separated by spaces.)144 184.8 R 1.238
+(Directories are added to the list with the)6.238 F F2(pushd)144 196.8 Q
+F0 .928(command; the)3.428 F F2(popd)3.428 E F0 .928(command remo)3.428
F -.15(ve)-.15 G 3.428(se).15 G .928(ntries from the list.)-3.428 F .928
-(The current directory is al-)5.928 F -.1(wa)144 148.8 S
-(ys the \214rst directory in the stack.).1 E F1<ad63>144 160.8 Q F0
-(Clears the directory stack by deleting all of the entries.)180 160.8 Q
-F1<ad6c>144 172.8 Q F0 .881
-(Produces a listing using full pathnames; the def)180 172.8 R .882
+(The current directory is al-)5.928 F -.1(wa)144 208.8 S
+(ys the \214rst directory in the stack.).1 E F2<ad63>144 220.8 Q F0
+(Clears the directory stack by deleting all of the entries.)180 220.8 Q
+F2<ad6c>144 232.8 Q F0 .881
+(Produces a listing using full pathnames; the def)180 232.8 R .882
(ault listing format uses a tilde to denote)-.1 F(the home directory)180
-184.8 Q(.)-.65 E F1<ad70>144 196.8 Q F0
-(Print the directory stack with one entry per line.)180 196.8 Q F1<ad76>
-144 208.8 Q F0 .273(Print the directory stack with one entry per line, \
-pre\214xing each entry with its inde)180 208.8 R 2.772(xi)-.15 G 2.772
-(nt)-2.772 G(he)-2.772 E(stack.)180 220.8 Q F1(+)144 232.8 Q F2(n)A F0
-1.564(Displays the)180 232.8 R F2(n)4.064 E F0 1.565
-(th entry counting from the left of the list sho)B 1.565(wn by)-.25 F F1
+244.8 Q(.)-.65 E F2<ad70>144 256.8 Q F0
+(Print the directory stack with one entry per line.)180 256.8 Q F2<ad76>
+144 268.8 Q F0 .273(Print the directory stack with one entry per line, \
+pre\214xing each entry with its inde)180 268.8 R 2.772(xi)-.15 G 2.772
+(nt)-2.772 G(he)-2.772 E(stack.)180 280.8 Q F2(+)144 292.8 Q F3(n)A F0
+1.564(Displays the)180 292.8 R F3(n)4.064 E F0 1.565
+(th entry counting from the left of the list sho)B 1.565(wn by)-.25 F F2
(dirs)4.065 E F0 1.565(when in)4.065 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
-(without options, starting with zero.)180 244.8 Q F1<ad>144 256.8 Q F2
-(n)A F0 1.194(Displays the)180 256.8 R F2(n)3.694 E F0 1.194
+(without options, starting with zero.)180 304.8 Q F2<ad>144 316.8 Q F3
+(n)A F0 1.194(Displays the)180 316.8 R F3(n)3.694 E F0 1.194
(th entry counting from the right of the list sho)B 1.194(wn by)-.25 F
-F1(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
-(without options, starting with zero.)180 268.8 Q .257(The return v)144
-285.6 R .258(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
-(lid option is supplied or).25 F F2(n)2.758 E F0(inde)2.758 E -.15(xe)
+F2(dirs)3.694 E F0 1.194(when in)3.694 F -.2(vo)-.4 G -.1(ke).2 G(d).1 E
+(without options, starting with zero.)180 328.8 Q .257(The return v)144
+345.6 R .258(alue is 0 unless an in)-.25 F -.25(va)-.4 G .258
+(lid option is supplied or).25 F F3(n)2.758 E F0(inde)2.758 E -.15(xe)
-.15 G 2.758(sb).15 G -.15(ey)-2.758 G .258(ond the end of the direc-)
-.15 F(tory stack.)144 297.6 Q F1(diso)108 314.4 Q(wn)-.1 E F0([)2.5 E F1
-(\255ar)A F0 2.5(][)C F1<ad68>-2.5 E F0 2.5(][)C F2(jobspec)-2.5 E F0
-(... |)2.5 E F2(pid)2.5 E F0(... ])2.5 E -.4(Wi)144 326.4 S .122
-(thout options, remo).4 F .422 -.15(ve e)-.15 H(ach).15 E F2(jobspec)
+.15 F(tory stack.)144 357.6 Q F2(diso)108 374.4 Q(wn)-.1 E F0([)2.5 E F2
+(\255ar)A F0 2.5(][)C F2<ad68>-2.5 E F0 2.5(][)C F3(jobspec)-2.5 E F0
+(... |)2.5 E F3(pid)2.5 E F0(... ])2.5 E -.4(Wi)144 386.4 S .122
+(thout options, remo).4 F .422 -.15(ve e)-.15 H(ach).15 E F3(jobspec)
4.362 E F0 .122(from the table of acti)2.932 F .422 -.15(ve j)-.25 H
-2.622(obs. If).15 F F2(jobspec)4.362 E F0 .121(is not present, and)2.932
-F .096(neither the)144 338.4 R F1<ad61>2.596 E F0 .096(nor the)2.596 F
-F1<ad72>2.596 E F0 .096(option is supplied, the)2.596 F F2(curr)2.596 E
-.096(ent job)-.37 F F0 .096(is used.)2.596 F .096(If the)5.096 F F1
+2.622(obs. If).15 F F3(jobspec)4.362 E F0 .121(is not present, and)2.932
+F .096(neither the)144 398.4 R F2<ad61>2.596 E F0 .096(nor the)2.596 F
+F2<ad72>2.596 E F0 .096(option is supplied, the)2.596 F F3(curr)2.596 E
+.096(ent job)-.37 F F0 .096(is used.)2.596 F .096(If the)5.096 F F2
<ad68>2.596 E F0 .096(option is gi)2.596 F -.15(ve)-.25 G .096(n, each)
-.15 F F2(jobspec)145.74 350.4 Q F0 .586(is not remo)3.396 F -.15(ve)-.15
+.15 F F3(jobspec)145.74 410.4 Q F0 .586(is not remo)3.396 F -.15(ve)-.15
G 3.086(df).15 G .585(rom the table, b)-3.086 F .585(ut is mark)-.2 F
-.585(ed so that)-.1 F/F3 9/Times-Bold@0 SF(SIGHUP)3.085 E F0 .585
-(is not sent to the job if the)2.835 F .962(shell recei)144 362.4 R -.15
-(ve)-.25 G 3.462(sa).15 G F3(SIGHUP)A/F4 9/Times-Roman@0 SF(.)A F0 .962
-(If no)5.462 F F2(jobspec)5.202 E F0 .962(is supplied, the)3.772 F F1
+.585(ed so that)-.1 F/F4 9/Times-Bold@0 SF(SIGHUP)3.085 E F0 .585
+(is not sent to the job if the)2.835 F .962(shell recei)144 422.4 R -.15
+(ve)-.25 G 3.462(sa).15 G F4(SIGHUP)A/F5 9/Times-Roman@0 SF(.)A F0 .962
+(If no)5.462 F F3(jobspec)5.202 E F0 .962(is supplied, the)3.772 F F2
<ad61>3.462 E F0 .962(option means to remo)3.462 F 1.262 -.15(ve o)-.15
-H 3.462(rm).15 G .962(ark all)-3.462 F 1.359(jobs; the)144 374.4 R F1
-<ad72>3.859 E F0 1.359(option without a)3.859 F F2(jobspec)5.599 E F0
+H 3.462(rm).15 G .962(ark all)-3.462 F 1.359(jobs; the)144 434.4 R F2
+<ad72>3.859 E F0 1.359(option without a)3.859 F F3(jobspec)5.599 E F0
(ar)4.169 E 1.358(gument restricts operation to running jobs.)-.18 F
-1.358(The return)6.358 F -.25(va)144 386.4 S(lue is 0 unless a).25 E F2
+1.358(The return)6.358 F -.25(va)144 446.4 S(lue is 0 unless a).25 E F3
(jobspec)4.24 E F0(does not specify a v)2.81 E(alid job)-.25 E(.)-.4 E
-F1(echo)108 403.2 Q F0([)2.5 E F1(\255neE)A F0 2.5(][)C F2(ar)-2.5 E(g)
--.37 E F0(...])2.5 E .424(Output the)144 415.2 R F2(ar)2.924 E(g)-.37 E
+F2(echo)108 463.2 Q F0([)2.5 E F2(\255neE)A F0 2.5(][)C F3(ar)-2.5 E(g)
+-.37 E F0(...])2.5 E .424(Output the)144 475.2 R F3(ar)2.924 E(g)-.37 E
F0 .424(s, separated by spaces, follo)B .424(wed by a ne)-.25 F 2.924
(wline. The)-.25 F .424(return status is 0 unless a write)2.924 F .308
-(error occurs.)144 427.2 R(If)5.308 E F1<ad6e>2.808 E F0 .308
+(error occurs.)144 487.2 R(If)5.308 E F2<ad6e>2.808 E F0 .308
(is speci\214ed, the trailing ne)2.808 F .308(wline is suppressed.)-.25
-F .307(If the)5.308 F F1<ad65>2.807 E F0 .307(option is gi)2.807 F -.15
+F .307(If the)5.308 F F2<ad65>2.807 E F0 .307(option is gi)2.807 F -.15
(ve)-.25 G .307(n, inter).15 F(-)-.2 E .197(pretation of the follo)144
-439.2 R .198(wing backslash-escaped characters is enabled.)-.25 F(The)
-5.198 E F1<ad45>2.698 E F0 .198(option disables the in-)2.698 F .067
-(terpretation of these escape characters, e)144 451.2 R -.15(ve)-.25 G
+499.2 R .198(wing backslash-escaped characters is enabled.)-.25 F(The)
+5.198 E F2<ad45>2.698 E F0 .198(option disables the in-)2.698 F .067
+(terpretation of these escape characters, e)144 511.2 R -.15(ve)-.25 G
2.567(no).15 G 2.567(ns)-2.567 G .067(ystems where the)-2.567 F 2.567
-(ya)-.15 G .067(re interpreted by def)-2.567 F 2.567(ault. The)-.1 F F1
-(xpg_echo)144 463.2 Q F0 .601
+(ya)-.15 G .067(re interpreted by def)-2.567 F 2.567(ault. The)-.1 F F2
+(xpg_echo)144 523.2 Q F0 .601
(shell option may be used to dynamically determine whether or not)3.101
-F F1(echo)3.102 E F0 -.15(ex)3.102 G .602(pands these).15 F .659
-(escape characters by def)144 475.2 R(ault.)-.1 E F1(echo)5.659 E F0
-.659(does not interpret)3.159 F F1<adad>3.159 E F0 .659
-(to mean the end of options.)3.159 F F1(echo)5.658 E F0(inter)3.158 E(-)
--.2 E(prets the follo)144 487.2 Q(wing escape sequences:)-.25 E F1(\\a)
-144 499.2 Q F0(alert \(bell\))180 499.2 Q F1(\\b)144 511.2 Q F0
-(backspace)180 511.2 Q F1(\\c)144 523.2 Q F0(suppress further output)180
-523.2 Q F1(\\e)144 535.2 Q(\\E)144 547.2 Q F0(an escape character)180
-547.2 Q F1(\\f)144 559.2 Q F0(form feed)180 559.2 Q F1(\\n)144 571.2 Q
-F0(ne)180 571.2 Q 2.5(wl)-.25 G(ine)-2.5 E F1(\\r)144 583.2 Q F0
-(carriage return)180 583.2 Q F1(\\t)144 595.2 Q F0(horizontal tab)180
-595.2 Q F1(\\v)144 607.2 Q F0 -.15(ve)180 607.2 S(rtical tab).15 E F1
-(\\\\)144 619.2 Q F0(backslash)180 619.2 Q F1(\\0)144 631.2 Q F2(nnn)A
-F0(the eight-bit character whose v)180 631.2 Q(alue is the octal v)-.25
-E(alue)-.25 E F2(nnn)2.5 E F0(\(zero to three octal digits\))2.5 E F1
-(\\x)144 643.2 Q F2(HH)A F0(the eight-bit character whose v)180 643.2 Q
-(alue is the he)-.25 E(xadecimal v)-.15 E(alue)-.25 E F2(HH)2.5 E F0
-(\(one or tw)2.5 E 2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E F1
-(\\u)144 655.2 Q F2(HHHH)A F0 1.506
-(the Unicode \(ISO/IEC 10646\) character whose v)180 667.2 R 1.507
-(alue is the he)-.25 F 1.507(xadecimal v)-.15 F(alue)-.25 E F2(HHHH)
-4.007 E F0(\(one to four he)180 679.2 Q 2.5(xd)-.15 G(igits\))-2.5 E F1
-(\\U)144 691.2 Q F2(HHHHHHHH)A F0 .548
-(the Unicode \(ISO/IEC 10646\) character whose v)180 703.2 R .547
-(alue is the he)-.25 F .547(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-)
-3.047 E(HHH)180 715.2 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G
-(igits\))-2.5 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(7)203.725 E
-0 Cg EP
+F F2(echo)3.102 E F0 -.15(ex)3.102 G .602(pands these).15 F .659
+(escape characters by def)144 535.2 R(ault.)-.1 E F2(echo)5.659 E F0
+.659(does not interpret)3.159 F F2<adad>3.159 E F0 .659
+(to mean the end of options.)3.159 F F2(echo)5.658 E F0(inter)3.158 E(-)
+-.2 E(prets the follo)144 547.2 Q(wing escape sequences:)-.25 E F2(\\a)
+144 559.2 Q F0(alert \(bell\))180 559.2 Q F2(\\b)144 571.2 Q F0
+(backspace)180 571.2 Q F2(\\c)144 583.2 Q F0(suppress further output)180
+583.2 Q F2(\\e)144 595.2 Q(\\E)144 607.2 Q F0(an escape character)180
+607.2 Q F2(\\f)144 619.2 Q F0(form feed)180 619.2 Q F2(\\n)144 631.2 Q
+F0(ne)180 631.2 Q 2.5(wl)-.25 G(ine)-2.5 E F2(\\r)144 643.2 Q F0
+(carriage return)180 643.2 Q F2(\\t)144 655.2 Q F0(horizontal tab)180
+655.2 Q F2(\\v)144 667.2 Q F0 -.15(ve)180 667.2 S(rtical tab).15 E F2
+(\\\\)144 679.2 Q F0(backslash)180 679.2 Q F2(\\0)144 691.2 Q F3(nnn)A
+F0(the eight-bit character whose v)180 691.2 Q(alue is the octal v)-.25
+E(alue)-.25 E F3(nnn)2.5 E F0(\(zero to three octal digits\))2.5 E F2
+(\\x)144 703.2 Q F3(HH)A F0(the eight-bit character whose v)180 703.2 Q
+(alue is the he)-.25 E(xadecimal v)-.15 E(alue)-.25 E F3(HH)2.5 E F0
+(\(one or tw)2.5 E 2.5(oh)-.1 G .3 -.15(ex d)-2.5 H(igits\)).15 E
+(GNU Bash 5.2)72 768 Q(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(7)
+190.545 E 0 Cg EP
%%Page: 8 8
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(enable)108 84 Q F0([)
-2.5 E F1<ad61>A F0 2.5(][)C F1(\255dnps)-2.5 E F0 2.5(][)C F1<ad66>-2.5
-E/F2 10/Times-Italic@0 SF(\214lename)2.5 E F0 2.5(][)C F2(name)-2.5 E F0
-(...])2.5 E .277(Enable and disable b)144 96 R .278
-(uiltin shell commands.)-.2 F .278(Disabling a b)5.278 F .278
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(\\u)144 84 Q/F2 10
+/Times-Italic@0 SF(HHHH)A F0 1.506
+(the Unicode \(ISO/IEC 10646\) character whose v)180 96 R 1.507
+(alue is the he)-.25 F 1.507(xadecimal v)-.15 F(alue)-.25 E F2(HHHH)
+4.007 E F0(\(one to four he)180 108 Q 2.5(xd)-.15 G(igits\))-2.5 E F1
+(\\U)144 120 Q F2(HHHHHHHH)A F0 .548
+(the Unicode \(ISO/IEC 10646\) character whose v)180 132 R .547
+(alue is the he)-.25 F .547(xadecimal v)-.15 F(alue)-.25 E F2(HHHHH-)
+3.047 E(HHH)180 144 Q F0(\(one to eight he)2.5 E 2.5(xd)-.15 G(igits\))
+-2.5 E F1(enable)108 160.8 Q F0([)2.5 E F1<ad61>A F0 2.5(][)C F1
+(\255dnps)-2.5 E F0 2.5(][)C F1<ad66>-2.5 E F2(\214lename)2.5 E F0 2.5
+(][)C F2(name)-2.5 E F0(...])2.5 E .277(Enable and disable b)144 172.8 R
+.278(uiltin shell commands.)-.2 F .278(Disabling a b)5.278 F .278
(uiltin allo)-.2 F .278(ws a disk command which has)-.25 F .834
-(the same name as a shell b)144 108 R .834(uiltin to be e)-.2 F -.15(xe)
--.15 G .834(cuted without specifying a full pathname, e).15 F -.15(ve)
--.25 G 3.333(nt).15 G(hough)-3.333 E .989
-(the shell normally searches for b)144 120 R .989
+(the same name as a shell b)144 184.8 R .834(uiltin to be e)-.2 F -.15
+(xe)-.15 G .834(cuted without specifying a full pathname, e).15 F -.15
+(ve)-.25 G 3.333(nt).15 G(hough)-3.333 E .989
+(the shell normally searches for b)144 196.8 R .989
(uiltins before disk commands.)-.2 F(If)5.989 E F1<ad6e>3.489 E F0 .99
(is used, each)3.49 F F2(name)3.49 E F0 .99(is dis-)3.49 F .649
-(abled; otherwise,)144 132 R F2(names)3.148 E F0 .648(are enabled.)3.148
-F -.15(Fo)5.648 G 3.148(re).15 G .648(xample, to use the)-3.298 F F1
-(test)3.148 E F0 .648(binary found via the)3.148 F/F3 9/Times-Bold@0 SF
--.666(PA)3.148 G(TH)-.189 E F0(in-)2.898 E .538(stead of the shell b)144
-144 R .538(uiltin v)-.2 F .538(ersion, run)-.15 F/F4 10/Courier@0 SF
-.538(enable -n test)3.038 F F0 5.538(.T)C(he)-5.538 E F1<ad66>3.038 E F0
-.539(option means to load the ne)3.038 F(w)-.25 E -.2(bu)144 156 S 1.365
-(iltin command).2 F F2(name)4.225 E F0 1.365(from shared object)4.045 F
-F2(\214lename)5.775 E F0 3.865(,o).18 G 3.865(ns)-3.865 G 1.365
-(ystems that support dynamic loading.)-3.865 F(The)144 168 Q F1<ad64>
-2.866 E F0 .366(option will delete a b)2.866 F .366(uiltin pre)-.2 F
-.366(viously loaded with)-.25 F F1<ad66>2.867 E F0 5.367(.I)C 2.867(fn)
--5.367 G(o)-2.867 E F2(name)2.867 E F0(ar)2.867 E .367(guments are gi)
--.18 F -.15(ve)-.25 G .367(n, or).15 F .399(if the)144 180 R F1<ad70>
-2.899 E F0 .399(option is supplied, a list of shell b)2.899 F .399
-(uiltins is printed.)-.2 F -.4(Wi)5.399 G .399(th no other option ar).4
-F .398(guments, the)-.18 F .098(list consists of all enabled shell b)144
-192 R 2.598(uiltins. If)-.2 F F1<ad6e>2.598 E F0 .098
-(is supplied, only disabled b)2.598 F .099(uiltins are printed.)-.2 F
-(If)5.099 E F1<ad61>2.599 E F0 .906
-(is supplied, the list printed includes all b)144 204 R .905
-(uiltins, with an indication of whether or not each is en-)-.2 F 2.872
-(abled. If)144 216 R F1<ad73>2.872 E F0 .372
-(is supplied, the output is restricted to the POSIX)2.872 F F2(special)
-2.873 E F0 -.2(bu)2.873 G 2.873(iltins. The).2 F .373(return v)2.873 F
-.373(alue is)-.25 F 2.5(0u)144 228 S(nless a)-2.5 E F2(name)2.86 E F0
-(is not a shell b)2.68 E(uiltin or there is an error loading a ne)-.2 E
-2.5(wb)-.25 G(uiltin from a shared object.)-2.7 E F1 -2.3 -.15(ev a)108
-244.8 T(l).15 E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(The)144 256.8
-Q F2(ar)3.171 E(g)-.37 E F0 3.171(sa)C .671
+(abled; otherwise,)144 208.8 R F2(names)3.148 E F0 .648(are enabled.)
+3.148 F -.15(Fo)5.648 G 3.148(re).15 G .648(xample, to use the)-3.298 F
+F1(test)3.148 E F0 .648(binary found via the)3.148 F/F3 9/Times-Bold@0
+SF -.666(PA)3.148 G(TH)-.189 E F0(in-)2.898 E .538(stead of the shell b)
+144 220.8 R .538(uiltin v)-.2 F .538(ersion, run)-.15 F/F4 10/Courier@0
+SF .538(enable -n test)3.038 F F0 5.538(.T)C(he)-5.538 E F1<ad66>3.038 E
+F0 .539(option means to load the ne)3.038 F(w)-.25 E -.2(bu)144 232.8 S
+1.365(iltin command).2 F F2(name)4.225 E F0 1.365(from shared object)
+4.045 F F2(\214lename)5.775 E F0 3.865(,o).18 G 3.865(ns)-3.865 G 1.365
+(ystems that support dynamic loading.)-3.865 F .606(Bash will use the v)
+144 244.8 R .606(alue of the)-.25 F F1 -.3(BA)3.106 G(SH_LO).3 E(AD)-.4
+E(ABLES_P)-.35 E -.95(AT)-.74 G(H).95 E F0 -.25(va)3.106 G .606
+(riable as a colon-separated list of).25 F .549
+(directories in which to search for)144 256.8 R F2(\214lename)3.049 E F0
+5.549(.T)C .549(he def)-5.549 F .548(ault is system-dependent.)-.1 F
+(The)5.548 E F1<ad64>3.048 E F0 .548(option will)3.048 F .546
+(delete a b)144 268.8 R .546(uiltin pre)-.2 F .546(viously loaded with)
+-.25 F F1<ad66>3.046 E F0 5.547(.I)C 3.047(fn)-5.547 G(o)-3.047 E F2
+(name)3.047 E F0(ar)3.047 E .547(guments are gi)-.18 F -.15(ve)-.25 G
+.547(n, or if the).15 F F1<ad70>3.047 E F0 .547(option is)3.047 F .546
+(supplied, a list of shell b)144 280.8 R .545(uiltins is printed.)-.2 F
+-.4(Wi)5.545 G .545(th no other option ar).4 F .545
+(guments, the list consists of all)-.18 F .695(enabled shell b)144 292.8
+R 3.195(uiltins. If)-.2 F F1<ad6e>3.195 E F0 .695
+(is supplied, only disabled b)3.195 F .695(uiltins are printed.)-.2 F
+(If)5.695 E F1<ad61>3.195 E F0 .695(is supplied, the)3.195 F .262
+(list printed includes all b)144 304.8 R .261
+(uiltins, with an indication of whether or not each is enabled.)-.2 F
+(If)5.261 E F1<ad73>2.761 E F0 .261(is sup-)2.761 F .268
+(plied, the output is restricted to the POSIX)144 316.8 R F2(special)
+2.768 E F0 -.2(bu)2.768 G 2.768(iltins. If).2 F .269
+(no options are supplied and a)2.768 F F2(name)2.769 E F0 .285
+(is not a shell b)144 328.8 R(uiltin,)-.2 E F1(enable)2.784 E F0 .284
+(will attempt to load)2.784 F F2(name)2.784 E F0 .284
+(from a shared object named)2.784 F F2(name)2.784 E F0 2.784(,a)C 2.784
+(si)-2.784 G 2.784(ft)-2.784 G(he)-2.784 E 1.41(command were)144 340.8 R
+F4 1.41(enable \255f)3.91 F F2 1.41(name name)3.91 F F0 6.41(.T)3.91 G
+1.41(he return v)-6.41 F 1.41(alue is 0 unless a)-.25 F F2(name)4.27 E
+F0 1.41(is not a shell)4.09 F -.2(bu)144 352.8 S
+(iltin or there is an error loading a ne).2 E 2.5(wb)-.25 G
+(uiltin from a shared object.)-2.7 E F1 -2.3 -.15(ev a)108 369.6 T(l).15
+E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(The)144 381.6 Q F2(ar)3.171
+E(g)-.37 E F0 3.171(sa)C .671
(re read and concatenated together into a single command.)-3.171 F .67
-(This command is then read)5.67 F .478(and e)144 268.8 R -.15(xe)-.15 G
+(This command is then read)5.67 F .478(and e)144 393.6 R -.15(xe)-.15 G
.478(cuted by the shell, and its e).15 F .478
(xit status is returned as the v)-.15 F .479(alue of)-.25 F F1 -2.3 -.15
(ev a)2.979 H(l).15 E F0 5.479(.I)C 2.979(ft)-5.479 G .479(here are no)
--2.979 F F2(ar)3.309 E(gs)-.37 E F0(,).27 E(or only null ar)144 280.8 Q
+-2.979 F F2(ar)3.309 E(gs)-.37 E F0(,).27 E(or only null ar)144 405.6 Q
(guments,)-.18 E F1 -2.3 -.15(ev a)2.5 H(l).15 E F0(returns 0.)2.5 E F1
-(exec)108 297.6 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E F2
+(exec)108 422.4 Q F0([)2.5 E F1(\255cl)A F0 2.5(][)C F1<ad61>-2.5 E F2
(name)2.5 E F0 2.5(][)C F2(command)-2.5 E F0([)2.5 E F2(ar)A(guments)
--.37 E F0(]])A(If)144 309.6 Q F2(command)3.006 E F0 .306
+-.37 E F0(]])A(If)144 434.4 Q F2(command)3.006 E F0 .306
(is speci\214ed, it replaces the shell.)3.576 F .305(No ne)5.305 F 2.805
(wp)-.25 G .305(rocess is created.)-2.805 F(The)5.305 E F2(ar)3.135 E
-(guments)-.37 E F0(become)3.075 E .176(the ar)144 321.6 R .176
+(guments)-.37 E F0(become)3.075 E .176(the ar)144 446.4 R .176
(guments to)-.18 F F2(command)2.676 E F0 5.176(.I)C 2.676(ft)-5.176 G
(he)-2.676 E F1<ad6c>2.676 E F0 .176
(option is supplied, the shell places a dash at the be)2.676 F .177
-(ginning of)-.15 F .48(the zeroth ar)144 333.6 R .48(gument passed to)
+(ginning of)-.15 F .48(the zeroth ar)144 458.4 R .48(gument passed to)
-.18 F F2(command)3.18 E F0 5.48(.T).77 G .48(his is what)-5.48 F F2(lo)
3.07 E(gin)-.1 E F0 .48(\(1\) does.).24 F(The)5.48 E F1<ad63>2.98 E F0
-.48(option causes)2.98 F F2(com-)3.18 E(mand)144 345.6 Q F0 .638
+.48(option causes)2.98 F F2(com-)3.18 E(mand)144 470.4 Q F0 .638
(to be e)3.908 F -.15(xe)-.15 G .638(cuted with an empty en).15 F 3.138
(vironment. If)-.4 F F1<ad61>3.138 E F0 .638
(is supplied, the shell passes)3.138 F F2(name)3.499 E F0 .639(as the)
-3.319 F 1.078(zeroth ar)144 357.6 R 1.077(gument to the e)-.18 F -.15
+3.319 F 1.078(zeroth ar)144 482.4 R 1.077(gument to the e)-.18 F -.15
(xe)-.15 G 1.077(cuted command.).15 F(If)6.077 E F2(command)3.777 E F0
1.077(cannot be e)4.347 F -.15(xe)-.15 G 1.077(cuted for some reason, a)
-.15 F(non-interacti)144 369.6 Q .876 -.15(ve s)-.25 H .576(hell e).15 F
+.15 F(non-interacti)144 494.4 Q .876 -.15(ve s)-.25 H .576(hell e).15 F
.576(xits, unless the)-.15 F F1(execfail)3.076 E F0 .577
(shell option is enabled.)3.077 F .577(In that case, it returns f)5.577
-F(ail-)-.1 E 3.32(ure. An)144 381.6 R(interacti)3.32 E 1.12 -.15(ve s)
+F(ail-)-.1 E 3.32(ure. An)144 506.4 R(interacti)3.32 E 1.12 -.15(ve s)
-.25 H .82(hell returns f).15 F .82(ailure if the \214le cannot be e)-.1
F -.15(xe)-.15 G 3.32(cuted. A).15 F .82(subshell e)3.32 F .82
-(xits uncondi-)-.15 F .287(tionally if)144 393.6 R F1(exec)2.787 E F0
+(xits uncondi-)-.15 F .287(tionally if)144 518.4 R F1(exec)2.787 E F0
-.1(fa)2.787 G 2.787(ils. If).1 F F2(command)2.987 E F0 .287
(is not speci\214ed, an)3.557 F 2.788(yr)-.15 G .288(edirections tak)
-2.788 F 2.788(ee)-.1 G -.25(ff)-2.788 G .288(ect in the current shell,)
-.25 F(and the return status is 0.)144 405.6 Q
+.25 F(and the return status is 0.)144 530.4 Q
(If there is a redirection error)5 E 2.5(,t)-.4 G
-(he return status is 1.)-2.5 E F1(exit)108 422.4 Q F0([)2.5 E F2(n)A F0
-(])A .096(Cause the shell to e)144 422.4 R .096(xit with a status of)
+(he return status is 1.)-2.5 E F1(exit)108 547.2 Q F0([)2.5 E F2(n)A F0
+(])A .096(Cause the shell to e)144 547.2 R .096(xit with a status of)
-.15 F F2(n)2.596 E F0 5.096(.I)C(f)-5.096 E F2(n)2.955 E F0 .095
(is omitted, the e)2.835 F .095(xit status is that of the last command)
--.15 F -.15(exe)144 434.4 S 2.5(cuted. A).15 F(trap on)2.5 E F3(EXIT)2.5
+-.15 F -.15(exe)144 559.2 S 2.5(cuted. A).15 F(trap on)2.5 E F3(EXIT)2.5
E F0(is e)2.25 E -.15(xe)-.15 G(cuted before the shell terminates.).15 E
-F1(export)108 451.2 Q F0([)2.5 E F1(\255fn)A F0 2.5(][).833 G F2(name)
--2.5 E F0([=)A F2(wor)A(d)-.37 E F0(]] ...)A F1(export \255p)108 463.2 Q
-F0 .256(The supplied)144 475.2 R F2(names)3.117 E F0 .257(are mark)3.027
-F .257(ed for automatic e)-.1 F .257(xport to the en)-.15 F .257
+F1(export)108 576 Q F0([)2.5 E F1(\255fn)A F0 2.5(][).833 G F2(name)-2.5
+E F0([=)A F2(wor)A(d)-.37 E F0(]] ...)A F1(export \255p)108 588 Q F0
+.256(The supplied)144 600 R F2(names)3.117 E F0 .257(are mark)3.027 F
+.257(ed for automatic e)-.1 F .257(xport to the en)-.15 F .257
(vironment of subsequently e)-.4 F -.15(xe)-.15 G(cuted).15 E 2.627
-(commands. If)144 487.2 R(the)2.627 E F1<ad66>2.627 E F0 .127
+(commands. If)144 612 R(the)2.627 E F1<ad66>2.627 E F0 .127
(option is gi)2.627 F -.15(ve)-.25 G .127(n, the).15 F F2(names)2.987 E
F0 .127(refer to functions.)2.897 F .127(If no)5.127 F F2(names)2.987 E
F0 .127(are gi)2.897 F -.15(ve)-.25 G .126(n, or if the).15 F F1<ad70>
-144 499.2 Q F0 .048(option is supplied, a list of names of all e)2.547 F
+144 624 Q F0 .048(option is supplied, a list of names of all e)2.547 F
.048(xported v)-.15 F .048(ariables is printed.)-.25 F(The)5.048 E F1
-<ad6e>2.548 E F0 .048(option causes the)2.548 F -.15(ex)144 511.2 S
-1.447(port property to be remo).15 F -.15(ve)-.15 G 3.947(df).15 G 1.447
+<ad6e>2.548 E F0 .048(option causes the)2.548 F -.15(ex)144 636 S 1.447
+(port property to be remo).15 F -.15(ve)-.15 G 3.947(df).15 G 1.447
(rom each)-3.947 F F2(name)3.947 E F0 6.447(.I)C 3.947(fav)-6.447 G
1.447(ariable name is follo)-4.197 F 1.447(wed by =)-.25 F F2(wor)A(d)
--.37 E F0 3.946(,t)C(he)-3.946 E -.25(va)144 523.2 S .741(lue of the v)
-.25 F .741(ariable is set to)-.25 F F2(wor)3.241 E(d)-.37 E F0(.)A F1
+-.37 E F0 3.946(,t)C(he)-3.946 E -.25(va)144 648 S .741(lue of the v).25
+F .741(ariable is set to)-.25 F F2(wor)3.241 E(d)-.37 E F0(.)A F1
(export)5.741 E F0 .742(returns an e)3.242 F .742
(xit status of 0 unless an in)-.15 F -.25(va)-.4 G .742(lid option is)
-.25 F .032(encountered, one of the)144 535.2 R F2(names)2.532 E F0 .032
+.25 F .032(encountered, one of the)144 660 R F2(names)2.532 E F0 .032
(is not a v)2.532 F .032(alid shell v)-.25 F .032(ariable name, or)-.25
F F1<ad66>2.531 E F0 .031(is supplied with a)2.531 F F2(name)2.891 E F0
-(that)2.711 E(is not a function.)144 547.2 Q F1(fc)108 564 Q F0([)2.5 E
+(that)2.711 E(is not a function.)144 672 Q F1(fc)108 688.8 Q F0([)2.5 E
F1<ad65>A F2(ename)2.5 E F0 2.5(][)C F1(\255lnr)-2.5 E F0 2.5(][)C F2
<8c72>-2.5 E(st)-.1 E F0 2.5(][)C F2(last)-2.5 E F0(])A F1(fc \255s)108
-576 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2
+700.8 Q F0([)2.5 E F2(pat)A F0(=)A F2 -.37(re)C(p).37 E F0 2.5(][)C F2
(cmd)-2.5 E F0(])A .431
-(The \214rst form selects a range of commands from)144 588 R F2<8c72>
+(The \214rst form selects a range of commands from)144 712.8 R F2<8c72>
4.842 E(st)-.1 E F0(to)3.612 E F2(last)3.022 E F0 .432
(from the history list and displays or)3.612 F .142(edits and re-e)144
-600 R -.15(xe)-.15 G .142(cutes them.).15 F F2 -.45(Fi)5.141 G -.1(rs)
+724.8 R -.15(xe)-.15 G .142(cutes them.).15 F F2 -.45(Fi)5.141 G -.1(rs)
.45 G(t).1 E F0(and)3.321 E F2(last)2.731 E F0 .141
-(may be speci\214ed as a string \(to locate the last command)3.321 F(be)
-144 612 Q .31(ginning with that string\) or as a number \(an inde)-.15 F
-2.811(xi)-.15 G .311(nto the history list, where a ne)-2.811 F -.05(ga)
--.15 G(ti).05 E .611 -.15(ve n)-.25 H(umber).15 E .071(is used as an of)
-144 624 R .071(fset from the current command number\).)-.25 F .071
-(When listing, a)5.071 F F2<8c72>2.571 E(st)-.1 E F0(or)2.571 E F2(last)
-2.571 E F0 .071(of 0 is equi)2.571 F -.25(va)-.25 G(-).25 E .653
-(lent to \2551 and \2550 is equi)144 636 R -.25(va)-.25 G .653
-(lent to the current command \(usually the).25 F F1(fc)3.153 E F0 .653
-(command\); otherwise 0 is)3.153 F(equi)144 648 Q -.25(va)-.25 G .242
-(lent to \2551 and \2550 is in).25 F -.25(va)-.4 G 2.742(lid. If).25 F
-F2(last)2.832 E F0 .242
-(is not speci\214ed, it is set to the current command for list-)3.422 F
-.092(ing \(so that)144 660 R F4 .092(fc \255l \25510)2.592 F F0 .093
-(prints the last 10 commands\) and to)2.592 F F2<8c72>4.503 E(st)-.1 E
-F0 2.593(otherwise. If)3.273 F F2<8c72>4.503 E(st)-.1 E F0 .093
-(is not speci-)3.273 F(\214ed, it is set to the pre)144 672 Q
-(vious command for editing and \25516 for listing.)-.25 E(The)144 696 Q
-F1<ad6e>2.522 E F0 .022
-(option suppresses the command numbers when listing.)2.522 F(The)5.022 E
-F1<ad72>2.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022
-(rses the order of).15 F .438(the commands.)144 708 R .438(If the)5.438
-F F1<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438
-(n, the commands are listed on standard output.).15 F(Otherwise,)5.438 E
-.335(the editor gi)144 720 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E F2
-(ename)3.025 E F0 .335(is in)3.015 F -.2(vo)-.4 G -.1(ke).2 G 2.835(do)
-.1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835 F
-(If)5.334 E F2(ename)3.024 E F0 .334(is not gi)3.014 F -.15(ve)-.25 G
-(n,).15 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(8)203.725 E 0 Cg
-EP
+(may be speci\214ed as a string \(to locate the last command)3.321 F
+(GNU Bash 5.2)72 768 Q(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(8)
+190.545 E 0 Cg EP
%%Page: 9 9
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E .63(the v)144 84 R .63(alue of the)-.25 F
-/F1 9/Times-Bold@0 SF(FCEDIT)3.13 E F0 -.25(va)2.88 G .631
-(riable is used, and the v).25 F .631(alue of)-.25 F F1(EDIT)3.131 E(OR)
--.162 E F0(if)2.881 E F1(FCEDIT)3.131 E F0 .631(is not set.)2.881 F .631
-(If nei-)5.631 F .006(ther v)144 96 R .006(ariable is set,)-.25 F/F2 10
-/Times-Italic@0 SF(vi)4.171 E F0 .005(is used.)4.171 F .005
-(When editing is complete, the edited commands are echoed and e)5.005 F
-(x-)-.15 E(ecuted.)144 108 Q .788(In the second form,)144 132 R F2
-(command)3.288 E F0 .788(is re-e)3.288 F -.15(xe)-.15 G .788
-(cuted after each instance of).15 F F2(pat)3.288 E F0 .788
-(is replaced by)3.288 F F2 -.37(re)3.289 G(p).37 E F0(.)A F2(Com-)5.789
-E(mand)144 144 Q F0 .172(is interpreted the same as)2.672 F F2<8c72>
+E(UIL)-.1 E(TINS\(1\))-.92 E(be)144 84 Q .31
+(ginning with that string\) or as a number \(an inde)-.15 F 2.811(xi)
+-.15 G .311(nto the history list, where a ne)-2.811 F -.05(ga)-.15 G(ti)
+.05 E .611 -.15(ve n)-.25 H(umber).15 E .071(is used as an of)144 96 R
+.071(fset from the current command number\).)-.25 F .071
+(When listing, a)5.071 F/F1 10/Times-Italic@0 SF<8c72>2.571 E(st)-.1 E
+F0(or)2.571 E F1(last)2.571 E F0 .071(of 0 is equi)2.571 F -.25(va)-.25
+G(-).25 E .653(lent to \2551 and \2550 is equi)144 108 R -.25(va)-.25 G
+.653(lent to the current command \(usually the).25 F/F2 10/Times-Bold@0
+SF(fc)3.153 E F0 .653(command\); otherwise 0 is)3.153 F(equi)144 120 Q
+-.25(va)-.25 G .242(lent to \2551 and \2550 is in).25 F -.25(va)-.4 G
+2.742(lid. If).25 F F1(last)2.832 E F0 .242
+(is not speci\214ed, it is set to the current command for list-)3.422 F
+.092(ing \(so that)144 132 R/F3 10/Courier@0 SF .092(fc \255l \25510)
+2.592 F F0 .093(prints the last 10 commands\) and to)2.592 F F1<8c72>
+4.503 E(st)-.1 E F0 2.593(otherwise. If)3.273 F F1<8c72>4.503 E(st)-.1 E
+F0 .093(is not speci-)3.273 F(\214ed, it is set to the pre)144 144 Q
+(vious command for editing and \25516 for listing.)-.25 E(The)144 168 Q
+F2<ad6e>2.522 E F0 .022
+(option suppresses the command numbers when listing.)2.522 F(The)5.022 E
+F2<ad72>2.522 E F0 .022(option re)2.522 F -.15(ve)-.25 G .022
+(rses the order of).15 F .438(the commands.)144 180 R .438(If the)5.438
+F F2<ad6c>2.938 E F0 .438(option is gi)2.938 F -.15(ve)-.25 G .438
+(n, the commands are listed on standard output.).15 F(Otherwise,)5.438 E
+.335(the editor gi)144 192 R -.15(ve)-.25 G 2.835(nb).15 G(y)-2.835 E F1
+(ename)3.025 E F0 .335(is in)3.015 F -.2(vo)-.4 G -.1(ke).2 G 2.835(do)
+.1 G 2.835(na\214)-2.835 G .335(le containing those commands.)-2.835 F
+(If)5.334 E F1(ename)3.024 E F0 .334(is not gi)3.014 F -.15(ve)-.25 G
+(n,).15 E .63(the v)144 204 R .63(alue of the)-.25 F/F4 9/Times-Bold@0
+SF(FCEDIT)3.13 E F0 -.25(va)2.88 G .631(riable is used, and the v).25 F
+.631(alue of)-.25 F F4(EDIT)3.131 E(OR)-.162 E F0(if)2.881 E F4(FCEDIT)
+3.131 E F0 .631(is not set.)2.881 F .631(If nei-)5.631 F .006(ther v)144
+216 R .006(ariable is set,)-.25 F F1(vi)4.171 E F0 .005(is used.)4.171 F
+.005(When editing is complete, the edited commands are echoed and e)
+5.005 F(x-)-.15 E(ecuted.)144 228 Q .788(In the second form,)144 252 R
+F1(command)3.288 E F0 .788(is re-e)3.288 F -.15(xe)-.15 G .788
+(cuted after each instance of).15 F F1(pat)3.288 E F0 .788
+(is replaced by)3.288 F F1 -.37(re)3.289 G(p).37 E F0(.)A F1(Com-)5.789
+E(mand)144 264 Q F0 .172(is interpreted the same as)2.672 F F1<8c72>
2.672 E(st)-.1 E F0(abo)2.672 E -.15(ve)-.15 G 5.172(.A).15 G .171
-(useful alias to use with this is)-2.5 F/F3 10/Courier@0 SF .171
-(r='fc \255s')2.671 F F0 2.671(,s)C 2.671(ot)-2.671 G(hat)-2.671 E
-(typing)144 156 Q F3 7.165(rc)3.665 G(c)-7.165 E F0 1.165
-(runs the last command be)3.665 F 1.166(ginning with)-.15 F F3(cc)3.666
-E F0 1.166(and typing)3.666 F F3(r)3.666 E F0(re-e)3.666 E -.15(xe)-.15
-G 1.166(cutes the last com-).15 F(mand.)144 168 Q .142
-(If the \214rst form is used, the return v)144 192 R .142
-(alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
-(lid option is encountered or).25 F F2<8c72>4.552 E(st)-.1 E F0(or)3.322
-E F2(last)2.732 E F0 .454(specify history lines out of range.)144 204 R
-.454(If the)5.454 F/F4 10/Times-Bold@0 SF<ad65>2.954 E F0 .454
+(useful alias to use with this is)-2.5 F F3 .171(r='fc \255s')2.671 F F0
+2.671(,s)C 2.671(ot)-2.671 G(hat)-2.671 E(typing)144 276 Q F3 7.165(rc)
+3.665 G(c)-7.165 E F0 1.165(runs the last command be)3.665 F 1.166
+(ginning with)-.15 F F3(cc)3.666 E F0 1.166(and typing)3.666 F F3(r)
+3.666 E F0(re-e)3.666 E -.15(xe)-.15 G 1.166(cutes the last com-).15 F
+(mand.)144 288 Q .142(If the \214rst form is used, the return v)144 312
+R .142(alue is 0 unless an in)-.25 F -.25(va)-.4 G .142
+(lid option is encountered or).25 F F1<8c72>4.552 E(st)-.1 E F0(or)3.322
+E F1(last)2.732 E F0 .454(specify history lines out of range.)144 324 R
+.454(If the)5.454 F F2<ad65>2.954 E F0 .454
(option is supplied, the return v)2.954 F .455(alue is the v)-.25 F .455
-(alue of the)-.25 F .788(last command e)144 216 R -.15(xe)-.15 G .788
+(alue of the)-.25 F .788(last command e)144 336 R -.15(xe)-.15 G .788
(cuted or f).15 F .787
(ailure if an error occurs with the temporary \214le of commands.)-.1 F
.787(If the)5.787 F 1.135
(second form is used, the return status is that of the command re-e)144
-228 R -.15(xe)-.15 G 1.136(cuted, unless).15 F F2(cmd)3.836 E F0 1.136
-(does not)4.406 F(specify a v)144 240 Q
-(alid history line, in which case)-.25 E F4(fc)2.5 E F0(returns f)2.5 E
-(ailure.)-.1 E F4(fg)108 256.8 Q F0([)2.5 E F2(jobspec)A F0(])A(Resume)
-144 268.8 Q F2(jobspec)5.654 E F0 1.413(in the fore)4.224 F 1.413
+348 R -.15(xe)-.15 G 1.136(cuted, unless).15 F F1(cmd)3.836 E F0 1.136
+(does not)4.406 F(specify a v)144 360 Q
+(alid history line, in which case)-.25 E F2(fc)2.5 E F0(returns f)2.5 E
+(ailure.)-.1 E F2(fg)108 376.8 Q F0([)2.5 E F1(jobspec)A F0(])A(Resume)
+144 388.8 Q F1(jobspec)5.654 E F0 1.413(in the fore)4.224 F 1.413
(ground, and mak)-.15 F 3.913(ei)-.1 G 3.913(tt)-3.913 G 1.413
-(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F2(jobspec)5.653 E F0
-1.413(is not present, the)4.223 F(shell')144 280.8 Q 3.116(sn)-.55 G
-.616(otion of the)-3.116 F F2(curr)3.116 E .616(ent job)-.37 F F0 .617
+(he current job)-3.913 F 6.413(.I)-.4 G(f)-6.413 E F1(jobspec)5.653 E F0
+1.413(is not present, the)4.223 F(shell')144 400.8 Q 3.116(sn)-.55 G
+.616(otion of the)-3.116 F F1(curr)3.116 E .616(ent job)-.37 F F0 .617
(is used.)3.116 F .617(The return v)5.617 F .617
-(alue is that of the command placed into the)-.25 F(fore)144 292.8 Q
+(alue is that of the command placed into the)-.25 F(fore)144 412.8 Q
.363(ground, or f)-.15 F .363
(ailure if run when job control is disabled or)-.1 F 2.862(,w)-.4 G .362
-(hen run with job control enabled, if)-2.862 F F2(jobspec)145.74 304.8 Q
-F0(does not specify a v)2.81 E(alid job or)-.25 E F2(jobspec)4.24 E F0
+(hen run with job control enabled, if)-2.862 F F1(jobspec)145.74 424.8 Q
+F0(does not specify a v)2.81 E(alid job or)-.25 E F1(jobspec)4.24 E F0
(speci\214es a job that w)2.81 E(as started without job control.)-.1 E
-F4(getopts)108 321.6 Q F2(optstring name)2.5 E F0([)2.5 E F2(ar)A 2.5
-(g.)-.37 G(..)-2.5 E F0(])A F4(getopts)144 333.6 Q F0 .793
-(is used by shell procedures to parse positional parameters.)3.293 F F2
+F2(getopts)108 441.6 Q F1(optstring name)2.5 E F0([)2.5 E F1(ar)A 2.5
+(g.)-.37 G(..)-2.5 E F0(])A F2(getopts)144 453.6 Q F0 .793
+(is used by shell procedures to parse positional parameters.)3.293 F F1
(optstring)6.023 E F0 .793(contains the option)3.513 F .15
-(characters to be recognized; if a character is follo)144 345.6 R .149
+(characters to be recognized; if a character is follo)144 465.6 R .149
(wed by a colon, the option is e)-.25 F .149(xpected to ha)-.15 F .449
--.15(ve a)-.2 H(n).15 E(ar)144 357.6 Q .578
+-.15(ve a)-.2 H(n).15 E(ar)144 477.6 Q .578
(gument, which should be separated from it by white space.)-.18 F .579
(The colon and question mark char)5.579 F(-)-.2 E .636
-(acters may not be used as option characters.)144 369.6 R .636
-(Each time it is in)5.636 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F4(getopts)
+(acters may not be used as option characters.)144 489.6 R .636
+(Each time it is in)5.636 F -.2(vo)-.4 G -.1(ke).2 G(d,).1 E F2(getopts)
3.136 E F0 .636(places the ne)3.136 F .635(xt op-)-.15 F .029
-(tion in the shell v)144 381.6 R(ariable)-.25 E F2(name)2.889 E F0 2.529
-(,i).18 G(nitializing)-2.529 E F2(name)2.889 E F0 .029(if it does not e)
+(tion in the shell v)144 501.6 R(ariable)-.25 E F1(name)2.889 E F0 2.529
+(,i).18 G(nitializing)-2.529 E F1(name)2.889 E F0 .029(if it does not e)
2.709 F .03(xist, and the inde)-.15 F 2.53(xo)-.15 G 2.53(ft)-2.53 G .03
(he ne)-2.53 F .03(xt ar)-.15 F(gu-)-.18 E .066
-(ment to be processed into the v)144 393.6 R(ariable)-.25 E F1(OPTIND)
-2.566 E/F5 9/Times-Roman@0 SF(.)A F1(OPTIND)4.566 E F0 .065
+(ment to be processed into the v)144 513.6 R(ariable)-.25 E F4(OPTIND)
+2.566 E/F5 9/Times-Roman@0 SF(.)A F4(OPTIND)4.566 E F0 .065
(is initialized to 1 each time the shell or a)2.315 F .885
-(shell script is in)144 405.6 R -.2(vo)-.4 G -.1(ke).2 G 3.385(d. When)
-.1 F .885(an option requires an ar)3.385 F(gument,)-.18 E F4(getopts)
+(shell script is in)144 525.6 R -.2(vo)-.4 G -.1(ke).2 G 3.385(d. When)
+.1 F .885(an option requires an ar)3.385 F(gument,)-.18 E F2(getopts)
3.385 E F0 .885(places that ar)3.385 F .885(gument into)-.18 F .567
-(the v)144 417.6 R(ariable)-.25 E F1(OPT)3.067 E(ARG)-.81 E F5(.)A F0
-.566(The shell does not reset)5.067 F F1(OPTIND)3.066 E F0 .566
+(the v)144 537.6 R(ariable)-.25 E F4(OPT)3.067 E(ARG)-.81 E F5(.)A F0
+.566(The shell does not reset)5.067 F F4(OPTIND)3.066 E F0 .566
(automatically; it must be manually reset)2.816 F .389
-(between multiple calls to)144 429.6 R F4(getopts)2.889 E F0 .389
+(between multiple calls to)144 549.6 R F2(getopts)2.889 E F0 .389
(within the same shell in)2.889 F -.2(vo)-.4 G .39(cation if a ne).2 F
-2.89(ws)-.25 G .39(et of parameters is to)-2.89 F(be used.)144 441.6 Q
-2.044(When the end of options is encountered,)144 465.6 R F4(getopts)
+2.89(ws)-.25 G .39(et of parameters is to)-2.89 F(be used.)144 561.6 Q
+2.044(When the end of options is encountered,)144 585.6 R F2(getopts)
4.543 E F0 -.15(ex)4.543 G 2.043(its with a return v).15 F 2.043
-(alue greater than zero.)-.25 F F1(OPTIND)144 477.6 Q F0
+(alue greater than zero.)-.25 F F4(OPTIND)144 597.6 Q F0
(is set to the inde)2.25 E 2.5(xo)-.15 G 2.5(ft)-2.5 G
-(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F2(name)2.5 E F0
-(is set to ?.)2.5 E F4(getopts)144 501.6 Q F0 .485
+(he \214rst non-option ar)-2.5 E(gument, and)-.18 E F1(name)2.5 E F0
+(is set to ?.)2.5 E F2(getopts)144 621.6 Q F0 .485
(normally parses the positional parameters, b)2.985 F .485
-(ut if more ar)-.2 F .485(guments are supplied as)-.18 F F2(ar)3.315 E
-(g)-.37 E F0 -.25(va)3.205 G(l-).25 E(ues,)144 513.6 Q F4(getopts)2.5 E
-F0(parses those instead.)2.5 E F4(getopts)144 537.6 Q F0 .345
+(ut if more ar)-.2 F .485(guments are supplied as)-.18 F F1(ar)3.315 E
+(g)-.37 E F0 -.25(va)3.205 G(l-).25 E(ues,)144 633.6 Q F2(getopts)2.5 E
+F0(parses those instead.)2.5 E F2(getopts)144 657.6 Q F0 .345
(can report errors in tw)2.845 F 2.845(ow)-.1 G 2.845(ays. If)-2.945 F
-.345(the \214rst character of)2.845 F F2(optstring)3.075 E F0 .345
-(is a colon,)3.065 F F2(silent)3.185 E F0 .345(error re-)3.525 F 1.668
-(porting is used.)144 549.6 R 1.668
+.345(the \214rst character of)2.845 F F1(optstring)3.075 E F0 .345
+(is a colon,)3.065 F F1(silent)3.185 E F0 .345(error re-)3.525 F 1.668
+(porting is used.)144 669.6 R 1.668
(In normal operation, diagnostic messages are printed when in)6.668 F
-.25(va)-.4 G 1.669(lid options or).25 F .394(missing option ar)144
-561.6 R .394(guments are encountered.)-.18 F .394(If the v)5.394 F
-(ariable)-.25 E F1(OPTERR)2.894 E F0 .394
-(is set to 0, no error messages)2.644 F(will be displayed, e)144 573.6 Q
+681.6 R .394(guments are encountered.)-.18 F .394(If the v)5.394 F
+(ariable)-.25 E F4(OPTERR)2.894 E F0 .394
+(is set to 0, no error messages)2.644 F(will be displayed, e)144 693.6 Q
-.15(ve)-.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he \214rst character of)-2.5 E
-F2(optstring)2.73 E F0(is not a colon.)2.72 E .666(If an in)144 597.6 R
--.25(va)-.4 G .666(lid option is seen,).25 F F4(getopts)3.166 E F0 .667
-(places ? into)3.167 F F2(name)3.527 E F0 .667
+F1(optstring)2.73 E F0(is not a colon.)2.72 E .666(If an in)144 717.6 R
+-.25(va)-.4 G .666(lid option is seen,).25 F F2(getopts)3.166 E F0 .667
+(places ? into)3.167 F F1(name)3.527 E F0 .667
(and, if not silent, prints an error message)3.347 F .4(and unsets)144
-609.6 R F1(OPT)2.9 E(ARG)-.81 E F5(.)A F0(If)4.899 E F4(getopts)2.899 E
-F0 .399(is silent, the option character found is placed in)2.899 F F1
-(OPT)2.899 E(ARG)-.81 E F0 .399(and no)2.649 F
-(diagnostic message is printed.)144 621.6 Q 1.241(If a required ar)144
-645.6 R 1.241(gument is not found, and)-.18 F F4(getopts)3.741 E F0
-1.241(is not silent, a question mark \()3.741 F F4(?).833 E F0 3.742
-(\)i).833 G 3.742(sp)-3.742 G 1.242(laced in)-3.742 F F2(name)144.36
-657.6 Q F0(,).18 E F1(OPT)2.714 E(ARG)-.81 E F0 .213
-(is unset, and a diagnostic message is printed.)2.463 F(If)5.213 E F4
-(getopts)2.713 E F0 .213(is silent, then a colon \()2.713 F F4(:).833 E
-F0(\)).833 E(is placed in)144 669.6 Q F2(name)2.86 E F0(and)2.68 E F1
-(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25 E F4
-(getopts)144 693.6 Q F0 .902
-(returns true if an option, speci\214ed or unspeci\214ed, is found.)
-3.401 F .902(It returns f)5.902 F .902(alse if the end of)-.1 F
-(options is encountered or an error occurs.)144 705.6 Q(GNU Bash 5.0)72
-768 Q(2004 Apr 20)149.565 E(9)203.725 E 0 Cg EP
+729.6 R F4(OPT)2.9 E(ARG)-.81 E F5(.)A F0(If)4.899 E F2(getopts)2.899 E
+F0 .399(is silent, the option character found is placed in)2.899 F F4
+(OPT)2.899 E(ARG)-.81 E F0 .399(and no)2.649 F(GNU Bash 5.2)72 768 Q
+(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(9)190.545 E 0 Cg EP
%%Page: 10 10
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(hash)108 84 Q F0([)
-2.5 E F1(\255lr)A F0 2.5(][)C F1<ad70>-2.5 E/F2 10/Times-Italic@0 SF
-(\214lename)2.5 E F0 2.5(][)C F1(\255dt)-2.5 E F0 2.5(][)C F2(name)-2.5
-E F0(])A .858(Each time)144 96 R F1(hash)3.358 E F0 .858(is in)3.358 F
--.2(vo)-.4 G -.1(ke).2 G .858(d, the full pathname of the command).1 F
-F2(name)3.718 E F0 .858(is determined by searching)3.538 F .956
-(the directories in)144 108 R F1($P)3.456 E -.95(AT)-.74 G(H).95 E F0
+E(UIL)-.1 E(TINS\(1\))-.92 E(diagnostic message is printed.)144 84 Q
+1.241(If a required ar)144 108 R 1.241(gument is not found, and)-.18 F
+/F1 10/Times-Bold@0 SF(getopts)3.741 E F0 1.241
+(is not silent, a question mark \()3.741 F F1(?).833 E F0 3.742(\)i).833
+G 3.742(sp)-3.742 G 1.242(laced in)-3.742 F/F2 10/Times-Italic@0 SF
+(name)144.36 120 Q F0(,).18 E/F3 9/Times-Bold@0 SF(OPT)2.714 E(ARG)-.81
+E F0 .213(is unset, and a diagnostic message is printed.)2.463 F(If)
+5.213 E F1(getopts)2.713 E F0 .213(is silent, then a colon \()2.713 F F1
+(:).833 E F0(\)).833 E(is placed in)144 132 Q F2(name)2.86 E F0(and)2.68
+E F3(OPT)2.5 E(ARG)-.81 E F0(is set to the option character found.)2.25
+E F1(getopts)144 156 Q F0 .902
+(returns true if an option, speci\214ed or unspeci\214ed, is found.)
+3.401 F .902(It returns f)5.902 F .902(alse if the end of)-.1 F
+(options is encountered or an error occurs.)144 168 Q F1(hash)108 184.8
+Q F0([)2.5 E F1(\255lr)A F0 2.5(][)C F1<ad70>-2.5 E F2(\214lename)2.5 E
+F0 2.5(][)C F1(\255dt)-2.5 E F0 2.5(][)C F2(name)-2.5 E F0(])A .858
+(Each time)144 196.8 R F1(hash)3.358 E F0 .858(is in)3.358 F -.2(vo)-.4
+G -.1(ke).2 G .858(d, the full pathname of the command).1 F F2(name)
+3.718 E F0 .858(is determined by searching)3.538 F .956
+(the directories in)144 208.8 R F1($P)3.456 E -.95(AT)-.74 G(H).95 E F0
.956(and remembered.)3.456 F(An)5.956 E 3.456(yp)-.15 G(re)-3.456 E .956
-(viously-remembered pathname is discarded.)-.25 F .243(If the)144 120 R
-F1<ad70>2.743 E F0 .243
+(viously-remembered pathname is discarded.)-.25 F .243(If the)144 220.8
+R F1<ad70>2.743 E F0 .243
(option is supplied, no path search is performed, and)2.743 F F2
(\214lename)4.653 E F0 .242(is used as the full \214lename)2.923 F .615
-(of the command.)144 132 R(The)5.615 E F1<ad72>3.115 E F0 .615
+(of the command.)144 232.8 R(The)5.615 E F1<ad72>3.115 E F0 .615
(option causes the shell to for)3.115 F .615
(get all remembered locations.)-.18 F(The)5.615 E F1<ad64>3.115 E F0
-(op-)3.115 E .294(tion causes the shell to for)144 144 R .294
+(op-)3.115 E .294(tion causes the shell to for)144 244.8 R .294
(get the remembered location of each)-.18 F F2(name)2.793 E F0 5.293(.I)
C 2.793(ft)-5.293 G(he)-2.793 E F1<ad74>2.793 E F0 .293
(option is supplied,)2.793 F .028(the full pathname to which each)144
-156 R F2(name)2.528 E F0 .028(corresponds is printed.)2.528 F .028
+256.8 R F2(name)2.528 E F0 .028(corresponds is printed.)2.528 F .028
(If multiple)5.028 F F2(name)2.528 E F0(ar)2.528 E .028
-(guments are sup-)-.18 F .176(plied with)144 168 R F1<ad74>2.676 E F0
+(guments are sup-)-.18 F .176(plied with)144 268.8 R F1<ad74>2.676 E F0
2.676(,t)C(he)-2.676 E F2(name)2.676 E F0 .175
(is printed before the hashed full pathname.)2.676 F(The)5.175 E F1
<ad6c>2.675 E F0 .175(option causes output to)2.675 F .783
-(be displayed in a format that may be reused as input.)144 180 R .783
+(be displayed in a format that may be reused as input.)144 280.8 R .783
(If no ar)5.783 F .783(guments are gi)-.18 F -.15(ve)-.25 G .783
(n, or if only).15 F F1<ad6c>3.283 E F0(is)3.283 E .807
-(supplied, information about remembered commands is printed.)144 192 R
-.807(The return status is true unless a)5.807 F F2(name)144.36 204 Q F0
-(is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.).25
-E F1(help)108 220.8 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F2(pattern)
--2.5 E F0(])A .866(Display helpful information about b)144 232.8 R .867
-(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0 .867
-(is speci\214ed,)3.607 F F1(help)3.367 E F0(gi)3.367 E -.15(ve)-.25 G
-3.367(sd).15 G(etailed)-3.367 E .224(help on all commands matching)144
-244.8 R F2(pattern)3.974 E F0 2.723(;o).24 G .223
+(supplied, information about remembered commands is printed.)144 292.8 R
+.807(The return status is true unless a)5.807 F F2(name)144.36 304.8 Q
+F0(is not found or an in)2.68 E -.25(va)-.4 G(lid option is supplied.)
+.25 E F1(help)108 321.6 Q F0([)2.5 E F1(\255dms)A F0 2.5(][)C F2
+(pattern)-2.5 E F0(])A .866(Display helpful information about b)144
+333.6 R .867(uiltin commands.)-.2 F(If)5.867 E F2(pattern)4.617 E F0
+.867(is speci\214ed,)3.607 F F1(help)3.367 E F0(gi)3.367 E -.15(ve)-.25
+G 3.367(sd).15 G(etailed)-3.367 E .224(help on all commands matching)144
+345.6 R F2(pattern)3.974 E F0 2.723(;o).24 G .223
(therwise help for all the b)-2.723 F .223
-(uiltins and shell control struc-)-.2 F(tures is printed.)144 256.8 Q F1
-<ad64>144 268.8 Q F0(Display a short description of each)180 268.8 Q F2
-(pattern)2.5 E F1<ad6d>144 280.8 Q F0(Display the description of each)
-180 280.8 Q F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G
-(ormat)-2.5 E F1<ad73>144 292.8 Q F0
-(Display only a short usage synopsis for each)180 292.8 Q F2(pattern)2.5
-E F0(The return status is 0 unless no command matches)144 309.6 Q F2
-(pattern)3.75 E F0(.).24 E F1(history [)108 326.4 Q F2(n)A F1(])A
-(history \255c)108 338.4 Q(history \255d)108 350.4 Q F2(of)2.5 E(fset)
--.18 E F1(history \255d)108 362.4 Q F2(start)2.5 E F0<ad>A F2(end)A F1
-(history \255anrw)108 374.4 Q F0([)2.5 E F2(\214lename)A F0(])A F1
-(history \255p)108 386.4 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A 2.5
-(g.)-.37 G(..)-2.5 E F0(])A F1(history \255s)108 398.4 Q F2(ar)2.5 E(g)
+(uiltins and shell control struc-)-.2 F(tures is printed.)144 357.6 Q F1
+<ad64>144 369.6 Q F0(Display a short description of each)180 369.6 Q F2
+(pattern)2.5 E F1<ad6d>144 381.6 Q F0(Display the description of each)
+180 381.6 Q F2(pattern)2.5 E F0(in a manpage-lik)2.5 E 2.5(ef)-.1 G
+(ormat)-2.5 E F1<ad73>144 393.6 Q F0
+(Display only a short usage synopsis for each)180 393.6 Q F2(pattern)2.5
+E F0(The return status is 0 unless no command matches)144 410.4 Q F2
+(pattern)3.75 E F0(.).24 E F1(history [)108 427.2 Q F2(n)A F1(])A
+(history \255c)108 439.2 Q(history \255d)108 451.2 Q F2(of)2.5 E(fset)
+-.18 E F1(history \255d)108 463.2 Q F2(start)2.5 E F0<ad>A F2(end)A F1
+(history \255anrw)108 475.2 Q F0([)2.5 E F2(\214lename)A F0(])A F1
+(history \255p)108 487.2 Q F2(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A 2.5
+(g.)-.37 G(..)-2.5 E F0(])A F1(history \255s)108 499.2 Q F2(ar)2.5 E(g)
-.37 E F0([)2.5 E F2(ar)A 2.5(g.)-.37 G(..)-2.5 E F0(])A -.4(Wi)144
-410.4 S .752
+511.2 S .752
(th no options, display the command history list with line numbers.).4 F
.752(Lines listed with a)5.752 F F1(*)3.252 E F0(ha)3.252 E -.15(ve)-.2
-G .381(been modi\214ed.)144 422.4 R .38(An ar)5.38 F .38(gument of)-.18
+G .381(been modi\214ed.)144 523.2 R .38(An ar)5.38 F .38(gument of)-.18
F F2(n)3.24 E F0 .38(lists only the last)3.12 F F2(n)3.24 E F0 2.88
-(lines. If)3.12 F .38(the shell v)2.88 F(ariable)-.25 E/F3 9
-/Times-Bold@0 SF(HISTTIMEFOR-)2.88 E(MA)144 434.4 Q(T)-.855 E F0 .264
+(lines. If)3.12 F .38(the shell v)2.88 F(ariable)-.25 E F3(HISTTIMEFOR-)
+2.88 E(MA)144 535.2 Q(T)-.855 E F0 .264
(is set and not null, it is used as a format string for)2.514 F F2
(strftime)2.765 E F0 .265(\(3\) to display the time stamp asso-)B 1.02
-(ciated with each displayed history entry)144 446.4 R 6.019(.N)-.65 G
+(ciated with each displayed history entry)144 547.2 R 6.019(.N)-.65 G
3.519(oi)-6.019 G(nterv)-3.519 E 1.019
(ening blank is printed between the formatted)-.15 F .176
-(time stamp and the history line.)144 458.4 R(If)5.176 E F2(\214lename)
+(time stamp and the history line.)144 559.2 R(If)5.176 E F2(\214lename)
2.676 E F0 .176
(is supplied, it is used as the name of the history \214le; if)2.676 F
-(not, the v)144 470.4 Q(alue of)-.25 E F3(HISTFILE)2.5 E F0(is used.)
+(not, the v)144 571.2 Q(alue of)-.25 E F3(HISTFILE)2.5 E F0(is used.)
2.25 E(Options, if supplied, ha)5 E .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad63>144 482.4 Q F0
-(Clear the history list by deleting all the entries.)180 482.4 Q F1
-<ad64>144 494.4 Q F2(of)2.5 E(fset)-.18 E F0 .39
-(Delete the history entry at position)180 506.4 R F2(of)2.889 E(fset)
+(wing meanings:)-.25 E F1<ad63>144 583.2 Q F0
+(Clear the history list by deleting all the entries.)180 583.2 Q F1
+<ad64>144 595.2 Q F2(of)2.5 E(fset)-.18 E F0 .39
+(Delete the history entry at position)180 607.2 R F2(of)2.889 E(fset)
-.18 E F0 5.389(.I)C(f)-5.389 E F2(of)2.889 E(fset)-.18 E F0 .389(is ne)
2.889 F -.05(ga)-.15 G(ti).05 E -.15(ve)-.25 G 2.889(,i).15 G 2.889(ti)
-2.889 G 2.889(si)-2.889 G .389(nterpreted as relati)-2.889 F -.15(ve)
-.25 G .598(to one greater than the last history position, so ne)180
-518.4 R -.05(ga)-.15 G(ti).05 E .899 -.15(ve i)-.25 H .599
-(ndices count back from the end).15 F(of the history)180 530.4 Q 2.5(,a)
+619.2 R -.05(ga)-.15 G(ti).05 E .899 -.15(ve i)-.25 H .599
+(ndices count back from the end).15 F(of the history)180 631.2 Q 2.5(,a)
-.65 G(nd an inde)-2.5 E 2.5(xo)-.15 G 2.5<66ad>-2.5 G 2.5(1r)-2.5 G
(efers to the current)-2.5 E F1(history -d)2.5 E F0(command.)2.5 E F1
-<ad64>144 542.4 Q F2(start)2.5 E F0<ad>A F2(end)A F0 .758
-(Delete the history entries between positions)180 554.4 R F2(start)3.258
-E F0(and)3.257 E F2(end)3.257 E F0 3.257(,i)C(nclusi)-3.257 E -.15(ve)
--.25 G 5.757(.P).15 G(ositi)-5.757 E 1.057 -.15(ve a)-.25 H .757(nd ne)
-.15 F -.05(ga)-.15 G(-).05 E(ti)180 566.4 Q .3 -.15(ve v)-.25 H
-(alues for)-.1 E F2(start)2.5 E F0(and)2.5 E F2(end)2.5 E F0
+<ad64>144 643.2 Q F2(start)2.5 E F0<ad>A F2(end)A F0 1.25
+(Delete the range of history entries between positions)180 655.2 R F2
+(start)3.75 E F0(and)3.75 E F2(end)3.75 E F0 3.75(,i)C(nclusi)-3.75 E
+-.15(ve)-.25 G 6.25(.P).15 G(ositi)-6.25 E -.15(ve)-.25 G(and ne)180
+667.2 Q -.05(ga)-.15 G(ti).05 E .3 -.15(ve v)-.25 H(alues for)-.1 E F2
+(start)2.5 E F0(and)2.5 E F2(end)2.5 E F0
(are interpreted as described abo)2.5 E -.15(ve)-.15 G(.).15 E F1<ad61>
-144 578.4 Q F0 .564(Append the `)180 578.4 R(`ne)-.74 E(w')-.25 E 3.064
+144 679.2 Q F0 .564(Append the `)180 679.2 R(`ne)-.74 E(w')-.25 E 3.064
('h)-.74 G .564(istory lines to the history \214le.)-3.064 F .565
-(These are history lines entered since)5.564 F(the be)180 590.4 Q
+(These are history lines entered since)5.564 F(the be)180 691.2 Q
(ginning of the current)-.15 E F1(bash)2.5 E F0(session, b)2.5 E
-(ut not already appended to the history \214le.)-.2 E F1<ad6e>144 602.4
+(ut not already appended to the history \214le.)-.2 E F1<ad6e>144 703.2
Q F0 .854(Read the history lines not already read from the history \214\
-le into the current history list.)180 602.4 R .772
-(These are lines appended to the history \214le since the be)180 614.4 R
+le into the current history list.)180 703.2 R .772
+(These are lines appended to the history \214le since the be)180 715.2 R
.773(ginning of the current)-.15 F F1(bash)3.273 E F0(ses-)3.273 E
-(sion.)180 626.4 Q F1<ad72>144 638.4 Q F0(Read the contents of the hist\
-ory \214le and append them to the current history list.)180 638.4 Q F1
-<ad77>144 650.4 Q F0
-(Write the current history list to the history \214le, o)180 650.4 Q
--.15(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G
-(ontents.)-2.5 E F1<ad70>144 662.4 Q F0 .626
-(Perform history substitution on the follo)180 662.4 R(wing)-.25 E F2
-(ar)3.125 E(gs)-.37 E F0 .625(and display the result on the standard)
-3.125 F 2.975(output. Does)180 674.4 R .475
-(not store the results in the history list.)2.975 F(Each)5.475 E F2(ar)
-2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F
-(normal history e)180 686.4 Q(xpansion.)-.15 E F1<ad73>144 698.4 Q F0
-.363(Store the)180 698.4 R F2(ar)3.193 E(gs)-.37 E F0 .363
-(in the history list as a single entry)3.133 F 5.363(.T)-.65 G .362
-(he last command in the history list is)-5.363 F(remo)180 710.4 Q -.15
-(ve)-.15 G 2.5(db).15 G(efore the)-2.5 E F2(ar)2.83 E(gs)-.37 E F0
-(are added.)2.77 E .145(If the)144 727.2 R F3(HISTTIMEFORMA)2.645 E(T)
--.855 E F0 -.25(va)2.395 G .145
-(riable is set, the time stamp information associated with each history)
-.25 F(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(10)198.725 E 0 Cg EP
+(sion.)180 727.2 Q(GNU Bash 5.2)72 768 Q(2021 No)136.385 E -.15(ve)-.15
+G(mber 22).15 E(10)185.545 E 0 Cg EP
%%Page: 11 11
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E .669
-(entry is written to the history \214le, mark)144 84 R .669
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF<ad72>144 84 Q F0(Rea\
+d the contents of the history \214le and append them to the current his\
+tory list.)180 84 Q F1<ad77>144 96 Q F0
+(Write the current history list to the history \214le, o)180 96 Q -.15
+(ve)-.15 G(rwriting the history \214le').15 E 2.5(sc)-.55 G(ontents.)
+-2.5 E F1<ad70>144 108 Q F0 .626
+(Perform history substitution on the follo)180 108 R(wing)-.25 E/F2 10
+/Times-Italic@0 SF(ar)3.125 E(gs)-.37 E F0 .625
+(and display the result on the standard)3.125 F 2.975(output. Does)180
+120 R .475(not store the results in the history list.)2.975 F(Each)5.475
+E F2(ar)2.975 E(g)-.37 E F0 .475(must be quoted to disable)2.975 F
+(normal history e)180 132 Q(xpansion.)-.15 E F1<ad73>144 144 Q F0 .363
+(Store the)180 144 R F2(ar)3.193 E(gs)-.37 E F0 .363
+(in the history list as a single entry)3.133 F 5.363(.T)-.65 G .362
+(he last command in the history list is)-5.363 F(remo)180 156 Q -.15(ve)
+-.15 G 2.5(db).15 G(efore the)-2.5 E F2(ar)2.83 E(gs)-.37 E F0
+(are added.)2.77 E .145(If the)144 172.8 R/F3 9/Times-Bold@0 SF
+(HISTTIMEFORMA)2.645 E(T)-.855 E F0 -.25(va)2.395 G .145
+(riable is set, the time stamp information associated with each history)
+.25 F .669(entry is written to the history \214le, mark)144 184.8 R .669
(ed with the history comment character)-.1 F 5.668(.W)-.55 G .668
-(hen the history)-5.668 F .955(\214le is read, lines be)144 96 R .956
+(hen the history)-5.668 F .955(\214le is read, lines be)144 196.8 R .956
(ginning with the history comment character follo)-.15 F .956
(wed immediately by a digit)-.25 F .833
-(are interpreted as timestamps for the follo)144 108 R .833
+(are interpreted as timestamps for the follo)144 208.8 R .833
(wing history entry)-.25 F 5.832(.T)-.65 G .832(he return v)-5.832 F
-.832(alue is 0 unless an in-)-.25 F -.25(va)144 120 S .168(lid option i\
-s encountered, an error occurs while reading or writing the history \
-\214le, an in).25 F -.25(va)-.4 G(lid).25 E/F1 10/Times-Italic@0 SF(of)
-2.669 E(f-)-.18 E(set)144 132 Q F0(is supplied as an ar)2.5 E(gument to)
--.18 E/F2 10/Times-Bold@0 SF<ad64>2.5 E F0 2.5(,o)C 2.5(rt)-2.5 G
-(he history e)-2.5 E(xpansion supplied as an ar)-.15 E(gument to)-.18 E
-F2<ad70>2.5 E F0 -.1(fa)2.5 G(ils.).1 E F2(jobs)108 148.8 Q F0([)2.5 E
-F2(\255lnprs)A F0 2.5(][)C F1(jobspec)A F0(... ])2.5 E F2(jobs \255x)108
-160.8 Q F1(command)2.5 E F0([)2.5 E F1(ar)2.5 E(gs)-.37 E F0(... ])2.5 E
-(The \214rst form lists the acti)144 172.8 Q .3 -.15(ve j)-.25 H 2.5
-(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F2<ad6c>144 184.8 Q F0
-(List process IDs in addition to the normal information.)180 184.8 Q F2
-<ad6e>144 196.8 Q F0 .194(Display information only about jobs that ha)
-180 196.8 R .494 -.15(ve c)-.2 H .193(hanged status since the user w).15
-F .193(as last noti-)-.1 F(\214ed of their status.)180 208.8 Q F2<ad70>
-144 220.8 Q F0(List only the process ID of the job')180 220.8 Q 2.5(sp)
--.55 G(rocess group leader)-2.5 E(.)-.55 E F2<ad72>144 232.8 Q F0
-(Display only running jobs.)180 232.8 Q F2<ad73>144 244.8 Q F0
-(Display only stopped jobs.)180 244.8 Q(If)144 261.6 Q F1(jobspec)4.553
-E F0 .313(is gi)3.123 F -.15(ve)-.25 G .313
-(n, output is restricted to information about that job).15 F 5.314(.T)
--.4 G .314(he return status is 0 unless)-5.314 F(an in)144 273.6 Q -.25
+.832(alue is 0 unless an in-)-.25 F -.25(va)144 220.8 S .168(lid option\
+ is encountered, an error occurs while reading or writing the history \
+\214le, an in).25 F -.25(va)-.4 G(lid).25 E F2(of)2.669 E(f-)-.18 E(set)
+144 232.8 Q F0 .341(or range is supplied as an ar)2.841 F .341
+(gument to)-.18 F F1<ad64>2.841 E F0 2.841(,o)C 2.84(rt)-2.841 G .34
+(he history e)-2.84 F .34(xpansion supplied as an ar)-.15 F .34
+(gument to)-.18 F F1<ad70>144 244.8 Q F0 -.1(fa)2.5 G(ils.).1 E F1(jobs)
+108 261.6 Q F0([)2.5 E F1(\255lnprs)A F0 2.5(][)C F2(jobspec)A F0(... ])
+2.5 E F1(jobs \255x)108 273.6 Q F2(command)2.5 E F0([)2.5 E F2(ar)2.5 E
+(gs)-.37 E F0(... ])2.5 E(The \214rst form lists the acti)144 285.6 Q .3
+-.15(ve j)-.25 H 2.5(obs. The).15 F(options ha)2.5 E .3 -.15(ve t)-.2 H
+(he follo).15 E(wing meanings:)-.25 E F1<ad6c>144 297.6 Q F0
+(List process IDs in addition to the normal information.)180 297.6 Q F1
+<ad6e>144 309.6 Q F0 .193(Display information only about jobs that ha)
+180 309.6 R .494 -.15(ve c)-.2 H .194(hanged status since the user w).15
+F .194(as last noti-)-.1 F(\214ed of their status.)180 321.6 Q F1<ad70>
+144 333.6 Q F0(List only the process ID of the job')180 333.6 Q 2.5(sp)
+-.55 G(rocess group leader)-2.5 E(.)-.55 E F1<ad72>144 345.6 Q F0
+(Display only running jobs.)180 345.6 Q F1<ad73>144 357.6 Q F0
+(Display only stopped jobs.)180 357.6 Q(If)144 374.4 Q F2(jobspec)4.554
+E F0 .314(is gi)3.124 F -.15(ve)-.25 G .314
+(n, output is restricted to information about that job).15 F 5.313(.T)
+-.4 G .313(he return status is 0 unless)-5.313 F(an in)144 386.4 Q -.25
(va)-.4 G(lid option is encountered or an in).25 E -.25(va)-.4 G(lid).25
-E F1(jobspec)4.24 E F0(is supplied.)2.81 E .395(If the)144 290.4 R F2
-<ad78>2.895 E F0 .394(option is supplied,)2.894 F F2(jobs)2.894 E F0
-.394(replaces an)2.894 F(y)-.15 E F1(jobspec)4.634 E F0 .394(found in)
-3.204 F F1(command)3.094 E F0(or)3.664 E F1(ar)3.224 E(gs)-.37 E F0 .394
-(with the corre-)3.164 F(sponding process group ID, and e)144 302.4 Q
--.15(xe)-.15 G(cutes).15 E F1(command)2.7 E F0(passing it)3.27 E F1(ar)
+E F2(jobspec)4.24 E F0(is supplied.)2.81 E .394(If the)144 403.2 R F1
+<ad78>2.894 E F0 .394(option is supplied,)2.894 F F1(jobs)2.894 E F0
+.394(replaces an)2.894 F(y)-.15 E F2(jobspec)4.634 E F0 .394(found in)
+3.204 F F2(command)3.094 E F0(or)3.664 E F2(ar)3.224 E(gs)-.37 E F0 .395
+(with the corre-)3.164 F(sponding process group ID, and e)144 415.2 Q
+-.15(xe)-.15 G(cutes).15 E F2(command)2.7 E F0(passing it)3.27 E F2(ar)
2.83 E(gs)-.37 E F0 2.5(,r).27 G(eturning its e)-2.5 E(xit status.)-.15
-E F2(kill)108 319.2 Q F0([)2.5 E F2<ad73>A F1(sigspec)2.5 E F0(|)2.5 E
-F2<ad6e>2.5 E F1(signum)2.5 E F0(|)2.5 E F2<ad>2.5 E F1(sigspec)A F0 2.5
-(][)C F1(pid)-2.5 E F0(|)2.5 E F1(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F2
-(kill \255l)108 331.2 Q F0(|)A F2<ad4c>A F0([)2.5 E F1(sigspec)A F0(|)
-2.5 E F1 -.2(ex)2.5 G(it_status).2 E F0(])A .017
-(Send the signal named by)144 343.2 R F1(sigspec)2.857 E F0(or)2.827 E
-F1(signum)2.857 E F0 .017(to the processes named by)2.837 F F1(pid)3.767
-E F0(or)3.287 E F1(jobspec)4.257 E F0(.).31 E F1(sigspec)5.357 E F0(is)
-2.828 E .319(either a case-insensiti)144 355.2 R .619 -.15(ve s)-.25 H
-.319(ignal name such as).15 F/F3 9/Times-Bold@0 SF(SIGKILL)2.819 E F0
-.318(\(with or without the)2.569 F F3(SIG)2.818 E F0 .318
-(pre\214x\) or a signal)2.568 F(number;)144 367.2 Q F1(signum)3.267 E F0
-.427(is a signal number)3.247 F 5.427(.I)-.55 G(f)-5.427 E F1(sigspec)
+E F1(kill)108 432 Q F0([)2.5 E F1<ad73>A F2(sigspec)2.5 E F0(|)2.5 E F1
+<ad6e>2.5 E F2(signum)2.5 E F0(|)2.5 E F1<ad>2.5 E F2(sigspec)A F0 2.5
+(][)C F2(pid)-2.5 E F0(|)2.5 E F2(jobspec)2.5 E F0 2.5(].)C(..)-2.5 E F1
+(kill \255l)108 444 Q F0(|)A F1<ad4c>A F0([)2.5 E F2(sigspec)A F0(|)2.5
+E F2 -.2(ex)2.5 G(it_status).2 E F0(])A .017(Send the signal named by)
+144 456 R F2(sigspec)2.857 E F0(or)2.827 E F2(signum)2.857 E F0 .017
+(to the processes named by)2.837 F F2(pid)3.767 E F0(or)3.287 E F2
+(jobspec)4.257 E F0(.).31 E F2(sigspec)5.357 E F0(is)2.827 E .318
+(either a case-insensiti)144 468 R .618 -.15(ve s)-.25 H .318
+(ignal name such as).15 F F3(SIGKILL)2.818 E F0 .319
+(\(with or without the)2.569 F F3(SIG)2.819 E F0 .319
+(pre\214x\) or a signal)2.569 F(number;)144 480 Q F2(signum)3.268 E F0
+.427(is a signal number)3.247 F 5.427(.I)-.55 G(f)-5.427 E F2(sigspec)
3.267 E F0 .427(is not present, then)3.237 F F3(SIGTERM)2.927 E F0 .427
-(is assumed.)2.677 F .428(An ar)5.427 F(-)-.2 E .314(gument of)144 379.2
-R F2<ad6c>2.814 E F0 .314(lists the signal names.)2.814 F .314(If an)
-5.314 F 2.814(ya)-.15 G -.18(rg)-2.814 G .314(uments are supplied when)
-.18 F F2<ad6c>2.814 E F0 .314(is gi)2.814 F -.15(ve)-.25 G .313
-(n, the names of).15 F .119(the signals corresponding to the ar)144
-391.2 R .119(guments are listed, and the return status is 0.)-.18 F(The)
-5.12 E F1 -.2(ex)2.62 G(it_status).2 E F0(ar)2.62 E(-)-.2 E .8
-(gument to)144 403.2 R F2<ad6c>3.3 E F0 .8
-(is a number specifying either a signal number or the e)3.3 F .799
-(xit status of a process termi-)-.15 F .962(nated by a signal.)144 415.2
-R(The)5.962 E F2<ad4c>3.462 E F0 .962(option is equi)3.462 F -.25(va)
--.25 G .962(lent to).25 F F2<ad6c>3.462 E F0(.)A F2(kill)5.962 E F0 .962
+(is assumed.)2.677 F .427(An ar)5.427 F(-)-.2 E .313(gument of)144 492 R
+F1<ad6c>2.813 E F0 .314(lists the signal names.)2.814 F .314(If an)5.314
+F 2.814(ya)-.15 G -.18(rg)-2.814 G .314(uments are supplied when).18 F
+F1<ad6c>2.814 E F0 .314(is gi)2.814 F -.15(ve)-.25 G .314
+(n, the names of).15 F .12(the signals corresponding to the ar)144 504 R
+.119(guments are listed, and the return status is 0.)-.18 F(The)5.119 E
+F2 -.2(ex)2.619 G(it_status).2 E F0(ar)2.619 E(-)-.2 E .799(gument to)
+144 516 R F1<ad6c>3.299 E F0 .799
+(is a number specifying either a signal number or the e)3.299 F .8
+(xit status of a process termi-)-.15 F .963(nated by a signal.)144 528 R
+(The)5.962 E F1<ad4c>3.462 E F0 .962(option is equi)3.462 F -.25(va)-.25
+G .962(lent to).25 F F1<ad6c>3.462 E F0(.)A F1(kill)5.962 E F0 .962
(returns true if at least one signal w)3.462 F(as)-.1 E
-(successfully sent, or f)144 427.2 Q(alse if an error occurs or an in)
--.1 E -.25(va)-.4 G(lid option is encountered.).25 E F2(let)108 444 Q F1
-(ar)2.5 E(g)-.37 E F0([)2.5 E F1(ar)A(g)-.37 E F0(...])2.5 E(Each)144
-456 Q F1(ar)3.027 E(g)-.37 E F0 .197(is an arithmetic e)2.917 F .197
-(xpression to be e)-.15 F -.25(va)-.25 G .196(luated \(see).25 F F3 .196
-(ARITHMETIC EV)2.696 F(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0(abo)
-2.446 E -.15(ve)-.15 G 2.696(\). If).15 F(the last)144 468 Q F1(ar)2.83
-E(g)-.37 E F0 -.25(eva)2.72 G(luates to 0,).25 E F2(let)2.5 E F0
-(returns 1; 0 is returned otherwise.)2.5 E F2(local)108 484.8 Q F0([)2.5
-E F1(option)A F0 2.5(][)C F1(name)-2.5 E F0([=)A F1(value)A F0 2.5(].)C
-(.. | \255 ])-2.5 E -.15(Fo)144 496.8 S 2.541(re).15 G .041(ach ar)
--2.541 F .042(gument, a local v)-.18 F .042(ariable named)-.25 F F1
-(name)2.902 E F0 .042(is created, and assigned)2.722 F F1(value)2.832 E
-F0 5.042(.T).18 G(he)-5.042 E F1(option)2.542 E F0 .042(can be)2.542 F
-(an)144 508.8 Q 3.153(yo)-.15 G 3.153(ft)-3.153 G .653
-(he options accepted by)-3.153 F F2(declar)3.153 E(e)-.18 E F0 5.652(.W)
-C(hen)-5.652 E F2(local)3.152 E F0 .652
+(successfully sent, or f)144 540 Q(alse if an error occurs or an in)-.1
+E -.25(va)-.4 G(lid option is encountered.).25 E F1(let)108 556.8 Q F2
+(ar)2.5 E(g)-.37 E F0([)2.5 E F2(ar)A(g)-.37 E F0(...])2.5 E(Each)144
+568.8 Q F2(ar)5.817 E(g)-.37 E F0 2.987(is an arithmetic e)5.707 F 2.987
+(xpression to be e)-.15 F -.25(va)-.25 G 2.987(luated \(see).25 F F3
+2.987(ARITHMETIC EV)5.487 F(ALU)-1.215 E -.855(AT)-.54 G(ION).855 E F0
+(in)5.238 E F2(bash\(1\))144 580.8 Q F0 2.5(\). If)B(the last)2.5 E F2
+(ar)2.83 E(g)-.37 E F0 -.25(eva)2.72 G(luates to 0,).25 E F1(let)2.5 E
+F0(returns 1; 0 is returned otherwise.)2.5 E F1(local)108 597.6 Q F0([)
+2.5 E F2(option)A F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(value)A F0 2.5
+(].)C(.. | \255 ])-2.5 E -.15(Fo)144 609.6 S 2.542(re).15 G .042(ach ar)
+-2.542 F .042(gument, a local v)-.18 F .042(ariable named)-.25 F F2
+(name)2.902 E F0 .042(is created, and assigned)2.722 F F2(value)2.832 E
+F0 5.042(.T).18 G(he)-5.042 E F2(option)2.542 E F0 .041(can be)2.541 F
+(an)144 621.6 Q 3.152(yo)-.15 G 3.152(ft)-3.152 G .652
+(he options accepted by)-3.152 F F1(declar)3.152 E(e)-.18 E F0 5.652(.W)
+C(hen)-5.652 E F1(local)3.152 E F0 .653
(is used within a function, it causes the v)3.152 F(ari-)-.25 E(able)144
-520.8 Q F1(name)3.281 E F0 .421(to ha)3.101 F .721 -.15(ve a v)-.2 H
+633.6 Q F2(name)3.282 E F0 .422(to ha)3.102 F .722 -.15(ve a v)-.2 H
.422(isible scope restricted to that function and its children.).15 F
-(If)5.422 E F1(name)2.922 E F0 .422(is \255, the set)2.922 F .51
-(of shell options is made local to the function in which)144 532.8 R F2
-(local)3.009 E F0 .509(is in)3.009 F -.2(vo)-.4 G -.1(ke).2 G .509
-(d: shell options changed us-).1 F 1.17(ing the)144 544.8 R F2(set)3.67
-E F0 -.2(bu)3.67 G 1.171
-(iltin inside the function are restored to their original v).2 F 1.171
-(alues when the function re-)-.25 F 3.381(turns. The)144 556.8 R .881
-(restore is ef)3.381 F .881(fected as if a series of)-.25 F F2(set)3.381
-E F0 .88(commands were e)3.38 F -.15(xe)-.15 G .88
-(cuted to restore the v).15 F(alues)-.25 E .787
-(that were in place before the function.)144 568.8 R -.4(Wi)5.788 G .788
-(th no operands,).4 F F2(local)3.288 E F0 .788(writes a list of local v)
-3.288 F .788(ariables to)-.25 F .655(the standard output.)144 580.8 R
-.654(It is an error to use)5.655 F F2(local)3.154 E F0 .654
-(when not within a function.)3.154 F .654(The return status is 0)5.654 F
-(unless)144 592.8 Q F2(local)2.5 E F0(is used outside a function, an in)
-2.5 E -.25(va)-.4 G(lid).25 E F1(name)2.86 E F0(is supplied, or)2.68 E
-F1(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E F2(logout)108
-609.6 Q F0(Exit a login shell.)144 609.6 Q F2(map\214le)108 626.4 Q F0
-([)2.5 E F2<ad64>A F1(delim)2.5 E F0 2.5(][)C F2<ad6e>-2.5 E F1(count)
-2.5 E F0 2.5(][)C F2<ad4f>-2.5 E F1(origin)2.5 E F0 2.5(][)C F2<ad73>
--2.5 E F1(count)2.5 E F0 2.5(][)C F2<ad74>-2.5 E F0 2.5(][)C F2<ad75>
--2.5 E F1(fd)2.5 E F0 2.5(][)C F2<ad43>-2.5 E F1(callbac)2.5 E(k)-.2 E
-F0 2.5(][)C F2<ad63>-2.5 E F1(quantum)2.5 E F0 2.5(][)C F1(arr)-2.5 E
-(ay)-.15 E F0(])A F2 -.18(re)108 638.4 S(adarray).18 E F0([)2.5 E F2
-<ad64>A F1(delim)2.5 E F0 2.5(][)C F2<ad6e>-2.5 E F1(count)2.5 E F0 2.5
-(][)C F2<ad4f>-2.5 E F1(origin)2.5 E F0 2.5(][)C F2<ad73>-2.5 E F1
-(count)2.5 E F0 2.5(][)C F2<ad74>-2.5 E F0 2.5(][)C F2<ad75>-2.5 E F1
-(fd)2.5 E F0 2.5(][)C F2<ad43>-2.5 E F1(callbac)2.5 E(k)-.2 E F0 2.5(][)
-C F2<ad63>-2.5 E F1(quantum)2.5 E F0 2.5(][)C F1(arr)-2.5 E(ay)-.15 E F0
-(])A .158(Read lines from the standard input into the inde)144 650.4 R
--.15(xe)-.15 G 2.659(da).15 G .159(rray v)-2.659 F(ariable)-.25 E F1
-(arr)2.989 E(ay)-.15 E F0 2.659(,o).32 G 2.659(rf)-2.659 G .159
-(rom \214le descriptor)-2.659 F F1(fd)4.629 E F0 1.249(if the)144 662.4
-R F2<ad75>3.749 E F0 1.249(option is supplied.)3.749 F 1.249(The v)6.249
-F(ariable)-.25 E F3(MAPFILE)3.749 E F0 1.249(is the def)3.499 F(ault)-.1
-E F1(arr)3.748 E(ay)-.15 E F0 6.248(.O)C 1.248(ptions, if supplied,)
--6.248 F(ha)144 674.4 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F2<ad64>144 686.4 Q F0 .91
-(The \214rst character of)180 686.4 R F1(delim)3.41 E F0 .911
-(is used to terminate each input line, rather than ne)3.41 F 3.411
-(wline. If)-.25 F F1(delim)180 698.4 Q F0(is the empty string,)2.5 E F2
-(map\214le)2.5 E F0(will terminate a line when it reads a NUL character)
-2.5 E(.)-.55 E F2<ad6e>144 710.4 Q F0(Cop)180 710.4 Q 2.5(ya)-.1 G 2.5
-(tm)-2.5 G(ost)-2.5 E F1(count)2.7 E F0 2.5(lines. If)3.18 F F1(count)
-2.5 E F0(is 0, all lines are copied.)2.5 E(GNU Bash 5.0)72 768 Q
-(2004 Apr 20)149.565 E(11)198.725 E 0 Cg EP
+(If)5.421 E F2(name)2.921 E F0 .421(is \255, the set)2.921 F .509
+(of shell options is made local to the function in which)144 645.6 R F1
+(local)3.01 E F0 .51(is in)3.01 F -.2(vo)-.4 G -.1(ke).2 G .51
+(d: shell options changed us-).1 F 1.171(ing the)144 657.6 R F1(set)
+3.671 E F0 -.2(bu)3.671 G 1.171
+(iltin inside the function are restored to their original v).2 F 1.17
+(alues when the function re-)-.25 F 3.38(turns. The)144 669.6 R .88
+(restore is ef)3.38 F .88(fected as if a series of)-.25 F F1(set)3.381 E
+F0 .881(commands were e)3.381 F -.15(xe)-.15 G .881
+(cuted to restore the v).15 F(alues)-.25 E .788
+(that were in place before the function.)144 681.6 R -.4(Wi)5.788 G .788
+(th no operands,).4 F F1(local)3.288 E F0 .787(writes a list of local v)
+3.288 F .787(ariables to)-.25 F .654(the standard output.)144 693.6 R
+.654(It is an error to use)5.654 F F1(local)3.154 E F0 .654
+(when not within a function.)3.154 F .655(The return status is 0)5.654 F
+(unless)144 705.6 Q F1(local)2.5 E F0(is used outside a function, an in)
+2.5 E -.25(va)-.4 G(lid).25 E F2(name)2.86 E F0(is supplied, or)2.68 E
+F2(name)2.5 E F0(is a readonly v)2.5 E(ariable.)-.25 E(GNU Bash 5.2)72
+768 Q(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(11)185.545 E 0 Cg
+EP
%%Page: 12 12
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF<ad4f>144 84 Q F0(Be)
-180 84 Q(gin assigning to)-.15 E/F2 10/Times-Italic@0 SF(arr)2.83 E(ay)
--.15 E F0(at inde)2.82 E(x)-.15 E F2(origin)2.73 E F0 5(.T).24 G(he def)
--5 E(ault inde)-.1 E 2.5(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F1<ad73>144 96
-Q F0(Discard the \214rst)180 96 Q F2(count)2.5 E F0(lines read.)2.5 E F1
-<ad74>144 108 Q F0(Remo)180 108 Q .3 -.15(ve a t)-.15 H(railing).15 E F2
-(delim)2.5 E F0(\(def)2.5 E(ault ne)-.1 E(wline\) from each line read.)
--.25 E F1<ad75>144 120 Q F0(Read lines from \214le descriptor)180 120 Q
-F2(fd)2.5 E F0(instead of the standard input.)2.5 E F1<ad43>144 132 Q F0
-(Ev)180 132 Q(aluate)-.25 E F2(callbac)2.7 E(k)-.2 E F0(each time)3.17 E
-F2(quantum)2.5 E F0(lines are read.)2.5 E(The)5 E F1<ad63>2.5 E F0
-(option speci\214es)2.5 E F2(quantum)2.75 E F0(.).32 E F1<ad63>144 144 Q
-F0(Specify the number of lines read between each call to)180 144 Q F2
-(callbac)2.7 E(k)-.2 E F0(.).67 E(If)144 160.8 Q F1<ad43>2.968 E F0 .467
-(is speci\214ed without)2.967 F F1<ad63>2.967 E F0 2.967(,t)C .467
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(logout)108 84 Q F0
+(Exit a login shell.)144 84 Q F1(map\214le)108 100.8 Q F0([)2.5 E F1
+<ad64>A/F2 10/Times-Italic@0 SF(delim)2.5 E F0 2.5(][)C F1<ad6e>-2.5 E
+F2(count)2.5 E F0 2.5(][)C F1<ad4f>-2.5 E F2(origin)2.5 E F0 2.5(][)C F1
+<ad73>-2.5 E F2(count)2.5 E F0 2.5(][)C F1<ad74>-2.5 E F0 2.5(][)C F1
+<ad75>-2.5 E F2(fd)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2(callbac)2.5 E(k)
+-.2 E F0 2.5(][)C F1<ad63>-2.5 E F2(quantum)2.5 E F0 2.5(][)C F2(arr)
+-2.5 E(ay)-.15 E F0(])A F1 -.18(re)108 112.8 S(adarray).18 E F0([)2.5 E
+F1<ad64>A F2(delim)2.5 E F0 2.5(][)C F1<ad6e>-2.5 E F2(count)2.5 E F0
+2.5(][)C F1<ad4f>-2.5 E F2(origin)2.5 E F0 2.5(][)C F1<ad73>-2.5 E F2
+(count)2.5 E F0 2.5(][)C F1<ad74>-2.5 E F0 2.5(][)C F1<ad75>-2.5 E F2
+(fd)2.5 E F0 2.5(][)C F1<ad43>-2.5 E F2(callbac)2.5 E(k)-.2 E F0 2.5(][)
+C F1<ad63>-2.5 E F2(quantum)2.5 E F0 2.5(][)C F2(arr)-2.5 E(ay)-.15 E F0
+(])A .159(Read lines from the standard input into the inde)144 124.8 R
+-.15(xe)-.15 G 2.659(da).15 G .159(rray v)-2.659 F(ariable)-.25 E F2
+(arr)2.989 E(ay)-.15 E F0 2.659(,o).32 G 2.658(rf)-2.659 G .158
+(rom \214le descriptor)-2.658 F F2(fd)4.628 E F0 1.248(if the)144 136.8
+R F1<ad75>3.748 E F0 1.248(option is supplied.)3.748 F 1.249(The v)6.249
+F(ariable)-.25 E/F3 9/Times-Bold@0 SF(MAPFILE)3.749 E F0 1.249
+(is the def)3.499 F(ault)-.1 E F2(arr)3.749 E(ay)-.15 E F0 6.249(.O)C
+1.249(ptions, if supplied,)-6.249 F(ha)144 148.8 Q .3 -.15(ve t)-.2 H
+(he follo).15 E(wing meanings:)-.25 E F1<ad64>144 160.8 Q F0 .911
+(The \214rst character of)180 160.8 R F2(delim)3.411 E F0 .911
+(is used to terminate each input line, rather than ne)3.411 F 3.41
+(wline. If)-.25 F F2(delim)180 172.8 Q F0(is the empty string,)2.5 E F1
+(map\214le)2.5 E F0(will terminate a line when it reads a NUL character)
+2.5 E(.)-.55 E F1<ad6e>144 184.8 Q F0(Cop)180 184.8 Q 2.5(ya)-.1 G 2.5
+(tm)-2.5 G(ost)-2.5 E F2(count)2.7 E F0 2.5(lines. If)3.18 F F2(count)
+2.5 E F0(is 0, all lines are copied.)2.5 E F1<ad4f>144 196.8 Q F0(Be)180
+196.8 Q(gin assigning to)-.15 E F2(arr)2.83 E(ay)-.15 E F0(at inde)2.82
+E(x)-.15 E F2(origin)2.73 E F0 5(.T).24 G(he def)-5 E(ault inde)-.1 E
+2.5(xi)-.15 G 2.5(s0)-2.5 G(.)-2.5 E F1<ad73>144 208.8 Q F0
+(Discard the \214rst)180 208.8 Q F2(count)2.5 E F0(lines read.)2.5 E F1
+<ad74>144 220.8 Q F0(Remo)180 220.8 Q .3 -.15(ve a t)-.15 H(railing).15
+E F2(delim)2.5 E F0(\(def)2.5 E(ault ne)-.1 E
+(wline\) from each line read.)-.25 E F1<ad75>144 232.8 Q F0
+(Read lines from \214le descriptor)180 232.8 Q F2(fd)2.5 E F0
+(instead of the standard input.)2.5 E F1<ad43>144 244.8 Q F0(Ev)180
+244.8 Q(aluate)-.25 E F2(callbac)2.7 E(k)-.2 E F0(each time)3.17 E F2
+(quantum)2.5 E F0(lines are read.)2.5 E(The)5 E F1<ad63>2.5 E F0
+(option speci\214es)2.5 E F2(quantum)2.75 E F0(.).32 E F1<ad63>144 256.8
+Q F0(Specify the number of lines read between each call to)180 256.8 Q
+F2(callbac)2.7 E(k)-.2 E F0(.).67 E(If)144 273.6 Q F1<ad43>2.967 E F0
+.467(is speci\214ed without)2.967 F F1<ad63>2.967 E F0 2.967(,t)C .467
(he def)-2.967 F .467(ault quantum is 5000.)-.1 F(When)5.467 E F2
(callbac)2.967 E(k)-.2 E F0 .467(is e)2.967 F -.25(va)-.25 G .467
-(luated, it is sup-).25 F .261(plied the inde)144 172.8 R 2.761(xo)-.15
-G 2.761(ft)-2.761 G .261(he ne)-2.761 F .262(xt array element to be ass\
-igned and the line to be assigned to that element)-.15 F .275
-(as additional ar)144 184.8 R(guments.)-.18 E F2(callbac)5.275 E(k)-.2 E
-F0 .275(is e)2.775 F -.25(va)-.25 G .274
-(luated after the line is read b).25 F .274
-(ut before the array element is)-.2 F(assigned.)144 196.8 Q
-(If not supplied with an e)144 213.6 Q(xplicit origin,)-.15 E F1
+(luated, it is sup-).25 F .262(plied the inde)144 285.6 R 2.762(xo)-.15
+G 2.762(ft)-2.762 G .262(he ne)-2.762 F .261(xt array element to be ass\
+igned and the line to be assigned to that element)-.15 F .274
+(as additional ar)144 297.6 R(guments.)-.18 E F2(callbac)5.274 E(k)-.2 E
+F0 .274(is e)2.774 F -.25(va)-.25 G .274
+(luated after the line is read b).25 F .275
+(ut before the array element is)-.2 F(assigned.)144 309.6 Q
+(If not supplied with an e)144 326.4 Q(xplicit origin,)-.15 E F1
(map\214le)2.5 E F0(will clear)2.5 E F2(arr)2.5 E(ay)-.15 E F0
-(before assigning to it.)2.5 E F1(map\214le)144 230.4 Q F0 .797
-(returns successfully unless an in)3.297 F -.25(va)-.4 G .797
+(before assigning to it.)2.5 E F1(map\214le)144 343.2 Q F0 .797
+(returns successfully unless an in)3.298 F -.25(va)-.4 G .797
(lid option or option ar).25 F .797(gument is supplied,)-.18 F F2(arr)
-3.297 E(ay)-.15 E F0 .798(is in-)3.298 F -.25(va)144 242.4 S
+3.297 E(ay)-.15 E F0 .797(is in-)3.297 F -.25(va)144 355.2 S
(lid or unassignable, or if).25 E F2(arr)2.5 E(ay)-.15 E F0
(is not an inde)2.5 E -.15(xe)-.15 G 2.5(da).15 G(rray)-2.5 E(.)-.65 E
-F1(popd)108 259.2 Q F0<5bad>2.5 E F1(n)A F0 2.5(][)C(+)-2.5 E F2(n)A F0
-2.5(][)C<ad>-2.5 E F2(n)A F0(])A(Remo)144 271.2 Q -.15(ve)-.15 G 2.8(se)
-.15 G .3(ntries from the directory stack.)-2.8 F -.4(Wi)5.299 G .299
-(th no ar).4 F .299(guments, remo)-.18 F -.15(ve)-.15 G 2.799(st).15 G
-.299(he top directory from the)-2.799 F 1.478(stack, and performs a)144
-283.2 R F1(cd)3.978 E F0 1.479(to the ne)3.978 F 3.979(wt)-.25 G 1.479
-(op directory)-3.979 F 6.479(.A)-.65 G -.18(rg)-6.479 G 1.479
-(uments, if supplied, ha).18 F 1.779 -.15(ve t)-.2 H 1.479(he follo).15
-F(wing)-.25 E(meanings:)144 295.2 Q F1<ad6e>144 307.2 Q F0 .551
-(Suppresses the normal change of directory when remo)180 307.2 R .551
+F1(popd)108 372 Q F0<5bad>2.5 E F1(n)A F0 2.5(][)C(+)-2.5 E F2(n)A F0
+2.5(][)C<ad>-2.5 E F2(n)A F0(])A(Remo)144 384 Q -.15(ve)-.15 G 3.091(se)
+.15 G .591(ntries from the directory stack.)-3.091 F .592
+(The elements are numbered from 0 starting at the \214rst)5.591 F .665
+(directory listed by)144 396 R F1(dirs)3.165 E F0 5.665(.W)C .665
+(ith no ar)-6.065 F(guments,)-.18 E F1(popd)3.165 E F0(remo)3.165 E -.15
+(ve)-.15 G 3.165(st).15 G .664(he top directory from the stack, and)
+-3.165 F(changes to the ne)144 408 Q 2.5(wt)-.25 G(op directory)-2.5 E 5
+(.A)-.65 G -.18(rg)-5 G(uments, if supplied, ha).18 E .3 -.15(ve t)-.2 H
+(he follo).15 E(wing meanings:)-.25 E F1<ad6e>144 420 Q F0 .551
+(Suppresses the normal change of directory when remo)180 420 R .551
(ving directories from the stack, so)-.15 F
-(that only the stack is manipulated.)180 319.2 Q F1(+)144 331.2 Q F2(n)A
-F0(Remo)180 331.2 Q -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F2(n)2.64 E
-F0 .14(th entry counting from the left of the list sho)B .14(wn by)-.25
-F F1(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero.)-2.64 F -.15(Fo)180
-343.2 S 2.5(re).15 G(xample:)-2.65 E/F3 10/Courier@0 SF(popd +0)2.5 E F0
-(remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he \214rst directory)-2.5 E(,)
--.65 E F3(popd +1)2.5 E F0(the second.)2.5 E F1<ad>144 355.2 Q F2(n)A F0
-(Remo)180 355.2 Q -.15(ve)-.15 G 3.76(st).15 G(he)-3.76 E F2(n)3.76 E F0
-1.259(th entry counting from the right of the list sho)B 1.259(wn by)
--.25 F F1(dirs)3.759 E F0 3.759(,s)C 1.259(tarting with)-3.759 F 2.5
-(zero. F)180 367.2 R(or e)-.15 E(xample:)-.15 E F3(popd -0)2.5 E F0
+(that only the stack is manipulated.)180 432 Q F1(+)144 444 Q F2(n)A F0
+(Remo)180 444 Q -.15(ve)-.15 G 2.64(st).15 G(he)-2.64 E F2(n)2.64 E F0
+.14(th entry counting from the left of the list sho)B .14(wn by)-.25 F
+F1(dirs)2.64 E F0 2.64(,s)C .14(tarting with zero,)-2.64 F .779
+(from the stack.)180 456 R -.15(Fo)5.779 G 3.279(re).15 G(xample:)-3.429
+E/F4 10/Courier@0 SF .779(popd +0)3.279 F F0(remo)3.279 E -.15(ve)-.15 G
+3.279(st).15 G .779(he \214rst directory)-3.279 F(,)-.65 E F4 .78
+(popd +1)3.28 F F0 .78(the sec-)3.28 F(ond.)180 468 Q F1<ad>144 480 Q F2
+(n)A F0(Remo)180 480 Q -.15(ve)-.15 G 3.76(st).15 G(he)-3.76 E F2(n)3.76
+E F0 1.259(th entry counting from the right of the list sho)B 1.259
+(wn by)-.25 F F1(dirs)3.759 E F0 3.759(,s)C 1.259(tarting with)-3.759 F
+2.5(zero. F)180 492 R(or e)-.15 E(xample:)-.15 E F4(popd -0)2.5 E F0
(remo)2.5 E -.15(ve)-.15 G 2.5(st).15 G(he last directory)-2.5 E(,)-.65
-E F3(popd -1)2.5 E F0(the ne)2.5 E(xt to last.)-.15 E .643(If the)144
-384 R F1(popd)3.143 E F0 .643(command is successful, a)3.143 F F1(dirs)
-3.143 E F0 .644(is performed as well, and the return status is 0.)3.143
-F F1(popd)5.644 E F0 .416(returns f)144 396 R .416(alse if an in)-.1 F
--.25(va)-.4 G .415
-(lid option is encountered, the directory stack is empty).25 F 2.915
-(,an)-.65 G(on-e)-2.915 E .415(xistent direc-)-.15 F
-(tory stack entry is speci\214ed, or the directory change f)144 408 Q
-(ails.)-.1 E F1(printf)108 424.8 Q F0([)2.5 E F1<ad76>A F2(var)2.5 E F0
-(])A F2(format)2.5 E F0([)2.5 E F2(ar)A(guments)-.37 E F0(])A .357
-(Write the formatted)144 436.8 R F2(ar)2.857 E(guments)-.37 E F0 .357
+E F4(popd -1)2.5 E F0(the ne)2.5 E(xt to last.)-.15 E .093
+(If the top element of the directory stack is modi\214ed, and the)144
+508.8 R F2(-n)2.593 E F0 .094(option w)2.594 F .094(as not supplied,)-.1
+F F1(popd)2.594 E F0(uses)2.594 E(the)144 520.8 Q F1(cd)2.697 E F0 -.2
+(bu)2.697 G .196
+(iltin to change to the directory at the top of the stack.).2 F .196
+(If the)5.196 F F1(cd)2.696 E F0 -.1(fa)2.696 G(ils,).1 E F1(popd)2.696
+E F0 .196(returns a non-)2.696 F(zero v)144 532.8 Q(alue.)-.25 E
+(Otherwise,)144 549.6 Q F1(popd)2.67 E F0 .17(returns f)2.67 F .17
+(alse if an in)-.1 F -.25(va)-.4 G .171
+(lid option is encountered, the directory stack is empty).25 F 2.671(,o)
+-.65 G 2.671(ra)-2.671 G(non-e)144 561.6 Q
+(xistent directory stack entry is speci\214ed.)-.15 E 1.556(If the)144
+578.4 R F1(popd)4.056 E F0 1.556(command is successful, bash runs)4.056
+F F1(dirs)4.056 E F0 1.556(to sho)4.056 F 4.055(wt)-.25 G 1.555
+(he \214nal contents of the directory)-4.055 F
+(stack, and the return status is 0.)144 590.4 Q F1(printf)108 607.2 Q F0
+([)2.5 E F1<ad76>A F2(var)2.5 E F0(])A F2(format)2.5 E F0([)2.5 E F2(ar)
+A(guments)-.37 E F0(])A .357(Write the formatted)144 619.2 R F2(ar)2.857
+E(guments)-.37 E F0 .357
(to the standard output under the control of the)2.857 F F2(format)2.858
E F0 5.358(.T)C(he)-5.358 E F1<ad76>2.858 E F0(op-)2.858 E .714
-(tion causes the output to be assigned to the v)144 448.8 R(ariable)-.25
+(tion causes the output to be assigned to the v)144 631.2 R(ariable)-.25
E F2(var)3.214 E F0 .714(rather than being printed to the standard)3.214
-F(output.)144 460.8 Q(The)144 484.8 Q F2(format)3.017 E F0 .517(is a ch\
+F(output.)144 643.2 Q(The)144 667.2 Q F2(format)3.017 E F0 .517(is a ch\
aracter string which contains three types of objects: plain characters,\
which are)3.017 F .704(simply copied to standard output, character esc\
-ape sequences, which are con)144 496.8 R -.15(ve)-.4 G .703
+ape sequences, which are con)144 679.2 R -.15(ve)-.4 G .703
(rted and copied to).15 F .036(the standard output, and format speci\
-\214cations, each of which causes printing of the ne)144 508.8 R .037
-(xt successi)-.15 F -.15(ve)-.25 G F2(ar)144 520.8 Q(gument)-.37 E F0
+\214cations, each of which causes printing of the ne)144 691.2 R .037
+(xt successi)-.15 F -.15(ve)-.25 G F2(ar)144 703.2 Q(gument)-.37 E F0
5.532(.I)C 3.032(na)-5.532 G .532(ddition to the standard)-3.032 F F2
(printf)3.032 E F0 .532(\(1\) format speci\214cations,)B F1(printf)3.031
-E F0 .531(interprets the follo)3.031 F(w-)-.25 E(ing e)144 532.8 Q
-(xtensions:)-.15 E F1(%b)144 544.8 Q F0(causes)180 544.8 Q F1(printf)
-2.595 E F0 .096(to e)2.595 F .096
-(xpand backslash escape sequences in the corresponding)-.15 F F2(ar)
-2.596 E(gument)-.37 E F0 .096(in the)2.596 F(same w)180 556.8 Q(ay as)
--.1 E F1(echo \255e)2.5 E F0(.)A F1(%q)144 568.8 Q F0(causes)180 568.8 Q
-F1(printf)2.51 E F0 .01(to output the corresponding)2.51 F F2(ar)2.51 E
-(gument)-.37 E F0 .01(in a format that can be reused as shell)2.51 F
-(input.)180 580.8 Q F1(%\()144 592.8 Q F2(datefmt)A F1(\)T)A F0(causes)
-180 604.8 Q F1(printf)4.403 E F0 1.904
+E F0 .531(interprets the follo)3.031 F(w-)-.25 E(ing e)144 715.2 Q
+(xtensions:)-.15 E(GNU Bash 5.2)72 768 Q(2021 No)136.385 E -.15(ve)-.15
+G(mber 22).15 E(12)185.545 E 0 Cg EP
+%%Page: 13 13
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(%b)144 84 Q F0
+(causes)180 84 Q F1(printf)2.595 E F0 .096(to e)2.595 F .096
+(xpand backslash escape sequences in the corresponding)-.15 F/F2 10
+/Times-Italic@0 SF(ar)2.596 E(gument)-.37 E F0 .096(in the)2.596 F
+(same w)180 96 Q(ay as)-.1 E F1(echo \255e)2.5 E F0(.)A F1(%q)144 108 Q
+F0(causes)180 108 Q F1(printf)2.51 E F0 .01(to output the corresponding)
+2.51 F F2(ar)2.51 E(gument)-.37 E F0 .01
+(in a format that can be reused as shell)2.51 F(input.)180 120 Q F1(%Q)
+144 132 Q F0(lik)180 132 Q(e)-.1 E F1(%q)2.5 E F0 2.5(,b)C
+(ut applies an)-2.7 E 2.5(ys)-.15 G(upplied precision to the)-2.5 E F2
+(ar)2.5 E(gument)-.37 E F0(before quoting it.)2.5 E F1(%\()144 144 Q F2
+(datefmt)A F1(\)T)A F0(causes)180 156 Q F1(printf)4.403 E F0 1.904
(to output the date-time string resulting from using)4.403 F F2(datefmt)
-4.404 E F0 1.904(as a format)4.404 F .381(string for)180 616.8 R F2
+4.404 E F0 1.904(as a format)4.404 F .381(string for)180 168 R F2
(strftime)2.881 E F0 2.881(\(3\). The)B(corresponding)2.881 E F2(ar)
2.881 E(gument)-.37 E F0 .381(is an inte)2.881 F .381
(ger representing the number)-.15 F .292(of seconds since the epoch.)180
-628.8 R -1 -.8(Tw o)5.293 H .293(special ar)3.593 F .293(gument v)-.18 F
+180 R -1 -.8(Tw o)5.293 H .293(special ar)3.593 F .293(gument v)-.18 F
.293(alues may be used: \2551 represents the)-.25 F .694
-(current time, and \2552 represents the time the shell w)180 640.8 R
-.693(as in)-.1 F -.2(vo)-.4 G -.1(ke).2 G 3.193(d. If).1 F .693(no ar)
-3.193 F .693(gument is speci-)-.18 F .21(\214ed, con)180 652.8 R -.15
-(ve)-.4 G .21(rsion beha).15 F -.15(ve)-.2 G 2.71(sa).15 G 2.71(si)-2.71
-G 2.71<66ad>-2.71 G 2.71(1h)-2.71 G .21(ad been gi)-2.71 F -.15(ve)-.25
-G 2.71(n. This).15 F .21(is an e)2.71 F .21(xception to the usual)-.15 F
-F1(printf)2.71 E F0(beha)180 664.8 Q(vior)-.2 E(.)-.55 E .902
-(The %b, %q, and %T directi)144 681.6 R -.15(ve)-.25 G 3.401(sa).15 G
+(current time, and \2552 represents the time the shell w)180 192 R .693
+(as in)-.1 F -.2(vo)-.4 G -.1(ke).2 G 3.193(d. If).1 F .693(no ar)3.193
+F .693(gument is speci-)-.18 F .21(\214ed, con)180 204 R -.15(ve)-.4 G
+.21(rsion beha).15 F -.15(ve)-.2 G 2.71(sa).15 G 2.71(si)-2.71 G 2.71
+<66ad>-2.71 G 2.71(1h)-2.71 G .21(ad been gi)-2.71 F -.15(ve)-.25 G 2.71
+(n. This).15 F .21(is an e)2.71 F .21(xception to the usual)-.15 F F1
+(printf)2.71 E F0(beha)180 216 Q(vior)-.2 E(.)-.55 E .902
+(The %b, %q, and %T directi)144 232.8 R -.15(ve)-.25 G 3.401(sa).15 G
.901(ll use the \214eld width and precision ar)-3.401 F .901
(guments from the format)-.18 F .357(speci\214cation and write that man)
-144 693.6 R 2.857(yb)-.15 G .358
+144 244.8 R 2.857(yb)-.15 G .358
(ytes from \(or use that wide a \214eld for\) the e)-2.857 F .358
(xpanded ar)-.15 F(gument,)-.18 E
-(which usually contains more characters than the original.)144 705.6 Q
-(Ar)144 722.4 Q .464(guments to non-string format speci\214ers are trea\
+(which usually contains more characters than the original.)144 256.8 Q
+(Ar)144 273.6 Q .464(guments to non-string format speci\214ers are trea\
ted as C constants, e)-.18 F .463(xcept that a leading plus or)-.15 F
-(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(12)198.725 E 0 Cg EP
-%%Page: 13 13
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
-(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E 1.258(minus sign is allo)144 84 R 1.259
+1.258(minus sign is allo)144 285.6 R 1.259
(wed, and if the leading character is a single or double quote, the v)
--.25 F 1.259(alue is the)-.25 F(ASCII v)144 96 Q(alue of the follo)-.25
-E(wing character)-.25 E(.)-.55 E(The)144 112.8 Q/F1 10/Times-Italic@0 SF
-(format)2.515 E F0 .015(is reused as necessary to consume all of the)
-2.515 F F1(ar)2.515 E(guments)-.37 E F0 5.015(.I)C 2.514(ft)-5.015 G(he)
--2.514 E F1(format)2.514 E F0 .014(requires more)2.514 F F1(ar)2.514 E
-(-)-.2 E(guments)144 124.8 Q F0 .565(than are supplied, the e)3.065 F
-.566(xtra format speci\214cations beha)-.15 F .866 -.15(ve a)-.2 H 3.066
-(si).15 G 3.066(faz)-3.066 G .566(ero v)-3.066 F .566
-(alue or null string,)-.25 F(as appropriate, had been supplied.)144
-136.8 Q(The return v)5 E(alue is zero on success, non-zero on f)-.25 E
-(ailure.)-.1 E/F2 10/Times-Bold@0 SF(pushd)108 153.6 Q F0([)2.5 E F2
-<ad6e>A F0 2.5(][)C(+)-2.5 E F1(n)A F0 2.5(][)C<ad>-2.5 E F1(n)A F0(])A
-F2(pushd)108 165.6 Q F0([)2.5 E F2<ad6e>A F0 2.5(][)C F1(dir)-2.5 E F0
-(])A .64(Adds a directory to the top of the directory stack, or rotates\
- the stack, making the ne)144 177.6 R 3.139(wt)-.25 G .639(op of the)
--3.139 F .416(stack the current w)144 189.6 R .416(orking directory)-.1
-F 5.416(.W)-.65 G .416(ith no ar)-5.816 F(guments,)-.18 E F2(pushd)2.916
-E F0 -.15(ex)2.916 G .416(changes the top tw).15 F 2.917(od)-.1 G
-(irectories)-2.917 E 1.625
-(and returns 0, unless the directory stack is empty)144 201.6 R 6.625
-(.A)-.65 G -.18(rg)-6.625 G 1.625(uments, if supplied, ha).18 F 1.925
--.15(ve t)-.2 H 1.625(he follo).15 F(wing)-.25 E(meanings:)144 213.6 Q
-F2<ad6e>144 225.6 Q F0 1.811(Suppresses the normal change of directory \
-when rotating or adding directories to the)180 225.6 R
-(stack, so that only the stack is manipulated.)180 237.6 Q F2(+)144
-249.6 Q F1(n)A F0 1.268(Rotates the stack so that the)180 249.6 R F1(n)
-3.768 E F0 1.267(th directory \(counting from the left of the list sho)B
-1.267(wn by)-.25 F F2(dirs)180 261.6 Q F0 2.5(,s)C
-(tarting with zero\) is at the top.)-2.5 E F2<ad>144 273.6 Q F1(n)A F0
-.92(Rotates the stack so that the)180 273.6 R F1(n)3.42 E F0 .92
+-.25 F 1.259(alue is the)-.25 F(ASCII v)144 297.6 Q(alue of the follo)
+-.25 E(wing character)-.25 E(.)-.55 E(The)144 314.4 Q F2(format)2.515 E
+F0 .015(is reused as necessary to consume all of the)2.515 F F2(ar)2.515
+E(guments)-.37 E F0 5.015(.I)C 2.514(ft)-5.015 G(he)-2.514 E F2(format)
+2.514 E F0 .014(requires more)2.514 F F2(ar)2.514 E(-)-.2 E(guments)144
+326.4 Q F0 .565(than are supplied, the e)3.065 F .566
+(xtra format speci\214cations beha)-.15 F .866 -.15(ve a)-.2 H 3.066(si)
+.15 G 3.066(faz)-3.066 G .566(ero v)-3.066 F .566(alue or null string,)
+-.25 F(as appropriate, had been supplied.)144 338.4 Q(The return v)5 E
+(alue is zero on success, non-zero on f)-.25 E(ailure.)-.1 E F1(pushd)
+108 355.2 Q F0([)2.5 E F1<ad6e>A F0 2.5(][)C(+)-2.5 E F2(n)A F0 2.5(][)C
+<ad>-2.5 E F2(n)A F0(])A F1(pushd)108 367.2 Q F0([)2.5 E F1<ad6e>A F0
+2.5(][)C F2(dir)-2.5 E F0(])A .64(Adds a directory to the top of the di\
+rectory stack, or rotates the stack, making the ne)144 379.2 R 3.139(wt)
+-.25 G .639(op of the)-3.139 F .088(stack the current w)144 391.2 R .088
+(orking directory)-.1 F 5.088(.W)-.65 G .088(ith no ar)-5.488 F
+(guments,)-.18 E F1(pushd)2.589 E F0 -.15(ex)2.589 G .089
+(changes the top tw).15 F 2.589(oe)-.1 G .089(lements of)-2.589 F
+(the directory stack.)144 403.2 Q(Ar)5 E(guments, if supplied, ha)-.18 E
+.3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad6e>144
+415.2 Q F0 1.811(Suppresses the normal change of directory when rotatin\
+g or adding directories to the)180 415.2 R
+(stack, so that only the stack is manipulated.)180 427.2 Q F1(+)144
+439.2 Q F2(n)A F0 1.267(Rotates the stack so that the)180 439.2 R F2(n)
+3.767 E F0 1.268(th directory \(counting from the left of the list sho)B
+1.268(wn by)-.25 F F1(dirs)180 451.2 Q F0 2.5(,s)C
+(tarting with zero\) is at the top.)-2.5 E F1<ad>144 463.2 Q F2(n)A F0
+.92(Rotates the stack so that the)180 463.2 R F2(n)3.42 E F0 .92
(th directory \(counting from the right of the list sho)B .92(wn by)-.25
-F F2(dirs)180 285.6 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
--2.5 E F1(dir)144.35 297.6 Q F0(Adds)180 297.6 Q F1(dir)3.138 E F0 .288
-(to the directory stack at the top, making it the ne)3.518 F 2.787(wc)
--.25 G .287(urrent w)-2.787 F .287(orking directory as)-.1 F
-(if it had been supplied as the ar)180 309.6 Q(gument to the)-.18 E F2
-(cd)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .488(If the)144 326.4 R F2(pushd)
-2.988 E F0 .488(command is successful, a)2.988 F F2(dirs)2.988 E F0 .488
-(is performed as well.)2.988 F .489(If the \214rst form is used,)5.488 F
-F2(pushd)2.989 E F0 1.04(returns 0 unless the cd to)144 338.4 R F1(dir)
-3.89 E F0 -.1(fa)4.27 G 3.539(ils. W).1 F 1.039(ith the second form,)-.4
-F F2(pushd)3.539 E F0 1.039(returns 0 unless the directory)3.539 F .846
-(stack is empty)144 350.4 R 3.346(,an)-.65 G(on-e)-3.346 E .847(xistent\
- directory stack element is speci\214ed, or the directory change to the)
--.15 F(speci\214ed ne)144 362.4 Q 2.5(wc)-.25 G(urrent directory f)-2.5
-E(ails.)-.1 E F2(pwd)108 379.2 Q F0([)2.5 E F2(\255LP)A F0(])A .845
-(Print the absolute pathname of the current w)144 391.2 R .845
-(orking directory)-.1 F 5.844(.T)-.65 G .844
-(he pathname printed contains no)-5.844 F .181(symbolic links if the)144
-403.2 R F2<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F2
-.181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F2
-(set)2.681 E F0 -.2(bu)2.681 G .182(iltin command is).2 F 3.264
-(enabled. If)144 415.2 R(the)3.264 E F2<ad4c>3.264 E F0 .763
-(option is used, the pathname printed may contain symbolic links.)3.264
-F .763(The return)5.763 F .405(status is 0 unless an error occurs while\
- reading the name of the current directory or an in)144 427.2 R -.25(va)
--.4 G .405(lid op-).25 F(tion is supplied.)144 439.2 Q F2 -.18(re)108
-456 S(ad).18 E F0([)3.817 E F2(\255ers)A F0 3.817(][)C F2<ad61>-3.817 E
-F1(aname)3.817 E F0 3.817(][)C F2<ad64>-3.817 E F1(delim)3.817 E F0
-3.817(][)C F2<ad69>-3.817 E F1(te)3.817 E(xt)-.2 E F0 3.817(][)C F2
-<ad6e>-3.817 E F1(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F2<ad4e>
--3.816 E F1(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.816(][)C F2<ad70>-3.816 E
-F1(pr)3.816 E(ompt)-.45 E F0 3.816(][)C F2<ad74>-3.816 E F1(timeout)
-3.816 E F0 3.816(][)C F2<ad75>-3.816 E F1(fd)3.816 E F0(])A([)108 468 Q
-F1(name)A F0(...])2.5 E .516(One line is read from the standard input, \
-or from the \214le descriptor)144 480 R F1(fd)3.016 E F0 .516
-(supplied as an ar)3.016 F .517(gument to)-.18 F(the)144 492 Q F2<ad75>
-2.936 E F0 .436(option, split into w)2.936 F .435(ords as described abo)
--.1 F .735 -.15(ve u)-.15 H(nder).15 E F2 -.75(Wo)2.935 G .435
-(rd Splitting).75 F F0 2.935(,a)C .435(nd the \214rst w)-2.935 F .435
-(ord is as-)-.1 F .375(signed to the \214rst)144 504 R F1(name)3.235 E
-F0 2.876(,t).18 G .376(he second w)-2.876 F .376(ord to the second)-.1 F
-F1(name)3.236 E F0 2.876(,a).18 G .376(nd so on.)-2.876 F .376
-(If there are more w)5.376 F(ords)-.1 E .237
-(than names, the remaining w)144 516 R .237(ords and their interv)-.1 F
-.237(ening delimiters are assigned to the last)-.15 F F1(name)3.096 E F0
-5.236(.I).18 G(f)-5.236 E .874(there are fe)144 528 R .874(wer w)-.25 F
-.875(ords read from the input stream than names, the remaining names ar\
-e assigned)-.1 F .518(empty v)144 540 R 3.018(alues. The)-.25 F .518
-(characters in)3.018 F/F3 9/Times-Bold@0 SF(IFS)3.018 E F0 .518
-(are used to split the line into w)2.768 F .517
-(ords using the same rules the)-.1 F .026(shell uses for e)144 552 R
-.026(xpansion \(described abo)-.15 F .326 -.15(ve u)-.15 H(nder).15 E F2
--.75(Wo)2.526 G .026(rd Splitting).75 F F0 2.526(\). The)B .026
-(backslash character \()2.526 F F2(\\)A F0 2.527(\)m)C(ay)-2.527 E .489
-(be used to remo)144 564 R .788 -.15(ve a)-.15 H .788 -.15(ny s).15 H
-.488(pecial meaning for the ne).15 F .488
-(xt character read and for line continuation.)-.15 F(Op-)5.488 E
-(tions, if supplied, ha)144 576 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F2<ad61>144 588 Q F1(aname)2.5 E F0 1.025(The w)
-180 600 R 1.026(ords are assigned to sequential indices of the array v)
--.1 F(ariable)-.25 E F1(aname)3.856 E F0 3.526(,s).18 G 1.026
-(tarting at 0.)-3.526 F F1(aname)180.33 612 Q F0(is unset before an)2.68
-E 2.5(yn)-.15 G .5 -.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E
-F1(name)2.5 E F0(ar)2.5 E(guments are ignored.)-.18 E F2<ad64>144 624 Q
-F1(delim)2.5 E F0 .281(The \214rst character of)180 636 R F1(delim)2.781
-E F0 .281(is used to terminate the input line, rather than ne)2.781 F
-2.78(wline. If)-.25 F F1(de-)2.78 E(lim)180 648 Q F0
-(is the empty string,)2.5 E F2 -.18(re)2.5 G(ad).18 E F0
-(will terminate a line when it reads a NUL character)2.5 E(.)-.55 E F2
-<ad65>144 660 Q F0 .372
-(If the standard input is coming from a terminal,)180 660 R F2 -.18(re)
-2.873 G(adline).18 E F0(\(see)2.873 E F3(READLINE)2.873 E F0(abo)2.623 E
--.15(ve)-.15 G 2.873(\)i).15 G 2.873(su)-2.873 G(sed)-2.873 E .218
-(to obtain the line.)180 672 R .218(Readline uses the current \(or def)
-5.218 F .218(ault, if line editing w)-.1 F .218(as not pre)-.1 F
-(viously)-.25 E(acti)180 684 Q -.15(ve)-.25 G 2.5(\)e).15 G
-(diting settings, b)-2.5 E(ut uses Readline')-.2 E 2.5(sd)-.55 G(ef)-2.5
-E(ault \214lename completion.)-.1 E F2<ad69>144 696 Q F1(te)2.5 E(xt)-.2
-E F0(If)180 696 Q F2 -.18(re)2.715 G(adline).18 E F0 .216
-(is being used to read the line,)2.715 F F1(te)2.716 E(xt)-.2 E F0 .216
-(is placed into the editing b)2.716 F(uf)-.2 E .216(fer before edit-)
--.25 F(ing be)180 708 Q(gins.)-.15 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)
-149.565 E(13)198.725 E 0 Cg EP
+F F1(dirs)180 475.2 Q F0 2.5(,s)C(tarting with zero\) is at the top.)
+-2.5 E F2(dir)144.35 487.2 Q F0(Adds)180 487.2 Q F2(dir)2.85 E F0
+(to the directory stack at the top)3.23 E .434
+(After the stack has been modi\214ed, if the)144 504 R F1<ad6e>2.934 E
+F0 .434(option w)2.934 F .435(as not supplied,)-.1 F F1(pushd)2.935 E F0
+.435(uses the)2.935 F F1(cd)2.935 E F0 -.2(bu)2.935 G .435(iltin to).2 F
+(change to the directory at the top of the stack.)144 516 Q(If the)5 E
+F1(cd)2.5 E F0 -.1(fa)2.5 G(ils,).1 E F1(pushd)2.5 E F0
+(returns a non-zero v)2.5 E(alue.)-.25 E 1.78(Otherwise, if no ar)144
+532.8 R 1.78(guments are supplied,)-.18 F F1(pushd)4.28 E F0 1.78
+(returns 0 unless the directory stack is empty)4.28 F(.)-.65 E .092
+(When rotating the directory stack,)144 544.8 R F1(pushd)2.592 E F0 .093
+(returns 0 unless the directory stack is empty or a non-e)2.592 F(x-)
+-.15 E(istent directory stack element is speci\214ed.)144 556.8 Q 1.278
+(If the)144 573.6 R F1(pushd)3.778 E F0 1.278
+(command is successful, bash runs)3.778 F F1(dirs)3.778 E F0 1.277
+(to sho)3.777 F 3.777(wt)-.25 G 1.277
+(he \214nal contents of the directory)-3.777 F(stack.)144 585.6 Q F1
+(pwd)108 602.4 Q F0([)2.5 E F1(\255LP)A F0(])A .844
+(Print the absolute pathname of the current w)144 614.4 R .845
+(orking directory)-.1 F 5.845(.T)-.65 G .845
+(he pathname printed contains no)-5.845 F .182(symbolic links if the)144
+626.4 R F1<ad50>2.681 E F0 .181(option is supplied or the)2.681 F F1
+.181(\255o ph)2.681 F(ysical)-.15 E F0 .181(option to the)2.681 F F1
+(set)2.681 E F0 -.2(bu)2.681 G .181(iltin command is).2 F 3.263
+(enabled. If)144 638.4 R(the)3.263 E F1<ad4c>3.263 E F0 .763
+(option is used, the pathname printed may contain symbolic links.)3.263
+F .764(The return)5.764 F .405(status is 0 unless an error occurs while\
+ reading the name of the current directory or an in)144 650.4 R -.25(va)
+-.4 G .405(lid op-).25 F(tion is supplied.)144 662.4 Q F1 -.18(re)108
+679.2 S(ad).18 E F0([)3.816 E F1(\255ers)A F0 3.816(][)C F1<ad61>-3.816
+E F2(aname)3.816 E F0 3.816(][)C F1<ad64>-3.816 E F2(delim)3.816 E F0
+3.816(][)C F1<ad69>-3.816 E F2(te)3.816 E(xt)-.2 E F0 3.816(][)C F1
+<ad6e>-3.816 E F2(nc)3.816 E(har)-.15 E(s)-.1 E F0 3.817(][)C F1<ad4e>
+-3.817 E F2(nc)3.817 E(har)-.15 E(s)-.1 E F0 3.817(][)C F1<ad70>-3.817 E
+F2(pr)3.817 E(ompt)-.45 E F0 3.817(][)C F1<ad74>-3.817 E F2(timeout)
+3.817 E F0 3.817(][)C F1<ad75>-3.817 E F2(fd)3.817 E F0(])A([)108 691.2
+Q F2(name)A F0(...])2.5 E .516(One line is read from the standard input\
+, or from the \214le descriptor)144 703.2 R F2(fd)3.016 E F0 .516
+(supplied as an ar)3.016 F .516(gument to)-.18 F(the)144 715.2 Q F1
+<ad75>2.753 E F0 .253(option, split into w)2.753 F .253
+(ords as described in)-.1 F F2(bash\(1\))2.754 E F0(under)2.754 E F1
+-.75(Wo)2.754 G .254(rd Splitting).75 F F0 2.754(,a)C .254
+(nd the \214rst w)-2.754 F .254(ord is)-.1 F 1.425
+(assigned to the \214rst)144 727.2 R F2(name)4.285 E F0 3.925(,t).18 G
+1.425(he second w)-3.925 F 1.425(ord to the second)-.1 F F2(name)4.285 E
+F0 3.925(,a).18 G 1.425(nd so on.)-3.925 F 1.425(If there are more)6.425
+F(GNU Bash 5.2)72 768 Q(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E
+(13)185.545 E 0 Cg EP
%%Page: 14 14
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF<ad6e>144 84 Q/F2 10
-/Times-Italic@0 SF(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 96 S(ad)
-.18 E F0 .323(returns after reading)2.823 F F2(nc)2.823 E(har)-.15 E(s)
--.1 E F0 .323(characters rather than w)2.823 F .323
-(aiting for a complete line of in-)-.1 F(put, b)180 108 Q
-(ut honors a delimiter if fe)-.2 E(wer than)-.25 E F2(nc)2.5 E(har)-.15
-E(s)-.1 E F0(characters are read before the delimiter)2.5 E(.)-.55 E F1
-<ad4e>144 120 Q F2(nc)2.5 E(har)-.15 E(s)-.1 E F1 -.18(re)180 132 S(ad)
-.18 E F0 1.269(returns after reading e)3.769 F(xactly)-.15 E F2(nc)3.769
-E(har)-.15 E(s)-.1 E F0 1.269(characters rather than w)3.769 F 1.27
-(aiting for a complete)-.1 F .275
-(line of input, unless EOF is encountered or)180 144 R F1 -.18(re)2.775
-G(ad).18 E F0 .274(times out.)2.774 F .274(Delimiter characters encoun-)
-5.274 F 1.002
-(tered in the input are not treated specially and do not cause)180 156 R
-F1 -.18(re)3.503 G(ad).18 E F0 1.003(to return until)3.503 F F2(nc)3.503
-E(har)-.15 E(s)-.1 E F0 .609(characters are read.)180 168 R .608
-(The result is not split on the characters in)5.609 F F1(IFS)3.108 E F0
-3.108(;t)C .608(he intent is that the)-3.108 F -.25(va)180 180 S .669
+E(UIL)-.1 E(TINS\(1\))-.92 E -.1(wo)144 84 S 1.112
+(rds than names, the remaining w).1 F 1.112(ords and their interv)-.1 F
+1.112(ening delimiters are assigned to the last)-.15 F/F1 10
+/Times-Italic@0 SF(name)144.36 96 Q F0 5.7(.I).18 G 3.2(ft)-5.7 G .7
+(here are fe)-3.2 F .7(wer w)-.25 F .7
+(ords read from the input stream than names, the remaining names are)-.1
+F .531(assigned empty v)144 108 R 3.031(alues. The)-.25 F .531
+(characters in)3.031 F/F2 9/Times-Bold@0 SF(IFS)3.031 E F0 .532
+(are used to split the line into w)2.781 F .532(ords using the same)-.1
+F 1.326(rules the shell uses for e)144 120 R 1.325
+(xpansion \(described in)-.15 F F1(bash\(1\))3.825 E F0(under)3.825 E/F3
+10/Times-Bold@0 SF -.75(Wo)3.825 G 1.325(rd Splitting).75 F F0 3.825
+(\). The)B(backslash)3.825 E .738(character \()144 132 R F3(\\)A F0
+3.238(\)m)C .739(ay be used to remo)-3.238 F 1.039 -.15(ve a)-.15 H
+1.039 -.15(ny s).15 H .739(pecial meaning for the ne).15 F .739
+(xt character read and for line)-.15 F 2.5(continuation. Options,)144
+144 R(if supplied, ha)2.5 E .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F3<ad61>144 156 Q F1(aname)2.5 E F0 1.026(The w)
+180 168 R 1.026(ords are assigned to sequential indices of the array v)
+-.1 F(ariable)-.25 E F1(aname)3.855 E F0 3.525(,s).18 G 1.025
+(tarting at 0.)-3.525 F F1(aname)180.33 180 Q F0(is unset before an)2.68
+E 2.5(yn)-.15 G .5 -.25(ew va)-2.5 H(lues are assigned.).25 E(Other)5 E
+F1(name)2.5 E F0(ar)2.5 E(guments are ignored.)-.18 E F3<ad64>144 192 Q
+F1(delim)2.5 E F0 .28(The \214rst character of)180 204 R F1(delim)2.78 E
+F0 .281(is used to terminate the input line, rather than ne)2.78 F 2.781
+(wline. If)-.25 F F1(de-)2.781 E(lim)180 216 Q F0(is the empty string,)
+2.5 E F3 -.18(re)2.5 G(ad).18 E F0
+(will terminate a line when it reads a NUL character)2.5 E(.)-.55 E F3
+<ad65>144 228 Q F0 .629
+(If the standard input is coming from a terminal,)180 228 R F3 -.18(re)
+3.128 G(adline).18 E F0(\(see)3.128 E F2(READLINE)3.128 E F0(in)2.878 E
+F1(bash\(1\))3.128 E F0 3.128(\)i)C(s)-3.128 E .048
+(used to obtain the line.)180 240 R .049
+(Readline uses the current \(or def)5.049 F .049
+(ault, if line editing w)-.1 F .049(as not pre)-.1 F(vi-)-.25 E
+(ously acti)180 252 Q -.15(ve)-.25 G 2.5(\)e).15 G(diting settings, b)
+-2.5 E(ut uses readline')-.2 E 2.5(sd)-.55 G(ef)-2.5 E
+(ault \214lename completion.)-.1 E F3<ad69>144 264 Q F1(te)2.5 E(xt)-.2
+E F0(If)180 264 Q F3 -.18(re)2.716 G(adline).18 E F0 .216
+(is being used to read the line,)2.716 F F1(te)2.716 E(xt)-.2 E F0 .216
+(is placed into the editing b)2.716 F(uf)-.2 E .215(fer before edit-)
+-.25 F(ing be)180 276 Q(gins.)-.15 E F3<ad6e>144 288 Q F1(nc)2.5 E(har)
+-.15 E(s)-.1 E F3 -.18(re)180 300 S(ad).18 E F0 .322
+(returns after reading)2.822 F F1(nc)2.823 E(har)-.15 E(s)-.1 E F0 .323
+(characters rather than w)2.823 F .323
+(aiting for a complete line of in-)-.1 F(put, b)180 312 Q
+(ut honors a delimiter if fe)-.2 E(wer than)-.25 E F1(nc)2.5 E(har)-.15
+E(s)-.1 E F0(characters are read before the delimiter)2.5 E(.)-.55 E F3
+<ad4e>144 324 Q F1(nc)2.5 E(har)-.15 E(s)-.1 E F3 -.18(re)180 336 S(ad)
+.18 E F0 1.269(returns after reading e)3.77 F(xactly)-.15 E F1(nc)3.769
+E(har)-.15 E(s)-.1 E F0 1.269(characters rather than w)3.769 F 1.269
+(aiting for a complete)-.1 F .274
+(line of input, unless EOF is encountered or)180 348 R F3 -.18(re)2.775
+G(ad).18 E F0 .275(times out.)2.775 F .275(Delimiter characters encoun-)
+5.275 F 1.003
+(tered in the input are not treated specially and do not cause)180 360 R
+F3 -.18(re)3.502 G(ad).18 E F0 1.002(to return until)3.502 F F1(nc)3.502
+E(har)-.15 E(s)-.1 E F0 .608(characters are read.)180 372 R .608
+(The result is not split on the characters in)5.608 F F3(IFS)3.108 E F0
+3.108(;t)C .609(he intent is that the)-3.108 F -.25(va)180 384 S .67
(riable is assigned e).25 F .669
-(xactly the characters read \(with the e)-.15 F .67
-(xception of backslash; see the)-.15 F F1<ad72>180 192 Q F0(option belo)
-2.5 E(w\).)-.25 E F1<ad70>144 204 Q F2(pr)2.5 E(ompt)-.45 E F0(Display)
-180 216 Q F2(pr)3.661 E(ompt)-.45 E F0 1.161(on standard error)3.661 F
+(xactly the characters read \(with the e)-.15 F .669
+(xception of backslash; see the)-.15 F F3<ad72>180 396 Q F0(option belo)
+2.5 E(w\).)-.25 E F3<ad70>144 408 Q F1(pr)2.5 E(ompt)-.45 E F0(Display)
+180 420 Q F1(pr)3.66 E(ompt)-.45 E F0 1.161(on standard error)3.66 F
3.661(,w)-.4 G 1.161(ithout a trailing ne)-3.661 F 1.161
-(wline, before attempting to read)-.25 F(an)180 228 Q 2.5(yi)-.15 G 2.5
+(wline, before attempting to read)-.25 F(an)180 432 Q 2.5(yi)-.15 G 2.5
(nput. The)-2.5 F
-(prompt is displayed only if input is coming from a terminal.)2.5 E F1
-<ad72>144 240 Q F0 .543(Backslash does not act as an escape character)
-180 240 R 5.543(.T)-.55 G .544(he backslash is considered to be part of)
--5.543 F .493(the line.)180 252 R .493(In particular)5.493 F 2.993(,ab)
--.4 G(ackslash-ne)-2.993 E .493
+(prompt is displayed only if input is coming from a terminal.)2.5 E F3
+<ad72>144 444 Q F0 .544(Backslash does not act as an escape character)
+180 444 R 5.543(.T)-.55 G .543(he backslash is considered to be part of)
+-5.543 F .492(the line.)180 456 R .492(In particular)5.492 F 2.992(,ab)
+-.4 G(ackslash-ne)-2.992 E .493
(wline pair may not then be used as a line continua-)-.25 F(tion.)180
-264 Q F1<ad73>144 276 Q F0(Silent mode.)180 276 Q
-(If input is coming from a terminal, characters are not echoed.)5 E F1
-<ad74>144 288 Q F2(timeout)2.5 E F0(Cause)180 300 Q F1 -.18(re)2.928 G
-(ad).18 E F0 .428(to time out and return f)2.928 F .428
-(ailure if a complete line of input \(or a speci\214ed num-)-.1 F .561
-(ber of characters\) is not read within)180 312 R F2(timeout)3.061 E F0
-(seconds.)3.061 E F2(timeout)5.561 E F0 .56(may be a decimal number)
-3.061 F(with a fractional portion follo)180 324 Q
+468 Q F3<ad73>144 480 Q F0(Silent mode.)180 480 Q
+(If input is coming from a terminal, characters are not echoed.)5 E F3
+<ad74>144 492 Q F1(timeout)2.5 E F0(Cause)180 504 Q F3 -.18(re)2.929 G
+(ad).18 E F0 .428(to time out and return f)2.929 F .428
+(ailure if a complete line of input \(or a speci\214ed num-)-.1 F .56
+(ber of characters\) is not read within)180 516 R F1(timeout)3.061 E F0
+(seconds.)3.061 E F1(timeout)5.561 E F0 .561(may be a decimal number)
+3.061 F(with a fractional portion follo)180 528 Q
(wing the decimal point.)-.25 E(This option is only ef)5 E(fecti)-.25 E
-.3 -.15(ve i)-.25 H(f).15 E F1 -.18(re)2.5 G(ad).18 E F0 .506(is readin\
+.3 -.15(ve i)-.25 H(f).15 E F3 -.18(re)2.5 G(ad).18 E F0 .506(is readin\
g input from a terminal, pipe, or other special \214le; it has no ef)180
-336 R .505(fect when reading)-.25 F .589(from re)180 348 R .589
-(gular \214les.)-.15 F(If)5.589 E F1 -.18(re)3.089 G(ad).18 E F0 .589
-(times out,)3.089 F F1 -.18(re)3.089 G(ad).18 E F0(sa)3.089 E -.15(ve)
--.2 G 3.089(sa).15 G .889 -.15(ny p)-3.089 H .59
-(artial input read into the speci\214ed).15 F -.25(va)180 360 S(riable)
-.25 E F2(name)2.77 E F0 5.27(.I)C(f)-5.27 E F2(timeout)2.77 E F0 .27
-(is 0,)2.77 F F1 -.18(re)2.77 G(ad).18 E F0 .27(returns immediately)2.77
+540 R .506(fect when reading)-.25 F .59(from re)180 552 R .59
+(gular \214les.)-.15 F(If)5.59 E F3 -.18(re)3.09 G(ad).18 E F0 .589
+(times out,)3.09 F F3 -.18(re)3.089 G(ad).18 E F0(sa)3.089 E -.15(ve)-.2
+G 3.089(sa).15 G .889 -.15(ny p)-3.089 H .589
+(artial input read into the speci\214ed).15 F -.25(va)180 564 S(riable)
+.25 E F1(name)2.77 E F0 5.27(.I)C(f)-5.27 E F1(timeout)2.77 E F0 .27
+(is 0,)2.77 F F3 -.18(re)2.77 G(ad).18 E F0 .27(returns immediately)2.77
F 2.77(,w)-.65 G .27(ithout trying to read an)-2.77 F 2.77(yd)-.15 G
-(ata.)-2.77 E 1.12(The e)180 372 R 1.12(xit status is 0 if input is a)
--.15 F -.25(va)-.2 G 1.12(ilable on the speci\214ed \214le descriptor)
-.25 F 3.62(,n)-.4 G 1.12(on-zero other)-3.62 F(-)-.2 E 2.5(wise. The)180
-384 R -.15(ex)2.5 G(it status is greater than 128 if the timeout is e)
-.15 E(xceeded.)-.15 E F1<ad75>144 396 Q F2(fd)2.5 E F0
-(Read input from \214le descriptor)180 396 Q F2(fd)2.5 E F0(.)A .522
-(If no)144 412.8 R F2(names)3.382 E F0 .522
+(ata.)-2.77 E .228(The e)180 576 R .228(xit status is 0 if input is a)
+-.15 F -.25(va)-.2 G .228(ilable on the speci\214ed \214le descriptor)
+.25 F 2.728(,o)-.4 G 2.727(rt)-2.728 G .227(he read will re-)-2.727 F
+1.224(turn EOF)180 588 R 3.724(,n)-.8 G 1.224(on-zero otherwise.)-3.724
+F 1.224(The e)6.224 F 1.225
+(xit status is greater than 128 if the timeout is e)-.15 F(x-)-.15 E
+(ceeded.)180 600 Q F3<ad75>144 612 Q F1(fd)2.5 E F0
+(Read input from \214le descriptor)180 612 Q F1(fd)2.5 E F0(.)A .522
+(If no)144 628.8 R F1(names)3.382 E F0 .522
(are supplied, the line read, without the ending delimiter b)3.292 F
.522(ut otherwise unmodi\214ed, is)-.2 F 1.186(assigned to the v)144
-424.8 R(ariable)-.25 E/F3 9/Times-Bold@0 SF(REPL)3.686 E(Y)-.828 E/F4 9
-/Times-Roman@0 SF(.)A F0 1.186(The e)5.686 F 1.186
-(xit status is zero, unless end-of-\214le is encountered,)-.15 F F1 -.18
+640.8 R(ariable)-.25 E F2(REPL)3.686 E(Y)-.828 E/F4 9/Times-Roman@0 SF
+(.)A F0 1.186(The e)5.686 F 1.186
+(xit status is zero, unless end-of-\214le is encountered,)-.15 F F3 -.18
(re)3.687 G(ad).18 E F0 .961
(times out \(in which case the status is greater than 128\), a v)144
-436.8 R .96(ariable assignment error \(such as as-)-.25 F .706
-(signing to a readonly v)144 448.8 R .706(ariable\) occurs, or an in)
+652.8 R .96(ariable assignment error \(such as as-)-.25 F .706
+(signing to a readonly v)144 664.8 R .706(ariable\) occurs, or an in)
-.25 F -.25(va)-.4 G .706(lid \214le descriptor is supplied as the ar)
-.25 F .707(gument to)-.18 F F1<ad75>144 460.8 Q F0(.)A F1 -.18(re)108
-477.6 S(adonly).18 E F0([)2.5 E F1(\255aAf)A F0 2.5(][)C F1<ad70>-2.5 E
-F0 2.5(][)C F2(name)-2.5 E F0([=)A F2(wor)A(d)-.37 E F0 2.5(].)C(..])
--2.5 E .77(The gi)144 489.6 R -.15(ve)-.25 G(n).15 E F2(names)3.27 E F0
+.25 F .707(gument to)-.18 F F3<ad75>144 676.8 Q F0(.)A F3 -.18(re)108
+693.6 S(adonly).18 E F0([)2.5 E F3(\255aAf)A F0 2.5(][)C F3<ad70>-2.5 E
+F0 2.5(][)C F1(name)-2.5 E F0([=)A F1(wor)A(d)-.37 E F0 2.5(].)C(..])
+-2.5 E .77(The gi)144 705.6 R -.15(ve)-.25 G(n).15 E F1(names)3.27 E F0
.77(are mark)3.27 F .77(ed readonly; the v)-.1 F .77(alues of these)-.25
-F F2(names)3.63 E F0 .77(may not be changed by subse-)3.54 F 1.096
-(quent assignment.)144 501.6 R 1.096(If the)6.096 F F1<ad66>3.596 E F0
-1.097(option is supplied, the functions corresponding to the)3.596 F F2
-(names)3.597 E F0 1.097(are so)3.597 F(mark)144 513.6 Q 3.334(ed. The)
--.1 F F1<ad61>3.334 E F0 .834(option restricts the v)3.334 F .834
-(ariables to inde)-.25 F -.15(xe)-.15 G 3.334(da).15 G .834(rrays; the)
--3.334 F F1<ad41>3.334 E F0 .834(option restricts the v)3.334 F(ari-)
--.25 E .776(ables to associati)144 525.6 R 1.076 -.15(ve a)-.25 H 3.276
-(rrays. If).15 F .777(both options are supplied,)3.276 F F1<ad41>3.277 E
-F0(tak)3.277 E .777(es precedence.)-.1 F .777(If no)5.777 F F2(name)
-3.637 E F0(ar)3.457 E(gu-)-.18 E .522(ments are gi)144 537.6 R -.15(ve)
--.25 G .521(n, or if the).15 F F1<ad70>3.021 E F0 .521
-(option is supplied, a list of all readonly names is printed.)3.021 F
-.521(The other)5.521 F .295(options may be used to restrict the output \
-to a subset of the set of readonly names.)144 549.6 R(The)5.296 E F1
-<ad70>2.796 E F0(option)2.796 E .786
-(causes output to be displayed in a format that may be reused as input.)
-144 561.6 R .786(If a v)5.786 F .785(ariable name is fol-)-.25 F(lo)144
-573.6 Q .717(wed by =)-.25 F F2(wor)A(d)-.37 E F0 3.218(,t)C .718(he v)
--3.218 F .718(alue of the v)-.25 F .718(ariable is set to)-.25 F F2(wor)
-3.218 E(d)-.37 E F0 5.718(.T)C .718(he return status is 0 unless an in)
--5.718 F -.25(va)-.4 G(lid).25 E .26(option is encountered, one of the)
-144 585.6 R F2(names)3.12 E F0 .26(is not a v)3.03 F .26(alid shell v)
--.25 F .26(ariable name, or)-.25 F F1<ad66>2.76 E F0 .26
-(is supplied with a)2.76 F F2(name)144.36 597.6 Q F0
-(that is not a function.)2.68 E F1 -.18(re)108 614.4 S(tur).18 E(n)-.15
-E F0([)2.5 E F2(n)A F0(])A .02(Causes a function to stop e)144 626.4 R
+F F1(names)3.63 E F0 .77(may not be changed by subse-)3.54 F 1.096
+(quent assignment.)144 717.6 R 1.096(If the)6.096 F F3<ad66>3.596 E F0
+1.097(option is supplied, the functions corresponding to the)3.596 F F1
+(names)3.597 E F0 1.097(are so)3.597 F(mark)144 729.6 Q 4.903(ed. The)
+-.1 F F3<ad61>4.903 E F0 2.403(option restricts the v)4.903 F 2.403
+(ariables to inde)-.25 F -.15(xe)-.15 G 4.903(da).15 G 2.403(rrays; the)
+-4.903 F F3<ad41>4.903 E F0 2.402(option restricts the)4.903 F
+(GNU Bash 5.2)72 768 Q(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E
+(14)185.545 E 0 Cg EP
+%%Page: 15 15
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
+E(UIL)-.1 E(TINS\(1\))-.92 E -.25(va)144 84 S .424(riables to associati)
+.25 F .724 -.15(ve a)-.25 H 2.924(rrays. If).15 F .425
+(both options are supplied,)2.924 F/F1 10/Times-Bold@0 SF<ad41>2.925 E
+F0(tak)2.925 E .425(es precedence.)-.1 F .425(If no)5.425 F/F2 10
+/Times-Italic@0 SF(name)3.285 E F0(ar)3.105 E(-)-.2 E 1.275
+(guments are gi)144 96 R -.15(ve)-.25 G 1.275(n, or if the).15 F F1
+<ad70>3.775 E F0 1.275
+(option is supplied, a list of all readonly names is printed.)3.775 F
+(The)6.275 E .559(other options may be used to restrict the output to a\
+ subset of the set of readonly names.)144 108 R(The)5.559 E F1<ad70>
+3.059 E F0 .201(option causes output to be displayed in a format that m\
+ay be reused as input.)144 120 R .2(If a v)5.2 F .2(ariable name is)-.25
+F(follo)144 132 Q .133(wed by =)-.25 F F2(wor)A(d)-.37 E F0 2.633(,t)C
+.133(he v)-2.633 F .133(alue of the v)-.25 F .133(ariable is set to)-.25
+F F2(wor)2.633 E(d)-.37 E F0 5.133(.T)C .133
+(he return status is 0 unless an in)-5.133 F -.25(va)-.4 G(lid).25 E .26
+(option is encountered, one of the)144 144 R F2(names)3.12 E F0 .26
+(is not a v)3.03 F .26(alid shell v)-.25 F .26(ariable name, or)-.25 F
+F1<ad66>2.76 E F0 .26(is supplied with a)2.76 F F2(name)144.36 156 Q F0
+(that is not a function.)2.68 E F1 -.18(re)108 172.8 S(tur).18 E(n)-.15
+E F0([)2.5 E F2(n)A F0(])A .02(Causes a function to stop e)144 184.8 R
-.15(xe)-.15 G .02(cuting and return the v).15 F .021
(alue speci\214ed by)-.25 F F2(n)2.881 E F0 .021(to its caller)2.761 F
5.021(.I)-.55 G(f)-5.021 E F2(n)2.881 E F0 .021(is omitted,)2.761 F .597
-(the return status is that of the last command e)144 638.4 R -.15(xe)
+(the return status is that of the last command e)144 196.8 R -.15(xe)
-.15 G .596(cuted in the function body).15 F 5.596(.I)-.65 G(f)-5.596 E
F1 -.18(re)3.096 G(tur).18 E(n)-.15 E F0 .596(is e)3.096 F -.15(xe)-.15
-G(cuted).15 E .267(by a trap handler)144 650.4 R 2.767(,t)-.4 G .267
+G(cuted).15 E .267(by a trap handler)144 208.8 R 2.767(,t)-.4 G .267
(he last command used to determine the status is the last command e)
-2.767 F -.15(xe)-.15 G .268(cuted be-).15 F .02(fore the trap handler)
-144 662.4 R 5.02(.I)-.55 G(f)-5.02 E F1 -.18(re)2.52 G(tur).18 E(n)-.15
+144 220.8 R 5.02(.I)-.55 G(f)-5.02 E F1 -.18(re)2.52 G(tur).18 E(n)-.15
E F0 .02(is e)2.52 F -.15(xe)-.15 G .02(cuted during a).15 F F1(DEB)2.52
E(UG)-.1 E F0 .02(trap, the last command used to deter)2.52 F(-)-.2 E
-.885(mine the status is the last command e)144 674.4 R -.15(xe)-.15 G
+.885(mine the status is the last command e)144 232.8 R -.15(xe)-.15 G
.886(cuted by the trap handler before).15 F F1 -.18(re)3.386 G(tur).18 E
(n)-.15 E F0 -.1(wa)3.386 G 3.386(si).1 G -1.9 -.4(nv o)-3.386 H -.1(ke)
-.4 G 3.386(d. If).1 F F1 -.18(re)144 686.4 S(tur).18 E(n)-.15 E F0 .628
+.4 G 3.386(d. If).1 F F1 -.18(re)144 244.8 S(tur).18 E(n)-.15 E F0 .628
(is used outside a function, b)3.128 F .628(ut during e)-.2 F -.15(xe)
-.15 G .628(cution of a script by the).15 F F1(.)3.127 E F0(\()5.627 E
F1(sour)A(ce)-.18 E F0 3.127(\)c)C .627(ommand, it)-3.127 F .588
-(causes the shell to stop e)144 698.4 R -.15(xe)-.15 G .588
+(causes the shell to stop e)144 256.8 R -.15(xe)-.15 G .588
(cuting that script and return either).15 F F2(n)3.448 E F0 .589
(or the e)3.329 F .589(xit status of the last com-)-.15 F .326(mand e)
-144 710.4 R -.15(xe)-.15 G .326(cuted within the script as the e).15 F
+144 268.8 R -.15(xe)-.15 G .326(cuted within the script as the e).15 F
.326(xit status of the script.)-.15 F(If)5.326 E F2(n)2.826 E F0 .325
-(is supplied, the return v)2.826 F .325(alue is)-.25 F 2.035
-(its least signi\214cant 8 bits.)144 722.4 R 2.035
-(The return status is non-zero if)7.035 F F1 -.18(re)4.536 G(tur).18 E
-(n)-.15 E F0 2.036(is supplied a non-numeric)4.536 F(GNU Bash 5.0)72 768
-Q(2004 Apr 20)149.565 E(14)198.725 E 0 Cg EP
-%%Page: 15 15
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
-(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E(ar)144 84 Q .706
-(gument, or is used outside a function and not during e)-.18 F -.15(xe)
--.15 G .705(cution of a script by).15 F/F1 10/Times-Bold@0 SF(.)3.205 E
-F0(or)4.038 E F1(sour)3.205 E(ce)-.18 E F0 5.705(.A)C -.15(ny)-5.705 G
-.365(command associated with the)144 96 R F1(RETURN)2.865 E F0 .365
-(trap is e)2.865 F -.15(xe)-.15 G .365(cuted before e).15 F -.15(xe)-.15
-G .366(cution resumes after the func-).15 F(tion or script.)144 108 Q F1
-(set)108 124.8 Q F0([)2.5 E F1(\255\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C
-F1<ad6f>-2.5 E/F2 10/Times-Italic@0 SF(option\255name)2.5 E F0 2.5(][)C
-F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1(set)108 136.8 Q F0([)2.5 E F1
-(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)-2.5 E F2(option\255name)2.5 E
-F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144 148.8 S .836
-(thout options, the name and v).4 F .835(alue of each shell v)-.25 F
-.835(ariable are displayed in a format that can be)-.25 F .784
-(reused as input for setting or resetting the currently-set v)144 160.8
-R 3.284(ariables. Read-only)-.25 F -.25(va)3.284 G .784
-(riables cannot be).25 F 2.947(reset. In)144 172.8 R F2 .447(posix mode)
-2.947 F F0 2.947(,o)C .447(nly shell v)-2.947 F .447
-(ariables are listed.)-.25 F .447
-(The output is sorted according to the current)5.447 F 3.53
-(locale. When)144 184.8 R 1.031(options are speci\214ed, the)3.53 F
-3.531(ys)-.15 G 1.031(et or unset shell attrib)-3.531 F 3.531(utes. An)
--.2 F 3.531(ya)-.15 G -.18(rg)-3.531 G 1.031(uments remaining).18 F .585
-(after option processing are treated as v)144 196.8 R .584
-(alues for the positional parameters and are assigned, in or)-.25 F(-)
--.2 E(der)144 208.8 Q 2.5(,t)-.4 G(o)-2.5 E F1($1)2.5 E F0(,)A F1($2)2.5
-E F0(,)A F1 2.5(... $)2.5 F F2(n)A F0 5(.O)C(ptions, if speci\214ed, ha)
--5 E .3 -.15(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144
-220.8 Q F0 1.377(Each v)184 220.8 R 1.377
+(is supplied, the return v)2.826 F .325(alue is)-.25 F .444
+(its least signi\214cant 8 bits.)144 280.8 R .444
+(The return status is non-zero if)5.444 F F1 -.18(re)2.945 G(tur).18 E
+(n)-.15 E F0 .445(is supplied a non-numeric ar)2.945 F(gu-)-.18 E .381
+(ment, or is used outside a function and not during e)144 292.8 R -.15
+(xe)-.15 G .381(cution of a script by).15 F F1(.)2.881 E F0(or)3.714 E
+F1(sour)2.881 E(ce)-.18 E F0 5.38(.A)C .68 -.15(ny c)-5.38 H(om-).15 E
+.749(mand associated with the)144 304.8 R F1(RETURN)3.249 E F0 .749
+(trap is e)3.249 F -.15(xe)-.15 G .749(cuted before e).15 F -.15(xe)-.15
+G .75(cution resumes after the function).15 F(or script.)144 316.8 Q F1
+(set)108 333.6 Q F0([)2.5 E F1(\255abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1
+<ad6f>-2.5 E F2(option\255name)2.5 E F0 2.5(][)C F1<adad>-2.5 E F0 2.5
+(][)C F1<ad>-2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E F1
+(set)108 345.6 Q F0([)2.5 E F1(+abefhkmnptuvxBCEHPT)A F0 2.5(][)C F1(+o)
+-2.5 E F2(option\255name)2.5 E F0 2.5(][)C F1<adad>-2.5 E F0 2.5(][)C F1
+<ad>-2.5 E F0 2.5(][)C F2(ar)-2.5 E(g)-.37 E F0(...])2.5 E -.4(Wi)144
+357.6 S .574(thout options, display the name and v).4 F .574
+(alue of each shell v)-.25 F .573
+(ariable in a format that can be reused)-.25 F .113
+(as input for setting or resetting the currently-set v)144 369.6 R 2.613
+(ariables. Read-only)-.25 F -.25(va)2.613 G .113
+(riables cannot be reset.).25 F(In)5.113 E F2 1.032(posix mode)144 381.6
+R F0 3.532(,o)C 1.032(nly shell v)-3.532 F 1.032(ariables are listed.)
+-.25 F 1.032(The output is sorted according to the current locale.)6.032
+F .58(When options are speci\214ed, the)144 393.6 R 3.081(ys)-.15 G .581
+(et or unset shell attrib)-3.081 F 3.081(utes. An)-.2 F 3.081(ya)-.15 G
+-.18(rg)-3.081 G .581(uments remaining after op-).18 F .161
+(tion processing are treated as v)144 405.6 R .161
+(alues for the positional parameters and are assigned, in order)-.25 F
+2.66(,t)-.4 G(o)-2.66 E F1($1)2.66 E F0(,)A F1($2)144 417.6 Q F0(,)A F1
+2.5(... $)2.5 F F2(n)A F0 5(.O)C(ptions, if speci\214ed, ha)-5 E .3 -.15
+(ve t)-.2 H(he follo).15 E(wing meanings:)-.25 E F1<ad61>144 429.6 Q F0
+1.377(Each v)184 429.6 R 1.377
(ariable or function that is created or modi\214ed is gi)-.25 F -.15(ve)
-.25 G 3.877(nt).15 G 1.377(he e)-3.877 F 1.378(xport attrib)-.15 F
-1.378(ute and)-.2 F(mark)184 232.8 Q(ed for e)-.1 E(xport to the en)-.15
-E(vironment of subsequent commands.)-.4 E F1<ad62>144 244.8 Q F0 .132
-(Report the status of terminated background jobs immediately)184 244.8 R
+1.378(ute and)-.2 F(mark)184 441.6 Q(ed for e)-.1 E(xport to the en)-.15
+E(vironment of subsequent commands.)-.4 E F1<ad62>144 453.6 Q F0 .132
+(Report the status of terminated background jobs immediately)184 453.6 R
2.632(,r)-.65 G .131(ather than before the ne)-2.632 F(xt)-.15 E
-(primary prompt.)184 256.8 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
--.25 H(nly when job control is enabled.).15 E F1<ad65>144 268.8 Q F0
-.087(Exit immediately if a)184 268.8 R F2(pipeline)2.587 E F0 .087
+(primary prompt.)184 465.6 Q(This is ef)5 E(fecti)-.25 E .3 -.15(ve o)
+-.25 H(nly when job control is enabled.).15 E F1<ad65>144 477.6 Q F0
+.087(Exit immediately if a)184 477.6 R F2(pipeline)2.587 E F0 .087
(\(which may consist of a single)2.587 F F2 .088(simple command)2.588 F
-F0 .088(\), a)B F2(list)2.588 E F0 2.588(,o)C(r)-2.588 E(a)184 280.8 Q
-F2 1.521(compound command)4.021 F F0(\(see)4.021 E/F3 9/Times-Bold@0 SF
-1.521(SHELL GRAMMAR)4.021 F F0(abo)3.771 E -.15(ve)-.15 G 1.521(\), e)
-.15 F 1.521(xits with a non-zero status.)-.15 F .079
-(The shell does not e)184 292.8 R .079(xit if the command that f)-.15 F
-.08(ails is part of the command list immediately)-.1 F(follo)184 304.8 Q
-1.655(wing a)-.25 F F1(while)4.155 E F0(or)4.155 E F1(until)4.155 E F0
--.1(ke)4.155 G(yw)-.05 E 1.655(ord, part of the test follo)-.1 F 1.654
-(wing the)-.25 F F1(if)4.154 E F0(or)4.154 E F1(elif)4.154 E F0(reserv)
-4.154 E(ed)-.15 E -.1(wo)184 316.8 S .581(rds, part of an).1 F 3.081(yc)
--.15 G .581(ommand e)-3.081 F -.15(xe)-.15 G .581(cuted in a).15 F F1
-(&&)3.081 E F0(or)3.081 E F1(||)3.081 E F0 .582(list e)3.082 F .582
-(xcept the command follo)-.15 F(wing)-.25 E .918(the \214nal)184 328.8 R
-F1(&&)3.418 E F0(or)3.418 E F1(||)3.418 E F0 3.418(,a)C 1.218 -.15(ny c)
--3.418 H .918(ommand in a pipeline b).15 F .917
-(ut the last, or if the command')-.2 F 3.417(sr)-.55 G(eturn)-3.417 E
--.25(va)184 340.8 S .66(lue is being in).25 F -.15(ve)-.4 G .66
-(rted with).15 F F1(!)3.16 E F0 5.661(.I)C 3.161(fac)-5.661 G .661
-(ompound command other than a subshell returns a)-3.161 F 1.113
-(non-zero status because a command f)184 352.8 R 1.112(ailed while)-.1 F
-F1<ad65>3.612 E F0 -.1(wa)3.612 G 3.612(sb).1 G 1.112
-(eing ignored, the shell does)-3.612 F .177(not e)184 364.8 R 2.677
-(xit. A)-.15 F .177(trap on)2.677 F F1(ERR)2.677 E F0 2.677(,i)C 2.678
-(fs)-2.677 G .178(et, is e)-2.678 F -.15(xe)-.15 G .178
-(cuted before the shell e).15 F 2.678(xits. This)-.15 F .178
-(option applies to)2.678 F .618(the shell en)184 376.8 R .617
-(vironment and each subshell en)-.4 F .617(vironment separately \(see)
--.4 F F3 .617(COMMAND EXE-)3.117 F .642(CUTION ENVIR)184 388.8 R(ONMENT)
--.27 E F0(abo)2.893 E -.15(ve)-.15 G .643
-(\), and may cause subshells to e).15 F .643(xit before e)-.15 F -.15
-(xe)-.15 G .643(cuting all).15 F(the commands in the subshell.)184 400.8
-Q .999(If a compound command or shell function e)184 418.8 R -.15(xe)
--.15 G .999(cutes in a conte).15 F .998(xt where)-.15 F F1<ad65>3.498 E
-F0 .998(is being ig-)3.498 F .089(nored, none of the commands e)184
-430.8 R -.15(xe)-.15 G .089
-(cuted within the compound command or function body).15 F .503
-(will be af)184 442.8 R .503(fected by the)-.25 F F1<ad65>3.002 E F0
-.502(setting, e)3.002 F -.15(ve)-.25 G 3.002(ni).15 G(f)-3.002 E F1
-<ad65>3.002 E F0 .502(is set and a command returns a f)3.002 F .502
-(ailure sta-)-.1 F 4.183(tus. If)184 454.8 R 4.183(ac)4.183 G 1.683
-(ompound command or shell function sets)-4.183 F F1<ad65>4.184 E F0
+F0 .088(\), a)B F2(list)2.588 E F0 2.588(,o)C(r)-2.588 E(a)184 489.6 Q
+F2 .86(compound command)3.36 F F0(\(see)3.36 E/F3 9/Times-Bold@0 SF .86
+(SHELL GRAMMAR)3.36 F F0(in)3.11 E F2(bash\(1\))3.36 E F0 .86(\), e)B
+.86(xits with a non-zero sta-)-.15 F 2.852(tus. The)184 501.6 R .352
+(shell does not e)2.852 F .352(xit if the command that f)-.15 F .353
+(ails is part of the command list imme-)-.1 F 1.108(diately follo)184
+513.6 R 1.108(wing a)-.25 F F1(while)3.608 E F0(or)3.608 E F1(until)
+3.608 E F0 -.1(ke)3.608 G(yw)-.05 E 1.107(ord, part of the test follo)
+-.1 F 1.107(wing the)-.25 F F1(if)3.607 E F0(or)3.607 E F1(elif)3.607 E
+F0(re-)3.607 E(serv)184 525.6 Q .279(ed w)-.15 F .279(ords, part of an)
+-.1 F 2.779(yc)-.15 G .279(ommand e)-2.779 F -.15(xe)-.15 G .279
+(cuted in a).15 F F1(&&)2.779 E F0(or)2.779 E F1(||)2.78 E F0 .28
+(list e)2.78 F .28(xcept the command fol-)-.15 F(lo)184 537.6 Q .703
+(wing the \214nal)-.25 F F1(&&)3.203 E F0(or)3.203 E F1(||)3.203 E F0
+3.203(,a)C 1.003 -.15(ny c)-3.203 H .703(ommand in a pipeline b).15 F
+.703(ut the last, or if the command')-.2 F(s)-.55 E .476(return v)184
+549.6 R .476(alue is being in)-.25 F -.15(ve)-.4 G .476(rted with).15 F
+F1(!)2.976 E F0 5.476(.I)C 2.976(fac)-5.476 G .476
+(ompound command other than a subshell re-)-2.976 F .418
+(turns a non-zero status because a command f)184 561.6 R .418
+(ailed while)-.1 F F1<ad65>2.918 E F0 -.1(wa)2.918 G 2.918(sb).1 G .417
+(eing ignored, the shell)-2.918 F .472(does not e)184 573.6 R 2.972
+(xit. A)-.15 F .472(trap on)2.972 F F1(ERR)2.972 E F0 2.972(,i)C 2.972
+(fs)-2.972 G .472(et, is e)-2.972 F -.15(xe)-.15 G .473
+(cuted before the shell e).15 F 2.973(xits. This)-.15 F .473(option ap-)
+2.973 F 2.114(plies to the shell en)184 585.6 R 2.113
+(vironment and each subshell en)-.4 F 2.113(vironment separately \(see)
+-.4 F F3(COM-)4.613 E .675(MAND EXECUTION ENVIR)184 597.6 R(ONMENT)-.27
+E F0(in)2.925 E F2(bash\(1\))3.175 E F0 .675
+(\), and may cause subshells to e)B .676(xit be-)-.15 F(fore e)184 609.6
+Q -.15(xe)-.15 G(cuting all the commands in the subshell.).15 E .999
+(If a compound command or shell function e)184 627.6 R -.15(xe)-.15 G
+.999(cutes in a conte).15 F .998(xt where)-.15 F F1<ad65>3.498 E F0 .998
+(is being ig-)3.498 F .089(nored, none of the commands e)184 639.6 R
+-.15(xe)-.15 G .089(cuted within the compound command or function body)
+.15 F .503(will be af)184 651.6 R .503(fected by the)-.25 F F1<ad65>
+3.002 E F0 .502(setting, e)3.002 F -.15(ve)-.25 G 3.002(ni).15 G(f)
+-3.002 E F1<ad65>3.002 E F0 .502(is set and a command returns a f)3.002
+F .502(ailure sta-)-.1 F 4.183(tus. If)184 663.6 R 4.183(ac)4.183 G
+1.683(ompound command or shell function sets)-4.183 F F1<ad65>4.184 E F0
1.684(while e)4.184 F -.15(xe)-.15 G 1.684(cuting in a conte).15 F(xt)
--.15 E(where)184 466.8 Q F1<ad65>3.154 E F0 .654
+-.15 E(where)184 675.6 Q F1<ad65>3.154 E F0 .654
(is ignored, that setting will not ha)3.154 F .953 -.15(ve a)-.2 H .953
-.15(ny e).15 H -.25(ff).15 G .653(ect until the compound command).25 F
-(or the command containing the function call completes.)184 478.8 Q F1
-<ad66>144 490.8 Q F0(Disable pathname e)184 490.8 Q(xpansion.)-.15 E F1
-<ad68>144 502.8 Q F0 .988(Remember the location of commands as the)184
-502.8 R 3.488(ya)-.15 G .988(re look)-3.488 F .988(ed up for e)-.1 F
+(or the command containing the function call completes.)184 687.6 Q F1
+<ad66>144 699.6 Q F0(Disable pathname e)184 699.6 Q(xpansion.)-.15 E F1
+<ad68>144 711.6 Q F0 .988(Remember the location of commands as the)184
+711.6 R 3.488(ya)-.15 G .988(re look)-3.488 F .988(ed up for e)-.1 F
-.15(xe)-.15 G 3.488(cution. This).15 F .988(is en-)3.488 F
-(abled by def)184 514.8 Q(ault.)-.1 E F1<ad6b>144 526.8 Q F0 .514
-(All ar)184 526.8 R .514
-(guments in the form of assignment statements are placed in the en)-.18
-F .513(vironment for a)-.4 F
-(command, not just those that precede the command name.)184 538.8 Q F1
-<ad6d>144 550.8 Q F0 .148(Monitor mode.)184 550.8 R .148
-(Job control is enabled.)5.148 F .149(This option is on by def)5.148 F
-.149(ault for interacti)-.1 F .449 -.15(ve s)-.25 H(hells).15 E .651
-(on systems that support it \(see)184 562.8 R F3 .651(JOB CONTR)3.151 F
-(OL)-.27 E F0(abo)2.901 E -.15(ve)-.15 G 3.151(\). All).15 F .65
-(processes run in a separate)3.151 F .678(process group.)184 574.8 R
-.679(When a background job completes, the shell prints a line containin\
-g its)5.678 F -.15(ex)184 586.8 S(it status.).15 E F1<ad6e>144 598.8 Q
-F0 .653(Read commands b)184 598.8 R .653(ut do not e)-.2 F -.15(xe)-.15
-G .653(cute them.).15 F .652
-(This may be used to check a shell script for)5.653 F(syntax errors.)184
-610.8 Q(This is ignored by interacti)5 E .3 -.15(ve s)-.25 H(hells.).15
-E F1<ad6f>144 622.8 Q F2(option\255name)2.5 E F0(The)184 634.8 Q F2
-(option\255name)2.5 E F0(can be one of the follo)2.5 E(wing:)-.25 E F1
-(allexport)184 646.8 Q F0(Same as)224 658.8 Q F1<ad61>2.5 E F0(.)A F1
-(braceexpand)184 670.8 Q F0(Same as)224 682.8 Q F1<ad42>2.5 E F0(.)A F1
-(emacs)184 694.8 Q F0 .089
-(Use an emacs-style command line editing interf)224 694.8 R 2.589
-(ace. This)-.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
-(when the shell is interacti)224 706.8 R -.15(ve)-.25 G 3.45(,u).15 G
-.95(nless the shell is started with the)-3.45 F F1(\255\255noediting)
-3.45 E F0 2.5(option. This)224 718.8 R(also af)2.5 E
-(fects the editing interf)-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G
-(ad \255e).18 E F0(.)A(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(15)
-198.725 E 0 Cg EP
+(abled by def)184 723.6 Q(ault.)-.1 E(GNU Bash 5.2)72 768 Q(2021 No)
+136.385 E -.15(ve)-.15 G(mber 22).15 E(15)185.545 E 0 Cg EP
%%Page: 16 16
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(err)184 84 Q(exit)
--.18 E F0(Same as)224 84 Q F1<ad65>2.5 E F0(.)A F1(errtrace)184 96 Q F0
-(Same as)224 96 Q F1<ad45>2.5 E F0(.)A F1(functrace)184 108 Q F0
-(Same as)224 120 Q F1<ad54>2.5 E F0(.)A F1(hashall)184 132 Q F0(Same as)
-224 132 Q F1<ad68>2.5 E F0(.)A F1(histexpand)184 144 Q F0(Same as)224
-156 Q F1<ad48>2.5 E F0(.)A F1(history)184 168 Q F0 .586
-(Enable command history)224 168 R 3.087(,a)-.65 G 3.087(sd)-3.087 G .587
-(escribed abo)-3.087 F .887 -.15(ve u)-.15 H(nder).15 E/F2 9
-/Times-Bold@0 SF(HIST)3.087 E(OR)-.162 E(Y)-.315 E/F3 9/Times-Roman@0 SF
-(.)A F0 .587(This option is)5.087 F(on by def)224 180 Q
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF<ad6b>144 84 Q F0 .514
+(All ar)184 84 R .514
+(guments in the form of assignment statements are placed in the en)-.18
+F .513(vironment for a)-.4 F
+(command, not just those that precede the command name.)184 96 Q F1
+<ad6d>144 108 Q F0 .148(Monitor mode.)184 108 R .148
+(Job control is enabled.)5.148 F .149(This option is on by def)5.148 F
+.149(ault for interacti)-.1 F .449 -.15(ve s)-.25 H(hells).15 E .235
+(on systems that support it \(see)184 120 R/F2 9/Times-Bold@0 SF .235
+(JOB CONTR)2.735 F(OL)-.27 E F0(in)2.485 E/F3 10/Times-Italic@0 SF
+(bash\(1\))2.735 E F0 2.735(\). All)B .234(processes run in a sepa-)
+2.735 F .252(rate process group.)184 132 R .252
+(When a background job completes, the shell prints a line containing)
+5.252 F(its e)184 144 Q(xit status.)-.15 E F1<ad6e>144 156 Q F0 .653
+(Read commands b)184 156 R .653(ut do not e)-.2 F -.15(xe)-.15 G .653
+(cute them.).15 F .652(This may be used to check a shell script for)
+5.653 F(syntax errors.)184 168 Q(This is ignored by interacti)5 E .3
+-.15(ve s)-.25 H(hells.).15 E F1<ad6f>144 180 Q F3(option\255name)2.5 E
+F0(The)184 192 Q F3(option\255name)2.5 E F0(can be one of the follo)2.5
+E(wing:)-.25 E F1(allexport)184 204 Q F0(Same as)224 216 Q F1<ad61>2.5 E
+F0(.)A F1(braceexpand)184 228 Q F0(Same as)224 240 Q F1<ad42>2.5 E F0(.)
+A F1(emacs)184 252 Q F0 .089
+(Use an emacs-style command line editing interf)224 252 R 2.589
+(ace. This)-.1 F .089(is enabled by def)2.589 F(ault)-.1 E .95
+(when the shell is interacti)224 264 R -.15(ve)-.25 G 3.45(,u).15 G .95
+(nless the shell is started with the)-3.45 F F1(\255\255noediting)3.45 E
+F0 2.5(option. This)224 276 R(also af)2.5 E(fects the editing interf)
+-.25 E(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1(err)
+184 288 Q(exit)-.18 E F0(Same as)224 288 Q F1<ad65>2.5 E F0(.)A F1
+(errtrace)184 300 Q F0(Same as)224 300 Q F1<ad45>2.5 E F0(.)A F1
+(functrace)184 312 Q F0(Same as)224 324 Q F1<ad54>2.5 E F0(.)A F1
+(hashall)184 336 Q F0(Same as)224 336 Q F1<ad68>2.5 E F0(.)A F1
+(histexpand)184 348 Q F0(Same as)224 360 Q F1<ad48>2.5 E F0(.)A F1
+(history)184 372 Q F0 1.001(Enable command history)224 372 R 3.502(,a)
+-.65 G 3.502(sd)-3.502 G 1.002(escribed in)-3.502 F F3(bash\(1\))3.502 E
+F0(under)3.502 E F2(HIST)3.502 E(OR)-.162 E(Y)-.315 E/F4 9/Times-Roman@0
+SF(.)A F0 1.002(This op-)5.502 F(tion is on by def)224 384 Q
(ault in interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1(ignor)184
-192 Q(eeof)-.18 E F0 1.657(The ef)224 204 R 1.657
-(fect is as if the shell command)-.25 F/F4 10/Courier@0 SF(IGNOREEOF=10)
+396 Q(eeof)-.18 E F0 1.657(The ef)224 408 R 1.657
+(fect is as if the shell command)-.25 F/F5 10/Courier@0 SF(IGNOREEOF=10)
4.156 E F0 1.656(had been e)4.156 F -.15(xe)-.15 G(cuted).15 E(\(see)224
-216 Q F1(Shell V)2.5 E(ariables)-.92 E F0(abo)2.5 E -.15(ve)-.15 G(\).)
-.15 E F1 -.1(ke)184 228 S(yw).1 E(ord)-.1 E F0(Same as)224 240 Q F1
-<ad6b>2.5 E F0(.)A F1(monitor)184 252 Q F0(Same as)224 252 Q F1<ad6d>2.5
-E F0(.)A F1(noclob)184 264 Q(ber)-.1 E F0(Same as)224 276 Q F1<ad43>2.5
-E F0(.)A F1(noexec)184 288 Q F0(Same as)224 288 Q F1<ad6e>2.5 E F0(.)A
-F1(noglob)184 300 Q F0(Same as)224 300 Q F1<ad66>2.5 E F0(.)A F1(nolog)
-184 312 Q F0(Currently ignored.)224 312 Q F1(notify)184 324 Q F0
-(Same as)224 324 Q F1<ad62>2.5 E F0(.)A F1(nounset)184 336 Q F0(Same as)
-224 336 Q F1<ad75>2.5 E F0(.)A F1(onecmd)184 348 Q F0(Same as)224 348 Q
-F1<ad74>2.5 E F0(.)A F1(ph)184 360 Q(ysical)-.15 E F0(Same as)224 360 Q
-F1<ad50>2.5 E F0(.)A F1(pipefail)184 372 Q F0 1.029
-(If set, the return v)224 372 R 1.029(alue of a pipeline is the v)-.25 F
-1.03(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 384
+420 Q F1(Shell V)2.5 E(ariables)-.92 E F0(in)2.5 E F3(bash\(1\))2.5 E F0
+(\).)A F1 -.1(ke)184 432 S(yw).1 E(ord)-.1 E F0(Same as)224 444 Q F1
+<ad6b>2.5 E F0(.)A F1(monitor)184 456 Q F0(Same as)224 456 Q F1<ad6d>2.5
+E F0(.)A F1(noclob)184 468 Q(ber)-.1 E F0(Same as)224 480 Q F1<ad43>2.5
+E F0(.)A F1(noexec)184 492 Q F0(Same as)224 492 Q F1<ad6e>2.5 E F0(.)A
+F1(noglob)184 504 Q F0(Same as)224 504 Q F1<ad66>2.5 E F0(.)A F1(nolog)
+184 516 Q F0(Currently ignored.)224 516 Q F1(notify)184 528 Q F0
+(Same as)224 528 Q F1<ad62>2.5 E F0(.)A F1(nounset)184 540 Q F0(Same as)
+224 540 Q F1<ad75>2.5 E F0(.)A F1(onecmd)184 552 Q F0(Same as)224 552 Q
+F1<ad74>2.5 E F0(.)A F1(ph)184 564 Q(ysical)-.15 E F0(Same as)224 564 Q
+F1<ad50>2.5 E F0(.)A F1(pipefail)184 576 Q F0 1.029
+(If set, the return v)224 576 R 1.029(alue of a pipeline is the v)-.25 F
+1.03(alue of the last \(rightmost\) com-)-.25 F 1.137(mand to e)224 588
R 1.136
(xit with a non-zero status, or zero if all commands in the pipeline)
--.15 F -.15(ex)224 396 S(it successfully).15 E 5(.T)-.65 G
-(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 408 Q F0
-2.09(Change the beha)224 408 R 2.091(vior of)-.2 F F1(bash)4.591 E F0
+-.15 F -.15(ex)224 600 S(it successfully).15 E 5(.T)-.65 G
+(his option is disabled by def)-5 E(ault.)-.1 E F1(posix)184 612 Q F0
+2.09(Change the beha)224 612 R 2.091(vior of)-.2 F F1(bash)4.591 E F0
2.091(where the def)4.591 F 2.091(ault operation dif)-.1 F 2.091
-(fers from the)-.25 F 1.212(POSIX standard to match the standard \()224
-420 R/F5 10/Times-Italic@0 SF 1.212(posix mode)B F0 3.712(\). See)B F2
-1.212(SEE ALSO)3.712 F F0(belo)3.462 E(w)-.25 E .954
-(for a reference to a document that details ho)224 432 R 3.455(wp)-.25 G
-.955(osix mode af)-3.455 F .955(fects bash')-.25 F 3.455(sb)-.55 G(e-)
--3.455 E(ha)224 444 Q(vior)-.2 E(.)-.55 E F1(pri)184 456 Q(vileged)-.1 E
-F0(Same as)224 468 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 480 S(rbose).1 E
-F0(Same as)224 480 Q F1<ad76>2.5 E F0(.)A F1(vi)184 492 Q F0 .209
-(Use a vi-style command line editing interf)224 492 R 2.709(ace. This)
+(fers from the)-.25 F 2.704(POSIX standard to match the standard \()224
+624 R F3 2.704(posix mode)B F0 5.204(\). See)B F2 2.704(SEE ALSO)5.204 F
+F0(in)4.953 E F3(bash\(1\))224 636 Q F0 1.844
+(for a reference to a document that details ho)4.344 F 4.344(wp)-.25 G
+1.845(osix mode af)-4.344 F(fects)-.25 E(bash')224 648 Q 2.5(sb)-.55 G
+(eha)-2.5 E(vior)-.2 E(.)-.55 E F1(pri)184 660 Q(vileged)-.1 E F0
+(Same as)224 672 Q F1<ad70>2.5 E F0(.)A F1 -.1(ve)184 684 S(rbose).1 E
+F0(Same as)224 684 Q F1<ad76>2.5 E F0(.)A F1(vi)184 696 Q F0 .209
+(Use a vi-style command line editing interf)224 696 R 2.709(ace. This)
-.1 F .209(also af)2.709 F .209(fects the editing in-)-.25 F(terf)224
-504 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A F1
-(xtrace)184 516 Q F0(Same as)224 516 Q F1<ad78>2.5 E F0(.)A(If)184 534 Q
-F1<ad6f>3.052 E F0 .552(is supplied with no)3.052 F F5(option\255name)
+708 Q(ace used for)-.1 E F1 -.18(re)2.5 G(ad \255e).18 E F0(.)A
+(GNU Bash 5.2)72 768 Q(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E
+(16)185.545 E 0 Cg EP
+%%Page: 17 17
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(xtrace)184 84 Q F0
+(Same as)224 84 Q F1<ad78>2.5 E F0(.)A(If)184 102 Q F1<ad6f>3.052 E F0
+.552(is supplied with no)3.052 F/F2 10/Times-Italic@0 SF(option\255name)
3.053 E F0 3.053(,t)C .553(he v)-3.053 F .553
(alues of the current options are printed.)-.25 F(If)5.553 E F1(+o)184
-546 Q F0 1.072(is supplied with no)3.572 F F5(option\255name)3.572 E F0
+114 Q F0 1.072(is supplied with no)3.572 F F2(option\255name)3.572 E F0
3.572(,a)C 1.071(series of)-.001 F F1(set)3.571 E F0 1.071
(commands to recreate the current)3.571 F
-(option settings is displayed on the standard output.)184 558 Q F1<ad70>
-144 570 Q F0 -.45(Tu)184 570 S 1.071(rn on).45 F F5(privile)4.821 E -.1
+(option settings is displayed on the standard output.)184 126 Q F1<ad70>
+144 138 Q F0 -.45(Tu)184 138 S 1.071(rn on).45 F F2(privile)4.821 E -.1
(ge)-.4 G(d).1 E F0 3.572(mode. In)4.341 F 1.072(this mode, the)3.572 F
-F2($ENV)3.572 E F0(and)3.322 E F2($B)3.572 E(ASH_ENV)-.27 E F0 1.072
-(\214les are not pro-)3.322 F 1.501
-(cessed, shell functions are not inherited from the en)184 582 R 1.5
-(vironment, and the)-.4 F F2(SHELLOPTS)4 E F3(,)A F2 -.27(BA)184 594 S
-(SHOPTS).27 E F3(,)A F2(CDP)2.774 E -.855(AT)-.666 G(H).855 E F3(,)A F0
-(and)2.774 E F2(GLOBIGNORE)3.024 E F0 -.25(va)2.774 G .524
-(riables, if the).25 F 3.025(ya)-.15 G .525(ppear in the en)-3.025 F
-(vironment,)-.4 E .38(are ignored.)184 606 R .38
+/F3 9/Times-Bold@0 SF($ENV)3.572 E F0(and)3.322 E F3($B)3.572 E(ASH_ENV)
+-.27 E F0 1.072(\214les are not pro-)3.322 F 1.501
+(cessed, shell functions are not inherited from the en)184 150 R 1.5
+(vironment, and the)-.4 F F3(SHELLOPTS)4 E/F4 9/Times-Roman@0 SF(,)A F3
+-.27(BA)184 162 S(SHOPTS).27 E F4(,)A F3(CDP)2.774 E -.855(AT)-.666 G(H)
+.855 E F4(,)A F0(and)2.774 E F3(GLOBIGNORE)3.024 E F0 -.25(va)2.774 G
+.524(riables, if the).25 F 3.025(ya)-.15 G .525(ppear in the en)-3.025 F
+(vironment,)-.4 E .38(are ignored.)184 174 R .38
(If the shell is started with the ef)5.38 F(fecti)-.25 E .679 -.15(ve u)
-.25 H .379(ser \(group\) id not equal to the real).15 F .461
-(user \(group\) id, and the)184 618 R F1<ad70>2.961 E F0 .461
+(user \(group\) id, and the)184 186 R F1<ad70>2.961 E F0 .461
(option is not supplied, these actions are tak)2.961 F .462
-(en and the ef)-.1 F(fec-)-.25 E(ti)184 630 Q .695 -.15(ve u)-.25 H .395
+(en and the ef)-.1 F(fec-)-.25 E(ti)184 198 Q .695 -.15(ve u)-.25 H .395
(ser id is set to the real user id.).15 F .395(If the)5.395 F F1<ad70>
2.895 E F0 .394(option is supplied at startup, the ef)2.895 F(fecti)-.25
-E -.15(ve)-.25 G .386(user id is not reset.)184 642 R -.45(Tu)5.386 G
+E -.15(ve)-.25 G .386(user id is not reset.)184 210 R -.45(Tu)5.386 G
.386(rning this option of).45 F 2.886(fc)-.25 G .387(auses the ef)-2.886
F(fecti)-.25 E .687 -.15(ve u)-.25 H .387(ser and group ids to be).15 F
-(set to the real user and group ids.)184 654 Q F1<ad74>144 666 Q F0
-(Exit after reading and e)184 666 Q -.15(xe)-.15 G(cuting one command.)
-.15 E F1<ad75>144 678 Q F0 -.35(Tr)184 678 S .044(eat unset v).35 F .044
-(ariables and parameters other than the special parameters "@" and "*" \
-as an)-.25 F .182(error when performing parameter e)184 690 R 2.682
-(xpansion. If)-.15 F -.15(ex)2.682 G .183
-(pansion is attempted on an unset v).15 F(ari-)-.25 E .746
-(able or parameter)184 702 R 3.246(,t)-.4 G .746
-(he shell prints an error message, and, if not interacti)-3.246 F -.15
-(ve)-.25 G 3.246(,e).15 G .746(xits with a)-3.396 F(non-zero status.)184
-714 Q(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(16)198.725 E 0 Cg EP
-%%Page: 17 17
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
-(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF<ad76>144 84 Q F0
-(Print shell input lines as the)184 84 Q 2.5(ya)-.15 G(re read.)-2.5 E
-F1<ad78>144 96 Q F0 .315(After e)184 96 R .315(xpanding each)-.15 F/F2
-10/Times-Italic@0 SF .315(simple command)2.815 F F0(,)A F1 -.25(fo)2.815
-G(r).25 E F0(command,)2.815 E F1(case)2.815 E F0(command,)2.815 E F1
-(select)2.815 E F0(command,)2.815 E 1.236(or arithmetic)184 108 R F1
--.25(fo)3.736 G(r).25 E F0 1.236(command, display the e)3.736 F 1.236
-(xpanded v)-.15 F 1.236(alue of)-.25 F/F3 9/Times-Bold@0 SF(PS4)3.736 E
-/F4 9/Times-Roman@0 SF(,)A F0(follo)3.486 E 1.236(wed by the com-)-.25 F
-(mand and its e)184 120 Q(xpanded ar)-.15 E(guments or associated w)-.18
-E(ord list.)-.1 E F1<ad42>144 132 Q F0 1.205(The shell performs brace e)
-184 132 R 1.205(xpansion \(see)-.15 F F1 1.205(Brace Expansion)3.705 F
-F0(abo)3.705 E -.15(ve)-.15 G 3.706(\). This).15 F 1.206(is on by de-)
-3.706 F -.1(fa)184 144 S(ult.).1 E F1<ad43>144 156 Q F0 .214(If set,)184
-156 R F1(bash)2.714 E F0 .214(does not o)2.714 F -.15(ve)-.15 G .214
-(rwrite an e).15 F .214(xisting \214le with the)-.15 F F1(>)2.714 E F0
-(,)A F1(>&)2.714 E F0 2.713(,a)C(nd)-2.713 E F1(<>)2.713 E F0 .213
-(redirection opera-)2.713 F 3.053(tors. This)184 168 R .553(may be o)
-3.053 F -.15(ve)-.15 G .553
+(set to the real user and group ids.)184 222 Q F1<ad72>144 234 Q F0
+(Enable restricted shell mode.)184 234 Q
+(This option cannot be unset once it has been set.)5 E F1<ad74>144 246 Q
+F0(Exit after reading and e)184 246 Q -.15(xe)-.15 G
+(cuting one command.).15 E F1<ad75>144 258 Q F0 -.35(Tr)184 258 S .774
+(eat unset v).35 F .773(ariables and parameters other than the special \
+parameters "@" and "*", or)-.25 F .459(array v)184 270 R .459(ariables \
+subscripted with "@" or "*", as an error when performing parameter e)
+-.25 F(x-)-.15 E 2.891(pansion. If)184 282 R -.15(ex)2.891 G .391
+(pansion is attempted on an unset v).15 F .391(ariable or parameter)-.25
+F 2.89(,t)-.4 G .39(he shell prints an)-2.89 F
+(error message, and, if not interacti)184 294 Q -.15(ve)-.25 G 2.5(,e)
+.15 G(xits with a non-zero status.)-2.65 E F1<ad76>144 306 Q F0
+(Print shell input lines as the)184 306 Q 2.5(ya)-.15 G(re read.)-2.5 E
+F1<ad78>144 318 Q F0 .315(After e)184 318 R .315(xpanding each)-.15 F F2
+.315(simple command)2.815 F F0(,)A F1 -.25(fo)2.815 G(r).25 E F0
+(command,)2.815 E F1(case)2.815 E F0(command,)2.815 E F1(select)2.815 E
+F0(command,)2.815 E 1.236(or arithmetic)184 330 R F1 -.25(fo)3.736 G(r)
+.25 E F0 1.236(command, display the e)3.736 F 1.236(xpanded v)-.15 F
+1.236(alue of)-.25 F F3(PS4)3.736 E F4(,)A F0(follo)3.486 E 1.236
+(wed by the com-)-.25 F(mand and its e)184 342 Q(xpanded ar)-.15 E
+(guments or associated w)-.18 E(ord list.)-.1 E F1<ad42>144 354 Q F0
+1.053(The shell performs brace e)184 354 R 1.053(xpansion \(see)-.15 F
+F1 1.053(Brace Expansion)3.553 F F0(in)3.553 E F2(bash\(1\))3.553 E F0
+3.553(\). This)B 1.053(is on by)3.553 F(def)184 366 Q(ault.)-.1 E F1
+<ad43>144 378 Q F0 .214(If set,)184 378 R F1(bash)2.714 E F0 .214
+(does not o)2.714 F -.15(ve)-.15 G .214(rwrite an e).15 F .214
+(xisting \214le with the)-.15 F F1(>)2.714 E F0(,)A F1(>&)2.714 E F0
+2.713(,a)C(nd)-2.713 E F1(<>)2.713 E F0 .213(redirection opera-)2.713 F
+3.053(tors. This)184 390 R .553(may be o)3.053 F -.15(ve)-.15 G .553
(rridden when creating output \214les by using the redirection opera-)
-.15 F(tor)184 180 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
-<ad45>144 192 Q F0 .104(If set, an)184 192 R 2.604(yt)-.15 G .104
+.15 F(tor)184 402 Q F1(>|)2.5 E F0(instead of)2.5 E F1(>)2.5 E F0(.)A F1
+<ad45>144 414 Q F0 .104(If set, an)184 414 R 2.604(yt)-.15 G .104
(rap on)-2.604 F F1(ERR)2.604 E F0 .103
(is inherited by shell functions, command substitutions, and com-)2.604
-F .838(mands e)184 204 R -.15(xe)-.15 G .838(cuted in a subshell en).15
+F .838(mands e)184 426 R -.15(xe)-.15 G .838(cuted in a subshell en).15
F 3.338(vironment. The)-.4 F F1(ERR)3.338 E F0 .839
-(trap is normally not inherited in)3.339 F(such cases.)184 216 Q F1
-<ad48>144 228 Q F0(Enable)184 228 Q F1(!)3.032 E F0 .532
+(trap is normally not inherited in)3.339 F(such cases.)184 438 Q F1
+<ad48>144 450 Q F0(Enable)184 450 Q F1(!)3.032 E F0 .532
(style history substitution.)5.532 F .531(This option is on by def)5.532
-F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 240 Q -.15
-(ve)-.25 G(.).15 E F1<ad50>144 252 Q F0 .959
-(If set, the shell does not resolv)184 252 R 3.459(es)-.15 G .959
+F .531(ault when the shell is inter)-.1 F(-)-.2 E(acti)184 462 Q -.15
+(ve)-.25 G(.).15 E F1<ad50>144 474 Q F0 .959
+(If set, the shell does not resolv)184 474 R 3.459(es)-.15 G .959
(ymbolic links when e)-3.459 F -.15(xe)-.15 G .96
(cuting commands such as).15 F F1(cd)3.46 E F0 1.453
-(that change the current w)184 264 R 1.453(orking directory)-.1 F 6.453
+(that change the current w)184 486 R 1.453(orking directory)-.1 F 6.453
(.I)-.65 G 3.952(tu)-6.453 G 1.452(ses the ph)-3.952 F 1.452
-(ysical directory structure in-)-.05 F 3.334(stead. By)184 276 R(def)
+(ysical directory structure in-)-.05 F 3.334(stead. By)184 498 R(def)
3.334 E(ault,)-.1 E F1(bash)3.334 E F0(follo)3.334 E .834
(ws the logical chain of directories when performing com-)-.25 F
-(mands which change the current directory)184 288 Q(.)-.65 E F1<ad54>144
-300 Q F0 .89(If set, an)184 300 R 3.39(yt)-.15 G .89(raps on)-3.39 F F1
+(mands which change the current directory)184 510 Q(.)-.65 E F1<ad54>144
+522 Q F0 .89(If set, an)184 522 R 3.39(yt)-.15 G .89(raps on)-3.39 F F1
(DEB)3.39 E(UG)-.1 E F0(and)3.39 E F1(RETURN)3.39 E F0 .89
(are inherited by shell functions, command)3.39 F 1.932
-(substitutions, and commands e)184 312 R -.15(xe)-.15 G 1.932
+(substitutions, and commands e)184 534 R -.15(xe)-.15 G 1.932
(cuted in a subshell en).15 F 4.432(vironment. The)-.4 F F1(DEB)4.432 E
-(UG)-.1 E F0(and)4.432 E F1(RETURN)184 324 Q F0
-(traps are normally not inherited in such cases.)2.5 E F1<adad>144 336 Q
-F0 .401(If no ar)184 336 R .401(guments follo)-.18 F 2.901(wt)-.25 G
+(UG)-.1 E F0(and)4.432 E F1(RETURN)184 546 Q F0
+(traps are normally not inherited in such cases.)2.5 E F1<adad>144 558 Q
+F0 .401(If no ar)184 558 R .401(guments follo)-.18 F 2.901(wt)-.25 G
.401(his option, then the positional parameters are unset.)-2.901 F
-(Otherwise,)5.4 E(the positional parameters are set to the)184 348 Q F2
+(Otherwise,)5.4 E(the positional parameters are set to the)184 570 Q F2
(ar)2.5 E(g)-.37 E F0(s, e)A -.15(ve)-.25 G 2.5(ni).15 G 2.5(fs)-2.5 G
(ome of them be)-2.5 E(gin with a)-.15 E F1<ad>2.5 E F0(.)A F1<ad>144
-360 Q F0 .796(Signal the end of options, cause all remaining)184 360 R
+582 Q F0 .796(Signal the end of options, cause all remaining)184 582 R
F2(ar)3.297 E(g)-.37 E F0 3.297(st)C 3.297(ob)-3.297 G 3.297(ea)-3.297 G
-.797(ssigned to the positional pa-)-3.297 F 3.022(rameters. The)184 372
+.797(ssigned to the positional pa-)-3.297 F 3.022(rameters. The)184 594
R F1<ad78>3.022 E F0(and)3.022 E F1<ad76>3.022 E F0 .522
(options are turned of)3.022 F 3.022(f. If)-.25 F .522(there are no)
3.022 F F2(ar)3.022 E(g)-.37 E F0 .521(s, the positional pa-)B
-(rameters remain unchanged.)184 384 Q .425(The options are of)144 400.8
+(rameters remain unchanged.)184 606 Q .425(The options are of)144 622.8
R 2.925(fb)-.25 G 2.925(yd)-2.925 G(ef)-2.925 E .425
(ault unless otherwise noted.)-.1 F .425
(Using + rather than \255 causes these options)5.425 F .178
-(to be turned of)144 412.8 R 2.678(f. The)-.25 F .178
+(to be turned of)144 634.8 R 2.678(f. The)-.25 F .178
(options can also be speci\214ed as ar)2.678 F .178(guments to an in)
-.18 F -.2(vo)-.4 G .177(cation of the shell.).2 F(The)5.177 E .066
-(current set of options may be found in)144 424.8 R F1<24ad>2.566 E F0
+(current set of options may be found in)144 646.8 R F1<24ad>2.566 E F0
5.066(.T)C .066(he return status is al)-5.066 F -.1(wa)-.1 G .066
(ys true unless an in).1 F -.25(va)-.4 G .067(lid option).25 F
-(is encountered.)144 436.8 Q F1(shift)108 453.6 Q F0([)2.5 E F2(n)A F0
-(])A .429(The positional parameters from)144 465.6 R F2(n)2.929 E F0
+(is encountered.)144 658.8 Q F1(shift)108 675.6 Q F0([)2.5 E F2(n)A F0
+(])A .429(The positional parameters from)144 687.6 R F2(n)2.929 E F0
.429(+1 ... are renamed to)B F1 .429($1 ....)2.929 F F0 -.15(Pa)5.428 G
-.428(rameters represented by the num-).15 F(bers)144 477.6 Q F1($#)2.582
+.428(rameters represented by the num-).15 F(bers)144 699.6 Q F1($#)2.582
E F0(do)2.582 E .082(wn to)-.25 F F1($#)2.582 E F0<ad>A F2(n)A F0 .082
(+1 are unset.)B F2(n)5.442 E F0 .082(must be a non-ne)2.822 F -.05(ga)
-.15 G(ti).05 E .383 -.15(ve n)-.25 H .083(umber less than or equal to)
.15 F F1($#)2.583 E F0 5.083(.I)C(f)-5.083 E F2(n)2.943 E F0 .06
-(is 0, no parameters are changed.)144 489.6 R(If)5.06 E F2(n)2.92 E F0
+(is 0, no parameters are changed.)144 711.6 R(If)5.06 E F2(n)2.92 E F0
.06(is not gi)2.8 F -.15(ve)-.25 G .06(n, it is assumed to be 1.).15 F
(If)5.06 E F2(n)2.92 E F0 .06(is greater than)2.8 F F1($#)2.56 E F0 2.56
-(,t)C(he)-2.56 E .143(positional parameters are not changed.)144 501.6 R
+(,t)C(he)-2.56 E .143(positional parameters are not changed.)144 723.6 R
.144(The return status is greater than zero if)5.143 F F2(n)3.004 E F0
-.144(is greater than)2.884 F F1($#)2.644 E F0
-(or less than zero; otherwise 0.)144 513.6 Q F1(shopt)108 530.4 Q F0([)
-2.5 E F1(\255pqsu)A F0 2.5(][)C F1<ad6f>-2.5 E F0 2.5(][)C F2(optname)
--2.5 E F0(...])2.5 E -.8(To)144 542.4 S .64(ggle the v).8 F .639
+.144(is greater than)2.884 F F1($#)2.644 E F0(GNU Bash 5.2)72 768 Q
+(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(17)185.545 E 0 Cg EP
+%%Page: 18 18
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
+E(UIL)-.1 E(TINS\(1\))-.92 E(or less than zero; otherwise 0.)144 84 Q/F1
+10/Times-Bold@0 SF(shopt)108 100.8 Q F0([)2.5 E F1(\255pqsu)A F0 2.5(][)
+C F1<ad6f>-2.5 E F0 2.5(][)C/F2 10/Times-Italic@0 SF(optname)-2.5 E F0
+(...])2.5 E -.8(To)144 112.8 S .64(ggle the v).8 F .639
(alues of settings controlling optional shell beha)-.25 F(vior)-.2 E
5.639(.T)-.55 G .639(he settings can be either those)-5.639 F .374
-(listed belo)144 554.4 R 1.674 -.65(w, o)-.25 H 1.174 -.4(r, i).65 H
+(listed belo)144 124.8 R 1.674 -.65(w, o)-.25 H 1.174 -.4(r, i).65 H
2.874(ft).4 G(he)-2.874 E F1<ad6f>2.874 E F0 .375
(option is used, those a)2.875 F -.25(va)-.2 G .375(ilable with the).25
F F1<ad6f>2.875 E F0 .375(option to the)2.875 F F1(set)2.875 E F0 -.2
-(bu)2.875 G .375(iltin com-).2 F 2.566(mand. W)144 566.4 R .066
+(bu)2.875 G .375(iltin com-).2 F 2.566(mand. W)144 136.8 R .066
(ith no options, or with the)-.4 F F1<ad70>2.566 E F0 .066
(option, a list of all settable options is displayed, with an in-)2.566
-F .074(dication of whether or not each is set; if)144 578.4 R F2
+F .074(dication of whether or not each is set; if)144 148.8 R F2
(optnames)2.574 E F0 .074
(are supplied, the output is restricted to those op-)2.574 F 3.105
-(tions. The)144 590.4 R F1<ad70>3.105 E F0 .605(option causes output to\
+(tions. The)144 160.8 R F1<ad70>3.105 E F0 .605(option causes output to\
be displayed in a form that may be reused as input.)3.105 F(Other)5.605
-E(options ha)144 602.4 Q .3 -.15(ve t)-.2 H(he follo).15 E
-(wing meanings:)-.25 E F1<ad73>144 614.4 Q F0(Enable \(set\) each)180
-614.4 Q F2(optname)2.5 E F0(.)A F1<ad75>144 626.4 Q F0
-(Disable \(unset\) each)180 626.4 Q F2(optname)2.5 E F0(.)A F1<ad71>144
-638.4 Q F0 .003(Suppresses normal output \(quiet mode\); the return sta\
-tus indicates whether the)180 638.4 R F2(optname)2.504 E F0(is)2.504 E
-.256(set or unset.)180 650.4 R .256(If multiple)5.256 F F2(optname)2.756
+E(options ha)144 172.8 Q .3 -.15(ve t)-.2 H(he follo).15 E
+(wing meanings:)-.25 E F1<ad73>144 184.8 Q F0(Enable \(set\) each)180
+184.8 Q F2(optname)2.5 E F0(.)A F1<ad75>144 196.8 Q F0
+(Disable \(unset\) each)180 196.8 Q F2(optname)2.5 E F0(.)A F1<ad71>144
+208.8 Q F0 .003(Suppresses normal output \(quiet mode\); the return sta\
+tus indicates whether the)180 208.8 R F2(optname)2.504 E F0(is)2.504 E
+.256(set or unset.)180 220.8 R .256(If multiple)5.256 F F2(optname)2.756
E F0(ar)2.756 E .256(guments are gi)-.18 F -.15(ve)-.25 G 2.756(nw).15 G
(ith)-2.756 E F1<ad71>2.756 E F0 2.755(,t)C .255
-(he return status is zero if)-2.755 F(all)180 662.4 Q F2(optnames)2.5 E
-F0(are enabled; non-zero otherwise.)2.5 E F1<ad6f>144 674.4 Q F0
-(Restricts the v)180 674.4 Q(alues of)-.25 E F2(optname)2.5 E F0
+(he return status is zero if)-2.755 F(all)180 232.8 Q F2(optnames)2.5 E
+F0(are enabled; non-zero otherwise.)2.5 E F1<ad6f>144 244.8 Q F0
+(Restricts the v)180 244.8 Q(alues of)-.25 E F2(optname)2.5 E F0
(to be those de\214ned for the)2.5 E F1<ad6f>2.5 E F0(option to the)2.5
-E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .624(If either)144 691.2 R F1
+E F1(set)2.5 E F0 -.2(bu)2.5 G(iltin.).2 E .624(If either)144 261.6 R F1
<ad73>3.124 E F0(or)3.124 E F1<ad75>3.124 E F0 .624(is used with no)
3.124 F F2(optname)3.124 E F0(ar)3.124 E(guments,)-.18 E F1(shopt)3.124
E F0(sho)3.124 E .624(ws only those options which are)-.25 F .984
-(set or unset, respecti)144 703.2 R -.15(ve)-.25 G(ly).15 E 5.984(.U)
+(set or unset, respecti)144 273.6 R -.15(ve)-.25 G(ly).15 E 5.984(.U)
-.65 G .984(nless otherwise noted, the)-5.984 F F1(shopt)3.484 E F0 .983
-(options are disabled \(unset\) by de-)3.483 F -.1(fa)144 715.2 S(ult.)
-.1 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(17)198.725 E 0 Cg EP
-%%Page: 18 18
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
-(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E 1.544
-(The return status when listing options is zero if all)144 84 R/F1 10
-/Times-Italic@0 SF(optnames)4.044 E F0 1.545
-(are enabled, non-zero otherwise.)4.045 F .696
+(options are disabled \(unset\) by de-)3.483 F -.1(fa)144 285.6 S(ult.)
+.1 E 1.544(The return status when listing options is zero if all)144
+302.4 R F2(optnames)4.044 E F0 1.545(are enabled, non-zero otherwise.)
+4.045 F .696
(When setting or unsetting options, the return status is zero unless an)
-144 96 R F1(optname)3.196 E F0 .696(is not a v)3.196 F .695(alid shell)
--.25 F(option.)144 108 Q(The list of)144 124.8 Q/F2 10/Times-Bold@0 SF
-(shopt)2.5 E F0(options is:)2.5 E F2(assoc_expand_once)144 142.8 Q F0
-1.944(If set, the shell suppresses multiple e)184 154.8 R -.25(va)-.25 G
+144 314.4 R F2(optname)3.196 E F0 .696(is not a v)3.196 F .695
+(alid shell)-.25 F(option.)144 326.4 Q(The list of)144 343.2 Q F1(shopt)
+2.5 E F0(options is:)2.5 E F1(assoc_expand_once)144 361.2 Q F0 1.944
+(If set, the shell suppresses multiple e)184 373.2 R -.25(va)-.25 G
1.945(luation of associati).25 F 2.245 -.15(ve a)-.25 H 1.945
-(rray subscripts during).15 F .885(arithmetic e)184 166.8 R .885
+(rray subscripts during).15 F .885(arithmetic e)184 385.2 R .885
(xpression e)-.15 F -.25(va)-.25 G .885(luation, while e).25 F -.15(xe)
-.15 G .885(cuting b).15 F .885(uiltins that can perform v)-.2 F .885
-(ariable as-)-.25 F(signments, and while e)184 178.8 Q -.15(xe)-.15 G
-(cuting b).15 E(uiltins that perform array dereferencing.)-.2 E F2
-(autocd)144 190.8 Q F0 .199
-(If set, a command name that is the name of a directory is e)184 190.8 R
+(ariable as-)-.25 F(signments, and while e)184 397.2 Q -.15(xe)-.15 G
+(cuting b).15 E(uiltins that perform array dereferencing.)-.2 E F1
+(autocd)144 409.2 Q F0 .199
+(If set, a command name that is the name of a directory is e)184 409.2 R
-.15(xe)-.15 G .2(cuted as if it were the ar).15 F(gu-)-.18 E
-(ment to the)184 202.8 Q F2(cd)2.5 E F0 2.5(command. This)2.5 F
+(ment to the)184 421.2 Q F1(cd)2.5 E F0 2.5(command. This)2.5 F
(option is only used by interacti)2.5 E .3 -.15(ve s)-.25 H(hells.).15 E
-F2(cdable_v)144 214.8 Q(ars)-.1 E F0 .156(If set, an ar)184 226.8 R .156
-(gument to the)-.18 F F2(cd)2.656 E F0 -.2(bu)2.656 G .155
+F1(cdable_v)144 433.2 Q(ars)-.1 E F0 .156(If set, an ar)184 445.2 R .156
+(gument to the)-.18 F F1(cd)2.656 E F0 -.2(bu)2.656 G .155
(iltin command that is not a directory is assumed to be the).2 F
-(name of a v)184 238.8 Q(ariable whose v)-.25 E
-(alue is the directory to change to.)-.25 E F2(cdspell)144 250.8 Q F0
+(name of a v)184 457.2 Q(ariable whose v)-.25 E
+(alue is the directory to change to.)-.25 E F1(cdspell)144 469.2 Q F0
1.055
(If set, minor errors in the spelling of a directory component in a)184
-250.8 R F2(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
-(corrected. The)184 262.8 R 1.488(errors check)3.988 F 1.487
+469.2 R F1(cd)3.555 E F0 1.055(command will be)3.555 F 3.988
+(corrected. The)184 481.2 R 1.488(errors check)3.988 F 1.487
(ed for are transposed characters, a missing character)-.1 F 3.987(,a)
--.4 G(nd)-3.987 E .77(one character too man)184 274.8 R 4.57 -.65(y. I)
+-.4 G(nd)-3.987 E .77(one character too man)184 493.2 R 4.57 -.65(y. I)
-.15 H 3.27(fac).65 G .77
(orrection is found, the corrected \214lename is printed, and)-3.27 F
-(the command proceeds.)184 286.8 Q
+(the command proceeds.)184 505.2 Q
(This option is only used by interacti)5 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F2(checkhash)144 298.8 Q F0 .737(If set,)184 310.8 R F2(bash)3.237
+.15 E F1(checkhash)144 517.2 Q F0 .737(If set,)184 529.2 R F1(bash)3.237
E F0 .736(checks that a command found in the hash table e)3.237 F .736
(xists before trying to e)-.15 F -.15(xe)-.15 G(-).15 E(cute it.)184
-322.8 Q(If a hashed command no longer e)5 E
-(xists, a normal path search is performed.)-.15 E F2(checkjobs)144 334.8
-Q F0 .448(If set,)184 346.8 R F2(bash)2.948 E F0 .448
+541.2 Q(If a hashed command no longer e)5 E
+(xists, a normal path search is performed.)-.15 E F1(checkjobs)144 553.2
+Q F0 .448(If set,)184 565.2 R F1(bash)2.948 E F0 .448
(lists the status of an)2.948 F 2.949(ys)-.15 G .449
(topped and running jobs before e)-2.949 F .449(xiting an interacti)-.15
-F -.15(ve)-.25 G 2.662(shell. If)184 358.8 R(an)2.662 E 2.661(yj)-.15 G
+F -.15(ve)-.25 G 2.662(shell. If)184 577.2 R(an)2.662 E 2.661(yj)-.15 G
.161(obs are running, this causes the e)-2.661 F .161
-(xit to be deferred until a second e)-.15 F .161(xit is at-)-.15 F 1.472
-(tempted without an interv)184 370.8 R 1.473(ening command \(see)-.15 F
-/F3 9/Times-Bold@0 SF 1.473(JOB CONTR)3.973 F(OL)-.27 E F0(abo)3.723 E
--.15(ve)-.15 G 3.973(\). The).15 F 1.473(shell al-)3.973 F -.1(wa)184
-382.8 S(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G
-(obs are stopped.)-2.5 E F2(checkwinsize)144 394.8 Q F0 1.09(If set,)184
-406.8 R F2(bash)3.59 E F0 1.09(checks the windo)3.59 F 3.59(ws)-.25 G
+(xit to be deferred until a second e)-.15 F .161(xit is at-)-.15 F 1.091
+(tempted without an interv)184 589.2 R 1.091(ening command \(see)-.15 F
+/F3 9/Times-Bold@0 SF 1.091(JOB CONTR)3.591 F(OL)-.27 E F0(in)3.341 E F2
+(bash\(1\))3.591 E F0 3.591(\). The)B(shell)3.591 E(al)184 601.2 Q -.1
+(wa)-.1 G(ys postpones e).1 E(xiting if an)-.15 E 2.5(yj)-.15 G
+(obs are stopped.)-2.5 E F1(checkwinsize)144 613.2 Q F0 1.09(If set,)184
+625.2 R F1(bash)3.59 E F0 1.09(checks the windo)3.59 F 3.59(ws)-.25 G
1.09(ize after each e)-3.59 F 1.09(xternal \(non-b)-.15 F 1.09
-(uiltin\) command and, if)-.2 F(necessary)184 418.8 Q 3.35(,u)-.65 G .85
+(uiltin\) command and, if)-.2 F(necessary)184 637.2 Q 3.35(,u)-.65 G .85
(pdates the v)-3.35 F .85(alues of)-.25 F F3(LINES)3.35 E F0(and)3.1 E
F3(COLUMNS)3.35 E/F4 9/Times-Roman@0 SF(.)A F0 .85
-(This option is enabled by de-)5.35 F -.1(fa)184 430.8 S(ult.).1 E F2
-(cmdhist)144 442.8 Q F0 .173(If set,)184 442.8 R F2(bash)2.673 E F0 .173
+(This option is enabled by de-)5.35 F -.1(fa)184 649.2 S(ult.).1 E F1
+(cmdhist)144 661.2 Q F0 .173(If set,)184 661.2 R F1(bash)2.673 E F0 .173
(attempts to sa)2.673 F .473 -.15(ve a)-.2 H .172
(ll lines of a multiple-line command in the same history en-).15 F(try)
-184 454.8 Q 5.596(.T)-.65 G .597(his allo)-5.596 F .597
+184 673.2 Q 5.596(.T)-.65 G .597(his allo)-5.596 F .597
(ws easy re-editing of multi-line commands.)-.25 F .597
-(This option is enabled by de-)5.597 F -.1(fa)184 466.8 S 1.288(ult, b)
-.1 F 1.288(ut only has an ef)-.2 F 1.288
-(fect if command history is enabled, as described abo)-.25 F 1.587 -.15
-(ve u)-.15 H(nder).15 E F3(HIST)184 478.8 Q(OR)-.162 E(Y)-.315 E F4(.)A
-F2(compat31)144 490.8 Q(compat32)144 502.8 Q(compat40)144 514.8 Q
-(compat41)144 526.8 Q(compat42)144 538.8 Q(compat43)144 550.8 Q
-(compat44)144 562.8 Q F0 .889(These control aspects of the shell')184
-574.8 R 3.389(sc)-.55 G .889(ompatibility mode \(see)-3.389 F F3 .889
-(SHELL COMP)3.389 F -.855(AT)-.666 G(IBILITY).855 E(MODE)184 586.8 Q F0
-(belo)2.25 E(w\).)-.25 E F2(complete_fullquote)144 603.6 Q F0 .654
-(If set,)184 615.6 R F2(bash)3.153 E F0 .653(quotes all shell metachara\
-cters in \214lenames and directory names when per)3.153 F(-)-.2 E 1.524
-(forming completion.)184 627.6 R 1.524(If not set,)6.524 F F2(bash)4.024
-E F0(remo)4.024 E -.15(ve)-.15 G 4.024(sm).15 G 1.524
+(This option is enabled by de-)5.597 F -.1(fa)184 685.2 S .052(ult, b).1
+F .052(ut only has an ef)-.2 F .052
+(fect if command history is enabled, as described in)-.25 F F2
+(bash\(1\))2.552 E F0(under)2.552 E F3(HIST)184 697.2 Q(OR)-.162 E(Y)
+-.315 E F4(.)A F0(GNU Bash 5.2)72 768 Q(2021 No)136.385 E -.15(ve)-.15 G
+(mber 22).15 E(18)185.545 E 0 Cg EP
+%%Page: 19 19
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(compat31)144 84 Q
+(compat32)144 96 Q(compat40)144 108 Q(compat41)144 120 Q(compat42)144
+132 Q(compat43)144 144 Q(compat44)144 156 Q(compat50)144 168 Q F0 .889
+(These control aspects of the shell')184 180 R 3.389(sc)-.55 G .889
+(ompatibility mode \(see)-3.389 F/F2 9/Times-Bold@0 SF .889(SHELL COMP)
+3.389 F -.855(AT)-.666 G(IBILITY).855 E(MODE)184 192 Q F0(in)2.25 E/F3
+10/Times-Italic@0 SF(bash\(1\))2.5 E F0(\).)A F1(complete_fullquote)144
+208.8 Q F0 .654(If set,)184 220.8 R F1(bash)3.153 E F0 .653(quotes all \
+shell metacharacters in \214lenames and directory names when per)3.153 F
+(-)-.2 E 1.524(forming completion.)184 232.8 R 1.524(If not set,)6.524 F
+F1(bash)4.024 E F0(remo)4.024 E -.15(ve)-.15 G 4.024(sm).15 G 1.524
(etacharacters such as the dollar sign)-4.024 F 2.667(from the set of c\
haracters that will be quoted in completed \214lenames when these)184
-639.6 R .028(metacharacters appear in shell v)184 651.6 R .028
+244.8 R .028(metacharacters appear in shell v)184 256.8 R .028
(ariable references in w)-.25 F .029(ords to be completed.)-.1 F .029
-(This means)5.029 F 1.073(that dollar signs in v)184 663.6 R 1.073
+(This means)5.029 F 1.073(that dollar signs in v)184 268.8 R 1.073
(ariable names that e)-.25 F 1.073
(xpand to directories will not be quoted; ho)-.15 F(w-)-.25 E -2.15 -.25
-(ev e)184 675.6 T 1.922 -.4(r, a).25 H 1.422 -.15(ny d).4 H 1.123
+(ev e)184 280.8 T 1.922 -.4(r, a).25 H 1.422 -.15(ny d).4 H 1.123
(ollar signs appearing in \214lenames will not be quoted, either).15 F
6.123(.T)-.55 G 1.123(his is acti)-6.123 F -.15(ve)-.25 G .59
(only when bash is using backslashes to quote completed \214lenames.)184
-687.6 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 699.6 Q
+292.8 R .59(This v)5.59 F .59(ariable is set)-.25 F(by def)184 304.8 Q
(ault, which is the def)-.1 E(ault bash beha)-.1 E(vior in v)-.2 E
-(ersions through 4.2.)-.15 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E
-(18)198.725 E 0 Cg EP
-%%Page: 19 19
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
-(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(dir)144 84 Q(expand)
--.18 E F0 .486(If set,)184 96 R F1(bash)2.986 E F0 .486
+(ersions through 4.2.)-.15 E F1(dir)144 321.6 Q(expand)-.18 E F0 .486
+(If set,)184 333.6 R F1(bash)2.986 E F0 .486
(replaces directory names with the results of w)2.986 F .486(ord e)-.1 F
.487(xpansion when perform-)-.15 F .18(ing \214lename completion.)184
-108 R .179(This changes the contents of the readline editing b)5.18 F
+345.6 R .179(This changes the contents of the readline editing b)5.18 F
(uf)-.2 E(fer)-.25 E 5.179(.I)-.55 G 2.679(fn)-5.179 G(ot)-2.679 E(set,)
-184 120 Q F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G
-(hat the user typed.)-2.5 E F1(dirspell)144 136.8 Q F0 .858(If set,)184
-136.8 R F1(bash)3.358 E F0 .858
+184 357.6 Q F1(bash)2.5 E F0(attempts to preserv)2.5 E 2.5(ew)-.15 G
+(hat the user typed.)-2.5 E F1(dirspell)144 374.4 Q F0 .858(If set,)184
+374.4 R F1(bash)3.358 E F0 .858
(attempts spelling correction on directory names during w)3.358 F .859
(ord completion if)-.1 F
-(the directory name initially supplied does not e)184 148.8 Q(xist.)-.15
-E F1(dotglob)144 165.6 Q F0 .165(If set,)184 165.6 R F1(bash)2.665 E F0
+(the directory name initially supplied does not e)184 386.4 Q(xist.)-.15
+E F1(dotglob)144 403.2 Q F0 .165(If set,)184 403.2 R F1(bash)2.665 E F0
.165(includes \214lenames be)2.665 F .165(ginning with a `.)-.15 F 2.665
('i)-.7 G 2.665(nt)-2.665 G .165(he results of pathname e)-2.665 F
-(xpansion.)-.15 E(The \214lenames)184 177.6 Q F1 -.63(``)2.5 G -.55(.')
+(xpansion.)-.15 E(The \214lenames)184 415.2 Q F1 -.63(``)2.5 G -.55(.')
.63 G(')-.08 E F0(and)5 E F1 -.63(``)2.5 G(..).63 E -.63('')-.55 G F0
(must al)5.63 E -.1(wa)-.1 G(ys be matched e).1 E(xplicitly)-.15 E 2.5
(,e)-.65 G -.15(ve)-2.75 G 2.5(ni).15 G(f)-2.5 E F1(dotglob)2.5 E F0
-(is set.)2.5 E F1(execfail)144 194.4 Q F0 .516(If set, a non-interacti)
-184 194.4 R .816 -.15(ve s)-.25 H .516(hell will not e).15 F .516
+(is set.)2.5 E F1(execfail)144 432 Q F0 .516(If set, a non-interacti)184
+432 R .816 -.15(ve s)-.25 H .516(hell will not e).15 F .516
(xit if it cannot e)-.15 F -.15(xe)-.15 G .517
(cute the \214le speci\214ed as an ar).15 F(-)-.2 E(gument to the)184
-206.4 Q F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E(An interacti)5
-E .3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15 E F1(exec)2.5 E
-F0 -.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 223.2 Q F0 .717
-(If set, aliases are e)184 235.2 R .717(xpanded as described abo)-.15 F
-1.017 -.15(ve u)-.15 H(nder).15 E/F2 9/Times-Bold@0 SF(ALIASES)3.217 E
-/F3 9/Times-Roman@0 SF(.)A F0 .716(This option is enabled)5.217 F
-(by def)184 247.2 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.)
-.15 E F1(extdeb)144 264 Q(ug)-.2 E F0 .17(If set at shell in)184 276 R
--.2(vo)-.4 G .17(cation, or in a shell startup \214le, arrange to e).2 F
+444 Q F1(exec)2.5 E F0 -.2(bu)2.5 G(iltin command.).2 E(An interacti)5 E
+.3 -.15(ve s)-.25 H(hell does not e).15 E(xit if)-.15 E F1(exec)2.5 E F0
+-.1(fa)2.5 G(ils.).1 E F1(expand_aliases)144 460.8 Q F0 .743
+(If set, aliases are e)184 472.8 R .743(xpanded as described in)-.15 F
+F3(bash\(1\))3.243 E F0(under)3.243 E F2(ALIASES)3.243 E/F4 9
+/Times-Roman@0 SF(.)A F0 .742(This option is en-)5.243 F(abled by def)
+184 484.8 Q(ault for interacti)-.1 E .3 -.15(ve s)-.25 H(hells.).15 E F1
+(extdeb)144 501.6 Q(ug)-.2 E F0 .17(If set at shell in)184 513.6 R -.2
+(vo)-.4 G .17(cation, or in a shell startup \214le, arrange to e).2 F
-.15(xe)-.15 G .17(cute the deb).15 F .17(ugger pro\214le)-.2 F 1.082
-(before the shell starts, identical to the)184 288 R F1<adad646562>3.582
-E(ugger)-.2 E F0 3.581(option. If)3.581 F 1.081(set after in)3.581 F -.2
-(vo)-.4 G 1.081(cation, be-).2 F(ha)184 300 Q
+(before the shell starts, identical to the)184 525.6 R F1<adad646562>
+3.582 E(ugger)-.2 E F0 3.581(option. If)3.581 F 1.081(set after in)3.581
+F -.2(vo)-.4 G 1.081(cation, be-).2 F(ha)184 537.6 Q
(vior intended for use by deb)-.2 E(uggers is enabled:)-.2 E F1(1.)184
-316.8 Q F0(The)220 316.8 Q F1<ad46>4.25 E F0 1.75(option to the)4.25 F
+554.4 Q F0(The)220 554.4 Q F1<ad46>4.25 E F0 1.75(option to the)4.25 F
F1(declar)4.251 E(e)-.18 E F0 -.2(bu)4.251 G 1.751
(iltin displays the source \214le name and line).2 F
-(number corresponding to each function name supplied as an ar)220 328.8
-Q(gument.)-.18 E F1(2.)184 345.6 Q F0 1.667(If the command run by the)
-220 345.6 R F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)
+(number corresponding to each function name supplied as an ar)220 566.4
+Q(gument.)-.18 E F1(2.)184 583.2 Q F0 1.667(If the command run by the)
+220 583.2 R F1(DEB)4.167 E(UG)-.1 E F0 1.667(trap returns a non-zero v)
4.167 F 1.667(alue, the ne)-.25 F(xt)-.15 E
-(command is skipped and not e)220 357.6 Q -.15(xe)-.15 G(cuted.).15 E F1
-(3.)184 374.4 Q F0 .84(If the command run by the)220 374.4 R F1(DEB)3.34
-E(UG)-.1 E F0 .841(trap returns a v)3.341 F .841
-(alue of 2, and the shell is)-.25 F -.15(exe)220 386.4 S .488
+(command is skipped and not e)220 595.2 Q -.15(xe)-.15 G(cuted.).15 E F1
+(3.)184 612 Q F0 .84(If the command run by the)220 612 R F1(DEB)3.34 E
+(UG)-.1 E F0 .841(trap returns a v)3.341 F .841
+(alue of 2, and the shell is)-.25 F -.15(exe)220 624 S .488
(cuting in a subroutine \(a shell function or a shell script e).15 F
-.15(xe)-.15 G .488(cuted by the).15 F F1(.)2.988 E F0(or)2.988 E F1
-(sour)220 398.4 Q(ce)-.18 E F0 -.2(bu)2.5 G
+(sour)220 636 Q(ce)-.18 E F0 -.2(bu)2.5 G
(iltins\), the shell simulates a call to).2 E F1 -.18(re)2.5 G(tur).18 E
-(n)-.15 E F0(.)A F1(4.)184 415.2 Q F2 -.27(BA)220 415.2 S(SH_ARGC).27 E
+(n)-.15 E F0(.)A F1(4.)184 652.8 Q F2 -.27(BA)220 652.8 S(SH_ARGC).27 E
F0(and)3.153 E F2 -.27(BA)3.403 G(SH_ARGV).27 E F0 .904
-(are updated as described in their descriptions)3.154 F(abo)220 427.2 Q
--.15(ve)-.15 G(.).15 E F1(5.)184 444 Q F0 1.637(Function tracing is ena\
-bled: command substitution, shell functions, and sub-)220 444 R
-(shells in)220 456 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1
-(\()2.5 E/F4 10/Times-Italic@0 SF(command)2.5 E F1(\))2.5 E F0
-(inherit the)2.5 E F1(DEB)2.5 E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0
-(traps.)2.5 E F1(6.)184 472.8 Q F0 1.082(Error tracing is enabled: comm\
-and substitution, shell functions, and subshells)220 472.8 R(in)220
-484.8 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F4
-(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(ERR)2.5 E F0(trap.)
-2.5 E F1(extglob)144 501.6 Q F0 .4(If set, the e)184 501.6 R .4
-(xtended pattern matching features described abo)-.15 F .7 -.15(ve u)
--.15 H(nder).15 E F1 -.1(Pa)2.9 G .4(thname Expan-).1 F(sion)184 513.6 Q
-F0(are enabled.)2.5 E F1(extquote)144 530.4 Q F0 .86(If set,)184 542.4 R
-F1($)3.36 E F0<08>A F4(string)A F0 3.36<0861>C(nd)-3.36 E F1($)3.36 E F0
-(")A F4(string)A F0 3.36("q)C .86(uoting is performed within)-3.36 F F1
-(${)3.36 E F4(par)A(ameter)-.15 E F1(})A F0 -.15(ex)3.36 G .86
-(pansions en-).15 F(closed in double quotes.)184 554.4 Q
-(This option is enabled by def)5 E(ault.)-.1 E F1(failglob)144 571.2 Q
-F0 .243(If set, patterns which f)184 571.2 R .243
-(ail to match \214lenames during pathname e)-.1 F .243
-(xpansion result in an e)-.15 F(x-)-.15 E(pansion error)184 583.2 Q(.)
--.55 E F1 -.25(fo)144 600 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
-.936(If set, the suf)184 612 R<8c78>-.25 E .936(es speci\214ed by the)
--.15 F F2(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936(ariable cause w)
--.25 F .937(ords to be ignored)-.1 F .32(when performing w)184 624 R .32
-(ord completion e)-.1 F -.15(ve)-.25 G 2.82(ni).15 G 2.82(ft)-2.82 G .32
-(he ignored w)-2.82 F .32(ords are the only possible com-)-.1 F 2.947
-(pletions. See)184 636 R F2 .447(SHELL V)2.947 F(ARIABLES)-1.215 E F0
-(abo)2.697 E .747 -.15(ve f)-.15 H .448(or a description of).15 F F2
-(FIGNORE)2.948 E F3(.)A F0 .448(This option is)4.948 F(enabled by def)
-184 648 Q(ault.)-.1 E F1(globasciiranges)144 664.8 Q F0 2.519
-(If set, range e)184 676.8 R 2.519
-(xpressions used in pattern matching brack)-.15 F 2.518(et e)-.1 F 2.518
-(xpressions \(see)-.15 F F2 -.09(Pa)5.018 G(tter).09 E(n)-.135 E
-(Matching)184 688.8 Q F0(abo)2.964 E -.15(ve)-.15 G 3.214(\)b).15 G(eha)
--3.214 E 1.014 -.15(ve a)-.2 H 3.214(si).15 G 3.214(fi)-3.214 G 3.214
-(nt)-3.214 G .714(he traditional C locale when performing comparisons.)
--3.214 F 1.02(That is, the current locale')184 700.8 R 3.52(sc)-.55 G
-1.02(ollating sequence is not tak)-3.52 F 1.02(en into account, so)-.1 F
-F1(b)3.52 E F0 1.02(will not)3.52 F .956(collate between)184 712.8 R F1
-(A)3.456 E F0(and)3.456 E F1(B)3.456 E F0 3.457(,a)C .957(nd upper)
--3.457 F .957(-case and lo)-.2 F(wer)-.25 E .957
-(-case ASCII characters will collate)-.2 F(together)184 724.8 Q(.)-.55 E
-(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(19)198.725 E 0 Cg EP
+(are updated as described in their descriptions)3.154 F(in)220 664.8 Q
+F3(bash\(1\))2.5 E F0(\).)A F1(5.)184 681.6 Q F0 1.637(Function tracing\
+ is enabled: command substitution, shell functions, and sub-)220 681.6 R
+(shells in)220 693.6 Q -.2(vo)-.4 G -.1(ke).2 G 2.5(dw).1 G(ith)-2.5 E
+F1(\()2.5 E F3(command)2.5 E F1(\))2.5 E F0(inherit the)2.5 E F1(DEB)2.5
+E(UG)-.1 E F0(and)2.5 E F1(RETURN)2.5 E F0(traps.)2.5 E F1(6.)184 710.4
+Q F0 1.082(Error tracing is enabled: command substitution, shell functi\
+ons, and subshells)220 710.4 R(in)220 722.4 Q -.2(vo)-.4 G -.1(ke).2 G
+2.5(dw).1 G(ith)-2.5 E F1(\()2.5 E F3(command)2.5 E F1(\))2.5 E F0
+(inherit the)2.5 E F1(ERR)2.5 E F0(trap.)2.5 E(GNU Bash 5.2)72 768 Q
+(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(19)185.545 E 0 Cg EP
%%Page: 20 20
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(globstar)144 84 Q F0
-.519(If set, the pattern)184 84 R F1(**)3.019 E F0 .519
-(used in a pathname e)3.019 F .519(xpansion conte)-.15 F .518
-(xt will match all \214les and zero)-.15 F .431
-(or more directories and subdirectories.)184 96 R .431
-(If the pattern is follo)5.431 F .432(wed by a)-.25 F F1(/)2.932 E F0
-2.932(,o)C .432(nly directories)-2.932 F(and subdirectories match.)184
-108 Q F1(gnu_errfmt)144 124.8 Q F0(If set, shell error messages are wri\
-tten in the standard GNU error message format.)184 136.8 Q F1
-(histappend)144 153.6 Q F0 .676
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(extglob)144 84 Q F0
+.273(If set, the e)184 84 R .273
+(xtended pattern matching features described in)-.15 F/F2 10
+/Times-Italic@0 SF(bash\(1\))2.772 E F0(under)2.772 E F1 -.1(Pa)2.772 G
+.272(thname Ex-).1 F(pansion)184 96 Q F0(are enabled.)2.5 E F1(extquote)
+144 112.8 Q F0 .86(If set,)184 124.8 R F1($)3.36 E F0<08>A F2(string)A
+F0 3.36<0861>C(nd)-3.36 E F1($)3.36 E F0(")A F2(string)A F0 3.36("q)C
+.86(uoting is performed within)-3.36 F F1(${)3.36 E F2(par)A(ameter)-.15
+E F1(})A F0 -.15(ex)3.36 G .86(pansions en-).15 F
+(closed in double quotes.)184 136.8 Q(This option is enabled by def)5 E
+(ault.)-.1 E F1(failglob)144 153.6 Q F0 .243(If set, patterns which f)
+184 153.6 R .243(ail to match \214lenames during pathname e)-.1 F .243
+(xpansion result in an e)-.15 F(x-)-.15 E(pansion error)184 165.6 Q(.)
+-.55 E F1 -.25(fo)144 182.4 S -.18(rc).25 G(e_\214gnor).18 E(e)-.18 E F0
+.936(If set, the suf)184 194.4 R<8c78>-.25 E .936(es speci\214ed by the)
+-.15 F/F3 9/Times-Bold@0 SF(FIGNORE)3.436 E F0 .936(shell v)3.186 F .936
+(ariable cause w)-.25 F .937(ords to be ignored)-.1 F .32
+(when performing w)184 206.4 R .32(ord completion e)-.1 F -.15(ve)-.25 G
+2.82(ni).15 G 2.82(ft)-2.82 G .32(he ignored w)-2.82 F .32
+(ords are the only possible com-)-.1 F 3.293(pletions. See)184 218.4 R
+F3 .793(SHELL V)3.293 F(ARIABLES)-1.215 E F0(in)3.043 E F2(bash\(1\))
+3.293 E F0 .794(for a description of)3.293 F F3(FIGNORE)3.294 E/F4 9
+/Times-Roman@0 SF(.)A F0 .794(This op-)5.294 F(tion is enabled by def)
+184 230.4 Q(ault.)-.1 E F1(globasciiranges)144 247.2 Q F0 2.519
+(If set, range e)184 259.2 R 2.519
+(xpressions used in pattern matching brack)-.15 F 2.518(et e)-.1 F 2.518
+(xpressions \(see)-.15 F F3 -.09(Pa)5.018 G(tter).09 E(n)-.135 E
+(Matching)184 271.2 Q F0(in)3.115 E F2(bash\(1\))3.365 E F0 3.365(\)b)C
+(eha)-3.365 E 1.165 -.15(ve a)-.2 H 3.365(si).15 G 3.365(fi)-3.365 G
+3.365(nt)-3.365 G .866(he traditional C locale when performing compar)
+-3.365 F(-)-.2 E 2.668(isons. That)184 283.2 R .168
+(is, the current locale')2.668 F 2.668(sc)-.55 G .168
+(ollating sequence is not tak)-2.668 F .168(en into account, so)-.1 F F1
+(b)2.668 E F0(will)2.668 E .562(not collate between)184 295.2 R F1(A)
+3.062 E F0(and)3.062 E F1(B)3.062 E F0 3.062(,a)C .562(nd upper)-3.062 F
+.562(-case and lo)-.2 F(wer)-.25 E .563
+(-case ASCII characters will col-)-.2 F(late together)184 307.2 Q(.)-.55
+E F1(globskipdots)144 324 Q F0 .285(If set, pathname e)184 336 R .285
+(xpansion will ne)-.15 F -.15(ve)-.25 G 2.785(rm).15 G .285
+(atch the \214lenames)-2.785 F F1 -.63(``)2.785 G -.55(.').63 G(')-.08 E
+F0(and)5.285 E F1 -.63(``)2.784 G(..).63 E -.63('')-.55 G F0 2.784(,e)
+.63 G -.15(ve)-3.034 G 2.784(ni).15 G 2.784(ft)-2.784 G .284(he pat-)
+-2.784 F(tern be)184 348 Q(gins with a)-.15 E F1 -.63(``)2.5 G -.55(.')
+.63 G(')-.08 E F0 5(.T)C(his option is enabled by def)-5 E(ault.)-.1 E
+F1(globstar)144 364.8 Q F0 .518(If set, the pattern)184 364.8 R F1(**)
+3.018 E F0 .519(used in a pathname e)3.019 F .519(xpansion conte)-.15 F
+.519(xt will match all \214les and zero)-.15 F .432
+(or more directories and subdirectories.)184 376.8 R .431
+(If the pattern is follo)5.432 F .431(wed by a)-.25 F F1(/)2.931 E F0
+2.931(,o)C .431(nly directories)-2.931 F(and subdirectories match.)184
+388.8 Q F1(gnu_errfmt)144 405.6 Q F0(If set, shell error messages are w\
+ritten in the standard GNU error message format.)184 417.6 Q F1
+(histappend)144 434.4 Q F0 .676
(If set, the history list is appended to the \214le named by the v)184
-165.6 R .676(alue of the)-.25 F/F2 9/Times-Bold@0 SF(HISTFILE)3.176 E F0
--.25(va)2.926 G(ri-).25 E(able when the shell e)184 177.6 Q
-(xits, rather than o)-.15 E -.15(ve)-.15 G(rwriting the \214le.).15 E F1
-(histr)144 194.4 Q(eedit)-.18 E F0 .575(If set, and)184 206.4 R F1 -.18
-(re)3.075 G(adline).18 E F0 .575(is being used, a user is gi)3.075 F
--.15(ve)-.25 G 3.075(nt).15 G .576(he opportunity to re-edit a f)-3.075
-F .576(ailed his-)-.1 F(tory substitution.)184 218.4 Q F1(histv)144
-235.2 Q(erify)-.1 E F0 .403(If set, and)184 247.2 R F1 -.18(re)2.903 G
-(adline).18 E F0 .403
+446.4 R .676(alue of the)-.25 F F3(HISTFILE)3.177 E F0 -.25(va)2.927 G
+(ri-).25 E(able when the shell e)184 458.4 Q(xits, rather than o)-.15 E
+-.15(ve)-.15 G(rwriting the \214le.).15 E F1(histr)144 475.2 Q(eedit)
+-.18 E F0 .576(If set, and)184 487.2 R F1 -.18(re)3.076 G(adline).18 E
+F0 .575(is being used, a user is gi)3.076 F -.15(ve)-.25 G 3.075(nt).15
+G .575(he opportunity to re-edit a f)-3.075 F .575(ailed his-)-.1 F
+(tory substitution.)184 499.2 Q F1(histv)144 516 Q(erify)-.1 E F0 .402
+(If set, and)184 528 R F1 -.18(re)2.903 G(adline).18 E F0 .403
(is being used, the results of history substitution are not immediately)
-2.903 F .661(passed to the shell parser)184 259.2 R 5.661(.I)-.55 G .662
-(nstead, the resulting line is loaded into the)-5.661 F F1 -.18(re)3.162
-G(adline).18 E F0(editing)3.162 E -.2(bu)184 271.2 S -.25(ff).2 G(er).25
-E 2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1
-(hostcomplete)144 288 Q F0 1.182(If set, and)184 300 R F1 -.18(re)3.682
-G(adline).18 E F0 1.182(is being used,)3.682 F F1(bash)3.682 E F0 1.181
-(will attempt to perform hostname completion)3.681 F 1.38(when a w)184
-312 R 1.38(ord containing a)-.1 F F1(@)3.881 E F0 1.381
-(is being completed \(see)3.881 F F1(Completing)3.881 E F0(under)3.881 E
-F2(READLINE)3.881 E F0(abo)184 324 Q -.15(ve)-.15 G 2.5(\). This).15 F
-(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 340.8 Q F0
-(If set,)184 352.8 Q F1(bash)2.5 E F0(will send)2.5 E F2(SIGHUP)2.5 E F0
-(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H(ogin shell e)
-.15 E(xits.)-.15 E F1(inherit_err)144 369.6 Q(exit)-.18 E F0 .22
-(If set, command substitution inherits the v)184 381.6 R .219
-(alue of the)-.25 F F1(err)2.719 E(exit)-.18 E F0 .219
-(option, instead of unsetting)2.719 F(it in the subshell en)184 393.6 Q
-2.5(vironment. This)-.4 F(option is enabled when)2.5 E/F3 10
-/Times-Italic@0 SF(posix mode)2.5 E F0(is enabled.)2.5 E F1(interacti)
-144 410.4 Q -.1(ve)-.1 G(_comments).1 E F0 .33(If set, allo)184 422.4 R
-2.83(waw)-.25 G .33(ord be)-2.93 F .33(ginning with)-.15 F F1(#)2.83 E
-F0 .33(to cause that w)2.83 F .33(ord and all remaining characters on)
--.1 F .967(that line to be ignored in an interacti)184 434.4 R 1.267
--.15(ve s)-.25 H .967(hell \(see).15 F F2(COMMENTS)3.467 E F0(abo)3.217
-E -.15(ve)-.15 G 3.467(\). This).15 F .967(option is)3.467 F
-(enabled by def)184 446.4 Q(ault.)-.1 E F1(lastpipe)144 463.2 Q F0 .066
-(If set, and job control is not acti)184 463.2 R -.15(ve)-.25 G 2.566
+2.903 F .662(passed to the shell parser)184 540 R 5.662(.I)-.55 G .661
+(nstead, the resulting line is loaded into the)-5.662 F F1 -.18(re)3.161
+G(adline).18 E F0(editing)3.161 E -.2(bu)184 552 S -.25(ff).2 G(er).25 E
+2.5(,a)-.4 G(llo)-2.5 E(wing further modi\214cation.)-.25 E F1
+(hostcomplete)144 568.8 Q F0 1.181(If set, and)184 580.8 R F1 -.18(re)
+3.681 G(adline).18 E F0 1.181(is being used,)3.681 F F1(bash)3.682 E F0
+1.182(will attempt to perform hostname completion)3.682 F .503(when a w)
+184 592.8 R .503(ord containing a)-.1 F F1(@)3.003 E F0 .503
+(is being completed \(see)3.003 F F1(Completing)3.003 E F0(under)3.003 E
+F3(READLINE)3.003 E F0(in)2.752 E F2(bash\(1\))184 604.8 Q F0 2.5
+(\). This)B(is enabled by def)2.5 E(ault.)-.1 E F1(huponexit)144 621.6 Q
+F0(If set,)184 633.6 Q F1(bash)2.5 E F0(will send)2.5 E F3(SIGHUP)2.5 E
+F0(to all jobs when an interacti)2.25 E .3 -.15(ve l)-.25 H
+(ogin shell e).15 E(xits.)-.15 E F1(inherit_err)144 650.4 Q(exit)-.18 E
+F0 .219(If set, command substitution inherits the v)184 662.4 R .219
+(alue of the)-.25 F F1(err)2.719 E(exit)-.18 E F0 .22
+(option, instead of unsetting)2.719 F(it in the subshell en)184 674.4 Q
+2.5(vironment. This)-.4 F(option is enabled when)2.5 E F2(posix mode)2.5
+E F0(is enabled.)2.5 E F1(interacti)144 691.2 Q -.1(ve)-.1 G(_comments)
+.1 E F0 .33(If set, allo)184 703.2 R 2.83(waw)-.25 G .33(ord be)-2.93 F
+.33(ginning with)-.15 F F1(#)2.83 E F0 .33(to cause that w)2.83 F .33
+(ord and all remaining characters on)-.1 F .39
+(that line to be ignored in an interacti)184 715.2 R .69 -.15(ve s)-.25
+H .39(hell \(see).15 F F3(COMMENTS)2.89 E F0(in)2.64 E F2(bash\(1\))2.89
+E F0 2.89(\). This)B(option)2.89 E(is enabled by def)184 727.2 Q(ault.)
+-.1 E(GNU Bash 5.2)72 768 Q(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15
+E(20)185.545 E 0 Cg EP
+%%Page: 21 21
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(lastpipe)144 84 Q F0
+.066(If set, and job control is not acti)184 84 R -.15(ve)-.25 G 2.566
(,t).15 G .066(he shell runs the last command of a pipeline not e)-2.566
F -.15(xe)-.15 G(-).15 E
-(cuted in the background in the current shell en)184 475.2 Q(vironment.)
--.4 E F1(lithist)144 492 Q F0 .655(If set, and the)184 492 R F1(cmdhist)
-3.155 E F0 .654(option is enabled, multi-line commands are sa)3.154 F
--.15(ve)-.2 G 3.154(dt).15 G 3.154(ot)-3.154 G .654(he history)-3.154 F
-(with embedded ne)184 504 Q
+(cuted in the background in the current shell en)184 96 Q(vironment.)-.4
+E F1(lithist)144 112.8 Q F0 .654(If set, and the)184 112.8 R F1(cmdhist)
+3.154 E F0 .654(option is enabled, multi-line commands are sa)3.154 F
+-.15(ve)-.2 G 3.155(dt).15 G 3.155(ot)-3.155 G .655(he history)-3.155 F
+(with embedded ne)184 124.8 Q
(wlines rather than using semicolon separators where possible.)-.25 E F1
-(localv)144 520.8 Q(ar_inherit)-.1 E F0 .421(If set, local v)184 532.8 R
+(localv)144 141.6 Q(ar_inherit)-.1 E F0 .422(If set, local v)184 153.6 R
.422(ariables inherit the v)-.25 F .422(alue and attrib)-.25 F .422
(utes of a v)-.2 F .422(ariable of the same name that)-.25 F -.15(ex)184
-544.8 S .174(ists at a pre).15 F .174(vious scope before an)-.25 F 2.673
-(yn)-.15 G .673 -.25(ew va)-2.673 H .173(lue is assigned.).25 F .173
-(The nameref attrib)5.173 F .173(ute is not)-.2 F(inherited.)184 556.8 Q
-F1(localv)144 573.6 Q(ar_unset)-.1 E F0 .328(If set, calling)184 585.6 R
-F1(unset)2.828 E F0 .328(on local v)2.828 F .329(ariables in pre)-.25 F
-.329(vious function scopes marks them so subse-)-.25 F .543(quent looku\
+165.6 S .173(ists at a pre).15 F .173(vious scope before an)-.25 F 2.673
+(yn)-.15 G .673 -.25(ew va)-2.673 H .173(lue is assigned.).25 F .174
+(The nameref attrib)5.174 F .174(ute is not)-.2 F(inherited.)184 177.6 Q
+F1(localv)144 194.4 Q(ar_unset)-.1 E F0 .329(If set, calling)184 206.4 R
+F1(unset)2.829 E F0 .329(on local v)2.829 F .329(ariables in pre)-.25 F
+.328(vious function scopes marks them so subse-)-.25 F .543(quent looku\
ps \214nd them unset until that function returns. This is identical to \
-the beha)184 597.6 R(v-)-.2 E(ior of unsetting local v)184 609.6 Q
-(ariables at the current function scope.)-.25 E F1(login_shell)144 626.4
-Q F0 .486
+the beha)184 218.4 R(v-)-.2 E(ior of unsetting local v)184 230.4 Q
+(ariables at the current function scope.)-.25 E F1(login_shell)144 247.2
+Q F0 .693
(The shell sets this option if it is started as a login shell \(see)184
-638.4 R F2(INV)2.987 E(OCA)-.405 E(TION)-.855 E F0(abo)2.737 E -.15(ve)
--.15 G 2.987(\). The).15 F -.25(va)184 650.4 S(lue may not be changed.)
-.25 E F1(mailwar)144 667.2 Q(n)-.15 E F0 .815(If set, and a \214le that)
-184 679.2 R F1(bash)3.315 E F0 .814
-(is checking for mail has been accessed since the last time it)3.315 F
--.1(wa)184 691.2 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
+259.2 R/F2 9/Times-Bold@0 SF(INV)3.192 E(OCA)-.405 E(TION)-.855 E F0(in)
+2.942 E/F3 10/Times-Italic@0 SF(bash\(1\))3.192 E F0(\).)A(The v)184
+271.2 Q(alue may not be changed.)-.25 E F1(mailwar)144 288 Q(n)-.15 E F0
+.814(If set, and a \214le that)184 300 R F1(bash)3.314 E F0 .815
+(is checking for mail has been accessed since the last time it)3.314 F
+-.1(wa)184 312 S 2.5(sc).1 G(heck)-2.5 E(ed, the message `)-.1 E
(`The mail in)-.74 E F3(mail\214le)2.5 E F0(has been read')2.5 E 2.5('i)
--.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)
-149.565 E(20)198.725 E 0 Cg EP
-%%Page: 21 21
+-.74 G 2.5(sd)-2.5 G(isplayed.)-2.5 E F1(no_empty_cmd_completion)144
+328.8 Q F0 .325(If set, and)184 340.8 R F1 -.18(re)2.825 G(adline).18 E
+F0 .325(is being used,)2.825 F F1(bash)2.824 E F0 .324
+(will not attempt to search the)2.824 F F2 -.666(PA)2.824 G(TH)-.189 E
+F0 .324(for possible)2.574 F
+(completions when completion is attempted on an empty line.)184 352.8 Q
+F1(nocaseglob)144 369.6 Q F0 .436(If set,)184 381.6 R F1(bash)2.936 E F0
+.436(matches \214lenames in a case\255insensiti)2.936 F .737 -.15(ve f)
+-.25 H .437(ashion when performing pathname).05 F -.15(ex)184 393.6 S
+(pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(in)2.5 E
+F3(bash\(1\))2.5 E F0(\).)A F1(nocasematch)144 410.4 Q F0 1.194(If set,)
+184 422.4 R F1(bash)3.694 E F0 1.194
+(matches patterns in a case\255insensiti)3.694 F 1.493 -.15(ve f)-.25 H
+1.193(ashion when performing matching).05 F .551(while e)184 434.4 R
+-.15(xe)-.15 G(cuting).15 E F1(case)3.051 E F0(or)3.051 E F1([[)3.051 E
+F0 .551(conditional commands, when performing pattern substitution)3.051
+F -.1(wo)184 446.4 S .623(rd e).1 F .623(xpansions, or when \214ltering\
+ possible completions as part of programmable com-)-.15 F(pletion.)184
+458.4 Q F1(noexpand_translation)144 475.2 Q F0 1.117(If set,)184 487.2 R
+F1(bash)3.617 E F0 1.117(encloses the translated results of $"..." quot\
+ing in single quotes instead of)3.617 F(double quotes.)184 499.2 Q
+(If the string is not translated, this has no ef)5 E(fect.)-.25 E F1
+(nullglob)144 516 Q F0 .319(If set,)184 528 R F1(bash)2.819 E F0(allo)
+2.819 E .319(ws patterns which match no \214les \(see)-.25 F F1 -.1(Pa)
+2.818 G .318(thname Expansion).1 F F0(in)2.818 E F3(bash\(1\))2.818 E F0
+(\))A(to e)184 540 Q(xpand to a null string, rather than themselv)-.15 E
+(es.)-.15 E F1(patsub_r)144 556.8 Q(eplacement)-.18 E F0 .105(If set,)
+184 568.8 R F1(bash)2.605 E F0 -.15(ex)2.605 G .105
+(pands occurrences of).15 F F1(&)2.606 E F0 .106
+(in the replacement string of pattern substitution to)2.606 F .989
+(the te)184 580.8 R .988(xt matched by the pattern, as described under)
+-.15 F F1 -.1(Pa)3.488 G .988(rameter Expansion).1 F F0(in)3.488 E F3
+(bash\(1\))3.488 E F0(.)A(This option is enabled by def)184 592.8 Q
+(ault.)-.1 E F1(pr)144 609.6 Q(ogcomp)-.18 E F0 2.802
+(If set, the programmable completion f)184 621.6 R 2.802
+(acilities \(see)-.1 F F1(Pr)5.302 E 2.803(ogrammable Completion)-.18 F
+F0(in)5.303 E F3(bash\(1\))184 633.6 Q F0 2.5(\)a)C(re enabled.)-2.5 E
+(This option is enabled by def)5 E(ault.)-.1 E F1(pr)144 650.4 Q
+(ogcomp_alias)-.18 E F0 2.124
+(If set, and programmable completion is enabled,)184 662.4 R F1(bash)
+4.624 E F0 2.124(treats a command name that)4.624 F(doesn')184 674.4 Q
+3.288(th)-.18 G -2.25 -.2(av e)-3.288 H(an)3.488 E 3.288(yc)-.15 G .789
+(ompletions as a possible alias and attempts alias e)-3.288 F .789
+(xpansion. If it has)-.15 F 1.473(an alias,)184 686.4 R F1(bash)3.973 E
+F0 1.473(attempts programmable completion using the command w)3.973 F
+1.473(ord resulting)-.1 F(from the e)184 698.4 Q(xpanded alias.)-.15 E
+(GNU Bash 5.2)72 768 Q(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E
+(21)185.545 E 0 Cg EP
+%%Page: 22 22
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF
-(no_empty_cmd_completion)144 84 Q F0 .324(If set, and)184 96 R F1 -.18
-(re)2.824 G(adline).18 E F0 .324(is being used,)2.824 F F1(bash)2.824 E
-F0 .324(will not attempt to search the)2.824 F/F2 9/Times-Bold@0 SF
--.666(PA)2.825 G(TH)-.189 E F0 .325(for possible)2.575 F
-(completions when completion is attempted on an empty line.)184 108 Q F1
-(nocaseglob)144 124.8 Q F0 .437(If set,)184 136.8 R F1(bash)2.937 E F0
-.436(matches \214lenames in a case\255insensiti)2.937 F .736 -.15(ve f)
--.25 H .436(ashion when performing pathname).05 F -.15(ex)184 148.8 S
-(pansion \(see).15 E F1 -.1(Pa)2.5 G(thname Expansion).1 E F0(abo)2.5 E
--.15(ve)-.15 G(\).).15 E F1(nocasematch)144 165.6 Q F0 1.193(If set,)184
-177.6 R F1(bash)3.693 E F0 1.194
-(matches patterns in a case\255insensiti)3.693 F 1.494 -.15(ve f)-.25 H
-1.194(ashion when performing matching).05 F .551(while e)184 189.6 R
--.15(xe)-.15 G(cuting).15 E F1(case)3.051 E F0(or)3.051 E F1([[)3.051 E
-F0 .551(conditional commands, when performing pattern substitution)3.051
-F -.1(wo)184 201.6 S .622(rd e).1 F .623(xpansions, or when \214ltering\
- possible completions as part of programmable com-)-.15 F(pletion.)184
-213.6 Q F1(nullglob)144 230.4 Q F0 .855(If set,)184 242.4 R F1(bash)
-3.355 E F0(allo)3.355 E .855(ws patterns which match no \214les \(see)
--.25 F F1 -.1(Pa)3.354 G .854(thname Expansion).1 F F0(abo)3.354 E -.15
-(ve)-.15 G 3.354(\)t).15 G(o)-3.354 E -.15(ex)184 254.4 S
-(pand to a null string, rather than themselv).15 E(es.)-.15 E F1(pr)144
-271.2 Q(ogcomp)-.18 E F0 .676(If set, the programmable completion f)184
-283.2 R .677(acilities \(see)-.1 F F1(Pr)3.177 E .677
-(ogrammable Completion)-.18 F F0(abo)3.177 E -.15(ve)-.15 G(\)).15 E
-(are enabled.)184 295.2 Q(This option is enabled by def)5 E(ault.)-.1 E
-F1(pr)144 312 Q(ogcomp_alias)-.18 E F0 2.124
-(If set, and programmable completion is enabled,)184 324 R F1(bash)4.624
-E F0 2.124(treats a command name that)4.624 F(doesn')184 336 Q 3.288(th)
--.18 G -2.25 -.2(av e)-3.288 H(an)3.488 E 3.288(yc)-.15 G .789
-(ompletions as a possible alias and attempts alias e)-3.288 F .789
-(xpansion. If it has)-.15 F 1.473(an alias,)184 348 R F1(bash)3.973 E F0
-1.473(attempts programmable completion using the command w)3.973 F 1.473
-(ord resulting)-.1 F(from the e)184 360 Q(xpanded alias.)-.15 E F1(pr)
-144 376.8 Q(omptv)-.18 E(ars)-.1 E F0 1.447
-(If set, prompt strings under)184 388.8 R 1.448(go parameter e)-.18 F
-1.448(xpansion, command substitution, arithmetic)-.15 F -.15(ex)184
-400.8 S .171(pansion, and quote remo).15 F -.25(va)-.15 G 2.67(la).25 G
-.17(fter being e)-2.67 F .17(xpanded as described in)-.15 F F2(PR)2.67 E
-(OMPTING)-.27 E F0(abo)2.42 E -.15(ve)-.15 G(.).15 E
-(This option is enabled by def)184 412.8 Q(ault.)-.1 E F1 -.18(re)144
-429.6 S(stricted_shell).18 E F0 1.069
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(pr)144 84 Q(omptv)
+-.18 E(ars)-.1 E F0 1.447(If set, prompt strings under)184 96 R 1.448
+(go parameter e)-.18 F 1.448(xpansion, command substitution, arithmetic)
+-.15 F -.15(ex)184 108 S 1.834(pansion, and quote remo).15 F -.25(va)
+-.15 G 4.334(la).25 G 1.834(fter being e)-4.334 F 1.834
+(xpanded as described in)-.15 F/F2 9/Times-Bold@0 SF(PR)4.333 E(OMPTING)
+-.27 E F0(in)4.083 E/F3 10/Times-Italic@0 SF(bash\(1\))184 120 Q F0 5
+(.T)C(his option is enabled by def)-5 E(ault.)-.1 E F1 -.18(re)144 136.8
+S(stricted_shell).18 E F0 .329
(The shell sets this option if it is started in restricted mode \(see)
-184 441.6 R F2 1.069(RESTRICTED SHELL)3.569 F F0(belo)184 453.6 Q 2.86
-(w\). The)-.25 F -.25(va)2.86 G .36(lue may not be changed.).25 F .36
-(This is not reset when the startup \214les are e)5.36 F -.15(xe)-.15 G
-(-).15 E(cuted, allo)184 465.6 Q(wing the startup \214les to disco)-.25
-E -.15(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5
-E F1(shift_v)144 482.4 Q(erbose)-.1 E F0 .501(If set, the)184 494.4 R F1
+184 148.8 R F2 .329(RESTRICTED SHELL)2.829 F F0(in)2.58 E F3(bash\(1\))
+184 160.8 Q F0 2.731(\). The)B -.25(va)2.731 G .231
+(lue may not be changed.).25 F .23
+(This is not reset when the startup \214les are e)5.231 F(x-)-.15 E
+(ecuted, allo)184 172.8 Q(wing the startup \214les to disco)-.25 E -.15
+(ve)-.15 G 2.5(rw).15 G(hether or not a shell is restricted.)-2.5 E F1
+(shift_v)144 189.6 Q(erbose)-.1 E F0 .501(If set, the)184 201.6 R F1
(shift)3.001 E F0 -.2(bu)3.001 G .501
(iltin prints an error message when the shift count e).2 F .502
-(xceeds the number)-.15 F(of positional parameters.)184 506.4 Q F1(sour)
-144 523.2 Q(cepath)-.18 E F0 .771(If set, the)184 535.2 R F1(sour)3.271
-E(ce)-.18 E F0(\()3.271 E F1(.)A F0 3.271(\)b)C .771(uiltin uses the v)
+(xceeds the number)-.15 F(of positional parameters.)184 213.6 Q F1(sour)
+144 230.4 Q(cepath)-.18 E F0 .771(If set, the)184 242.4 R F1(.)3.271 E
+F0(\()3.271 E F1(sour)A(ce)-.18 E F0 3.271(\)b)C .771(uiltin uses the v)
-3.471 F .771(alue of)-.25 F F2 -.666(PA)3.27 G(TH)-.189 E F0 .77
(to \214nd the directory containing the)3.02 F(\214le supplied as an ar)
-184 547.2 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E
-(ault.)-.1 E F1(xpg_echo)144 564 Q F0(If set, the)184 576 Q F1(echo)2.5
-E F0 -.2(bu)2.5 G(iltin e).2 E(xpands backslash-escape sequences by def)
--.15 E(ault.)-.1 E F1(suspend)108 592.8 Q F0([)2.5 E F1<ad66>A F0(])A
-1.001(Suspend the e)144 604.8 R -.15(xe)-.15 G 1.001
-(cution of this shell until it recei).15 F -.15(ve)-.25 G 3.501(sa).15 G
-F2(SIGCONT)A F0 3.502(signal. A)3.252 F 1.002(login shell cannot be)
-3.502 F .023(suspended; the)144 616.8 R F1<ad66>2.523 E F0 .023
-(option can be used to o)2.523 F -.15(ve)-.15 G .022
-(rride this and force the suspension.).15 F .022(The return status is)
-5.022 F 2.5(0u)144 628.8 S(nless the shell is a login shell and)-2.5 E
-F1<ad66>2.5 E F0(is not supplied, or if job control is not enabled.)2.5
-E F1(test)108 645.6 Q/F3 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F1([)
-108 657.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 .877
-(Return a status of 0 \(true\) or 1 \(f)144 657.6 R .878
-(alse\) depending on the e)-.1 F -.25(va)-.25 G .878
-(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 669.6
+184 254.4 Q 2.5(gument. This)-.18 F(option is enabled by def)2.5 E
+(ault.)-.1 E F1 -.1(va)144 271.2 S(rr).1 E(edir_close)-.18 E F0 .74(If \
+set, the shell automatically closes \214le descriptors assigned using t\
+he)184 283.2 R F3({varname})3.24 E F0(redi-)3.24 E .908
+(rection syntax \(see)184 295.2 R F2(REDIRECTION)3.408 E F0(in)3.157 E
+F3(bash\(1\))3.407 E F0 3.407(\)i)C .907(nstead of lea)-3.407 F .907
+(ving them open when the)-.2 F(command completes.)184 307.2 Q F1
+(xpg_echo)144 324 Q F0(If set, the)184 336 Q F1(echo)2.5 E F0 -.2(bu)2.5
+G(iltin e).2 E(xpands backslash-escape sequences by def)-.15 E(ault.)-.1
+E F1(suspend)108 352.8 Q F0([)2.5 E F1<ad66>A F0(])A .909(Suspend the e)
+144 364.8 R -.15(xe)-.15 G .909(cution of this shell until it recei).15
+F -.15(ve)-.25 G 3.41(sa).15 G F2(SIGCONT)A F0 3.41(signal. A)3.16 F .91
+(login shell, or a shell)3.41 F .753
+(without job control enabled, cannot be suspended; the)144 376.8 R F1
+<ad66>3.253 E F0 .752(option can be used to o)3.252 F -.15(ve)-.15 G
+.752(rride this and).15 F .107(force the suspension.)144 388.8 R .107(T\
+he return status is 0 unless the shell is a login shell or job control \
+is not en-)5.107 F(abled and)144 400.8 Q F1<ad66>2.5 E F0
+(is not supplied.)2.5 E F1(test)108 417.6 Q F3 -.2(ex)2.5 G(pr).2 E F1
+([)108 429.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(])2.5 E F0 .878
+(Return a status of 0 \(true\) or 1 \(f)144 429.6 R .877
+(alse\) depending on the e)-.1 F -.25(va)-.25 G .877
+(luation of the conditional e).25 F(xpression)-.15 E F3 -.2(ex)144 441.6
S(pr).2 E F0 5.53(.E).73 G .53
(ach operator and operand must be a separate ar)-5.53 F 3.03
-(gument. Expressions)-.18 F .53(are composed of the)3.03 F .072
-(primaries described in the)144 681.6 R F1(bash)2.573 E F0 .073
-(manual page under)2.573 F F2(CONDITION)2.573 E .073(AL EXPRESSIONS)-.18
-F/F4 9/Times-Roman@0 SF(.)A F1(test)4.573 E F0 .073(does not)2.573 F
-.695(accept an)144 693.6 R 3.195(yo)-.15 G .695
-(ptions, nor does it accept and ignore an ar)-3.195 F .694(gument of)
--.18 F F1<adad>3.194 E F0 .694(as signifying the end of op-)3.194 F
-(tions.)144 705.6 Q 3.141(Expressions may be combined using the follo)
-144 723.6 R 3.141(wing operators, listed in decreasing order of)-.25 F
-(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(21)198.725 E 0 Cg EP
-%%Page: 22 22
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
-(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E 4.114(precedence. The)144 84 R -.25(eva)
-4.114 G 1.613(luation depends on the number of ar).25 F 1.613
-(guments; see belo)-.18 F 5.413 -.65(w. O)-.25 H 1.613(perator prece-)
-.65 F(dence is used when there are \214v)144 96 Q 2.5(eo)-.15 G 2.5(rm)
--2.5 G(ore ar)-2.5 E(guments.)-.18 E/F1 10/Times-Bold@0 SF(!)144 108 Q
-/F2 10/Times-Italic@0 SF -.2(ex)2.5 G(pr).2 E F0 -.35(Tr)180 108 S
-(ue if).35 E F2 -.2(ex)2.5 G(pr).2 E F0(is f)3.23 E(alse.)-.1 E F1(\()
-144 120 Q F2 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0 .26(Returns the v)180
-120 R .26(alue of)-.25 F F2 -.2(ex)2.76 G(pr).2 E F0 5.26(.T)C .26
-(his may be used to o)-5.26 F -.15(ve)-.15 G .26
-(rride the normal precedence of opera-).15 F(tors.)180 132 Q F2 -.2(ex)
-144 144 S(pr1).2 E F0<ad>2.5 E F1(a)A F2 -.2(ex)2.5 G(pr2).2 E F0 -.35
-(Tr)180 156 S(ue if both).35 E F2 -.2(ex)2.5 G(pr1).2 E F0(and)2.5 E F2
--.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F2 -.2(ex)144 168 S(pr1).2 E
-F0<ad>2.5 E F1(o)A F2 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180 180 S
-(ue if either).35 E F2 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F2 -.2(ex)2.5 G
-(pr2).2 E F0(is true.)2.52 E F1(test)144 196.8 Q F0(and)2.5 E F1([)2.5 E
-F0 -.25(eva)2.5 G(luate conditional e).25 E
+(gument. Expressions)-.18 F .53(are composed of the)3.03 F 1.232
+(primaries described in)144 453.6 R F3(bash\(1\))3.732 E F0(under)3.731
+E F2(CONDITION)3.731 E 1.231(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF
+(.)A F1(test)5.731 E F0 1.231(does not accept an)3.731 F(y)-.15 E
+(options, nor does it accept and ignore an ar)144 465.6 Q(gument of)-.18
+E F1<adad>2.5 E F0(as signifying the end of options.)2.5 E .785
+(Expressions may be combined using the follo)144 483.6 R .786
+(wing operators, listed in decreasing order of prece-)-.25 F 3.412
+(dence. The)144 495.6 R -.25(eva)3.412 G .912
+(luation depends on the number of ar).25 F .911(guments; see belo)-.18 F
+4.711 -.65(w. O)-.25 H .911(perator precedence is).65 F
+(used when there are \214v)144 507.6 Q 2.5(eo)-.15 G 2.5(rm)-2.5 G
+(ore ar)-2.5 E(guments.)-.18 E F1(!)144 519.6 Q F3 -.2(ex)2.5 G(pr).2 E
+F0 -.35(Tr)180 519.6 S(ue if).35 E F3 -.2(ex)2.5 G(pr).2 E F0(is f)3.23
+E(alse.)-.1 E F1(\()144 531.6 Q F3 -.2(ex)2.5 G(pr).2 E F1(\))2.5 E F0
+.26(Returns the v)180 531.6 R .26(alue of)-.25 F F3 -.2(ex)2.76 G(pr).2
+E F0 5.26(.T)C .26(his may be used to o)-5.26 F -.15(ve)-.15 G .26
+(rride the normal precedence of opera-).15 F(tors.)180 543.6 Q F3 -.2
+(ex)144 555.6 S(pr1).2 E F0<ad>2.5 E F1(a)A F3 -.2(ex)2.5 G(pr2).2 E F0
+-.35(Tr)180 567.6 S(ue if both).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(and)2.5
+E F3 -.2(ex)2.5 G(pr2).2 E F0(are true.)2.52 E F3 -.2(ex)144 579.6 S
+(pr1).2 E F0<ad>2.5 E F1(o)A F3 -.2(ex)2.5 G(pr2).2 E F0 -.35(Tr)180
+591.6 S(ue if either).35 E F3 -.2(ex)2.5 G(pr1).2 E F0(or)2.5 E F3 -.2
+(ex)2.5 G(pr2).2 E F0(is true.)2.52 E F1(test)144 608.4 Q F0(and)2.5 E
+F1([)2.5 E F0 -.25(eva)2.5 G(luate conditional e).25 E
(xpressions using a set of rules based on the number of ar)-.15 E
-(guments.)-.18 E 2.5(0a)144 214.8 S -.18(rg)-2.5 G(uments).18 E(The e)
-180 226.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 238.8 S -.18
-(rg)-2.5 G(ument).18 E(The e)180 250.8 Q
+(guments.)-.18 E 2.5(0a)144 626.4 S -.18(rg)-2.5 G(uments).18 E(The e)
+180 638.4 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(1a)144 650.4 S -.18
+(rg)-2.5 G(ument).18 E(The e)180 662.4 Q
(xpression is true if and only if the ar)-.15 E(gument is not null.)-.18
-E 2.5(2a)144 262.8 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
-180 274.8 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
+E 2.5(2a)144 674.4 S -.18(rg)-2.5 G(uments).18 E .37(If the \214rst ar)
+180 686.4 R .37(gument is)-.18 F F1(!)2.87 E F0 2.87(,t)C .37(he e)-2.87
F .37(xpression is true if and only if the second ar)-.15 F .37
-(gument is null.)-.18 F .379(If the \214rst ar)180 286.8 R .38
-(gument is one of the unary conditional operators listed abo)-.18 F .68
--.15(ve u)-.15 H(nder).15 E/F3 9/Times-Bold@0 SF(CONDI-)2.88 E(TION)180
-298.8 Q .553(AL EXPRESSIONS)-.18 F/F4 9/Times-Roman@0 SF(,)A F0 .552
-(the e)2.802 F .552(xpression is true if the unary test is true.)-.15 F
-.552(If the \214rst ar)5.552 F(gu-)-.18 E(ment is not a v)180 310.8 Q
+(gument is null.)-.18 F 1.682(If the \214rst ar)180 698.4 R 1.683
+(gument is one of the unary conditional operators listed in)-.18 F F3
+(bash\(1\))4.183 E F0(under)4.183 E F2(CONDITION)180 710.4 Q .122
+(AL EXPRESSIONS)-.18 F F4(,)A F0 .122(the e)2.372 F .122
+(xpression is true if the unary test is true.)-.15 F .121
+(If the \214rst)5.121 F(ar)180 722.4 Q(gument is not a v)-.18 E
(alid unary conditional operator)-.25 E 2.5(,t)-.4 G(he e)-2.5 E
-(xpression is f)-.15 E(alse.)-.1 E 2.5(3a)144 322.8 S -.18(rg)-2.5 G
-(uments).18 E .236(The follo)180 334.8 R .236
-(wing conditions are applied in the order listed.)-.25 F .236
-(If the second ar)5.236 F .236(gument is one of)-.18 F .855
-(the binary conditional operators listed abo)180 346.8 R 1.155 -.15
-(ve u)-.15 H(nder).15 E F3(CONDITION)3.355 E .855(AL EXPRESSIONS)-.18 F
-F4(,)A F0(the)3.104 E .578(result of the e)180 358.8 R .578(xpression i\
-s the result of the binary test using the \214rst and third ar)-.15 F
-(guments)-.18 E 1.333(as operands.)180 370.8 R(The)6.333 E F1<ad61>3.833
-E F0(and)3.833 E F1<ad6f>3.832 E F0 1.332
-(operators are considered binary operators when there are)3.832 F .558
-(three ar)180 382.8 R 3.058(guments. If)-.18 F .558(the \214rst ar)3.058
-F .558(gument is)-.18 F F1(!)3.058 E F0 3.058(,t)C .558(he v)-3.058 F
-.558(alue is the ne)-.25 F -.05(ga)-.15 G .558(tion of the tw).05 F
-(o-ar)-.1 E(gument)-.18 E .521(test using the second and third ar)180
-394.8 R 3.021(guments. If)-.18 F .521(the \214rst ar)3.021 F .52
-(gument is e)-.18 F(xactly)-.15 E F1(\()3.02 E F0 .52(and the third)3.02
-F(ar)180 406.8 Q .485(gument is e)-.18 F(xactly)-.15 E F1(\))2.985 E F0
-2.985(,t)C .485(he result is the one-ar)-2.985 F .485
-(gument test of the second ar)-.18 F 2.985(gument. Other)-.18 F(-)-.2 E
-(wise, the e)180 418.8 Q(xpression is f)-.15 E(alse.)-.1 E 2.5(4a)144
-430.8 S -.18(rg)-2.5 G(uments).18 E .385(If the \214rst ar)180 442.8 R
-.385(gument is)-.18 F F1(!)2.885 E F0 2.885(,t)C .385
-(he result is the ne)-2.885 F -.05(ga)-.15 G .384(tion of the three-ar)
-.05 F .384(gument e)-.18 F .384(xpression com-)-.15 F .284
-(posed of the remaining ar)180 454.8 R 2.784(guments. Otherwise,)-.18 F
-.284(the e)2.784 F .284(xpression is parsed and e)-.15 F -.25(va)-.25 G
-.285(luated ac-).25 F(cording to precedence using the rules listed abo)
-180 466.8 Q -.15(ve)-.15 G(.).15 E 2.5(5o)144 478.8 S 2.5(rm)-2.5 G
-(ore ar)-2.5 E(guments)-.18 E 1.635(The e)180 490.8 R 1.635
-(xpression is parsed and e)-.15 F -.25(va)-.25 G 1.635
-(luated according to precedence using the rules listed).25 F(abo)180
-502.8 Q -.15(ve)-.15 G(.).15 E(When used with)144 520.8 Q F1(test)2.5 E
-F0(or)2.5 E F1([)2.5 E F0 2.5(,t)C(he)-2.5 E F1(<)2.5 E F0(and)2.5 E F1
-(>)2.5 E F0(operators sort le)2.5 E
-(xicographically using ASCII ordering.)-.15 E F1(times)108 537.6 Q F0
-1.229(Print the accumulated user and system times for the shell and for\
- processes run from the shell.)144 537.6 R(The return status is 0.)144
-549.6 Q F1(trap)108 566.4 Q F0([)2.5 E F1(\255lp)A F0 2.5(][)C([)-2.5 E
-F2(ar)A(g)-.37 E F0(])A F2(sigspec)2.5 E F0(...])2.5 E .683(The command)
-144 578.4 R F2(ar)3.513 E(g)-.37 E F0 .683(is to be read and e)3.403 F
--.15(xe)-.15 G .682(cuted when the shell recei).15 F -.15(ve)-.25 G
-3.182(ss).15 G(ignal\(s\))-3.182 E F2(sigspec)3.522 E F0 5.682(.I).31 G
-(f)-5.682 E F2(ar)3.512 E(g)-.37 E F0(is)3.402 E .608
-(absent \(and there is a single)144 590.4 R F2(sigspec)3.108 E F0 3.108
-(\)o)C(r)-3.108 E F1<ad>3.108 E F0 3.108(,e)C .608
-(ach speci\214ed signal is reset to its original disposition)-3.108 F
-.659(\(the v)144 602.4 R .659(alue it had upon entrance to the shell\).)
--.25 F(If)5.658 E F2(ar)3.488 E(g)-.37 E F0 .658
-(is the null string the signal speci\214ed by each)3.378 F F2(sigspec)
-144.34 614.4 Q F0 .58(is ignored by the shell and by the commands it in)
-3.39 F -.2(vo)-.4 G -.1(ke).2 G 3.081(s. If).1 F F2(ar)3.411 E(g)-.37 E
-F0 .581(is not present and)3.301 F F1<ad70>3.081 E F0(has)3.081 E 1.215
-(been supplied, then the trap commands associated with each)144 626.4 R
-F2(sigspec)4.054 E F0 1.214(are displayed.)4.024 F 1.214(If no ar)6.214
-F(gu-)-.18 E .86(ments are supplied or if only)144 638.4 R F1<ad70>3.36
-E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F1(trap)3.36 E F0 .86
-(prints the list of commands associated with each)3.36 F 2.83
-(signal. The)144 650.4 R F1<ad6c>2.83 E F0 .33(option causes the shell \
-to print a list of signal names and their corresponding num-)2.83 F 4.31
-(bers. Each)144 662.4 R F2(sigspec)4.65 E F0 1.811
-(is either a signal name de\214ned in <)4.62 F F2(signal.h)A F0 1.811
-(>, or a signal number)B 6.811(.S)-.55 G(ignal)-6.811 E
-(names are case insensiti)144 674.4 Q .3 -.15(ve a)-.25 H(nd the).15 E
-F3(SIG)2.5 E F0(pre\214x is optional.)2.25 E .667(If a)144 692.4 R F2
-(sigspec)3.507 E F0(is)3.477 E F3(EXIT)3.167 E F0 .667
-(\(0\) the command)2.917 F F2(ar)3.496 E(g)-.37 E F0 .666(is e)3.386 F
--.15(xe)-.15 G .666(cuted on e).15 F .666(xit from the shell.)-.15 F
-.666(If a)5.666 F F2(sigspec)3.506 E F0(is)3.476 E F3(DE-)3.166 E -.09
-(BU)144 704.4 S(G).09 E F4(,)A F0 .483(the command)2.733 F F2(ar)3.313 E
-(g)-.37 E F0 .483(is e)3.203 F -.15(xe)-.15 G .484(cuted before e).15 F
--.15(ve)-.25 G(ry).15 E F2 .484(simple command)2.984 F F0(,)A F2(for)
-2.984 E F0(command,)2.984 E F2(case)2.984 E F0(command,)2.984 E F2
-(select)144 716.4 Q F0 .563(command, e)3.063 F -.15(ve)-.25 G .563
-(ry arithmetic).15 F F2(for)3.063 E F0 .563
-(command, and before the \214rst command e)3.063 F -.15(xe)-.15 G .562
-(cutes in a shell).15 F .622(function \(see)144 728.4 R F3 .622
-(SHELL GRAMMAR)3.122 F F0(abo)2.872 E -.15(ve)-.15 G 3.122(\). Refer).15
-F .622(to the description of the)3.122 F F1(extdeb)3.122 E(ug)-.2 E F0
-.622(option to the)3.122 F(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E
-(22)198.725 E 0 Cg EP
+(xpression is f)-.15 E(alse.)-.1 E(GNU Bash 5.2)72 768 Q(2021 No)136.385
+E -.15(ve)-.15 G(mber 22).15 E(22)185.545 E 0 Cg EP
%%Page: 23 23
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(shopt)144 84 Q F0 -.2
-(bu)2.996 G .496(iltin for details of its ef).2 F .496(fect on the)-.25
-F F1(DEB)2.996 E(UG)-.1 E F0 2.996(trap. If)2.996 F(a)2.996 E/F2 10
-/Times-Italic@0 SF(sigspec)3.336 E F0(is)3.306 E/F3 9/Times-Bold@0 SF
-(RETURN)2.996 E/F4 9/Times-Roman@0 SF(,)A F0 .496(the command)2.746 F F2
-(ar)144.33 96 Q(g)-.37 E F0 .18(is e)2.9 F -.15(xe)-.15 G .18
-(cuted each time a shell function or a script e).15 F -.15(xe)-.15 G .18
-(cuted with the).15 F F1(.)2.68 E F0(or)2.68 E F1(sour)2.68 E(ce)-.18 E
-F0 -.2(bu)2.68 G .18(iltins \214nishes).2 F -.15(exe)144 108 S(cuting.)
-.15 E .961(If a)144 126 R F2(sigspec)3.801 E F0(is)3.771 E F3(ERR)3.461
-E F4(,)A F0 .961(the command)3.211 F F2(ar)3.791 E(g)-.37 E F0 .961
-(is e)3.681 F -.15(xe)-.15 G .961(cuted whene).15 F -.15(ve)-.25 G 3.461
-(ra).15 G .96(pipeline \(which may consist of a)-.001 F .185(single sim\
-ple command\), a list, or a compound command returns a non\255zero e)144
-138 R .185(xit status, subject to)-.15 F .452(the follo)144 150 R .452
-(wing conditions.)-.25 F(The)5.452 E F3(ERR)2.952 E F0 .451
-(trap is not e)2.701 F -.15(xe)-.15 G .451(cuted if the f).15 F .451
-(ailed command is part of the com-)-.1 F .387
-(mand list immediately follo)144 162 R .387(wing a)-.25 F F1(while)2.887
-E F0(or)2.887 E F1(until)2.888 E F0 -.1(ke)2.888 G(yw)-.05 E .388
-(ord, part of the test in an)-.1 F F2(if)2.898 E F0 .388
-(statement, part)4.848 F .778(of a command e)144 174 R -.15(xe)-.15 G
-.778(cuted in a).15 F F1(&&)3.278 E F0(or)3.278 E F1(||)3.278 E F0 .778
+E(UIL)-.1 E(TINS\(1\))-.92 E 2.5(3a)144 84 S -.18(rg)-2.5 G(uments).18 E
+.236(The follo)180 96 R .236
+(wing conditions are applied in the order listed.)-.25 F .236
+(If the second ar)5.236 F .236(gument is one of)-.18 F .546
+(the binary conditional operators listed in)180 108 R/F1 10
+/Times-Italic@0 SF(bash\(1\))3.046 E F0(under)3.046 E/F2 9/Times-Bold@0
+SF(CONDITION)3.046 E .546(AL EXPRESSIONS)-.18 F/F3 9/Times-Roman@0 SF(,)
+A F0 .887(the result of the e)180 120 R .888(xpression is the result of\
+ the binary test using the \214rst and third ar)-.15 F(gu-)-.18 E .434
+(ments as operands.)180 132 R(The)5.434 E/F4 10/Times-Bold@0 SF<ad61>
+2.934 E F0(and)2.934 E F4<ad6f>2.934 E F0 .434
+(operators are considered binary operators when there)2.934 F .645
+(are three ar)180 144 R 3.145(guments. If)-.18 F .645(the \214rst ar)
+3.145 F .646(gument is)-.18 F F4(!)3.146 E F0 3.146(,t)C .646(he v)
+-3.146 F .646(alue is the ne)-.25 F -.05(ga)-.15 G .646(tion of the tw)
+.05 F(o-ar)-.1 E(gu-)-.18 E .452
+(ment test using the second and third ar)180 156 R 2.951(guments. If)
+-.18 F .451(the \214rst ar)2.951 F .451(gument is e)-.18 F(xactly)-.15 E
+F4(\()2.951 E F0 .451(and the)2.951 F 1.164(third ar)180 168 R 1.164
+(gument is e)-.18 F(xactly)-.15 E F4(\))3.664 E F0 3.664(,t)C 1.164
+(he result is the one-ar)-3.664 F 1.165(gument test of the second ar)
+-.18 F(gument.)-.18 E(Otherwise, the e)180 180 Q(xpression is f)-.15 E
+(alse.)-.1 E 2.5(4a)144 192 S -.18(rg)-2.5 G(uments).18 E .43(The follo)
+180 204 R .43(wing conditions are applied in the order listed.)-.25 F
+.429(If the \214rst ar)5.429 F .429(gument is)-.18 F F4(!)2.929 E F0
+2.929(,t)C .429(he re-)-2.929 F 1.314(sult is the ne)180 216 R -.05(ga)
+-.15 G 1.314(tion of the three-ar).05 F 1.314(gument e)-.18 F 1.314
+(xpression composed of the remaining ar)-.15 F(gu-)-.18 E 2.745
+(ments. the)180 228 R(tw)2.745 E(o-ar)-.1 E .245
+(gument test using the second and third ar)-.18 F 2.744(guments. If)-.18
+F .244(the \214rst ar)2.744 F(gument)-.18 E .309(is e)180 240 R(xactly)
+-.15 E F4(\()2.809 E F0 .309(and the fourth ar)2.809 F .309(gument is e)
+-.18 F(xactly)-.15 E F4(\))2.809 E F0 2.809(,t)C .31
+(he result is the tw)-2.809 F(o-ar)-.1 E .31(gument test of the)-.18 F
+.184(second and third ar)180 252 R 2.684(guments. Otherwise,)-.18 F .184
+(the e)2.684 F .183(xpression is parsed and e)-.15 F -.25(va)-.25 G .183
+(luated according).25 F(to precedence using the rules listed abo)180 264
+Q -.15(ve)-.15 G(.).15 E 2.5(5o)144 276 S 2.5(rm)-2.5 G(ore ar)-2.5 E
+(guments)-.18 E 1.635(The e)180 288 R 1.635(xpression is parsed and e)
+-.15 F -.25(va)-.25 G 1.635
+(luated according to precedence using the rules listed).25 F(abo)180 300
+Q -.15(ve)-.15 G(.).15 E(When used with)144 318 Q F4(test)2.5 E F0(or)
+2.5 E F4([)2.5 E F0 2.5(,t)C(he)-2.5 E F4(<)2.5 E F0(and)2.5 E F4(>)2.5
+E F0(operators sort le)2.5 E(xicographically using ASCII ordering.)-.15
+E F4(times)108 334.8 Q F0 1.229(Print the accumulated user and system t\
+imes for the shell and for processes run from the shell.)144 334.8 R
+(The return status is 0.)144 346.8 Q F4(trap)108 363.6 Q F0([)2.5 E F4
+(\255lp)A F0 2.5(][)C([)-2.5 E F1(ar)A(g)-.37 E F0(])A F1(sigspec)2.5 E
+F0(...])2.5 E .682(The command)144 375.6 R F1(ar)3.512 E(g)-.37 E F0
+.682(is to be read and e)3.402 F -.15(xe)-.15 G .682
+(cuted when the shell recei).15 F -.15(ve)-.25 G 3.183(ss).15 G
+(ignal\(s\))-3.183 E F1(sigspec)3.523 E F0 5.683(.I).31 G(f)-5.683 E F1
+(ar)3.513 E(g)-.37 E F0(is)3.403 E .609(absent \(and there is a single)
+144 387.6 R F1(sigspec)3.108 E F0 3.108(\)o)C(r)-3.108 E F4<ad>3.108 E
+F0 3.108(,e)C .608
+(ach speci\214ed signal is reset to its original disposition)-3.108 F
+.658(\(the v)144 399.6 R .658(alue it had upon entrance to the shell\).)
+-.25 F(If)5.658 E F1(ar)3.488 E(g)-.37 E F0 .659
+(is the null string the signal speci\214ed by each)3.378 F F1(sigspec)
+144.34 411.6 Q F0 .581
+(is ignored by the shell and by the commands it in)3.391 F -.2(vo)-.4 G
+-.1(ke).2 G 3.08(s. If).1 F F1(ar)3.41 E(g)-.37 E F0 .58
+(is not present and)3.3 F F4<ad70>3.08 E F0(has)3.08 E 1.214
+(been supplied, then the trap commands associated with each)144 423.6 R
+F1(sigspec)4.054 E F0 1.215(are displayed.)4.024 F 1.215(If no ar)6.215
+F(gu-)-.18 E .86(ments are supplied or if only)144 435.6 R F4<ad70>3.36
+E F0 .86(is gi)3.36 F -.15(ve)-.25 G(n,).15 E F4(trap)3.36 E F0 .86
+(prints the list of commands associated with each)3.36 F 2.83
+(signal. The)144 447.6 R F4<ad6c>2.83 E F0 .33(option causes the shell \
+to print a list of signal names and their corresponding num-)2.83 F
+4.311(bers. Each)144 459.6 R F1(sigspec)4.651 E F0 1.811
+(is either a signal name de\214ned in <)4.621 F F1(signal.h)A F0 1.81
+(>, or a signal number)B 6.81(.S)-.55 G(ignal)-6.81 E
+(names are case insensiti)144 471.6 Q .3 -.15(ve a)-.25 H(nd the).15 E
+F2(SIG)2.5 E F0(pre\214x is optional.)2.25 E .666(If a)144 489.6 R F1
+(sigspec)3.506 E F0(is)3.476 E F2(EXIT)3.166 E F0 .666
+(\(0\) the command)2.916 F F1(ar)3.496 E(g)-.37 E F0 .666(is e)3.386 F
+-.15(xe)-.15 G .666(cuted on e).15 F .667(xit from the shell.)-.15 F
+.667(If a)5.667 F F1(sigspec)3.507 E F0(is)3.477 E F2(DE-)3.167 E -.09
+(BU)144 501.6 S(G).09 E F3(,)A F0 .484(the command)2.734 F F1(ar)3.314 E
+(g)-.37 E F0 .484(is e)3.204 F -.15(xe)-.15 G .484(cuted before e).15 F
+-.15(ve)-.25 G(ry).15 E F1 .483(simple command)2.984 F F0(,)A F1(for)
+2.983 E F0(command,)2.983 E F1(case)2.983 E F0(command,)2.983 E F1
+(select)144 513.6 Q F0 .562(command, e)3.062 F -.15(ve)-.25 G .563
+(ry arithmetic).15 F F1(for)3.063 E F0 .563
+(command, and before the \214rst command e)3.063 F -.15(xe)-.15 G .563
+(cutes in a shell).15 F .442(function \(see)144 525.6 R F2 .442
+(SHELL GRAMMAR)2.942 F F0(in)2.692 E F1(bash\(1\))2.942 E F0 2.941
+(\). Refer)B .441(to the description of the)2.941 F F4(extdeb)2.941 E
+(ug)-.2 E F0 .441(option to)2.941 F(the)144 537.6 Q F4(shopt)3.2 E F0
+-.2(bu)3.2 G .7(iltin for details of its ef).2 F .7(fect on the)-.25 F
+F4(DEB)3.2 E(UG)-.1 E F0 3.2(trap. If)3.2 F(a)3.2 E F1(sigspec)3.54 E F0
+(is)3.51 E F2(RETURN)3.2 E F3(,)A F0 .701(the com-)2.951 F(mand)144
+549.6 Q F1(ar)3.474 E(g)-.37 E F0 .644(is e)3.364 F -.15(xe)-.15 G .643
+(cuted each time a shell function or a script e).15 F -.15(xe)-.15 G
+.643(cuted with the).15 F F4(.)3.143 E F0(or)3.143 E F4(sour)3.143 E(ce)
+-.18 E F0 -.2(bu)3.143 G(iltins).2 E(\214nishes e)144 561.6 Q -.15(xe)
+-.15 G(cuting.).15 E .96(If a)144 579.6 R F1(sigspec)3.8 E F0(is)3.77 E
+F2(ERR)3.46 E F3(,)A F0 .96(the command)3.21 F F1(ar)3.791 E(g)-.37 E F0
+.961(is e)3.681 F -.15(xe)-.15 G .961(cuted whene).15 F -.15(ve)-.25 G
+3.461(rap).15 G .961(ipeline \(which may consist of a)-3.461 F .185(sin\
+gle simple command\), a list, or a compound command returns a non\255ze\
+ro e)144 591.6 R .184(xit status, subject to)-.15 F .451(the follo)144
+603.6 R .451(wing conditions.)-.25 F(The)5.451 E F2(ERR)2.951 E F0 .451
+(trap is not e)2.701 F -.15(xe)-.15 G .451(cuted if the f).15 F .452
+(ailed command is part of the com-)-.1 F .388
+(mand list immediately follo)144 615.6 R .388(wing a)-.25 F F4(while)
+2.888 E F0(or)2.888 E F4(until)2.888 E F0 -.1(ke)2.888 G(yw)-.05 E .388
+(ord, part of the test in an)-.1 F F1(if)2.897 E F0 .387
+(statement, part)4.847 F .777(of a command e)144 627.6 R -.15(xe)-.15 G
+.778(cuted in a).15 F F4(&&)3.278 E F0(or)3.278 E F4(||)3.278 E F0 .778
(list e)3.278 F .778(xcept the command follo)-.15 F .778
-(wing the \214nal)-.25 F F1(&&)3.278 E F0(or)3.278 E F1(||)3.277 E F0
-3.277(,a)C -.15(ny)-3.277 G 1.28(command in a pipeline b)144 186 R 1.28
-(ut the last, or if the command')-.2 F 3.78(sr)-.55 G 1.28(eturn v)-3.78
-F 1.28(alue is being in)-.25 F -.15(ve)-.4 G 1.28(rted using).15 F F1(!)
-3.78 E F0(.)A(These are the same conditions obe)144 198 Q(yed by the)
--.15 E F1(err)2.5 E(exit)-.18 E F0(\()2.5 E F1<ad65>A F0 2.5(\)o)C
-(ption.)-2.5 E .133
+(wing the \214nal)-.25 F F4(&&)3.278 E F0(or)3.278 E F4(||)3.278 E F0
+3.278(,a)C -.15(ny)-3.278 G 1.28(command in a pipeline b)144 639.6 R
+1.28(ut the last, or if the command')-.2 F 3.78(sr)-.55 G 1.28(eturn v)
+-3.78 F 1.28(alue is being in)-.25 F -.15(ve)-.4 G 1.28(rted using).15 F
+F4(!)3.78 E F0(.)A(These are the same conditions obe)144 651.6 Q
+(yed by the)-.15 E F4(err)2.5 E(exit)-.18 E F0(\()2.5 E F4<ad65>A F0 2.5
+(\)o)C(ption.)-2.5 E .132
(Signals ignored upon entry to the shell cannot be trapped or reset.)144
-216 R -.35(Tr)5.132 G .132(apped signals that are not be-).35 F .117
-(ing ignored are reset to their original v)144 228 R .117
+669.6 R -.35(Tr)5.133 G .133(apped signals that are not be-).35 F .117
+(ing ignored are reset to their original v)144 681.6 R .117
(alues in a subshell or subshell en)-.25 F .117
-(vironment when one is cre-)-.4 F 2.5(ated. The)144 240 R
-(return status is f)2.5 E(alse if an)-.1 E(y)-.15 E F2(sigspec)2.84 E F0
-(is in)2.81 E -.25(va)-.4 G(lid; otherwise).25 E F1(trap)2.5 E F0
-(returns true.)2.5 E F1(type)108 256.8 Q F0([)2.5 E F1(\255aftpP)A F0(])
-A F2(name)2.5 E F0([)2.5 E F2(name)A F0(...])2.5 E -.4(Wi)144 268.8 S
-.174(th no options, indicate ho).4 F 2.674(we)-.25 G(ach)-2.674 E F2
-(name)3.034 E F0 -.1(wo)2.854 G .173
-(uld be interpreted if used as a command name.).1 F .173(If the)5.173 F
-F1<ad74>144 280.8 Q F0 .715(option is used,)3.215 F F1(type)3.215 E F0
+(vironment when one is cre-)-.4 F 2.5(ated. The)144 693.6 R
+(return status is f)2.5 E(alse if an)-.1 E(y)-.15 E F1(sigspec)2.84 E F0
+(is in)2.81 E -.25(va)-.4 G(lid; otherwise).25 E F4(trap)2.5 E F0
+(returns true.)2.5 E(GNU Bash 5.2)72 768 Q(2021 No)136.385 E -.15(ve)
+-.15 G(mber 22).15 E(23)185.545 E 0 Cg EP
+%%Page: 24 24
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
+E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF(type)108 84 Q F0([)
+2.5 E F1(\255aftpP)A F0(])A/F2 10/Times-Italic@0 SF(name)2.5 E F0([)2.5
+E F2(name)A F0(...])2.5 E -.4(Wi)144 96 S .173
+(th no options, indicate ho).4 F 2.673(we)-.25 G(ach)-2.673 E F2(name)
+3.033 E F0 -.1(wo)2.853 G .174
+(uld be interpreted if used as a command name.).1 F .174(If the)5.174 F
+F1<ad74>144 108 Q F0 .715(option is used,)3.215 F F1(type)3.215 E F0
.715(prints a string which is one of)3.215 F F2(alias)3.545 E F0(,).27 E
F2 -.1(ke)3.215 G(ywor)-.2 E(d)-.37 E F0(,).77 E F2(function)5.185 E F0
(,).24 E F2 -.2(bu)3.215 G(iltin).2 E F0 3.215(,o).24 G(r)-3.215 E F2
-(\214le)5.125 E F0(if)3.395 E F2(name)144.36 292.8 Q F0 .087
-(is an alias, shell reserv)2.767 F .087(ed w)-.15 F .087
-(ord, function, b)-.1 F .086(uiltin, or disk \214le, respecti)-.2 F -.15
-(ve)-.25 G(ly).15 E 5.086(.I)-.65 G 2.586(ft)-5.086 G(he)-2.586 E F2
-(name)2.946 E F0 .086(is not)2.766 F .118
-(found, then nothing is printed, and an e)144 304.8 R .118
-(xit status of f)-.15 F .118(alse is returned.)-.1 F .119(If the)5.119 F
-F1<ad70>2.619 E F0 .119(option is used,)2.619 F F1(type)2.619 E F0 .855
-(either returns the name of the disk \214le that w)144 316.8 R .855
+(\214le)5.125 E F0(if)3.395 E F2(name)144.36 120 Q F0 .086
+(is an alias, shell reserv)2.766 F .086(ed w)-.15 F .086
+(ord, function, b)-.1 F .087(uiltin, or disk \214le, respecti)-.2 F -.15
+(ve)-.25 G(ly).15 E 5.087(.I)-.65 G 2.587(ft)-5.087 G(he)-2.587 E F2
+(name)2.947 E F0 .087(is not)2.767 F .119
+(found, then nothing is printed, and an e)144 132 R .118
+(xit status of f)-.15 F .118(alse is returned.)-.1 F .118(If the)5.118 F
+F1<ad70>2.618 E F0 .118(option is used,)2.618 F F1(type)2.618 E F0 .855
+(either returns the name of the disk \214le that w)144 144 R .855
(ould be e)-.1 F -.15(xe)-.15 G .855(cuted if).15 F F2(name)3.715 E F0
-.855(were speci\214ed as a com-)3.535 F .528(mand name, or nothing if)
-144 328.8 R/F5 10/Courier@0 SF .528(type -t name)3.028 F F0 -.1(wo)3.028
-G .528(uld not return).1 F F2(\214le)4.938 E F0 5.528(.T).18 G(he)-5.528
-E F1<ad50>3.028 E F0 .529(option forces a)3.028 F F3 -.666(PA)3.029 G
-(TH)-.189 E F0 .007(search for each)144 340.8 R F2(name)2.507 E F0 2.507
-(,e)C -.15(ve)-2.757 G 2.507(ni).15 G(f)-2.507 E F5 .007(type -t name)
-2.507 F F0 -.1(wo)2.507 G .007(uld not return).1 F F2(\214le)4.417 E F0
-5.006(.I).18 G 2.506(fac)-5.006 G .006(ommand is hashed,)-2.506 F F1
-<ad70>2.506 E F0(and)144 352.8 Q F1<ad50>3.23 E F0 .73
-(print the hashed v)3.23 F .731
+.855(were speci\214ed as a com-)3.535 F .529(mand name, or nothing if)
+144 156 R/F3 10/Courier@0 SF .528(type -t name)3.028 F F0 -.1(wo)3.028 G
+.528(uld not return).1 F F2(\214le)4.938 E F0 5.528(.T).18 G(he)-5.528 E
+F1<ad50>3.028 E F0 .528(option forces a)3.028 F/F4 9/Times-Bold@0 SF
+-.666(PA)3.028 G(TH)-.189 E F0 .006(search for each)144 168 R F2(name)
+2.506 E F0 2.506(,e)C -.15(ve)-2.756 G 2.506(ni).15 G(f)-2.506 E F3 .007
+(type -t name)2.506 F F0 -.1(wo)2.507 G .007(uld not return).1 F F2
+(\214le)4.417 E F0 5.007(.I).18 G 2.507(fac)-5.007 G .007
+(ommand is hashed,)-2.507 F F1<ad70>2.507 E F0(and)144 180 Q F1<ad50>
+3.231 E F0 .731(print the hashed v)3.231 F .73
(alue, which is not necessarily the \214le that appears \214rst in)-.25
-F F3 -.666(PA)3.231 G(TH)-.189 E F4(.)A F0 .731(If the)5.231 F F1<ad61>
-144 364.8 Q F0 .824(option is used,)3.324 F F1(type)3.324 E F0 .824
-(prints all of the places that contain an e)3.324 F -.15(xe)-.15 G .823
-(cutable named).15 F F2(name)3.683 E F0 5.823(.T).18 G .823(his in-)
--5.823 F 1.176(cludes aliases and functions, if and only if the)144
-376.8 R F1<ad70>3.676 E F0 1.176(option is not also used.)3.676 F 1.177
+F F4 -.666(PA)3.23 G(TH)-.189 E/F5 9/Times-Roman@0 SF(.)A F0 .73(If the)
+5.23 F F1<ad61>144 192 Q F0 .823(option is used,)3.323 F F1(type)3.323 E
+F0 .824(prints all of the places that contain an e)3.323 F -.15(xe)-.15
+G .824(cutable named).15 F F2(name)3.684 E F0 5.824(.T).18 G .824
+(his in-)-5.824 F 1.176
+(cludes aliases and functions, if and only if the)144 204 R F1<ad70>
+3.676 E F0 1.176(option is not also used.)3.676 F 1.176
(The table of hashed)6.176 F 1.223(commands is not consulted when using)
-144 388.8 R F1<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F1<ad66>3.723 E F0
-1.223(option suppresses shell function lookup, as)3.723 F .325(with the)
-144 400.8 R F1(command)2.825 E F0 -.2(bu)2.825 G(iltin.).2 E F1(type)
-5.325 E F0 .325(returns true if all of the ar)2.825 F .326
-(guments are found, f)-.18 F .326(alse if an)-.1 F 2.826(ya)-.15 G .326
-(re not)-2.826 F(found.)144 412.8 Q F1(ulimit)108 429.6 Q F0([)2.5 E F1
-(\255HS)A F0(])A F1<ad61>2.5 E(ulimit)108 441.6 Q F0([)2.5 E F1(\255HS)A
+144 216 R F1<ad61>3.723 E F0 6.223(.T)C(he)-6.223 E F1<ad66>3.723 E F0
+1.223(option suppresses shell function lookup, as)3.723 F .326(with the)
+144 228 R F1(command)2.826 E F0 -.2(bu)2.826 G(iltin.).2 E F1(type)5.326
+E F0 .326(returns true if all of the ar)2.826 F .325
+(guments are found, f)-.18 F .325(alse if an)-.1 F 2.825(ya)-.15 G .325
+(re not)-2.825 F(found.)144 240 Q F1(ulimit)108 256.8 Q F0([)2.5 E F1
+(\255HS)A F0(])A F1<ad61>2.5 E(ulimit)108 268.8 Q F0([)2.5 E F1(\255HS)A
F0 2.5(][)C F1(\255bcde\214klmnpqrstuvxPR)-2.5 E(T)-.4 E F0([)2.5 E F2
-(limit)A F0(]])A(Pro)144 453.6 Q .244(vides control o)-.15 F -.15(ve)
--.15 G 2.744(rt).15 G .244(he resources a)-2.744 F -.25(va)-.2 G .244
+(limit)A F0(]])A(Pro)144 280.8 Q .243(vides control o)-.15 F -.15(ve)
+-.15 G 2.743(rt).15 G .243(he resources a)-2.743 F -.25(va)-.2 G .244
(ilable to the shell and to processes started by it, on systems).25 F
-.943(that allo)144 465.6 R 3.443(ws)-.25 G .943(uch control.)-3.443 F
-(The)5.943 E F1<ad48>3.443 E F0(and)3.443 E F1<ad53>3.444 E F0 .944
+.944(that allo)144 292.8 R 3.444(ws)-.25 G .944(uch control.)-3.444 F
+(The)5.944 E F1<ad48>3.444 E F0(and)3.444 E F1<ad53>3.444 E F0 .943
(options specify that the hard or soft limit is set for the)3.444 F(gi)
-144 477.6 Q -.15(ve)-.25 G 2.709(nr).15 G 2.709(esource. A)-2.709 F .208
+144 304.8 Q -.15(ve)-.25 G 2.708(nr).15 G 2.708(esource. A)-2.708 F .208
(hard limit cannot be increased by a non-root user once it is set; a so\
-ft limit may)2.709 F .425(be increased up to the v)144 489.6 R .425
-(alue of the hard limit.)-.25 F .426(If neither)5.425 F F1<ad48>2.926 E
-F0(nor)2.926 E F1<ad53>2.926 E F0 .426
-(is speci\214ed, both the soft and)2.926 F .139(hard limits are set.)144
-501.6 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
+ft limit may)2.708 F .426(be increased up to the v)144 316.8 R .426
+(alue of the hard limit.)-.25 F .425(If neither)5.426 F F1<ad48>2.925 E
+F0(nor)2.925 E F1<ad53>2.925 E F0 .425
+(is speci\214ed, both the soft and)2.925 F .139(hard limits are set.)144
+328.8 R .139(The v)5.139 F .139(alue of)-.25 F F2(limit)2.729 E F0 .139
(can be a number in the unit speci\214ed for the resource or one)3.319 F
-.741(of the special v)144 513.6 R(alues)-.25 E F1(hard)3.241 E F0(,)A F1
+.742(of the special v)144 340.8 R(alues)-.25 E F1(hard)3.242 E F0(,)A F1
(soft)3.241 E F0 3.241(,o)C(r)-3.241 E F1(unlimited)3.241 E F0 3.241(,w)
-C .741(hich stand for the current hard limit, the current)-3.241 F .024
-(soft limit, and no limit, respecti)144 525.6 R -.15(ve)-.25 G(ly).15 E
+C .741(hich stand for the current hard limit, the current)-3.241 F .023
+(soft limit, and no limit, respecti)144 352.8 R -.15(ve)-.25 G(ly).15 E
5.023(.I)-.65 G(f)-5.023 E F2(limit)2.613 E F0 .023
(is omitted, the current v)3.203 F .023
-(alue of the soft limit of the re-)-.25 F .984
-(source is printed, unless the)144 537.6 R F1<ad48>3.484 E F0 .984
-(option is gi)3.484 F -.15(ve)-.25 G 3.484(n. When).15 F .985
+(alue of the soft limit of the re-)-.25 F .985
+(source is printed, unless the)144 364.8 R F1<ad48>3.485 E F0 .984
+(option is gi)3.485 F -.15(ve)-.25 G 3.484(n. When).15 F .984
(more than one resource is speci\214ed, the)3.484 F .7
-(limit name and unit, if appropriate, are printed before the v)144 549.6
+(limit name and unit, if appropriate, are printed before the v)144 376.8
R 3.2(alue. Other)-.25 F .7(options are interpreted as)3.2 F(follo)144
-561.6 Q(ws:)-.25 E F1<ad61>144 573.6 Q F0
-(All current limits are reported; no limits are set)180 573.6 Q F1<ad62>
-144 585.6 Q F0(The maximum sock)180 585.6 Q(et b)-.1 E(uf)-.2 E
-(fer size)-.25 E F1<ad63>144 597.6 Q F0
-(The maximum size of core \214les created)180 597.6 Q F1<ad64>144 609.6
-Q F0(The maximum size of a process')180 609.6 Q 2.5(sd)-.55 G(ata se)
--2.5 E(gment)-.15 E F1<ad65>144 621.6 Q F0
-(The maximum scheduling priority \("nice"\))180 621.6 Q F1<ad66>144
-633.6 Q F0
+388.8 Q(ws:)-.25 E F1<ad61>144 400.8 Q F0
+(All current limits are reported; no limits are set)180 400.8 Q F1<ad62>
+144 412.8 Q F0(The maximum sock)180 412.8 Q(et b)-.1 E(uf)-.2 E
+(fer size)-.25 E F1<ad63>144 424.8 Q F0
+(The maximum size of core \214les created)180 424.8 Q F1<ad64>144 436.8
+Q F0(The maximum size of a process')180 436.8 Q 2.5(sd)-.55 G(ata se)
+-2.5 E(gment)-.15 E F1<ad65>144 448.8 Q F0
+(The maximum scheduling priority \("nice"\))180 448.8 Q F1<ad66>144
+460.8 Q F0
(The maximum size of \214les written by the shell and its children)180
-633.6 Q F1<ad69>144 645.6 Q F0(The maximum number of pending signals)180
-645.6 Q F1<ad6b>144 657.6 Q F0
-(The maximum number of kqueues that may be allocated)180 657.6 Q F1
-<ad6c>144 669.6 Q F0(The maximum size that may be lock)180 669.6 Q
-(ed into memory)-.1 E F1<ad6d>144 681.6 Q F0
-(The maximum resident set size \(man)180 681.6 Q 2.5(ys)-.15 G
-(ystems do not honor this limit\))-2.5 E F1<ad6e>144 693.6 Q F0 .791(Th\
+460.8 Q F1<ad69>144 472.8 Q F0(The maximum number of pending signals)180
+472.8 Q F1<ad6b>144 484.8 Q F0
+(The maximum number of kqueues that may be allocated)180 484.8 Q F1
+<ad6c>144 496.8 Q F0(The maximum size that may be lock)180 496.8 Q
+(ed into memory)-.1 E F1<ad6d>144 508.8 Q F0
+(The maximum resident set size \(man)180 508.8 Q 2.5(ys)-.15 G
+(ystems do not honor this limit\))-2.5 E F1<ad6e>144 520.8 Q F0 .791(Th\
e maximum number of open \214le descriptors \(most systems do not allo)
-180 693.6 R 3.291(wt)-.25 G .791(his v)-3.291 F .791(alue to)-.25 F
-(be set\))180 705.6 Q F1<ad70>144 717.6 Q F0
-(The pipe size in 512-byte blocks \(this may not be set\))180 717.6 Q
-(GNU Bash 5.0)72 768 Q(2004 Apr 20)149.565 E(23)198.725 E 0 Cg EP
-%%Page: 24 24
+180 520.8 R 3.29(wt)-.25 G .79(his v)-3.29 F .79(alue to)-.25 F
+(be set\))180 532.8 Q F1<ad70>144 544.8 Q F0
+(The pipe size in 512-byte blocks \(this may not be set\))180 544.8 Q F1
+<ad71>144 556.8 Q F0
+(The maximum number of bytes in POSIX message queues)180 556.8 Q F1
+<ad72>144 568.8 Q F0(The maximum real-time scheduling priority)180 568.8
+Q F1<ad73>144 580.8 Q F0(The maximum stack size)180 580.8 Q F1<ad74>144
+592.8 Q F0(The maximum amount of cpu time in seconds)180 592.8 Q F1
+<ad75>144 604.8 Q F0(The maximum number of processes a)180 604.8 Q -.25
+(va)-.2 G(ilable to a single user).25 E F1<ad76>144 616.8 Q F0 .47
+(The maximum amount of virtual memory a)180 616.8 R -.25(va)-.2 G .47
+(ilable to the shell and, on some systems, to).25 F(its children)180
+628.8 Q F1<ad78>144 640.8 Q F0(The maximum number of \214le locks)180
+640.8 Q F1<ad50>144 652.8 Q F0(The maximum number of pseudoterminals)180
+652.8 Q F1<ad52>144 664.8 Q F0(The maximum time a real-time process can\
+ run before blocking, in microseconds)180 664.8 Q F1<ad54>144 676.8 Q F0
+(The maximum number of threads)180 676.8 Q(If)144 693.6 Q F2(limit)3.058
+E F0 .468(is gi)3.648 F -.15(ve)-.25 G .468(n, and the).15 F F1<ad61>
+2.968 E F0 .468(option is not used,)2.968 F F2(limit)2.968 E F0 .468
+(is the ne)2.968 F 2.968(wv)-.25 G .468
+(alue of the speci\214ed resource.)-3.218 F(If)5.468 E .044
+(no option is gi)144 705.6 R -.15(ve)-.25 G .044(n, then).15 F F1<ad66>
+2.544 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045 G .045
+(lues are in 1024-byte increments, e)1.11 F .045(xcept for)-.15 F F1
+<ad74>2.545 E F0 2.545(,w)C .045(hich is)-2.545 F .67(in seconds;)144
+717.6 R F1<ad52>3.17 E F0 3.17(,w)C .67(hich is in microseconds;)-3.17 F
+F1<ad70>3.17 E F0 3.17(,w)C .67(hich is in units of 512-byte blocks;)
+-3.17 F F1<ad50>3.17 E F0(,)A F1<ad54>3.17 E F0(,)A F1<ad62>3.17 E F0(,)
+A F1<ad6b>144 729.6 Q F0(,)A F1<ad6e>3.736 E F0 3.736(,a)C(nd)-3.736 E
+F1<ad75>3.736 E F0 3.736(,w)C 1.236(hich are unscaled v)-3.736 F 1.236
+(alues; and, when in posix mode,)-.25 F F1<ad63>3.736 E F0(and)3.736 E
+F1<ad66>3.736 E F0 3.736(,w)C 1.237(hich are in)-3.736 F(GNU Bash 5.2)72
+768 Q(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(24)185.545 E 0 Cg
+EP
+%%Page: 25 25
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E/F1 10/Times-Bold@0 SF<ad71>144 84 Q F0
-(The maximum number of bytes in POSIX message queues)180 84 Q F1<ad72>
-144 96 Q F0(The maximum real-time scheduling priority)180 96 Q F1<ad73>
-144 108 Q F0(The maximum stack size)180 108 Q F1<ad74>144 120 Q F0
-(The maximum amount of cpu time in seconds)180 120 Q F1<ad75>144 132 Q
-F0(The maximum number of processes a)180 132 Q -.25(va)-.2 G
-(ilable to a single user).25 E F1<ad76>144 144 Q F0 .47
-(The maximum amount of virtual memory a)180 144 R -.25(va)-.2 G .47
-(ilable to the shell and, on some systems, to).25 F(its children)180 156
-Q F1<ad78>144 168 Q F0(The maximum number of \214le locks)180 168 Q F1
-<ad50>144 180 Q F0(The maximum number of pseudoterminals)180 180 Q F1
-<ad52>144 192 Q F0(The maximum time a real-time process can run before \
-blocking, in microseconds)180 192 Q F1<ad54>144 204 Q F0
-(The maximum number of threads)180 204 Q(If)144 220.8 Q/F2 10
-/Times-Italic@0 SF(limit)3.058 E F0 .468(is gi)3.648 F -.15(ve)-.25 G
-.468(n, and the).15 F F1<ad61>2.968 E F0 .468(option is not used,)2.968
-F F2(limit)2.968 E F0 .468(is the ne)2.968 F 2.968(wv)-.25 G .468
-(alue of the speci\214ed resource.)-3.218 F(If)5.468 E .045
-(no option is gi)144 232.8 R -.15(ve)-.25 G .045(n, then).15 F F1<ad66>
-2.545 E F0 .045(is assumed.)2.545 F -1.11(Va)5.045 G .045
-(lues are in 1024-byte increments, e)1.11 F .044(xcept for)-.15 F F1
-<ad74>2.544 E F0 2.544(,w)C .044(hich is)-2.544 F .67(in seconds;)144
-244.8 R F1<ad52>3.17 E F0 3.17(,w)C .67(hich is in microseconds;)-3.17 F
-F1<ad70>3.17 E F0 3.17(,w)C .67(hich is in units of 512-byte blocks;)
--3.17 F F1<ad50>3.17 E F0(,)A F1<ad54>3.17 E F0(,)A F1<ad62>3.17 E F0(,)
-A F1<ad6b>144 256.8 Q F0(,)A F1<ad6e>3.737 E F0 3.737(,a)C(nd)-3.737 E
-F1<ad75>3.736 E F0 3.736(,w)C 1.236(hich are unscaled v)-3.736 F 1.236
-(alues; and, when in posix mode,)-.25 F F1<ad63>3.736 E F0(and)3.736 E
-F1<ad66>3.736 E F0 3.736(,w)C 1.236(hich are in)-3.736 F .238
-(512-byte increments.)144 268.8 R .238
-(The return status is 0 unless an in)5.238 F -.25(va)-.4 G .238
+E(UIL)-.1 E(TINS\(1\))-.92 E .239(512-byte increments.)144 84 R .238
+(The return status is 0 unless an in)5.239 F -.25(va)-.4 G .238
(lid option or ar).25 F .238(gument is supplied, or an)-.18 F
-(error occurs while setting a ne)144 280.8 Q 2.5(wl)-.25 G(imit.)-2.5 E
-F1(umask)108 297.6 Q F0([)2.5 E F1<ad70>A F0 2.5(][)C F1<ad53>-2.5 E F0
-2.5(][)C F2(mode)-2.5 E F0(])A .18
-(The user \214le-creation mask is set to)144 309.6 R F2(mode)3.06 E F0
+(error occurs while setting a ne)144 96 Q 2.5(wl)-.25 G(imit.)-2.5 E/F1
+10/Times-Bold@0 SF(umask)108 112.8 Q F0([)2.5 E F1<ad70>A F0 2.5(][)C F1
+<ad53>-2.5 E F0 2.5(][)C/F2 10/Times-Italic@0 SF(mode)-2.5 E F0(])A .18
+(The user \214le-creation mask is set to)144 124.8 R F2(mode)3.06 E F0
5.18(.I).18 G(f)-5.18 E F2(mode)3.06 E F0(be)2.86 E .18
(gins with a digit, it is interpreted as an octal)-.15 F .066(number; o\
therwise it is interpreted as a symbolic mode mask similar to that acce\
-pted by)144 321.6 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
-333.6 Q F2(mode)3.263 E F0 .382(is omitted, the current v)3.063 F .382
+pted by)144 136.8 R F2 -.15(ch)2.566 G(mod).15 E F0(\(1\).).77 E(If)144
+148.8 Q F2(mode)3.262 E F0 .382(is omitted, the current v)3.062 F .382
(alue of the mask is printed.)-.25 F(The)5.382 E F1<ad53>2.882 E F0 .382
(option causes the mask to be)2.882 F .547
-(printed in symbolic form; the def)144 345.6 R .547
+(printed in symbolic form; the def)144 160.8 R .547
(ault output is an octal number)-.1 F 5.547(.I)-.55 G 3.047(ft)-5.547 G
(he)-3.047 E F1<ad70>3.047 E F0 .547(option is supplied, and)3.047 F F2
-(mode)144.38 357.6 Q F0 .552
-(is omitted, the output is in a form that may be reused as input.)3.232
-F .551(The return status is 0 if the)5.551 F(mode w)144 369.6 Q
+(mode)144.38 172.8 Q F0 .551
+(is omitted, the output is in a form that may be reused as input.)3.231
+F .552(The return status is 0 if the)5.552 F(mode w)144 184.8 Q
(as successfully changed or if no)-.1 E F2(mode)2.5 E F0(ar)2.5 E
(gument w)-.18 E(as supplied, and f)-.1 E(alse otherwise.)-.1 E F1
-(unalias)108 386.4 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
-(...])2.5 E(Remo)144 398.4 Q 1.057 -.15(ve e)-.15 H(ach).15 E F2(name)
-3.257 E F0 .757(from the list of de\214ned aliases.)3.257 F(If)5.758 E
-F1<ad61>3.258 E F0 .758(is supplied, all alias de\214nitions are re-)
-3.258 F(mo)144 410.4 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
+(unalias)108 201.6 Q F0<5bad>2.5 E F1(a)A F0 2.5(][)C F2(name)-2.5 E F0
+(...])2.5 E(Remo)144 213.6 Q 1.058 -.15(ve e)-.15 H(ach).15 E F2(name)
+3.258 E F0 .758(from the list of de\214ned aliases.)3.258 F(If)5.758 E
+F1<ad61>3.258 E F0 .757(is supplied, all alias de\214nitions are re-)
+3.258 F(mo)144 225.6 Q -.15(ve)-.15 G 2.5(d. The).15 F(return v)2.5 E
(alue is true unless a supplied)-.25 E F2(name)2.86 E F0
-(is not a de\214ned alias.)2.68 E F1(unset)108 427.2 Q F0<5bad>2.5 E F1
+(is not a de\214ned alias.)2.68 E F1(unset)108 242.4 Q F0<5bad>2.5 E F1
(fv)A F0 2.5(][)C<ad>-2.5 E F1(n)A F0 2.5(][)C F2(name)-2.5 E F0(...])
-2.5 E -.15(Fo)144 439.2 S 3.804(re).15 G(ach)-3.804 E F2(name)4.164 E F0
-3.804(,r).18 G(emo)-3.804 E 1.604 -.15(ve t)-.15 H 1.304
+2.5 E -.15(Fo)144 254.4 S 3.803(re).15 G(ach)-3.803 E F2(name)4.163 E F0
+3.803(,r).18 G(emo)-3.803 E 1.603 -.15(ve t)-.15 H 1.303
(he corresponding v).15 F 1.303(ariable or function.)-.25 F 1.303
-(If the)6.303 F F1<ad76>3.803 E F0 1.303(option is gi)3.803 F -.15(ve)
--.25 G 1.303(n, each).15 F F2(name)144.36 451.2 Q F0 .464
-(refers to a shell v)3.144 F .464(ariable, and that v)-.25 F .464
-(ariable is remo)-.25 F -.15(ve)-.15 G 2.965(d. Read-only).15 F -.25(va)
-2.965 G .465(riables may not be un-).25 F 2.769(set. If)144 463.2 R F1
-<ad66>2.769 E F0 .269(is speci\214ed, each)2.769 F F2(name)3.129 E F0
+(If the)6.303 F F1<ad76>3.804 E F0 1.304(option is gi)3.804 F -.15(ve)
+-.25 G 1.304(n, each).15 F F2(name)144.36 266.4 Q F0 .465
+(refers to a shell v)3.145 F .464(ariable, and that v)-.25 F .464
+(ariable is remo)-.25 F -.15(ve)-.15 G 2.964(d. Read-only).15 F -.25(va)
+2.964 G .464(riables may not be un-).25 F 2.768(set. If)144 278.4 R F1
+<ad66>2.768 E F0 .269(is speci\214ed, each)2.768 F F2(name)3.129 E F0
.269(refers to a shell function, and the function de\214nition is remo)
-2.949 F -.15(ve)-.15 G(d.).15 E .403(If the)144 475.2 R F1<ad6e>2.903 E
+2.949 F -.15(ve)-.15 G(d.).15 E .404(If the)144 290.4 R F1<ad6e>2.904 E
F0 .404(option is supplied, and)2.904 F F2(name)2.904 E F0 .404(is a v)
2.904 F .404(ariable with the)-.25 F F2(namer)2.904 E(ef)-.37 E F0
-(attrib)2.904 E(ute,)-.2 E F2(name)2.904 E F0 .404(will be unset)2.904 F
-.72(rather than the v)144 487.2 R .72(ariable it references.)-.25 F F1
-<ad6e>5.72 E F0 .72(has no ef)3.22 F .719(fect if the)-.25 F F1<ad66>
-3.219 E F0 .719(option is supplied.)3.219 F .719(If no options)5.719 F
-.736(are supplied, each)144 499.2 R F2(name)3.236 E F0 .736
-(refers to a v)3.236 F .737(ariable; if there is no v)-.25 F .737
-(ariable by that name, a function with)-.25 F 1.762(that name, if an)144
-511.2 R 3.062 -.65(y, i)-.15 H 4.262(su).65 G 4.261(nset. Each)-4.262 F
+(attrib)2.904 E(ute,)-.2 E F2(name)2.904 E F0 .403(will be unset)2.904 F
+.719(rather than the v)144 302.4 R .719(ariable it references.)-.25 F F1
+<ad6e>5.719 E F0 .719(has no ef)3.219 F .719(fect if the)-.25 F F1<ad66>
+3.22 E F0 .72(option is supplied.)3.22 F .72(If no options)5.72 F .737
+(are supplied, each)144 314.4 R F2(name)3.237 E F0 .737(refers to a v)
+3.237 F .737(ariable; if there is no v)-.25 F .736
+(ariable by that name, a function with)-.25 F 1.761(that name, if an)144
+326.4 R 3.061 -.65(y, i)-.15 H 4.261(su).65 G 4.261(nset. Each)-4.261 F
1.761(unset v)4.261 F 1.761(ariable or function is remo)-.25 F -.15(ve)
--.15 G 4.261(df).15 G 1.761(rom the en)-4.261 F(vironment)-.4 E 3.171
-(passed to subsequent commands.)144 523.2 R 3.172(If an)8.172 F 5.672
+-.15 G 4.262(df).15 G 1.762(rom the en)-4.262 F(vironment)-.4 E 3.172
+(passed to subsequent commands.)144 338.4 R 3.172(If an)8.172 F 5.672
(yo)-.15 G(f)-5.672 E/F3 9/Times-Bold@0 SF -.27(BA)5.672 G(SH_ALIASES)
-.27 E/F4 9/Times-Roman@0 SF(,)A F3 -.27(BA)5.422 G(SH_ARGV0).27 E F4(,)A
-F3 -.27(BA)5.422 G(SH_CMDS).27 E F4(,)A F3 -.27(BA)144 535.2 S
-(SH_COMMAND).27 E F4(,)A F3 -.27(BA)11.482 G(SH_SUBSHELL).27 E F4(,)A F3
+.27 E/F4 9/Times-Roman@0 SF(,)A F3 -.27(BA)5.421 G(SH_ARGV0).27 E F4(,)A
+F3 -.27(BA)5.421 G(SH_CMDS).27 E F4(,)A F3 -.27(BA)144 350.4 S
+(SH_COMMAND).27 E F4(,)A F3 -.27(BA)11.481 G(SH_SUBSHELL).27 E F4(,)A F3
-.27(BA)11.482 G(SHPID).27 E F4(,)A F3(COMP_W)11.482 E(ORDBREAKS)-.09 E
-F4(,)A F3(DIRST)11.481 E -.495(AC)-.81 G(K).495 E F4(,)A F3(EPOCHREAL)
-144 547.2 Q(TIME)-.828 E F4(,)A F3(EPOCHSECONDS)2.67 E F4(,)A F3(FUNCN)
+F4(,)A F3(DIRST)11.482 E -.495(AC)-.81 G(K).495 E F4(,)A F3(EPOCHREAL)
+144 362.4 Q(TIME)-.828 E F4(,)A F3(EPOCHSECONDS)2.67 E F4(,)A F3(FUNCN)
2.67 E(AME)-.18 E F4(,)A F3(GR)2.67 E(OUPS)-.27 E F4(,)A F3(HISTCMD)2.67
E F4(,)A F3(LINENO)2.67 E F4(,)A F3(RANDOM)2.67 E F4(,)A F3(SECONDS)144
-559.2 Q F4(,)A F0(or)4.03 E F3(SRANDOM)4.28 E F0 1.779(are unset, the)
-4.03 F 4.279(yl)-.15 G 1.779(ose their special properties, e)-4.279 F
--.15(ve)-.25 G 4.279(ni).15 G 4.279(ft)-4.279 G(he)-4.279 E 4.279(ya)
--.15 G 1.779(re subse-)-4.279 F(quently reset.)144 571.2 Q(The e)5 E
-(xit status is true unless a)-.15 E F2(name)2.86 E F0(is readonly)2.68 E
-(.)-.65 E F1(wait)108 588 Q F0([)2.5 E F1(\255fn)A F0 2.5(][)C F1<ad70>
--2.5 E F2(varname)2.5 E F0 2.5(][)C F2(id ...)-2.5 E F0(])A -.8(Wa)144
-600 S .659(it for each speci\214ed child process and return its termina\
-tion status.).8 F(Each)5.659 E F2(id)3.169 E F0 .659(may be a process)
-3.929 F .009(ID or a job speci\214cation; if a job spec is gi)144 612 R
--.15(ve)-.25 G .008(n, all processes in that job').15 F 2.508(sp)-.55 G
-.008(ipeline are w)-2.508 F .008(aited for)-.1 F 5.008(.I)-.55 G(f)
--5.008 E F2(id)144.01 624 Q F0 .441(is not gi)3.711 F -.15(ve)-.25 G(n,)
-.15 E F1(wait)2.941 E F0 -.1(wa)2.941 G .441
+374.4 Q F4(,)A F0(or)4.029 E F3(SRANDOM)4.279 E F0 1.779(are unset, the)
+4.029 F 4.279(yl)-.15 G 1.779(ose their special properties, e)-4.279 F
+-.15(ve)-.25 G 4.279(ni).15 G 4.28(ft)-4.279 G(he)-4.28 E 4.28(ya)-.15 G
+1.78(re subse-)-4.28 F(quently reset.)144 386.4 Q(The e)5 E
+(xit status is true unless a)-.15 E F2(name)2.86 E F0
+(is readonly or may not be unset.)2.68 E F1(wait)108 403.2 Q F0([)2.5 E
+F1(\255fn)A F0 2.5(][)C F1<ad70>-2.5 E F2(varname)2.5 E F0 2.5(][)C F2
+(id ...)-2.5 E F0(])A -.8(Wa)144 415.2 S .659(it for each speci\214ed c\
+hild process and return its termination status.).8 F(Each)5.659 E F2(id)
+3.169 E F0 .658(may be a process)3.928 F .008
+(ID or a job speci\214cation; if a job spec is gi)144 427.2 R -.15(ve)
+-.25 G .009(n, all processes in that job').15 F 2.509(sp)-.55 G .009
+(ipeline are w)-2.509 F .009(aited for)-.1 F 5.009(.I)-.55 G(f)-5.009 E
+F2(id)144.01 439.2 Q F0 .442(is not gi)3.712 F -.15(ve)-.25 G(n,).15 E
+F1(wait)2.942 E F0 -.1(wa)2.942 G .441
(its for all running background jobs and the last-e).1 F -.15(xe)-.15 G
-.442(cuted process substitu-).15 F .598
-(tion, if its process id is the same as)144 636 R F1($!)3.098 E F0 3.098
-(,a)C .598(nd the return status is zero.)-3.098 F .597(If the)5.597 F F1
-<ad6e>3.097 E F0 .597(option is supplied,)3.097 F F1(wait)144 648 Q F0
--.1(wa)3.082 G .583(its for a single job from the list of).1 F F2(id)
-3.083 E F0 3.083(so)C 1.383 -.4(r, i)-3.083 H 3.083(fn).4 G(o)-3.083 E
-F2(id)3.083 E F0 3.083(sa)C .583(re supplied, an)-3.083 F 3.083(yj)-.15
-G .583(ob, to complete and)-3.083 F .404(returns its e)144 660 R .404
-(xit status.)-.15 F .403(If none of the supplied ar)5.403 F .403
-(guments is a child of the shell, or if no ar)-.18 F(guments)-.18 E .572
-(are supplied and the shell has no unw)144 672 R .573
-(aited-for children, the e)-.1 F .573(xit status is 127.)-.15 F .573
-(If the)5.573 F F1<ad70>3.073 E F0 .573(option is)3.073 F .39
+.441(cuted process substitu-).15 F .597
+(tion, if its process id is the same as)144 451.2 R F1($!)3.098 E F0
+3.098(,a)C .598(nd the return status is zero.)-3.098 F .598(If the)5.598
+F F1<ad6e>3.098 E F0 .598(option is supplied,)3.098 F F1(wait)144 463.2
+Q F0 -.1(wa)3.083 G .583(its for a single job from the list of).1 F F2
+(id)3.083 E F0 3.083(so)C 1.383 -.4(r, i)-3.083 H 3.083(fn).4 G(o)-3.083
+E F2(id)3.083 E F0 3.083(sa)C .583(re supplied, an)-3.083 F 3.083(yj)
+-.15 G .582(ob, to complete and)-3.083 F .403(returns its e)144 475.2 R
+.403(xit status.)-.15 F .403(If none of the supplied ar)5.403 F .403
+(guments is a child of the shell, or if no ar)-.18 F(guments)-.18 E .573
+(are supplied and the shell has no unw)144 487.2 R .573
+(aited-for children, the e)-.1 F .573(xit status is 127.)-.15 F .572
+(If the)5.573 F F1<ad70>3.072 E F0 .572(option is)3.072 F .39
(supplied, the process or job identi\214er of the job for which the e)
-144 684 R .39(xit status is returned is assigned to)-.15 F .905(the v)
-144 696 R(ariable)-.25 E F2(varname)3.405 E F0 .905
+144 499.2 R .39(xit status is returned is assigned to)-.15 F .905(the v)
+144 511.2 R(ariable)-.25 E F2(varname)3.405 E F0 .905
(named by the option ar)3.405 F 3.405(gument. The)-.18 F -.25(va)3.405 G
.905(riable will be unset initially).25 F 3.405(,b)-.65 G(efore)-3.405 E
-(an)144 708 Q 3.89(ya)-.15 G 3.89(ssignment. This)-3.89 F 1.39
+(an)144 523.2 Q 3.89(ya)-.15 G 3.89(ssignment. This)-3.89 F 1.39
(is useful only when the)3.89 F F1<ad6e>3.89 E F0 1.39
(option is supplied.)3.89 F 1.39(Supplying the)6.39 F F1<ad66>3.89 E F0
-(option,)3.89 E 1.461(when job control is enabled, forces)144 720 R F1
-(wait)3.961 E F0 1.461(to w)3.961 F 1.461(ait for)-.1 F F2(id)3.961 E F0
-1.462(to terminate before returning its status,)3.961 F(GNU Bash 5.0)72
-768 Q(2004 Apr 20)149.565 E(24)198.725 E 0 Cg EP
-%%Page: 25 25
+(option,)3.89 E .575(when job control is enabled, forces)144 535.2 R F1
+(wait)3.075 E F0 .575(to w)3.075 F .575(ait for)-.1 F F2(id)3.075 E F0
+.574(to terminate before returning its status, in-)3.075 F .635
+(stead of returning when it changes status.)144 547.2 R(If)5.635 E F2
+(id)3.145 E F0 .635(speci\214es a non-e)3.905 F .635
+(xistent process or job, the return)-.15 F .802(status is 127.)144 559.2
+R(If)5.801 E F1(wait)3.301 E F0 .801(is interrupted by a signal, the re\
+turn status will be greater than 128, as de-)3.301 F 1.758
+(scribed under)144 571.2 R F1(SIGN)4.258 E(ALS)-.2 E F0(in)4.258 E F2
+(bash\(1\))4.258 E F0 6.758(.O)C 1.759
+(therwise, the return status is the e)-6.758 F 1.759
+(xit status of the last)-.15 F(process or job w)144 583.2 Q(aited for)
+-.1 E(.)-.55 E/F5 10.95/Times-Bold@0 SF(SHELL COMP)72 600 Q -1.04(AT)
+-.81 G(IBILITY MODE)1.04 E F0 1.355
+(Bash-4.0 introduced the concept of a)108 612 R F2 1.355
+(shell compatibility le)3.855 F(vel)-.15 E F0 3.855(,s)C 1.354
+(peci\214ed as a set of options to the shopt)-3.855 F -.2(bu)108 624 S
+.398(iltin \().2 F F1(compat31)2.898 E F0(,)A F1(compat32)2.898 E F0(,)A
+F1(compat40)2.898 E F0(,)A F1(compat41)2.898 E F0 2.898(,a)C .399
+(nd so on\).)-2.898 F .399(There is only one current compatibility)5.399
+F(le)108 636 Q -.15(ve)-.25 G 3.254(l-).15 G 3.254(-e)-3.254 G .754
+(ach option is mutually e)-3.254 F(xclusi)-.15 E -.15(ve)-.25 G 5.754
+(.T).15 G .754(he compatibility le)-5.754 F -.15(ve)-.25 G 3.253(li).15
+G 3.253(si)-3.253 G .753(ntended to allo)-3.253 F 3.253(wu)-.25 G .753
+(sers to select be-)-3.253 F(ha)108 648 Q 1.083(vior from pre)-.2 F
+1.083(vious v)-.25 F 1.083(ersions that is incompatible with ne)-.15 F
+1.083(wer v)-.25 F 1.083(ersions while the)-.15 F 3.584(ym)-.15 G 1.084
+(igrate scripts to use)-3.584 F(current features and beha)108 660 Q
+(vior)-.2 E 2.5(.I)-.55 G(t')-2.5 E 2.5(si)-.55 G
+(ntended to be a temporary solution.)-2.5 E 1.457
+(This section does not mention beha)108 676.8 R 1.457
+(vior that is standard for a particular v)-.2 F 1.456
+(ersion \(e.g., setting)-.15 F F1(compat32)3.956 E F0 .886
+(means that quoting the rhs of the re)108 688.8 R(ge)-.15 E .886
+(xp matching operator quotes special re)-.15 F(ge)-.15 E .887
+(xp characters in the w)-.15 F(ord,)-.1 E(which is def)108 700.8 Q
+(ault beha)-.1 E(vior in bash-3.2 and subsequent v)-.2 E(ersions\).)-.15
+E .523(If a user enables, say)108 717.6 R(,)-.65 E F1(compat32)3.023 E
+F0 3.023(,i)C 3.023(tm)-3.023 G .523(ay af)-3.023 F .523(fect the beha)
+-.25 F .523(vior of other compatibility le)-.2 F -.15(ve)-.25 G .522
+(ls up to and includ-).15 F .259(ing the current compatibility le)108
+729.6 R -.15(ve)-.25 G 2.759(l. The).15 F .259
+(idea is that each compatibility le)2.759 F -.15(ve)-.25 G 2.76(lc).15 G
+.26(ontrols beha)-2.76 F .26(vior that changed)-.2 F(GNU Bash 5.2)72 768
+Q(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E(25)185.545 E 0 Cg EP
+%%Page: 26 26
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E .149
-(instead of returning when it changes status.)144 84 R(If)5.149 E/F1 10
-/Times-Italic@0 SF(id)2.659 E F0 .149(speci\214es a non-e)3.419 F .148
-(xistent process or job, the return)-.15 F(status is 127.)144 96 Q
-(Otherwise, the return status is the e)5 E
-(xit status of the last process or job w)-.15 E(aited for)-.1 E(.)-.55 E
-/F2 10.95/Times-Bold@0 SF(SHELL COMP)72 112.8 Q -1.04(AT)-.81 G
-(IBILITY MODE)1.04 E F0 .911
-(Bash-4.0 introduced the concept of a `shell compatibility le)108 124.8
-R -.15(ve)-.25 G .912(l', speci\214ed as a set of options to the shopt)
-.15 F -.2(bu)108 136.8 S(iltin).2 E/F3 10/Times-Bold@0 SF(compat31)3.378
-E F0(,)A F3(compat32)3.378 E F0(,)A F3(compat40)3.378 E F0(,)A F3
-(compat41)3.378 E F0 3.378(,a)C .878(nd so on\).)-3.378 F .877
-(There is only one current compatibility)5.878 F(le)108 148.8 Q -.15(ve)
--.25 G 3.253(l-).15 G 3.253(-e)-3.253 G .753(ach option is mutually e)
--3.253 F(xclusi)-.15 E -.15(ve)-.25 G 5.753(.T).15 G .753
-(he compatibility le)-5.753 F -.15(ve)-.25 G 3.254(li).15 G 3.254(si)
--3.254 G .754(ntended to allo)-3.254 F 3.254(wu)-.25 G .754
-(sers to select be-)-3.254 F(ha)108 160.8 Q 1.084(vior from pre)-.2 F
-1.084(vious v)-.25 F 1.083(ersions that is incompatible with ne)-.15 F
-1.083(wer v)-.25 F 1.083(ersions while the)-.15 F 3.583(ym)-.15 G 1.083
-(igrate scripts to use)-3.583 F(current features and beha)108 172.8 Q
-(vior)-.2 E 2.5(.I)-.55 G(t')-2.5 E 2.5(si)-.55 G
-(ntended to be a temporary solution.)-2.5 E 1.456
-(This section does not mention beha)108 189.6 R 1.457
-(vior that is standard for a particular v)-.2 F 1.457
-(ersion \(e.g., setting)-.15 F F3(compat32)3.957 E F0 .887
-(means that quoting the rhs of the re)108 201.6 R(ge)-.15 E .886
-(xp matching operator quotes special re)-.15 F(ge)-.15 E .886
-(xp characters in the w)-.15 F(ord,)-.1 E(which is def)108 213.6 Q
-(ault beha)-.1 E(vior in bash-3.2 and abo)-.2 E -.15(ve)-.15 G(\).).15 E
-.522(If a user enables, say)108 230.4 R(,)-.65 E F3(compat32)3.023 E F0
-3.023(,i)C 3.023(tm)-3.023 G .523(ay af)-3.023 F .523(fect the beha)-.25
-F .523(vior of other compatibility le)-.2 F -.15(ve)-.25 G .523
-(ls up to and includ-).15 F .26(ing the current compatibility le)108
-242.4 R -.15(ve)-.25 G 2.76(l. The).15 F .259
-(idea is that each compatibility le)2.759 F -.15(ve)-.25 G 2.759(lc).15
-G .259(ontrols beha)-2.759 F .259(vior that changed)-.2 F 1.645
-(in that v)108 254.4 R 1.646(ersion of)-.15 F F3(bash)4.146 E F0 4.146
-(,b)C 1.646(ut that beha)-4.346 F 1.646(vior may ha)-.2 F 1.946 -.15
-(ve b)-.2 H 1.646(een present in earlier v).15 F 4.146(ersions. F)-.15 F
-1.646(or instance, the)-.15 F .761
-(change to use locale-based comparisons with the)108 266.4 R F3([[)3.261
-E F0 .76(command came in bash-4.1, and earlier v)3.261 F .76
-(ersions used)-.15 F 1.904(ASCII-based comparisons, so enabling)108
-278.4 R F3(compat32)4.404 E F0 1.905
-(will enable ASCII-based comparisons as well.)4.404 F(That)6.905 E .296
-(granularity may not be suf)108 290.4 R .296
+E(UIL)-.1 E(TINS\(1\))-.92 E 1.646(in that v)108 84 R 1.646(ersion of)
+-.15 F/F1 10/Times-Bold@0 SF(bash)4.146 E F0 4.146(,b)C 1.646
+(ut that beha)-4.346 F 1.646(vior may ha)-.2 F 1.946 -.15(ve b)-.2 H
+1.646(een present in earlier v).15 F 4.146(ersions. F)-.15 F 1.645
+(or instance, the)-.15 F .76
+(change to use locale-based comparisons with the)108 96 R F1([[)3.261 E
+F0 .761(command came in bash-4.1, and earlier v)3.261 F .761
+(ersions used)-.15 F 1.905(ASCII-based comparisons, so enabling)108 108
+R F1(compat32)4.405 E F0 1.904
+(will enable ASCII-based comparisons as well.)4.405 F(That)6.904 E .295
+(granularity may not be suf)108 120 R .296
(\214cient for all uses, and as a result users should emplo)-.25 F 2.796
-(yc)-.1 G .295(ompatibility le)-2.796 F -.15(ve)-.25 G .295(ls care-).15
-F(fully)108 302.4 Q 5(.R)-.65 G(ead the documentation for a particular \
-feature to \214nd out the current beha)-5 E(vior)-.2 E(.)-.55 E .531
-(Bash-4.3 introduced a ne)108 319.2 R 3.031(ws)-.25 G .531(hell v)-3.031
-F(ariable:)-.25 E/F4 9/Times-Bold@0 SF -.27(BA)3.031 G(SH_COMP).27 E
--.855(AT)-.666 G/F5 9/Times-Roman@0 SF(.).855 E F0 .531(The v)5.031 F
-.531(alue assigned to this v)-.25 F .532(ariable \(a decimal)-.25 F -.15
-(ve)108 331.2 S .108(rsion number lik).15 F 2.608(e4)-.1 G .108
-(.2, or an inte)-2.608 F .108(ger corresponding to the)-.15 F F3(compat)
-2.607 E F1(NN)A F0 .107(option, lik)2.607 F 2.607(e4)-.1 G .107
-(2\) determines the com-)-2.607 F(patibility le)108 343.2 Q -.15(ve)-.25
-G(l.).15 E .387(Starting with bash-4.4, Bash has be)108 360 R .388
-(gun deprecating older compatibility le)-.15 F -.15(ve)-.25 G 2.888
-(ls. Ev).15 F(entually)-.15 E 2.888(,t)-.65 G .388(he options will)
--2.888 F(be remo)108 372 Q -.15(ve)-.15 G 2.5(di).15 G 2.5(nf)-2.5 G -.2
-(avo)-2.6 G 2.5(ro).2 G(f)-2.5 E F4 -.27(BA)2.5 G(SH_COMP).27 E -.855
-(AT)-.666 G F5(.).855 E F0 1.164(Bash-5.0 is the \214nal v)108 388.8 R
-1.164(ersion for which there will be an indi)-.15 F 1.163
-(vidual shopt option for the pre)-.25 F 1.163(vious v)-.25 F(ersion.)
--.15 E(Users should use)108 400.8 Q F4 -.27(BA)2.5 G(SH_COMP).27 E -.855
-(AT)-.666 G F0(on bash-5.0 and later v)3.105 E(ersions.)-.15 E 1.613
-(The follo)108 417.6 R 1.613(wing table describes the beha)-.25 F 1.613
+(yc)-.1 G .296(ompatibility le)-2.796 F -.15(ve)-.25 G .296(ls care-).15
+F(fully)108 132 Q 5(.R)-.65 G(ead the documentation for a particular fe\
+ature to \214nd out the current beha)-5 E(vior)-.2 E(.)-.55 E .532
+(Bash-4.3 introduced a ne)108 148.8 R 3.032(ws)-.25 G .531(hell v)-3.032
+F(ariable:)-.25 E/F2 9/Times-Bold@0 SF -.27(BA)3.031 G(SH_COMP).27 E
+-.855(AT)-.666 G/F3 9/Times-Roman@0 SF(.).855 E F0 .531(The v)5.031 F
+.531(alue assigned to this v)-.25 F .531(ariable \(a decimal)-.25 F -.15
+(ve)108 160.8 S .107(rsion number lik).15 F 2.607(e4)-.1 G .107
+(.2, or an inte)-2.607 F .107(ger corresponding to the)-.15 F F1(compat)
+2.608 E/F4 10/Times-Italic@0 SF(NN)A F0 .108(option, lik)2.608 F 2.608
+(e4)-.1 G .108(2\) determines the com-)-2.608 F(patibility le)108 172.8
+Q -.15(ve)-.25 G(l.).15 E .388(Starting with bash-4.4, Bash has be)108
+189.6 R .388(gun deprecating older compatibility le)-.15 F -.15(ve)-.25
+G 2.887(ls. Ev).15 F(entually)-.15 E 2.887(,t)-.65 G .387
+(he options will)-2.887 F(be remo)108 201.6 Q -.15(ve)-.15 G 2.5(di).15
+G 2.5(nf)-2.5 G -.2(avo)-2.6 G 2.5(ro).2 G(f)-2.5 E F2 -.27(BA)2.5 G
+(SH_COMP).27 E -.855(AT)-.666 G F3(.).855 E F0 1.163
+(Bash-5.0 is the \214nal v)108 218.4 R 1.163
+(ersion for which there will be an indi)-.15 F 1.164
+(vidual shopt option for the pre)-.25 F 1.164(vious v)-.25 F(ersion.)
+-.15 E(Users should use)108 230.4 Q F2 -.27(BA)2.5 G(SH_COMP).27 E -.855
+(AT)-.666 G F0(on bash-5.0 and later v)3.105 E(ersions.)-.15 E 1.614
+(The follo)108 247.2 R 1.613(wing table describes the beha)-.25 F 1.613
(vior changes controlled by each compatibility le)-.2 F -.15(ve)-.25 G
-4.113(ls).15 G 4.114(etting. The)-4.113 F F3(compat)108 429.6 Q F1(NN)A
-F0 1.186(tag is used as shorthand for setting the compatibility le)3.686
-F -.15(ve)-.25 G 3.686(lt).15 G(o)-3.686 E F1(NN)3.686 E F0 1.186
-(using one of the follo)3.686 F(wing)-.25 E 3.806(mechanisms. F)108
-441.6 R 1.306(or v)-.15 F 1.306
+4.113(ls).15 G 4.113(etting. The)-4.113 F F1(compat)108 259.2 Q F4(NN)A
+F0 1.186(tag is used as shorthand for setting the compatibility le)3.685
+F -.15(ve)-.25 G 3.686(lt).15 G(o)-3.686 E F4(NN)3.686 E F0 1.186
+(using one of the follo)3.686 F(wing)-.25 E 3.807(mechanisms. F)108
+271.2 R 1.307(or v)-.15 F 1.307
(ersions prior to bash-5.0, the compatibility le)-.15 F -.15(ve)-.25 G
-3.807(lm).15 G 1.307(ay be set using the corresponding)-3.807 F F3
-(compat)108 453.6 Q F1(NN)A F0 .502(shopt option.)3.002 F -.15(Fo)5.502
+3.806(lm).15 G 1.306(ay be set using the corresponding)-3.806 F F1
+(compat)108 283.2 Q F4(NN)A F0 .502(shopt option.)3.002 F -.15(Fo)5.502
G 3.002(rb).15 G .502(ash-4.3 and later v)-3.002 F .502(ersions, the)
--.15 F F4 -.27(BA)3.002 G(SH_COMP).27 E -.855(AT)-.666 G F0 -.25(va)
+-.15 F F2 -.27(BA)3.002 G(SH_COMP).27 E -.855(AT)-.666 G F0 -.25(va)
3.607 G .502(riable is preferred, and it).25 F
-(is required for bash-5.1 and later v)108 465.6 Q(ersions.)-.15 E F3
-(compat31)108 482.4 Q F0<83>144 494.4 Q(quoting the rhs of the)180 494.4
-Q F3([[)2.5 E F0(command')2.5 E 2.5(sr)-.55 G -.15(eg)-2.5 G -.15(ex).15
-G 2.5(pm).15 G(atching operator \(=~\) has no special ef)-2.5 E(fect)
--.25 E F3(compat32)108 511.2 Q F0<83>144 523.2 Q .35
-(interrupting a command list such as "a ; b ; c" causes the e)180 523.2
-R -.15(xe)-.15 G .35(cution of the ne).15 F .35(xt command)-.15 F .018
-(in the list \(in bash-4.0 and later v)180 535.2 R .018
-(ersions, the shell acts as if it recei)-.15 F -.15(ve)-.25 G 2.517(dt)
-.15 G .017(he interrupt, so in-)-2.517 F
-(terrupting one command in a list aborts the e)180 547.2 Q -.15(xe)-.15
-G(cution of the entire list\)).15 E F3(compat40)108 564 Q F0<83>144 576
-Q(the)180 576 Q F3(<)2.673 E F0(and)2.673 E F3(>)2.673 E F0 .173
-(operators to the)2.673 F F3([[)2.673 E F0 .173
+(is required for bash-5.1 and later v)108 295.2 Q(ersions.)-.15 E F1
+(compat31)108 312 Q F0<83>144 324 Q(quoting the rhs of the)180 324 Q F1
+([[)2.5 E F0(command')2.5 E 2.5(sr)-.55 G -.15(eg)-2.5 G -.15(ex).15 G
+2.5(pm).15 G(atching operator \(=~\) has no special ef)-2.5 E(fect)-.25
+E F1(compat32)108 340.8 Q F0<83>144 352.8 Q .35
+(interrupting a command list such as "a ; b ; c" causes the e)180 352.8
+R -.15(xe)-.15 G .35(cution of the ne).15 F .35(xt command)-.15 F .017
+(in the list \(in bash-4.0 and later v)180 364.8 R .018
+(ersions, the shell acts as if it recei)-.15 F -.15(ve)-.25 G 2.518(dt)
+.15 G .018(he interrupt, so in-)-2.518 F
+(terrupting one command in a list aborts the e)180 376.8 Q -.15(xe)-.15
+G(cution of the entire list\)).15 E F1(compat40)108 393.6 Q F0<83>144
+405.6 Q(the)180 405.6 Q F1(<)2.674 E F0(and)2.674 E F1(>)2.673 E F0 .173
+(operators to the)2.673 F F1([[)2.673 E F0 .173
(command do not consider the current locale when compar)2.673 F(-)-.2 E
-.068(ing strings; the)180 588 R 2.568(yu)-.15 G .068(se ASCII ordering.)
--2.568 F .068(Bash v)5.068 F .067
-(ersions prior to bash-4.1 use ASCII collation)-.15 F(and)180 600 Q F1
-(str)4.742 E(cmp)-.37 E F0 1.902
-(\(3\); bash-4.1 and later use the current locale').19 F 4.403(sc)-.55 G
-1.903(ollation sequence and)-4.403 F F1(str)4.743 E(-)-.2 E(coll)180 612
-Q F0(\(3\).).51 E F3(compat41)108 628.8 Q F0<83>144 640.8 Q(in)180 640.8
-Q F1(posix)3.79 E F0(mode,)3.79 E F3(time)3.79 E F0 1.29(may be follo)
-3.79 F 1.29(wed by options and still be recognized as a reserv)-.25 F
-(ed)-.15 E -.1(wo)180 652.8 S(rd \(this is POSIX interpretation 267\)).1
-E<83>144 664.8 Q(in)180 664.8 Q F1(posix)2.708 E F0 .208
-(mode, the parser requires that an e)2.708 F -.15(ve)-.25 G 2.708(nn).15
-G .208(umber of single quotes occur in the)-2.708 F F1(wor)2.709 E(d)
--.37 E F0 .282(portion of a double-quoted parameter e)180 676.8 R .282
-(xpansion and treats them specially)-.15 F 2.781(,s)-.65 G 2.781(ot)
--2.781 G .281(hat charac-)-2.781 F(ters within the single quotes are co\
-nsidered quoted \(this is POSIX interpretation 221\))180 688.8 Q F3
-(compat42)108 705.6 Q F0<83>144 717.6 Q 1.055(the replacement string in\
- double-quoted pattern substitution does not under)180 717.6 R 1.056
-(go quote re-)-.18 F(mo)180 729.6 Q -.25(va)-.15 G(l, as it does in v)
-.25 E(ersions after bash-4.2)-.15 E(GNU Bash 5.0)72 768 Q(2004 Apr 20)
-149.565 E(25)198.725 E 0 Cg EP
-%%Page: 26 26
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
-(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
-E(UIL)-.1 E(TINS\(1\))-.92 E<83>144 84 Q .021
-(in posix mode, single quotes are considered special when e)180 84 R
-.021(xpanding the)-.15 F/F1 10/Times-Italic@0 SF(wor)2.52 E(d)-.37 E F0
-.02(portion of a)2.52 F .017(double-quoted parameter e)180 96 R .017
+.067(ing strings; the)180 417.6 R 2.567(yu)-.15 G .067
+(se ASCII ordering.)-2.567 F .068(Bash v)5.068 F .068
+(ersions prior to bash-4.1 use ASCII collation)-.15 F(and)180 429.6 Q F4
+(str)4.743 E(cmp)-.37 E F0 1.903
+(\(3\); bash-4.1 and later use the current locale').19 F 4.402(sc)-.55 G
+1.902(ollation sequence and)-4.402 F F4(str)4.742 E(-)-.2 E(coll)180
+441.6 Q F0(\(3\).).51 E F1(compat41)108 458.4 Q F0<83>144 470.4 Q(in)180
+470.4 Q F4(posix)3.79 E F0(mode,)3.79 E F1(time)3.79 E F0 1.29
+(may be follo)3.79 F 1.29
+(wed by options and still be recognized as a reserv)-.25 F(ed)-.15 E -.1
+(wo)180 482.4 S(rd \(this is POSIX interpretation 267\)).1 E<83>144
+494.4 Q(in)180 494.4 Q F4(posix)2.709 E F0 .208
+(mode, the parser requires that an e)2.709 F -.15(ve)-.25 G 2.708(nn).15
+G .208(umber of single quotes occur in the)-2.708 F F4(wor)2.708 E(d)
+-.37 E F0 .281(portion of a double-quoted parameter e)180 506.4 R .282
+(xpansion and treats them specially)-.15 F 2.782(,s)-.65 G 2.782(ot)
+-2.782 G .282(hat charac-)-2.782 F(ters within the single quotes are co\
+nsidered quoted \(this is POSIX interpretation 221\))180 518.4 Q F1
+(compat42)108 535.2 Q F0<83>144 547.2 Q 1.056(the replacement string in\
+ double-quoted pattern substitution does not under)180 547.2 R 1.055
+(go quote re-)-.18 F(mo)180 559.2 Q -.25(va)-.15 G(l, as it does in v)
+.25 E(ersions after bash-4.2)-.15 E<83>144 571.2 Q .021
+(in posix mode, single quotes are considered special when e)180 571.2 R
+.021(xpanding the)-.15 F F4(wor)2.521 E(d)-.37 E F0 .021(portion of a)
+2.521 F .018(double-quoted parameter e)180 583.2 R .017
(xpansion and can be used to quote a closing brace or other spe-)-.15 F
-.999(cial character \(this is part of POSIX interpretation 221\); in la\
-ter v)180 108 R .998(ersions, single quotes)-.15 F
-(are not special within double-quoted w)180 120 Q(ord e)-.1 E(xpansions)
--.15 E/F2 10/Times-Bold@0 SF(compat43)108 136.8 Q F0<83>144 148.8 Q 1.07
-(the shell does not print a w)180 148.8 R 1.071
-(arning message if an attempt is made to use a quoted com-)-.1 F .249
-(pound assignment as an ar)180 160.8 R .248
-(gument to declare \(declare -a foo='\(1 2\)'\). Later v)-.18 F .248
-(ersions w)-.15 F(arn)-.1 E(that this usage is deprecated)180 172.8 Q
-<83>144 184.8 Q -.1(wo)180 184.8 S .5(rd e).1 F .501
+.998(cial character \(this is part of POSIX interpretation 221\); in la\
+ter v)180 595.2 R .999(ersions, single quotes)-.15 F
+(are not special within double-quoted w)180 607.2 Q(ord e)-.1 E
+(xpansions)-.15 E F1(compat43)108 624 Q F0<83>144 636 Q 1.071
+(the shell does not print a w)180 636 R 1.07
+(arning message if an attempt is made to use a quoted com-)-.1 F .71
+(pound assignment as an ar)180 648 R .711
+(gument to declare \(e.g., declare -a foo=\010\(1 2\)\010\). Later v)
+-.18 F(ersions)-.15 E -.1(wa)180 660 S(rn that this usage is deprecated)
+.1 E<83>144 672 Q -.1(wo)180 672 S .501(rd e).1 F .501
(xpansion errors are considered non-f)-.15 F .501
-(atal errors that cause the current command to)-.1 F -.1(fa)180 196.8 S
+(atal errors that cause the current command to)-.1 F -.1(fa)180 684 S
.605(il, e).1 F -.15(ve)-.25 G 3.105(ni).15 G 3.105(np)-3.105 G .605
(osix mode \(the def)-3.105 F .605(ault beha)-.1 F .605(vior is to mak)
-.2 F 3.105(et)-.1 G .605(hem f)-3.105 F .605
-(atal errors that cause the)-.1 F(shell to e)180 208.8 Q(xit\))-.15 E
-<83>144 220.8 Q .354(when e)180 220.8 R -.15(xe)-.15 G .354
-(cuting a shell function, the loop state \(while/until/etc.\)).15 F .355
-(is not reset, so)5.354 F F2(br)2.855 E(eak)-.18 E F0(or)2.855 E F2
-(continue)180 232.8 Q F0 .052
+(atal errors that cause the)-.1 F(shell to e)180 696 Q(xit\))-.15 E<83>
+144 708 Q .355(when e)180 708 R -.15(xe)-.15 G .354
+(cuting a shell function, the loop state \(while/until/etc.\)).15 F .354
+(is not reset, so)5.354 F F1(br)2.854 E(eak)-.18 E F0(or)2.854 E F1
+(continue)180 720 Q F0 .052
(in that function will break or continue loops in the calling conte)
-2.553 F .052(xt. Bash-4.4 and)-.15 F(later reset the loop state to pre)
-180 244.8 Q -.15(ve)-.25 G(nt this).15 E F2(compat44)108 261.6 Q F0<83>
-144 273.6 Q .719(the shell sets up the v)180 273.6 R .719(alues used by)
--.25 F/F3 9/Times-Bold@0 SF -.27(BA)3.219 G(SH_ARGV).27 E F0(and)2.969 E
-F3 -.27(BA)3.219 G(SH_ARGC).27 E F0 .719(so the)2.969 F 3.219(yc)-.15 G
-.719(an e)-3.219 F(xpand)-.15 E(to the shell')180 285.6 Q 2.5(sp)-.55 G
-(ositional parameters e)-2.5 E -.15(ve)-.25 G 2.5(ni).15 G 2.5(fe)-2.5 G
-(xtended deb)-2.65 E(ugging mode is not enabled)-.2 E<83>144 297.6 Q
-2.635(as)180 297.6 S .135(ubshell inherits loops from its parent conte)
--2.635 F .135(xt, so)-.15 F F2(br)2.635 E(eak)-.18 E F0(or)2.635 E F2
-(continue)2.634 E F0 .134(will cause the sub-)2.634 F(shell to e)180
-309.6 Q 2.5(xit. Bash-5.0)-.15 F(and later reset the loop state to pre)
-2.5 E -.15(ve)-.25 G(nt the e).15 E(xit)-.15 E<83>144 321.6 Q -.25(va)
-180 321.6 S .618(riable assignments preceding b).25 F .618(uiltins lik)
--.2 F(e)-.1 E F2(export)3.118 E F0(and)3.118 E F2 -.18(re)3.118 G
-(adonly).18 E F0 .618(that set attrib)3.118 F .619(utes con-)-.2 F .12
-(tinue to af)180 333.6 R .12(fect v)-.25 F .119
-(ariables with the same name in the calling en)-.25 F .119(vironment e)
--.4 F -.15(ve)-.25 G 2.619(ni).15 G 2.619(ft)-2.619 G .119(he shell is)
--2.619 F(not in posix mode)180 345.6 Q F2(compat50)108 362.4 Q F0<83>144
-374.4 Q 1.209(Bash-5.1 changed the w)180 374.4 R(ay)-.1 E F3($RANDOM)
-3.709 E F0 1.209(is generated to introduce slightly more random-)3.459 F
-1.019(ness. If the shell compatibility le)180 386.4 R -.15(ve)-.25 G
-3.518(li).15 G 3.518(ss)-3.518 G 1.018(et to 50 or lo)-3.518 F(wer)-.25
-E 3.518(,i)-.4 G 3.518(tr)-3.518 G -2.15 -.25(ev e)-3.518 H 1.018
-(rts to the method from).25 F .732(bash-5.0 and pre)180 398.4 R .732
-(vious v)-.25 F .733
+2.552 F .053(xt. Bash-4.4 and)-.15 F(GNU Bash 5.2)72 768 Q(2021 No)
+136.385 E -.15(ve)-.15 G(mber 22).15 E(26)185.545 E 0 Cg EP
+%%Page: 27 27
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF -.35(BA)72 48 S(SH_B).35 E(UIL)-.1 E 87.61
+(TINS\(1\) General)-.92 F(Commands Manual)2.5 E -.35(BA)90.11 G(SH_B).35
+E(UIL)-.1 E(TINS\(1\))-.92 E(later reset the loop state to pre)180 84 Q
+-.15(ve)-.25 G(nt this).15 E/F1 10/Times-Bold@0 SF(compat44)108 100.8 Q
+F0<83>144 112.8 Q .719(the shell sets up the v)180 112.8 R .719
+(alues used by)-.25 F/F2 9/Times-Bold@0 SF -.27(BA)3.219 G(SH_ARGV).27 E
+F0(and)2.969 E F2 -.27(BA)3.219 G(SH_ARGC).27 E F0 .719(so the)2.969 F
+3.218(yc)-.15 G .718(an e)-3.218 F(xpand)-.15 E(to the shell')180 124.8
+Q 2.5(sp)-.55 G(ositional parameters e)-2.5 E -.15(ve)-.25 G 2.5(ni).15
+G 2.5(fe)-2.5 G(xtended deb)-2.65 E(ugging mode is not enabled)-.2 E<83>
+144 136.8 Q 2.634(as)180 136.8 S .134
+(ubshell inherits loops from its parent conte)-2.634 F .135(xt, so)-.15
+F F1(br)2.635 E(eak)-.18 E F0(or)2.635 E F1(continue)2.635 E F0 .135
+(will cause the sub-)2.635 F(shell to e)180 148.8 Q 2.5(xit. Bash-5.0)
+-.15 F(and later reset the loop state to pre)2.5 E -.15(ve)-.25 G
+(nt the e).15 E(xit)-.15 E<83>144 160.8 Q -.25(va)180 160.8 S .619
+(riable assignments preceding b).25 F .618(uiltins lik)-.2 F(e)-.1 E F1
+(export)3.118 E F0(and)3.118 E F1 -.18(re)3.118 G(adonly).18 E F0 .618
+(that set attrib)3.118 F .618(utes con-)-.2 F .119(tinue to af)180 172.8
+R .119(fect v)-.25 F .119(ariables with the same name in the calling en)
+-.25 F .12(vironment e)-.4 F -.15(ve)-.25 G 2.62(ni).15 G 2.62(ft)-2.62
+G .12(he shell is)-2.62 F(not in posix mode)180 184.8 Q F1(compat50)108
+201.6 Q F0<83>144 213.6 Q 1.209(Bash-5.1 changed the w)180 213.6 R(ay)
+-.1 E F2($RANDOM)3.709 E F0 1.209
+(is generated to introduce slightly more random-)3.459 F 1.018
+(ness. If the shell compatibility le)180 225.6 R -.15(ve)-.25 G 3.518
+(li).15 G 3.518(ss)-3.518 G 1.018(et to 50 or lo)-3.518 F(wer)-.25 E
+3.518(,i)-.4 G 3.518(tr)-3.518 G -2.15 -.25(ev e)-3.518 H 1.019
+(rts to the method from).25 F .733(bash-5.0 and pre)180 237.6 R .733
+(vious v)-.25 F .732
(ersions, so seeding the random number generator by assigning a)-.15 F
--.25(va)180 410.4 S(lue to).25 E F3(RANDOM)2.5 E F0
-(will produce the same sequence as in bash-5.0)2.25 E<83>144 422.4 Q
-.696(If the command hash table is empty)180 422.4 R 3.196(,b)-.65 G .696
-(ash v)-3.196 F .695(ersions prior to bash-5.1 printed an informa-)-.15
-F 1.32(tional message to that ef)180 434.4 R 1.321(fect, e)-.25 F -.15
+-.25(va)180 249.6 S(lue to).25 E F2(RANDOM)2.5 E F0
+(will produce the same sequence as in bash-5.0)2.25 E<83>144 261.6 Q
+.695(If the command hash table is empty)180 261.6 R 3.196(,b)-.65 G .696
+(ash v)-3.196 F .696(ersions prior to bash-5.1 printed an informa-)-.15
+F 1.321(tional message to that ef)180 273.6 R 1.321(fect, e)-.25 F -.15
(ve)-.25 G 3.821(nw).15 G 1.321
(hen producing output that can be reused as input.)-3.821 F
-(Bash-5.1 suppresses that message when the)180 446.4 Q F2<ad6c>2.5 E F0
-(option is supplied.)2.5 E/F4 10.95/Times-Bold@0 SF(SEE ALSO)72 463.2 Q
-F0(bash\(1\), sh\(1\))108 475.2 Q(GNU Bash 5.0)72 768 Q(2004 Apr 20)
-149.565 E(26)198.725 E 0 Cg EP
+(Bash-5.1 suppresses that message when the)180 285.6 Q F1<ad6c>2.5 E F0
+(option is supplied.)2.5 E F1(compat51)108 302.4 Q F0<83>144 314.4 Q
+(The)180 314.4 Q F1(unset)2.954 E F0 -.2(bu)2.954 G .454
+(iltin treats attempts to unset array subscripts).2 F F1(@)2.955 E F0
+(and)2.955 E F1(*)2.955 E F0(dif)2.955 E .455(ferently depending)-.25 F
+(on whether the array is inde)180 326.4 Q -.15(xe)-.15 G 2.5(do).15 G
+2.5(ra)-2.5 G(ssociati)-2.5 E -.15(ve)-.25 G 2.5(,a).15 G(nd dif)-2.5 E
+(ferently than in pre)-.25 E(vious v)-.25 E(ersions.)-.15 E/F3 10.95
+/Times-Bold@0 SF(SEE ALSO)72 343.2 Q F0(bash\(1\), sh\(1\))108 355.2 Q
+(GNU Bash 5.2)72 768 Q(2021 No)136.385 E -.15(ve)-.15 G(mber 22).15 E
+(27)185.545 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/doc/rbash.0 b/doc/rbash.0
index b602a702..96845d0c 100644
--- a/doc/rbash.0
+++ b/doc/rbash.0
@@ -48,11 +48,12 @@ RREESSTTRRIICCTTEEDD SSHHEELLLL
+o specifying the --pp option to the ccoommmmaanndd builtin command
- +o turning off restricted mode with sseett ++rr or sseett ++oo rreessttrriicctteedd.
+ +o turning off restricted mode with sseett ++rr or sshhoopptt --uu rree--
+ ssttrriicctteedd__sshheellll.
These restrictions are enforced after any startup files are read.
- When a command that is found to be a shell script is executed, rrbbaasshh
+ When a command that is found to be a shell script is executed, rrbbaasshh
turns off any restrictions in the shell spawned to execute the script.
SSEEEE AALLSSOO
@@ -60,4 +61,4 @@ SSEEEE AALLSSOO
-GNU Bash-4.0 2004 Apr 20 RBASH(1)
+Bash-5.2 2021 November 22 RBASH(1)
diff --git a/doc/rbash.1 b/doc/rbash.1
index 56e38fd0..39309b4c 100644
--- a/doc/rbash.1
+++ b/doc/rbash.1
@@ -1,4 +1,4 @@
-.TH RBASH 1 "2004 Apr 20" "GNU Bash-4.0"
+.TH RBASH 1 "2021 November 22" "Bash-5.2"
.SH NAME
rbash \- restricted bash, see \fBbash\fR(1)
.SH RESTRICTED SHELL
diff --git a/doc/rbash.ps b/doc/rbash.ps
index 45c9f66b..06fe883d 100644
--- a/doc/rbash.ps
+++ b/doc/rbash.ps
@@ -1,6 +1,6 @@
%!PS-Adobe-3.0
%%Creator: groff version 1.22.4
-%%CreationDate: Wed Nov 18 15:13:06 2020
+%%CreationDate: Mon Sep 19 12:02:42 2022
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%DocumentSuppliedResources: procset grops 1.22 4
@@ -276,15 +276,15 @@ F2<ad66>2.5 E F0(and)2.5 E F2<ad64>2.5 E F0(options to the)2.5 E F2
379.2 Q(specifying the)144 379.2 Q F2<ad70>2.5 E F0(option to the)2.5 E
F2(command)2.5 E F0 -.2(bu)2.5 G(iltin command).2 E<83>108 396 Q
(turning of)144 396 Q 2.5(fr)-.25 G(estricted mode with)-2.5 E F2
-(set +r)2.5 E F0(or)2.5 E F2(set +o r)2.5 E(estricted)-.18 E F0(.)A
-(These restrictions are enforced after an)108 412.8 Q 2.5(ys)-.15 G
+(set +r)2.5 E F0(or)2.5 E F2(shopt -u r)2.5 E(estricted_shell)-.18 E F0
+(.)A(These restrictions are enforced after an)108 412.8 Q 2.5(ys)-.15 G
(tartup \214les are read.)-2.5 E .429
(When a command that is found to be a shell script is e)108 429.6 R -.15
(xe)-.15 G(cuted,).15 E F2(rbash)2.929 E F0 .429(turns of)2.929 F 2.929
(fa)-.25 G .729 -.15(ny r)-2.929 H .429(estrictions in the shell).15 F
(spa)108 441.6 Q(wned to e)-.15 E -.15(xe)-.15 G(cute the script.).15 E
-F1(SEE ALSO)72 458.4 Q F0(bash\(1\))108 470.4 Q(GNU Bash-4.0)72 768 Q
-(2004 Apr 20)148.735 E(1)203.725 E 0 Cg EP
+F1(SEE ALSO)72 458.4 Q F0(bash\(1\))108 470.4 Q 157.215(Bash-5.2 2021)72
+768 R(No)2.5 E -.15(ve)-.15 G(mber 22).15 E(1)190.545 E 0 Cg EP
%%Trailer
end
%%EOF
diff --git a/doc/version.texi b/doc/version.texi
index 561a6d0e..175aa07a 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,11 +1,11 @@
@ignore
-Copyright (C) 1988-2020 Free Software Foundation, Inc.
+Copyright (C) 1988-2022 Free Software Foundation, Inc.
@end ignore
-@set LASTCHANGE Thu Oct 29 16:18:54 EDT 2020
+@set LASTCHANGE Mon Sep 19 11:13:51 EDT 2022
-@set EDITION 5.1
-@set VERSION 5.1
+@set EDITION 5.2
+@set VERSION 5.2
-@set UPDATED 29 October 2020
-@set UPDATED-MONTH October 2020
+@set UPDATED 19 September 2022
+@set UPDATED-MONTH September 2022