Imported from ../bash-3.1.tar.gz.
[platform/upstream/bash.git] / doc / FAQ
diff --git a/doc/FAQ b/doc/FAQ
index c0e902f..2d48fff 100644 (file)
--- a/doc/FAQ
+++ b/doc/FAQ
@@ -1,4 +1,4 @@
-This is the Bash FAQ, version 3.27, for Bash version 3.0.
+This is the Bash FAQ, version 3.32, for Bash version 3.1.
 
 This document contains a set of frequently-asked questions concerning
 Bash, the GNU Bourne-Again Shell.  Bash is a freely-available command
@@ -36,9 +36,9 @@ A10) What is the bash `posix mode'?
 
 Section B:  The latest version
 
-B1) What's new in version 3.0?
-B2) Are there any user-visible incompatibilities between bash-3.0 and
-    bash-1.14.7?
+B1) What's new in version 3.1?
+B2) Are there any user-visible incompatibilities between bash-3.1 and
+    bash-2.05b?
 
 Section C:  Differences from other Unix shells
 
@@ -140,22 +140,26 @@ of Case Western Reserve University.
 
 A2)  What's the latest version?
 
-The latest version is 3.0, first made available on 27 July, 2004.
+The latest version is 3.1, first made available on 09 December, 2005.
 
 A3)  Where can I get it?
 
 Bash is the GNU project's shell, and so is available from the
 master GNU archive site, ftp.gnu.org, and its mirrors.  The
 latest version is also available for FTP from ftp.cwru.edu.
-The following URLs tell how to get version 3.0:
+The following URLs tell how to get version 3.1:
 
-ftp://ftp.gnu.org/pub/gnu/bash/bash-3.0.tar.gz
-ftp://ftp.cwru.edu/pub/bash/bash-3.0.tar.gz
+ftp://ftp.gnu.org/pub/gnu/bash/bash-3.1.tar.gz
+ftp://ftp.cwru.edu/pub/bash/bash-3.1.tar.gz
 
 Formatted versions of the documentation are available with the URLs:
 
-ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-3.0.tar.gz
-ftp://ftp.cwru.edu/pub/bash/bash-doc-3.0.tar.gz
+ftp://ftp.gnu.org/pub/gnu/bash/bash-doc-3.1.tar.gz
+ftp://ftp.cwru.edu/pub/bash/bash-doc-3.1.tar.gz
+
+Any patches for the current version are available with the URL:
+
+ftp://ftp.cwru.edu/pub/bash/bash-3.1-patches/
 
 A4)  On what machines will bash run?
 
@@ -181,16 +185,15 @@ earlier Minix versions yet.
 
 Bash has been ported to versions of Windows implementing the Win32
 programming interface.  This includes Windows 95 and Windows NT.
-The port was done by Cygnus Solutions as part of their CYGWIN
-project.  For more information about the project, look at the URLs
-
-http://www.cygwin.com/
-http://sourceware.cygnus.com/cygwin
+The port was done by Cygnus Solutions (now part of Red Hat) as part
+of their CYGWIN project.  For more information about the project, see
+http://www.cygwin.com/.
 
 Cygnus originally ported bash-1.14.7, and that port was part of their
-early GNU-Win32 (the original name) releases.  Cygnus has also done a
-port of bash-2.05 to the CYGWIN environment, and it is available as
-part of their current release.
+early GNU-Win32 (the original name) releases.  Cygnus has also done
+ports of bash-2.05b and bash-3.0 to the CYGWIN environment, and both
+are available as part of their current release.  Bash-3.1 is currently
+being tested and should be available soon.
 
 Bash-2.05b and later versions should require no local Cygnus changes to
 build and run under CYGWIN.
@@ -212,7 +215,8 @@ ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/bsh204s.zip      source
 Mark began to work with bash-2.05, but I don't know the current status.
 
 Bash-3.0 compiles and runs with no modifications under Microsoft's Services
-for Unix (SFU), once known as Interix.
+for Unix (SFU), once known as Interix.  I do not anticipate any problems
+with building bash-3.1.
 
 A6) How can I build bash with gcc? 
 
@@ -381,15 +385,25 @@ They are also listed in a section in the Bash Reference Manual
 
 Section B:  The latest version
 
-B1) What's new in version 3.0?
+B1) What's new in version 3.1?
+
+Bash-3.1 is the first maintenance release of the third major release of
+bash.  It contains the following significant new features (see the manual
+page for complete descriptions and the CHANGES and NEWS files in the
+bash-3.1 distribution).
+
+o Bash-3.1 may now be configured and built in a mode that enforces strict
+  POSIX compliance.
 
-Bash-3.0 is the third major release of bash.  The features introduced
-in the intermediate releases following bash-2.05 have been completed.
-Support for the bash debugger (a separate project) has been integrated.
+o The `+=' assignment operator, which appends to the value of a string or
+  array variable, has been implemented.
 
-Bash-3.0 contains the following new features (see the manual page for
-complete descriptions and the CHANGES and NEWS files in the bash-3.0
-distribution):
+o It is now possible to ignore case when matching in contexts other than
+  filename generation using the new `nocasematch' shell option.
+
+A short feature history dating from Bash-2.0:
+
+Bash-3.0 contained the following new features:
 
 o Features to support the bash debugger have been implemented, and there
   is a new `extdebug' option to turn the non-default options on
@@ -419,8 +433,6 @@ o The `jobs', `kill', and `wait' builtins now accept job control notation
 o The `gettext' package and libintl have been integrated, and the shell
   messages may be translated into other languages
 
-A short feature history dating from Bash-2.0:
-
 Bash-2.05b introduced the following new features:
 
 o support for multibyte characters has been added to both bash and readline
@@ -628,10 +640,10 @@ grammar tighter and smaller (66 reduce-reduce conflicts gone)
 lots of code now smaller and faster
 test suite greatly expanded
 
-B2) Are there any user-visible incompatibilities between bash-3.0 and
-    bash-1.14.7?
+B2) Are there any user-visible incompatibilities between bash-3.1 and
+    bash-2.05b?
 
-There are a few incompatibilities between version 1.14.7 and version 3.0.
+There are a few incompatibilities between version 2.05b and version 3.1.
 They are detailed in the file COMPAT in the bash distribution.  That file
 is not meant to be all-encompassing; send mail to bash-maintainers@gnu.org
 if if you find something that's not mentioned there.
@@ -714,11 +726,12 @@ Things bash has that sh does not:
        case-insensitive pattern matching and globbing
        variable assignments preceding commands affect only that command,
                even for builtins and functions
-       posix mode
+       posix mode and strict posix conformance
        redirection to /dev/fd/N, /dev/stdin, /dev/stdout, /dev/stderr,
                /dev/tcp/host/port, /dev/udp/host/port
        debugger support, including `caller' builtin and new variables
        RETURN trap
+       the `+=' assignment operator
 
 
 Things sh has that bash does not:
@@ -796,6 +809,7 @@ Things bash has or uses that ksh88 does not:
        RETURN trap
        Timestamps in history entries
        {x..y} brace expansion
+       The `+=' assignment operator
 
 Things ksh88 has or uses that bash does not:
        tracked aliases (alias -t)
@@ -842,7 +856,6 @@ New things in ksh-93 not in bash-3.0:
        `fc' has been renamed to `hist'
        `.' can execute shell functions
        exit statuses between 0 and 255
-       `+=' variable assignment operator
        FPATH and PATH mixing
        getopts -a
        -I invocation option
@@ -876,6 +889,7 @@ New things in ksh-93 present in bash-3.0:
        command name completion
        ENV processed only for interactive shells
        set -o pipefail
+       The `+=' assignment operator
 
 Section D:  Why does bash do some things differently than other Unix shells?
 
@@ -1099,9 +1113,8 @@ will try to write on a pipe without a reader.  In that case, bash
 will print `Broken pipe' to stderr when ps is killed by a
 SIGPIPE. 
 
-You can build a version of bash that will not report SIGPIPE errors
-by uncommenting the definition of DONT_REPORT_SIGPIPE in the file
-config-top.h.
+As of bash-3.1, bash will not report SIGPIPE errors by default.  You
+can build a version of bash that will report such errors.
 
 E3) When I have terminal escape sequences in my prompt, why does bash
     wrap lines at the wrong column?
@@ -1128,12 +1141,12 @@ simple calls to `read'.  For example, piping a command's output
 into a `while' loop that repeatedly calls `read' will result in
 the same behavior.
 
-Each element of a pipeline runs in a separate process, a child of
-the shell running the pipeline.  A subprocess cannot affect its
-parent's environment.  When the `read' command sets the variable
-to the input, that variable is set only in the subshell, not the
-parent shell.  When the subshell exits, the value of the variable
-is lost. 
+Each element of a pipeline, even a builtin or shell function,
+runs in a separate process, a child of the shell running the
+pipeline.  A subprocess cannot affect its parent's environment. 
+When the `read' command sets the variable to the input, that
+variable is set only in the subshell, not the parent shell.  When
+the subshell exits, the value of the variable is lost. 
 
 Many pipelines that end with `read variable' can be converted
 into command substitutions, which will capture the output of
@@ -1763,21 +1776,19 @@ These are features that may or may not appear in a future version of bash.
 
 breaking some of the shell functionality into embeddable libraries
 a module system like zsh's, using dynamic loading like builtins
-date-stamped command history
 a bash programmer's guide with a chapter on creating loadable builtins
 a better loadable interface to perl with access to the shell builtins and
        variables (contributions gratefully accepted)
 ksh93-like `nameref' variables
-ksh93-like `+=' variable assignment operator
 ksh93-like `xx.yy' variables (including some of the .sh.* variables) and
        associated disipline functions
 Some of the new ksh93 pattern matching operators, like backreferencing
 
 H5) When will the next release appear?
 
-The next version will appear sometime in 2005.  Never make predictions. 
+The next version will appear sometime in 2006.  Never make predictions. 
 
-This document is Copyright 1995-2004 by Chester Ramey.
+This document is Copyright 1995-2005 by Chester Ramey.
 
 Permission is hereby granted, without written agreement and
 without license or royalty fees, to use, copy, and distribute