]> git.ipfire.org Git - thirdparty/bash.git/blobdiff - doc/bashref.texi
Imported from ../bash-2.05a.tar.gz.
[thirdparty/bash.git] / doc / bashref.texi
index ea3702ff4118a03cd7f408421d7b4ad316842c7a..337a2b6a2afa6c34911f0874a2bdf90478613ff8 100644 (file)
@@ -5,13 +5,13 @@
 @c %**end of header
 
 @ignore
-Last Change: Wed Mar 28 14:48:38 EST 2001
+Last Change: Tue Nov 13 12:48:51 EST 2001
 @end ignore
 
-@set EDITION 2.5
-@set VERSION 2.05
-@set UPDATED 28 Mar 2001
-@set UPDATE-MONTH Mar 2001
+@set EDITION 2.5a
+@set VERSION 2.05a
+@set UPDATED 13 November 2001
+@set UPDATE-MONTH November 2001
 
 @iftex
 @finalout
@@ -36,7 +36,7 @@ This is Edition @value{EDITION}, last updated @value{UPDATED},
 of @cite{The GNU Bash Reference Manual},
 for @code{Bash}, Version @value{VERSION}.
 
-Copyright (C) 1991-1999 Free Software Foundation, Inc.
+Copyright (C) 1991-2001 Free Software Foundation, Inc.
 
 Permission is granted to make and distribute verbatim copies of
 this manual provided the copyright notice and this permission notice
@@ -267,7 +267,8 @@ or one of the following:
 
 @item exit status
 @cindex exit status
-The value returned by a command to its caller.
+The value returned by a command to its caller.  The value is restricted
+to eight bits, so the maximum value is 255.
 
 @item field
 @cindex field
@@ -542,11 +543,11 @@ backslash
 @item \'
 single quote
 @item \@var{nnn}
-the character whose @code{ASCII} code is the octal value @var{nnn}
-(one to three digits)
-@item \x@var{nnn}
-the character whose @code{ASCII} code is the hexadecimal value @var{nnn}
+the eight-bit character whose value is the octal value @var{nnn}
 (one to three digits)
+@item \x@var{HH}
+the eight-bit character whose value is the hexadecimal value @var{HH}
+(one or two hex digits)
 @end table
 
 @noindent
@@ -556,6 +557,9 @@ been present.
 @node Locale Translation
 @subsubsection Locale-Specific Translation
 @cindex localization
+@cindex internationalization
+@cindex native languages
+@cindex translation, native languages
 
 A double-quoted string preceded by a dollar sign (@samp{$}) will cause
 the string to be translated according to the current locale.
@@ -564,12 +568,17 @@ is ignored.
 If the string is translated and replaced, the replacement is
 double-quoted.
 
+@vindex LC_MESSAGES
+@vindex TEXTDOMAIN
+@vindex TEXTDOMAINDIR
 Some systems use the message catalog selected by the @env{LC_MESSAGES}
 shell variable.  Others create the name of the message catalog from the
 value of the @env{TEXTDOMAIN} shell variable, possibly adding a
 suffix of @samp{.mo}.  If you use the @env{TEXTDOMAIN} variable, you
 may need to set the @env{TEXTDOMAINDIR} variable to the location of
-the message catalog files.
+the message catalog files.  Still others use both variables in this
+fashion:
+@env{TEXTDOMAINDIR}/@env{LC_MESSAGES}/LC_MESSAGES/@env{TEXTDOMAIN}.mo.
 
 @node Comments
 @subsection Comments
@@ -640,9 +649,9 @@ The format for a pipeline is
 @end example
 
 @noindent
-The output of each command in the pipeline is connected to the input of
-the next command.  That is, each command reads the previous command's
-output.
+The output of each command in the pipeline is connected via a pipe
+to the input of the next command.
+That is, each command reads the previous command's output.
 
 The reserved word @code{time} causes timing statistics
 to be printed for the pipeline once it finishes.
@@ -891,7 +900,7 @@ Any other value read causes @var{name} to be set to null.
 The line read is saved in the variable @env{REPLY}.
 
 The @var{commands} are executed after each selection until a
-@code{break} or @code{return} command is executed, at which
+@code{break} command is executed, at which
 point the @code{select} command completes.
 
 Here is an example that allows the user to pick a filename from the
@@ -1063,7 +1072,7 @@ call.  When a function completes, the values of the
 positional parameters and the special parameter @samp{#}
 are restored to the values they had prior to the function's
 execution.  If a numeric argument is given to @code{return},
-that is the function's return status; otherwise the functions's
+that is the function's return status; otherwise the function's
 return status is the exit status of the last command executed
 before the @code{return}.
 
@@ -1090,6 +1099,9 @@ It can be a @code{name}, a number, or one of the special characters
 listed below.
 For the shell's purposes, a @var{variable} is a parameter denoted by a
 @code{name}.
+A variable has a @var{value} and zero or more @var{attributes}.
+Attributes are assigned using the @code{declare} builtin command
+(see the description of the @code{declare} builtin in @ref{Bash Builtins}).
 
 A parameter is set if it has been assigned a value.  The null string is
 a valid value.  Once a variable is set, it may be unset only by using
@@ -1105,13 +1117,15 @@ is not given, the variable is assigned the null string.  All
 @var{value}s undergo tilde expansion, parameter and variable expansion,
 command substitution, arithmetic expansion, and quote
 removal (detailed below).  If the variable has its @code{integer}
-attribute set (see the description of the @code{declare} builtin in
-@ref{Bash Builtins}), then @var{value} 
+attribute set, then @var{value} 
 is subject to arithmetic expansion even if the @code{$((@dots{}))}
 expansion is not used (@pxref{Arithmetic Expansion}).
 Word splitting is not performed, with the exception
 of @code{"$@@"} as explained below.
 Filename expansion is not performed.
+Assignment statements may also appear as arguments to the
+@code{declare}, @code{typeset}, @code{export}, @code{readonly},
+and @code{local} builtin commands.
 
 @node Positional Parameters
 @subsection Positional Parameters
@@ -1870,13 +1884,13 @@ File descriptor 2 is duplicated.
 
 @item /dev/tcp/@var{host}/@var{port}
 If @var{host} is a valid hostname or Internet address, and @var{port}
-is an integer port number, Bash attempts to open a TCP connection
-to the corresponding socket.
+is an integer port number or service name, Bash attempts to open a TCP
+connection to the corresponding socket.
 
 @item /dev/udp/@var{host}/@var{port}
 If @var{host} is a valid hostname or Internet address, and @var{port}
-is an integer port number, Bash attempts to open a UDP connection
-to the corresponding socket.
+is an integer port number or service name, Bash attempts to open a UDP
+connection to the corresponding socket.
 
 @end table
 
@@ -2230,6 +2244,11 @@ commands that are invoked as part of a pipeline are also executed
 in a subshell environment.  Changes made to the subshell environment
 cannot affect the shell's execution environment.
 
+If a command is followed by a @samp{&} and job control is not active, the
+default standard input for the command is the empty file @file{/dev/null}.
+Otherwise, the invoked command inherits the file descriptors of the calling
+shell as modified by redirections.
+
 @node Environment
 @subsection Environment
 @cindex environment
@@ -2319,8 +2338,8 @@ command substitution ignore the keyboard-generated job control signals
 @code{SIGTTIN}, @code{SIGTTOU}, and @code{SIGTSTP}.
 
 The shell exits by default upon receipt of a @code{SIGHUP}.
-Before exiting, it resends the @code{SIGHUP} to all jobs, running
-or stopped.
+Before exiting, an interactive shell resends the @code{SIGHUP} to
+all jobs, running or stopped.
 Stopped jobs are sent @code{SIGCONT} to ensure that they receive
 the @code{SIGHUP}.
 To prevent the shell from sending the @code{SIGHUP} signal to a
@@ -2351,7 +2370,11 @@ a file is used as the first non-option argument when invoking Bash,
 and neither the @option{-c} nor @option{-s} option is supplied
 (@pxref{Invoking Bash}), 
 Bash reads and executes commands from the file, then exits.  This
-mode of operation creates a non-interactive shell.  When Bash runs
+mode of operation creates a non-interactive shell.  The shell first
+searches for the file in the current directory, and looks in the
+directories in @env{$PATH} if not found there.
+
+When Bash runs
 a shell script, it sets the special parameter @code{0} to the name
 of the file, rather than the name of the shell, and the positional
 parameters are set to the remaining arguments, if any are given.
@@ -2614,7 +2637,7 @@ If @code{getopts} is silent, then a colon (@samp{:}) is placed in
 @item hash
 @btindex hash
 @example
-hash [-r] [-p @var{filename}] [@var{name}]
+hash [-r] [-p @var{filename}] [-t] [@var{name}]
 @end example
 Remember the full pathnames of commands specified as @var{name} arguments,
 so they need not be searched for on subsequent invocations.
@@ -2623,6 +2646,10 @@ The commands are found by searching through the directories listed in
 The @option{-p} option inhibits the path search, and @var{filename} is
 used as the location of @var{name}.
 The @option{-r} option causes the shell to forget all remembered locations.
+If the @option{-t} option is supplied, the full pathname to which each
+@var{name} corresponds is printed.  If multiple @var{name} arguments are
+supplied with @option{-t} the @var{name} is printed before the hashed
+full pathname.
 If no arguments are given, information about remembered commands is printed.
 The return status is zero unless a @var{name} is not found or an invalid
 option is supplied.
@@ -2671,7 +2698,7 @@ This may also be used to terminate execution of a script being executed
 with the @code{.} (or @code{source}) builtin, returning either @var{n} or
 the exit status of the last command executed within the script as the exit
 status of the script.
-The return status is false if @code{return} is used outside a function
+The return status is non-zero if @code{return} is used outside a function
 and not during the execution of a script by @code{.} or @code{source}.
 
 @item shift
@@ -2795,6 +2822,12 @@ If a @var{sigspec}
 is @code{0} or @code{EXIT}, @var{arg} is executed when the shell exits.
 If a @var{sigspec} is @code{DEBUG}, the command @var{arg} is executed
 after every simple command.
+If a @var{sigspec} is @code{ERR}, the command @var{arg} 
+is executed whenever a simple command has a non-zero exit status.
+The @code{ERR} trap is not executed if the failed command is part of an
+@code{until} or @code{while} loop, part of an @code{if} statement,
+part of a @code{&&} or @code{||} list, or if the command's return
+status is being inverted using @code{!}.
 The @option{-l} option causes the shell to print a list of signal names
 and their corresponding numbers.
 
@@ -3074,11 +3107,11 @@ vertical tab
 @item \\
 backslash
 @item \@var{nnn}
-the character whose @code{ASCII} code is the octal value @var{nnn}
-(one to three digits)
-@item \x@var{nnn}
-the character whose @code{ASCII} code is the hexadecimal value @var{nnn}
+the eight-bit character whose value is the octal value @var{nnn}
 (one to three digits)
+@item \x@var{HH}
+the eight-bit character whose value is the hexadecimal value @var{HH}
+(one or two hex digits)
 @end table
 
 @item enable
@@ -3377,6 +3410,11 @@ If enabled, and the @code{cmdhist}
 option is enabled, multi-line commands are saved to the history with
 embedded newlines rather than using semicolon separators where possible.
 
+@item login_shell
+The shell sets this option if it is started as a login shell
+(@pxref{Invoking Bash}).
+The value may not be changed.
+
 @item mailwarn
 If set, and a file that Bash is checking for mail has been  
 accessed since the last time it was checked, the message
@@ -3531,7 +3569,10 @@ The maximum amount of virtual memory available to the process.
 
 @end table
 
-If @var{limit} is given, it is the new value of the specified resource.
+If @var{limit} is given, it is the new value of the specified resource;
+the special @var{limit} values @code{hard}, @code{soft}, and
+@code{unlimited} stand for the current hard limit, the current soft limit,
+and no limit, respectively.
 Otherwise, the current value of the soft limit for the specified resource
 is printed, unless the @option{-H} option is supplied.
 When setting new limits, if neither @option{-H} nor @option{-S} is supplied,
@@ -3541,9 +3582,8 @@ increments, except for @option{-t}, which is in seconds, @option{-p},
 which is in units of 512-byte blocks, and @option{-n} and @option{-u}, which
 are unscaled values.
 
-The return status is zero unless an invalid option is supplied, a
-non-numeric argument other than @code{unlimited} is supplied as a
-@var{limit}, or an error occurs while setting a new limit.
+The return status is zero unless an invalid option or argument is supplied,
+or an error occurs while setting a new limit.
 
 @item unalias
 @btindex unalias
@@ -3591,6 +3631,7 @@ with a non-zero status, unless the command that fails is part of an
 @code{until} or @code{while} loop, part of an @code{if} statement,
 part of a @code{&&} or @code{||} list, or if the command's return
 status is being inverted using @code{!}.
+A trap on @code{ERR}, if set, is executed before the shell exits.
 
 @item -f
 Disable file name generation (globbing).
@@ -3657,6 +3698,9 @@ Same as @code{-n}.
 @item noglob
 Same as @code{-f}.
 
+@item nolog
+Currently ignored.
+
 @item notify
 Same as @code{-b}.
 
@@ -3927,11 +3971,10 @@ The value of @env{MACHTYPE}.
 
 @end table
 
-@item COMP_WORDS
-An array variable consisting of the individual
-words in the current command line.
-This variable is available only in shell functions invoked by the
-programmable completion facilities (@pxref{Programmable Completion}).
+@item COLUMNS
+Used by the @code{select} builtin command to determine the terminal width
+when printing selection lists.  Automatically set upon receipt of a
+@code{SIGWINCH}.
 
 @item COMP_CWORD
 An index into @env{$@{COMP_WORDS@}} of the word containing the current
@@ -3954,6 +3997,12 @@ This variable is available only in shell functions and external
 commands invoked by the
 programmable completion facilities (@pxref{Programmable Completion}).
 
+@item COMP_WORDS
+An array variable consisting of the individual
+words in the current command line.
+This variable is available only in shell functions invoked by the
+programmable completion facilities (@pxref{Programmable Completion}).
+
 @item COMPREPLY
 An array variable from which Bash reads the possible completions
 generated by a shell function invoked by the programmable completion
@@ -3986,6 +4035,13 @@ A file name whose suffix matches one of the entries in
 is excluded from the list of matched file names.  A sample
 value is @samp{.o:~}
 
+@item FUNCNAME
+The name of any currently-executing shell function.      
+This variable exists only when a shell function is executing.
+Assignments to @env{FUNCNAME} have no effect and return an error status.
+If @env{FUNCNAME} is unset, it loses its special properties, even if
+it is subsequently reset.
+
 @item GLOBIGNORE
 A colon-separated list of patterns defining the set of filenames to
 be ignored by filename expansion.
@@ -4019,13 +4075,6 @@ The history number, or index in the history list, of the current
 command.  If @env{HISTCMD} is unset, it loses its special properties,
 even if it is subsequently reset.
 
-@item FUNCNAME
-The name of any currently-executing shell function.      
-This variable exists only when a shell function is executing.
-Assignments to @env{FUNCNAME} have no effect and return an error status.
-If @env{FUNCNAME} is unset, it loses its special properties, even if
-it is subsequently reset.
-
 @item HISTCONTROL
 A value of @samp{ignorespace} means to not enter lines which
 begin with a space or tab into the history list.
@@ -4038,6 +4087,18 @@ The second and subsequent lines of a multi-line compound command are
 not tested, and are added to the history regardless of the value of
 @env{HISTCONTROL}.
 
+@item HISTFILE
+The name of the file to which the command history is saved.  The
+default value is @file{~/.bash_history}.
+
+@item HISTFILESIZE
+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.
+The history file is also truncated to this size after
+writing it when an interactive shell exits.
+The default value is 500.
+
 @item HISTIGNORE
 A colon-separated list of patterns used to decide which command
 lines should be saved on the history list.  Each pattern is
@@ -4058,22 +4119,10 @@ pattern of @samp{[ ]*} is identical to @code{ignorespace}.
 Combining these two patterns, separating them with a colon,
 provides the functionality of @code{ignoreboth}. 
 
-@item HISTFILE
-The name of the file to which the command history is saved.  The
-default value is @file{~/.bash_history}.
-
 @item HISTSIZE
 The maximum number of commands to remember on the history list.
 The default value is 500.
 
-@item HISTFILESIZE
-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.
-The history file is also truncated to this size after
-writing it when an interactive shell exits.
-The default value is 500.
-
 @item HOSTFILE
 Contains the name of a file in the same format as @file{/etc/hosts} that
 should be read when the shell needs to complete a hostname.
@@ -4133,19 +4182,14 @@ strings preceded by a @samp{$} (@pxref{Locale Translation}).
 @item LC_NUMERIC
 This variable determines the locale category used for number formatting.
 
+@item LINENO
+The line number in the script or shell function currently executing.
+
 @item LINES
 Used by the @code{select} builtin command to determine the column length
 for printing selection lists.  Automatically set upon receipt of a
 @code{SIGWINCH}.
 
-@item COLUMNS
-Used by the @code{select} builtin command to determine the terminal width
-when printing selection lists.  Automatically set upon receipt of a
-@code{SIGWINCH}.
-
-@item LINENO
-The line number in the script or shell function currently executing.
-
 @item MACHTYPE
 A string that fully describes the system type on which Bash
 is executing, in the standard @sc{gnu} @var{cpu-company-system} format.
@@ -4174,6 +4218,18 @@ containing a list of exit status values from the processes
 in the most-recently-executed foreground pipeline (which may
 contain only a single command).
 
+@item POSIXLY_CORRECT
+If this variable is in the environment when @code{bash} starts, the shell
+enters @sc{posix} mode (@pxref{Bash POSIX Mode}) before reading the
+startup files, as if the @option{--posix} invocation option had been supplied.
+If it is set while the shell is running, @code{bash} enables @sc{posix} mode,
+as if the command
+@example
+@code{set -o posix}
+@end example
+@noindent
+had been executed.  
+
 @item PPID
 The process @sc{id} of the shell's parent process.  This variable
 is readonly.
@@ -4310,9 +4366,9 @@ This section describes features unique to Bash.
 @section Invoking Bash
 
 @example
-bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o @var{option}] [@var{argument} @dots{}]
-bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o @var{option}] -c @var{string} [@var{argument} @dots{}]
-bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @var{option}] [@var{argument} @dots{}]
+bash [long-opt] [-ir] [-abefhkmnptuvxdBCDHP] [-o @var{option}] [-O @var{shopt_option}] [@var{argument} @dots{}]
+bash [long-opt] [-abefhkmnptuvxdBCDHP] [-o @var{option}] [-O @var{shopt_option}] -c @var{string} [@var{argument} @dots{}]
+bash [long-opt] -s [-abefhkmnptuvxdBCDHP] [-o @var{option}] [-O @var{shopt_option}] [@var{argument} @dots{}]
 @end example
 
 In addition to the single-character shell command-line options
@@ -4414,6 +4470,16 @@ are subject to language translation when the current locale
 is not @code{C} or @code{POSIX} (@pxref{Locale Translation}).
 This implies the @option{-n} option; no commands will be executed.
 
+@item [-+]O [@var{shopt_option}]
+@var{shopt_option} is one of the shell options accepted by the
+@code{shopt} builtin (@pxref{Shell Builtin Commands}).
+If @var{shopt_option} is present, @option{-O} sets the value of that option;
+@option{+O} unsets it.  
+If @var{shopt_option} is not supplied, the names and values of the shell
+options accepted by @code{shopt} are printed on the standard output.
+If the invocation option is @option{+O}, the output is displayed in a format
+that may be reused as input.
+
 @item --
 A @code{--} signals the end of options and disables further option
 processing.
@@ -4421,6 +4487,10 @@ Any arguments after the @code{--} are treated as filenames and arguments.
 
 @end table
 
+@cindex login shell
+A @emph{login} shell is one whose first character of argument zero is
+@samp{-}, or one invoked with the @option{--login} option.
+
 @cindex interactive shell
 An @emph{interactive} shell is one started without non-option arguments,
 unless @option{-s} is specified,
@@ -4930,7 +5000,7 @@ is a decimal number between 2 and 64 representing the arithmetic
 base, and @var{n} is a number in that base.  If @var{base}@code{#} is
 omitted, then base 10 is used.
 The digits greater than 9 are represented by the lowercase letters,
-the uppercase letters, @samp{_}, and @samp{@@}, in that order.
+the uppercase letters, @samp{@@}, and @samp{_}, in that order.
 If @var{base} is less than or equal to 36, lowercase and uppercase
 letters may be used interchangably to represent numbers between 10
 and 35.
@@ -5065,7 +5135,7 @@ Referencing an array variable without a subscript is equivalent to
 referencing element zero. 
 
 The @code{unset} builtin is used to destroy arrays.
-@code{unset} @var{name[subscript]}
+@code{unset} @var{name}[@var{subscript}]
 destroys the array element at index @var{subscript}.
 @code{unset} @var{name}, where @var{name} is an array, removes the
 entire array. A subscript of @samp{*} or @samp{@@} also removes the
@@ -5230,6 +5300,8 @@ The time, in 24-hour HH:MM:SS format.
 The time, in 12-hour HH:MM:SS format.
 @item \@@
 The time, in 12-hour am/pm format.
+@item \A
+The time, in 24-hour HH:MM format.
 @item \u
 The username of the current user.
 @item \v
@@ -5462,6 +5534,10 @@ Alias expansion is always enabled, even in non-interactive shells.
 When the @code{set} builtin is invoked without options, it does not display
 shell function names and definitions.
 
+@item
+When the @code{set} builtin is invoked without options, it displays
+variable values without quotes, unless they contain shell metacharacters,
+even if the result contains nonprinting characters.
 @end enumerate
 
 There is other @sc{posix} 1003.2 behavior that Bash does not implement.
@@ -5585,9 +5661,11 @@ job 1 in the background, equivalent to @samp{bg %1}
 The shell learns immediately whenever a job changes state. 
 Normally, Bash waits until it is about to print a prompt
 before reporting changes in a job's status so as to not interrupt
-any other output.  If the 
-the @option{-b} option to the @code{set} builtin is enabled,
+any other output.
+If the @option{-b} option to the @code{set} builtin is enabled,
 Bash reports such changes immediately (@pxref{The Set Builtin}).
+Any trap on @code{SIGCHLD} is executed for each child process
+that exits.
 
 If an attempt to exit Bash is while jobs are stopped, the
 shell prints a message warning that there are stopped jobs.
@@ -5867,18 +5945,9 @@ The file @file{configure.in} is used to create @code{configure}
 by a program called Autoconf.  You only need
 @file{configure.in} if you want to change it or regenerate
 @code{configure} using a newer version of Autoconf.  If
-you do this, make sure you are using Autoconf version 2.10 or
+you do this, make sure you are using Autoconf version 2.50 or
 newer.
 
-If you need to change @file{configure.in} or regenerate
-@code{configure}, you will need to create two files: 
-@file{_distribution} and @file{_patchlevel}.  @file{_distribution}
-should contain the major and minor version numbers of the Bash
-distribution, for example @samp{2.01}.  @file{_patchlevel} should
-contain the patch level of the Bash distribution, @samp{0} for
-example.  The script @file{support/mkconffiles} has been provided
-to automate the creation of these files.
-
 You can remove the program binaries and object files from the
 source code directory by typing @samp{make clean}.  To also remove the
 files that @code{configure} created (so you can compile Bash for
@@ -5947,7 +6016,9 @@ directories for other architectures.
 By default, @samp{make install} will install into
 @file{/usr/local/bin}, @file{/usr/local/man}, etc.  You can
 specify an installation prefix other than @file{/usr/local} by
-giving @code{configure} the option @option{--prefix=@var{PATH}}. 
+giving @code{configure} the option @option{--prefix=@var{PATH}},
+or by specifying a value for the @code{DESTDIR} @samp{make}
+variable when running @samp{make install}.
 
 You can specify separate installation prefixes for
 architecture-specific files and architecture-independent files. 
@@ -5960,13 +6031,13 @@ Documentation and other data files will still use the regular prefix.
 @section Specifying the System Type
 
 There may be some features @code{configure} can not figure out
-automatically, but needs to determine by the type of host Bash
+automatically, but need to determine by the type of host Bash
 will run on.  Usually @code{configure} can figure that
 out, but if it prints a message saying it can not guess the host
 type, give it the @option{--host=TYPE} option.  @samp{TYPE} can
 either be a short name for the system type, such as @samp{sun4},
 or a canonical name with three fields: @samp{CPU-COMPANY-SYSTEM}
-(e.g., @samp{sparc-sun-sunos4.1.2}).
+(e.g., @samp{i386-unknown-freebsd4.2}).
 
 See the file @file{support/config.sub} for the possible
 values of each field. 
@@ -6052,22 +6123,24 @@ Use the curses library instead of the termcap library.  This should
 be supplied if your system has an inadequate or incomplete termcap
 database.
 
-@item --with-glibc-malloc
-Use the @sc{gnu} libc version of @code{malloc} in
-@file{lib/malloc/gmalloc.c}.  This is not the version of @code{malloc}
-that appears in glibc version 2, but a modified version of the
-@code{malloc} from glibc version 1.  This is somewhat slower than the
-default @code{malloc}, but wastes less space on a per-allocation
-basis, and will return memory to the operating system under
-certain circumstances.
-
 @item --with-gnu-malloc
 A synonym for @code{--with-bash-malloc}.
 
-@item --with-installed-readline
+@item --with-installed-readline[=@var{PREFIX}]
 Define this to make Bash link with a locally-installed version of Readline
 rather than the version in @file{lib/readline}.  This works only with
-Readline 4.1 and later versions.
+Readline 4.2 and later versions.  If @var{PREFIX} is @code{yes} or not
+supplied, @code{configure} uses the values of the make variables
+@code{includedir} and @code{libdir}, which are subdirectories of @code{prefix}
+by default, to find the installed version of Readline if it is not in
+the standard system include and library directories.
+If @var{PREFIX} is @code{no}, Bash links with the version in
+@file{lib/readline}.
+If @var{PREFIX} is set to any other value, @code{configure} treats it as
+a directory pathname and looks for
+the installed version of Readline in subdirectories of that directory
+(include files in @var{PREFIX}/@code{include} and the library in
+@var{PREFIX}/@code{lib}).
 
 @item --with-purify
 Define this to use the Purify memory allocation checker from Rational
@@ -6082,6 +6155,11 @@ There are several @option{--enable-} options that alter how Bash is
 compiled and linked, rather than changing run-time features.
 
 @table @code
+@item --enable-largefile
+Enable support for @uref{http://www.sas.com/standards/large_file/x_open.20Mar96.html,
+large files} if the operating system requires special compiler options
+to build programs which can access large files.
+
 @item --enable-profiling
 This builds a Bash binary that produces profiling information to be
 processed by @code{gprof} each time it is executed.
@@ -6533,7 +6611,8 @@ executed with the @code{.} or @code{source} builtins
 
 @item
 Bash includes the @code{shopt} builtin, for finer control of shell
-optional capabilities (@pxref{Bash Builtins}).
+optional capabilities (@pxref{Bash Builtins}), and allows these options
+to be set and unset at shell invocation (@pxref{Invoking Bash}).
 
 @item
 Bash has much more optional behavior controllable with the @code{set}
@@ -6545,11 +6624,17 @@ is slightly different, as it implements the @sc{posix} algorithm,
 which specifies the behavior based on the number of arguments.
 
 @item
-The @code{trap} builtin (@pxref{Bourne Shell Builtins})
-allows a @code{DEBUG} pseudo-signal specification,
-similar to @code{EXIT}.  Commands specified with a @code{DEBUG} trap are
-executed after every simple command.  The @code{DEBUG} trap is not
-inherited by shell functions.
+The @code{trap} builtin (@pxref{Bourne Shell Builtins}) allows a
+@code{DEBUG} pseudo-signal specification, similar to @code{EXIT}.
+Commands specified with a @code{DEBUG} trap are executed after every
+simple command.
+The @code{DEBUG} trap is not inherited by shell functions.
+
+The @code{trap} builtin (@pxref{Bourne Shell Builtins}) allows an
+@code{ERR} pseudo-signal specification, similar to @code{EXIT} and @code{DEBUG}.
+Commands specified with an @code{ERR} trap are executed after a simple
+command fails, with a few exceptions.
+The @code{ERR} trap is not inherited by shell functions.
 
 @item
 The Bash @code{type} builtin is more extensive and gives more information