]> git.ipfire.org Git - thirdparty/bash.git/blobdiff - doc/bashref.html
bash-5.2 distribution sources and documentation
[thirdparty/bash.git] / doc / bashref.html
index 6a4c3ab881254548dfd293812df95dbc83c909a2..928b3ff19156ca6527ecbf6466152fe8fe07ff55 100644 (file)
@@ -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>Storing the regular expression in a shell variable is often a useful
+<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>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>